Commit Graph

106 Enmetoj

Author SHA1 Message Date
Jaidyn Ann a37fc2bbfe Fetch & store Actors of received Activities
This lays the groundwork for checking HTTP signatures.
2024-12-18 14:08:09 -06:00
Jaidyn Ann b05f9e765e Tweak Litepub package to define LP:PERSON
… and switch DEFCONSTANT→DEFVAR for +NEW-CLASSES+
& +NEW-SLOTS+.
2024-12-18 14:07:15 -06:00
Jaidyn Ann a84872309c Renamed FETCH to RETRIEVE 2024-12-18 13:08:34 -06:00
Jaidyn Ann 258315b0d7 Provisionally use global URIs for some endpoints
In the simple-server, use `/inbox` instead of
`/user/inbox`, etc.
2024-12-09 22:28:13 -06:00
Jaidyn Ann 380bc3f525 Implement a basic, bare-bones inbox!
Adding a new interface, the RECEIVE method.
This allows objects to be received on the inbox,
however sans signature validation.
2024-12-09 22:28:10 -06:00
Jaidyn Ann 233a76d571 Fix content-type of objects
From application/json → application/activity+json
2024-12-09 21:24:32 -06:00
Jaidyn Ann 3f69dca8bd Add :INBOX-PATH option, and start inbox requests
The inbox endpoint is just a stub, and doesn’t do
anything yet.
2024-12-09 21:23:57 -06:00
Jaidyn Ann bf4a175517 Tweak logging of requests
Minor refactor.
2024-12-09 21:22:48 -06:00
Jaidyn Ann 6659947bd7 Example: Formatting, swapping nicknames usernames
In the example simple-server, that is!
2024-12-09 21:10:09 -06:00
Jaidyn Ann 71fa674ce3 Use LitePub for user-class in example server
Now that LitePub has its own classes (rather than
modifying those of Activity-Vocabulary), this is
necessary.
2024-10-21 04:21:10 -05:00
Jaidyn Ann 2182eb4ebe Remove use of :PROTOCOL & :ADDRESS in *CONFIG*
Now, the protocol is inferred through the :HOST,
and :ADDRESS is, well, :HOST.
2024-10-21 04:19:45 -05:00
Jaidyn Ann dbb23ad8b8 Replace custom encoding of users with object-FETCH
That is, activity-servist doesn’t worry about
/users/ paths anymore; it just assumes every path
is an object-request. It relies on the FETCH
callback to keep it in line.
2024-10-21 04:17:29 -05:00
Jaidyn Ann 99fffe1bd2 Minor refactoring; LOOP → DOLIST, etc. 2024-10-21 04:01:19 -05:00
Jaidyn Ann 2d377f5b9b Only encode LitePub context for LP classes/slots
Why add a context if we don’t need it? ^^
2024-10-21 03:54:52 -05:00
Jaidyn Ann e0341343db Remove :UPDATE parameter from DEFINE-JSON-TYPE
It was… a bit messy on accessors. That’s more
headache than it’s worth, and it can be argued
that messing with the hierarchy like that was less
than preferable.

