コミットグラフ

165 コミット

作成者 SHA1 メッセージ 日付
Cory Slep
2ebd905f76 experimental: More type improvements.
- Fixed extendedBy generated method behaving like extends
- Add the extends generated method
- Extends / extendedBy examine the parent / children as well
- Properties and types cache their generated structs, only creating the
  codegen types once
- Create convenience constructor methods
2018-11-04 19:05:56 +01:00
Cory Slep
d08cc46275 experimental: Add ActivityPub types.
This begins adding types as standalone compositions of properties, along
with helper functions to manage the hierarchy better than the current v0
implementation.

I think it will still need to be focused on flexibility at compile time
over runtime; but this will still allow extensions to be generated
easily from existing code.

This is a natural extension of the v0 philosophy: many folks still
cannot understand the similarity that to deploy new meaningful behaviors
with interpreted javascript/python/etc then code still needs to be
written and deployed, just as this go code will need to be regenerated,
written against, and deployed.

Code generation plus type system means a lot of the heavy lifting and
potential errors are already thought through for an ActivityPub
developer.
2018-11-03 16:56:09 +01:00
Cory Slep
e834879207 Experimental: restructure directories 2018-10-19 22:44:13 +02:00
Cory Slep
c4425ee50e experimental: Keep single-type special-case API
After deliberating on the APIs for properties that can have a single
type vs multiple types, I've decided to keep the distinctly separate
APIs for the single-type properties. This means humans reading the APIs
will use simpler and more reasonable getters/setters, etc. However, by
default the two kinds of properties will not be able to satisfy the same
interface.

If this is needed, in the future we can auto-generate thin-wrapper types
around single-type properties that cause them to have a shared API with
the multi-type properties. But that won't be tackled for now, as its
expected use case is small.
2018-10-16 22:08:10 +02:00
Cory Slep
4f628f1b7e Support natual language maps for properties. 2018-10-16 22:00:18 +02:00
Cory Slep
c91db1e4ae Support unknown property types when serializing and deserializing 2018-10-11 12:15:55 +02:00
Cory Slep
3a9b9812b5 Fix spacing in generated comment 2018-10-11 11:38:46 +02:00
Cory Slep
4a35079fd0 Add comments, clean up code 2018-10-10 00:32:37 +02:00
Cory Slep
eb09223588 Make code generation more robust 2018-10-08 22:19:10 +02:00
Cory Slep
c8431878da Now that core fundamentals are working, begin refactoring 2018-09-25 23:21:07 +02:00
Cory Slep
1426f30be1 Add comments to nonfunctional properties. 2018-09-20 19:24:20 +02:00
Cory Slep
d0c1e6a3e3 Add comments to functional properties.
Also, clean up the spacing for generated code so it is pleasing to look at.
2018-09-18 23:00:08 +02:00
Cory Slep
87032d3af9 Add serialization/deserialization generated code. 2018-09-16 00:02:11 +02:00
Cory Slep
c3ec4d5344 More exprimentation with property-oriented code generation 2018-09-12 22:45:59 +02:00
Cory Slep
1a1c50acfb Experimental directory for v1 code generation. 2018-09-04 23:44:16 +02:00
Cory Slep
3076a5410a Add nascent idea to static + dynamic plugin system
This is on the road for v1: enabling plugins for vocabulary extensions
and either supporting them in static or dynamic scenarios.

This new as/ folder is temporary to play around with, it is expected to
fold back into the pub area once I am making more sweeping changes for v1.
2018-09-01 20:03:51 +02:00
Cory Slep
806c037e3b Add note to self to check Follow edge case 2018-09-01 20:03:40 +02:00
Cory Slep
3b3c8efdd1 Add Read.as to the list of client applications 2018-08-28 20:24:53 +02:00
Cory Slep
a7d2d52351 Add multiply-typed unknown property methods to vocab interfaces. 2018-08-21 22:26:13 +02:00
Cory Slep
9e2efad733 Update README and CHANGELOG for v0.3.0 2018-08-21 20:56:34 +02:00
Cory Slep
012f23e435 Update CHANGELOG 2018-08-21 20:53:18 +02:00
Cory Slep
83277d57c9 Announce activities now add to shares collections on objects. 2018-08-21 20:49:24 +02:00
Cory Slep
2071460bc1 Update CHANGELOG 2018-08-21 19:07:14 +02:00
Cory Slep
bd6369d284 Add the missing 'shares' property to streams.Object 2018-08-21 19:01:16 +02:00
Cory Slep
befab36c29 Add the missing 'shares' property to vocab.Object 2018-08-21 18:59:18 +02:00
Cory Slep
c430c8af1d Update CHANGELOG 2018-08-20 23:19:43 +02:00
Cory Slep
1252727ca8 Add tests for Callbacker extensions 2018-08-20 23:11:33 +02:00
Cory Slep
1c057922ca Fix intransitive activity generated code in vocab.
The sub-types of Intransitive Activity (Arrive, etc) would not satisfy
the vocab.IntransitiveActivityType interface, due to not accounting for
the parent WithoutProperties definition.

