Releases: fedify-dev/fedify
Fedify 1.0.3
Released on October 17, 2024.
- Improved compatibility with some implementations (e.g., Nexkey) where some
CryptographicKeyobjects are incorrectly typed in JSON-LD objects.
Fedify 1.0.2
Released on September 27, 2024.
-
Fixed a bug of
Object.toJsonLd()method where it had incorrectly compacted thenameproperty when it was not a language map. -
The
Delete(Application)activities sent by thefedify inboxcommand 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
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
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
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
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"]
Fedify 0.15.1
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
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
ActorHandleMappertype.
- Added
-
Added
quoteUrlproperty toArticle,ChatMessage,Note, andQuestionclasses in Activity Vocabulary API.- Added
Article.quoteUrlproperty. new Article()constructor now acceptsquoteUrloption.Article.clone()method now acceptsquoteUrloption.- Added
ChatMessage.quoteUrlproperty. new ChatMessage()constructor now acceptsquoteUrloption.ChatMessage.clone()method now acceptsquoteUrloption.- Added
Note.quoteUrlproperty. new Note()constructor now acceptsquoteUrloption.Note.clone()method now acceptsquoteUrloption.- Added
Question.quoteUrlproperty. new Question()constructor now acceptsquoteUrloption.Question.clone()method now acceptsquoteUrloption.
- Added
-
The element type of the liked collection is now
ObjectorURLinstead ofLike.- Changed the type of
Federation.setLikedDispatcher()method's second parameter toCollectionDispatcher<Object | URL, RequestContext<TContextData>, TContextData, void>(wasCollectionDispatcher<Like, RequestContext<TContextData>, TContextData, void>).
- Changed the type of
-
Removed
expandoption ofObject.toJsonLd()method, which was deprecated in version 0.14.0. Useformat: "expand"option instead. -
Added
Context.lookupObject()method. -
Default document loaders now recognize ActivityStream objects in more ways:
- Loaders now recognize
alternateActivityStreams objects in theLinkheader. - Loaders now recognize
alternateActivityStreams objects in the<link>/<a>HTML elements.
- Loaders now recognize
-
Added
allowPrivateAddressoption toCreateFederationOptionsinterface. -
Fixed a bug where the WebFinger response had had a
subjectproperty with an unmatched URI to the requested resource when a non-acct:URI was given. -
Renamed the short option
-cfor--compactoffedify lookupcommand to-Cto avoid conflict with the short option-cfor--cache-dir. -
Added
-r/--rawoption tofedify lookupcommand to output the raw JSON object.
Fedify 0.14.4
Released on September 6, 2024.
- Fixed a bug of
Object.fromJsonLd()method where it had thrown aTypeErrorwhen the given JSON-LD object had an@idproperty with an empty string.
Fedify 0.13.5
Released on September 6, 2024.
- Fixed a bug of
Object.fromJsonLd()method where it had thrown aTypeErrorwhen the given JSON-LD object had an@idproperty with an empty string.