The LitePub classes have been redefined
accordingly as subclasses.
2024-10-20 11:25:24 -05:00
Jaidyn Ann 06de0e0191 Add a file-caching of common JSON-LD schema
So we don't need to HTTP-get common (and sometimes
down (I'm looking at you, purl.archive.org; though
it's not your fault, the DDOS attack was huge)
schemas.
2024-10-18 11:03:44 -05:00
Jaidyn Ann 16a1bcbacb Begin an example server
Only Webfinger is properly supported and working,
so far!
2024-09-05 22:34:10 -05:00
Jaidyn Ann ecc8b6f46c Add FETCH, and Webfinger data from JSON-objects
Now, Webfinger data is generated from JSON-LD
objects in an overridable fashion (methods).

Also defines the callback FETCH, which should be
defined by the user of activity-servist.
2024-09-05 22:27:37 -05:00
Jaidyn Ann f98b5d81a9 Rename JSON-LD-OBJECT & LITEPUB-OBJECT
JSON-LD:JSON-LD-OBJECT → JSON-LD:OBJECT
and
LITEPUB:LITEPUB-OBJECT → LITEPUB:OBJECT

More succinct, no?
2024-09-05 12:09:56 -05:00
Jaidyn Ann 4905c0be95 Add export definition for Litepub package 2024-09-05 12:04:56 -05:00
Jaidyn Ann 4978dfb7ee Rename JSON-LD slots & accessors
The slot .ETC is renamed to @ETC; accessors are
renamed from JSON-LD-CONTEXT (for example) to
simply the slot-name, @CONTEXT.
2024-09-05 12:01:57 -05:00
Jaidyn Ann a0f4d6ba36 Rename accessors from “CLASS-SLOT” to simply “SLOT”
JSON-LD would automatically name accessors
“CLASS-SLOT” which… gets a little bit clunky, no?
Simply “SLOT” is nicer, IMO.
2024-09-05 11:52:16 -05:00
Jaidyn Ann 5cc249ffa9 Tweak Litepub-vocab’s class hierarchy
Keep ACTOR-slots in the OBJECT class.
2024-09-04 15:18:42 -05:00
Jaidyn Ann e8858ef773 Treat solely tables with-@TYPE items as AP objects
By default, at least. @TYPE is considered a
requirement for a proper node object, as per the
spec.
2024-09-04 15:12:34 -05:00
Jaidyn Ann cd0545be52 Add core properties of AP Actor type 2024-09-04 15:11:43 -05:00
Jaidyn Ann 86b8d0a514 Docstrings and package-renaming
No functional changes; simply adds a couple
docstrings and renames
…/ACTIVITY-VOCABULARY → [AS]/VOCAB/ACTIVITY
…/LITEPUB → ACTIVITYPUB-SERVIST/VOCAB/LITEPUB
2024-09-03 12:09:18 -05:00
Jaidyn Ann b15c138378 Add PUBLIC-KEY slot to Litepub’s PERSON 2024-09-03 11:33:55 -05:00
Jaidyn Ann ce557da89c Add :ALWAYS-ITEM parsing-option
When toggled, /everything/ will be parsed as a
JSON-LD object, even if it an invalid one.
2024-09-03 11:10:50 -05:00
Jaidyn Ann 8faeb1afd2 Fix encoding of aliased @ID, @CONTEXT, and @TYPE
Previously, aliasing them (like ActivityVocab’s
ID→@ID) would cause them to get encoded twice.
2024-09-03 11:05:59 -05:00
Jaidyn Ann 22ad087a97 Fix use of class-options in Litepub vocabulary
Apparently (:OPTION VALUE)(:OPTION VALUE) is
correct, not (:OPTION VALUE :OPTION VALUE),
according to DEFCLASS!
2024-08-30 18:45:26 -05:00
Jaidyn Ann 3e2f0d3b62 Begin support for Pleroma-flavour “Litepub” vocab
This includes common node-types and properties
used by Pleroma, Mastodon, Misskey, et. al.
2024-08-30 08:42:02 -05:00
Jaidyn Ann c90f63d765 Fix :UPDATE and inheritance of @ID and @TYPE slots 2024-08-30 08:39:40 -05:00
Jaidyn Ann de0fd8845c Add :UPDATE class-option to DEFINE-JSON-TYPE
This allows one to add slots to a JSON type
without having to re-specify the old ones; for
convenience.
2024-08-25 10:56:20 -05:00
Jaidyn Ann ba1d62ceb2 Update system definitions and package nicknames 2024-08-24 15:36:24 -05:00
Jaidyn Ann 6fa9b9e03a Tweaks ActivityVocabulary types/inheritance
Now most all parsing+encoding tests pass! Hura!
2024-08-24 15:20:10 -05:00
Jaidyn Ann f2522f9ae5 Adds *DEFAULT-JSON-TYPE* to JSON-LD
Allows customization of the type assumed for an
unrecognized JSON-LD object-type.
2024-08-24 15:01:24 -05:00
Jaidyn Ann 4964c679ee Normalize/flatten @contexts before encoding
So that json-ld-objects contained in other
jons-ld-objects don’t have their @contexs
repeated a million times unnecessarily.
2024-08-24 12:23:36 -05:00
Jaidyn Ann e1c1be096a Tweak package/test definitions
No functional change.
2024-08-22 12:07:56 -05:00
Jaidyn Ann f7a86b86da Add type→@type & id→@id to Object type-definition
That is ActivityVocab standard, after all. :^)
2024-08-22 12:06:59 -05:00
Jaidyn Ann 2132a00a6a Remove reverse-context and related functions
There is a simpler way of doing this!
2024-08-22 11:12:13 -05:00
Jaidyn Ann b2e9e5340d Add YASON:ENCODE, for encoding of nested objects 2024-08-22 11:11:15 -05:00
Jaidyn Ann cc81dee054 Remove ActivityStreams package; reorganize tests
The ActivityStreams package solely held the Object
JSON-type, which is now in the ActivityVocabulary
package.

Files and system definitions have been shuffled
around accordingly.
2024-08-21 23:37:11 -05:00
Jaidyn Ann c1e1da9a3b Redefine ActivityVocab. types to new JSON-LD lib
This is much cleaner. Compared to previous
version, we also add docstrings »ploinked« from
the ActivityVocabulary specification.
2024-08-21 23:19:25 -05:00
Jaidyn Ann 4df575610e Remove old JSON-LD system; move OBJECT to new one
Our old JSON-LD encoder/decoder was bad, and not
CLOS. This removes it from activity-streams.lisp,
and replaces its definition of the ActivityStreams
Object type to our new system.
2024-08-21 18:00:08 -05:00
Jaidyn Ann bae4fbbd13 Fix slot-inheritance during JSON type-registration
Previously, only direct-slots were registered; now
those of parent classes are also registered to
*JSON-TYPES*.
2024-08-21 17:59:22 -05:00
Jaidyn Ann 6fab9f42d3 Functional parsing of JSON nodes into CLOS objects
The class hierarchy should be tweaked a bit; and
the activity-vocabulary class definitions need to
be updated to use the new framework — but it’s
functional!
2024-08-19 22:54:39 -05:00
Jaidyn Ann 14f2f8f4da Reformatting/factoring; no functional changes 2024-08-16 23:59:17 -05:00
Jaidyn Ann 7be6b396ee Begin CLOS-based system for JSON-LD encoding/etc
So far, defining a JSON-LD node-type automagically
defines a CLOS class and a YASON-encoder; what
remains is the decoder.

… and also @context-propagation  in the encoder.
2024-08-16 22:35:36 -05:00
Jaidyn Ann 0f93516cab Support terms with ld-keywords as values
Like “type” → “@type”
2024-07-07 16:16:35 -05:00
Jaidyn Ann 29a9814008 Support parsing of expanded term definitions
Also adds some descriptive conditions used in
parsing; and changes the format of context
hash-tables.
2024-07-07 10:42:54 -05:00