diff --git a/docs/codox/Desiderata.html b/docs/codox/Desiderata.html index 90dbbe1..810a57a 100644 --- a/docs/codox/Desiderata.html +++ b/docs/codox/Desiderata.html @@ -1,6 +1,6 @@ -Desiderata

Desiderata

+Desiderata

Desiderata

Social media features which users want which [Mastodon](https://en.wikipedia.org/wiki/Mastodon_(social_network)) does not provide, or provides poorly.

  1. User-specified inbox-ordering algorithms;
  2. diff --git a/docs/codox/Using_ActivityPub.html b/docs/codox/Using_ActivityPub.html index 5cc36d6..2d7035c 100644 --- a/docs/codox/Using_ActivityPub.html +++ b/docs/codox/Using_ActivityPub.html @@ -1,6 +1,6 @@ -Using ActivityPub

    Using ActivityPub

    +Using ActivityPub

    Using ActivityPub

    Introduction

    I do not know what I am doing; I am learning, and playing. Nothing in this document should be treated as good advice; it simply relates to the current state of my knowledge.

    What happens when you post a new item to an ActivityPub server

    diff --git a/docs/codox/Validation_Faults.html b/docs/codox/Validation_Faults.html index 6fe1b95..f6ae4bd 100644 --- a/docs/codox/Validation_Faults.html +++ b/docs/codox/Validation_Faults.html @@ -1,6 +1,6 @@ -Validation Faults in ActivityPub documents

    Validation Faults in ActivityPub documents

    +Validation Faults in ActivityPub documents

    Validation Faults in ActivityPub documents

    Motivation

    This document is intended to provide an extension vocabulary for ActivityStreams documents, which provides vocabulary for categorising and describing faults in ActivityPub documents.

    The motivation is to be able to serialise a validation report on an ActivityPub document as an ActivityStreams document.

    diff --git a/docs/codox/dog-and-duck.quack.picky.collections.html b/docs/codox/dog-and-duck.quack.picky.collections.html index 8beb00f..9b3f142 100644 --- a/docs/codox/dog-and-duck.quack.picky.collections.html +++ b/docs/codox/dog-and-duck.quack.picky.collections.html @@ -1,3 +1,3 @@ -dog-and-duck.quack.picky.collections documentation

    dog-and-duck.quack.picky.collections

    TODO: write docs

    collection-page-faults

    (collection-page-faults x type)

    TODO: write docs

    paged-collection-faults

    (paged-collection-faults x type)

    Return a list of faults found in x considered as a paged collection object of this sub-type, or nil if none are found.

    simple-collection-faults

    (simple-collection-faults x type)

    Return a list of faults found in x considered as a non-paged collection object of this sub-type, or nil if none are found.

    \ No newline at end of file +dog-and-duck.quack.picky.collections documentation

    dog-and-duck.quack.picky.collections

    TODO: write docs

    collection-page-faults

    (collection-page-faults x type)

    TODO: write docs

    paged-collection-faults

    (paged-collection-faults x type)

    Return a list of faults found in x considered as a paged collection object of this sub-type, or nil if none are found.

    simple-collection-faults

    (simple-collection-faults x type)

    Return a list of faults found in x considered as a non-paged collection object of this sub-type, or nil if none are found.

    \ No newline at end of file diff --git a/docs/codox/dog-and-duck.quack.picky.constants.html b/docs/codox/dog-and-duck.quack.picky.constants.html index 330d1fc..7dd8bad 100644 --- a/docs/codox/dog-and-duck.quack.picky.constants.html +++ b/docs/codox/dog-and-duck.quack.picky.constants.html @@ -1,6 +1,6 @@ -dog-and-duck.quack.picky.constants documentation

    dog-and-duck.quack.picky.constants

    Constants supporting the picky validator.

    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.

    +dog-and-duck.quack.picky.constants documentation

    dog-and-duck.quack.picky.constants

    Constants supporting the picky validator.

    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.

    context-key

    The Clojure reader barfs on :@context, although it is in principle a valid keyword. So we’ll make it once, here, to make the code more performant and easier to read.

    severity

    Severity of faults found, as follows:

    1. :info not actually a fault, but an issue noted during validation;
    2. diff --git a/docs/codox/dog-and-duck.quack.picky.control-variables.html b/docs/codox/dog-and-duck.quack.picky.control-variables.html index 9e4a6d2..93114ad 100644 --- a/docs/codox/dog-and-duck.quack.picky.control-variables.html +++ b/docs/codox/dog-and-duck.quack.picky.control-variables.html @@ -1,6 +1,6 @@ -dog-and-duck.quack.picky.control-variables documentation

      dog-and-duck.quack.picky.control-variables

      Control variables for the picky validator.

      *reify-refs*

      dynamic

      If true, references to objects in fields will be reified and validated. If false, they won’t, but an :info level fault report will be generated.

      +dog-and-duck.quack.picky.control-variables documentation

      dog-and-duck.quack.picky.control-variables

      Control variables for the picky validator.

      *reify-refs*

      dynamic

      If true, references to objects in fields will be reified and validated. If false, they won’t, but an :info level fault report will be generated.

      There are several things in the spec which, in a document, may correctly be either

      1. a fully fleshed out object, or
      2. diff --git a/docs/codox/dog-and-duck.quack.picky.fault-messages.html b/docs/codox/dog-and-duck.quack.picky.fault-messages.html index 22afc52..3a593cf 100644 --- a/docs/codox/dog-and-duck.quack.picky.fault-messages.html +++ b/docs/codox/dog-and-duck.quack.picky.fault-messages.html @@ -1,3 +1,3 @@ -dog-and-duck.quack.picky.fault-messages documentation

        dog-and-duck.quack.picky.fault-messages

        Narrative values for fault reports of specific types, used by the picky validator.

        messages

        Actual fault messages to which fault codes resolve.

        \ No newline at end of file +dog-and-duck.quack.picky.fault-messages documentation

        dog-and-duck.quack.picky.fault-messages

        Narrative values for fault reports of specific types, used by the picky validator.

        messages

        Actual fault messages to which fault codes resolve.

        \ No newline at end of file diff --git a/docs/codox/dog-and-duck.quack.picky.html b/docs/codox/dog-and-duck.quack.picky.html index 09714fa..654beba 100644 --- a/docs/codox/dog-and-duck.quack.picky.html +++ b/docs/codox/dog-and-duck.quack.picky.html @@ -1,6 +1,6 @@ -dog-and-duck.quack.picky documentation

        dog-and-duck.quack.picky

        Fault-finder for ActivityPub documents.

        +dog-and-duck.quack.picky documentation

        dog-and-duck.quack.picky

        Fault-finder for ActivityPub documents.

        Generally, each -faults function will return:

        1. nil if no faults were found;
        2. @@ -15,16 +15,10 @@
        3. :narrative whose value shall be a natural language description of the fault type.

        Note that the reason for the :fault property is to be able to have a well known place, linked to from the @context URL, which allows narratives for each fault type to be served in as many natural languages as possible.

        -

        The idea further is that it should ultimately be possible to serialise a fault report as a document which in its own right conforms to the ActivityStreams spec.

        accept-required-properties

        As base-activity-required-properties, except that the type of the object is restricted.

        activity-faults

        (activity-faults x)

        TODO: write docs

        activity-required-properties

        Properties activities should have, keyed by activity type. Values are maps of the format of base-activity-required-properties, q.v.

        activity-type-faults

        (activity-type-faults x)(activity-type-faults x type)

        Return a list of faults found in the activity x; if type is also specified, it should be a string naming a specific activity type for which checks should be performed.

        -

        Some specific activity types have specific requirements which are not requirements.

        actor-faults

        (actor-faults x)

        Return a list of faults found in actor x, or nil if none are.

        base-activity-required-properties

        Properties most activities should have. Values are validating functions, each.

        -

        See https://www.w3.org/TR/activitystreams-vocabulary/#dfn-activity

        coll-object-reference-or-fault

        (coll-object-reference-or-fault value expected-type severity token)

        As object-reference-or-fault, except value argument may also be a list of objects and/or object references.

        intransitive-activity-required-properties

        Properties intransitive activities should have.

        -

        See https://www.w3.org/TR/activitystreams-vocabulary/#dfn-intransitiveactivity

        object-faults

        (object-faults x)(object-faults x expected-type)

        Return a list of faults found in object x, or nil if none are.

        -

        If expected-type is also passed, verify that x has expected-type. expected-type may be passed as a string or as a set of strings.

        object-reference-or-faults

        (object-reference-or-faults value expected-type severity token)

        If this value is either

        -
          -
        1. an object of expected-type;
        2. -
        3. a URI referencing an object of expected-type; or
        4. -
        5. a link object referencing an object of expected-type
        6. -
        -

        and no faults are returned from validating the linked object, then return nil; else return a sequence comprising a fault object with this severity and token, prepended to the faults returned.

        -

        As with has-type-or-fault (q.v.), expected-type may be passed as a string or as a set of strings.

        -

        NOTE THAT if *reify-refs* is false, referenced objects will not actually be checked.

        persistent-object-faults

        (persistent-object-faults x)(persistent-object-faults x types severity token)

        Return a list of faults found in persistent object x, or nil if none are.

        string-or-fault

        (string-or-fault value severity token)(string-or-fault value severity token pattern)

        If this value is not a string, return a fault object with this severity and token, else nil. If pattern is also passed, it is expected to be a Regex, and the fault object will be returned unless value matches the pattern.

        uri-or-fault

        (uri-or-fault u severity if-missing-token)(uri-or-fault u severity if-missing-token if-invalid-token)

        If u is not a valid URI, return a fault object with this severity and if-invalid-token. If it’s nil, return a fault object with this severity and if-missing-token. Otherwise return nil.

        \ No newline at end of file +

        The idea further is that it should ultimately be possible to serialise a fault report as a document which in its own right conforms to the ActivityStreams spec.

        accept-required-properties

        As base-activity-required-properties, except that the type of the object is restricted.

        activity-faults

        (activity-faults x)

        TODO: write docs

        activity-required-properties

        Properties activities should have, keyed by activity type. Values are maps of the format of base-activity-required-properties, q.v.

        activity-type-faults

        (activity-type-faults x)(activity-type-faults x type)

        Return a list of faults found in the activity x; if type is also specified, it should be a string naming a specific activity type for which checks should be performed.

        +

        Some specific activity types have specific requirements which are not requirements.

        actor-faults

        (actor-faults x)

        Return a list of faults found in actor x, or nil if none are.

        base-activity-required-properties

        Properties most activities should have. Values are validating functions, each.

        +

        See https://www.w3.org/TR/activitystreams-vocabulary/#dfn-activity

        collection-faults

        (collection-faults x)(collection-faults x type)

        Return a list of faults found in the collection x; if type is also specified, it should be a string naming a specific collection type for which checks should be performed.

        +

        Every collection should(?) have a totalItems field (an integer).

        +

        Beyond that, collections are either ‘just collections’ (in which case they should have an items field (a sequence)), or else they’re paged collections, in which case they must(?) have a first field which is a collection page or a URI pointing to a collection page, and should have a last field which is similar.

        +

        The pages of collections should be collection pages; the pages of ordered collections should be ordered collection pages.

        intransitive-activity-required-properties

        Properties intransitive activities should have.

        +

        See https://www.w3.org/TR/activitystreams-vocabulary/#dfn-intransitiveactivity

        persistent-object-faults

        (persistent-object-faults x)(persistent-object-faults x types severity token)

        Return a list of faults found in persistent object x, or nil if none are.

        uri-or-fault

        (uri-or-fault u severity if-missing-token)(uri-or-fault u severity if-missing-token if-invalid-token)

        If u is not a valid URI, return a fault object with this severity and if-invalid-token. If it’s nil, return a fault object with this severity and if-missing-token. Otherwise return nil.

        \ No newline at end of file diff --git a/docs/codox/dog-and-duck.quack.picky.required-properties.html b/docs/codox/dog-and-duck.quack.picky.required-properties.html index 1e49c08..6e02120 100644 --- a/docs/codox/dog-and-duck.quack.picky.required-properties.html +++ b/docs/codox/dog-and-duck.quack.picky.required-properties.html @@ -1,3 +1,3 @@ -dog-and-duck.quack.picky.required-properties documentation

        dog-and-duck.quack.picky.required-properties

        TODO: write docs

        \ No newline at end of file +dog-and-duck.quack.picky.required-properties documentation

        dog-and-duck.quack.picky.required-properties

        TODO: write docs

        \ No newline at end of file diff --git a/docs/codox/dog-and-duck.quack.picky.utils.html b/docs/codox/dog-and-duck.quack.picky.utils.html index 850f283..41b6075 100644 --- a/docs/codox/dog-and-duck.quack.picky.utils.html +++ b/docs/codox/dog-and-duck.quack.picky.utils.html @@ -1,7 +1,17 @@ -dog-and-duck.quack.picky.utils documentation

        dog-and-duck.quack.picky.utils

        Utility functions supporting the picky validator

        actor-type?

        (actor-type? x)

        Return true if the x is a recognised actor type, else false.

        concat-non-empty

        (concat-non-empty & lists)

        Quick function to replace the pattern (nil-if-empty (remove nil? (concat …))) which I’m using a lot!

        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.

        filter-severity

        (filter-severity reports severity)

        Return a list of reports taken from these reports where the severity of the report is greater than this or equal to this severity.

        has-activity-type?

        (has-activity-type? x)

        Return true if the object x has a type which is an activity type, else false.

        has-actor-type?

        (has-actor-type? x)

        Return true if the object x has a type which is an actor type, else false.

        has-context?

        macro

        (has-context? x)

        True if x is an ActivityStreams object with a valid context, else false.

        has-type-or-fault

        (has-type-or-fault x acceptable severity token)

        If object x has a :type value which is acceptable, return nil; else return a fault object with this severity and token.

        -

        acceptable may be passed as either nil, a string, or a set of strings. If acceptable is nil, no type specific tests will be performed.

        has-type?

        (has-type? x type)

        Return true if object x has type type, else false.

        -

        The values of type fields of ActivityStreams objects may be lists; they are considered to have a type if the type token is a member of the list.

        make-fault-object

        (make-fault-object severity fault)

        Return a fault object with these severity, fault and narrative values.

        -

        An ActivityPub object MUST have a globally unique ID. Whether this is meaningful depends on whether we persist fault report objects and serve them, which at present I have no plans to do.

        nil-if-empty

        macro

        (nil-if-empty x)

        if x is an empty collection, return nil; else return x.

        truthy?

        (truthy? x)

        Return true if x is truthy, else false.

        verb-type?

        (verb-type? x)

        true if x, a string, represents a recognised ActivityStreams activity type.

        \ No newline at end of file +dog-and-duck.quack.picky.utils documentation

        dog-and-duck.quack.picky.utils

        Utility functions supporting the picky validator

        actor-type?

        (actor-type? x)

        Return true if the x is a recognised actor type, else false.

        any-or-faults

        (any-or-faults options severity-if-none token)

        Return nil if validating one of these options returns nil; otherwise return a list comprising a fault report object with this severity-if-none and this token followed by all the fault reports from validating each option.

        +

        There are several places - but especially in validating collections - where there are several different valid configurations, but few or no properties are always required.

        coll-object-reference-or-fault

        (coll-object-reference-or-fault value expected-type severity token)

        As object-reference-or-fault, except value argument may also be a list of objects and/or object references.

        concat-non-empty

        (concat-non-empty & lists)

        Quick function to replace the pattern (nil-if-empty (remove nil? (concat …))) which I’m using a lot!

        cond-make-fault-object

        macro

        (cond-make-fault-object v severity token)

        If v is false or nil, return a fault object with this severity and token, else return nil.

        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.

        filter-severity

        (filter-severity reports severity)

        Return a list of reports taken from these reports where the severity of the report is greater than this or equal to this severity.

        has-activity-type?

        (has-activity-type? x)

        Return true if the object x has a type which is an activity type, else false.

        has-actor-type?

        (has-actor-type? x)

        Return true if the object x has a type which is an actor type, else false.

        has-context?

        macro

        (has-context? x)

        True if x is an ActivityStreams object with a valid context, else false.

        has-type-or-fault

        (has-type-or-fault x acceptable severity token)

        If object x has a :type value which is acceptable, return nil; else return a fault object with this severity and token.

        +

        acceptable may be passed as either nil, a string, or a set of strings. If acceptable is nil, no type specific tests will be performed.

        has-type?

        (has-type? x type)

        Return true if object x has type type, else false.

        +

        The values of type fields of ActivityStreams objects may be lists; they are considered to have a type if the type token is a member of the list.

        make-fault-object

        (make-fault-object severity fault)

        Return a fault object with these severity, fault and narrative values.

        +

        An ActivityPub object MUST have a globally unique ID. Whether this is meaningful depends on whether we persist fault report objects and serve them, which at present I have no plans to do.

        nil-if-empty

        macro

        (nil-if-empty x)

        if x is an empty collection, return nil; else return x.

        object-faults

        (object-faults x)(object-faults x expected-type)

        Return a list of faults found in object x, or nil if none are.

        +

        If expected-type is also passed, verify that x has expected-type. expected-type may be passed as a string or as a set of strings. Detailed verification of the particular features of types is not done here.

        object-or-uri?

        (object-or-uri? x)

        Very basic check that x is either an object or a URI.

        object-reference-or-faults

        (object-reference-or-faults value expected-type severity token)

        If this value is either

        +
          +
        1. an object of expected-type;
        2. +
        3. a URI referencing an object of expected-type; or
        4. +
        5. a link object referencing an object of expected-type
        6. +
        +

        and no faults are returned from validating the linked object, then return nil; else return a sequence comprising a fault object with this severity and token, prepended to the faults returned.

        +

        As with has-type-or-fault (q.v.), expected-type may be passed as a string, as a set of strings, or nil (indicating the type of the referenced object should not be checked).

        +

        NOTE THAT if *reify-refs* is false, referenced objects will not actually be checked.

        string-or-fault

        (string-or-fault value severity token)(string-or-fault value severity token pattern)

        If this value is not a string, return a fault object with this severity and token, else nil. If pattern is also passed, it is expected to be a Regex, and the fault object will be returned unless value matches the pattern.

        truthy?

        (truthy? x)

        Return true if x is truthy, else false. There must be some more idiomatic way to do this?

        verb-type?

        (verb-type? x)

        true if x, a string, represents a recognised ActivityStreams activity type.

        \ No newline at end of file diff --git a/docs/codox/dog-and-duck.quack.quack.html b/docs/codox/dog-and-duck.quack.quack.html index 8a21142..cfba417 100644 --- a/docs/codox/dog-and-duck.quack.quack.html +++ b/docs/codox/dog-and-duck.quack.quack.html @@ -1,6 +1,6 @@ -dog-and-duck.quack.quack documentation

        dog-and-duck.quack.quack

        Validator for ActivityPub objects: if it walks like a duck, and it quacks like a duck…

        +dog-and-duck.quack.quack documentation

        dog-and-duck.quack.quack

        Validator for ActivityPub objects: if it walks like a duck, and it quacks like a duck…

        **NOTE THAT the ActivityPub spec says

        Servers SHOULD validate the content they receive to avoid content spoofing attacks

        diff --git a/docs/codox/dog-and-duck.scratch.core.html b/docs/codox/dog-and-duck.scratch.core.html index a2efd05..cafbe36 100644 --- a/docs/codox/dog-and-duck.scratch.core.html +++ b/docs/codox/dog-and-duck.scratch.core.html @@ -1,3 +1,3 @@ -dog-and-duck.scratch.core documentation

        dog-and-duck.scratch.core

        TODO: write docs

        foo

        (foo x)

        I don’t do a whole lot.

        \ No newline at end of file +dog-and-duck.scratch.core documentation

        dog-and-duck.scratch.core

        TODO: write docs

        foo

        (foo x)

        I don’t do a whole lot.

        \ No newline at end of file diff --git a/docs/codox/dog-and-duck.scratch.parser.html b/docs/codox/dog-and-duck.scratch.parser.html index 45adf0f..1d60fba 100644 --- a/docs/codox/dog-and-duck.scratch.parser.html +++ b/docs/codox/dog-and-duck.scratch.parser.html @@ -1,3 +1,3 @@ -dog-and-duck.scratch.parser documentation

        dog-and-duck.scratch.parser

        TODO: write docs

        clean

        (clean json)

        Take this json input, and return a sequence of ActivityPub objects represented by it.

        \ No newline at end of file +dog-and-duck.scratch.parser documentation

        dog-and-duck.scratch.parser

        TODO: write docs

        clean

        (clean json)

        Take this json input, and return a sequence of ActivityPub objects represented by it.

        \ No newline at end of file diff --git a/docs/codox/dog-and-duck.scratch.scratch.html b/docs/codox/dog-and-duck.scratch.scratch.html index 4f6f75d..45ff4af 100644 --- a/docs/codox/dog-and-duck.scratch.scratch.html +++ b/docs/codox/dog-and-duck.scratch.scratch.html @@ -1,3 +1,3 @@ -dog-and-duck.scratch.scratch documentation

        dog-and-duck.scratch.scratch

        Scratchpad where I try to understand how to do this stuff.

        account-handle

        TODO: write docs

        \ No newline at end of file +dog-and-duck.scratch.scratch documentation

        dog-and-duck.scratch.scratch

        Scratchpad where I try to understand how to do this stuff.

        account

        TODO: write docs

        account-handle

        TODO: write docs

        \ No newline at end of file diff --git a/docs/codox/dog-and-duck.utils.process.html b/docs/codox/dog-and-duck.utils.process.html index c8b747f..4e8ae03 100644 --- a/docs/codox/dog-and-duck.utils.process.html +++ b/docs/codox/dog-and-duck.utils.process.html @@ -1,5 +1,5 @@ -dog-and-duck.utils.process documentation

        dog-and-duck.utils.process

        TODO: write docs

        get-hostname

        return the hostname of the current host.

        +dog-and-duck.utils.process documentation

        dog-and-duck.utils.process

        TODO: write docs

        get-hostname

        return the hostname of the current host.

        Java’s methods for getting the hostname are quite startlingly slow, we do not want todo this repeatedly!

        get-pid

        Get the process id of the current process.

        OK, this is hacky as fuck, but I hope it works. The problem is that the way to get the process id has changed several times during the history of Java development, and the code for one version of Java won’t even compile in a different version.

        \ No newline at end of file diff --git a/docs/codox/index.html b/docs/codox/index.html index 4b802af..5c9c887 100644 --- a/docs/codox/index.html +++ b/docs/codox/index.html @@ -1,3 +1,3 @@ -Dog-and-duck 0.1.0-SNAPSHOT

        Dog-and-duck 0.1.0-SNAPSHOT

        Released under the GPL-2.0-or-later

        A playground for hacking ActivityPub stuff.

        Installation

        To install, add the following dependency to your project or build file:

        [dog-and-duck "0.1.0-SNAPSHOT"]

        Topics

        Namespaces

        dog-and-duck.quack.picky.control-variables

        Control variables for the picky validator.

        Public variables and functions:

        dog-and-duck.quack.picky.fault-messages

        Narrative values for fault reports of specific types, used by the picky validator.

        Public variables and functions:

        dog-and-duck.quack.picky.required-properties

        TODO: write docs

        Public variables and functions:

          dog-and-duck.quack.quack

          Validator for ActivityPub objects: if it walks like a duck, and it quacks like a duck…

          dog-and-duck.scratch.core

          TODO: write docs

          Public variables and functions:

          dog-and-duck.scratch.parser

          TODO: write docs

          Public variables and functions:

          dog-and-duck.scratch.scratch

          Scratchpad where I try to understand how to do this stuff.

          Public variables and functions:

          dog-and-duck.utils.process

          TODO: write docs

          Public variables and functions:

          \ No newline at end of file +Dog-and-duck 0.1.0-SNAPSHOT

          Dog-and-duck 0.1.0-SNAPSHOT

          Released under the GPL-2.0-or-later

          A playground for hacking ActivityPub stuff.

          Installation

          To install, add the following dependency to your project or build file:

          [dog-and-duck "0.1.0-SNAPSHOT"]

          Topics

          Namespaces

          dog-and-duck.quack.picky.control-variables

          Control variables for the picky validator.

          Public variables and functions:

          dog-and-duck.quack.picky.fault-messages

          Narrative values for fault reports of specific types, used by the picky validator.

          Public variables and functions:

          dog-and-duck.quack.picky.required-properties

          TODO: write docs

          Public variables and functions:

            dog-and-duck.quack.quack

            Validator for ActivityPub objects: if it walks like a duck, and it quacks like a duck…

            dog-and-duck.scratch.core

            TODO: write docs

            Public variables and functions:

            dog-and-duck.scratch.parser

            TODO: write docs

            Public variables and functions:

            dog-and-duck.scratch.scratch

            Scratchpad where I try to understand how to do this stuff.

            Public variables and functions:

            dog-and-duck.utils.process

            TODO: write docs

            Public variables and functions:

            \ No newline at end of file diff --git a/docs/codox/intro.html b/docs/codox/intro.html index 36e87f4..b19fbd1 100644 --- a/docs/codox/intro.html +++ b/docs/codox/intro.html @@ -1,6 +1,6 @@ -Introduction

            Introduction

            +Introduction

            Introduction

            The Old Dog and Duck

            A Clojure library designed to implement the ActivityPub protocol, obviously.

            The Dog and Duck, Derby

            diff --git a/src/dog_and_duck/quack/picky/collections.clj b/src/dog_and_duck/quack/picky/collections.clj index d87df6f..3159e42 100644 --- a/src/dog_and_duck/quack/picky/collections.clj +++ b/src/dog_and_duck/quack/picky/collections.clj @@ -45,6 +45,8 @@ (map #(object-reference-or-faults % nil :must :not-object-reference) (:items x))))) (defn collection-page-faults + "Return a list of faults found in `x` considered as a collection page + object of this sub-`type`, or `nil` if none are found." [x type] (concat-non-empty (simple-collection-faults x type) diff --git a/src/dog_and_duck/scratch/scratch.clj b/src/dog_and_duck/scratch/scratch.clj index f1795ed..305bceb 100644 --- a/src/dog_and_duck/scratch/scratch.clj +++ b/src/dog_and_duck/scratch/scratch.clj @@ -44,11 +44,11 @@ ;; ;;; examine what you got back! (:inbox account) -(-> account - :inbox - slurp - json/read-str - pprint) ;; => 80 +;; (-> account +;; :inbox +;; slurp +;; json/read-str +;; pprint) ;; => 80 ;; (def rsa (pgp-gen/rsa-keypair-generator 2048)) ;; (def kp (pgp-gen/generate-keypair rsa :rsa-general))