Unverified Commit 1ba413b0 authored by Hong Minhee's avatar Hong Minhee
Browse files

Reorganize and format CHANGES.md

- Format package names with italics instead of backticks
- Organize changelog entries by package (@fedify/fedify, @fedify/cli, etc.)
- Add missing package links and references for Elysia and NestJS
- Improve overall structure and grouping of changelog entries

[ci skip]
parent 58d26de7
Loading
Loading
Loading
Loading
+96 −76
Original line number Diff line number Diff line
@@ -13,26 +13,40 @@ the versioning.
    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
@@ -42,13 +56,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]
@@ -63,6 +70,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]
@@ -77,80 +103,72 @@ the versioning.
        number of redirects to follow when performing WebFinger lookups.
        [[#311], [#328] by KeunHyeong Park]

 -  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]

 -  Fixed a bug where the `fedify nodeinfo` command (was `fedify node`) had
    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.
    [[#269], [#309] by Jaeyeol Lee]

     -  Added `@fedify/nestjs` package.
     -  Added `FedifyModule` for integrating Fedify into NestJS applications.

 -  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.

 -  Added `SqliteKvStore`, implementing `KvStore` using SQLite with the
    `@fedify/sqlite` package. Compatible with Bun, Deno, and Node.js.
    [[#274], [#318] by An Subin]
 -  The `fedify lookup` command now displays images depending on user's
    terminal emulator. [[#169], [#348] by Jiwon Kwon]

     -  Added `@fedify/sqlite` package.
     -  Added `SqliteKvStore`, a SQLite implementation of `KvStore`.
     -  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 `fedify nodeinfo` command, and deprecated `fedify node` command in
    favor of `fedify nodeinfo`.  [[#267], [#331] by Hyeonseo Kim]

 -  Added custom collection dispatchers.  [[#310], [#332] by ChanHaeng Lee]
 -  Added options to customize the temporary actor information when running
    `fedify inbox` command.  [[#262], [#285] by Hasang Cho]

     -  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.
     -  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]

 -  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 `--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]

 -  The `fedify lookup` command now displays images depending on user's
    terminal emulator. [[#169], [#348] by Jiwon Kwon]
 -  Fixed a bug where the `fedify nodeinfo` command (was `fedify node`) had
    failed to correctly render the favicon in terminal emulators that do not
    support 24-bit colors.  [[#168], [#282], [#304] by Hyeonseo Kim]

     -  Supported terminal emulators are [Kitty], [WezTerm], [Konsole], [Warp],
        [Wayst], [st], and [iTerm].
### @fedify/elysia

 -  Supported Elysia integration with the `@fedify/elysia` package.
 -  Supported [Elysia] integration with the *@fedify/elysia* package.
    [[#286], [#339] by Hyeonseo Kim]

     -  Added `@fedify/elysia` package.
     -  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 `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.
    [[#274], [#318] by An Subin]

     -  Added *@fedify/sqlite* package.
     -  Added `SqliteKvStore`, a SQLite implementation of `KvStore`.

### @fedify/testing

 -  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]

     -  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
@@ -188,6 +206,8 @@ the versioning.
[#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/