Loading .github/workflows/build.yaml +2 −0 Original line number Diff line number Diff line Loading @@ -421,6 +421,7 @@ jobs: | @fedify/fedify | ${{ steps.versioning.outputs.version }} | [JSR][jsr:@fedify/fedify] | [npm][npm:@fedify/fedify] | | @fedify/cli | ${{ steps.versioning.outputs.version }} | [JSR][jsr:@fedify/cli] | | | @fedify/amqp | ${{ steps.versioning.outputs.version }} | [JSR][jsr:@fedify/amqp] | [npm][npm:@fedify/amqp] | | @fedify/elysia | ${{ steps.versioning.outputs.version }} | | [npm][npm:@fedify/elysia] | | @fedify/express | ${{ steps.versioning.outputs.version }} | [JSR][jsr:@fedify/express] | [npm][npm:@fedify/express] | | @fedify/h3 | ${{ steps.versioning.outputs.version }} | [JSR][jsr:@fedify/h3] | [npm][npm:@fedify/h3] | | @fedify/nestjs | ${{ steps.versioning.outputs.version }} | | [npm][npm:@fedify/nestjs] | Loading @@ -434,6 +435,7 @@ jobs: [jsr:@fedify/cli]: https://jsr.io/@fedify/cli@${{ steps.versioning.outputs.version }} [jsr:@fedify/amqp]: https://jsr.io/@fedify/amqp@${{ steps.versioning.outputs.version }} [npm:@fedify/amqp]: https://www.npmjs.com/package/@fedify/amqp/v/${{ steps.versioning.outputs.short_version }} [npm:@fedify/elysia]: https://www.npmjs.com/package/@fedify/elysia/v/${{ steps.versioning.outputs.short_version }} [jsr:@fedify/express]: https://jsr.io/@fedify/express@${{ steps.versioning.outputs.version }} [npm:@fedify/express]: https://www.npmjs.com/package/@fedify/express/v/${{ steps.versioning.outputs.short_version }} [jsr:@fedify/h3]: https://jsr.io/@fedify/h3@${{ steps.versioning.outputs.version }} Loading AGENTS.md +4 −2 Original line number Diff line number Diff line Loading @@ -64,6 +64,7 @@ The repository is organized as a monorepo with the following packages: - *src/x/*: Framework integrations - *packages/cli/*: Fedify CLI implementation (@fedify/cli, built with Deno) - *packages/amqp/*: AMQP/RabbitMQ driver (@fedify/amqp) - *packages/elysia/*: Elysia integration (@fedify/elysia) - *packages/express/*: Express.js integration (@fedify/express) - *packages/h3/*: h3 framework integration (@fedify/h3) - *packages/postgres/*: PostgreSQL drivers (@fedify/postgres) Loading Loading @@ -256,8 +257,9 @@ The monorepo uses different build processes for different packages: 2. **@fedify/cli**: Built with Deno, distributed via JSR and npm 3. **Database adapters and integrations**: Use tsdown for TypeScript compilation: - *packages/amqp/*, *packages/express/*, *packages/h3/*, *packages/sqlite/*, *packages/postgres/*, *packages/redis/*, *packages/nestjs/* - *packages/amqp/*, *packages/elysia*, *packages/express/*, *packages/h3/*, *packages/sqlite/*, *packages/postgres/*, *packages/redis/*, *packages/nestjs/* - Built to support Node.js and Bun environments Ensure changes work across all distribution formats and target environments. CHANGES.md +133 −57 Original line number Diff line number Diff line Loading @@ -3,36 +3,56 @@ Fedify changelog ================ Version 1.9.0 ------------- To be released. Version 1.8.1 ------------- To be released. Note that 1.8.0 was skipped due to a mistake in Released on August 6, 2025. Note that 1.8.0 was skipped due to a mistake in the versioning. - The repository has been restructured as a monorepo, consolidating all Fedify packages into a single repository with unified versioning. This change affects the following packages: - `@fedify/fedify` (main library) - `@fedify/cli` (CLI toolchain) - `@fedify/amqp` (AMQP/RabbitMQ driver) - `@fedify/express` (Express integration) - `@fedify/h3` (h3 framework integration) - `@fedify/postgres` (PostgreSQL drivers) - `@fedify/redis` (Redis drivers) - *@fedify/fedify* (main library) - *@fedify/cli* (CLI toolchain) - *@fedify/amqp* (AMQP/RabbitMQ driver) - *@fedify/express* (Express integration) - *@fedify/h3* (h3 framework integration) - *@fedify/postgres* (PostgreSQL drivers) - *@fedify/redis* (Redis drivers) All packages now follow the same version number and are released together. Previously, each package had independent versioning. - Added mock classes for `Federation` and `Context` interfaces to improve testability without requiring a real federation server setup. The mock classes track all sent activities with metadata and support all standard Fedify patterns including custom path registration and multiple activity type listeners. [[#197], [#283] by Lee ByeongJun] - Several new packages have been added to the monorepo: - Added `@fedify/testing` package. - Added `MockFederation` class. - Added `MockContext` class. - *@fedify/elysia* ([Elysia] integration) - *@fedify/nestjs* ([NestJS] integration) - *@fedify/sqlite* (SQLite drivers) - *@fedify/testing* (testing utilities) ### @fedify/fedify - Added custom collection dispatchers. [[#310], [#332] by ChanHaeng Lee] - Added `CustomCollectionDispatcher`, `CustomCollectionCounter`, and `CustomCollectionCursor` types for custom collection dispatching. - Added `CustomCollectionCallbackSetters` type for setting custom collection callbacks. - Added `CustomCollectionHandler` class and `handleCustomCollection()` and `handleOrderedCollection()` functions to process custom collections. - Added `setCollectionDispatcher()` and `setOrderedCollectionDispatcher()` methods to the `Federatable` interface. Implemented in `FederationBuilderImpl` class. - Added `getCollectionUri()` method to the `Context` interface. - Added utility types `ConstructorWithTypeId` and `ParamsKeyPath` for custom collection dispatchers. - Key–value stores now optionally support CAS (compare-and-swap) operation for atomic updates. This is useful for implementing optimistic locking Loading @@ -42,13 +62,6 @@ the versioning. - Added `MemoryKvStore.cas()` method. - Added `DenoKvStore.cas()` method. - Added options to customize the temporary actor information when running `fedify inbox` command. [[#262], [#285] by Hasang Cho] - Added `--actor-name` option to customize the actor display name. - Added `--actor-summary` option to customize the actor description. - Both options provide sensible defaults when not specified. - Added useful functions for fediverse handles at `@fedify/fedify/vocab`. This functions simplify working with fediverse handles and URLs. [[#278] by ChanHaeng Lee] Loading @@ -63,6 +76,25 @@ the versioning. - Added `LookupWebFingerOptions.maxRedirection` option. [[#248], [#281] by Lee ByeongJun] - APIs making HTTP requests became able to optionally take `AbortSignal`. [[#51], [#315] by Hyunchae Kim] - Added `DocumentLoaderOptions` interface. - The `DocumentLoader` type became able to optionally take the second parameter. - Added `LookupObjectOptions.signal` option. - Added `LookupWebFingerOptions.signal` option. - Added `DoubleKnockOptions.signal` option. ### @fedify/cli - The `fedify` CLI now correctly disables color output when standard output isn't a TTY (for example, when redirecting to a file) or when the `NO_COLOR` environment variable is set. [[#257], [#341] by Cho Hasang] - Added `fedify nodeinfo` command, and deprecated `fedify node` command in favor of `fedify nodeinfo`. [[#267], [#331] by Hyeonseo Kim] - Added `fedify webfinger` command. This command allows users to look up WebFinger information for a given resource. [[#260], [#278] by ChanHaeng Lee] Loading @@ -77,6 +109,27 @@ the versioning. number of redirects to follow when performing WebFinger lookups. [[#311], [#328] by KeunHyeong Park] - The `fedify lookup` command now displays images depending on user's terminal emulator. [[#169], [#348] by Jiwon Kwon] - Supported terminal emulators are [Kitty], [WezTerm], [Konsole], [Warp], [Wayst], [st], and [iTerm]. - Added `-o`/`--output` option to `fedify lookup` command. This option allows users to save retrieved lookup results to specified path. [[#261], [#321] by Jiwon Kwon] - Added options to customize the temporary actor information when running `fedify inbox` command. [[#262], [#285] by Hasang Cho] - Added `--actor-name` option to customize the actor display name. - Added `--actor-summary` option to customize the actor description. - Both options provide sensible defaults when not specified. - The `fedify inbox` command now displays the type of the object contained in each activity, in addition to the activity's own type. [[#191], [#342] by Jang Hanarae] - Added `--dry-run` option to `fedify init` command. This option allows users to preview what files and configurations would be created without actually creating them. [[#263], [#298] by Lee ByeongJun] Loading @@ -85,50 +138,47 @@ the versioning. failed to correctly render the favicon in terminal emulators that do not support 24-bit colors. [[#168], [#282], [#304] by Hyeonseo Kim] - Supported NestJS integration with the `@fedify/nestjs` package. ### @fedify/elysia - Supported [Elysia] integration with the *@fedify/elysia* package. [[#286], [#339] by Hyeonseo Kim] - Added *@fedify/elysia* package. - Added `fedify` Elysia plugin for integrating Fedify into Elysia applications. ### @fedify/nestjs - Supported [NestJS] integration with the *@fedify/nestjs* package. [[#269], [#309] by Jaeyeol Lee] - Added `@fedify/nestjs` package. - Added *@fedify/nestjs* package. - Added `FedifyModule` for integrating Fedify into NestJS applications. ### @fedify/sqlite - Added `SqliteKvStore`, implementing `KvStore` using SQLite with the `@fedify/sqlite` package. Compatible with Bun, Deno, and Node.js. *@fedify/sqlite* package. Compatible with Bun, Deno, and Node.js. [[#274], [#318] by An Subin] - Added `@fedify/sqlite` package. - Added *@fedify/sqlite* package. - Added `SqliteKvStore`, a SQLite implementation of `KvStore`. - Added `-o`/`--output` option to `fedify lookup` command. This option allows users to save retrieved lookup results to specified path. [[#261], [#321] by Jiwon Kwon] - Added `fedify nodeinfo` command, and deprecated `fedify node` command in favor of `fedify nodeinfo`. [[#267], [#331] by Hyeonseo Kim] ### @fedify/testing - Added custom collection dispatchers. [[#310], [#332] by ChanHaeng Lee] - Added `CustomCollectionDispatcher`, `CustomCollectionCounter`, and `CustomCollectionCursor` types for custom collection dispatching. - Added `CustomCollectionCallbackSetters` type for setting custom collection callbacks. - Added `CustomCollectionHandler` class and `handleCustomCollection()` and `handleOrderedCollection()` functions to process custom collections. - Added `setCollectionDispatcher()` and `setOrderedCollectionDispatcher()` methods to the `Federatable` interface. Implemented in `FederationBuilderImpl` class. - Added `getCollectionUri()` method to the `Context` interface. - Added utility types `ConstructorWithTypeId` and `ParamsKeyPath` for custom collection dispatchers. - The `fedify inbox` command now displays the type of the object contained in each activity, in addition to the activity's own type. [[#191], [#342] by Jang Hanarae] - Added mock classes for `Federation` and `Context` interfaces to improve testability without requiring a real federation server setup. The mock classes track all sent activities with metadata and support all standard Fedify patterns including custom path registration and multiple activity type listeners. [[#197], [#283] by Lee ByeongJun] - The `fedify` CLI now correctly disables color output when standard output isn't a TTY (for example, when redirecting to a file) or when the `NO_COLOR` environment variable is set. [[#257], [#341] by Cho Hasang] - Added *@fedify/testing* package. - Added `MockFederation` class. - Added `MockContext` class. [#51]: https://github.com/fedify-dev/fedify/issues/51 [#168]: https://github.com/fedify-dev/fedify/issues/168 [#169]: https://github.com/fedify-dev/fedify/issues/169 [#191]: https://github.com/fedify-dev/fedify/issues/191 [#197]: https://github.com/fedify-dev/fedify/issues/197 [#248]: https://github.com/fedify-dev/fedify/issues/248 Loading @@ -139,24 +189,50 @@ the versioning. [#263]: https://github.com/fedify-dev/fedify/issues/263 [#267]: https://github.com/fedify-dev/fedify/issues/267 [#269]: https://github.com/fedify-dev/fedify/issues/269 [#274]: https://github.com/fedify-dev/fedify/issues/274 [#278]: https://github.com/fedify-dev/fedify/pull/278 [#281]: https://github.com/fedify-dev/fedify/pull/281 [#282]: https://github.com/fedify-dev/fedify/pull/282 [#283]: https://github.com/fedify-dev/fedify/pull/283 [#285]: https://github.com/fedify-dev/fedify/pull/285 [#286]: https://github.com/fedify-dev/fedify/issues/286 [#298]: https://github.com/fedify-dev/fedify/pull/298 [#304]: https://github.com/fedify-dev/fedify/issues/304 [#309]: https://github.com/fedify-dev/fedify/pull/309 [#274]: https://github.com/fedify-dev/fedify/issues/274 [#318]: https://github.com/fedify-dev/fedify/pull/318 [#310]: https://github.com/fedify-dev/fedify/issues/310 [#311]: https://github.com/fedify-dev/fedify/issues/311 [#315]: https://github.com/fedify-dev/fedify/pull/315 [#318]: https://github.com/fedify-dev/fedify/pull/318 [#321]: https://github.com/fedify-dev/fedify/pull/321 [#328]: https://github.com/fedify-dev/fedify/pull/328 [#331]: https://github.com/fedify-dev/fedify/pull/331 [#332]: https://github.com/fedify-dev/fedify/pull/332 [#342]: https://github.com/fedify-dev/fedify/pull/342 [#339]: https://github.com/fedify-dev/fedify/pull/339 [#341]: https://github.com/fedify-dev/fedify/pull/341 [#342]: https://github.com/fedify-dev/fedify/pull/342 [#348]: https://github.com/fedify-dev/fedify/pull/348 [Kitty]: https://sw.kovidgoyal.net/kitty/ [Elysia]: https://elysiajs.com/ [NestJS]: https://nestjs.com/ [WezTerm]: https://wezterm.org/ [Konsole]: https://konsole.kde.org/ [Warp]: https://www.warp.dev/ [Wayst]: https://github.com/91861/wayst [st]: https://st.suckless.org/ [iTerm]: https://iterm2.com/ Version 1.7.8 ------------- Released on August 5, 2025. - Updated `kvCache()` wrapper to read from preloaded contexts rather than from the `KvStore`. This saves network and disk overheads when parsing activities and objects using the JSON-LD processor. [[#352] by Fabien O'Carroll] [#352]: https://github.com/fedify-dev/fedify/pull/352 Version 1.7.7 Loading CONTRIBUTING.md +2 −1 Original line number Diff line number Diff line Loading @@ -187,7 +187,8 @@ The repository is organized as a monorepo with the following packages: - *packages/cli/*: The Fedify CLI (@fedify/cli). The CLI is built with [Deno]. - *packages/amqp/*: AMQP/RabbitMQ driver (@fedify/amqp) for Fedify. - *packages/express/*: Express.js integration (@fedify/express) for Fedify. - *packages/elysia/*: Elysia integration (@fedify/elysia) for Fedify. - *packages/express/*: Express integration (@fedify/express) for Fedify. - *packages/h3/*: h3 framework integration (@fedify/h3) for Fedify. - *packages/postgres/*: PostgreSQL drivers (@fedify/postgres) for Fedify. - *packages/redis/*: Redis drivers (@fedify/redis) for Fedify. Loading deno.json +2 −0 Original line number Diff line number Diff line Loading @@ -3,6 +3,7 @@ "./packages/fedify", "./packages/cli", "./packages/amqp", "./packages/elysia", "./packages/express", "./packages/h3", "./packages/postgres", Loading @@ -20,6 +21,7 @@ "@logtape/logtape": "jsr:@logtape/logtape@^1.0.0", "@std/assert": "jsr:@std/assert@^1.0.13", "@std/async": "jsr:@std/async@^1.0.13", "@std/encoding": "jsr:@std/encoding@^1.0.10", "@std/fs": "jsr:@std/fs@^1.0.3", "@std/path": "jsr:@std/path@^1.0.6", "@std/yaml": "jsr:@std/yaml@^1.0.8", Loading Loading
.github/workflows/build.yaml +2 −0 Original line number Diff line number Diff line Loading @@ -421,6 +421,7 @@ jobs: | @fedify/fedify | ${{ steps.versioning.outputs.version }} | [JSR][jsr:@fedify/fedify] | [npm][npm:@fedify/fedify] | | @fedify/cli | ${{ steps.versioning.outputs.version }} | [JSR][jsr:@fedify/cli] | | | @fedify/amqp | ${{ steps.versioning.outputs.version }} | [JSR][jsr:@fedify/amqp] | [npm][npm:@fedify/amqp] | | @fedify/elysia | ${{ steps.versioning.outputs.version }} | | [npm][npm:@fedify/elysia] | | @fedify/express | ${{ steps.versioning.outputs.version }} | [JSR][jsr:@fedify/express] | [npm][npm:@fedify/express] | | @fedify/h3 | ${{ steps.versioning.outputs.version }} | [JSR][jsr:@fedify/h3] | [npm][npm:@fedify/h3] | | @fedify/nestjs | ${{ steps.versioning.outputs.version }} | | [npm][npm:@fedify/nestjs] | Loading @@ -434,6 +435,7 @@ jobs: [jsr:@fedify/cli]: https://jsr.io/@fedify/cli@${{ steps.versioning.outputs.version }} [jsr:@fedify/amqp]: https://jsr.io/@fedify/amqp@${{ steps.versioning.outputs.version }} [npm:@fedify/amqp]: https://www.npmjs.com/package/@fedify/amqp/v/${{ steps.versioning.outputs.short_version }} [npm:@fedify/elysia]: https://www.npmjs.com/package/@fedify/elysia/v/${{ steps.versioning.outputs.short_version }} [jsr:@fedify/express]: https://jsr.io/@fedify/express@${{ steps.versioning.outputs.version }} [npm:@fedify/express]: https://www.npmjs.com/package/@fedify/express/v/${{ steps.versioning.outputs.short_version }} [jsr:@fedify/h3]: https://jsr.io/@fedify/h3@${{ steps.versioning.outputs.version }} Loading
AGENTS.md +4 −2 Original line number Diff line number Diff line Loading @@ -64,6 +64,7 @@ The repository is organized as a monorepo with the following packages: - *src/x/*: Framework integrations - *packages/cli/*: Fedify CLI implementation (@fedify/cli, built with Deno) - *packages/amqp/*: AMQP/RabbitMQ driver (@fedify/amqp) - *packages/elysia/*: Elysia integration (@fedify/elysia) - *packages/express/*: Express.js integration (@fedify/express) - *packages/h3/*: h3 framework integration (@fedify/h3) - *packages/postgres/*: PostgreSQL drivers (@fedify/postgres) Loading Loading @@ -256,8 +257,9 @@ The monorepo uses different build processes for different packages: 2. **@fedify/cli**: Built with Deno, distributed via JSR and npm 3. **Database adapters and integrations**: Use tsdown for TypeScript compilation: - *packages/amqp/*, *packages/express/*, *packages/h3/*, *packages/sqlite/*, *packages/postgres/*, *packages/redis/*, *packages/nestjs/* - *packages/amqp/*, *packages/elysia*, *packages/express/*, *packages/h3/*, *packages/sqlite/*, *packages/postgres/*, *packages/redis/*, *packages/nestjs/* - Built to support Node.js and Bun environments Ensure changes work across all distribution formats and target environments.
CHANGES.md +133 −57 Original line number Diff line number Diff line Loading @@ -3,36 +3,56 @@ Fedify changelog ================ Version 1.9.0 ------------- To be released. Version 1.8.1 ------------- To be released. Note that 1.8.0 was skipped due to a mistake in Released on August 6, 2025. Note that 1.8.0 was skipped due to a mistake in the versioning. - The repository has been restructured as a monorepo, consolidating all Fedify packages into a single repository with unified versioning. This change affects the following packages: - `@fedify/fedify` (main library) - `@fedify/cli` (CLI toolchain) - `@fedify/amqp` (AMQP/RabbitMQ driver) - `@fedify/express` (Express integration) - `@fedify/h3` (h3 framework integration) - `@fedify/postgres` (PostgreSQL drivers) - `@fedify/redis` (Redis drivers) - *@fedify/fedify* (main library) - *@fedify/cli* (CLI toolchain) - *@fedify/amqp* (AMQP/RabbitMQ driver) - *@fedify/express* (Express integration) - *@fedify/h3* (h3 framework integration) - *@fedify/postgres* (PostgreSQL drivers) - *@fedify/redis* (Redis drivers) All packages now follow the same version number and are released together. Previously, each package had independent versioning. - Added mock classes for `Federation` and `Context` interfaces to improve testability without requiring a real federation server setup. The mock classes track all sent activities with metadata and support all standard Fedify patterns including custom path registration and multiple activity type listeners. [[#197], [#283] by Lee ByeongJun] - Several new packages have been added to the monorepo: - Added `@fedify/testing` package. - Added `MockFederation` class. - Added `MockContext` class. - *@fedify/elysia* ([Elysia] integration) - *@fedify/nestjs* ([NestJS] integration) - *@fedify/sqlite* (SQLite drivers) - *@fedify/testing* (testing utilities) ### @fedify/fedify - Added custom collection dispatchers. [[#310], [#332] by ChanHaeng Lee] - Added `CustomCollectionDispatcher`, `CustomCollectionCounter`, and `CustomCollectionCursor` types for custom collection dispatching. - Added `CustomCollectionCallbackSetters` type for setting custom collection callbacks. - Added `CustomCollectionHandler` class and `handleCustomCollection()` and `handleOrderedCollection()` functions to process custom collections. - Added `setCollectionDispatcher()` and `setOrderedCollectionDispatcher()` methods to the `Federatable` interface. Implemented in `FederationBuilderImpl` class. - Added `getCollectionUri()` method to the `Context` interface. - Added utility types `ConstructorWithTypeId` and `ParamsKeyPath` for custom collection dispatchers. - Key–value stores now optionally support CAS (compare-and-swap) operation for atomic updates. This is useful for implementing optimistic locking Loading @@ -42,13 +62,6 @@ the versioning. - Added `MemoryKvStore.cas()` method. - Added `DenoKvStore.cas()` method. - Added options to customize the temporary actor information when running `fedify inbox` command. [[#262], [#285] by Hasang Cho] - Added `--actor-name` option to customize the actor display name. - Added `--actor-summary` option to customize the actor description. - Both options provide sensible defaults when not specified. - Added useful functions for fediverse handles at `@fedify/fedify/vocab`. This functions simplify working with fediverse handles and URLs. [[#278] by ChanHaeng Lee] Loading @@ -63,6 +76,25 @@ the versioning. - Added `LookupWebFingerOptions.maxRedirection` option. [[#248], [#281] by Lee ByeongJun] - APIs making HTTP requests became able to optionally take `AbortSignal`. [[#51], [#315] by Hyunchae Kim] - Added `DocumentLoaderOptions` interface. - The `DocumentLoader` type became able to optionally take the second parameter. - Added `LookupObjectOptions.signal` option. - Added `LookupWebFingerOptions.signal` option. - Added `DoubleKnockOptions.signal` option. ### @fedify/cli - The `fedify` CLI now correctly disables color output when standard output isn't a TTY (for example, when redirecting to a file) or when the `NO_COLOR` environment variable is set. [[#257], [#341] by Cho Hasang] - Added `fedify nodeinfo` command, and deprecated `fedify node` command in favor of `fedify nodeinfo`. [[#267], [#331] by Hyeonseo Kim] - Added `fedify webfinger` command. This command allows users to look up WebFinger information for a given resource. [[#260], [#278] by ChanHaeng Lee] Loading @@ -77,6 +109,27 @@ the versioning. number of redirects to follow when performing WebFinger lookups. [[#311], [#328] by KeunHyeong Park] - The `fedify lookup` command now displays images depending on user's terminal emulator. [[#169], [#348] by Jiwon Kwon] - Supported terminal emulators are [Kitty], [WezTerm], [Konsole], [Warp], [Wayst], [st], and [iTerm]. - Added `-o`/`--output` option to `fedify lookup` command. This option allows users to save retrieved lookup results to specified path. [[#261], [#321] by Jiwon Kwon] - Added options to customize the temporary actor information when running `fedify inbox` command. [[#262], [#285] by Hasang Cho] - Added `--actor-name` option to customize the actor display name. - Added `--actor-summary` option to customize the actor description. - Both options provide sensible defaults when not specified. - The `fedify inbox` command now displays the type of the object contained in each activity, in addition to the activity's own type. [[#191], [#342] by Jang Hanarae] - Added `--dry-run` option to `fedify init` command. This option allows users to preview what files and configurations would be created without actually creating them. [[#263], [#298] by Lee ByeongJun] Loading @@ -85,50 +138,47 @@ the versioning. failed to correctly render the favicon in terminal emulators that do not support 24-bit colors. [[#168], [#282], [#304] by Hyeonseo Kim] - Supported NestJS integration with the `@fedify/nestjs` package. ### @fedify/elysia - Supported [Elysia] integration with the *@fedify/elysia* package. [[#286], [#339] by Hyeonseo Kim] - Added *@fedify/elysia* package. - Added `fedify` Elysia plugin for integrating Fedify into Elysia applications. ### @fedify/nestjs - Supported [NestJS] integration with the *@fedify/nestjs* package. [[#269], [#309] by Jaeyeol Lee] - Added `@fedify/nestjs` package. - Added *@fedify/nestjs* package. - Added `FedifyModule` for integrating Fedify into NestJS applications. ### @fedify/sqlite - Added `SqliteKvStore`, implementing `KvStore` using SQLite with the `@fedify/sqlite` package. Compatible with Bun, Deno, and Node.js. *@fedify/sqlite* package. Compatible with Bun, Deno, and Node.js. [[#274], [#318] by An Subin] - Added `@fedify/sqlite` package. - Added *@fedify/sqlite* package. - Added `SqliteKvStore`, a SQLite implementation of `KvStore`. - Added `-o`/`--output` option to `fedify lookup` command. This option allows users to save retrieved lookup results to specified path. [[#261], [#321] by Jiwon Kwon] - Added `fedify nodeinfo` command, and deprecated `fedify node` command in favor of `fedify nodeinfo`. [[#267], [#331] by Hyeonseo Kim] ### @fedify/testing - Added custom collection dispatchers. [[#310], [#332] by ChanHaeng Lee] - Added `CustomCollectionDispatcher`, `CustomCollectionCounter`, and `CustomCollectionCursor` types for custom collection dispatching. - Added `CustomCollectionCallbackSetters` type for setting custom collection callbacks. - Added `CustomCollectionHandler` class and `handleCustomCollection()` and `handleOrderedCollection()` functions to process custom collections. - Added `setCollectionDispatcher()` and `setOrderedCollectionDispatcher()` methods to the `Federatable` interface. Implemented in `FederationBuilderImpl` class. - Added `getCollectionUri()` method to the `Context` interface. - Added utility types `ConstructorWithTypeId` and `ParamsKeyPath` for custom collection dispatchers. - The `fedify inbox` command now displays the type of the object contained in each activity, in addition to the activity's own type. [[#191], [#342] by Jang Hanarae] - Added mock classes for `Federation` and `Context` interfaces to improve testability without requiring a real federation server setup. The mock classes track all sent activities with metadata and support all standard Fedify patterns including custom path registration and multiple activity type listeners. [[#197], [#283] by Lee ByeongJun] - The `fedify` CLI now correctly disables color output when standard output isn't a TTY (for example, when redirecting to a file) or when the `NO_COLOR` environment variable is set. [[#257], [#341] by Cho Hasang] - Added *@fedify/testing* package. - Added `MockFederation` class. - Added `MockContext` class. [#51]: https://github.com/fedify-dev/fedify/issues/51 [#168]: https://github.com/fedify-dev/fedify/issues/168 [#169]: https://github.com/fedify-dev/fedify/issues/169 [#191]: https://github.com/fedify-dev/fedify/issues/191 [#197]: https://github.com/fedify-dev/fedify/issues/197 [#248]: https://github.com/fedify-dev/fedify/issues/248 Loading @@ -139,24 +189,50 @@ the versioning. [#263]: https://github.com/fedify-dev/fedify/issues/263 [#267]: https://github.com/fedify-dev/fedify/issues/267 [#269]: https://github.com/fedify-dev/fedify/issues/269 [#274]: https://github.com/fedify-dev/fedify/issues/274 [#278]: https://github.com/fedify-dev/fedify/pull/278 [#281]: https://github.com/fedify-dev/fedify/pull/281 [#282]: https://github.com/fedify-dev/fedify/pull/282 [#283]: https://github.com/fedify-dev/fedify/pull/283 [#285]: https://github.com/fedify-dev/fedify/pull/285 [#286]: https://github.com/fedify-dev/fedify/issues/286 [#298]: https://github.com/fedify-dev/fedify/pull/298 [#304]: https://github.com/fedify-dev/fedify/issues/304 [#309]: https://github.com/fedify-dev/fedify/pull/309 [#274]: https://github.com/fedify-dev/fedify/issues/274 [#318]: https://github.com/fedify-dev/fedify/pull/318 [#310]: https://github.com/fedify-dev/fedify/issues/310 [#311]: https://github.com/fedify-dev/fedify/issues/311 [#315]: https://github.com/fedify-dev/fedify/pull/315 [#318]: https://github.com/fedify-dev/fedify/pull/318 [#321]: https://github.com/fedify-dev/fedify/pull/321 [#328]: https://github.com/fedify-dev/fedify/pull/328 [#331]: https://github.com/fedify-dev/fedify/pull/331 [#332]: https://github.com/fedify-dev/fedify/pull/332 [#342]: https://github.com/fedify-dev/fedify/pull/342 [#339]: https://github.com/fedify-dev/fedify/pull/339 [#341]: https://github.com/fedify-dev/fedify/pull/341 [#342]: https://github.com/fedify-dev/fedify/pull/342 [#348]: https://github.com/fedify-dev/fedify/pull/348 [Kitty]: https://sw.kovidgoyal.net/kitty/ [Elysia]: https://elysiajs.com/ [NestJS]: https://nestjs.com/ [WezTerm]: https://wezterm.org/ [Konsole]: https://konsole.kde.org/ [Warp]: https://www.warp.dev/ [Wayst]: https://github.com/91861/wayst [st]: https://st.suckless.org/ [iTerm]: https://iterm2.com/ Version 1.7.8 ------------- Released on August 5, 2025. - Updated `kvCache()` wrapper to read from preloaded contexts rather than from the `KvStore`. This saves network and disk overheads when parsing activities and objects using the JSON-LD processor. [[#352] by Fabien O'Carroll] [#352]: https://github.com/fedify-dev/fedify/pull/352 Version 1.7.7 Loading
CONTRIBUTING.md +2 −1 Original line number Diff line number Diff line Loading @@ -187,7 +187,8 @@ The repository is organized as a monorepo with the following packages: - *packages/cli/*: The Fedify CLI (@fedify/cli). The CLI is built with [Deno]. - *packages/amqp/*: AMQP/RabbitMQ driver (@fedify/amqp) for Fedify. - *packages/express/*: Express.js integration (@fedify/express) for Fedify. - *packages/elysia/*: Elysia integration (@fedify/elysia) for Fedify. - *packages/express/*: Express integration (@fedify/express) for Fedify. - *packages/h3/*: h3 framework integration (@fedify/h3) for Fedify. - *packages/postgres/*: PostgreSQL drivers (@fedify/postgres) for Fedify. - *packages/redis/*: Redis drivers (@fedify/redis) for Fedify. Loading
deno.json +2 −0 Original line number Diff line number Diff line Loading @@ -3,6 +3,7 @@ "./packages/fedify", "./packages/cli", "./packages/amqp", "./packages/elysia", "./packages/express", "./packages/h3", "./packages/postgres", Loading @@ -20,6 +21,7 @@ "@logtape/logtape": "jsr:@logtape/logtape@^1.0.0", "@std/assert": "jsr:@std/assert@^1.0.13", "@std/async": "jsr:@std/async@^1.0.13", "@std/encoding": "jsr:@std/encoding@^1.0.10", "@std/fs": "jsr:@std/fs@^1.0.3", "@std/path": "jsr:@std/path@^1.0.6", "@std/yaml": "jsr:@std/yaml@^1.0.8", Loading