@fedify/fedify 0.6.0-dev.110 → 0.6.0-dev.112
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGES.md +8 -6
- package/README.md +2 -2
- package/esm/federation/middleware.js +19 -5
- package/package.json +1 -1
- package/types/federation/callback.d.ts +9 -0
- package/types/federation/callback.d.ts.map +1 -1
- package/types/federation/middleware.d.ts +13 -2
- package/types/federation/middleware.d.ts.map +1 -1
package/CHANGES.md
CHANGED
|
@@ -1,9 +1,3 @@
|
|
|
1
|
-
---
|
|
2
|
-
prev:
|
|
3
|
-
text: Contribute
|
|
4
|
-
link: ./contribute.md
|
|
5
|
-
next: false
|
|
6
|
-
---
|
|
7
1
|
<!-- deno-fmt-ignore-file -->
|
|
8
2
|
|
|
9
3
|
Fedify changelog
|
|
@@ -37,6 +31,14 @@ To be released.
|
|
|
37
31
|
- Added `federation()` function.
|
|
38
32
|
- Added `ContextDataFactory` type.
|
|
39
33
|
|
|
34
|
+
- `Context.sendActivity()` method now throws `TypeError` instead of silently
|
|
35
|
+
failing when the given `Activity` object lacks the actor property.
|
|
36
|
+
|
|
37
|
+
- Added outbox error handler to `Federation`.
|
|
38
|
+
|
|
39
|
+
- Added `onOutboxError` option to `new Federation()` constructor.
|
|
40
|
+
- Added `OutboxErrorHandler` type.
|
|
41
|
+
|
|
40
42
|
[Hono]: https://hono.dev/
|
|
41
43
|
[#25]: https://github.com/dahlia/fedify/issues/25
|
|
42
44
|
[#27]: https://github.com/dahlia/fedify/issues/27
|
package/README.md
CHANGED
|
@@ -51,7 +51,7 @@ join our [Matrix chat space][Matrix] or [GitHub Discussions].
|
|
|
51
51
|
[Mastodon], [Lemmy], [Pixelfed], [PeerTube], and so on.
|
|
52
52
|
|
|
53
53
|
[JSR]: https://jsr.io/@fedify/fedify
|
|
54
|
-
[JSR badge]: https://jsr.io/badges/@fedify/fedify?_v=0.5.
|
|
54
|
+
[JSR badge]: https://jsr.io/badges/@fedify/fedify?_v=0.5.1
|
|
55
55
|
[npm]: https://www.npmjs.com/package/@fedify/fedify
|
|
56
56
|
[npm badge]: https://img.shields.io/npm/v/@fedify/fedify?logo=npm
|
|
57
57
|
[GitHub Actions]: https://github.com/dahlia/fedify/actions/workflows/build.yaml
|
|
@@ -79,7 +79,7 @@ Installation
|
|
|
79
79
|
|
|
80
80
|
Fedify is available on [JSR] for [Deno] and on [npm] for [Node.js] and [Bun].
|
|
81
81
|
Although Fedify can be used in Node.js and Bun, it's primarily designed for
|
|
82
|
-
Deno. We recommend using Deno for the best experience, but you can use Node.js
|
|
82
|
+
Deno. We recommend using Deno for the best experience, but you can use Node.js
|
|
83
83
|
or Bun if you prefer.
|
|
84
84
|
|
|
85
85
|
> [!TIP]
|
|
@@ -30,12 +30,13 @@ export class Federation {
|
|
|
30
30
|
#documentLoader;
|
|
31
31
|
#authenticatedDocumentLoaderFactory;
|
|
32
32
|
#treatHttps;
|
|
33
|
+
#onOutboxError;
|
|
33
34
|
#backoffSchedule;
|
|
34
35
|
/**
|
|
35
36
|
* Create a new {@link Federation} instance.
|
|
36
37
|
* @param parameters Parameters for initializing the instance.
|
|
37
38
|
*/
|
|
38
|
-
constructor({ kv, kvPrefixes, queue, documentLoader, authenticatedDocumentLoaderFactory, treatHttps, backoffSchedule, }) {
|
|
39
|
+
constructor({ kv, kvPrefixes, queue, documentLoader, authenticatedDocumentLoaderFactory, treatHttps, onOutboxError, backoffSchedule, }) {
|
|
39
40
|
this.#kv = kv;
|
|
40
41
|
this.#kvPrefixes = {
|
|
41
42
|
...({
|
|
@@ -57,6 +58,7 @@ export class Federation {
|
|
|
57
58
|
this.#authenticatedDocumentLoaderFactory =
|
|
58
59
|
authenticatedDocumentLoaderFactory ??
|
|
59
60
|
getAuthenticatedDocumentLoader;
|
|
61
|
+
this.#onOutboxError = onOutboxError;
|
|
60
62
|
this.#treatHttps = treatHttps ?? false;
|
|
61
63
|
this.#backoffSchedule = backoffSchedule ?? [
|
|
62
64
|
3000,
|
|
@@ -68,18 +70,26 @@ export class Federation {
|
|
|
68
70
|
queue?.listen(this.#listenQueue.bind(this));
|
|
69
71
|
}
|
|
70
72
|
async #listenQueue(message) {
|
|
73
|
+
let activity = null;
|
|
71
74
|
try {
|
|
75
|
+
activity = await Activity.fromJsonLd(message.activity, {
|
|
76
|
+
documentLoader: this.#documentLoader,
|
|
77
|
+
});
|
|
72
78
|
await sendActivity({
|
|
73
79
|
keyId: new URL(message.keyId),
|
|
74
80
|
privateKey: await importJwk(message.privateKey, "private"),
|
|
75
|
-
activity
|
|
76
|
-
documentLoader: this.#documentLoader,
|
|
77
|
-
}),
|
|
81
|
+
activity,
|
|
78
82
|
inbox: new URL(message.inbox),
|
|
79
83
|
documentLoader: this.#documentLoader,
|
|
80
84
|
});
|
|
81
85
|
}
|
|
82
|
-
catch (
|
|
86
|
+
catch (e) {
|
|
87
|
+
try {
|
|
88
|
+
this.#onOutboxError?.(e, activity);
|
|
89
|
+
}
|
|
90
|
+
catch (_) {
|
|
91
|
+
// Ignore errors in the error handler.
|
|
92
|
+
}
|
|
83
93
|
if (message.trial < this.#backoffSchedule.length) {
|
|
84
94
|
this.#queue?.enqueue({
|
|
85
95
|
...message,
|
|
@@ -473,8 +483,12 @@ export class Federation {
|
|
|
473
483
|
* @param recipients The recipients of the activity.
|
|
474
484
|
* @param activity The activity to send.
|
|
475
485
|
* @param options Options for sending the activity.
|
|
486
|
+
* @throws {TypeError} If the activity to send does not have an actor.
|
|
476
487
|
*/
|
|
477
488
|
async sendActivity({ keyId, privateKey }, recipients, activity, { preferSharedInbox, immediate } = {}) {
|
|
489
|
+
if (activity.actorId == null) {
|
|
490
|
+
throw new TypeError("The activity to send must have at least one actor property.");
|
|
491
|
+
}
|
|
478
492
|
if (activity.id == null) {
|
|
479
493
|
activity = activity.clone({
|
|
480
494
|
id: new URL(`urn:uuid:${dntShim.crypto.randomUUID()}`),
|
package/package.json
CHANGED
|
@@ -53,4 +53,13 @@ export type InboxListener<TContextData, TActivity extends Activity> = (context:
|
|
|
53
53
|
* @typeParam TContextData The context data to pass to the {@link Context}.
|
|
54
54
|
*/
|
|
55
55
|
export type InboxErrorHandler<TContextData> = (context: RequestContext<TContextData>, error: Error) => void | Promise<void>;
|
|
56
|
+
/**
|
|
57
|
+
* A callback that handles errors during outbox processing.
|
|
58
|
+
*
|
|
59
|
+
* @param error The error that occurred.
|
|
60
|
+
* @param activity The activity that caused the error. If it is `null`, the
|
|
61
|
+
* error occurred during deserializing the activity.
|
|
62
|
+
* @since 0.6.0
|
|
63
|
+
*/
|
|
64
|
+
export type OutboxErrorHandler = (error: Error, activity: Activity | null) => void | Promise<void>;
|
|
56
65
|
//# sourceMappingURL=callback.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"callback.d.ts","sourceRoot":"","sources":["../../src/federation/callback.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,OAAO,MAAM,kBAAkB,CAAC;AAC5C,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AACrD,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAC;AAC/C,OAAO,KAAK,EAAE,QAAQ,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AAClE,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AACjD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAEnD;;;;GAIG;AACH,MAAM,MAAM,kBAAkB,CAAC,YAAY,IAAI,CAC7C,OAAO,EAAE,cAAc,CAAC,YAAY,CAAC,KAClC,QAAQ,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAC;AAElC;;;;GAIG;AACH,MAAM,MAAM,eAAe,CAAC,YAAY,IAAI,CAC1C,OAAO,EAAE,cAAc,CAAC,YAAY,CAAC,EACrC,MAAM,EAAE,MAAM,EACd,GAAG,EAAE,gBAAgB,GAAG,IAAI,KACzB,KAAK,GAAG,IAAI,GAAG,OAAO,CAAC,KAAK,GAAG,IAAI,CAAC,CAAC;AAE1C;;;;GAIG;AACH,MAAM,MAAM,sBAAsB,CAAC,YAAY,IAAI,CACjD,WAAW,EAAE,YAAY,EACzB,MAAM,EAAE,MAAM,KACX,OAAO,CAAC,aAAa,GAAG,IAAI,GAAG,OAAO,CAAC,OAAO,CAAC,aAAa,GAAG,IAAI,CAAC,CAAC;AAE1E;;;;GAIG;AACH,MAAM,MAAM,oBAAoB,CAAC,KAAK,EAAE,YAAY,IAAI,CACtD,OAAO,EAAE,cAAc,CAAC,YAAY,CAAC,EACrC,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,MAAM,GAAG,IAAI,KAClB,SAAS,CAAC,KAAK,CAAC,GAAG,IAAI,GAAG,OAAO,CAAC,SAAS,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC,CAAC;AAEhE;;;;GAIG;AACH,MAAM,MAAM,iBAAiB,CAAC,YAAY,IAAI,CAC5C,OAAO,EAAE,cAAc,CAAC,YAAY,CAAC,EACrC,MAAM,EAAE,MAAM,KACX,MAAM,GAAG,MAAM,GAAG,IAAI,GAAG,OAAO,CAAC,MAAM,GAAG,MAAM,GAAG,IAAI,CAAC,CAAC;AAE9D;;;;GAIG;AACH,MAAM,MAAM,gBAAgB,CAAC,YAAY,IAAI,CAC3C,OAAO,EAAE,cAAc,CAAC,YAAY,CAAC,EACrC,MAAM,EAAE,MAAM,KACX,MAAM,GAAG,IAAI,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC;AAE5C;;;;;GAKG;AACH,MAAM,MAAM,aAAa,CAAC,YAAY,EAAE,SAAS,SAAS,QAAQ,IAAI,CACpE,OAAO,EAAE,cAAc,CAAC,YAAY,CAAC,EACrC,QAAQ,EAAE,SAAS,KAChB,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;AAE1B;;;;GAIG;AACH,MAAM,MAAM,iBAAiB,CAAC,YAAY,IAAI,CAC5C,OAAO,EAAE,cAAc,CAAC,YAAY,CAAC,EACrC,KAAK,EAAE,KAAK,KACT,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC"}
|
|
1
|
+
{"version":3,"file":"callback.d.ts","sourceRoot":"","sources":["../../src/federation/callback.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,OAAO,MAAM,kBAAkB,CAAC;AAC5C,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AACrD,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAC;AAC/C,OAAO,KAAK,EAAE,QAAQ,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AAClE,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AACjD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAEnD;;;;GAIG;AACH,MAAM,MAAM,kBAAkB,CAAC,YAAY,IAAI,CAC7C,OAAO,EAAE,cAAc,CAAC,YAAY,CAAC,KAClC,QAAQ,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAC;AAElC;;;;GAIG;AACH,MAAM,MAAM,eAAe,CAAC,YAAY,IAAI,CAC1C,OAAO,EAAE,cAAc,CAAC,YAAY,CAAC,EACrC,MAAM,EAAE,MAAM,EACd,GAAG,EAAE,gBAAgB,GAAG,IAAI,KACzB,KAAK,GAAG,IAAI,GAAG,OAAO,CAAC,KAAK,GAAG,IAAI,CAAC,CAAC;AAE1C;;;;GAIG;AACH,MAAM,MAAM,sBAAsB,CAAC,YAAY,IAAI,CACjD,WAAW,EAAE,YAAY,EACzB,MAAM,EAAE,MAAM,KACX,OAAO,CAAC,aAAa,GAAG,IAAI,GAAG,OAAO,CAAC,OAAO,CAAC,aAAa,GAAG,IAAI,CAAC,CAAC;AAE1E;;;;GAIG;AACH,MAAM,MAAM,oBAAoB,CAAC,KAAK,EAAE,YAAY,IAAI,CACtD,OAAO,EAAE,cAAc,CAAC,YAAY,CAAC,EACrC,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,MAAM,GAAG,IAAI,KAClB,SAAS,CAAC,KAAK,CAAC,GAAG,IAAI,GAAG,OAAO,CAAC,SAAS,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC,CAAC;AAEhE;;;;GAIG;AACH,MAAM,MAAM,iBAAiB,CAAC,YAAY,IAAI,CAC5C,OAAO,EAAE,cAAc,CAAC,YAAY,CAAC,EACrC,MAAM,EAAE,MAAM,KACX,MAAM,GAAG,MAAM,GAAG,IAAI,GAAG,OAAO,CAAC,MAAM,GAAG,MAAM,GAAG,IAAI,CAAC,CAAC;AAE9D;;;;GAIG;AACH,MAAM,MAAM,gBAAgB,CAAC,YAAY,IAAI,CAC3C,OAAO,EAAE,cAAc,CAAC,YAAY,CAAC,EACrC,MAAM,EAAE,MAAM,KACX,MAAM,GAAG,IAAI,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC;AAE5C;;;;;GAKG;AACH,MAAM,MAAM,aAAa,CAAC,YAAY,EAAE,SAAS,SAAS,QAAQ,IAAI,CACpE,OAAO,EAAE,cAAc,CAAC,YAAY,CAAC,EACrC,QAAQ,EAAE,SAAS,KAChB,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;AAE1B;;;;GAIG;AACH,MAAM,MAAM,iBAAiB,CAAC,YAAY,IAAI,CAC5C,OAAO,EAAE,cAAc,CAAC,YAAY,CAAC,EACrC,KAAK,EAAE,KAAK,KACT,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;AAE1B;;;;;;;GAOG;AACH,MAAM,MAAM,kBAAkB,GAAG,CAC/B,KAAK,EAAE,KAAK,EACZ,QAAQ,EAAE,QAAQ,GAAG,IAAI,KACtB,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC"}
|
|
@@ -5,7 +5,7 @@ import { Temporal } from "@js-temporal/polyfill";
|
|
|
5
5
|
import { type AuthenticatedDocumentLoaderFactory, type DocumentLoader } from "../runtime/docloader.js";
|
|
6
6
|
import type { Actor } from "../vocab/actor.js";
|
|
7
7
|
import { Activity } from "../vocab/mod.js";
|
|
8
|
-
import type { ActorDispatcher, ActorKeyPairDispatcher, CollectionCounter, CollectionCursor, CollectionDispatcher, InboxErrorHandler, InboxListener, NodeInfoDispatcher } from "./callback.js";
|
|
8
|
+
import type { ActorDispatcher, ActorKeyPairDispatcher, CollectionCounter, CollectionCursor, CollectionDispatcher, InboxErrorHandler, InboxListener, NodeInfoDispatcher, OutboxErrorHandler } from "./callback.js";
|
|
9
9
|
import type { Context, RequestContext, SendActivityOptions } from "./context.js";
|
|
10
10
|
import type { KvKey, KvStore } from "./kv.js";
|
|
11
11
|
import type { MessageQueue } from "./mq.js";
|
|
@@ -47,6 +47,16 @@ export interface FederationParameters {
|
|
|
47
47
|
* Turned off by default.
|
|
48
48
|
*/
|
|
49
49
|
treatHttps?: boolean;
|
|
50
|
+
/**
|
|
51
|
+
* A callback that handles errors during outbox processing. Note that this
|
|
52
|
+
* callback can be called multiple times for the same error, because failed
|
|
53
|
+
* deliveries are retried.
|
|
54
|
+
*
|
|
55
|
+
* If any errors are thrown in this callback, they are ignored.
|
|
56
|
+
*
|
|
57
|
+
* @since 0.6.0
|
|
58
|
+
*/
|
|
59
|
+
onOutboxError?: OutboxErrorHandler;
|
|
50
60
|
backoffSchedule?: Temporal.Duration[];
|
|
51
61
|
}
|
|
52
62
|
/**
|
|
@@ -77,7 +87,7 @@ export declare class Federation<TContextData> {
|
|
|
77
87
|
* Create a new {@link Federation} instance.
|
|
78
88
|
* @param parameters Parameters for initializing the instance.
|
|
79
89
|
*/
|
|
80
|
-
constructor({ kv, kvPrefixes, queue, documentLoader, authenticatedDocumentLoaderFactory, treatHttps, backoffSchedule, }: FederationParameters);
|
|
90
|
+
constructor({ kv, kvPrefixes, queue, documentLoader, authenticatedDocumentLoaderFactory, treatHttps, onOutboxError, backoffSchedule, }: FederationParameters);
|
|
81
91
|
/**
|
|
82
92
|
* Create a new context.
|
|
83
93
|
* @param baseUrl The base URL of the server. The `pathname` remains root,
|
|
@@ -216,6 +226,7 @@ export declare class Federation<TContextData> {
|
|
|
216
226
|
* @param recipients The recipients of the activity.
|
|
217
227
|
* @param activity The activity to send.
|
|
218
228
|
* @param options Options for sending the activity.
|
|
229
|
+
* @throws {TypeError} If the activity to send does not have an actor.
|
|
219
230
|
*/
|
|
220
231
|
sendActivity({ keyId, privateKey }: {
|
|
221
232
|
keyId: URL;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"middleware.d.ts","sourceRoot":"","sources":["../../src/federation/middleware.ts"],"names":[],"mappings":";;AAAA,OAAO,KAAK,OAAO,MAAM,kBAAkB,CAAC;AAC5C,OAAO,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AAGjD,OAAO,EACL,KAAK,kCAAkC,EACvC,KAAK,cAAc,EAIpB,MAAM,yBAAyB,CAAC;AACjC,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAC;AAC/C,OAAO,EAAE,QAAQ,EAAoB,MAAM,iBAAiB,CAAC;AAE7D,OAAO,KAAK,EACV,eAAe,EACf,sBAAsB,EACtB,iBAAiB,EACjB,gBAAgB,EAChB,oBAAoB,EACpB,iBAAiB,EACjB,aAAa,EACb,kBAAkB,EACnB,MAAM,eAAe,CAAC;AACvB,OAAO,KAAK,EACV,OAAO,EACP,cAAc,EACd,mBAAmB,EACpB,MAAM,cAAc,CAAC;AAOtB,OAAO,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAC9C,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAK5C;;GAEG;AACH,MAAM,WAAW,oBAAoB;IACnC;;OAEG;IACH,EAAE,EAAE,OAAO,CAAC;IAEZ;;;OAGG;IACH,UAAU,CAAC,EAAE,OAAO,CAAC,oBAAoB,CAAC,CAAC;IAE3C;;;;OAIG;IACH,KAAK,CAAC,EAAE,YAAY,CAAC;IAErB;;;OAGG;IACH,cAAc,CAAC,EAAE,cAAc,CAAC;IAEhC;;;;;;OAMG;IACH,kCAAkC,CAAC,EAAE,kCAAkC,CAAC;IAExE;;;;OAIG;IACH,UAAU,CAAC,EAAE,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"middleware.d.ts","sourceRoot":"","sources":["../../src/federation/middleware.ts"],"names":[],"mappings":"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"}
|