Skip to content

Releases: dahlia/fedify

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]

Fedify 0.15.0

11 Sep 05:58
0.15.0
e4d6db9
Compare
Choose a tag to compare

Released on September 11, 2024.

  • Actors, collections, and objects now can have their URIs that do not consist of a WebFinger username, which means actors can change their fediverse handles.

    • Added ActorCallbackSetters.mapHandle() method.
    • Added ActorHandleMapper type.
  • Added quoteUrl property to Article, ChatMessage, Note, and Question classes in Activity Vocabulary API.

    • Added Article.quoteUrl property.
    • new Article() constructor now accepts quoteUrl option.
    • Article.clone() method now accepts quoteUrl option.
    • Added ChatMessage.quoteUrl property.
    • new ChatMessage() constructor now accepts quoteUrl option.
    • ChatMessage.clone() method now accepts quoteUrl option.
    • Added Note.quoteUrl property.
    • new Note() constructor now accepts quoteUrl option.
    • Note.clone() method now accepts quoteUrl option.
    • Added Question.quoteUrl property.
    • new Question() constructor now accepts quoteUrl option.
    • Question.clone() method now accepts quoteUrl option.
  • The element type of the liked collection is now Object or URL instead of Like.

    • Changed the type of Federation.setLikedDispatcher() method's second parameter to CollectionDispatcher<Object | URL, RequestContext<TContextData>, TContextData, void> (was CollectionDispatcher<Like, RequestContext<TContextData>, TContextData, void>).
  • Removed expand option of Object.toJsonLd() method, which was deprecated in version 0.14.0. Use format: "expand" option instead.

  • Added Context.lookupObject() method.

  • Default document loaders now recognize ActivityStream objects in more ways:

    • Loaders now recognize alternate ActivityStreams objects in the Link header.
    • Loaders now recognize alternate ActivityStreams objects in the <link>/<a> HTML elements.
  • Added allowPrivateAddress option to CreateFederationOptions interface.

  • Fixed a bug where the WebFinger response had had a subject property with an unmatched URI to the requested resource when a non-acct: URI was given.

  • Renamed the short option -c for --compact of fedify lookup command to -C to avoid conflict with the short option -c for --cache-dir.

  • Added -r/--raw option to fedify lookup command to output the raw JSON object.

Fedify 0.14.4

06 Sep 11:05
0.14.4
456206c
Compare
Choose a tag to compare

Released on September 6, 2024.

  • Fixed a bug of Object.fromJsonLd() method where it had thrown a TypeError when the given JSON-LD object had an @id property with an empty string.

Fedify 0.13.5

06 Sep 10:56
0.13.5
b4ace75
Compare
Choose a tag to compare

Released on September 6, 2024.

  • Fixed a bug of Object.fromJsonLd() method where it had thrown a TypeError when the given JSON-LD object had an @id property with an empty string.

Fedify 0.14.3

01 Sep 13:24
0.14.3
2801037
Compare
Choose a tag to compare

Released on September 1, 2024.

  • Fixed fedify inbox command where it had ignored -a/--accept-follow options when no -f/--follow option was provided. [#132]