@fedify/fedify 2.0.0-pr.435.1673 → 2.0.0-pr.449.1725
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/dist/{actor-m_ko-86v.js → actor-C0gLJq8I.js} +7263 -2440
- package/dist/{actor-CNUje03O.cjs → actor-CsRJa7wV.cjs} +7263 -2440
- package/dist/{actor-DMgu-ZjT.d.cts → actor-D6K058Tb.d.cts} +1 -1
- package/dist/{actor-C22bXuuC.d.ts → actor-T6RyhRgk.d.ts} +1 -1
- package/dist/{actor-BxAu0qet.js → actor-VrXd7EdX.js} +1 -1
- package/dist/{authdocloader-nRFL9luh.js → authdocloader-6F9IP-VO.js} +3 -3
- package/dist/{authdocloader-D_3mtAjX.cjs → authdocloader-BkuVo8LL.cjs} +3 -3
- package/dist/{authdocloader-Chl2nuOI.js → authdocloader-C8LXxsmU.js} +3 -3
- package/dist/{builder-C8Of4dPy.js → builder-JjsppXTK.js} +14 -8
- package/dist/{client-yGBH5stP.js → client-BS-GE3XI.js} +1 -1
- package/dist/compat/mod.d.cts +7 -7
- package/dist/compat/mod.d.ts +7 -7
- package/dist/compat/transformers.test.js +16 -16
- package/dist/{context-CQsAT7xk.d.ts → context-B1X8-X33.d.ts} +186 -98
- package/dist/{context-tVOQ76fi.d.cts → context-DYCJXr7J.d.cts} +186 -98
- package/dist/{docloader-_WdHTWQR.js → docloader-AMdJU291.js} +1 -1
- package/dist/{docloader-SZjTrl6Z.cjs → docloader-BdF5STdg.cjs} +1 -1
- package/dist/{esm-e_G_xo95.js → esm-CvUgdJZ_.js} +1 -1
- package/dist/federation/builder.test.js +5 -5
- package/dist/federation/collection.test.js +3 -3
- package/dist/federation/handler.test.js +17 -17
- package/dist/federation/idempotency.test.d.ts +3 -0
- package/dist/federation/idempotency.test.js +202 -0
- package/dist/federation/inbox.test.js +4 -4
- package/dist/federation/keycache.test.js +4 -4
- package/dist/federation/kv.test.js +3 -3
- package/dist/federation/middleware.test.js +24 -47
- package/dist/federation/mod.cjs +10 -10
- package/dist/federation/mod.d.cts +7 -7
- package/dist/federation/mod.d.ts +7 -7
- package/dist/federation/mod.js +10 -10
- package/dist/federation/mq.test.js +3 -3
- package/dist/federation/negotiation.test.js +3 -3
- package/dist/federation/retry.test.js +3 -3
- package/dist/federation/router.test.js +3 -3
- package/dist/federation/send.test.js +10 -10
- package/dist/fixtures/media.example.com/avatars/test-avatar.jpg.json +6 -0
- package/dist/{http-BS6766zs.d.cts → http-D-e6AFwR.d.cts} +1 -1
- package/dist/{http-DqSNLFNY.d.ts → http-D6Uj2x2y.d.ts} +1 -1
- package/dist/{http-BpoEurUR.js → http-DVQEn98K.js} +3 -3
- package/dist/{http-DREvFalF.cjs → http-D_BI5KHC.cjs} +3 -3
- package/dist/{http-BEo67UOx.js → http-DbyMqL2X.js} +2 -2
- package/dist/{inbox-D-B5xFtJ.js → inbox-DQlf_-Dz.js} +24 -7
- package/dist/{key-DJpcumqB.js → key-BBzfhQGE.js} +4 -4
- package/dist/key-BMz_uAnc.cjs +10 -0
- package/dist/{key-Cps8Sv3N.js → key-BSJX6n9o.js} +2 -2
- package/dist/{key-JqiQvcq1.cjs → key-D-RgWfcf.cjs} +2 -2
- package/dist/{key-Cf8KTg-A.js → key-DFefr8X2.js} +2 -2
- package/dist/{key-DqrTz8Xq.js → key-DW2DrPGl.js} +3 -3
- package/dist/{keycache-D_Q1fPV0.js → keycache-CcIfdj0m.js} +1 -1
- package/dist/{keys-F0jh2GNR.js → keys-DnSaJmvD.js} +1 -1
- package/dist/{ld-CXygHn_m.js → ld-CAJ6Q2od.js} +2 -2
- package/dist/{lookup-C-Y0Ep1a.cjs → lookup-B2Bsau2g.cjs} +1 -1
- package/dist/{lookup-C6WSLjPE.js → lookup-BGCuyJRy.js} +1 -1
- package/dist/{lookup-DuqY2_In.js → lookup-C3pnuyiD.js} +21 -12
- package/dist/{middleware-2qNNXYEE.js → middleware-1oxZY_0z.js} +78 -56
- package/dist/middleware-B8WWe8Q2.js +26 -0
- package/dist/{middleware-CMiUxZ6O.js → middleware-BDqkoMAQ.js} +48 -49
- package/dist/{middleware-BsFAFlnZ.cjs → middleware-D0XMPoN8.cjs} +78 -56
- package/dist/middleware-DipQbJmB.js +17 -0
- package/dist/middleware-mLaQeD_Z.cjs +17 -0
- package/dist/{mod-Drmz72EK.d.ts → mod-BhUKmBJD.d.ts} +2 -2
- package/dist/{mod-TFoH2Ql8.d.ts → mod-CerN_Sza.d.ts} +1 -1
- package/dist/{mod-Dc_-mf8s.d.cts → mod-Cj1tHXBR.d.cts} +1 -1
- package/dist/{mod-evzlRVZq.d.cts → mod-CxkWO3Mg.d.cts} +19 -1
- package/dist/{mod-B26zRlH1.d.ts → mod-DcKxhFQ8.d.ts} +2 -2
- package/dist/{mod-BClfg3ej.d.cts → mod-Djzcw2ry.d.cts} +2 -2
- package/dist/{mod-Cxt4Kpf6.d.ts → mod-DlU8ISoa.d.ts} +19 -1
- package/dist/{mod-DBQAI4v9.d.cts → mod-twdvV2hR.d.cts} +2 -2
- package/dist/mod.cjs +10 -10
- package/dist/mod.d.cts +10 -10
- package/dist/mod.d.ts +10 -10
- package/dist/mod.js +10 -10
- package/dist/nodeinfo/client.test.js +5 -5
- package/dist/nodeinfo/handler.test.js +16 -16
- package/dist/nodeinfo/mod.cjs +2 -2
- package/dist/nodeinfo/mod.js +2 -2
- package/dist/nodeinfo/types.test.js +3 -3
- package/dist/{owner-B-7Ptt_m.d.cts → owner-BN_tO3cY.d.cts} +2 -2
- package/dist/{owner-D2fTlp_x.js → owner-CaIfLBwg.js} +2 -2
- package/dist/{owner-CQPnQVtf.d.ts → owner-hd9lvQcP.d.ts} +2 -2
- package/dist/{proof-C4Y4gJcm.cjs → proof-AhyVJcNZ.cjs} +3 -3
- package/dist/{proof-kEUjWRNJ.js → proof-BQwXHakc.js} +2 -2
- package/dist/{proof-CHM9su4L.js → proof-CKXppjee.js} +3 -3
- package/dist/runtime/authdocloader.test.js +9 -9
- package/dist/runtime/docloader.test.js +4 -4
- package/dist/runtime/key.test.js +5 -5
- package/dist/runtime/langstr.test.js +3 -3
- package/dist/runtime/link.test.js +3 -3
- package/dist/runtime/mod.cjs +6 -6
- package/dist/runtime/mod.d.cts +3 -3
- package/dist/runtime/mod.d.ts +3 -3
- package/dist/runtime/mod.js +6 -6
- package/dist/runtime/multibase/multibase.test.js +3 -3
- package/dist/runtime/url.test.js +3 -3
- package/dist/{send-Utq2Jm0I.js → send-DQd3R1Oc.js} +2 -2
- package/dist/sig/http.test.js +8 -8
- package/dist/sig/key.test.js +6 -6
- package/dist/sig/ld.test.js +7 -7
- package/dist/sig/mod.cjs +6 -6
- package/dist/sig/mod.d.cts +5 -5
- package/dist/sig/mod.d.ts +5 -5
- package/dist/sig/mod.js +6 -6
- package/dist/sig/owner.test.js +7 -7
- package/dist/sig/proof.test.js +7 -7
- package/dist/testing/docloader.test.js +3 -3
- package/dist/testing/mod.d.ts +391 -86
- package/dist/testing/mod.js +3 -3
- package/dist/{testing-DUpTIvNE.js → testing-BljKU-GG.js} +2 -2
- package/dist/{type-BYN6Ax2M.js → type-COb6KNlm.js} +6943 -2120
- package/dist/{types-BXkh8ctL.js → types-CEn4wB51.js} +1 -1
- package/dist/{types-BBpQe860.cjs → types-DI0yutHB.cjs} +1 -1
- package/dist/vocab/actor.test.js +5 -5
- package/dist/vocab/lookup.test.js +255 -5
- package/dist/vocab/mod.cjs +4 -4
- package/dist/vocab/mod.d.cts +3 -3
- package/dist/vocab/mod.d.ts +3 -3
- package/dist/vocab/mod.js +4 -4
- package/dist/vocab/type.test.js +3 -3
- package/dist/vocab/vocab.test.js +397 -8
- package/dist/{vocab-SOE1ifCr.d.ts → vocab-BI0Ak5lL.d.ts} +290 -0
- package/dist/{vocab-PKJB4DyY.js → vocab-CkWH9P5l.js} +23 -14
- package/dist/{vocab-DJTYMqyU.d.cts → vocab-Dw1-yVGg.d.cts} +290 -0
- package/dist/{vocab-DWZQ7gVQ.cjs → vocab-NZXL5Pr-.cjs} +23 -14
- package/dist/webfinger/handler.test.js +16 -16
- package/dist/webfinger/lookup.test.js +4 -4
- package/dist/webfinger/mod.cjs +2 -2
- package/dist/webfinger/mod.js +2 -2
- package/dist/x/cfworkers.test.js +3 -3
- package/dist/x/hono.d.cts +6 -6
- package/dist/x/hono.d.ts +6 -6
- package/dist/x/sveltekit.d.cts +6 -6
- package/dist/x/sveltekit.d.ts +6 -6
- package/package.json +1 -1
- package/dist/key-BvvbahfP.cjs +0 -10
- package/dist/middleware-BD1IE5O5.js +0 -26
- package/dist/middleware-BuZrvrDv.js +0 -17
- package/dist/middleware-h_3nRr8m.cjs +0 -17
@@ -3,11 +3,11 @@ import { URLPattern } from "urlpattern-polyfill";
|
|
3
3
|
import { KvKey, KvStore } from "./kv-C7sopW2E.js";
|
4
4
|
import { AuthenticatedDocumentLoaderFactory, DocumentLoader, DocumentLoaderFactory, GetUserAgentOptions } from "./docloader-CxWcuWqQ.js";
|
5
5
|
import { GetNodeInfoOptions, JsonValue, NodeInfo } from "./client-bgSdkFa2.js";
|
6
|
-
import { Activity, Collection, CryptographicKey, Hashtag, Link, Multikey, Object as Object$1 } from "./vocab-
|
7
|
-
import { Actor, Recipient } from "./actor-
|
8
|
-
import { HttpMessageSignaturesSpec } from "./http-
|
9
|
-
import { GetKeyOwnerOptions } from "./owner-
|
10
|
-
import { LookupObjectOptions, TraverseCollectionOptions } from "./mod-
|
6
|
+
import { Activity, Collection, CryptographicKey, Hashtag, Link, Multikey, Object as Object$1 } from "./vocab-BI0Ak5lL.js";
|
7
|
+
import { Actor, Recipient } from "./actor-T6RyhRgk.js";
|
8
|
+
import { HttpMessageSignaturesSpec } from "./http-D6Uj2x2y.js";
|
9
|
+
import { GetKeyOwnerOptions } from "./owner-hd9lvQcP.js";
|
10
|
+
import { LookupObjectOptions, TraverseCollectionOptions } from "./mod-DlU8ISoa.js";
|
11
11
|
import { Link as Link$1, LookupWebFingerOptions, ResourceDescriptor } from "./mod-DBzN0aCM.js";
|
12
12
|
import { MessageQueue } from "./mq-CRGm1e_F.js";
|
13
13
|
import { Span, TracerProvider } from "@opentelemetry/api";
|
@@ -283,7 +283,7 @@ type ObjectAuthorizePredicate<TContextData, TParam extends string> = (context: R
|
|
283
283
|
* the entire collection without pagination.
|
284
284
|
* @since 1.8.0
|
285
285
|
*/
|
286
|
-
type CustomCollectionDispatcher<TItem,
|
286
|
+
type CustomCollectionDispatcher<TItem, TParam extends string, TContext extends Context<TContextData>, TContextData> = (context: TContext, values: Record<TParam, string>, cursor: string | null) => PageItems<TItem> | null | Promise<PageItems<TItem> | null>;
|
287
287
|
/**
|
288
288
|
* A callback that counts the number of items in a custom collection.
|
289
289
|
*
|
@@ -293,7 +293,7 @@ type CustomCollectionDispatcher<TItem, TParams extends Record<string, string>, T
|
|
293
293
|
* @param values The parameters of the requested URL.
|
294
294
|
* @since 1.8.0
|
295
295
|
*/
|
296
|
-
type CustomCollectionCounter<
|
296
|
+
type CustomCollectionCounter<TParam extends string, TContextData> = (context: RequestContext<TContextData>, values: Record<TParam, string>) => number | bigint | null | Promise<number | bigint | null>;
|
297
297
|
/**
|
298
298
|
* A callback that returns a cursor for a custom collection.
|
299
299
|
*
|
@@ -306,9 +306,10 @@ type CustomCollectionCounter<TParams extends Record<string, string>, TContextDat
|
|
306
306
|
* @param values The parameters of the requested URL.
|
307
307
|
* @since 1.8.0
|
308
308
|
*/
|
309
|
-
type CustomCollectionCursor<
|
309
|
+
type CustomCollectionCursor<TParam extends string, TContext extends Context<TContextData>, TContextData> = (context: TContext, values: Record<TParam, string>) => string | null | Promise<string | null>;
|
310
310
|
//#endregion
|
311
311
|
//#region src/federation/handler.d.ts
|
312
|
+
|
312
313
|
/**
|
313
314
|
* Options for the {@link respondWithObject} and
|
314
315
|
* {@link respondWithObjectIfAcceptable} functions.
|
@@ -703,7 +704,7 @@ interface Federatable<TContextData> {
|
|
703
704
|
* @returns An object with methods to set other actor dispatcher callbacks.
|
704
705
|
* @throws {RouterError} Thrown if the path pattern is invalid.
|
705
706
|
*/
|
706
|
-
setActorDispatcher(path: `${string}{identifier}${string}` | `${string}{handle}${string}`, dispatcher: ActorDispatcher<TContextData>): ActorCallbackSetters<TContextData>;
|
707
|
+
setActorDispatcher(path: `${string}${Rfc6570Expression<"identifier">}${string}` | `${string}${Rfc6570Expression<"handle">}${string}`, dispatcher: ActorDispatcher<TContextData>): ActorCallbackSetters<TContextData>;
|
707
708
|
/**
|
708
709
|
* Registers an object dispatcher.
|
709
710
|
*
|
@@ -767,7 +768,7 @@ interface Federatable<TContextData> {
|
|
767
768
|
*/
|
768
769
|
setObjectDispatcher<TObject extends Object$1, TParam extends string>(cls: (new (...args: any[]) => TObject) & {
|
769
770
|
typeId: URL;
|
770
|
-
}, path: `${string}
|
771
|
+
}, path: `${string}${Rfc6570Expression<TParam>}${string}${Rfc6570Expression<TParam>}${string}${Rfc6570Expression<TParam>}${string}`, dispatcher: ObjectDispatcher<TContextData, TObject, TParam>): ObjectCallbackSetters<TContextData, TObject, TParam>;
|
771
772
|
/**
|
772
773
|
* Registers an object dispatcher.
|
773
774
|
*
|
@@ -783,7 +784,7 @@ interface Federatable<TContextData> {
|
|
783
784
|
*/
|
784
785
|
setObjectDispatcher<TObject extends Object$1, TParam extends string>(cls: (new (...args: any[]) => TObject) & {
|
785
786
|
typeId: URL;
|
786
|
-
}, path: `${string}
|
787
|
+
}, path: `${string}${Rfc6570Expression<TParam>}${string}${Rfc6570Expression<TParam>}${string}`, dispatcher: ObjectDispatcher<TContextData, TObject, TParam>): ObjectCallbackSetters<TContextData, TObject, TParam>;
|
787
788
|
/**
|
788
789
|
* Registers an object dispatcher.
|
789
790
|
*
|
@@ -799,7 +800,7 @@ interface Federatable<TContextData> {
|
|
799
800
|
*/
|
800
801
|
setObjectDispatcher<TObject extends Object$1, TParam extends string>(cls: (new (...args: any[]) => TObject) & {
|
801
802
|
typeId: URL;
|
802
|
-
}, path: `${string}
|
803
|
+
}, path: `${string}${Rfc6570Expression<TParam>}${string}`, dispatcher: ObjectDispatcher<TContextData, TObject, TParam>): ObjectCallbackSetters<TContextData, TObject, TParam>;
|
803
804
|
/**
|
804
805
|
* Registers an inbox dispatcher.
|
805
806
|
*
|
@@ -811,7 +812,7 @@ interface Federatable<TContextData> {
|
|
811
812
|
* @param dispatcher An inbox dispatcher callback to register.
|
812
813
|
* @throws {@link RouterError} Thrown if the path pattern is invalid.
|
813
814
|
*/
|
814
|
-
setInboxDispatcher(path: `${string}{identifier}${string}` | `${string}{handle}${string}`, dispatcher: CollectionDispatcher<Activity, RequestContext<TContextData>, TContextData, void>): CollectionCallbackSetters<RequestContext<TContextData>, TContextData, void>;
|
815
|
+
setInboxDispatcher(path: `${string}${Rfc6570Expression<"identifier">}${string}` | `${string}${Rfc6570Expression<"handle">}${string}`, dispatcher: CollectionDispatcher<Activity, RequestContext<TContextData>, TContextData, void>): CollectionCallbackSetters<RequestContext<TContextData>, TContextData, void>;
|
815
816
|
/**
|
816
817
|
* Registers an outbox dispatcher.
|
817
818
|
*
|
@@ -835,7 +836,7 @@ interface Federatable<TContextData> {
|
|
835
836
|
* @param dispatcher An outbox dispatcher callback to register.
|
836
837
|
* @throws {@link RouterError} Thrown if the path pattern is invalid.
|
837
838
|
*/
|
838
|
-
setOutboxDispatcher(path: `${string}{identifier}${string}` | `${string}{handle}${string}`, dispatcher: CollectionDispatcher<Activity, RequestContext<TContextData>, TContextData, void>): CollectionCallbackSetters<RequestContext<TContextData>, TContextData, void>;
|
839
|
+
setOutboxDispatcher(path: `${string}${Rfc6570Expression<"identifier">}${string}` | `${string}${Rfc6570Expression<"handle">}${string}`, dispatcher: CollectionDispatcher<Activity, RequestContext<TContextData>, TContextData, void>): CollectionCallbackSetters<RequestContext<TContextData>, TContextData, void>;
|
839
840
|
/**
|
840
841
|
* Registers a following collection dispatcher.
|
841
842
|
* @param path The URI path pattern for the following collection. The syntax
|
@@ -847,7 +848,7 @@ interface Federatable<TContextData> {
|
|
847
848
|
* callbacks.
|
848
849
|
* @throws {RouterError} Thrown if the path pattern is invalid.
|
849
850
|
*/
|
850
|
-
setFollowingDispatcher(path: `${string}{identifier}${string}` | `${string}{handle}${string}`, dispatcher: CollectionDispatcher<Actor | URL, RequestContext<TContextData>, TContextData, void>): CollectionCallbackSetters<RequestContext<TContextData>, TContextData, void>;
|
851
|
+
setFollowingDispatcher(path: `${string}${Rfc6570Expression<"identifier">}${string}` | `${string}${Rfc6570Expression<"handle">}${string}`, dispatcher: CollectionDispatcher<Actor | URL, RequestContext<TContextData>, TContextData, void>): CollectionCallbackSetters<RequestContext<TContextData>, TContextData, void>;
|
851
852
|
/**
|
852
853
|
* Registers a followers collection dispatcher.
|
853
854
|
* @param path The URI path pattern for the followers collection. The syntax
|
@@ -859,7 +860,7 @@ interface Federatable<TContextData> {
|
|
859
860
|
* callbacks.
|
860
861
|
* @throws {@link RouterError} Thrown if the path pattern is invalid.
|
861
862
|
*/
|
862
|
-
setFollowersDispatcher(path: `${string}{identifier}${string}` | `${string}{handle}${string}`, dispatcher: CollectionDispatcher<Recipient, Context<TContextData>, TContextData, URL>): CollectionCallbackSetters<Context<TContextData>, TContextData, URL>;
|
863
|
+
setFollowersDispatcher(path: `${string}${Rfc6570Expression<"identifier">}${string}` | `${string}${Rfc6570Expression<"handle">}${string}`, dispatcher: CollectionDispatcher<Recipient, Context<TContextData>, TContextData, URL>): CollectionCallbackSetters<Context<TContextData>, TContextData, URL>;
|
863
864
|
/**
|
864
865
|
* Registers a liked collection dispatcher.
|
865
866
|
* @param path The URI path pattern for the liked collection. The syntax
|
@@ -871,7 +872,7 @@ interface Federatable<TContextData> {
|
|
871
872
|
* callbacks.
|
872
873
|
* @throws {@link RouterError} Thrown if the path pattern is invalid.
|
873
874
|
*/
|
874
|
-
setLikedDispatcher(path: `${string}{identifier}${string}` | `${string}{handle}${string}`, dispatcher: CollectionDispatcher<Object$1 | URL, RequestContext<TContextData>, TContextData, void>): CollectionCallbackSetters<RequestContext<TContextData>, TContextData, void>;
|
875
|
+
setLikedDispatcher(path: `${string}${Rfc6570Expression<"identifier">}${string}` | `${string}${Rfc6570Expression<"handle">}${string}`, dispatcher: CollectionDispatcher<Object$1 | URL, RequestContext<TContextData>, TContextData, void>): CollectionCallbackSetters<RequestContext<TContextData>, TContextData, void>;
|
875
876
|
/**
|
876
877
|
* Registers a featured collection dispatcher.
|
877
878
|
* @param path The URI path pattern for the featured collection. The syntax
|
@@ -883,7 +884,7 @@ interface Federatable<TContextData> {
|
|
883
884
|
* callbacks.
|
884
885
|
* @throws {@link RouterError} Thrown if the path pattern is invalid.
|
885
886
|
*/
|
886
|
-
setFeaturedDispatcher(path: `${string}{identifier}${string}` | `${string}{handle}${string}`, dispatcher: CollectionDispatcher<Object$1, RequestContext<TContextData>, TContextData, void>): CollectionCallbackSetters<RequestContext<TContextData>, TContextData, void>;
|
887
|
+
setFeaturedDispatcher(path: `${string}${Rfc6570Expression<"identifier">}${string}` | `${string}${Rfc6570Expression<"handle">}${string}`, dispatcher: CollectionDispatcher<Object$1, RequestContext<TContextData>, TContextData, void>): CollectionCallbackSetters<RequestContext<TContextData>, TContextData, void>;
|
887
888
|
/**
|
888
889
|
* Registers a featured tags collection dispatcher.
|
889
890
|
* @param path The URI path pattern for the featured tags collection.
|
@@ -895,7 +896,7 @@ interface Federatable<TContextData> {
|
|
895
896
|
* callbacks.
|
896
897
|
* @throws {@link RouterError} Thrown if the path pattern is invalid.
|
897
898
|
*/
|
898
|
-
setFeaturedTagsDispatcher(path: `${string}{identifier}${string}` | `${string}{handle}${string}`, dispatcher: CollectionDispatcher<Hashtag, RequestContext<TContextData>, TContextData, void>): CollectionCallbackSetters<RequestContext<TContextData>, TContextData, void>;
|
899
|
+
setFeaturedTagsDispatcher(path: `${string}${Rfc6570Expression<"identifier">}${string}` | `${string}${Rfc6570Expression<"handle">}${string}`, dispatcher: CollectionDispatcher<Hashtag, RequestContext<TContextData>, TContextData, void>): CollectionCallbackSetters<RequestContext<TContextData>, TContextData, void>;
|
899
900
|
/**
|
900
901
|
* Assigns the URL path for the inbox and starts setting inbox listeners.
|
901
902
|
*
|
@@ -925,7 +926,41 @@ interface Federatable<TContextData> {
|
|
925
926
|
* @returns An object to register inbox listeners.
|
926
927
|
* @throws {RouteError} Thrown if the path pattern is invalid.
|
927
928
|
*/
|
928
|
-
setInboxListeners(inboxPath: `${string}{identifier}${string}` | `${string}{handle}${string}`, sharedInboxPath?: string): InboxListenerSetters<TContextData>;
|
929
|
+
setInboxListeners(inboxPath: `${string}${Rfc6570Expression<"identifier">}${string}` | `${string}${Rfc6570Expression<"handle">}${string}`, sharedInboxPath?: string): InboxListenerSetters<TContextData>;
|
930
|
+
/**
|
931
|
+
* Registers a collection of objects dispatcher.
|
932
|
+
*
|
933
|
+
* @template TContextData The context data to pass to the {@link Context}.
|
934
|
+
* @template TObject The type of objects to dispatch.
|
935
|
+
* @template TParam The parameter names of the requested URL.
|
936
|
+
* @param name A unique name for the collection dispatcher.
|
937
|
+
* @param itemType The Activity Vocabulary class of the object to dispatch.
|
938
|
+
* @param path The URI path pattern for the collection dispatcher.
|
939
|
+
* The syntax is based on URI Template
|
940
|
+
* ([RFC 6570](https://tools.ietf.org/html/rfc6570)).
|
941
|
+
* The path must have one or more variables.
|
942
|
+
* @param dispatcher A collection dispatcher callback to register.
|
943
|
+
*/
|
944
|
+
setCollectionDispatcher<TObject extends Object$1, TParam extends string>(name: string | symbol, itemType: (new (...args: any[]) => TObject) & {
|
945
|
+
typeId: URL;
|
946
|
+
}, path: `${string}${Rfc6570Expression<TParam>}${string}${Rfc6570Expression<TParam>}${string}${Rfc6570Expression<TParam>}${string}`, dispatcher: CustomCollectionDispatcher<TObject, TParam, RequestContext<TContextData>, TContextData>): CustomCollectionCallbackSetters<TParam, RequestContext<TContextData>, TContextData>;
|
947
|
+
/**
|
948
|
+
* Registers a collection of objects dispatcher.
|
949
|
+
*
|
950
|
+
* @template TContextData The context data to pass to the {@link Context}.
|
951
|
+
* @template TObject The type of objects to dispatch.
|
952
|
+
* @template TParam The parameter names of the requested URL.
|
953
|
+
* @param name A unique name for the collection dispatcher.
|
954
|
+
* @param itemType The Activity Vocabulary class of the object to dispatch.
|
955
|
+
* @param path The URI path pattern for the collection dispatcher.
|
956
|
+
* The syntax is based on URI Template
|
957
|
+
* ([RFC 6570](https://tools.ietf.org/html/rfc6570)).
|
958
|
+
* The path must have one or more variables.
|
959
|
+
* @param dispatcher A collection dispatcher callback to register.
|
960
|
+
*/
|
961
|
+
setCollectionDispatcher<TObject extends Object$1, TParam extends string>(name: string | symbol, itemType: (new (...args: any[]) => TObject) & {
|
962
|
+
typeId: URL;
|
963
|
+
}, path: `${string}${Rfc6570Expression<TParam>}${string}${Rfc6570Expression<TParam>}${string}`, dispatcher: CustomCollectionDispatcher<TObject, TParam, RequestContext<TContextData>, TContextData>): CustomCollectionCallbackSetters<TParam, RequestContext<TContextData>, TContextData>;
|
929
964
|
/**
|
930
965
|
* Registers a collection of objects dispatcher.
|
931
966
|
*
|
@@ -940,7 +975,26 @@ interface Federatable<TContextData> {
|
|
940
975
|
* The path must have one or more variables.
|
941
976
|
* @param dispatcher A collection dispatcher callback to register.
|
942
977
|
*/
|
943
|
-
setCollectionDispatcher<TObject extends Object$1,
|
978
|
+
setCollectionDispatcher<TObject extends Object$1, TParam extends string>(name: string | symbol, itemType: (new (...args: any[]) => TObject) & {
|
979
|
+
typeId: URL;
|
980
|
+
}, path: `${string}${Rfc6570Expression<TParam>}${string}`, dispatcher: CustomCollectionDispatcher<TObject, TParam, RequestContext<TContextData>, TContextData>): CustomCollectionCallbackSetters<TParam, RequestContext<TContextData>, TContextData>;
|
981
|
+
/**
|
982
|
+
* Registers an ordered collection of objects dispatcher.
|
983
|
+
*
|
984
|
+
* @template TContextData The context data to pass to the {@link Context}.
|
985
|
+
* @template TObject The type of objects to dispatch.
|
986
|
+
* @template TParam The parameter names of the requested URL.
|
987
|
+
* @param name A unique name for the collection dispatcher.
|
988
|
+
* @param itemType The Activity Vocabulary class of the object to dispatch.
|
989
|
+
* @param path The URI path pattern for the collection dispatcher.
|
990
|
+
* The syntax is based on URI Template
|
991
|
+
* ([RFC 6570](https://tools.ietf.org/html/rfc6570)).
|
992
|
+
* The path must have one or more variables.
|
993
|
+
* @param dispatcher A collection dispatcher callback to register.
|
994
|
+
*/
|
995
|
+
setOrderedCollectionDispatcher<TObject extends Object$1, TParam extends string>(name: string | symbol, itemType: (new (...args: any[]) => TObject) & {
|
996
|
+
typeId: URL;
|
997
|
+
}, path: `${string}${Rfc6570Expression<TParam>}${string}${Rfc6570Expression<TParam>}${string}${Rfc6570Expression<TParam>}${string}`, dispatcher: CustomCollectionDispatcher<TObject, TParam, RequestContext<TContextData>, TContextData>): CustomCollectionCallbackSetters<TParam, RequestContext<TContextData>, TContextData>;
|
944
998
|
/**
|
945
999
|
* Registers an ordered collection of objects dispatcher.
|
946
1000
|
*
|
@@ -955,7 +1009,26 @@ interface Federatable<TContextData> {
|
|
955
1009
|
* The path must have one or more variables.
|
956
1010
|
* @param dispatcher A collection dispatcher callback to register.
|
957
1011
|
*/
|
958
|
-
setOrderedCollectionDispatcher<TObject extends Object$1,
|
1012
|
+
setOrderedCollectionDispatcher<TObject extends Object$1, TParam extends string>(name: string | symbol, itemType: (new (...args: any[]) => TObject) & {
|
1013
|
+
typeId: URL;
|
1014
|
+
}, path: `${string}${Rfc6570Expression<TParam>}${string}${Rfc6570Expression<TParam>}${string}`, dispatcher: CustomCollectionDispatcher<TObject, TParam, RequestContext<TContextData>, TContextData>): CustomCollectionCallbackSetters<TParam, RequestContext<TContextData>, TContextData>;
|
1015
|
+
/**
|
1016
|
+
* Registers an ordered collection of objects dispatcher.
|
1017
|
+
*
|
1018
|
+
* @template TContextData The context data to pass to the {@link Context}.
|
1019
|
+
* @template TObject The type of objects to dispatch.
|
1020
|
+
* @template TParam The parameter names of the requested URL.
|
1021
|
+
* @param name A unique name for the collection dispatcher.
|
1022
|
+
* @param itemType The Activity Vocabulary class of the object to dispatch.
|
1023
|
+
* @param path The URI path pattern for the collection dispatcher.
|
1024
|
+
* The syntax is based on URI Template
|
1025
|
+
* ([RFC 6570](https://tools.ietf.org/html/rfc6570)).
|
1026
|
+
* The path must have one or more variables.
|
1027
|
+
* @param dispatcher A collection dispatcher callback to register.
|
1028
|
+
*/
|
1029
|
+
setOrderedCollectionDispatcher<TObject extends Object$1, TParam extends string>(name: string | symbol, itemType: (new (...args: any[]) => TObject) & {
|
1030
|
+
typeId: URL;
|
1031
|
+
}, path: `${string}${Rfc6570Expression<TParam>}${string}`, dispatcher: CustomCollectionDispatcher<TObject, TParam, RequestContext<TContextData>, TContextData>): CustomCollectionCallbackSetters<TParam, RequestContext<TContextData>, TContextData>;
|
959
1032
|
}
|
960
1033
|
/**
|
961
1034
|
* An object that registers federation-related business logic and dispatches
|
@@ -1091,12 +1164,6 @@ interface FederationOptions<TContextData> {
|
|
1091
1164
|
* @since 1.4.0
|
1092
1165
|
*/
|
1093
1166
|
contextLoaderFactory?: DocumentLoaderFactory;
|
1094
|
-
/**
|
1095
|
-
* A custom JSON-LD context loader. By default, this uses the same loader
|
1096
|
-
* as the document loader.
|
1097
|
-
* @deprecated Use {@link contextLoaderFactory} instead.
|
1098
|
-
*/
|
1099
|
-
contextLoader?: DocumentLoader;
|
1100
1167
|
/**
|
1101
1168
|
* A factory function that creates an authenticated document loader for a
|
1102
1169
|
* given identity. This is used for fetching documents that require
|
@@ -1305,6 +1372,36 @@ interface CollectionCallbackSetters<TContext extends Context<TContextData>, TCon
|
|
1305
1372
|
*/
|
1306
1373
|
authorize(predicate: AuthorizePredicate<TContextData>): CollectionCallbackSetters<TContext, TContextData, TFilter>;
|
1307
1374
|
}
|
1375
|
+
/**
|
1376
|
+
* The strategy for handling activity idempotency in inbox processing.
|
1377
|
+
*
|
1378
|
+
* - `"global"`: Activities are deduplicated globally across all inboxes and
|
1379
|
+
* origins. The same activity ID will be processed only once, regardless
|
1380
|
+
* of which inbox receives it or which server sent it.
|
1381
|
+
*
|
1382
|
+
* - `"per-origin"`: Activities are deduplicated per receiving server's origin.
|
1383
|
+
* The same activity ID will be processed only once on each receiving server,
|
1384
|
+
* but can be processed separately on different receiving servers. This had
|
1385
|
+
* been the default behavior in Fedify 1.x versions.
|
1386
|
+
*
|
1387
|
+
* - `"per-inbox"`: Activities are deduplicated per inbox. The same activity
|
1388
|
+
* ID can be processed once per inbox, allowing the same activity to be
|
1389
|
+
* delivered to multiple inboxes independently. This follows standard
|
1390
|
+
* ActivityPub behavior and is the default strategy since Fedify 2.0.0.
|
1391
|
+
*
|
1392
|
+
* @since 1.9.0
|
1393
|
+
*/
|
1394
|
+
type IdempotencyStrategy = "global" | "per-origin" | "per-inbox";
|
1395
|
+
/**
|
1396
|
+
* A callback to generate a custom idempotency key for an activity.
|
1397
|
+
* Returns the cache key to use, or null to skip idempotency checking.
|
1398
|
+
* @template TContextData The context data to pass to the {@link InboxContext}.
|
1399
|
+
* @param ctx The inbox context.
|
1400
|
+
* @param activity The activity being processed.
|
1401
|
+
* @returns The idempotency key to use for caching, or null to skip caching.
|
1402
|
+
* @since 1.9.0
|
1403
|
+
*/
|
1404
|
+
type IdempotencyKeyCallback<TContextData> = (ctx: InboxContext<TContextData>, activity: Activity) => string | null | Promise<string | null>;
|
1308
1405
|
/**
|
1309
1406
|
* Registry for inbox listeners for different activity types.
|
1310
1407
|
*/
|
@@ -1335,6 +1432,36 @@ interface InboxListenerSetters<TContextData> {
|
|
1335
1432
|
* @since 0.11.0
|
1336
1433
|
*/
|
1337
1434
|
setSharedKeyDispatcher(dispatcher: SharedInboxKeyDispatcher<TContextData>): InboxListenerSetters<TContextData>;
|
1435
|
+
/**
|
1436
|
+
* Configures the strategy for handling activity idempotency in inbox processing.
|
1437
|
+
*
|
1438
|
+
* @example
|
1439
|
+
* Use per-inbox strategy (standard ActivityPub behavior):
|
1440
|
+
* ```
|
1441
|
+
* federation
|
1442
|
+
* .setInboxListeners("/users/{identifier}/inbox", "/inbox")
|
1443
|
+
* .withIdempotency("per-inbox");
|
1444
|
+
* ```
|
1445
|
+
*
|
1446
|
+
* Use custom strategy:
|
1447
|
+
* ```
|
1448
|
+
* federation
|
1449
|
+
* .setInboxListeners("/users/{identifier}/inbox", "/inbox")
|
1450
|
+
* .withIdempotency((ctx, activity) => {
|
1451
|
+
* // Return null to skip idempotency
|
1452
|
+
* return `${ctx.origin}:${activity.id?.href}:${ctx.recipient}`;
|
1453
|
+
* });
|
1454
|
+
* ```
|
1455
|
+
*
|
1456
|
+
* @param strategy The idempotency strategy to use. Can be:
|
1457
|
+
* - `"global"`: Activities are deduplicated across all inboxes and origins
|
1458
|
+
* - `"per-origin"`: Activities are deduplicated per inbox origin
|
1459
|
+
* - `"per-inbox"`: Activities are deduplicated per inbox
|
1460
|
+
* - A custom callback function that returns the cache key to use
|
1461
|
+
* @returns The setters object so that settings can be chained.
|
1462
|
+
* @since 1.9.0
|
1463
|
+
*/
|
1464
|
+
withIdempotency(strategy: IdempotencyStrategy | IdempotencyKeyCallback<TContextData>): InboxListenerSetters<TContextData>;
|
1338
1465
|
}
|
1339
1466
|
/**
|
1340
1467
|
* Parameters of {@link Federation.fetch} method.
|
@@ -1373,38 +1500,38 @@ interface FederationFetchOptions<TContextData> {
|
|
1373
1500
|
/**
|
1374
1501
|
* Additional settings for a custom collection dispatcher.
|
1375
1502
|
*
|
1376
|
-
* @template
|
1503
|
+
* @template TParam The type of the parameters in the URL path.
|
1377
1504
|
* @template TContext The type of the context. {@link Context} or
|
1378
1505
|
* {@link RequestContext}.
|
1379
1506
|
* @template TContextData The context data to pass to the {@link Context}.
|
1380
1507
|
* @template TFilter The type of filter for the collection.
|
1381
1508
|
*/
|
1382
|
-
interface CustomCollectionCallbackSetters<
|
1509
|
+
interface CustomCollectionCallbackSetters<TParam extends string, TContext extends Context<TContextData>, TContextData> {
|
1383
1510
|
/**
|
1384
1511
|
* Sets the counter for the custom collection.
|
1385
1512
|
* @param counter A callback that returns the number of items in the custom collection.
|
1386
1513
|
* @returns The setters object so that settings can be chained.
|
1387
1514
|
*/
|
1388
|
-
setCounter(counter: CustomCollectionCounter<
|
1515
|
+
setCounter(counter: CustomCollectionCounter<TParam, TContextData>): CustomCollectionCallbackSetters<TParam, TContext, TContextData>;
|
1389
1516
|
/**
|
1390
1517
|
* Sets the first cursor for the custom collection.
|
1391
1518
|
* @param cursor The cursor for the first item in the custom collection.
|
1392
1519
|
* @returns The setters object so that settings can be chained.
|
1393
1520
|
*/
|
1394
|
-
setFirstCursor(cursor: CustomCollectionCursor<
|
1521
|
+
setFirstCursor(cursor: CustomCollectionCursor<TParam, TContext, TContextData>): CustomCollectionCallbackSetters<TParam, TContext, TContextData>;
|
1395
1522
|
/**
|
1396
1523
|
* Sets the last cursor for the custom collection.
|
1397
1524
|
* @param cursor The cursor for the last item in the custom collection.
|
1398
1525
|
* @returns The setters object so that settings can be chained.
|
1399
1526
|
*/
|
1400
|
-
setLastCursor(cursor: CustomCollectionCursor<
|
1527
|
+
setLastCursor(cursor: CustomCollectionCursor<TParam, TContext, TContextData>): CustomCollectionCallbackSetters<TParam, TContext, TContextData>;
|
1401
1528
|
/**
|
1402
1529
|
* Specifies the conditions under which requests are authorized.
|
1403
1530
|
* @param predicate A callback that returns whether a request is authorized.
|
1404
1531
|
* @returns The setters object so that settings can be chained.
|
1405
1532
|
* @since 0.7.0
|
1406
1533
|
*/
|
1407
|
-
authorize(predicate: ObjectAuthorizePredicate<TContextData, string>): CustomCollectionCallbackSetters<
|
1534
|
+
authorize(predicate: ObjectAuthorizePredicate<TContextData, string>): CustomCollectionCallbackSetters<TParam, TContext, TContextData>;
|
1408
1535
|
}
|
1409
1536
|
/**
|
1410
1537
|
* Represents an object with a type ID, which is either a constructor or an
|
@@ -1416,73 +1543,34 @@ type ConstructorWithTypeId<TObject extends Object$1> = (new (...args: any[]) =>
|
|
1416
1543
|
typeId: URL;
|
1417
1544
|
};
|
1418
1545
|
/**
|
1419
|
-
*
|
1420
|
-
*
|
1421
|
-
*
|
1422
|
-
*
|
1423
|
-
*
|
1424
|
-
*
|
1425
|
-
* type UserPostPath = ParamsKeyPath<{ userId: string; postId: string }>;
|
1426
|
-
* let userPostPath: UserPostPath;
|
1427
|
-
* // userPostPath = "/posts/{postId}"; // invalid - does not contain `{userId}`
|
1428
|
-
* // userPostPath = "/users/{userId}"; // invalid - does not contain `{postId}`
|
1429
|
-
* userPostPath = "/users/{userId}/posts/{postId}"; // valid
|
1430
|
-
* userPostPath = "/posts/{postId}/users/{userId}"; // valid
|
1431
|
-
* ```
|
1432
|
-
*/
|
1433
|
-
type ParamsKeyPath<Params extends Record<string, string>> = ParamsPath<Extract<keyof Params, string>> & string;
|
1434
|
-
/**
|
1435
|
-
* Represents a path with multiple parameters.
|
1436
|
-
* All permutations of the parameters are included in the union type.
|
1437
|
-
* The path must have all parameters in the form of `{paramName}`.
|
1438
|
-
* @param Params - A union of parameter names.
|
1439
|
-
* @returns A string representing the path with all parameters.
|
1440
|
-
* @example
|
1441
|
-
* ```ts
|
1442
|
-
* type UserPostPath = ParamsPath<"userId" | "postId">;
|
1443
|
-
* // = `${string}{userId}${string}` & `${string}{postId}${string}`
|
1444
|
-
* // =
|
1445
|
-
* // | `${string}{userId}${string}{postId}${string}`
|
1446
|
-
* // | `${string}{postId}${string}{userId}${string}`
|
1447
|
-
* let userPostPath: UserPostPath;
|
1448
|
-
* userPostPath = "/users/posts"; // ❌ invalid
|
1449
|
-
* userPostPath = "/users/{userId}"; // ❌ invalid
|
1450
|
-
* userPostPath = "/posts/{postId}"; // ❌ invalid
|
1451
|
-
* userPostPath = "/users/{userId}/posts/{postId}"; // ✅ valid
|
1452
|
-
* userPostPath = "/posts/{postId}/users/{userId}"; // ✅ valid
|
1453
|
-
*/
|
1454
|
-
type ParamsPath<Params extends string> = UnionToIntersection<ParamPath<Params>>;
|
1455
|
-
/**
|
1456
|
-
* Represents a path with a single parameter.
|
1457
|
-
* The path must have at least one of the parameters in the form of `{paramName}`.
|
1458
|
-
* @param Param - The name of the parameter.
|
1459
|
-
* @returns A string representing the path with the parameter.
|
1460
|
-
* @example
|
1461
|
-
* ```ts
|
1462
|
-
* type UserPostPath = ParamPath<"userId" | "postId">;
|
1463
|
-
* // = `${string}{userId}${string}` | `${string}{postId}${string}`
|
1464
|
-
* let userPostPath: UserPostPath;
|
1465
|
-
* userPostPath = "/users/posts"; // ❌ invalid
|
1466
|
-
* userPostPath = "/users/{userId}"; // ✅ valid
|
1467
|
-
* userPostPath = "/posts/{postId}"; // ✅ valid
|
1468
|
-
* userPostPath = "/users/{userId}/posts/{postId}"; // ✅ valid
|
1469
|
-
* userPostPath = "/posts/{postId}/users/{userId}"; // ✅ valid
|
1470
|
-
*/
|
1471
|
-
type ParamPath<Param extends string> = `${string}{${Param}}${string}`;
|
1472
|
-
/**
|
1473
|
-
* Converts union types to intersection types.
|
1546
|
+
* Defines a union of all valid RFC 6570 URI Template expressions for a given
|
1547
|
+
* parameter name.
|
1548
|
+
*
|
1549
|
+
* RFC 6570 specifies a syntax for URI templates, allowing for variable
|
1550
|
+
* expansion. This type captures all Level 1-4 operator expressions for a
|
1551
|
+
* single, named variable.
|
1474
1552
|
*
|
1475
|
-
*
|
1476
|
-
*
|
1553
|
+
* The supported expression types are:
|
1554
|
+
* - `{Param}`: Simple string expansion
|
1555
|
+
* - `+{Param}`: Reserved string expansion
|
1556
|
+
* - `#{Param}`: Fragment expansion
|
1557
|
+
* - `{.Param}`: Label expansion with a dot-prefix
|
1558
|
+
* - `{/Param}`: Path segment expansion
|
1559
|
+
* - `{;Param}`: Path-style parameter expansion
|
1560
|
+
* - `{?Param}`: Query component expansion
|
1561
|
+
* - `{&Param}`: Query continuation expansion
|
1562
|
+
*
|
1563
|
+
* @template Param The name of the parameter to be used in the expressions.
|
1477
1564
|
* @example
|
1478
1565
|
* ```ts
|
1479
|
-
* type
|
1480
|
-
*
|
1481
|
-
*
|
1482
|
-
*
|
1483
|
-
*
|
1566
|
+
* type UserIdExpression = Rfc6570Expression<"userId">;
|
1567
|
+
*
|
1568
|
+
* // The variable `userPath` can be assigned any of the valid expressions.
|
1569
|
+
* const userPath: UserIdExpression = "{/userId}";
|
1570
|
+
* ```
|
1571
|
+
* @see {@link https://tools.ietf.org/html/rfc6570} for the full specification.
|
1484
1572
|
*/
|
1485
|
-
type
|
1573
|
+
type Rfc6570Expression<Param extends string> = `{${Param}}` | `{+${Param}}` | `{#${Param}}` | `{.${Param}}` | `{/${Param}}` | `{;${Param}}` | `{?${Param}}` | `{&${Param}}`;
|
1486
1574
|
//#endregion
|
1487
1575
|
//#region src/federation/context.d.ts
|
1488
1576
|
/**
|
@@ -2253,4 +2341,4 @@ interface ActorKeyPair extends CryptoKeyPair {
|
|
2253
2341
|
multikey: Multikey;
|
2254
2342
|
}
|
2255
2343
|
//#endregion
|
2256
|
-
export { ActivityTransformer, ActorAliasMapper, ActorCallbackSetters, ActorDispatcher, ActorHandleMapper, ActorKeyPair, ActorKeyPairsDispatcher, AuthorizePredicate, CollectionCallbackSetters, CollectionCounter, CollectionCursor, CollectionDispatcher, ConstructorWithTypeId, Context, CreateExponentialBackoffPolicyOptions, CreateFederationOptions, CustomCollectionCallbackSetters, CustomCollectionCounter, CustomCollectionCursor, CustomCollectionDispatcher, Federatable, Federation, FederationBuilder, FederationFetchOptions, FederationKvPrefixes, FederationOptions, FederationOrigin, FederationQueueOptions, FederationStartQueueOptions, ForwardActivityOptions, GetSignedKeyOptions, InboxContext, InboxErrorHandler, InboxListener, InboxListenerSetters, Message, NodeInfoDispatcher, ObjectAuthorizePredicate, ObjectCallbackSetters, ObjectDispatcher, OutboxErrorHandler, PageItems,
|
2344
|
+
export { ActivityTransformer, ActorAliasMapper, ActorCallbackSetters, ActorDispatcher, ActorHandleMapper, ActorKeyPair, ActorKeyPairsDispatcher, AuthorizePredicate, CollectionCallbackSetters, CollectionCounter, CollectionCursor, CollectionDispatcher, ConstructorWithTypeId, Context, CreateExponentialBackoffPolicyOptions, CreateFederationOptions, CustomCollectionCallbackSetters, CustomCollectionCounter, CustomCollectionCursor, CustomCollectionDispatcher, Federatable, Federation, FederationBuilder, FederationFetchOptions, FederationKvPrefixes, FederationOptions, FederationOrigin, FederationQueueOptions, FederationStartQueueOptions, ForwardActivityOptions, GetSignedKeyOptions, IdempotencyKeyCallback, IdempotencyStrategy, InboxContext, InboxErrorHandler, InboxListener, InboxListenerSetters, Message, NodeInfoDispatcher, ObjectAuthorizePredicate, ObjectCallbackSetters, ObjectDispatcher, OutboxErrorHandler, PageItems, ParseUriResult, RequestContext, RespondWithObjectOptions, RetryContext, RetryPolicy, Rfc6570Expression, RouteActivityOptions, Router, RouterError, RouterOptions, RouterRouteResult, SendActivityOptions, SendActivityOptionsForCollection, SenderKeyPair, SharedInboxKeyDispatcher, WebFingerLinksDispatcher, buildCollectionSynchronizationHeader, createExponentialBackoffPolicy, createFederation, createFederationBuilder, digest, respondWithObject, respondWithObjectIfAcceptable };
|