Releases: dahlia/fedify
Fedify 0.15.3
Released on October 23, 2024.
- The
fetchDocumentLoader()
function now preloads the following JSON-LD context: https://purl.archive.org/socialweb/webfinger.
Fedify 1.1.0
Released on October 20, 2024.
-
Added utility functions for traversing remote collections. [#150]
- Added
Context.traverseCollection()
method. - Added
traverseCollection()
function. - Added
TraverseCollectionOptions
interface.
- Added
-
Added
EmojiReact
class to Activity Vocabulary API. [FEP-c0e0] -
Added
successor
property to theActor
types in the Activity Vocabulary API.- Added
Application.getSuccessor()
method. new Application()
constructor now acceptssuccessor
option.Application.clone()
method now acceptssuccessor
option.- Added
Group.getSuccessor()
method. new Group()
constructor now acceptssuccessor
option.Group.clone()
method now acceptssuccessor
option.- Added
Organization.getSuccessor()
method. new Organization()
constructor now acceptssuccessor
option.Organization.clone()
method now acceptssuccessor
option.- Added
Person.getSuccessor()
method. new Person()
constructor now acceptssuccessor
option.Person.clone()
method now acceptssuccessor
option.- Added
Service.getSuccessor()
method. new Service()
constructor now acceptssuccessor
option.Service.clone()
method now acceptssuccessor
option.
- Added
-
Added
DidService
class to Activity Vocabulary API. [FEP-9091, #146] -
Added
Export
class to Activity Vocabulary API. [FEP-9091, #146] -
Added
service
property to theActor
types in the Activity Vocabulary API. [FEP-9091, #146]- Added
Application.getService()
method. - Added
Application.getServices()
method. new Application()
constructor now acceptsservice
option.new Application()
constructor now acceptsservices
option.Application.clone()
method now acceptsservice
option.Application.clone()
method now acceptsservices
option.- Added
Group.getService()
method. - Added
Group.getServices()
method. new Group()
constructor now acceptsservice
option.new Group()
constructor now acceptsservices
option.Group.clone()
method now acceptsservice
option.Group.clone()
method now acceptsservices
option.- Added
Organization.getService()
method. - Added
Organization.getServices()
method. new Organization()
constructor now acceptsservice
option.new Organization()
constructor now acceptsservices
option.Organization.clone()
method now acceptsservice
option.Organization.clone()
method now acceptsservices
option.- Added
Person.getService()
method. - Added
Person.getServices()
method. new Person()
constructor now acceptsservice
option.new Person()
constructor now acceptsservices
option.Person.clone()
method now acceptsservice
option.Person.clone()
method now acceptsservices
option.- Added
Service.getService()
method. - Added
Service.getServices()
method. new Service()
constructor now acceptsservice
option.new Service()
constructor now acceptsservices
option.Service.clone()
method now acceptsservice
option.Service.clone()
method now acceptsservices
option.
- Added
-
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 becameTemporal.Duration | Temporal.DurationLike | false
(wasTemporal.DurationLike | false
). -
The type of
CreateFederationOptions.signatureTimeWindow
property becameTemporal.Duration | Temporal.DurationLike | false
(wasTemporal.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
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]