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.