Commit graph

50 commits

Author SHA1 Message Date
151eb606b6
fix(apb): Node::id behaves like Object::id 2024-06-01 01:24:20 +02:00
40e01fe83b
feat(apb)!: getters return field error
this way we clean upstream code from a lot of .ok_or(), and everything
that doesn't care about the error can go back to previous usage just
adding .ok()
2024-06-01 01:04:03 +02:00
78bc514012
chore(apb): moved jsonld under apb as feature 2024-05-31 21:29:51 +02:00
b6a17184eb chore(apb): track todo &str 2024-05-31 15:56:41 +02:00
5b592874cb
chore: BIG refactor into smaller crates
hopefully this makes lsp more responsive? because it wont need to
recompile everything every time, but idk really
2024-05-31 04:07:39 +02:00
8712b5e723
fix(apb): export profile, remove dead code 2024-05-27 16:53:48 +02:00
34c01dd858
feat(apb): ostatus conversation and toot discoverable 2024-05-23 23:45:48 +02:00
e146dc2a51
chore(apb): imports 2024-05-23 01:59:22 +02:00
7e93bc6454
fix(apb): simpler macros, added into value, fix links
before array of links were silently discarded because macros relied on
into_iter().collect()... oops! technical debt, but should be ok now
2024-05-23 00:19:28 +02:00
54e7ebd905
fix(apb): extract correctly actor ids from addressing 2024-05-22 16:34:37 +02:00
2ac0ca8a38
feat(apb): quote url 2024-05-20 08:58:38 +02:00
f4db94db27
feat(apb): optional Send marker on Base, on by default 2024-05-20 02:39:23 +02:00
756012ee69
feat(apb): add .flat() to access inner nodes 2024-05-20 01:56:32 +02:00
8b15ae9f4f
feat(apb): Addressed auto impl for any Object 2024-05-19 21:19:22 +02:00
eddde7c8b9
fix(apb): setting href always succeeds 2024-05-19 21:18:58 +02:00
65aee2a27e
feat(apb): Node::Array is an array of nodes
this better represents AP arrays, because they could be mixed, and now
links are properly represented as links rather than "objects that are a
string"
2024-05-19 21:18:04 +02:00
6411923a0d
chore(apb): improved iterator impl for Node 2024-05-17 02:23:56 +02:00
2c5304a0d5
fix: oops remove special code for endpoints 2024-05-16 10:12:58 +02:00
461526df12
feat(apb): actor endpoints type (extends Object)
not sure if this can be an Object but AP says it can be a link to a
JSONLD document so i assume it can be?
2024-05-15 17:17:02 +02:00
88a6048dc2
fix(apb): id returns id of front for array node 2024-05-13 16:32:23 +02:00
735cef762b
feat(apb): add emoji reacts activity 2024-05-11 22:48:35 +02:00
30219c7fe6
chore(apb): move publshed and updated closer
i forgot that there's an updated field because it was too far
2024-05-02 15:12:57 +02:00
b708f642c1
fix(apb): dont panic if missing pubkey, return "" 2024-05-02 13:16:37 +02:00
eb472517ab
fix(apb): don't require Object for Addressed 2024-05-02 02:58:19 +02:00
a499c93e99
feat(apb): add my custom extension to count follows
this is really mehhh because if it was possible to embed
following/followers collections this would be pointless but it isn't so
to avoid making multiple fetches i'm adding these fields in the first
actor document
2024-05-02 00:29:17 +02:00
a1d1ba3744
fix(apb): add setters/getters for all fields 2024-05-02 00:28:54 +02:00
05bce0c486
feat(apb): added my apb extension for frontends
very much ad-hoc but at least i made the ns page so it should be kind of
ok to use i think? if others want to use upub frontend and have all its
features working, this extension will be necessary, rather than some
custom whole api
2024-05-02 00:28:09 +02:00
a615b5d4e8
fix(apb): bool setter/getter with rename 2024-05-02 00:25:47 +02:00
bdf48bb7cb
feat(apb): likes and shares optional collections 2024-05-02 00:25:26 +02:00
e0331751a4
fix(apb): sensitive under proper extension 2024-05-01 21:14:23 +02:00
aa84aef66e
fix(apb): remove node update
there's an undelying clone so this does nothing
2024-05-01 21:03:00 +02:00
71c3c54859
feat(apb): allow editing inner nodes
actually only if it implements Clone but whatever good enough for now
2024-05-01 17:46:54 +02:00
a3cf7a17e8
feat(apb): allow upcasting from object
basically now object.as_actor() or object.as_collection() returns an
option which is full with a self ref only if the type is correct, so
that we can assume flexible json behavior from anything implementing our
apb traits, and we don't need to rely anymore on knowing the underlying
type
also little import refactor
2024-04-29 20:01:39 +02:00
3156b8d2d2
feat: sensitive field
this is not part of activitystreams afaik and should not be in apub but
it's quite convenient to do it this way sooooooooooo for now will do
2024-04-24 05:19:39 +02:00
d50a762f63
fix(apb): is_empty === len()==0, new is_nothing
basically is_empty on an empty Node::Vec is true, but is_nothing on an
empty Node::Vec is false
2024-04-23 23:27:01 +02:00
deb5fe5744
fix(apb): don't iter vec needlessly 2024-04-23 23:26:49 +02:00
ba07b2cb9d
fix(apb): correct node order when iterating
use a VecDeque under the hood to be able to pop_front()
2024-04-23 20:58:37 +02:00
a763b60a93
feat(apb): added all outbox routes, authed inbox 2024-04-22 22:42:45 +02:00
5ba1fb66ca
fix(apb): camel case name for mediaType 2024-04-21 23:36:13 +02:00
6c3aead68b
feat: handle announces 2024-04-20 04:33:23 +02:00
85375ba1fb
fix(apb): added Service actor type
forgot about bots! :(
2024-04-13 22:20:29 +02:00
96462648ce
fix(apb): dyn link is Sync and Send 2024-04-13 22:08:26 +02:00
87d802fa2e
fix(apb): .id() now works on json strings too 2024-04-13 06:34:56 +02:00
a9229adec8
feat(apb): restructured, added target and server
target is about addressing, and server has traits for barebones outbox
and inbox. these come from upub
2024-04-11 00:27:17 +02:00
9d3376a1f4
docs: document crate a little 2024-04-06 19:16:15 +02:00
b57d766b78
fix: dont publicly export macros 2024-04-06 18:34:15 +02:00
5672f75242
docs: added readme 2024-04-06 18:24:10 +02:00
03c606514e
chore: crate metadata, MIT license 2024-04-06 18:17:07 +02:00
101de0cc08
fix(apb): proper feature gating, dict->unstructured 2024-04-06 18:04:14 +02:00
520c8eff3a
feat: separated apb types into crate, reworked
no more "impl ..." hell, each trait has associated types so that we know
it's a "Self::Link" or a "Self::Actor", but in practice they can both be
a "serde_json::Value" and thus we can change its type. also Node::Array
is now a Vec<T> rather than Vec<Node<T>> because it makes more sense.
Node is Iterable and will yield zero (Empty|Link), one (Object) or many
(Array) Ts
2024-04-06 16:56:13 +02:00