This fixes that code generation, so that all Activity subtypes will be
able to be properly converted to vocab.ActivityType or
vocab.IntransitiveActivityType.

Updated the PostOutbox code path to properly handle this distinction
when receiving a C2S IntransitiveActivity.
2018-08-20 23:08:02 +02:00
Cory Slep
797b2f79a8 Support other activity types 2018-08-20 00:35:31 +02:00
Cory Slep
d0812c9471 Support unknown (extended) properties in vocab 2018-08-19 23:37:02 +02:00
Cory Slep
387ed4a775 Fix body delivery bytes being incorrectly copied 2018-08-19 23:25:14 +02:00
Cory Slep
17fce2255a Update README and CHANGELOG for v0.2.1 release 2018-08-19 19:00:48 +02:00
Cory Slep
2f2858f92b Include more links to go-fed.org and official reports 2018-08-19 18:39:54 +02:00
Cory Slep
46d55732d5 Use minimum sized types for enumerated values 2018-08-19 18:31:45 +02:00
Cory Slep
493b48b665 Update README with official implementation report links. 2018-08-19 18:26:02 +02:00
Cory Slep
3b0d31022c Update README with applications using the library 2018-08-19 18:20:58 +02:00
Cory Slep
8b0590a0cd Correctly test for root cause in issue 75. 2018-08-19 18:03:56 +02:00
Cory Slep
3740d4a418 Remove TODO 2018-08-19 11:06:52 +02:00
Cory Slep
452d6f1af7 Add unit test for issue 75: C2S not forwarding 2018-08-19 01:05:02 +02:00
Cory Slep
a5757b4382 Update README and CHANGELOG for v0.2.0 release 2018-08-04 15:36:53 +02:00
Cory Slep
377455aa70 Add IsPublic to streams types 2018-08-04 15:30:31 +02:00
Cory Slep
e372d2781e Update CHANGELOG 2018-08-04 15:28:00 +02:00
Cory Slep
c655c635ff Add IsPublic to vocab.Object types & subtypes.
The IsPublic method will return 'true' if the special public collection
defined in the ActivityPub spec is addressed in the 'to', 'bto' 'cc', or
'bcc' properties of the Object or any of the types extending from them.
2018-08-04 15:20:34 +02:00
Cory Slep
f8b24eef88 Use OrderedCollection by default for collections.
The 'liked', 'likes', 'followers', and 'following' collections now
default to the 'OrderedCollection' type instead of throwing an error if
the client application does not supply an IRI, 'Collection', or
'OrderedCollection' type on the actor or object.
2018-08-04 13:53:33 +02:00
Cory Slep
dfffcd7eb2 Update CHANGELOG 2018-08-04 13:36:43 +02:00
Cory Slep
be4644fbca Examine IRI when origin checking Update/Delete
Before we just always threw an error. Also update tests to check for
both cases.
2018-08-03 22:54:12 +02:00
Cory Slep
f82653f709 Don't do an Activity's side effects more than once
If a federated Activity has been seen before, skip handling its side
effects.
2018-08-03 22:30:53 +02:00
Cory Slep
8fa0f2395c Add Like activities to the likes collection.
Previously, it was incorrectly adding the actors to the likes collection.
2018-08-02 22:29:03 +02:00
Cory Slep
107468d8e9 Fix GetInbox failure due to unavailable messages.
When deduplicating IRIs in a user's inbox, the library tries to
dereference the IRI to... obtain the ID. I must have added this when I
had no idea what I was doing. Oh my god, everyone's going to know I am
dumb! Quick, don't read this commit message, I'll just finish typing
this sentence over here.

Well, it's fixed now.
2018-08-01 23:30:20 +02:00
Cory Slep
10e099bd8a Remove unused test method from previous interface. 2018-08-01 23:22:46 +02:00