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