Fedify 0.8.0
Released on May 6, 2024.
-
The CLI toolchain for testing and debugging is now available on JSR: @fedify/cli. You can install it with
deno install -A --unstable-fs --unstable-kv --unstable-temporal -n fedify jsr:@fedify/cli, or download a standalone executable from the releases page.- Added
fedifycommand. - Added
fedify lookupsubcommand. - Added
fedify inboxsubcommand.
- Added
-
Implemented followers collection synchronization mechanism.
- Added
RequestContext.sendActivity()overload that takes"followers"as the second parameter. - Added the second type parameter to
CollectionCallbackSettersinterface. - Added the second type parameter to
CollectionDispatchertype. - Added the fourth parameter to
CollectionDispatchertype. - Added the second type parameter to
CollectionCountertype. - Added the third parameter to
CollectionCountertype. - Added the second type parameter to
CollectionCursortype. - Added the third parameter to
CollectionCursortype.
- Added
-
Relaxed the required type for activity recipients.
- Added
Recipientinterface. - The type of the second parameter of
Context.sendActivity()method becameRecipient | Recipient[](wasActor | Actor[]). However, sinceRecipientis a supertype ofActor, the existing code should work without any change.
- Added
-
Followers collection now has to consist of
Recipientobjects only. (It could consist ofURLs as well asActors before.)- The type of
Federation.setFollowersDispatcher()method's second parameter becameCollectionDispatcher<Recipient, TContextData, URL>(wasCollectionDispatcher<Actor | URL, TContextData>).
- The type of
-
Some of the responsibility of a document loader was separated to a context loader and a document loader.
- Added
contextLoaderoption to constructors,fromJsonLd()static methods,clone()methods, and all non-scalar accessors (get*()) of Activity Vocabulary classes. - Renamed
documentLoaderoption tocontextLoaderintoJsonLd()methods of Activity Vocabulary objects. - Added
contextLoaderoption toLookupObjectOptionsinterface. - Added
contextLoaderproperty toContextinterface. - Added
contextLoaderoption toFederationParametersinterface. - Renamed
documentLoaderoption tocontextLoaderinRespondWithObjectOptionsinterface. - Added
GetKeyOwnerOptionsinterface. - The type of the second parameter of
getKeyOwner()function becameGetKeyOwnerOptions(wasDocumentLoader). - Added
DoesActorOwnKeyOptionsinterface. - The type of the third parameter of
doesActorOwnKey()function becameDoesActorOwnKeyOptions(wasDocumentLoader).
- Added
-
Added
widthandheightproperties toDocumentclass for better compatibility with Mastodon. [#47]- Added
Document.widthproperty. - Added
Document.heightproperty. new Document()constructor now acceptswidthoption.new Document()constructor now acceptsheightoption.Document.clone()method now acceptswidthoption.Document.clone()method now acceptsheightoption.
- Added
-
Removed the dependency on @js-temporal/polyfill on Deno, and Fedify now requires
--unstable-temporalflag. On other runtime, it still depends on @js-temporal/polyfill. -
Added more log messages using the LogTape library. Currently the below logger categories are used:
["fedify", "federation", "collection"]["fedify", "httpsig", "verify"]["fedify", "runtime", "docloader"]
-
Fixed a bug where the authenticated document loader had thrown
InvalidUrlerror when the URL redirection was involved in Bun. -
Fixed a bug of
lookupObject()that it had failed to look up the actor object when WebFinger response had no links with"type": "application/activity+json"but had"type": "application/ld+json; profile=\"https://www.w3.org/ns/activitystreams\"".