Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Created by
brew bumpCreated with
brew bump-formula-pr.release notes
Implemented FEP-fe34 origin-based security model to protect against content spoofing attacks and ensure secure federation practices. The security model enforces same-origin policy for ActivityPub objects and their properties, preventing malicious actors from impersonating content from other servers. [#440]
crossOriginoption to Activity Vocabulary property accessors (get*()methods) with three security levels:"ignore"(default, logs warning and returnsnull),"throw"(throws error), and"trust"(bypasses checks).LookupObjectOptions.crossOriginoption tolookupObject()function andContext.lookupObject()method for controlling cross-origin validation.Added
withIdempotency()method to configure activity idempotency strategies for inbox processing. This addresses issue #441 where activities with the same ID sent to different inboxes were incorrectly deduplicated globally instead of per-inbox. [#441]IdempotencyStrategytype.IdempotencyKeyCallbacktype.InboxListenerSetters.withIdempotency()method."per-origin"strategy is used for backward compatibility. This will change to"per-inbox"in Fedify 2.0. We recommend explicitly setting the strategy to avoid unexpected behavior changes.Fixed handling of ActivityPub objects containing relative URLs. The Activity Vocabulary classes now automatically resolve relative URLs by inferring the base URL from the object's
@idor document URL, eliminating the need for manualbaseUrlspecification in most cases. This improves interoperability with ActivityPub servers that emit relative URLs in properties likeicon.urlandimage.url. [#411, #443 by Jiwon Kwon]Added TypeScript support for all RFC 6570 URI Template expression types in dispatcher path parameters. Previously, only simple string expansion (
{identifier}) was supported in TypeScript types, while the runtime already supported all RFC 6570 expressions. Now TypeScript accepts all expression types including{+identifier}(reserved string expansion, recommended for URI identifiers),{#identifier}(fragment expansion),{.identifier}(label expansion),{/identifier}(path segments),{;identifier}(path-style parameters),{?identifier}(query component), and{&identifier}(query continuation). [#426, #446 by Jiwon Kwon]Rfc6570Expression<TParam>type helper.setActorDispatcher(),setObjectDispatcher(),setInboxDispatcher(),setOutboxDispatcher(),setFollowingDispatcher(),setFollowersDispatcher(),setLikedDispatcher(),setFeaturedDispatcher(),setFeaturedTagsDispatcher(),setInboxListeners(),setCollectionDispatcher(), andsetOrderedCollectionDispatcher().Added inverse properties for collections to Vocabulary API. [FEP-5711, #373, #381 by Jiwon Kwon]
new Collection()constructor now acceptslikesOfoption.Collection.likesOfIdproperty.Collection.getLikesOf()method.new Collection()constructor now acceptssharesOfoption.Collection.sharedOfIdproperty.Collection.getSharedOf()method.new Collection()constructor now acceptsrepliesOfoption.Collection.repliesOfIdproperty.Collection.getRepliesOf()method.new Collection()constructor now acceptsinboxOfoption.Collection.inboxOfIdproperty.Collection.getInboxOf()method.new Collection()constructor now acceptsoutboxOfoption.Collection.outboxOfIdproperty.Collection.getOutboxOf()method.new Collection()constructor now acceptsfollowersOfoption.Collection.followersOfIdproperty.Collection.getFollowersOf()method.new Collection()constructor now acceptsfollowingOfoption.Collection.followingOfIdproperty.Collection.getFollowingOf()method.new Collection()constructor now acceptslikedOfoption.Collection.likedOfIdproperty.Collection.getLikedOf()method.Changed how
parseSoftware()function handles non-Semantic Versioning number strings ontryBestEffortmode. [#353, #365 by Hyeonseo Kim]Separated modules from
@fedify/fedify/xinto dedicated packages to improve modularity and reduce bundle size. The existing integration functions in@fedify/fedify/xare now deprecated and will be removed in version 2.0.0. [#375 by Chanhaeng Lee]@fedify/fedify/x/cfworkersin favor of@fedify/cfworkers.@fedify/fedify/x/denokvin favor of@fedify/denokv.@fedify/fedify/x/honoin favor of@fedify/hono.@fedify/fedify/x/sveltekitin favor of@fedify/sveltekit.Extended
Linkfrom@fedify/fedify/webfingerto support OStatus 1.0 Draft 2. [#402, #404 by Hyeonseo Kim]templatefield to theLinkinterface.hreffield optional from theLinkinterface according to RFC 7033 Section 4.4.4.3.Added
Federatable.setWebFingerLinksDispatcher()method to set additional links to WebFinger. [#119, #407 by HyeonseoKim]Added CommonJS support alongside ESM for better NestJS integration and broader Node.js ecosystem compatibility. This eliminates the need for Node.js's
--experimental-require-moduleflag and resolves dual package hazard issues. [#429, #431]@fedify/cli
Added
Next.jsoption tofedify initcommand. This option allows users to initialize a new Fedify project with Next.js integration. [#313 by Chanhaeng Lee]Changed how
fedify nodeinfocommand handles non-Semantic Versioning number strings on-b/--best-effortmode. Now it uses the same logic as theparseSoftware()function in the @fedify/fedify package, which allows it to parse non-Semantic Versioning number strings more flexibly. [#353, #365 by Hyeonseo Kim]]Added
-T/--timeoutoption tofedify lookupcommand. This option allows users to specify timeout in seconds for network requests to prevent hanging on slow or unresponsive servers. [[#258], #372 by Hyunchae Kim]@fedify/amqp
@fedify/cfworkers
@fedify/fedify/x/cfworkersto improve modularity and reduce bundle size. [#375 by Chanhaeng Lee]@fedify/denokv
@fedify/fedify/x/denokvto improve modularity and reduce bundle size. [#375 by Chanhaeng Lee]@fedify/elysia
@fedify/express
@fedify/fastify
Created Fastify integration as the @fedify/fastify package. [#151, #450 by An Subin]
fedifyPlugin()function for integrating Fedify into Fastify applications.Request/Response.@fedify/h3
@fedify/hono
Created Hono integration as the @fedify/hono package. Separated from
@fedify/fedify/x/honoto improve modularity and reduce bundle size. [#375 by Chanhaeng Lee]Added CommonJS support alongside ESM for better compatibility with CommonJS-based Node.js applications. [#429, #431]
@fedify/koa
Created Koa integration as the @fedify/koa package. [#454, #455]
createMiddleware()function for integrating Fedify into Koa applications.@fedify/next
Created Next.js integration as the @fedify/next package. [#313 by Chanhaeng Lee]
Added CommonJS support alongside ESM for better compatibility with CommonJS-based Node.js applications. [#429, #431]
@fedify/postgres
@fedify/redis
Added support for Redis Cluster to the @fedify/redis package. [#368 by Michael Barrett]
Added CommonJS support alongside ESM for better compatibility with CommonJS-based Node.js applications. [#429, #431]
@fedify/sqlite
@fedify/sveltekit
Created SvelteKit integration as the @fedify/sveltekit package. Separated from
@fedify/fedify/x/sveltekitto improve modularity and reduce bundle size. [#375 by Chanhaeng Lee]Fixed SvelteKit integration hook types to correctly infer the request and response types in hooks. [#271, #394 by Chanhaeng Lee]
Added CommonJS support alongside ESM for better compatibility with CommonJS-based Node.js applications. [#429, #431]
@fedify/testing
View the full release notes at https://github.com/fedify-dev/fedify/releases/tag/1.9.0.