Fedify 1.0.0
Released on September 26, 2024.
-
The term
handlefor dispatching actors is deprecated in favor ofidentifier.-
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 }toContext.getDocumentLoader()method is deprecated in favor of{ username: string }. -
The type of
Context.sendActivity()method's first parameter becameSenderKeyPair | SenderKeyPair[] | { identifier: string } | { username: string } | { handle: string }(wasSenderKeyPair | SenderKeyPair[] | { handle: string }). -
All properties of
ParseUriResulttype became readonly. -
Added
identifierproperties next tohandleproperties inParseUriResulttype. -
The
handleproperties ofParseUriResulttype are deprecated in favor ofidentifierproperties. -
The return type of
SharedInboxKeyDispatchercallback type becameSenderKeyPair | { identifier: string } | { username: string } | { handle: string } | null | Promise<SenderKeyPair | { identifier: string } | { username: string } | { handle: string } | null>(wasSenderKeyPair | { 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
Federationobject 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
Signatureinterface. - Added
signJsonLd()function. - Added
SignJsonLdOptionsinterface. - Added
createSignature()function. - Added
CreateSignatureOptionsinterface. - Added
verifyJsonLd()function. - Added
VerifyJsonLdOptionsinterface. - Added
verifySignature()function. - Added
VerifySignatureOptionsinterface. - Added
attachSignature()function. - Added
detachSignature()function.
- A
-
In inbox listeners, a received activity now can be forwarded to another server. [#137]
- Added
InboxContextinterface. - Added
ForwardActivityOptionsinterface. - The first parameter of the
InboxListenercallback type becameInboxContext(wasContext).
- Added
-
Added
catproperty toActortype in Activity Vocabulary API.- Added
Application.catproperty. new Application()constructor now acceptscatoption.Application.clone()method now acceptscatoption.- Added
Group.catproperty. new Group()constructor now acceptscatoption.Group.clone()method now acceptscatoption.- Added
Organization.catproperty. new Organization()constructor now acceptscatoption.Organization.clone()method now acceptscatoption.- Added
Person.catproperty. new Person()constructor now acceptscatoption.Person.clone()method now acceptscatoption.- Added
Service.catproperty. new Service()constructor now acceptscatoption.Service.clone()method now acceptscatoption.
- Added
-
The
Context.parseUri()method's parameter type becameURL | null(wasURL). -
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
AbortSignalobject to theFederation.startQueue()method.- Added the optional second parameter to
Federation.startQueue()method, which is aFederationStartQueueOptionsobject. - Added
FederationStartQueueOptionsinterface. - Added the optional second parameter to
MessageQueue.listen()method, which is aMessageQueueListenOptionsobject. - Added
MessageQueueListenOptionsinterface. - The return type of
MessageQueue.listen()method becamePromise<void>(wasvoid).
- Added the optional second parameter to
-
Added
ParallelMessageQueueclass. [#106] -
WebFinger responses now include http://webfinger.net/rel/avatar links if the
Actorobject returned by the actor dispatcher hasicon/iconsproperty. -
DenoKvMessageQueuenow implementsDisposableinterface. -
The
fedify inboxcommand now sendsDelete(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 initcommand.- Added
postgresvalue to the-k/--kv-storeoption of thefedify initcommand. - Added
postgresvalue to the-q/--message-queueoption of thefedify initcommand.
- Added
-
The generated project by the
fedify initcommand now enables dotenv by default. -
The
fedify initcommand 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"]