Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
30 commits
Select commit Hold shift + click to select a range
b2fb32a
Copy `packages/fedify/src/x/*.ts` files to `packages/*/src/mod.ts`
2chanhaeng Aug 24, 2025
a25e1b9
Set as packages
2chanhaeng Aug 24, 2025
51ef4b8
Add `tsdown.config.ts`
2chanhaeng Aug 24, 2025
eabf011
Fix entry file
2chanhaeng Aug 24, 2025
d60986c
Added dependencies
2chanhaeng Aug 24, 2025
ddacced
Remove `@fedify/fresh`
2chanhaeng Aug 24, 2025
88b0c00
Added `deno.json`
2chanhaeng Aug 25, 2025
062d769
Remove `@fedify/fresh`
2chanhaeng Aug 25, 2025
a5c2177
Fix import path
2chanhaeng Aug 25, 2025
f09ef6c
Added tests
2chanhaeng Aug 25, 2025
1b1720e
Added `deprecated` to JSDoc
2chanhaeng Aug 25, 2025
06485ac
Added docs
2chanhaeng Aug 25, 2025
acbed4f
Fix docs
2chanhaeng Aug 25, 2025
e0b4f84
Lint all files
2chanhaeng Aug 25, 2025
3530457
Added description
2chanhaeng Aug 26, 2025
41026bb
Deleted configuration file to publish `@fedify/denokv` to NPM
2chanhaeng Aug 26, 2025
c76255a
Replace `Deno.test` to `node:test`
2chanhaeng Aug 26, 2025
d69f43b
Removed `@fedify/denokv` from pnpm workspace
2chanhaeng Aug 26, 2025
d7cc8c7
Fix `@fedify/hono` test
2chanhaeng Aug 26, 2025
5efbf86
Merge branch 'main' into main
2chanhaeng Aug 26, 2025
c8cbdb8
Fix lock file
2chanhaeng Aug 26, 2025
dd720af
Fixed packages since
2chanhaeng Aug 26, 2025
d78d0c6
Log warning for deprecated modules
2chanhaeng Aug 26, 2025
92d3187
Added README.md for new packages
2chanhaeng Aug 26, 2025
50dd15c
Added cspell
2chanhaeng Aug 27, 2025
c30c038
Replaced `@fedify/fedify/x/*` modules with `@fedify/*` packages in docs
2chanhaeng Aug 27, 2025
3f17346
Fixed links to archived repository
2chanhaeng Aug 27, 2025
7a7b4d1
Fix entry point of packages
2chanhaeng Aug 27, 2025
37be33b
Added packages to docs
2chanhaeng Aug 27, 2025
533f75f
Added commands to install the integration packages in docs
2chanhaeng Aug 27, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
12 changes: 8 additions & 4 deletions AGENTS.md
Original file line number Diff line number Diff line change
Expand Up @@ -61,17 +61,21 @@ The repository is organized as a monorepo with the following packages:
- *src/testing/*: Testing utilities
- *src/vocab/*: ActivityPub vocabulary implementation
- *src/webfinger/*: WebFinger protocol implementation
- *src/x/*: Framework integrations
- ~~src/x/: Framework integrations~~ **Don't use.** This directory will be removed in version 2.0.0. Use packages from the `@fedify` scope, which are located in the `packages/` directory (e.g., `@fedify/hono` is in `packages/hono/`).
- *packages/cli/*: Fedify CLI implementation (@fedify/cli, built with Deno)
- *packages/amqp/*: AMQP/RabbitMQ driver (@fedify/amqp)
- *packages/cfworkers/*: Cloudflare Workers integration (@fedify/cfworkers)
- *packages/denokv/*: Deno KV integration (@fedify/denokv)
- *packages/elysia/*: Elysia integration (@fedify/elysia)
- *packages/express/*: Express.js integration (@fedify/express)
- *packages/h3/*: h3 framework integration (@fedify/h3)
- *packages/hono/*: Hono integration (@fedify/hono)
- *packages/postgres/*: PostgreSQL drivers (@fedify/postgres)
- *packages/redis/*: Redis drivers (@fedify/redis)
- *packages/nestjs/*: NestJS integration (@fedify/nestjs)
- *packages/next/*: Next.js integration (@fedify/next)
- *packages/sqlite/*: SQLite driver (@fedify/sqlite)
- *packages/sveltekit/*: SvelteKit integration (@fedify/sveltekit)
- *packages/testing/*: Testing utilities (@fedify/testing)
- *docs/*: Documentation built with Node.js and VitePress
- *examples/*: Example projects demonstrating Fedify usage
Expand Down Expand Up @@ -143,10 +147,10 @@ Common Tasks

### Implementing Framework Integrations

1. Add new integrations in the *packages/fedify/src/x/* directory
2. Follow pattern from existing integrations (hono.ts, sveltekit.ts)
1. Create a new package in *packages/* directory for new integrations
2. Follow pattern from existing integration packages (*packages/hono/*, *packages/sveltekit/*)
3. Use standard request/response interfaces for compatibility
4. Consider creating a dedicated package for substantial integrations
4. Consider creating example applications in *examples/* that demonstrate usage

### Creating Database Adapters

Expand Down
42 changes: 42 additions & 0 deletions CHANGES.md
Original file line number Diff line number Diff line change
Expand Up @@ -41,10 +41,21 @@ To be released.
- Changed how `parseSoftware()` function handles non-Semantic Versioning
number strings on `tryBestEffort` mode. [[#353], [#365] by Hyeonseo Kim]]

- Separated modules from `@fedify/fedify/x` into dedicated packages to
improve modularity and reduce bundle size. The existing integration
functions in `@fedify/fedify/x` are now deprecated and will be removed in
version 2.0.0. [[#375] by Chanhaeng Lee]

- Deprecated `@fedify/fedify/x/cfworkers` in favor of `@fedify/cfworkers`.
- Deprecated `@fedify/fedify/x/denokv` in favor of `@fedify/denokv`.
- Deprecated `@fedify/fedify/x/hono` in favor of `@fedify/hono`.
- Deprecated `@fedify/fedify/x/sveltekit` in favor of `@fedify/sveltekit`.

[FEP-5711]: https://w3id.org/fep/5711
[#353]: https://github.com/fedify-dev/fedify/issues/353
[#365]: https://github.com/fedify-dev/fedify/pull/365
[#373]: https://github.com/fedify-dev/fedify/issues/373
[#375]: https://github.com/fedify-dev/fedify/issues/375
[#381]: https://github.com/fedify-dev/fedify/pull/381

### @fedify/cli
Expand All @@ -67,6 +78,30 @@ To be released.
[#353]: https://github.com/fedify-dev/fedify/issues/353
[#365]: https://github.com/fedify-dev/fedify/pull/365

### @fedify/cfworkers

- Created Cloudflare Workers integration as the *@fedify/cfworkers* package.
Separated from `@fedify/fedify/x/cfworkers` to improve modularity and
reduce bundle size. [[#375] by Chanhaeng Lee]

[#375]: https://github.com/fedify-dev/fedify/issues/375
Comment thread
2chanhaeng marked this conversation as resolved.

### @fedify/denokv

- Created Deno KV integration as the *@fedify/denokv* package.
Separated from `@fedify/fedify/x/denokv` to improve modularity and
reduce bundle size. [[#375] by Chanhaeng Lee]

[#375]: https://github.com/fedify-dev/fedify/issues/375

### @fedify/hono

- Created Hono integration as the *@fedify/hono* package.
Separated from `@fedify/fedify/x/hono` to improve modularity and
reduce bundle size. [[#375] by Chanhaeng Lee]

[#375]: https://github.com/fedify-dev/fedify/issues/375

### @fedify/next

- Created [Next.js] integration as the *@fedify/next* package.
Expand All @@ -82,6 +117,13 @@ To be released.

[#368]: https://github.com/fedify-dev/fedify/pull/368

### @fedify/sveltekit

- Created SvelteKit integration as the *@fedify/sveltekit* package.
Separated from `@fedify/fedify/x/sveltekit` to improve modularity and
reduce bundle size. [[#375] by Chanhaeng Lee]

[#375]: https://github.com/fedify-dev/fedify/issues/375

Version 1.8.8
-------------
Expand Down
4 changes: 4 additions & 0 deletions CONTRIBUTING.md
Original file line number Diff line number Diff line change
Expand Up @@ -191,14 +191,18 @@ 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/cfworkers/*: Cloudflare Workers integration (@fedify/cfworkers) for Fedify.
- *packages/denokv/*: Deno KV integration (@fedify/denokv) 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/hono/*: Hono integration (@fedify/hono) for Fedify.
- *packages/postgres/*: PostgreSQL drivers (@fedify/postgres) for Fedify.
- *packages/redis/*: Redis drivers (@fedify/redis) for Fedify.
- *packages/nestjs/*: NestJS integration (@fedify/nestjs) for Fedify.
- *packages/next/*: Next.js integration (@fedify/next) for Fedify.
- *packages/sqlite/*: SQLite driver (@fedify/sqlite) for Fedify.
- *packages/sveltekit/*: SvelteKit integration (@fedify/sveltekit) for Fedify.
- *packages/testing/*: Testing utilities (@fedify/testing) for Fedify.
- *docs/*: The Fedify docs. The docs are built with [Node.js] and
[VitePress].
Expand Down
2 changes: 2 additions & 0 deletions cspell.json
Original file line number Diff line number Diff line change
Expand Up @@ -27,6 +27,7 @@
"docloader",
"draft-cavage",
"eddsa",
"elysia",
"fanout",
"federatable",
"Federatable",
Expand Down Expand Up @@ -100,6 +101,7 @@
"unfollows",
"urlpattern",
"uuidv7",
"Vinxi",
"vitepress",
"vtsls",
"webfinger",
Expand Down
5 changes: 5 additions & 0 deletions deno.json
Original file line number Diff line number Diff line change
Expand Up @@ -3,12 +3,16 @@
"./packages/fedify",
"./packages/cli",
"./packages/amqp",
"./packages/cfworkers",
"./packages/denokv",
"./packages/elysia",
"./packages/express",
"./packages/h3",
"./packages/hono",
"./packages/postgres",
"./packages/redis",
"./packages/sqlite",
"./packages/sveltekit",
"./packages/testing",
"./examples/blog",
"./examples/cloudflare-workers",
Expand All @@ -26,6 +30,7 @@
"@std/path": "jsr:@std/path@^1.0.6",
"@std/yaml": "jsr:@std/yaml@^1.0.8",
"amqplib": "npm:amqplib@^0.10.8",
"es-toolkit": "npm:es-toolkit@^1.30.0",
"h3": "npm:h3@^1.15.0",
"@nestjs/common": "npm:@nestjs/common@^11.0.1",
"ioredis": "npm:ioredis@^5.6.1",
Expand Down
6 changes: 3 additions & 3 deletions docs/manual/deploy.md
Original file line number Diff line number Diff line change
Expand Up @@ -231,7 +231,7 @@ type Env = {
import { Person } from "@fedify/fedify";
// ---cut-before---
import { createFederationBuilder } from "@fedify/fedify";
import { WorkersKvStore, WorkersMessageQueue } from "@fedify/fedify/x/cfworkers";
import { WorkersKvStore, WorkersMessageQueue } from "@fedify/cfworkers";

const builder = createFederationBuilder<Env>();

Expand Down Expand Up @@ -266,7 +266,7 @@ must manually connect queue handlers:
~~~~ typescript twoslash
// @noErrors: 2345
import { createFederationBuilder, Person, type Message } from "@fedify/fedify";
import { WorkersKvStore, WorkersMessageQueue } from "@fedify/fedify/x/cfworkers";
import { WorkersKvStore, WorkersMessageQueue } from "@fedify/cfworkers";

type Env = {
KV_NAMESPACE: KVNamespace<string>;
Expand Down Expand Up @@ -323,7 +323,7 @@ as well:

~~~~ typescript
import { createFederation } from "@fedify/fedify";
import { DenoKvStore, DenoKvMessageQueue } from "@fedify/fedify/x/deno";
import { DenoKvStore, DenoKvMessageQueue } from "@fedify/denokv";

// Open Deno KV (automatically available on Deno Deploy)
const kv = await Deno.openKv();
Expand Down
24 changes: 12 additions & 12 deletions docs/manual/federation.md
Original file line number Diff line number Diff line change
Expand Up @@ -51,16 +51,16 @@ testing and development purposes, and the `DenoKvStore` class is Deno KV-backed
implementation for production use (as you can guess from the name, it is only
available in Deno runtime).

As separate packages, [@fedify/redis] provides [`RedisKvStore`] class, which is
a Redis-backed implementation for production use, and [@fedify/postgres]
As separate packages, [`@fedify/redis`] provides [`RedisKvStore`] class, which
is a Redis-backed implementation for production use, and [`@fedify/postgres`]
provides [`PostgresKvStore`] class, which is a PostgreSQL-backed implementation
for production use.

Further details are explained in the [*Key–value store* section](./kv.md).

[@fedify/redis]: https://github.com/fedify-dev/redis
[`@fedify/redis`]: https://github.com/fedify-dev/fedify/tree/main/packages/redis
[`RedisKvStore`]: https://jsr.io/@fedify/redis/doc/kv/~/RedisKvStore
[@fedify/postgres]: https://github.com/fedify-dev/postgres
[`@fedify/postgres`]: https://github.com/fedify-dev/fedify/tree/main/packages/postgres
[`PostgresKvStore`]: https://jsr.io/@fedify/postgres/doc/kv/~/PostgresKvStore

### `kvPrefixes`
Expand Down Expand Up @@ -110,12 +110,12 @@ and the `DenoKvMessageQueue` class is a Deno KV-backed implementation for
production use (as you can guess from the name, it is only available in Deno
runtime).

As separate packages, [@fedify/redis] provides [`RedisMessageQueue`] class,
As separate packages, [`@fedify/redis`] provides [`RedisMessageQueue`] class,
which is a Redis-backed implementation for production use,
and [@fedify/postgres] provides [`PostgresMessageQueue`] class, which is a
PostgreSQL-backed implementation for production use, and [@fedify/amqp] provides
[`AmqpMessageQueue`] class, which is an AMQP broker-backed implementation for
production use.
and [`@fedify/postgres`] provides [`PostgresMessageQueue`] class, which is a
PostgreSQL-backed implementation for production use, and [`@fedify/amqp`]
provides [`AmqpMessageQueue`] class, which is an AMQP broker-backed
implementation for production use.

Further details are explained in the [*Message queue* section](./mq.md).

Expand Down Expand Up @@ -184,7 +184,7 @@ Further details are explained in the [*Message queue* section](./mq.md).

[`RedisMessageQueue`]: https://jsr.io/@fedify/redis/doc/mq/~/RedisMessageQueue
[`PostgresMessageQueue`]: https://jsr.io/@fedify/postgres/doc/mq/~/PostgresMessageQueue
[@fedify/amqp]: https://github.com/fedify-dev/amqp
[`@fedify/amqp`]: https://github.com/fedify-dev/fedify/tree/main/packages/amqp
[`AmqpMessageQueue`]: https://jsr.io/@fedify/amqp/doc/mq/~/AmqpMessageQueue

### `manuallyStartQueue`
Expand Down Expand Up @@ -305,8 +305,8 @@ an object for options.
> [!CAUTION]
>
> This settings do not affect the `User-Agent` header of the HTTP requests
> that `lookupWebFinger()`, `lookupObject()`, and `getNodeInfo()` functions make,
> since they do not depend on the `Federation` object.
> that `lookupWebFinger()`, `lookupObject()`, and `getNodeInfo()` functions
> make, since they do not depend on the `Federation` object.
>
> However, `Context.lookupObject()` method is affected by this settings.

Expand Down
8 changes: 5 additions & 3 deletions docs/manual/inbox.md
Original file line number Diff line number Diff line change
Expand Up @@ -341,8 +341,8 @@ const federation = createFederation({
> [!NOTE]
> The `InProcessMessageQueue` is a simple in-memory message queue that is
> suitable for development and testing. For production use, you should
> consider using a more robust message queue, such as `DenoKvMessageQueue`
> from `@fedify/fedify/x/deno` module or [`RedisMessageQueue`] from
> consider using a more robust message queue, such as [`DenoKvMessageQueue`]
> from [`@fedify/denokv`] package or [`RedisMessageQueue`] from
> [`@fedify/redis`] package.
>
> For more information, see the [*Message queue* section](./mq.md).
Expand Down Expand Up @@ -378,8 +378,10 @@ duplicate retry mechanisms and leverages the backend's optimized retry features.
> your application so that each node can process messages in parallel with
> the shared message queue.

[`DenoKvMessageQueue`]: https://jsr.io/@fedify/denokv/doc/mq/~/DenoKvMessageQueue
[`@fedify/denokv`]: https://github.com/fedify-dev/fedify/tree/main/packages/denokv
[`RedisMessageQueue`]: https://jsr.io/@fedify/redis/doc/mq/~/RedisMessageQueue
[`@fedify/redis`]: https://github.com/fedify-dev/redis
[`@fedify/redis`]: https://github.com/fedify-dev/fedify/tree/main/packages/redis


Error handling
Expand Down
Loading
Loading