Releases: fedify-dev/fedify
Fedify 1.0.4
Released on October 17, 2024.
-
Fixed a bug where
Actor.aliasId
andActor.aliasIds
properties had been represented asas:alsoKnownAs
property instead ofalsoKnownAs
property in compacted JSON-LD objects. -
Improved compatibility with Bridgy Fed for Bluesky where it puts an invalid URI with the format
at://...
in thealsoKnownAs
property.
Fedify 1.0.3
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
Released on September 27, 2024.
-
Fixed a bug of
Object.toJsonLd()
method where it had incorrectly compacted thename
property when it was not a language map. -
The
Delete(Application)
activities sent by thefedify 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
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
handle
for 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
ParseUriResult
type became readonly. -
Added
identifier
properties next tohandle
properties inParseUriResult
type. -
The
handle
properties ofParseUriResult
type are deprecated in favor ofidentifier
properties. -
The return type of
SharedInboxKeyDispatcher
callback 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
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.
- A
-
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 becameInboxContext
(wasContext
).
- Added
-
Added
cat
property toActor
type in Activity Vocabulary API.- Added
Application.cat
property. new Application()
constructor now acceptscat
option.Application.clone()
method now acceptscat
option.- Added
Group.cat
property. new Group()
constructor now acceptscat
option.Group.clone()
method now acceptscat
option.- Added
Organization.cat
property. new Organization()
constructor now acceptscat
option.Organization.clone()
method now acceptscat
option.- Added
Person.cat
property. new Person()
constructor now acceptscat
option.Person.clone()
method now acceptscat
option.- Added
Service.cat
property. new Service()
constructor now acceptscat
option.Service.clone()
method now acceptscat
option.
- 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
AbortSignal
object to theFederation.startQueue()
method.- Added the optional second parameter to
Federation.startQueue()
method, which is aFederationStartQueueOptions
object. - Added
FederationStartQueueOptions
interface. - Added the optional second parameter to
MessageQueue.listen()
method, which is aMessageQueueListenOptions
object. - Added
MessageQueueListenOptions
interface. - The return type of
MessageQueue.listen()
method becamePromise<void>
(wasvoid
).
- Added the optional second parameter to
-
Added
ParallelMessageQueue
class. [#106] -
WebFinger responses now include http://webfinger.net/rel/avatar links if the
Actor
object returned by the actor dispatcher hasicon
/icons
property. -
DenoKvMessageQueue
now implementsDisposable
interface. -
The
fedify inbox
command 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 init
command.- Added
postgres
value to the-k
/--kv-store
option of thefedify init
command. - Added
postgres
value to the-q
/--message-queue
option of thefedify init
command.
- Added
-
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
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
ActorHandleMapper
type.
- Added
-
Added
quoteUrl
property toArticle
,ChatMessage
,Note
, andQuestion
classes in Activity Vocabulary API.- Added
Article.quoteUrl
property. new Article()
constructor now acceptsquoteUrl
option.Article.clone()
method now acceptsquoteUrl
option.- Added
ChatMessage.quoteUrl
property. new ChatMessage()
constructor now acceptsquoteUrl
option.ChatMessage.clone()
method now acceptsquoteUrl
option.- Added
Note.quoteUrl
property. new Note()
constructor now acceptsquoteUrl
option.Note.clone()
method now acceptsquoteUrl
option.- Added
Question.quoteUrl
property. new Question()
constructor now acceptsquoteUrl
option.Question.clone()
method now acceptsquoteUrl
option.
- Added
-
The element type of the liked collection is now
Object
orURL
instead 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
expand
option 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
alternate
ActivityStreams objects in theLink
header. - Loaders now recognize
alternate
ActivityStreams objects in the<link>
/<a>
HTML elements.
- Loaders now recognize
-
Added
allowPrivateAddress
option toCreateFederationOptions
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
offedify lookup
command to-C
to avoid conflict with the short option-c
for--cache-dir
. -
Added
-r
/--raw
option tofedify lookup
command 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 aTypeError
when the given JSON-LD object had an@id
property with an empty string.