Skip to content

Fedify 0.8.0

Compare
Choose a tag to compare
@github-actions github-actions released this 06 May 13:39
· 39 commits to main since this release
0.8.0
ddccacc

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 fedify command.
    • Added fedify lookup subcommand.
    • Added fedify inbox subcommand.
  • Implemented followers collection synchronization mechanism.

    • Added RequestContext.sendActivity() overload that takes "followers" as the second parameter.
    • Added the second type parameter to CollectionCallbackSetters interface.
    • Added the second type parameter to CollectionDispatcher type.
    • Added the fourth parameter to CollectionDispatcher type.
    • Added the second type parameter to CollectionCounter type.
    • Added the third parameter to CollectionCounter type.
    • Added the second type parameter to CollectionCursor type.
    • Added the third parameter to CollectionCursor type.
  • Relaxed the required type for activity recipients.

    • Added Recipient interface.
    • The type of the second parameter of Context.sendActivity() method became Recipient | Recipient[] (was Actor | Actor[]). However, since Recipient is a supertype of Actor, the existing code should work without any change.
  • Followers collection now has to consist of Recipient objects only. (It could consist of URLs as well as Actors before.)

    • The type of Federation.setFollowersDispatcher() method's second parameter became CollectionDispatcher<Recipient, TContextData, URL> (was CollectionDispatcher<Actor | URL, TContextData>).
  • Some of the responsibility of a document loader was separated to a context loader and a document loader.

    • Added contextLoader option to constructors, fromJsonLd() static methods, clone() methods, and all non-scalar accessors (get*()) of Activity Vocabulary classes.
    • Renamed documentLoader option to contextLoader in toJsonLd() methods of Activity Vocabulary objects.
    • Added contextLoader option to LookupObjectOptions interface.
    • Added contextLoader property to Context interface.
    • Added contextLoader option to FederationParameters interface.
    • Renamed documentLoader option to contextLoader in RespondWithObjectOptions interface.
    • Added GetKeyOwnerOptions interface.
    • The type of the second parameter of getKeyOwner() function became GetKeyOwnerOptions (was DocumentLoader).
    • Added DoesActorOwnKeyOptions interface.
    • The type of the third parameter of doesActorOwnKey() function became DoesActorOwnKeyOptions (was DocumentLoader).
  • Added width and height properties to Document class for better compatibility with Mastodon. [#47]

    • Added Document.width property.
    • Added Document.height property.
    • new Document() constructor now accepts width option.
    • new Document() constructor now accepts height option.
    • Document.clone() method now accepts width option.
    • Document.clone() method now accepts height option.
  • Removed the dependency on @js-temporal/polyfill on Deno, and Fedify now requires --unstable-temporal flag. 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 InvalidUrl error 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\"".