@fedify/fedify 2.0.0-dev.1485 → 2.0.0-pr.393.1495
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-DXTdNCfp.js → actor-B16nziQs.js} +187 -187
- package/dist/{actor-7ivEf1H3.js → actor-CinCK71p.js} +1 -1
- package/dist/{authdocloader-Bq0gEHRj.js → authdocloader-BrY6MDsl.js} +3 -3
- package/dist/{authdocloader-D_IvQE4z.js → authdocloader-C74ICOGP.js} +3 -3
- package/dist/{builder-BPGqEvtB.js → builder-Dq7MQ5NK.js} +4 -4
- package/dist/{client-g2FDBoeY.js → client-8WmN_-II.js} +1 -1
- package/dist/compat/mod.d.ts +2 -2
- package/dist/compat/transformers.test.js +16 -16
- package/dist/{context-DmlbRh9p.d.ts → context-3ICnZJKt.d.ts} +0 -6
- package/dist/{docloader-BlVueewg.js → docloader-DwdOQnHI.js} +1 -1
- package/dist/{esm-CPZhxxGc.js → esm-Dv897aO4.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/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 +46 -47
- package/dist/federation/mod.d.ts +1 -1
- package/dist/federation/mod.js +10 -10
- package/dist/federation/mq.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/{http-zsOxPKCt.js → http-CkThXm40.js} +3 -3
- package/dist/{http-C7rxW7Kh.js → http-Crm_YI3l.js} +2 -2
- package/dist/{inbox-eK2W2MF3.js → inbox-zeOB5Uez.js} +1 -1
- package/dist/{key-S7WllAWz.js → key-BN7R43vy.js} +3 -3
- package/dist/{key-CYOcZ9G5.js → key-DYqvk96x.js} +2 -2
- package/dist/{key-Dn7Lram-.js → key-DZ46WqGg.js} +2 -2
- package/dist/{key-rRCUafNm.js → key-srqy5usi.js} +4 -4
- package/dist/{keycache-BLq6GT4_.js → keycache-6Dz6thSh.js} +1 -1
- package/dist/{keys-BIwlbtMN.js → keys-Dw-l1OR5.js} +1 -1
- package/dist/{ld-DWwLYT4e.js → ld-AXMQ5Sw4.js} +2 -2
- package/dist/{lookup-BHYMosdS.js → lookup-BjPjagJv.js} +1 -1
- package/dist/{lookup-DNQyH8UQ.js → lookup-DauD87tC.js} +1 -1
- package/dist/middleware-ABxBZMAN.js +26 -0
- package/dist/{middleware-DakCaqXu.js → middleware-BnJ93F1S.js} +15 -20
- package/dist/middleware-CVCu5dAz.js +17 -0
- package/dist/{middleware-BcVqlHyD.js → middleware-owulyLCk.js} +12 -17
- package/dist/{mod-0EysZ-dJ.d.ts → mod-CWxqOAci.d.ts} +1 -1
- package/dist/mod.d.ts +2 -2
- 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.js +2 -2
- package/dist/nodeinfo/semver.test.js +3 -3
- package/dist/nodeinfo/types.test.js +3 -3
- package/dist/{owner-smArESGi.js → owner-DP9z-To9.js} +2 -2
- package/dist/{proof-C6z-uqeO.js → proof-BAeRVX1L.js} +2 -2
- package/dist/{proof-CT1SITRP.js → proof-CIEGsOhH.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/mod.js +6 -6
- package/dist/runtime/multibase/multibase.test.js +3 -3
- package/dist/runtime/url.test.js +3 -3
- package/dist/{send-1zdmNlUo.js → send-C4RIv5E5.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.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.js +3 -3
- package/dist/{testing-BG_8Fyas.js → testing-BIWxL9f6.js} +2 -2
- package/dist/{type-I68qwqmo.js → type-DpdbXymL.js} +186 -186
- package/dist/{types-BzyGRkRt.js → types-DHR7i5kl.js} +1 -1
- package/dist/vocab/actor.test.js +5 -5
- package/dist/vocab/lookup.test.js +4 -4
- package/dist/vocab/mod.js +4 -4
- package/dist/vocab/type.test.js +3 -3
- package/dist/vocab/vocab.test.js +4 -4
- package/dist/{vocab-Bg1J3mu4.js → vocab-L0DaSC6q.js} +3 -3
- package/dist/webfinger/handler.test.js +16 -16
- package/dist/webfinger/lookup.test.js +4 -4
- package/dist/webfinger/mod.js +2 -2
- package/dist/x/cfworkers.test.js +3 -3
- package/dist/x/hono.d.ts +1 -1
- package/dist/x/sveltekit.d.ts +1 -1
- package/package.json +1 -1
- package/dist/middleware-CWbGhXnl.js +0 -26
- package/dist/middleware-D-OlNiyj.js +0 -17
@@ -3,7 +3,7 @@
|
|
3
3
|
import { URLPattern } from "urlpattern-polyfill";
|
4
4
|
globalThis.addEventListener = () => {};
|
5
5
|
|
6
|
-
import { Application, Group, Organization, Person, Service, deno_default, getTypeId, lookupWebFinger } from "./type-
|
6
|
+
import { Application, Group, Organization, Person, Service, deno_default, getTypeId, lookupWebFinger } from "./type-DpdbXymL.js";
|
7
7
|
import { SpanStatusCode, trace } from "@opentelemetry/api";
|
8
8
|
import { domainToASCII, domainToUnicode } from "node:url";
|
9
9
|
|
@@ -2,9 +2,9 @@
|
|
2
2
|
import { Temporal } from "@js-temporal/polyfill";
|
3
3
|
import { URLPattern } from "urlpattern-polyfill";
|
4
4
|
|
5
|
-
import { UrlError, createRequest, getRemoteDocument, logRequest, validatePublicUrl } from "./docloader-
|
6
|
-
import { validateCryptoKey } from "./key-
|
7
|
-
import { doubleKnock } from "./http-
|
5
|
+
import { UrlError, createRequest, getRemoteDocument, logRequest, validatePublicUrl } from "./docloader-DwdOQnHI.js";
|
6
|
+
import { validateCryptoKey } from "./key-DZ46WqGg.js";
|
7
|
+
import { doubleKnock } from "./http-CkThXm40.js";
|
8
8
|
import { getLogger } from "@logtape/logtape";
|
9
9
|
|
10
10
|
//#region src/runtime/authdocloader.ts
|
@@ -3,9 +3,9 @@
|
|
3
3
|
import { URLPattern } from "urlpattern-polyfill";
|
4
4
|
globalThis.addEventListener = () => {};
|
5
5
|
|
6
|
-
import { UrlError, createRequest, getRemoteDocument, logRequest, validatePublicUrl } from "./type-
|
7
|
-
import { validateCryptoKey } from "./key-
|
8
|
-
import { doubleKnock } from "./http-
|
6
|
+
import { UrlError, createRequest, getRemoteDocument, logRequest, validatePublicUrl } from "./type-DpdbXymL.js";
|
7
|
+
import { validateCryptoKey } from "./key-DYqvk96x.js";
|
8
|
+
import { doubleKnock } from "./http-Crm_YI3l.js";
|
9
9
|
import { getLogger } from "@logtape/logtape";
|
10
10
|
|
11
11
|
//#region src/runtime/authdocloader.ts
|
@@ -3,9 +3,9 @@
|
|
3
3
|
import { URLPattern } from "urlpattern-polyfill";
|
4
4
|
globalThis.addEventListener = () => {};
|
5
5
|
|
6
|
-
import { deno_default, getTypeId } from "./type-
|
7
|
-
import { Router, RouterError } from "./lookup-
|
8
|
-
import { InboxListenerSet } from "./inbox-
|
6
|
+
import { deno_default, getTypeId } from "./type-DpdbXymL.js";
|
7
|
+
import { Router, RouterError } from "./lookup-DauD87tC.js";
|
8
|
+
import { InboxListenerSet } from "./inbox-zeOB5Uez.js";
|
9
9
|
import { getLogger } from "@logtape/logtape";
|
10
10
|
import { SpanKind, SpanStatusCode, trace } from "@opentelemetry/api";
|
11
11
|
|
@@ -41,7 +41,7 @@ var FederationBuilderImpl = class {
|
|
41
41
|
this.collectionTypeIds = {};
|
42
42
|
}
|
43
43
|
async build(options) {
|
44
|
-
const { FederationImpl } = await import("./middleware-
|
44
|
+
const { FederationImpl } = await import("./middleware-ABxBZMAN.js");
|
45
45
|
const f = new FederationImpl(options);
|
46
46
|
const trailingSlashInsensitiveValue = f.router.trailingSlashInsensitive;
|
47
47
|
f.router = this.router.clone();
|
@@ -3,7 +3,7 @@
|
|
3
3
|
import { URLPattern } from "urlpattern-polyfill";
|
4
4
|
globalThis.addEventListener = () => {};
|
5
5
|
|
6
|
-
import { getUserAgent } from "./type-
|
6
|
+
import { getUserAgent } from "./type-DpdbXymL.js";
|
7
7
|
import { parseSemVer } from "./semver-dArNLkR9.js";
|
8
8
|
import { getLogger } from "@logtape/logtape";
|
9
9
|
|
package/dist/compat/mod.d.ts
CHANGED
@@ -9,7 +9,7 @@ import "../http-DqSNLFNY.js";
|
|
9
9
|
import "../owner-CQPnQVtf.js";
|
10
10
|
import "../mod-Cxt4Kpf6.js";
|
11
11
|
import "../lookup-3czM5mmU.js";
|
12
|
-
import { ActivityTransformer } from "../context-
|
12
|
+
import { ActivityTransformer } from "../context-3ICnZJKt.js";
|
13
13
|
import "../mq-CRGm1e_F.js";
|
14
|
-
import { actorDehydrator, autoIdAssigner, getDefaultActivityTransformers } from "../mod-
|
14
|
+
import { actorDehydrator, autoIdAssigner, getDefaultActivityTransformers } from "../mod-CWxqOAci.js";
|
15
15
|
export { ActivityTransformer, actorDehydrator, autoIdAssigner, getDefaultActivityTransformers };
|
@@ -3,30 +3,30 @@
|
|
3
3
|
import { URLPattern } from "urlpattern-polyfill";
|
4
4
|
globalThis.addEventListener = () => {};
|
5
5
|
|
6
|
-
import { Follow, Person } from "../type-
|
6
|
+
import { Follow, Person } from "../type-DpdbXymL.js";
|
7
7
|
import { assertEquals } from "../assert_equals-DSbWqCm3.js";
|
8
8
|
import { assert } from "../assert-MZs1qjMx.js";
|
9
9
|
import { assertInstanceOf } from "../assert_instance_of-DHz7EHNU.js";
|
10
10
|
import { MemoryKvStore } from "../kv-CRZrzyXm.js";
|
11
|
-
import { FederationImpl, actorDehydrator, autoIdAssigner } from "../middleware-
|
11
|
+
import { FederationImpl, actorDehydrator, autoIdAssigner } from "../middleware-BnJ93F1S.js";
|
12
12
|
import "../semver-dArNLkR9.js";
|
13
|
-
import "../client-
|
14
|
-
import "../lookup-
|
13
|
+
import "../client-8WmN_-II.js";
|
14
|
+
import "../lookup-DauD87tC.js";
|
15
15
|
import "../types-BIgY6c-l.js";
|
16
|
-
import "../actor-
|
17
|
-
import "../key-
|
18
|
-
import "../http-
|
19
|
-
import "../authdocloader-
|
20
|
-
import "../ld-
|
21
|
-
import "../owner-
|
22
|
-
import "../proof-
|
23
|
-
import "../inbox-
|
24
|
-
import "../builder-
|
16
|
+
import "../actor-CinCK71p.js";
|
17
|
+
import "../key-DYqvk96x.js";
|
18
|
+
import "../http-Crm_YI3l.js";
|
19
|
+
import "../authdocloader-C74ICOGP.js";
|
20
|
+
import "../ld-AXMQ5Sw4.js";
|
21
|
+
import "../owner-DP9z-To9.js";
|
22
|
+
import "../proof-BAeRVX1L.js";
|
23
|
+
import "../inbox-zeOB5Uez.js";
|
24
|
+
import "../builder-Dq7MQ5NK.js";
|
25
25
|
import "../collection-CSzG2j1P.js";
|
26
|
-
import "../keycache-
|
26
|
+
import "../keycache-6Dz6thSh.js";
|
27
27
|
import "../retry-D4GJ670a.js";
|
28
|
-
import "../send-
|
29
|
-
import { test } from "../testing-
|
28
|
+
import "../send-C4RIv5E5.js";
|
29
|
+
import { test } from "../testing-BIWxL9f6.js";
|
30
30
|
|
31
31
|
//#region src/compat/transformers.test.ts
|
32
32
|
const federation = new FederationImpl({ kv: new MemoryKvStore() });
|
@@ -1079,12 +1079,6 @@ interface FederationOptions<TContextData> {
|
|
1079
1079
|
* @since 1.4.0
|
1080
1080
|
*/
|
1081
1081
|
contextLoaderFactory?: DocumentLoaderFactory;
|
1082
|
-
/**
|
1083
|
-
* A custom JSON-LD document loader. By default, this uses the built-in
|
1084
|
-
* cache-backed loader that fetches remote documents over HTTP(S).
|
1085
|
-
* @deprecated Use {@link documentLoaderFactory} instead.
|
1086
|
-
*/
|
1087
|
-
documentLoader?: DocumentLoader;
|
1088
1082
|
/**
|
1089
1083
|
* A custom JSON-LD context loader. By default, this uses the same loader
|
1090
1084
|
* as the document loader.
|
@@ -3,7 +3,7 @@
|
|
3
3
|
import { URLPattern } from "urlpattern-polyfill";
|
4
4
|
globalThis.addEventListener = () => {};
|
5
5
|
|
6
|
-
import { __commonJS, __toESM } from "./type-
|
6
|
+
import { __commonJS, __toESM } from "./type-DpdbXymL.js";
|
7
7
|
|
8
8
|
//#region ../../node_modules/.pnpm/glob-to-regexp@0.4.1/node_modules/glob-to-regexp/index.js
|
9
9
|
var require_glob_to_regexp = __commonJS({ "../../node_modules/.pnpm/glob-to-regexp@0.4.1/node_modules/glob-to-regexp/index.js"(exports, module) {
|
@@ -3,16 +3,16 @@
|
|
3
3
|
import { URLPattern } from "urlpattern-polyfill";
|
4
4
|
globalThis.addEventListener = () => {};
|
5
5
|
|
6
|
-
import { Activity, Note, Person } from "../type-
|
6
|
+
import { Activity, Note, Person } from "../type-DpdbXymL.js";
|
7
7
|
import { assertEquals } from "../assert_equals-DSbWqCm3.js";
|
8
8
|
import "../assert-MZs1qjMx.js";
|
9
9
|
import "../assert_instance_of-DHz7EHNU.js";
|
10
10
|
import { MemoryKvStore } from "../kv-CRZrzyXm.js";
|
11
11
|
import { parseSemVer } from "../semver-dArNLkR9.js";
|
12
|
-
import "../lookup-
|
13
|
-
import "../inbox-
|
14
|
-
import { createFederationBuilder } from "../builder-
|
15
|
-
import { test } from "../testing-
|
12
|
+
import "../lookup-DauD87tC.js";
|
13
|
+
import "../inbox-zeOB5Uez.js";
|
14
|
+
import { createFederationBuilder } from "../builder-Dq7MQ5NK.js";
|
15
|
+
import { test } from "../testing-BIWxL9f6.js";
|
16
16
|
import { assertExists } from "../std__assert-X-_kMxKM.js";
|
17
17
|
import "../assert_rejects-DiIiJbZn.js";
|
18
18
|
import "../assert_is_error-BPGph1Jx.js";
|
@@ -3,13 +3,13 @@
|
|
3
3
|
import { URLPattern } from "urlpattern-polyfill";
|
4
4
|
globalThis.addEventListener = () => {};
|
5
5
|
|
6
|
-
import "../type-
|
6
|
+
import "../type-DpdbXymL.js";
|
7
7
|
import { assertEquals } from "../assert_equals-DSbWqCm3.js";
|
8
8
|
import "../assert-MZs1qjMx.js";
|
9
9
|
import "../assert_instance_of-DHz7EHNU.js";
|
10
|
-
import "../lookup-
|
10
|
+
import "../lookup-DauD87tC.js";
|
11
11
|
import { buildCollectionSynchronizationHeader, digest } from "../collection-CSzG2j1P.js";
|
12
|
-
import { test } from "../testing-
|
12
|
+
import { test } from "../testing-BIWxL9f6.js";
|
13
13
|
import "../std__assert-X-_kMxKM.js";
|
14
14
|
import "../assert_rejects-DiIiJbZn.js";
|
15
15
|
import "../assert_is_error-BPGph1Jx.js";
|
@@ -3,36 +3,36 @@
|
|
3
3
|
import { URLPattern } from "urlpattern-polyfill";
|
4
4
|
globalThis.addEventListener = () => {};
|
5
5
|
|
6
|
-
import { Create, Note, Person } from "../type-
|
6
|
+
import { Create, Note, Person } from "../type-DpdbXymL.js";
|
7
7
|
import { assertEquals } from "../assert_equals-DSbWqCm3.js";
|
8
8
|
import { assert } from "../assert-MZs1qjMx.js";
|
9
9
|
import "../assert_instance_of-DHz7EHNU.js";
|
10
10
|
import { MemoryKvStore } from "../kv-CRZrzyXm.js";
|
11
|
-
import { acceptsJsonLd, createFederation, handleActor, handleCollection, handleCustomCollection, handleInbox, handleObject, respondWithObject, respondWithObjectIfAcceptable } from "../middleware-
|
11
|
+
import { acceptsJsonLd, createFederation, handleActor, handleCollection, handleCustomCollection, handleInbox, handleObject, respondWithObject, respondWithObjectIfAcceptable } from "../middleware-BnJ93F1S.js";
|
12
12
|
import "../semver-dArNLkR9.js";
|
13
|
-
import "../client-
|
14
|
-
import "../lookup-
|
13
|
+
import "../client-8WmN_-II.js";
|
14
|
+
import "../lookup-DauD87tC.js";
|
15
15
|
import "../types-BIgY6c-l.js";
|
16
|
-
import "../actor-
|
17
|
-
import "../key-
|
18
|
-
import { signRequest } from "../http-
|
19
|
-
import "../authdocloader-
|
20
|
-
import "../ld-
|
21
|
-
import "../owner-
|
22
|
-
import "../proof-
|
23
|
-
import { InboxListenerSet } from "../inbox-
|
24
|
-
import "../builder-
|
16
|
+
import "../actor-CinCK71p.js";
|
17
|
+
import "../key-DYqvk96x.js";
|
18
|
+
import { signRequest } from "../http-Crm_YI3l.js";
|
19
|
+
import "../authdocloader-C74ICOGP.js";
|
20
|
+
import "../ld-AXMQ5Sw4.js";
|
21
|
+
import "../owner-DP9z-To9.js";
|
22
|
+
import "../proof-BAeRVX1L.js";
|
23
|
+
import { InboxListenerSet } from "../inbox-zeOB5Uez.js";
|
24
|
+
import "../builder-Dq7MQ5NK.js";
|
25
25
|
import "../collection-CSzG2j1P.js";
|
26
|
-
import "../keycache-
|
26
|
+
import "../keycache-6Dz6thSh.js";
|
27
27
|
import "../retry-D4GJ670a.js";
|
28
|
-
import "../send-
|
29
|
-
import { createInboxContext, createRequestContext, mockDocumentLoader, test } from "../testing-
|
28
|
+
import "../send-C4RIv5E5.js";
|
29
|
+
import { createInboxContext, createRequestContext, mockDocumentLoader, test } from "../testing-BIWxL9f6.js";
|
30
30
|
import "../std__assert-X-_kMxKM.js";
|
31
31
|
import { assertFalse } from "../assert_rejects-DiIiJbZn.js";
|
32
32
|
import "../assert_is_error-BPGph1Jx.js";
|
33
33
|
import "../assert_not_equals-f3m3epl3.js";
|
34
34
|
import "../assert_throws-BOO88avQ.js";
|
35
|
-
import { rsaPrivateKey3, rsaPublicKey2, rsaPublicKey3 } from "../keys-
|
35
|
+
import { rsaPrivateKey3, rsaPublicKey2, rsaPublicKey3 } from "../keys-Dw-l1OR5.js";
|
36
36
|
|
37
37
|
//#region src/federation/handler.test.ts
|
38
38
|
test("acceptsJsonLd()", () => {
|
@@ -3,11 +3,11 @@
|
|
3
3
|
import { URLPattern } from "urlpattern-polyfill";
|
4
4
|
globalThis.addEventListener = () => {};
|
5
5
|
|
6
|
-
import { Activity, Create, Invite, Offer, Update } from "../type-
|
6
|
+
import { Activity, Create, Invite, Offer, Update } from "../type-DpdbXymL.js";
|
7
7
|
import { assertEquals } from "../assert_equals-DSbWqCm3.js";
|
8
|
-
import "../lookup-
|
9
|
-
import { InboxListenerSet } from "../inbox-
|
10
|
-
import { test } from "../testing-
|
8
|
+
import "../lookup-DauD87tC.js";
|
9
|
+
import { InboxListenerSet } from "../inbox-zeOB5Uez.js";
|
10
|
+
import { test } from "../testing-BIWxL9f6.js";
|
11
11
|
import "../assert_is_error-BPGph1Jx.js";
|
12
12
|
import { assertThrows } from "../assert_throws-BOO88avQ.js";
|
13
13
|
|
@@ -3,14 +3,14 @@
|
|
3
3
|
import { URLPattern } from "urlpattern-polyfill";
|
4
4
|
globalThis.addEventListener = () => {};
|
5
5
|
|
6
|
-
import { CryptographicKey, Multikey } from "../type-
|
6
|
+
import { CryptographicKey, Multikey } from "../type-DpdbXymL.js";
|
7
7
|
import { assertEquals } from "../assert_equals-DSbWqCm3.js";
|
8
8
|
import { assert } from "../assert-MZs1qjMx.js";
|
9
9
|
import { assertInstanceOf } from "../assert_instance_of-DHz7EHNU.js";
|
10
10
|
import { MemoryKvStore } from "../kv-CRZrzyXm.js";
|
11
|
-
import "../lookup-
|
12
|
-
import { KvKeyCache } from "../keycache-
|
13
|
-
import { test } from "../testing-
|
11
|
+
import "../lookup-DauD87tC.js";
|
12
|
+
import { KvKeyCache } from "../keycache-6Dz6thSh.js";
|
13
|
+
import { test } from "../testing-BIWxL9f6.js";
|
14
14
|
|
15
15
|
//#region src/federation/keycache.test.ts
|
16
16
|
test("KvKeyCache.set()", async () => {
|
@@ -3,13 +3,13 @@
|
|
3
3
|
import { URLPattern } from "urlpattern-polyfill";
|
4
4
|
globalThis.addEventListener = () => {};
|
5
5
|
|
6
|
-
import "../type-
|
6
|
+
import "../type-DpdbXymL.js";
|
7
7
|
import { assertEquals } from "../assert_equals-DSbWqCm3.js";
|
8
8
|
import "../assert-MZs1qjMx.js";
|
9
9
|
import "../assert_instance_of-DHz7EHNU.js";
|
10
10
|
import { MemoryKvStore } from "../kv-CRZrzyXm.js";
|
11
|
-
import "../lookup-
|
12
|
-
import { test } from "../testing-
|
11
|
+
import "../lookup-DauD87tC.js";
|
12
|
+
import { test } from "../testing-BIWxL9f6.js";
|
13
13
|
import "../std__assert-X-_kMxKM.js";
|
14
14
|
import "../assert_rejects-DiIiJbZn.js";
|
15
15
|
import "../assert_is_error-BPGph1Jx.js";
|
@@ -3,37 +3,37 @@
|
|
3
3
|
import { URLPattern } from "urlpattern-polyfill";
|
4
4
|
globalThis.addEventListener = () => {};
|
5
5
|
|
6
|
-
import { Activity, Announce, Create,
|
6
|
+
import { Activity, Announce, Create, Invite, Multikey, Note, Object as Object$1, Offer, Person, fetchDocumentLoader, getTypeId } from "../type-DpdbXymL.js";
|
7
7
|
import { assertEquals } from "../assert_equals-DSbWqCm3.js";
|
8
8
|
import { assert } from "../assert-MZs1qjMx.js";
|
9
9
|
import { assertInstanceOf } from "../assert_instance_of-DHz7EHNU.js";
|
10
10
|
import { MemoryKvStore } from "../kv-CRZrzyXm.js";
|
11
|
-
import { ContextImpl, FederationImpl, InboxContextImpl, KvSpecDeterminer, createFederation } from "../middleware-
|
11
|
+
import { ContextImpl, FederationImpl, InboxContextImpl, KvSpecDeterminer, createFederation } from "../middleware-BnJ93F1S.js";
|
12
12
|
import "../semver-dArNLkR9.js";
|
13
|
-
import "../client-
|
14
|
-
import { RouterError, lookupObject } from "../lookup-
|
13
|
+
import "../client-8WmN_-II.js";
|
14
|
+
import { RouterError, lookupObject } from "../lookup-DauD87tC.js";
|
15
15
|
import "../types-BIgY6c-l.js";
|
16
|
-
import "../actor-
|
17
|
-
import "../key-
|
18
|
-
import { signRequest, verifyRequest } from "../http-
|
19
|
-
import { getAuthenticatedDocumentLoader } from "../authdocloader-
|
20
|
-
import { detachSignature, signJsonLd, verifyJsonLd } from "../ld-
|
21
|
-
import { doesActorOwnKey } from "../owner-
|
22
|
-
import { signObject, verifyObject } from "../proof-
|
23
|
-
import "../inbox-
|
24
|
-
import "../builder-
|
16
|
+
import "../actor-CinCK71p.js";
|
17
|
+
import "../key-DYqvk96x.js";
|
18
|
+
import { signRequest, verifyRequest } from "../http-Crm_YI3l.js";
|
19
|
+
import { getAuthenticatedDocumentLoader } from "../authdocloader-C74ICOGP.js";
|
20
|
+
import { detachSignature, signJsonLd, verifyJsonLd } from "../ld-AXMQ5Sw4.js";
|
21
|
+
import { doesActorOwnKey } from "../owner-DP9z-To9.js";
|
22
|
+
import { signObject, verifyObject } from "../proof-BAeRVX1L.js";
|
23
|
+
import "../inbox-zeOB5Uez.js";
|
24
|
+
import "../builder-Dq7MQ5NK.js";
|
25
25
|
import "../collection-CSzG2j1P.js";
|
26
|
-
import "../keycache-
|
26
|
+
import "../keycache-6Dz6thSh.js";
|
27
27
|
import "../retry-D4GJ670a.js";
|
28
|
-
import "../send-
|
29
|
-
import { mockDocumentLoader, test } from "../testing-
|
28
|
+
import "../send-C4RIv5E5.js";
|
29
|
+
import { mockDocumentLoader, test } from "../testing-BIWxL9f6.js";
|
30
30
|
import { assertStrictEquals } from "../std__assert-X-_kMxKM.js";
|
31
31
|
import { assertFalse, assertRejects } from "../assert_rejects-DiIiJbZn.js";
|
32
32
|
import "../assert_is_error-BPGph1Jx.js";
|
33
33
|
import { assertNotEquals } from "../assert_not_equals-f3m3epl3.js";
|
34
34
|
import { assertThrows } from "../assert_throws-BOO88avQ.js";
|
35
|
-
import { ed25519Multikey, ed25519PrivateKey, ed25519PublicKey, rsaPrivateKey2, rsaPrivateKey3, rsaPublicKey2, rsaPublicKey3 } from "../keys-
|
36
|
-
import { esm_default } from "../esm-
|
35
|
+
import { ed25519Multikey, ed25519PrivateKey, ed25519PublicKey, rsaPrivateKey2, rsaPrivateKey3, rsaPublicKey2, rsaPublicKey3 } from "../keys-Dw-l1OR5.js";
|
36
|
+
import { esm_default } from "../esm-Dv897aO4.js";
|
37
37
|
|
38
38
|
//#region src/testing/fixtures/example.com/person.json
|
39
39
|
var __context$1 = ["https://www.w3.org/ns/activitystreams", "https://w3id.org/security/v1"];
|
@@ -106,11 +106,6 @@ var person2_default = {
|
|
106
106
|
test("createFederation()", async (t) => {
|
107
107
|
const kv = new MemoryKvStore();
|
108
108
|
await t.step("allowPrivateAddress", () => {
|
109
|
-
assertThrows(() => createFederation({
|
110
|
-
kv,
|
111
|
-
documentLoader: mockDocumentLoader,
|
112
|
-
allowPrivateAddress: true
|
113
|
-
}), TypeError);
|
114
109
|
assertThrows(() => createFederation({
|
115
110
|
kv,
|
116
111
|
contextLoader: mockDocumentLoader,
|
@@ -223,11 +218,8 @@ test({
|
|
223
218
|
},
|
224
219
|
async fn(t) {
|
225
220
|
const kv = new MemoryKvStore();
|
226
|
-
const documentLoader = (url) => {
|
227
|
-
throw new FetchError(new URL(url), "Not found");
|
228
|
-
};
|
229
221
|
esm_default.spyGlobal();
|
230
|
-
esm_default.get("https://example.com/
|
222
|
+
esm_default.get("https://example.com/auth-check", async (cl) => {
|
231
223
|
const v = await verifyRequest(cl.request, {
|
232
224
|
contextLoader: mockDocumentLoader,
|
233
225
|
documentLoader: mockDocumentLoader,
|
@@ -236,10 +228,11 @@ test({
|
|
236
228
|
return new Response(JSON.stringify(v != null), { headers: { "Content-Type": "application/json" } });
|
237
229
|
});
|
238
230
|
await t.step("Context", async () => {
|
231
|
+
const rejectingLoader = (_url) => Promise.reject(/* @__PURE__ */ new Error("Not found"));
|
239
232
|
const federation = createFederation({
|
240
233
|
kv,
|
241
|
-
|
242
|
-
|
234
|
+
documentLoaderFactory: () => rejectingLoader,
|
235
|
+
contextLoaderFactory: () => mockDocumentLoader
|
243
236
|
});
|
244
237
|
let ctx = federation.createContext(new URL("https://example.com:1234/"), 123);
|
245
238
|
assertEquals(ctx.data, 123);
|
@@ -247,7 +240,7 @@ test({
|
|
247
240
|
assertEquals(ctx.canonicalOrigin, "https://example.com:1234");
|
248
241
|
assertEquals(ctx.host, "example.com:1234");
|
249
242
|
assertEquals(ctx.hostname, "example.com");
|
250
|
-
assertStrictEquals(ctx.documentLoader,
|
243
|
+
assertStrictEquals(ctx.documentLoader, rejectingLoader);
|
251
244
|
assertStrictEquals(ctx.contextLoader, mockDocumentLoader);
|
252
245
|
assertStrictEquals(ctx.federation, federation);
|
253
246
|
assertThrows(() => ctx.getNodeInfoUri(), RouterError);
|
@@ -332,33 +325,39 @@ test({
|
|
332
325
|
})
|
333
326
|
}]);
|
334
327
|
const loader = await ctx.getDocumentLoader({ identifier: "handle" });
|
335
|
-
assertEquals(await loader("https://example.com/
|
328
|
+
assertEquals(await loader("https://example.com/auth-check"), {
|
336
329
|
contextUrl: null,
|
337
|
-
documentUrl: "https://example.com/
|
330
|
+
documentUrl: "https://example.com/auth-check",
|
338
331
|
document: true
|
339
332
|
});
|
340
333
|
const loader2 = await ctx.getDocumentLoader({ username: "HANDLE" });
|
341
|
-
assertEquals(await loader2("https://example.com/
|
334
|
+
assertEquals(await loader2("https://example.com/auth-check"), {
|
342
335
|
contextUrl: null,
|
343
|
-
documentUrl: "https://example.com/
|
336
|
+
documentUrl: "https://example.com/auth-check",
|
344
337
|
document: true
|
345
338
|
});
|
346
339
|
const loader3 = ctx.getDocumentLoader({
|
347
340
|
keyId: new URL("https://example.com/key2"),
|
348
341
|
privateKey: rsaPrivateKey2
|
349
342
|
});
|
350
|
-
assertEquals(await loader3("https://example.com/
|
343
|
+
assertEquals(await loader3("https://example.com/auth-check"), {
|
351
344
|
contextUrl: null,
|
352
|
-
documentUrl: "https://example.com/
|
345
|
+
documentUrl: "https://example.com/auth-check",
|
353
346
|
document: true
|
354
347
|
});
|
355
348
|
assertEquals(await ctx.lookupObject("https://example.com/object"), null);
|
356
349
|
await assertRejects(() => ctx.sendActivity({ identifier: "handle" }, [], new Create({})), TypeError, "The activity to send must have at least one actor property.");
|
357
350
|
await ctx.sendActivity({ identifier: "handle" }, [], new Create({ actor: new URL("https://example.com/users/handle") }));
|
351
|
+
esm_default.get("https://example.com/object", () => new Response(JSON.stringify({
|
352
|
+
"@context": "https://www.w3.org/ns/activitystreams",
|
353
|
+
type: "Object",
|
354
|
+
id: "https://example.com/object",
|
355
|
+
name: "Fetched object"
|
356
|
+
}), { headers: { "Content-Type": "application/activity+json" } }));
|
358
357
|
const federation2 = createFederation({
|
359
358
|
kv,
|
360
|
-
|
361
|
-
|
359
|
+
documentLoaderFactory: () => fetchDocumentLoader,
|
360
|
+
contextLoaderFactory: () => mockDocumentLoader
|
362
361
|
});
|
363
362
|
const ctx2 = federation2.createContext(new URL("https://example.com/"), 123);
|
364
363
|
assertEquals(await ctx2.lookupObject("https://example.com/object"), new Object$1({
|
@@ -457,7 +456,7 @@ test({
|
|
457
456
|
const federation = createFederation({
|
458
457
|
kv,
|
459
458
|
origin: "https://ap.example.com",
|
460
|
-
|
459
|
+
documentLoaderFactory: () => mockDocumentLoader,
|
461
460
|
contextLoader: mockDocumentLoader
|
462
461
|
});
|
463
462
|
const ctx = federation.createContext(new URL("https://example.com:1234/"));
|
@@ -694,7 +693,7 @@ test({
|
|
694
693
|
await t.step("RequestContext", async () => {
|
695
694
|
const federation = createFederation({
|
696
695
|
kv,
|
697
|
-
|
696
|
+
documentLoaderFactory: () => mockDocumentLoader
|
698
697
|
});
|
699
698
|
const req = new Request("https://example.com/");
|
700
699
|
const ctx = federation.createContext(req, 123);
|
@@ -790,7 +789,7 @@ test("Federation.setInboxListeners()", async (t) => {
|
|
790
789
|
await t.step("path match", () => {
|
791
790
|
const federation = createFederation({
|
792
791
|
kv,
|
793
|
-
|
792
|
+
documentLoaderFactory: () => mockDocumentLoader
|
794
793
|
});
|
795
794
|
federation.setInboxDispatcher("/users/{identifier}/inbox", () => ({ items: [] }));
|
796
795
|
assertThrows(() => federation.setInboxListeners("/users/{identifier}/inbox2"), RouterError);
|
@@ -798,7 +797,7 @@ test("Federation.setInboxListeners()", async (t) => {
|
|
798
797
|
await t.step("wrong variables in path", () => {
|
799
798
|
const federation = createFederation({
|
800
799
|
kv,
|
801
|
-
|
800
|
+
documentLoaderFactory: () => mockDocumentLoader
|
802
801
|
});
|
803
802
|
assertThrows(() => federation.setInboxListeners("/users/inbox"), RouterError);
|
804
803
|
assertThrows(() => federation.setInboxListeners("/users/{identifier}/inbox/{id2}"), RouterError);
|
@@ -809,7 +808,7 @@ test("Federation.setInboxListeners()", async (t) => {
|
|
809
808
|
const authenticatedRequests = [];
|
810
809
|
const federation = createFederation({
|
811
810
|
kv,
|
812
|
-
|
811
|
+
documentLoaderFactory: () => mockDocumentLoader,
|
813
812
|
authenticatedDocumentLoaderFactory(identity) {
|
814
813
|
const docLoader = getAuthenticatedDocumentLoader(identity);
|
815
814
|
return (url) => {
|
@@ -919,7 +918,7 @@ test("Federation.setInboxListeners()", async (t) => {
|
|
919
918
|
await t.step("onError()", async () => {
|
920
919
|
const federation = createFederation({
|
921
920
|
kv,
|
922
|
-
|
921
|
+
documentLoaderFactory: () => mockDocumentLoader,
|
923
922
|
authenticatedDocumentLoaderFactory(identity) {
|
924
923
|
const docLoader = getAuthenticatedDocumentLoader(identity);
|
925
924
|
return (url) => {
|
@@ -959,7 +958,7 @@ test("Federation.setInboxDispatcher()", async (t) => {
|
|
959
958
|
await t.step("path match", () => {
|
960
959
|
const federation = createFederation({
|
961
960
|
kv,
|
962
|
-
|
961
|
+
documentLoaderFactory: () => mockDocumentLoader
|
963
962
|
});
|
964
963
|
federation.setInboxListeners("/users/{identifier}/inbox");
|
965
964
|
assertThrows(() => federation.setInboxDispatcher("/users/{identifier}/inbox2", () => ({ items: [] })), RouterError);
|
@@ -967,7 +966,7 @@ test("Federation.setInboxDispatcher()", async (t) => {
|
|
967
966
|
await t.step("path match", () => {
|
968
967
|
const federation = createFederation({
|
969
968
|
kv,
|
970
|
-
|
969
|
+
documentLoaderFactory: () => mockDocumentLoader
|
971
970
|
});
|
972
971
|
federation.setInboxListeners("/users/{identifier}/inbox");
|
973
972
|
federation.setInboxDispatcher("/users/{identifier}/inbox", () => ({ items: [] }));
|
@@ -975,7 +974,7 @@ test("Federation.setInboxDispatcher()", async (t) => {
|
|
975
974
|
await t.step("wrong variables in path", () => {
|
976
975
|
const federation = createFederation({
|
977
976
|
kv,
|
978
|
-
|
977
|
+
documentLoaderFactory: () => mockDocumentLoader
|
979
978
|
});
|
980
979
|
assertThrows(() => federation.setInboxDispatcher("/users/inbox", () => ({ items: [] })), RouterError);
|
981
980
|
assertThrows(() => federation.setInboxDispatcher("/users/{identifier}/inbox/{identifier2}", () => ({ items: [] })), RouterError);
|
package/dist/federation/mod.d.ts
CHANGED
@@ -9,7 +9,7 @@ import "../http-DqSNLFNY.js";
|
|
9
9
|
import "../owner-CQPnQVtf.js";
|
10
10
|
import "../mod-Cxt4Kpf6.js";
|
11
11
|
import "../lookup-3czM5mmU.js";
|
12
|
-
import { 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, ParamsKeyPath, ParseUriResult, RequestContext, RespondWithObjectOptions, RetryContext, RetryPolicy, RouteActivityOptions, Router, RouterError, RouterOptions, RouterRouteResult, SendActivityOptions, SendActivityOptionsForCollection, SenderKeyPair, SharedInboxKeyDispatcher, buildCollectionSynchronizationHeader, createExponentialBackoffPolicy, createFederation, createFederationBuilder, digest, respondWithObject, respondWithObjectIfAcceptable } from "../context-
|
12
|
+
import { 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, ParamsKeyPath, ParseUriResult, RequestContext, RespondWithObjectOptions, RetryContext, RetryPolicy, RouteActivityOptions, Router, RouterError, RouterOptions, RouterRouteResult, SendActivityOptions, SendActivityOptionsForCollection, SenderKeyPair, SharedInboxKeyDispatcher, buildCollectionSynchronizationHeader, createExponentialBackoffPolicy, createFederation, createFederationBuilder, digest, respondWithObject, respondWithObjectIfAcceptable } from "../context-3ICnZJKt.js";
|
13
13
|
import { InProcessMessageQueue, InProcessMessageQueueOptions, MessageQueue, MessageQueueEnqueueOptions, MessageQueueListenOptions, ParallelMessageQueue } from "../mq-CRGm1e_F.js";
|
14
14
|
import "../mod-g0xFzAP9.js";
|
15
15
|
export { 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, InProcessMessageQueue, InProcessMessageQueueOptions, InboxContext, InboxErrorHandler, InboxListener, InboxListenerSetters, KvKey, KvStore, KvStoreSetOptions, MemoryKvStore, Message, MessageQueue, MessageQueueEnqueueOptions, MessageQueueListenOptions, NodeInfoDispatcher, ObjectAuthorizePredicate, ObjectCallbackSetters, ObjectDispatcher, OutboxErrorHandler, PageItems, ParallelMessageQueue, ParamsKeyPath, ParseUriResult, RequestContext, RespondWithObjectOptions, RetryContext, RetryPolicy, RouteActivityOptions, Router, RouterError, RouterOptions, RouterRouteResult, SendActivityOptions, SendActivityOptionsForCollection, SenderKeyPair, SharedInboxKeyDispatcher, buildCollectionSynchronizationHeader, createExponentialBackoffPolicy, createFederation, createFederationBuilder, digest, respondWithObject, respondWithObjectIfAcceptable };
|
package/dist/federation/mod.js
CHANGED
@@ -3,16 +3,16 @@
|
|
3
3
|
import { URLPattern } from "urlpattern-polyfill";
|
4
4
|
|
5
5
|
import "../transformers-Dna8Fg7k.js";
|
6
|
-
import "../docloader-
|
7
|
-
import "../actor-
|
8
|
-
import { Router, RouterError, buildCollectionSynchronizationHeader, createExponentialBackoffPolicy, createFederation, createFederationBuilder, digest, respondWithObject, respondWithObjectIfAcceptable } from "../middleware-
|
9
|
-
import "../lookup-
|
10
|
-
import "../key-
|
11
|
-
import "../http-
|
12
|
-
import "../proof-
|
6
|
+
import "../docloader-DwdOQnHI.js";
|
7
|
+
import "../actor-B16nziQs.js";
|
8
|
+
import { Router, RouterError, buildCollectionSynchronizationHeader, createExponentialBackoffPolicy, createFederation, createFederationBuilder, digest, respondWithObject, respondWithObjectIfAcceptable } from "../middleware-owulyLCk.js";
|
9
|
+
import "../lookup-BjPjagJv.js";
|
10
|
+
import "../key-DZ46WqGg.js";
|
11
|
+
import "../http-CkThXm40.js";
|
12
|
+
import "../proof-CIEGsOhH.js";
|
13
13
|
import { InProcessMessageQueue, MemoryKvStore, ParallelMessageQueue } from "../federation-CMX7WzeL.js";
|
14
|
-
import "../types-
|
15
|
-
import "../authdocloader-
|
16
|
-
import "../vocab-
|
14
|
+
import "../types-DHR7i5kl.js";
|
15
|
+
import "../authdocloader-BrY6MDsl.js";
|
16
|
+
import "../vocab-L0DaSC6q.js";
|
17
17
|
|
18
18
|
export { InProcessMessageQueue, MemoryKvStore, ParallelMessageQueue, Router, RouterError, buildCollectionSynchronizationHeader, createExponentialBackoffPolicy, createFederation, createFederationBuilder, digest, respondWithObject, respondWithObjectIfAcceptable };
|
@@ -3,12 +3,12 @@
|
|
3
3
|
import { URLPattern } from "urlpattern-polyfill";
|
4
4
|
globalThis.addEventListener = () => {};
|
5
5
|
|
6
|
-
import "../type-
|
6
|
+
import "../type-DpdbXymL.js";
|
7
7
|
import { assertEquals } from "../assert_equals-DSbWqCm3.js";
|
8
8
|
import { assert } from "../assert-MZs1qjMx.js";
|
9
9
|
import "../assert_instance_of-DHz7EHNU.js";
|
10
|
-
import "../lookup-
|
11
|
-
import { test } from "../testing-
|
10
|
+
import "../lookup-DauD87tC.js";
|
11
|
+
import { test } from "../testing-BIWxL9f6.js";
|
12
12
|
import { assertGreater, assertGreaterOrEqual } from "../std__assert-X-_kMxKM.js";
|
13
13
|
import { assertFalse } from "../assert_rejects-DiIiJbZn.js";
|
14
14
|
import "../assert_is_error-BPGph1Jx.js";
|
@@ -3,11 +3,11 @@
|
|
3
3
|
import { URLPattern } from "urlpattern-polyfill";
|
4
4
|
globalThis.addEventListener = () => {};
|
5
5
|
|
6
|
-
import "../type-
|
6
|
+
import "../type-DpdbXymL.js";
|
7
7
|
import { AssertionError, assertEquals } from "../assert_equals-DSbWqCm3.js";
|
8
|
-
import "../lookup-
|
8
|
+
import "../lookup-DauD87tC.js";
|
9
9
|
import { createExponentialBackoffPolicy } from "../retry-D4GJ670a.js";
|
10
|
-
import { test } from "../testing-
|
10
|
+
import { test } from "../testing-BIWxL9f6.js";
|
11
11
|
import { assertNotEquals } from "../assert_not_equals-f3m3epl3.js";
|
12
12
|
|
13
13
|
//#region src/federation/retry.test.ts
|