@fedify/fedify 1.0.0-dev.397 → 1.0.0-dev.399
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 +16 -0
- package/esm/federation/federation.js +1 -0
- package/esm/federation/handler.js +3 -3
- package/esm/federation/middleware.js +224 -42
- package/esm/federation/mod.js +2 -1
- package/esm/federation/send.js +9 -63
- package/esm/sig/ld.js +7 -1
- package/esm/sig/mod.js +1 -1
- package/package.json +1 -1
- package/types/federation/callback.d.ts +5 -2
- package/types/federation/callback.d.ts.map +1 -1
- package/types/federation/context.d.ts +55 -3
- package/types/federation/context.d.ts.map +1 -1
- package/types/federation/federation.d.ts +462 -0
- package/types/federation/federation.d.ts.map +1 -0
- package/types/federation/handler.d.ts +3 -2
- package/types/federation/handler.d.ts.map +1 -1
- package/types/federation/middleware.d.ts +125 -426
- package/types/federation/middleware.d.ts.map +1 -1
- package/types/federation/mod.d.ts +2 -1
- package/types/federation/mod.d.ts.map +1 -1
- package/types/federation/queue.d.ts +1 -0
- package/types/federation/queue.d.ts.map +1 -1
- package/types/federation/send.d.ts +7 -14
- package/types/federation/send.d.ts.map +1 -1
- package/types/sig/ld.d.ts +11 -0
- package/types/sig/ld.d.ts.map +1 -1
- package/types/sig/mod.d.ts +1 -1
- package/types/sig/mod.d.ts.map +1 -1
- package/types/x/hono.d.ts +1 -1
@@ -129,9 +129,11 @@ export interface Context<TContextData> {
|
|
129
129
|
/**
|
130
130
|
* Determines the type of the URI and extracts the associated data.
|
131
131
|
* @param uri The URI to parse.
|
132
|
+
* @returns The result of parsing the URI. If `null` is given or
|
133
|
+
* the URI is not recognized, `null` is returned.
|
132
134
|
* @since 0.9.0
|
133
135
|
*/
|
134
|
-
parseUri(uri: URL): ParseUriResult | null;
|
136
|
+
parseUri(uri: URL | null): ParseUriResult | null;
|
135
137
|
/**
|
136
138
|
* Gets the key pairs for an actor.
|
137
139
|
* @param handle The actor's handle.
|
@@ -289,6 +291,42 @@ export interface RequestContext<TContextData> extends Context<TContextData> {
|
|
289
291
|
*/
|
290
292
|
getSignedKeyOwner(): Promise<Actor | null>;
|
291
293
|
}
|
294
|
+
/**
|
295
|
+
* A context for inbox listeners.
|
296
|
+
* @since 1.0.0
|
297
|
+
*/
|
298
|
+
export interface InboxContext<TContextData> extends Context<TContextData> {
|
299
|
+
/**
|
300
|
+
* Forwards a received activity to the recipients' inboxes. The forwarded
|
301
|
+
* activity will be signed in HTTP Signatures by the forwarder, but its
|
302
|
+
* payload will not be modified, i.e., Linked Data Signatures and Object
|
303
|
+
* Integrity Proofs will not be added. Therefore, if the activity is not
|
304
|
+
* signed (i.e., it has neither Linked Data Signatures nor Object Integrity
|
305
|
+
* Proofs), the recipient probably will not trust the activity.
|
306
|
+
* @param forwarder The forwarder's handle or the forwarder's key pair(s).
|
307
|
+
* @param recipients The recipients of the activity.
|
308
|
+
* @param options Options for forwarding the activity.
|
309
|
+
* @since 1.0.0
|
310
|
+
*/
|
311
|
+
forwardActivity(forwarder: SenderKeyPair | SenderKeyPair[] | {
|
312
|
+
handle: string;
|
313
|
+
}, recipients: Recipient | Recipient[], options?: ForwardActivityOptions): Promise<void>;
|
314
|
+
/**
|
315
|
+
* Forwards a received activity to the recipients' inboxes. The forwarded
|
316
|
+
* activity will be signed in HTTP Signatures by the forwarder, but its
|
317
|
+
* payload will not be modified, i.e., Linked Data Signatures and Object
|
318
|
+
* Integrity Proofs will not be added. Therefore, if the activity is not
|
319
|
+
* signed (i.e., it has neither Linked Data Signatures nor Object Integrity
|
320
|
+
* Proofs), the recipient probably will not trust the activity.
|
321
|
+
* @param forwarder The forwarder's handle.
|
322
|
+
* @param recipients In this case, it must be `"followers"`.
|
323
|
+
* @param options Options for forwarding the activity.
|
324
|
+
* @since 1.0.0
|
325
|
+
*/
|
326
|
+
forwardActivity(forwarder: {
|
327
|
+
handle: string;
|
328
|
+
}, recipients: "followers", options?: ForwardActivityOptions): Promise<void>;
|
329
|
+
}
|
292
330
|
/**
|
293
331
|
* A result of parsing an URI.
|
294
332
|
*/
|
@@ -365,8 +403,7 @@ export type ParseUriResult =
|
|
365
403
|
handle: string;
|
366
404
|
};
|
367
405
|
/**
|
368
|
-
* Options for {@link Context.sendActivity} method
|
369
|
-
* {@link Federation.sendActivity} method.
|
406
|
+
* Options for {@link Context.sendActivity} method.
|
370
407
|
*/
|
371
408
|
export interface SendActivityOptions {
|
372
409
|
/**
|
@@ -391,6 +428,21 @@ export interface SendActivityOptions {
|
|
391
428
|
*/
|
392
429
|
excludeBaseUris?: URL[];
|
393
430
|
}
|
431
|
+
/**
|
432
|
+
* Options for {@link InboxContext.forwardActivity} method.
|
433
|
+
* @since 1.0.0
|
434
|
+
*/
|
435
|
+
export interface ForwardActivityOptions extends SendActivityOptions {
|
436
|
+
/**
|
437
|
+
* Whether to skip forwarding the activity if it is not signed, i.e., it has
|
438
|
+
* neither Linked Data Signatures nor Object Integrity Proofs.
|
439
|
+
*
|
440
|
+
* If the activity is not signed, the recipient probably will not trust the
|
441
|
+
* activity. Therefore, it is recommended to skip forwarding the activity
|
442
|
+
* if it is not signed.
|
443
|
+
*/
|
444
|
+
skipIfUnsigned: boolean;
|
445
|
+
}
|
394
446
|
/**
|
395
447
|
* A pair of a public key and a private key in various formats.
|
396
448
|
* @since 0.10.0
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"context.d.ts","sourceRoot":"","sources":["../../src/federation/context.ts"],"names":[],"mappings":";;AAAA,OAAO,KAAK,OAAO,MAAM,kBAAkB,CAAC;AAC5C,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AAC9D,OAAO,KAAK,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AAC1D,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AAC9D,OAAO,KAAK,EACV,QAAQ,EACR,gBAAgB,EAChB,QAAQ,EACR,MAAM,EACP,MAAM,iBAAiB,CAAC;AACzB,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,WAAW,CAAC;AAE/C;;GAEG;AACH,MAAM,WAAW,OAAO,CAAC,YAAY;IACnC;;;;OAIG;IACH,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IAExB;;;;;OAKG;IACH,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IAEtB;;;;OAIG;IACH,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAE1B;;OAEG;IACH,QAAQ,CAAC,IAAI,EAAE,YAAY,CAAC;IAE5B;;OAEG;IACH,QAAQ,CAAC,cAAc,EAAE,cAAc,CAAC;IAExC;;OAEG;IACH,QAAQ,CAAC,aAAa,EAAE,cAAc,CAAC;IAEvC;;;;;OAKG;IACH,cAAc,IAAI,GAAG,CAAC;IAEtB;;;;;OAKG;IACH,WAAW,CAAC,MAAM,EAAE,MAAM,GAAG,GAAG,CAAC;IAEjC;;;;;;;;OAQG;IACH,YAAY,CAAC,OAAO,SAAS,MAAM,EAEjC,GAAG,EAAE,CAAC,KAAK,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,OAAO,CAAC,GAAG;QAAE,MAAM,EAAE,GAAG,CAAA;KAAE,EACxD,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAC7B,GAAG,CAAC;IAEP;;;;;OAKG;IACH,YAAY,CAAC,MAAM,EAAE,MAAM,GAAG,GAAG,CAAC;IAElC;;;;OAIG;IACH,WAAW,IAAI,GAAG,CAAC;IAEnB;;;;;OAKG;IACH,WAAW,CAAC,MAAM,EAAE,MAAM,GAAG,GAAG,CAAC;IAEjC;;;;;OAKG;IACH,eAAe,CAAC,MAAM,EAAE,MAAM,GAAG,GAAG,CAAC;IAErC;;;;;OAKG;IACH,eAAe,CAAC,MAAM,EAAE,MAAM,GAAG,GAAG,CAAC;IAErC;;;;;;OAMG;IACH,WAAW,CAAC,MAAM,EAAE,MAAM,GAAG,GAAG,CAAC;IAEjC;;;;;;OAMG;IACH,cAAc,CAAC,MAAM,EAAE,MAAM,GAAG,GAAG,CAAC;IAEpC;;;;;;;OAOG;IACH,kBAAkB,CAAC,MAAM,EAAE,MAAM,GAAG,GAAG,CAAC;IAExC
|
1
|
+
{"version":3,"file":"context.d.ts","sourceRoot":"","sources":["../../src/federation/context.ts"],"names":[],"mappings":";;AAAA,OAAO,KAAK,OAAO,MAAM,kBAAkB,CAAC;AAC5C,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AAC9D,OAAO,KAAK,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AAC1D,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AAC9D,OAAO,KAAK,EACV,QAAQ,EACR,gBAAgB,EAChB,QAAQ,EACR,MAAM,EACP,MAAM,iBAAiB,CAAC;AACzB,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,WAAW,CAAC;AAE/C;;GAEG;AACH,MAAM,WAAW,OAAO,CAAC,YAAY;IACnC;;;;OAIG;IACH,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IAExB;;;;;OAKG;IACH,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IAEtB;;;;OAIG;IACH,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAE1B;;OAEG;IACH,QAAQ,CAAC,IAAI,EAAE,YAAY,CAAC;IAE5B;;OAEG;IACH,QAAQ,CAAC,cAAc,EAAE,cAAc,CAAC;IAExC;;OAEG;IACH,QAAQ,CAAC,aAAa,EAAE,cAAc,CAAC;IAEvC;;;;;OAKG;IACH,cAAc,IAAI,GAAG,CAAC;IAEtB;;;;;OAKG;IACH,WAAW,CAAC,MAAM,EAAE,MAAM,GAAG,GAAG,CAAC;IAEjC;;;;;;;;OAQG;IACH,YAAY,CAAC,OAAO,SAAS,MAAM,EAEjC,GAAG,EAAE,CAAC,KAAK,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,OAAO,CAAC,GAAG;QAAE,MAAM,EAAE,GAAG,CAAA;KAAE,EACxD,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAC7B,GAAG,CAAC;IAEP;;;;;OAKG;IACH,YAAY,CAAC,MAAM,EAAE,MAAM,GAAG,GAAG,CAAC;IAElC;;;;OAIG;IACH,WAAW,IAAI,GAAG,CAAC;IAEnB;;;;;OAKG;IACH,WAAW,CAAC,MAAM,EAAE,MAAM,GAAG,GAAG,CAAC;IAEjC;;;;;OAKG;IACH,eAAe,CAAC,MAAM,EAAE,MAAM,GAAG,GAAG,CAAC;IAErC;;;;;OAKG;IACH,eAAe,CAAC,MAAM,EAAE,MAAM,GAAG,GAAG,CAAC;IAErC;;;;;;OAMG;IACH,WAAW,CAAC,MAAM,EAAE,MAAM,GAAG,GAAG,CAAC;IAEjC;;;;;;OAMG;IACH,cAAc,CAAC,MAAM,EAAE,MAAM,GAAG,GAAG,CAAC;IAEpC;;;;;;;OAOG;IACH,kBAAkB,CAAC,MAAM,EAAE,MAAM,GAAG,GAAG,CAAC;IAExC;;;;;;OAMG;IACH,QAAQ,CAAC,GAAG,EAAE,GAAG,GAAG,IAAI,GAAG,cAAc,GAAG,IAAI,CAAC;IAEjD;;;;;OAKG;IACH,gBAAgB,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,EAAE,CAAC,CAAC;IAE1D;;;;;;;;;;OAUG;IACH,iBAAiB,CAAC,QAAQ,EAAE;QAAE,MAAM,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC,cAAc,CAAC,CAAC;IAEzE;;;;;;;;;OASG;IACH,iBAAiB,CACf,QAAQ,EAAE;QAAE,KAAK,EAAE,GAAG,CAAC;QAAC,UAAU,EAAE,OAAO,CAAC,SAAS,CAAA;KAAE,GACtD,cAAc,CAAC;IAElB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAoCG;IACH,YAAY,CACV,UAAU,EAAE,MAAM,GAAG,GAAG,EACxB,OAAO,CAAC,EAAE,mBAAmB,GAC5B,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC;IAE1B;;;;;;OAMG;IACH,YAAY,CACV,MAAM,EAAE,aAAa,GAAG,aAAa,EAAE,GAAG;QAAE,MAAM,EAAE,MAAM,CAAA;KAAE,EAC5D,UAAU,EAAE,SAAS,GAAG,SAAS,EAAE,EACnC,QAAQ,EAAE,QAAQ,EAClB,OAAO,CAAC,EAAE,mBAAmB,GAC5B,OAAO,CAAC,IAAI,CAAC,CAAC;IAEjB;;;;;;;;OAQG;IACH,YAAY,CACV,MAAM,EAAE;QAAE,MAAM,EAAE,MAAM,CAAA;KAAE,EAC1B,UAAU,EAAE,WAAW,EACvB,QAAQ,EAAE,QAAQ,EAClB,OAAO,CAAC,EAAE,mBAAmB,GAC5B,OAAO,CAAC,IAAI,CAAC,CAAC;CAClB;AAED;;GAEG;AACH,MAAM,WAAW,cAAc,CAAC,YAAY,CAAE,SAAQ,OAAO,CAAC,YAAY,CAAC;IACzE;;OAEG;IACH,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;IAE1B;;OAEG;IACH,QAAQ,CAAC,GAAG,EAAE,GAAG,CAAC;IAElB;;;;;;OAMG;IACH,QAAQ,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,KAAK,GAAG,IAAI,CAAC,CAAC;IAEhD;;;;;;;;;OASG;IACH,SAAS,CAAC,OAAO,SAAS,MAAM,EAE9B,GAAG,EAAE,CAAC,KAAK,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,OAAO,CAAC,GAAG;QAAE,MAAM,EAAE,GAAG,CAAA;KAAE,EACxD,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAC7B,OAAO,CAAC,OAAO,GAAG,IAAI,CAAC,CAAC;IAE3B;;;;;;;;;;;OAWG;IACH,YAAY,IAAI,OAAO,CAAC,gBAAgB,GAAG,IAAI,CAAC,CAAC;IAEjD;;;;;;;;;;;;OAYG;IACH,iBAAiB,IAAI,OAAO,CAAC,KAAK,GAAG,IAAI,CAAC,CAAC;CAC5C;AAED;;;GAGG;AACH,MAAM,WAAW,YAAY,CAAC,YAAY,CAAE,SAAQ,OAAO,CAAC,YAAY,CAAC;IACvE;;;;;;;;;;;OAWG;IACH,eAAe,CACb,SAAS,EAAE,aAAa,GAAG,aAAa,EAAE,GAAG;QAAE,MAAM,EAAE,MAAM,CAAA;KAAE,EAC/D,UAAU,EAAE,SAAS,GAAG,SAAS,EAAE,EACnC,OAAO,CAAC,EAAE,sBAAsB,GAC/B,OAAO,CAAC,IAAI,CAAC,CAAC;IAEjB;;;;;;;;;;;OAWG;IACH,eAAe,CACb,SAAS,EAAE;QAAE,MAAM,EAAE,MAAM,CAAA;KAAE,EAC7B,UAAU,EAAE,WAAW,EACvB,OAAO,CAAC,EAAE,sBAAsB,GAC/B,OAAO,CAAC,IAAI,CAAC,CAAC;CAClB;AAED;;GAEG;AACH,MAAM,MAAM,cAAc;AACxB;;GAEG;AACD;IAAE,IAAI,EAAE,OAAO,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE;AACnC;;GAEG;GACD;IACA,IAAI,EAAE,QAAQ,CAAC;IAEf,KAAK,EAAE,CAAC,KAAK,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,MAAM,CAAC,GAAG;QAAE,MAAM,EAAE,GAAG,CAAA;KAAE,CAAC;IAC1D,MAAM,EAAE,GAAG,CAAC;IACZ,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CAChC;AACD;;;GAGG;GACD;IAAE,IAAI,EAAE,OAAO,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,CAAA;CAAE;AACpC;;GAEG;GACD;IAAE,IAAI,EAAE,QAAQ,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE;AACpC;;GAEG;GACD;IAAE,IAAI,EAAE,WAAW,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE;AACvC;;GAEG;GACD;IAAE,IAAI,EAAE,WAAW,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE;AACvC;;;GAGG;GACD;IAAE,IAAI,EAAE,OAAO,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE;AACnC;;;GAGG;GACD;IAAE,IAAI,EAAE,UAAU,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE;AACtC;;;GAGG;GACD;IAAE,IAAI,EAAE,cAAc,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAAC;AAE7C;;GAEG;AACH,MAAM,WAAW,mBAAmB;IAClC;;OAEG;IACH,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAE5B;;;;;;OAMG;IACH,SAAS,CAAC,EAAE,OAAO,CAAC;IAEpB;;;;;;;OAOG;IACH,eAAe,CAAC,EAAE,GAAG,EAAE,CAAC;CACzB;AAED;;;GAGG;AACH,MAAM,WAAW,sBAAuB,SAAQ,mBAAmB;IACjE;;;;;;;OAOG;IACH,cAAc,EAAE,OAAO,CAAC;CACzB;AAED;;;GAGG;AACH,MAAM,WAAW,YAAa,SAAQ,OAAO,CAAC,aAAa;IACzD;;OAEG;IACH,KAAK,EAAE,GAAG,CAAC;IAEX;;OAEG;IACH,gBAAgB,EAAE,gBAAgB,CAAC;IAEnC;;OAEG;IACH,QAAQ,EAAE,QAAQ,CAAC;CACpB"}
|
@@ -0,0 +1,462 @@
|
|
1
|
+
/// <reference types="node" />
|
2
|
+
/// <reference types="node" />
|
3
|
+
import type { Actor, Recipient } from "../vocab/actor.js";
|
4
|
+
import type { Activity, Hashtag, Object } from "../vocab/vocab.js";
|
5
|
+
import type { ActorDispatcher, ActorHandleMapper, ActorKeyPairsDispatcher, AuthorizePredicate, CollectionCounter, CollectionCursor, CollectionDispatcher, InboxErrorHandler, InboxListener, NodeInfoDispatcher, ObjectAuthorizePredicate, ObjectDispatcher, SharedInboxKeyDispatcher } from "./callback.js";
|
6
|
+
import type { Context, RequestContext } from "./context.js";
|
7
|
+
/**
|
8
|
+
* An object that registers federation-related business logic and dispatches
|
9
|
+
* requests to the appropriate handlers.
|
10
|
+
*
|
11
|
+
* It also provides a middleware interface for handling requests before your
|
12
|
+
* web framework's router; see {@link Federation.fetch}.
|
13
|
+
*
|
14
|
+
* @since 0.13.0
|
15
|
+
*/
|
16
|
+
export interface Federation<TContextData> {
|
17
|
+
/**
|
18
|
+
* Manually start the task queue.
|
19
|
+
*
|
20
|
+
* This method is useful when you set the `manuallyStartQueue` option to
|
21
|
+
* `true` in the {@link createFederation} function.
|
22
|
+
* @param contextData The context data to pass to the context.
|
23
|
+
*/
|
24
|
+
startQueue(contextData: TContextData): Promise<void>;
|
25
|
+
/**
|
26
|
+
* Create a new context.
|
27
|
+
* @param baseUrl The base URL of the server. The `pathname` remains root,
|
28
|
+
* and the `search` and `hash` are stripped.
|
29
|
+
* @param contextData The context data to pass to the context.
|
30
|
+
* @returns The new context.
|
31
|
+
*/
|
32
|
+
createContext(baseUrl: URL, contextData: TContextData): Context<TContextData>;
|
33
|
+
/**
|
34
|
+
* Create a new context for a request.
|
35
|
+
* @param request The request object.
|
36
|
+
* @param contextData The context data to pass to the context.
|
37
|
+
* @returns The new request context.
|
38
|
+
*/
|
39
|
+
createContext(request: Request, contextData: TContextData): RequestContext<TContextData>;
|
40
|
+
/**
|
41
|
+
* Registers a NodeInfo dispatcher.
|
42
|
+
* @param path The URI path pattern for the NodeInfo dispatcher. The syntax
|
43
|
+
* is based on URI Template
|
44
|
+
* ([RFC 6570](https://tools.ietf.org/html/rfc6570)). The path
|
45
|
+
* must have no variables.
|
46
|
+
* @param dispatcher A NodeInfo dispatcher callback to register.
|
47
|
+
* @throws {RouterError} Thrown if the path pattern is invalid.
|
48
|
+
*/
|
49
|
+
setNodeInfoDispatcher(path: string, dispatcher: NodeInfoDispatcher<TContextData>): void;
|
50
|
+
/**
|
51
|
+
* Registers an actor dispatcher.
|
52
|
+
*
|
53
|
+
* @example
|
54
|
+
* ``` typescript
|
55
|
+
* federation.setActorDispatcher(
|
56
|
+
* "/users/{handle}",
|
57
|
+
* async (ctx, handle) => {
|
58
|
+
* return new Person({
|
59
|
+
* id: ctx.getActorUri(handle),
|
60
|
+
* preferredUsername: handle,
|
61
|
+
* // ...
|
62
|
+
* });
|
63
|
+
* }
|
64
|
+
* );
|
65
|
+
* ```
|
66
|
+
*
|
67
|
+
* @param path The URI path pattern for the actor dispatcher. The syntax is
|
68
|
+
* based on URI Template
|
69
|
+
* ([RFC 6570](https://tools.ietf.org/html/rfc6570)). The path
|
70
|
+
* must have one variable: `{handle}`.
|
71
|
+
* @param dispatcher An actor dispatcher callback to register.
|
72
|
+
* @returns An object with methods to set other actor dispatcher callbacks.
|
73
|
+
* @throws {RouterError} Thrown if the path pattern is invalid.
|
74
|
+
*/
|
75
|
+
setActorDispatcher(path: `${string}{handle}${string}`, dispatcher: ActorDispatcher<TContextData>): ActorCallbackSetters<TContextData>;
|
76
|
+
/**
|
77
|
+
* Registers an object dispatcher.
|
78
|
+
*
|
79
|
+
* @typeParam TContextData The context data to pass to the {@link Context}.
|
80
|
+
* @typeParam TObject The type of object to dispatch.
|
81
|
+
* @typeParam TParam The parameter names of the requested URL.
|
82
|
+
* @param cls The Activity Vocabulary class of the object to dispatch.
|
83
|
+
* @param path The URI path pattern for the object dispatcher. The syntax is
|
84
|
+
* based on URI Template
|
85
|
+
* ([RFC 6570](https://tools.ietf.org/html/rfc6570)). The path
|
86
|
+
* must have one or more variables.
|
87
|
+
* @param dispatcher An object dispatcher callback to register.
|
88
|
+
*/
|
89
|
+
setObjectDispatcher<TObject extends Object, TParam extends string>(cls: (new (...args: any[]) => TObject) & {
|
90
|
+
typeId: URL;
|
91
|
+
}, path: `${string}{${TParam}}${string}{${TParam}}${string}{${TParam}}${string}{${TParam}}${string}{${TParam}}${string}{${TParam}}${string}`, dispatcher: ObjectDispatcher<TContextData, TObject, TParam>): ObjectCallbackSetters<TContextData, TObject, TParam>;
|
92
|
+
/**
|
93
|
+
* Registers an object dispatcher.
|
94
|
+
*
|
95
|
+
* @typeParam TContextData The context data to pass to the {@link Context}.
|
96
|
+
* @typeParam TObject The type of object to dispatch.
|
97
|
+
* @typeParam TParam The parameter names of the requested URL.
|
98
|
+
* @param cls The Activity Vocabulary class of the object to dispatch.
|
99
|
+
* @param path The URI path pattern for the object dispatcher. The syntax is
|
100
|
+
* based on URI Template
|
101
|
+
* ([RFC 6570](https://tools.ietf.org/html/rfc6570)). The path
|
102
|
+
* must have one or more variables.
|
103
|
+
* @param dispatcher An object dispatcher callback to register.
|
104
|
+
*/
|
105
|
+
setObjectDispatcher<TObject extends Object, TParam extends string>(cls: (new (...args: any[]) => TObject) & {
|
106
|
+
typeId: URL;
|
107
|
+
}, path: `${string}{${TParam}}${string}{${TParam}}${string}{${TParam}}${string}{${TParam}}${string}{${TParam}}${string}`, dispatcher: ObjectDispatcher<TContextData, TObject, TParam>): ObjectCallbackSetters<TContextData, TObject, TParam>;
|
108
|
+
/**
|
109
|
+
* Registers an object dispatcher.
|
110
|
+
*
|
111
|
+
* @typeParam TContextData The context data to pass to the {@link Context}.
|
112
|
+
* @typeParam TObject The type of object to dispatch.
|
113
|
+
* @typeParam TParam The parameter names of the requested URL.
|
114
|
+
* @param cls The Activity Vocabulary class of the object to dispatch.
|
115
|
+
* @param path The URI path pattern for the object dispatcher. The syntax is
|
116
|
+
* based on URI Template
|
117
|
+
* ([RFC 6570](https://tools.ietf.org/html/rfc6570)). The path
|
118
|
+
* must have one or more variables.
|
119
|
+
* @param dispatcher An object dispatcher callback to register.
|
120
|
+
*/
|
121
|
+
setObjectDispatcher<TObject extends Object, TParam extends string>(cls: (new (...args: any[]) => TObject) & {
|
122
|
+
typeId: URL;
|
123
|
+
}, path: `${string}{${TParam}}${string}{${TParam}}${string}{${TParam}}${string}{${TParam}}${string}`, dispatcher: ObjectDispatcher<TContextData, TObject, TParam>): ObjectCallbackSetters<TContextData, TObject, TParam>;
|
124
|
+
/**
|
125
|
+
* Registers an object dispatcher.
|
126
|
+
*
|
127
|
+
* @typeParam TContextData The context data to pass to the {@link Context}.
|
128
|
+
* @typeParam TObject The type of object to dispatch.
|
129
|
+
* @typeParam TParam The parameter names of the requested URL.
|
130
|
+
* @param cls The Activity Vocabulary class of the object to dispatch.
|
131
|
+
* @param path The URI path pattern for the object dispatcher. The syntax is
|
132
|
+
* based on URI Template
|
133
|
+
* ([RFC 6570](https://tools.ietf.org/html/rfc6570)). The path
|
134
|
+
* must have one or more variables.
|
135
|
+
* @param dispatcher An object dispatcher callback to register.
|
136
|
+
*/
|
137
|
+
setObjectDispatcher<TObject extends Object, TParam extends string>(cls: (new (...args: any[]) => TObject) & {
|
138
|
+
typeId: URL;
|
139
|
+
}, path: `${string}{${TParam}}${string}{${TParam}}${string}{${TParam}}${string}`, dispatcher: ObjectDispatcher<TContextData, TObject, TParam>): ObjectCallbackSetters<TContextData, TObject, TParam>;
|
140
|
+
/**
|
141
|
+
* Registers an object dispatcher.
|
142
|
+
*
|
143
|
+
* @typeParam TContextData The context data to pass to the {@link Context}.
|
144
|
+
* @typeParam TObject The type of object to dispatch.
|
145
|
+
* @typeParam TParam The parameter names of the requested URL.
|
146
|
+
* @param cls The Activity Vocabulary class of the object to dispatch.
|
147
|
+
* @param path The URI path pattern for the object dispatcher. The syntax is
|
148
|
+
* based on URI Template
|
149
|
+
* ([RFC 6570](https://tools.ietf.org/html/rfc6570)). The path
|
150
|
+
* must have one or more variables.
|
151
|
+
* @param dispatcher An object dispatcher callback to register.
|
152
|
+
*/
|
153
|
+
setObjectDispatcher<TObject extends Object, TParam extends string>(cls: (new (...args: any[]) => TObject) & {
|
154
|
+
typeId: URL;
|
155
|
+
}, path: `${string}{${TParam}}${string}{${TParam}}${string}`, dispatcher: ObjectDispatcher<TContextData, TObject, TParam>): ObjectCallbackSetters<TContextData, TObject, TParam>;
|
156
|
+
/**
|
157
|
+
* Registers an object dispatcher.
|
158
|
+
*
|
159
|
+
* @typeParam TContextData The context data to pass to the {@link Context}.
|
160
|
+
* @typeParam TObject The type of object to dispatch.
|
161
|
+
* @typeParam TParam The parameter names of the requested URL.
|
162
|
+
* @param cls The Activity Vocabulary class of the object to dispatch.
|
163
|
+
* @param path The URI path pattern for the object dispatcher. The syntax is
|
164
|
+
* based on URI Template
|
165
|
+
* ([RFC 6570](https://tools.ietf.org/html/rfc6570)). The path
|
166
|
+
* must have one or more variables.
|
167
|
+
* @param dispatcher An object dispatcher callback to register.
|
168
|
+
*/
|
169
|
+
setObjectDispatcher<TObject extends Object, TParam extends string>(cls: (new (...args: any[]) => TObject) & {
|
170
|
+
typeId: URL;
|
171
|
+
}, path: `${string}{${TParam}}${string}`, dispatcher: ObjectDispatcher<TContextData, TObject, TParam>): ObjectCallbackSetters<TContextData, TObject, TParam>;
|
172
|
+
/**
|
173
|
+
* Registers an inbox dispatcher.
|
174
|
+
*
|
175
|
+
* @param path The URI path pattern for the outbox dispatcher. The syntax is
|
176
|
+
* based on URI Template
|
177
|
+
* ([RFC 6570](https://tools.ietf.org/html/rfc6570)). The path
|
178
|
+
* must have one variable: `{handle}`, and must match the inbox
|
179
|
+
* listener path.
|
180
|
+
* @param dispatcher An inbox dispatcher callback to register.
|
181
|
+
* @throws {@link RouterError} Thrown if the path pattern is invalid.
|
182
|
+
*/
|
183
|
+
setInboxDispatcher(path: `${string}{handle}${string}`, dispatcher: CollectionDispatcher<Activity, RequestContext<TContextData>, TContextData, void>): CollectionCallbackSetters<RequestContext<TContextData>, TContextData, void>;
|
184
|
+
/**
|
185
|
+
* Registers an outbox dispatcher.
|
186
|
+
*
|
187
|
+
* @example
|
188
|
+
* ``` typescript
|
189
|
+
* federation.setOutboxDispatcher(
|
190
|
+
* "/users/{handle}/outbox",
|
191
|
+
* async (ctx, handle, options) => {
|
192
|
+
* let items: Activity[];
|
193
|
+
* let nextCursor: string;
|
194
|
+
* // ...
|
195
|
+
* return { items, nextCursor };
|
196
|
+
* }
|
197
|
+
* );
|
198
|
+
* ```
|
199
|
+
*
|
200
|
+
* @param path The URI path pattern for the outbox dispatcher. The syntax is
|
201
|
+
* based on URI Template
|
202
|
+
* ([RFC 6570](https://tools.ietf.org/html/rfc6570)). The path
|
203
|
+
* must have one variable: `{handle}`.
|
204
|
+
* @param dispatcher An outbox dispatcher callback to register.
|
205
|
+
* @throws {@link RouterError} Thrown if the path pattern is invalid.
|
206
|
+
*/
|
207
|
+
setOutboxDispatcher(path: `${string}{handle}${string}`, dispatcher: CollectionDispatcher<Activity, RequestContext<TContextData>, TContextData, void>): CollectionCallbackSetters<RequestContext<TContextData>, TContextData, void>;
|
208
|
+
/**
|
209
|
+
* Registers a following collection dispatcher.
|
210
|
+
* @param path The URI path pattern for the following collection. The syntax
|
211
|
+
* is based on URI Template
|
212
|
+
* ([RFC 6570](https://tools.ietf.org/html/rfc6570)). The path
|
213
|
+
* must have one variable: `{handle}`.
|
214
|
+
* @param dispatcher A following collection callback to register.
|
215
|
+
* @returns An object with methods to set other following collection
|
216
|
+
* callbacks.
|
217
|
+
* @throws {RouterError} Thrown if the path pattern is invalid.
|
218
|
+
*/
|
219
|
+
setFollowingDispatcher(path: `${string}{handle}${string}`, dispatcher: CollectionDispatcher<Actor | URL, RequestContext<TContextData>, TContextData, void>): CollectionCallbackSetters<RequestContext<TContextData>, TContextData, void>;
|
220
|
+
/**
|
221
|
+
* Registers a followers collection dispatcher.
|
222
|
+
* @param path The URI path pattern for the followers collection. The syntax
|
223
|
+
* is based on URI Template
|
224
|
+
* ([RFC 6570](https://tools.ietf.org/html/rfc6570)). The path
|
225
|
+
* must have one variable: `{handle}`.
|
226
|
+
* @param dispatcher A followers collection callback to register.
|
227
|
+
* @returns An object with methods to set other followers collection
|
228
|
+
* callbacks.
|
229
|
+
* @throws {@link RouterError} Thrown if the path pattern is invalid.
|
230
|
+
*/
|
231
|
+
setFollowersDispatcher(path: `${string}{handle}${string}`, dispatcher: CollectionDispatcher<Recipient, Context<TContextData>, TContextData, URL>): CollectionCallbackSetters<Context<TContextData>, TContextData, URL>;
|
232
|
+
/**
|
233
|
+
* Registers a liked collection dispatcher.
|
234
|
+
* @param path The URI path pattern for the liked collection. The syntax
|
235
|
+
* is based on URI Template
|
236
|
+
* ([RFC 6570](https://tools.ietf.org/html/rfc6570)). The path
|
237
|
+
* must have one variable: `{handle}`.
|
238
|
+
* @param dispatcher A liked collection callback to register.
|
239
|
+
* @returns An object with methods to set other liked collection
|
240
|
+
* callbacks.
|
241
|
+
* @throws {@link RouterError} Thrown if the path pattern is invalid.
|
242
|
+
*/
|
243
|
+
setLikedDispatcher(path: `${string}{handle}${string}`, dispatcher: CollectionDispatcher<Object | URL, RequestContext<TContextData>, TContextData, void>): CollectionCallbackSetters<RequestContext<TContextData>, TContextData, void>;
|
244
|
+
/**
|
245
|
+
* Registers a featured collection dispatcher.
|
246
|
+
* @param path The URI path pattern for the featured collection. The syntax
|
247
|
+
* is based on URI Template
|
248
|
+
* ([RFC 6570](https://tools.ietf.org/html/rfc6570)). The path
|
249
|
+
* must have one variable: `{handle}`.
|
250
|
+
* @param dispatcher A featured collection callback to register.
|
251
|
+
* @returns An object with methods to set other featured collection
|
252
|
+
* callbacks.
|
253
|
+
* @throws {@link RouterError} Thrown if the path pattern is invalid.
|
254
|
+
*/
|
255
|
+
setFeaturedDispatcher(path: `${string}{handle}${string}`, dispatcher: CollectionDispatcher<Object, RequestContext<TContextData>, TContextData, void>): CollectionCallbackSetters<RequestContext<TContextData>, TContextData, void>;
|
256
|
+
/**
|
257
|
+
* Registers a featured tags collection dispatcher.
|
258
|
+
* @param path The URI path pattern for the featured tags collection.
|
259
|
+
* The syntax is based on URI Template
|
260
|
+
* ([RFC 6570](https://tools.ietf.org/html/rfc6570)). The path
|
261
|
+
* must have one variable: `{handle}`.
|
262
|
+
* @param dispatcher A featured tags collection callback to register.
|
263
|
+
* @returns An object with methods to set other featured tags collection
|
264
|
+
* callbacks.
|
265
|
+
* @throws {@link RouterError} Thrown if the path pattern is invalid.
|
266
|
+
*/
|
267
|
+
setFeaturedTagsDispatcher(path: `${string}{handle}${string}`, dispatcher: CollectionDispatcher<Hashtag, RequestContext<TContextData>, TContextData, void>): CollectionCallbackSetters<RequestContext<TContextData>, TContextData, void>;
|
268
|
+
/**
|
269
|
+
* Assigns the URL path for the inbox and starts setting inbox listeners.
|
270
|
+
*
|
271
|
+
* @example
|
272
|
+
* ``` typescript
|
273
|
+
* federation
|
274
|
+
* .setInboxListeners("/users/{handle/inbox", "/inbox")
|
275
|
+
* .on(Follow, async (ctx, follow) => {
|
276
|
+
* const from = await follow.getActor(ctx);
|
277
|
+
* if (!isActor(from)) return;
|
278
|
+
* // ...
|
279
|
+
* await ctx.sendActivity({ })
|
280
|
+
* })
|
281
|
+
* .on(Undo, async (ctx, undo) => {
|
282
|
+
* // ...
|
283
|
+
* });
|
284
|
+
* ```
|
285
|
+
*
|
286
|
+
* @param inboxPath The URI path pattern for the inbox. The syntax is based
|
287
|
+
* on URI Template
|
288
|
+
* ([RFC 6570](https://tools.ietf.org/html/rfc6570)).
|
289
|
+
* The path must have one variable: `{handle}`, and must
|
290
|
+
* match the inbox dispatcher path.
|
291
|
+
* @param sharedInboxPath An optional URI path pattern for the shared inbox.
|
292
|
+
* The syntax is based on URI Template
|
293
|
+
* ([RFC 6570](https://tools.ietf.org/html/rfc6570)).
|
294
|
+
* The path must have no variables.
|
295
|
+
* @returns An object to register inbox listeners.
|
296
|
+
* @throws {RouteError} Thrown if the path pattern is invalid.
|
297
|
+
*/
|
298
|
+
setInboxListeners(inboxPath: `${string}{handle}${string}`, sharedInboxPath?: string): InboxListenerSetters<TContextData>;
|
299
|
+
/**
|
300
|
+
* Handles a request related to federation. If a request is not related to
|
301
|
+
* federation, the `onNotFound` or `onNotAcceptable` callback is called.
|
302
|
+
*
|
303
|
+
* Usually, this method is called from a server's request handler or
|
304
|
+
* a web framework's middleware.
|
305
|
+
*
|
306
|
+
* @param request The request object.
|
307
|
+
* @param parameters The parameters for handling the request.
|
308
|
+
* @returns The response to the request.
|
309
|
+
*/
|
310
|
+
fetch(request: Request, options: FederationFetchOptions<TContextData>): Promise<Response>;
|
311
|
+
}
|
312
|
+
/**
|
313
|
+
* Additional settings for the actor dispatcher.
|
314
|
+
*
|
315
|
+
* ``` typescript
|
316
|
+
* const federation = createFederation<void>({ ... });
|
317
|
+
* federation.setActorDispatcher("/users/{handle}", async (ctx, handle, key) => {
|
318
|
+
* ...
|
319
|
+
* })
|
320
|
+
* .setKeyPairsDispatcher(async (ctxData, handle) => {
|
321
|
+
* ...
|
322
|
+
* });
|
323
|
+
* ```
|
324
|
+
*/
|
325
|
+
export interface ActorCallbackSetters<TContextData> {
|
326
|
+
/**
|
327
|
+
* Sets the key pairs dispatcher for actors.
|
328
|
+
* @param dispatcher A callback that returns the key pairs for an actor.
|
329
|
+
* @returns The setters object so that settings can be chained.
|
330
|
+
* @since 0.10.0
|
331
|
+
*/
|
332
|
+
setKeyPairsDispatcher(dispatcher: ActorKeyPairsDispatcher<TContextData>): ActorCallbackSetters<TContextData>;
|
333
|
+
/**
|
334
|
+
* Sets the callback function that maps a WebFinger username to
|
335
|
+
* the corresponding actor's internal handle. If it's omitted, the handle
|
336
|
+
* is assumed to be the same as the WebFinger username, which makes your
|
337
|
+
* actors have the immutable handles. If you want to let your actors change
|
338
|
+
* their fediverse handles, you should set this dispatcher.
|
339
|
+
* @since 0.15.0
|
340
|
+
*/
|
341
|
+
mapHandle(mapper: ActorHandleMapper<TContextData>): ActorCallbackSetters<TContextData>;
|
342
|
+
/**
|
343
|
+
* Specifies the conditions under which requests are authorized.
|
344
|
+
* @param predicate A callback that returns whether a request is authorized.
|
345
|
+
* @returns The setters object so that settings can be chained.
|
346
|
+
* @since 0.7.0
|
347
|
+
*/
|
348
|
+
authorize(predicate: AuthorizePredicate<TContextData>): ActorCallbackSetters<TContextData>;
|
349
|
+
}
|
350
|
+
/**
|
351
|
+
* Additional settings for an object dispatcher.
|
352
|
+
*/
|
353
|
+
export interface ObjectCallbackSetters<TContextData, TObject extends Object, TParam extends string> {
|
354
|
+
/**
|
355
|
+
* Specifies the conditions under which requests are authorized.
|
356
|
+
* @param predicate A callback that returns whether a request is authorized.
|
357
|
+
* @returns The setters object so that settings can be chained.
|
358
|
+
* @since 0.7.0
|
359
|
+
*/
|
360
|
+
authorize(predicate: ObjectAuthorizePredicate<TContextData, TParam>): ObjectCallbackSetters<TContextData, TObject, TParam>;
|
361
|
+
}
|
362
|
+
/**
|
363
|
+
* Additional settings for a collection dispatcher.
|
364
|
+
*
|
365
|
+
* @typeParam TContext The type of the context. {@link Context} or
|
366
|
+
* {@link RequestContext}.
|
367
|
+
* @typeParam TContextData The context data to pass to the {@link Context}.
|
368
|
+
* @typeParam TFilter The type of filter for the collection.
|
369
|
+
*/
|
370
|
+
export interface CollectionCallbackSetters<TContext extends Context<TContextData>, TContextData, TFilter> {
|
371
|
+
/**
|
372
|
+
* Sets the counter for the collection.
|
373
|
+
* @param counter A callback that returns the number of items in the collection.
|
374
|
+
* @returns The setters object so that settings can be chained.
|
375
|
+
*/
|
376
|
+
setCounter(counter: CollectionCounter<TContextData, TFilter>): CollectionCallbackSetters<TContext, TContextData, TFilter>;
|
377
|
+
/**
|
378
|
+
* Sets the first cursor for the collection.
|
379
|
+
* @param cursor The cursor for the first item in the collection.
|
380
|
+
* @returns The setters object so that settings can be chained.
|
381
|
+
*/
|
382
|
+
setFirstCursor(cursor: CollectionCursor<TContext, TContextData, TFilter>): CollectionCallbackSetters<TContext, TContextData, TFilter>;
|
383
|
+
/**
|
384
|
+
* Sets the last cursor for the collection.
|
385
|
+
* @param cursor The cursor for the last item in the collection.
|
386
|
+
* @returns The setters object so that settings can be chained.
|
387
|
+
*/
|
388
|
+
setLastCursor(cursor: CollectionCursor<TContext, TContextData, TFilter>): CollectionCallbackSetters<TContext, TContextData, TFilter>;
|
389
|
+
/**
|
390
|
+
* Specifies the conditions under which requests are authorized.
|
391
|
+
* @param predicate A callback that returns whether a request is authorized.
|
392
|
+
* @returns The setters object so that settings can be chained.
|
393
|
+
* @since 0.7.0
|
394
|
+
*/
|
395
|
+
authorize(predicate: AuthorizePredicate<TContextData>): CollectionCallbackSetters<TContext, TContextData, TFilter>;
|
396
|
+
}
|
397
|
+
/**
|
398
|
+
* Registry for inbox listeners for different activity types.
|
399
|
+
*/
|
400
|
+
export interface InboxListenerSetters<TContextData> {
|
401
|
+
/**
|
402
|
+
* Registers a listener for a specific incoming activity type.
|
403
|
+
*
|
404
|
+
* @param type A subclass of {@link Activity} to listen to.
|
405
|
+
* @param listener A callback to handle an incoming activity.
|
406
|
+
* @returns The setters object so that settings can be chained.
|
407
|
+
*/
|
408
|
+
on<TActivity extends Activity>(type: new (...args: any[]) => TActivity, listener: InboxListener<TContextData, TActivity>): InboxListenerSetters<TContextData>;
|
409
|
+
/**
|
410
|
+
* Registers an error handler for inbox listeners. Any exceptions thrown
|
411
|
+
* from the listeners are caught and passed to this handler.
|
412
|
+
*
|
413
|
+
* @param handler A callback to handle an error.
|
414
|
+
* @returns The setters object so that settings can be chained.
|
415
|
+
*/
|
416
|
+
onError(handler: InboxErrorHandler<TContextData>): InboxListenerSetters<TContextData>;
|
417
|
+
/**
|
418
|
+
* Configures a callback to dispatch the key pair for the authenticated
|
419
|
+
* document loader of the {@link Context} passed to the shared inbox listener.
|
420
|
+
*
|
421
|
+
* @param dispatcher A callback to dispatch the key pair for the authenticated
|
422
|
+
* document loader.
|
423
|
+
* @returns The setters object so that settings can be chained.
|
424
|
+
* @since 0.11.0
|
425
|
+
*/
|
426
|
+
setSharedKeyDispatcher(dispatcher: SharedInboxKeyDispatcher<TContextData>): InboxListenerSetters<TContextData>;
|
427
|
+
}
|
428
|
+
/**
|
429
|
+
* Parameters of {@link Federation.fetch} method.
|
430
|
+
*
|
431
|
+
* @typeParam TContextData The context data to pass to the {@link Context}.
|
432
|
+
* @since 0.6.0
|
433
|
+
*/
|
434
|
+
export interface FederationFetchOptions<TContextData> {
|
435
|
+
/**
|
436
|
+
* The context data to pass to the {@link Context}.
|
437
|
+
*/
|
438
|
+
contextData: TContextData;
|
439
|
+
/**
|
440
|
+
* A callback to handle a request when the route is not found.
|
441
|
+
* If not provided, a 404 response is returned.
|
442
|
+
* @param request The request object.
|
443
|
+
* @returns The response to the request.
|
444
|
+
*/
|
445
|
+
onNotFound?: (request: Request) => Response | Promise<Response>;
|
446
|
+
/**
|
447
|
+
* A callback to handle a request when the request's `Accept` header is not
|
448
|
+
* acceptable. If not provided, a 406 response is returned.
|
449
|
+
* @param request The request object.
|
450
|
+
* @returns The response to the request.
|
451
|
+
*/
|
452
|
+
onNotAcceptable?: (request: Request) => Response | Promise<Response>;
|
453
|
+
/**
|
454
|
+
* A callback to handle a request when the request is unauthorized.
|
455
|
+
* If not provided, a 401 response is returned.
|
456
|
+
* @param request The request object.
|
457
|
+
* @returns The response to the request.
|
458
|
+
* @since 0.7.0
|
459
|
+
*/
|
460
|
+
onUnauthorized?: (request: Request) => Response | Promise<Response>;
|
461
|
+
}
|
462
|
+
//# sourceMappingURL=federation.d.ts.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"federation.d.ts","sourceRoot":"","sources":["../../src/federation/federation.ts"],"names":[],"mappings":";;AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AAC1D,OAAO,KAAK,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;AACnE,OAAO,KAAK,EACV,eAAe,EACf,iBAAiB,EACjB,uBAAuB,EACvB,kBAAkB,EAClB,iBAAiB,EACjB,gBAAgB,EAChB,oBAAoB,EACpB,iBAAiB,EACjB,aAAa,EACb,kBAAkB,EAClB,wBAAwB,EACxB,gBAAgB,EAChB,wBAAwB,EACzB,MAAM,eAAe,CAAC;AACvB,OAAO,KAAK,EAAE,OAAO,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAE5D;;;;;;;;GAQG;AACH,MAAM,WAAW,UAAU,CAAC,YAAY;IACtC;;;;;;OAMG;IACH,UAAU,CAAC,WAAW,EAAE,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAErD;;;;;;OAMG;IACH,aAAa,CAAC,OAAO,EAAE,GAAG,EAAE,WAAW,EAAE,YAAY,GAAG,OAAO,CAAC,YAAY,CAAC,CAAC;IAE9E;;;;;OAKG;IACH,aAAa,CACX,OAAO,EAAE,OAAO,EAChB,WAAW,EAAE,YAAY,GACxB,cAAc,CAAC,YAAY,CAAC,CAAC;IAEhC;;;;;;;;OAQG;IACH,qBAAqB,CACnB,IAAI,EAAE,MAAM,EACZ,UAAU,EAAE,kBAAkB,CAAC,YAAY,CAAC,GAC3C,IAAI,CAAC;IAER;;;;;;;;;;;;;;;;;;;;;;;;OAwBG;IACH,kBAAkB,CAChB,IAAI,EAAE,GAAG,MAAM,WAAW,MAAM,EAAE,EAClC,UAAU,EAAE,eAAe,CAAC,YAAY,CAAC,GACxC,oBAAoB,CAAC,YAAY,CAAC,CAAC;IAEtC;;;;;;;;;;;;OAYG;IACH,mBAAmB,CAAC,OAAO,SAAS,MAAM,EAAE,MAAM,SAAS,MAAM,EAE/D,GAAG,EAAE,CAAC,KAAK,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,OAAO,CAAC,GAAG;QAAE,MAAM,EAAE,GAAG,CAAA;KAAE,EACxD,IAAI,EACF,GAAG,MAAM,IAAI,MAAM,IAAI,MAAM,IAAI,MAAM,IAAI,MAAM,IAAI,MAAM,IAAI,MAAM,IAAI,MAAM,IAAI,MAAM,IAAI,MAAM,IAAI,MAAM,IAAI,MAAM,IAAI,MAAM,EAAE,EACrI,UAAU,EAAE,gBAAgB,CAAC,YAAY,EAAE,OAAO,EAAE,MAAM,CAAC,GAC1D,qBAAqB,CAAC,YAAY,EAAE,OAAO,EAAE,MAAM,CAAC,CAAC;IAExD;;;;;;;;;;;;OAYG;IACH,mBAAmB,CAAC,OAAO,SAAS,MAAM,EAAE,MAAM,SAAS,MAAM,EAE/D,GAAG,EAAE,CAAC,KAAK,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,OAAO,CAAC,GAAG;QAAE,MAAM,EAAE,GAAG,CAAA;KAAE,EACxD,IAAI,EACF,GAAG,MAAM,IAAI,MAAM,IAAI,MAAM,IAAI,MAAM,IAAI,MAAM,IAAI,MAAM,IAAI,MAAM,IAAI,MAAM,IAAI,MAAM,IAAI,MAAM,IAAI,MAAM,EAAE,EACjH,UAAU,EAAE,gBAAgB,CAAC,YAAY,EAAE,OAAO,EAAE,MAAM,CAAC,GAC1D,qBAAqB,CAAC,YAAY,EAAE,OAAO,EAAE,MAAM,CAAC,CAAC;IAExD;;;;;;;;;;;;OAYG;IACH,mBAAmB,CAAC,OAAO,SAAS,MAAM,EAAE,MAAM,SAAS,MAAM,EAE/D,GAAG,EAAE,CAAC,KAAK,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,OAAO,CAAC,GAAG;QAAE,MAAM,EAAE,GAAG,CAAA;KAAE,EACxD,IAAI,EACF,GAAG,MAAM,IAAI,MAAM,IAAI,MAAM,IAAI,MAAM,IAAI,MAAM,IAAI,MAAM,IAAI,MAAM,IAAI,MAAM,IAAI,MAAM,EAAE,EAC7F,UAAU,EAAE,gBAAgB,CAAC,YAAY,EAAE,OAAO,EAAE,MAAM,CAAC,GAC1D,qBAAqB,CAAC,YAAY,EAAE,OAAO,EAAE,MAAM,CAAC,CAAC;IAExD;;;;;;;;;;;;OAYG;IACH,mBAAmB,CAAC,OAAO,SAAS,MAAM,EAAE,MAAM,SAAS,MAAM,EAE/D,GAAG,EAAE,CAAC,KAAK,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,OAAO,CAAC,GAAG;QAAE,MAAM,EAAE,GAAG,CAAA;KAAE,EACxD,IAAI,EACF,GAAG,MAAM,IAAI,MAAM,IAAI,MAAM,IAAI,MAAM,IAAI,MAAM,IAAI,MAAM,IAAI,MAAM,EAAE,EACzE,UAAU,EAAE,gBAAgB,CAAC,YAAY,EAAE,OAAO,EAAE,MAAM,CAAC,GAC1D,qBAAqB,CAAC,YAAY,EAAE,OAAO,EAAE,MAAM,CAAC,CAAC;IAExD;;;;;;;;;;;;OAYG;IACH,mBAAmB,CAAC,OAAO,SAAS,MAAM,EAAE,MAAM,SAAS,MAAM,EAE/D,GAAG,EAAE,CAAC,KAAK,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,OAAO,CAAC,GAAG;QAAE,MAAM,EAAE,GAAG,CAAA;KAAE,EACxD,IAAI,EAAE,GAAG,MAAM,IAAI,MAAM,IAAI,MAAM,IAAI,MAAM,IAAI,MAAM,EAAE,EACzD,UAAU,EAAE,gBAAgB,CAAC,YAAY,EAAE,OAAO,EAAE,MAAM,CAAC,GAC1D,qBAAqB,CAAC,YAAY,EAAE,OAAO,EAAE,MAAM,CAAC,CAAC;IAExD;;;;;;;;;;;;OAYG;IACH,mBAAmB,CAAC,OAAO,SAAS,MAAM,EAAE,MAAM,SAAS,MAAM,EAE/D,GAAG,EAAE,CAAC,KAAK,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,OAAO,CAAC,GAAG;QAAE,MAAM,EAAE,GAAG,CAAA;KAAE,EACxD,IAAI,EAAE,GAAG,MAAM,IAAI,MAAM,IAAI,MAAM,EAAE,EACrC,UAAU,EAAE,gBAAgB,CAAC,YAAY,EAAE,OAAO,EAAE,MAAM,CAAC,GAC1D,qBAAqB,CAAC,YAAY,EAAE,OAAO,EAAE,MAAM,CAAC,CAAC;IAExD;;;;;;;;;;OAUG;IACH,kBAAkB,CAChB,IAAI,EAAE,GAAG,MAAM,WAAW,MAAM,EAAE,EAClC,UAAU,EAAE,oBAAoB,CAC9B,QAAQ,EACR,cAAc,CAAC,YAAY,CAAC,EAC5B,YAAY,EACZ,IAAI,CACL,GACA,yBAAyB,CAC1B,cAAc,CAAC,YAAY,CAAC,EAC5B,YAAY,EACZ,IAAI,CACL,CAAC;IAEF;;;;;;;;;;;;;;;;;;;;;;OAsBG;IACH,mBAAmB,CACjB,IAAI,EAAE,GAAG,MAAM,WAAW,MAAM,EAAE,EAClC,UAAU,EAAE,oBAAoB,CAC9B,QAAQ,EACR,cAAc,CAAC,YAAY,CAAC,EAC5B,YAAY,EACZ,IAAI,CACL,GACA,yBAAyB,CAC1B,cAAc,CAAC,YAAY,CAAC,EAC5B,YAAY,EACZ,IAAI,CACL,CAAC;IAEF;;;;;;;;;;OAUG;IACH,sBAAsB,CACpB,IAAI,EAAE,GAAG,MAAM,WAAW,MAAM,EAAE,EAClC,UAAU,EAAE,oBAAoB,CAC9B,KAAK,GAAG,GAAG,EACX,cAAc,CAAC,YAAY,CAAC,EAC5B,YAAY,EACZ,IAAI,CACL,GACA,yBAAyB,CAC1B,cAAc,CAAC,YAAY,CAAC,EAC5B,YAAY,EACZ,IAAI,CACL,CAAC;IAEF;;;;;;;;;;OAUG;IACH,sBAAsB,CACpB,IAAI,EAAE,GAAG,MAAM,WAAW,MAAM,EAAE,EAClC,UAAU,EAAE,oBAAoB,CAC9B,SAAS,EACT,OAAO,CAAC,YAAY,CAAC,EACrB,YAAY,EACZ,GAAG,CACJ,GACA,yBAAyB,CAAC,OAAO,CAAC,YAAY,CAAC,EAAE,YAAY,EAAE,GAAG,CAAC,CAAC;IAEvE;;;;;;;;;;OAUG;IACH,kBAAkB,CAChB,IAAI,EAAE,GAAG,MAAM,WAAW,MAAM,EAAE,EAClC,UAAU,EAAE,oBAAoB,CAC9B,MAAM,GAAG,GAAG,EACZ,cAAc,CAAC,YAAY,CAAC,EAC5B,YAAY,EACZ,IAAI,CACL,GACA,yBAAyB,CAC1B,cAAc,CAAC,YAAY,CAAC,EAC5B,YAAY,EACZ,IAAI,CACL,CAAC;IAEF;;;;;;;;;;OAUG;IACH,qBAAqB,CACnB,IAAI,EAAE,GAAG,MAAM,WAAW,MAAM,EAAE,EAClC,UAAU,EAAE,oBAAoB,CAC9B,MAAM,EACN,cAAc,CAAC,YAAY,CAAC,EAC5B,YAAY,EACZ,IAAI,CACL,GACA,yBAAyB,CAC1B,cAAc,CAAC,YAAY,CAAC,EAC5B,YAAY,EACZ,IAAI,CACL,CAAC;IAEF;;;;;;;;;;OAUG;IACH,yBAAyB,CACvB,IAAI,EAAE,GAAG,MAAM,WAAW,MAAM,EAAE,EAClC,UAAU,EAAE,oBAAoB,CAC9B,OAAO,EACP,cAAc,CAAC,YAAY,CAAC,EAC5B,YAAY,EACZ,IAAI,CACL,GACA,yBAAyB,CAC1B,cAAc,CAAC,YAAY,CAAC,EAC5B,YAAY,EACZ,IAAI,CACL,CAAC;IAEF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OA6BG;IACH,iBAAiB,CACf,SAAS,EAAE,GAAG,MAAM,WAAW,MAAM,EAAE,EACvC,eAAe,CAAC,EAAE,MAAM,GACvB,oBAAoB,CAAC,YAAY,CAAC,CAAC;IAEtC;;;;;;;;;;OAUG;IACH,KAAK,CACH,OAAO,EAAE,OAAO,EAChB,OAAO,EAAE,sBAAsB,CAAC,YAAY,CAAC,GAC5C,OAAO,CAAC,QAAQ,CAAC,CAAC;CACtB;AAED;;;;;;;;;;;;GAYG;AACH,MAAM,WAAW,oBAAoB,CAAC,YAAY;IAChD;;;;;OAKG;IACH,qBAAqB,CACnB,UAAU,EAAE,uBAAuB,CAAC,YAAY,CAAC,GAChD,oBAAoB,CAAC,YAAY,CAAC,CAAC;IAEtC;;;;;;;OAOG;IACH,SAAS,CACP,MAAM,EAAE,iBAAiB,CAAC,YAAY,CAAC,GACtC,oBAAoB,CAAC,YAAY,CAAC,CAAC;IAEtC;;;;;OAKG;IACH,SAAS,CACP,SAAS,EAAE,kBAAkB,CAAC,YAAY,CAAC,GAC1C,oBAAoB,CAAC,YAAY,CAAC,CAAC;CACvC;AAED;;GAEG;AACH,MAAM,WAAW,qBAAqB,CACpC,YAAY,EACZ,OAAO,SAAS,MAAM,EACtB,MAAM,SAAS,MAAM;IAErB;;;;;OAKG;IACH,SAAS,CACP,SAAS,EAAE,wBAAwB,CAAC,YAAY,EAAE,MAAM,CAAC,GACxD,qBAAqB,CAAC,YAAY,EAAE,OAAO,EAAE,MAAM,CAAC,CAAC;CACzD;AAED;;;;;;;GAOG;AACH,MAAM,WAAW,yBAAyB,CACxC,QAAQ,SAAS,OAAO,CAAC,YAAY,CAAC,EACtC,YAAY,EACZ,OAAO;IAEP;;;;OAIG;IACH,UAAU,CACR,OAAO,EAAE,iBAAiB,CAAC,YAAY,EAAE,OAAO,CAAC,GAChD,yBAAyB,CAAC,QAAQ,EAAE,YAAY,EAAE,OAAO,CAAC,CAAC;IAE9D;;;;OAIG;IACH,cAAc,CACZ,MAAM,EAAE,gBAAgB,CAAC,QAAQ,EAAE,YAAY,EAAE,OAAO,CAAC,GACxD,yBAAyB,CAAC,QAAQ,EAAE,YAAY,EAAE,OAAO,CAAC,CAAC;IAE9D;;;;OAIG;IACH,aAAa,CACX,MAAM,EAAE,gBAAgB,CAAC,QAAQ,EAAE,YAAY,EAAE,OAAO,CAAC,GACxD,yBAAyB,CAAC,QAAQ,EAAE,YAAY,EAAE,OAAO,CAAC,CAAC;IAE9D;;;;;OAKG;IACH,SAAS,CACP,SAAS,EAAE,kBAAkB,CAAC,YAAY,CAAC,GAC1C,yBAAyB,CAAC,QAAQ,EAAE,YAAY,EAAE,OAAO,CAAC,CAAC;CAC/D;AAED;;GAEG;AACH,MAAM,WAAW,oBAAoB,CAAC,YAAY;IAChD;;;;;;OAMG;IACH,EAAE,CAAC,SAAS,SAAS,QAAQ,EAE3B,IAAI,EAAE,KAAK,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,SAAS,EACvC,QAAQ,EAAE,aAAa,CAAC,YAAY,EAAE,SAAS,CAAC,GAC/C,oBAAoB,CAAC,YAAY,CAAC,CAAC;IAEtC;;;;;;OAMG;IACH,OAAO,CACL,OAAO,EAAE,iBAAiB,CAAC,YAAY,CAAC,GACvC,oBAAoB,CAAC,YAAY,CAAC,CAAC;IAEtC;;;;;;;;OAQG;IACH,sBAAsB,CACpB,UAAU,EAAE,wBAAwB,CAAC,YAAY,CAAC,GACjD,oBAAoB,CAAC,YAAY,CAAC,CAAC;CACvC;AAED;;;;;GAKG;AACH,MAAM,WAAW,sBAAsB,CAAC,YAAY;IAClD;;OAEG;IACH,WAAW,EAAE,YAAY,CAAC;IAE1B;;;;;OAKG;IACH,UAAU,CAAC,EAAE,CAAC,OAAO,EAAE,OAAO,KAAK,QAAQ,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAC;IAEhE;;;;;OAKG;IACH,eAAe,CAAC,EAAE,CAAC,OAAO,EAAE,OAAO,KAAK,QAAQ,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAC;IAErE;;;;;;OAMG;IACH,cAAc,CAAC,EAAE,CAAC,OAAO,EAAE,OAAO,KAAK,QAAQ,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAC;CACrE"}
|
@@ -5,7 +5,7 @@ import type { DocumentLoader } from "../runtime/docloader.js";
|
|
5
5
|
import type { Recipient } from "../vocab/actor.js";
|
6
6
|
import { Link, Object } from "../vocab/vocab.js";
|
7
7
|
import type { ActorDispatcher, AuthorizePredicate, CollectionCounter, CollectionCursor, CollectionDispatcher, InboxErrorHandler, ObjectAuthorizePredicate, ObjectDispatcher } from "./callback.js";
|
8
|
-
import type { Context, RequestContext } from "./context.js";
|
8
|
+
import type { Context, InboxContext, RequestContext } from "./context.js";
|
9
9
|
import type { InboxListenerSet } from "./inbox.js";
|
10
10
|
import type { KvKey, KvStore } from "./kv.js";
|
11
11
|
import type { MessageQueue } from "./mq.js";
|
@@ -71,6 +71,7 @@ export declare function handleCollection<TItem extends URL | Object | Link | Rec
|
|
71
71
|
export interface InboxHandlerParameters<TContextData> {
|
72
72
|
handle: string | null;
|
73
73
|
context: RequestContext<TContextData>;
|
74
|
+
inboxContextFactory(activity: unknown): InboxContext<TContextData>;
|
74
75
|
kv: KvStore;
|
75
76
|
kvPrefixes: {
|
76
77
|
activityIdempotence: KvKey;
|
@@ -84,7 +85,7 @@ export interface InboxHandlerParameters<TContextData> {
|
|
84
85
|
signatureTimeWindow: dntShim.Temporal.DurationLike | false;
|
85
86
|
skipSignatureVerification: boolean;
|
86
87
|
}
|
87
|
-
export declare function handleInbox<TContextData>(request: Request, { handle, context, kv, kvPrefixes, queue, actorDispatcher, inboxListeners, inboxErrorHandler, onNotFound, signatureTimeWindow, skipSignatureVerification, }: InboxHandlerParameters<TContextData>): Promise<Response>;
|
88
|
+
export declare function handleInbox<TContextData>(request: Request, { handle, context, inboxContextFactory, kv, kvPrefixes, queue, actorDispatcher, inboxListeners, inboxErrorHandler, onNotFound, signatureTimeWindow, skipSignatureVerification, }: InboxHandlerParameters<TContextData>): Promise<Response>;
|
88
89
|
/**
|
89
90
|
* Options for the {@link respondWithObject} and
|
90
91
|
* {@link respondWithObjectIfAcceptable} functions.
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"handler.d.ts","sourceRoot":"","sources":["../../src/federation/handler.ts"],"names":[],"mappings":";;AAAA,OAAO,KAAK,OAAO,MAAM,kBAAkB,CAAC;AAG5C,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AAM9D,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AACnD,OAAO,EAGL,IAAI,EAEJ,MAAM,EAGP,MAAM,mBAAmB,CAAC;AAC3B,OAAO,KAAK,EACV,eAAe,EACf,kBAAkB,EAClB,iBAAiB,EACjB,gBAAgB,EAChB,oBAAoB,EACpB,iBAAiB,EACjB,wBAAwB,EACxB,gBAAgB,EACjB,MAAM,eAAe,CAAC;AACvB,OAAO,KAAK,EAAE,OAAO,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;
|
1
|
+
{"version":3,"file":"handler.d.ts","sourceRoot":"","sources":["../../src/federation/handler.ts"],"names":[],"mappings":"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"}
|