Commit Graph

77 Enmetoj

Author SHA1 Message Date
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
Jaidyn Ann a5567e043e Reorganization, commenting; no functional change 2024-06-30 09:45:20 -05:00
Jaidyn Ann 66e70f327e Support for remote JSON-LD contexts 2024-06-29 23:03:44 -05:00
Jaidyn Ann 1340707f1c Begin a “good-enough” JSON-LD parser 2024-06-29 19:11:29 -05:00
Jaidyn Ann 54a5b1f434 Add new @id & @type slots, make @context a method 2024-06-28 00:08:07 -05:00
Jaidyn Ann 71f0c6442c Retain unsupported ActivityStreams properties
So that parsing foreign objects at least doesn’t
cause us to lose any data.
2024-06-24 15:22:59 -05:00
Jaidyn Ann 16613eba51 ActivityVocabulary class and example-test tweaks 2024-06-23 22:49:11 -05:00
Jaidyn Ann bb361465c3 Parse even unknown ActivityStreams classes
By means of a *default-class* that is a catch-all.
2024-06-23 22:47:55 -05:00
Jaidyn Ann a2aec426ab Add tests for remaining ActivityVocabulary types 2024-06-23 21:02:16 -05:00
Jaidyn Ann 56d4706557 Split activity-vocab package into two
Now, ACTIVITY-VOCABULARY solely contains class
definitions; all parsing/encoding is handled by
the ACTIVITY-STREAMS package.
2024-06-23 14:56:19 -05:00
Jaidyn Ann 5f1903b741 Add comprehensive testing package
… actually, this should’ve been committed a few
commits back. I guess I forgot to add the file!
Well, no need to edit git history just for that.
2024-06-23 12:58:01 -05:00
Jaidyn Ann 39b941e013 Rename project to activity-servist
Slightly less wrong, feels slightly less redundant!
2024-06-23 12:49:58 -05:00
Jaidyn Ann 4c9de6677e Fix testing of nested objects 2024-06-23 12:18:41 -05:00
Jaidyn Ann 3f3370c194 Add base class AS-OBJECT in the hierarchy
This way, LINK (which as per ActivityVocabulary
spec doesn’t inherent OBJECT) can still be
generalized.
2024-06-23 12:17:40 -05:00
Jaidyn Ann 2501e3e0de Fix handling of keys w multiple-words-like-this. 2024-06-23 12:16:56 -05:00
Jaidyn Ann 373f8a1194 Improve Makefile “test”, add general TEST package 2024-06-22 17:44:08 -05:00
Jaidyn Ann bf404c7605 Add core object tests to ACTIVITY-VOCABULARY
… also add RUN function to both test packages.
2024-06-22 15:07:58 -05:00
Jaidyn Ann fdbda3672f Fix JSON serialization issue with double-commas
… I forgot to add an output to YASON:ENCODE!
2024-06-22 13:33:05 -05:00
Jaidyn Ann 8e58c7b1a4 Remove unused function, ALIST-REMOVE-KEYS 2024-06-22 00:33:28 -05:00
Jaidyn Ann ddc3add769 Fix serializing @context & type in nested objects 2024-06-21 18:15:47 -05:00
Jaidyn Ann 299a529151 Formatting tweaks, no functional change 2024-06-19 22:13:49 -05:00
Jaidyn Ann 75e3a964a8 Begin parsing of ActivityPub JSON objects
It is naïve and error-prone, but it works somewhat well!
What remains, primarily, is error-handling.
2024-06-19 22:13:33 -05:00
Jaidyn Ann 780951faaa Merge @contexts of nested JSON-LD objects 2024-06-19 19:07:22 -05:00
Jaidyn Ann a12e02c51b Re-organization, no functional change 2024-06-16 22:52:11 -05:00
Jaidyn Ann b6582e2537 Encode AV object’s “type” into JSON objects 2024-06-16 22:51:09 -05:00
Jaidyn Ann df994f3240 JSON tweaks: Objects-in-objects, ignore nil slots 2024-06-16 22:25:59 -05:00
Jaidyn Ann c205dff8ea Actually define a YASON encoder for every class
… I’m not even sure what I committed earlier.
2024-06-16 21:10:36 -05:00
Jaidyn Ann f694f44f3b Export all ActivityVocabulary slot accessors 2024-06-16 20:58:19 -05:00
Jaidyn Ann c2a97ba600 Use slot for JSON @context; default slots to nil 2024-06-16 20:56:45 -05:00
Jaidyn Ann 41c09bd7e7 Define a base-bones YASON encoder for every type
Using macros and MOP… talk about overkill! But I
was too lazy to do it otherwise. =w=
2024-06-16 20:52:30 -05:00