Skip to content

Releases: dahlia/fedify

Fedify 0.15.3

23 Oct 14:45
0.15.3
767489f
Compare
Choose a tag to compare

Released on October 23, 2024.

Fedify 1.1.0

20 Oct 09:55
1.1.0
2007d39
Compare
Choose a tag to compare

Released on October 20, 2024.

  • Added utility functions for traversing remote collections. [#150]

    • Added Context.traverseCollection() method.
    • Added traverseCollection() function.
    • Added TraverseCollectionOptions interface.
  • Added EmojiReact class to Activity Vocabulary API. [FEP-c0e0]

  • Added successor property to the Actor types in the Activity Vocabulary API.

    • Added Application.getSuccessor() method.
    • new Application() constructor now accepts successor option.
    • Application.clone() method now accepts successor option.
    • Added Group.getSuccessor() method.
    • new Group() constructor now accepts successor option.
    • Group.clone() method now accepts successor option.
    • Added Organization.getSuccessor() method.
    • new Organization() constructor now accepts successor option.
    • Organization.clone() method now accepts successor option.
    • Added Person.getSuccessor() method.
    • new Person() constructor now accepts successor option.
    • Person.clone() method now accepts successor option.
    • Added Service.getSuccessor() method.
    • new Service() constructor now accepts successor option.
    • Service.clone() method now accepts successor option.
  • Added DidService class to Activity Vocabulary API. [FEP-9091, #146]

  • Added Export class to Activity Vocabulary API. [FEP-9091, #146]

  • Added service property to the Actor types in the Activity Vocabulary API. [FEP-9091, #146]

    • Added Application.getService() method.
    • Added Application.getServices() method.
    • new Application() constructor now accepts service option.
    • new Application() constructor now accepts services option.
    • Application.clone() method now accepts service option.
    • Application.clone() method now accepts services option.
    • Added Group.getService() method.
    • Added Group.getServices() method.
    • new Group() constructor now accepts service option.
    • new Group() constructor now accepts services option.
    • Group.clone() method now accepts service option.
    • Group.clone() method now accepts services option.
    • Added Organization.getService() method.
    • Added Organization.getServices() method.
    • new Organization() constructor now accepts service option.
    • new Organization() constructor now accepts services option.
    • Organization.clone() method now accepts service option.
    • Organization.clone() method now accepts services option.
    • Added Person.getService() method.
    • Added Person.getServices() method.
    • new Person() constructor now accepts service option.
    • new Person() constructor now accepts services option.
    • Person.clone() method now accepts service option.
    • Person.clone() method now accepts services option.
    • Added Service.getService() method.
    • Added Service.getServices() method.
    • new Service() constructor now accepts service option.
    • new Service() constructor now accepts services option.
    • Service.clone() method now accepts service option.
    • Service.clone() method now accepts services option.
  • The default time window for verifying HTTP Signatures of incoming requests is now an hour (was a minute). This new default window is according to the ActivityPub and HTTP Signatures document.

    • The default value of VerifyRequestOptions.timeWindow option became { hours: 1 } (was { minutes: 1 }).

    • The default value of CreateFederationOptions.signatureTimeWindow option became { hours: 1 } (was { minutes: 1 }).

    • The type of VerifyRequestOptions.timeWindow property became Temporal.Duration | Temporal.DurationLike | false (was Temporal.DurationLike | false).

    • The type of CreateFederationOptions.signatureTimeWindow property became Temporal.Duration | Temporal.DurationLike | false (was Temporal.DurationLike | false).

  • In the fedify inbox command's web interface, the Raw Activity tab is added to show the raw JSON object of the received activity.

Fedify 1.0.4

17 Oct 12:51
1.0.4
625d514
Compare
Choose a tag to compare

Released on October 17, 2024.

  • Fixed a bug where Actor.aliasId and Actor.aliasIds properties had been represented as as:alsoKnownAs property instead of alsoKnownAs property in compacted JSON-LD objects.

  • Improved compatibility with Bridgy Fed for Bluesky where it puts an invalid URI with the format at://... in the alsoKnownAs property.

Fedify 1.0.3

17 Oct 08:54
1.0.3
b20de5a
Compare
Choose a tag to compare

Released on October 17, 2024.

  • Improved compatibility with some implementations (e.g., Nexkey) where some CryptographicKey objects are incorrectly typed in JSON-LD objects.

Fedify 1.0.2

27 Sep 02:11
1.0.2
f9c5052
Compare
Choose a tag to compare

Released on September 27, 2024.

  • Fixed a bug of Object.toJsonLd() method where it had incorrectly compacted the name property when it was not a language map.

  • The Delete(Application) activities sent by the fedify inbox command now embed the entire actor object instead of just the actor's URI so that the peers can verify the actor's signature without fetching the actor object.

Fedify 1.0.1

26 Sep 12:33
1.0.1
1fec13e
Compare
Choose a tag to compare

Released on September 26, 2024.

  • Fixed deprecation messages related to the {handle} variable in URL templates; they had had wrong placeholders in the message templates.

  • Fixed a bug of Object.toJsonLd() method where it had not fall back to the proper compact form when the heuristic compact form was not available.

Fedify 0.15.2

26 Sep 12:22
0.15.2
49b84ec
Compare
Choose a tag to compare

Released on September 26, 2024.

  • Fixed a bug of Object.toJsonLd() method where it had not fall back to the proper compact form when the heuristic compact form was not available.

Fedify 0.14.5

26 Sep 12:12
0.14.5
fcd3122
Compare
Choose a tag to compare

Released on September 26, 2024.

  • Fixed a bug of Object.toJsonLd() method where it had not fall back to the proper compact form when the heuristic compact form was not available.

Fedify 1.0.0

25 Sep 15:19
1.0.0
20d1282
Compare
Choose a tag to compare

Released on September 26, 2024.

  • The term handle for dispatching actors is deprecated in favor of identifier.

    • The URI template for the following methods now accepts variable {identifier} instead of {handle}:

      • Federation.setActorDispatcher()
      • Federation.setInboxDispatcher()
      • Federation.setOutboxDispatcher()
      • Federation.setFollowingDispatcher()
      • Federation.setFollowersDispatcher()
      • Federation.setLikedDispatcher()
      • Federation.setFeaturedDispatcher()
      • Federation.setFeaturedTagsDispatcher()
      • Federation.setInboxListeners()

      The {handle} variable is deprecated, and it will be removed in the future.

    • The type of Federation.setActorDispatcher() method's first parameter became ${string}{identifier}${string}` | `${string}{handle}${string} (was ${string}{handle}${string}).

    • The type of Federation.setInboxDispatcher() method's first parameter became ${string}{identifier}${string}` | `${string}{handle}${string} (was ${string}{handle}${string}).

    • The type of Federation.setOutboxDispatcher() method's first parameter became ${string}{identifier}${string}` | `${string}{handle}${string} (was ${string}{handle}${string}).

    • The type of Federation.setFollowingDispatcher() method's first parameter became ${string}{identifier}${string}` | `${string}{handle}${string} (was ${string}{handle}${string}).

    • The type of Federation.setFollowersDispatcher() method's first parameter became ${string}{identifier}${string}` | `${string}{handle}${string} (was ${string}{handle}${string}).

    • The type of Federation.setLikedDispatcher() method's first parameter became ${string}{identifier}${string}` | `${string}{handle}${string} (was ${string}{handle}${string}).

    • The type of Federation.setFeaturedDispatcher() method's first parameter became ${string}{identifier}${string}` | `${string}{handle}${string} (was ${string}{handle}${string}).

    • The type of Federation.setFeaturedTagsDispatcher() method's first parameter became ${string}{identifier}${string}` | `${string}{handle}${string} (was ${string}{handle}${string}).

    • The type of Federation.setInboxListeners() method's first parameter became ${string}{identifier}${string}` | `${string}{handle}${string} (was ${string}{handle}${string}).

    • The type of Context.getDocumentLoader() method's first parameter became { identifier: string } | { username: string } | { handle: string } | { keyId: URL; privateKey: CryptoKey } (was { handle: string } | { keyId: URL; privateKey: CryptoKey }).

    • Passing { handle: string } to Context.getDocumentLoader() method is deprecated in favor of { username: string }.

    • The type of Context.sendActivity() method's first parameter became SenderKeyPair | SenderKeyPair[] | { identifier: string } | { username: string } | { handle: string } (was SenderKeyPair | SenderKeyPair[] | { handle: string }).

    • All properties of ParseUriResult type became readonly.

    • Added identifier properties next to handle properties in ParseUriResult type.

    • The handle properties of ParseUriResult type are deprecated in favor of identifier properties.

    • The return type of SharedInboxKeyDispatcher callback type became SenderKeyPair | { identifier: string } | { username: string } | { handle: string } | null | Promise<SenderKeyPair | { identifier: string } | { username: string } | { handle: string } | null> (was SenderKeyPair | { handle: string } | null | Promise<SenderKeyPair | { handle: string } | null>).

  • Fedify now supports Linked Data Signatures, which is outdated but still widely used in the fediverse.

    • A Federation object became to verify an activity's Linked Data Signatures if it has one. If Linked Data Signatures are verified, Object Integrity Proofs and HTTP Signatures are not verified.
    • Context.sendActivity() method became to sign an activity with Linked Data Signatures if there is at least one RSA-PKCS#1-v1.5 key pair.
    • Added Signature interface.
    • Added signJsonLd() function.
    • Added SignJsonLdOptions interface.
    • Added createSignature() function.
    • Added CreateSignatureOptions interface.
    • Added verifyJsonLd() function.
    • Added VerifyJsonLdOptions interface.
    • Added verifySignature() function.
    • Added VerifySignatureOptions interface.
    • Added attachSignature() function.
    • Added detachSignature() function.
  • In inbox listeners, a received activity now can be forwarded to another server. [#137]

    • Added InboxContext interface.
    • Added ForwardActivityOptions interface.
    • The first parameter of the InboxListener callback type became InboxContext (was Context).
  • Added cat property to Actor type in Activity Vocabulary API.

    • Added Application.cat property.
    • new Application() constructor now accepts cat option.
    • Application.clone() method now accepts cat option.
    • Added Group.cat property.
    • new Group() constructor now accepts cat option.
    • Group.clone() method now accepts cat option.
    • Added Organization.cat property.
    • new Organization() constructor now accepts cat option.
    • Organization.clone() method now accepts cat option.
    • Added Person.cat property.
    • new Person() constructor now accepts cat option.
    • Person.clone() method now accepts cat option.
    • Added Service.cat property.
    • new Service() constructor now accepts cat option.
    • Service.clone() method now accepts cat option.
  • The Context.parseUri() method's parameter type became URL | null (was URL).

  • Context.sendActivity() method now adds Object Integrity Proofs to the activity to be sent only once. It had added Object Integrity Proofs to the activity for every recipient before.

  • The message queue is now able to be stopped manually by providing an AbortSignal object to the Federation.startQueue() method.

    • Added the optional second parameter to Federation.startQueue() method, which is a FederationStartQueueOptions object.
    • Added FederationStartQueueOptions interface.
    • Added the optional second parameter to MessageQueue.listen() method, which is a MessageQueueListenOptions object.
    • Added MessageQueueListenOptions interface.
    • The return type of MessageQueue.listen() method became Promise<void> (was void).
  • Added ParallelMessageQueue class. [#106]

  • WebFinger responses now include http://webfinger.net/rel/avatar links if the Actor object returned by the actor dispatcher has icon/icons property.

  • DenoKvMessageQueue now implements Disposable interface.

  • The fedify inbox command now sends Delete(Application) activities when it's terminated so that the peers can clean up data related to the temporary actor. [#135]

  • Add options for PostgreSQL drivers to fedify init command.

    • Added postgres value to the -k/--kv-store option of the fedify init command.
    • Added postgres value to the -q/--message-queue option of the fedify init command.
  • The generated project by the fedify init command now enables dotenv by default.

  • The fedify init command now generates .env file with default values.

  • Added more log messages using the LogTape library. Currently the below logger categories are used:

    • ["fedify", "sig", "ld"]

Fedify 0.15.1

14 Sep 16:47
0.15.1
87538e2
Compare
Choose a tag to compare

Released on September 15, 2024.

  • Fixed a bug where even if the ActorCallbackSetters.mapHandle() method was called, a WebFinger username was used as an actor's handle. [#136]