Releases: dahlia/fedify
Fedify 0.6.0
Released on April 9, 2024.
-
DocumentLoader
is now propagated to the loaded remote objects from Activity Vocabulary objects. [#27]- Added
options
parameter to Activity Vocabulary constructors. - Added
options
parameter toclone()
method of Activity Vocabulary objects. - The Activity Vocabulary object passed to
InboxListener
now implicitly loads remote object with an authenticatedDocumentLoader
.
- Added
-
Added
Federation.fetch()
method.- Deprecated
Federation.handle()
method. UseFederation.fetch()
method instead. - Renamed
FederationHandlerParameters
type toFederationFetchOptions
. - Added
integrateFetchOptions()
function. - Deprecated
integrateHandlerOptions()
function.
- Deprecated
-
Added
@fedify/fedify/x/hono
module for integrating with Hono middleware. [#25]- Added
federation()
function. - Added
ContextDataFactory
type.
- Added
-
Context.sendActivity()
method now throwsTypeError
instead of silently failing when the givenActivity
object lacks the actor property. -
Context.sendActivity()
method now uses an authenticated document loader under the hood. -
Added outbox error handler to
Federation
.- Added
onOutboxError
option tonew Federation()
constructor. - Added
OutboxErrorHandler
type.
- Added
Fedify 0.5.1
Released on April 5, 2024.
- Fixed a bug of
Federation
that its actor/collection dispatchers had done content negotiation before determining if the resource exists or not. It also fixed a bug thatintegrateHandler()
from@fedify/fedify/x/fresh
had responded with406 Not Acceptable
instead of404 Not Found
when the resource does not exist in the web browser. [#34]
Fedify 0.5.0
Released on April 2, 2024.
-
Fedify is now available on npm: @fedify/fedify. [#24]
-
Abstract key-value store for caching.
- Added
KvStore
interface. - Added
KvStoreSetOptions
interface. - Added
KvKey
type. - Added
DenoKvStore
class. KvCacheParameters.kv
option now accepts aKvStore
instead ofDeno.Kv
.KvCacheParameters.prefix
option now accepts aKvKey
instead ofDeno.KvKey
.FederationParameters.kv
option now accepts aKvStore
instead ofDeno.Kv
.FederationKvPrefixes.activityIdempotence
option now accepts aKvKey
instead ofDeno.KvKey
.FederationKvPrefixes.remoteDocument
option now accepts aKvKey
instead ofDeno.KvKey
.
- Added
-
Abstract message queue for outgoing activities.
- Added
MessageQueue
interface. - Added
MessageQueueEnqueueOptions
interface. - Added
InProcessMessageQueue
class. - Added
FederationParameters.queue
option.
- Added
-
Added
@fedify/fedify/x/denokv
module for adaptingDeno.Kv
toKvStore
andMessageQueue
. It is only available in Deno runtime.- Added
DenoKvStore
class. - Added
DenoKvMessageQueue
class.
- Added
-
Added
PropertyValue
to Activity Vocabulary API. [#29]- Added
PropertyValue
class. new Object()
constructor'sattachments
option now acceptsPropertyValue
objects.new Object()
constructor'sattachment
option now accepts aPropertyValue
object.Object.getAttachments()
method now yieldsPropertyValue
objects besidesObject
andLink
objects.Object.getAttachment()
method now returns aPropertyValue
object besides anObject
and aLink
object.Object.clone()
method'sattachments
option now acceptsPropertyValue
objects.Object.clone()
method'sattachment
option now accepts aPropertyValue
object.
- Added
-
Removed dependency on jose.
- Added
exportSpki()
function. - Added
importSpki()
function.
- Added
-
Fixed a bug that
Application.manuallyApprovesFollowers
,Group.manuallyApprovesFollowers
,Organization.manuallyApprovesFollowers
,Person.manuallyApprovesFollowers
, andService.manuallyApprovesFollowers
properties were not properly displayed in Mastodon.
Fedify 0.4.0
Released on March 26, 2024.
-
Added
@fedify/fedify/x/fresh
module for integrating with Fresh middleware.- Added
integrateHandler()
function. - Added
integrateHandlerOptions()
function.
- Added
-
Added
getActorHandle()
function. -
Fedify now has authenticated document loader. [#12]
- Added
Context.getDocumentLoader()
method. - Added
getAuthenticatedDocumentLoader()
function. - Added
AuthenticatedDocumentLoaderFactory
type. - Added
authenticatedDocumentLoaderFactory
option tonew Federation()
constructor. Context.documentLoader
property now returns an authenticated document loader in personal inbox listeners. (Note that it's not affected in shared inbox listeners.)
- Added
-
Added singular accessors to
Object
'sicon
andimage
properties.new Object()
constructor now acceptsicon
option.new Object()
constructor now acceptsimage
option.- Added
Object.getIcon()
method. - Added
Object.getImage()
method. Object.clone()
method now acceptsicon
option.Object.clone()
method now acceptsimage
option.
-
Object
'sicon
andimage
properties no more acceptLink
objects.new Object()
constructor'sicons
option no more acceptsLink
objects.new Object()
constructor'simages
option no more acceptsLink
objects.Object.getIcons()
method no more yieldsLink
objects.Object.getImages()
method no more yieldsLink
objects.Object.clone()
method'sicons
option no more acceptsLink
objects.Object.clone()
method'simages
option no more acceptsLink
objects.
-
Object
'sattributedTo
property was renamed toattribution
.new Object()
constructor'sattributedTo
option was renamed toattribution
.new Object()
constructor'sattributedTos
option was renamed toattributions
.Object.getAttributedTo()
method is renamed toObject.getAttribution()
.Object.getAttributedTos()
method is renamed toObject.getAttributions()
.Object.clone()
method'sattributedTo
option is renamed toattribution
.Object.clone()
method'sattributedTos
option is renamed toattributions
.
-
Object
'sattribution
property (wasattributedTo
) now accepts onlyActor
objects.new Object()
constructor'sattribution
option (wasattributedTo
) now accepts only anActor
object.new Object()
constructor'sattributions
option (wasattributedTos
) now accepts onlyActor
objects.Object.getAttribution()
method (wasgetAttributedTo()
) now returns only anActor
object.Object.getAttributions()
method (wasgetAttributedTos()
) now returns onlyActor
objects.Object.clone()
method'sattribution
option (attributedTo
) now accepts only anActor
object.Object.clone()
method'sattributions
option (attributedTos
) now accepts onlyActor
objects.
-
Activity
'sobject
property no more acceptsLink
objects.new Activity()
constructor'sobject
option no more accepts aLink
object.new Activity()
constructor'sobjects
option no more acceptsLink
objects.Activity.getObject()
method no more returns aLink
object.Activity.getObjects()
method no more returnsLink
objects.Activity.clone()
method'sobject
option no more accepts aLink
object.Activity.clone()
method'sobjects
option no more acceptsLink
objects.
-
Activity
'sactor
property now accepts onlyActor
objects.new Activity()
constructor'sactor
option now accepts only anActor
object.new Activity()
constructor'sactors
option now accepts onlyActor
objects.Activity.getActor()
method now returns only anActor
object.Activity.getActors()
method now returns onlyActor
objects.Activity.clone()
method'sactor
option now accepts only anActor
object.Activity.clone()
method'sactors
option now accepts onlyActor
objects.
-
Added
sensitive
property toObject
class.new Object()
constructor now acceptssensitive
option.- Added
Object.sensitive
attribute. Object.clone()
method now acceptssensitive
option.
-
Now
lookupWebFinger()
follows redirections. -
The
http://webfinger.net/rel/profile-page
links in WebFinger responses now omittype
property.
Fedify 0.3.0
Released on March 15, 2024.
-
Added utility functions for responding with an ActivityPub object:
- Added
respondWithObject()
function. - Added
respondWithObjectIfAcceptable()
function. - Added
RespondWithObjectOptions
interface.
- Added
-
Added utility functions for generating and exporting cryptographic keys which are compatible with popular ActivityPub software:
- Added
generateCryptoKeyPair()
function. - Added
exportJwk()
function. - Added
importJwk()
function.
- Added
-
The following functions and methods now throw
TypeError
if the specifiedCryptoKey
is notextractable
:Context.getActorKey()
methodContext.sendActivity()
methodFederation.sendActivity()
method
-
Added
immediate
option toContext.sendActivity()
andFederation.sendActivity()
methods. -
Added
SendActivityOptions
interface. -
Now
onNotFound
/onNotAcceptable
options are optional forFederation.handle()
method. [#9]
Fedify 0.2.0
Released on March 10, 2024.
-
Implemented NodeInfo 2.1 protocol. [#1]
- Now
Federation.handle()
accepts requests for /.well-known/nodeinfo. - Added
Federation.setNodeInfoDispatcher()
method. - Added
Context.getNodeInfoUri()
method. - Added
NodeInfo
interface. - Added
Software
interface. - Added
Protocol
type. - Added
Services
interface. - Added
InboundService
type. - Added
OutboundService
type. - Added
Usage
interface. - Added
NodeInfoDispatcher
type. - Added
nodeInfoToJson()
function.
- Now
-
Implemented WebFinger client.
- Added
lookupObject()
function. - Added
lookupWebFinger()
function.
- Added
-
Federation.handle()
now responds withAccess-Control-Allow-Origin: *
header for WebFinger requests. -
fetchDocumentLoader()
, the default document loader, now sendsAccept: application/activity+json, application/ld+json
header (wasAccept: application/ld+json
only).
Fedify 0.1.0
Initial release. Released on March 8, 2024.