dog-and-duck.quack.quack
Validator for ActivityPub objects: if it walks like a duck, and it quacks like a duck…
activitystreams-context-uri
The URI of the context of an ActivityStreams object is expected to be this literal string.
actor-types
The set of types we will accept as actors.
There’s an explicit set of allowed actor types.
collection-page?
(collection-page? x)true iff x quacks like a page in a paged collection, else false.
collection?
(collection? x type)(collection? x)true iff x quacks like a collection of type type, else false.
With one argument, will recognise plain collections and ordered collections, but (currently) not collection pages.
context?
(context? x)Returns true iff x quacks like an ActivityStreams context, else false.
A context is either 1. the URI (actually an IRI) activitystreams-context-uri, or 2. a collection comprising that URI and a map.
link-or-uri?
(link-or-uri? x)true iff x is either a URI or a link, else false.
There are several points in the specification where e.g. the :image property (if present) may be either a link or a URI.
object?
(object? x)Returns true iff x is recognisably an ActivityStreams object.
NOTE THAT The ActivityStreams spec says:
All properties are optional (including the id and type)
But we are just not having that, because otherwise we’re flying blind. We shall reject objects lacking at least :type. Missing :id keys are tolerable because they represent transient objects, which we expect to handle.
ordered-collection-page?
(ordered-collection-page? x)true iff x quacks like a page in an ordered paged collection, else false.
ordered-collection?
(ordered-collection? x)true iff x quacks like an ordered collection, else false.
persistent-object?
(persistent-object? x)true iff x is a persistent object.
Transient objects in ActivityPub are not required to have an id key, but persistent ones must have a key, and it must be an IRI (but normally a URI).
unordered-collection?
(unordered-collection? x)true iff x quacks like an unordered collection, else false.
verb-types
The set of types we will accept as verbs.
There’s an explicit set of allowed verb types.