@fedify/fedify 1.9.0-pr.428.1588 → 1.9.0-pr.431.1597
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-CHOM_AN3.d.cts +128 -0
- package/dist/actor-CfaqWvJb.cjs +37783 -0
- package/dist/{actor-CdM_sJLC.js → actor-Detmisdi.js} +190 -190
- package/dist/{actor-ByOSf9n9.js → actor-Dw7av4Zk.js} +1 -1
- package/dist/{authdocloader-VVd0U8Qg.js → authdocloader-5UJ5Gme-.js} +6 -6
- package/dist/authdocloader-BVYv0Ct8.cjs +58 -0
- package/dist/{authdocloader-CfP6lfxM.js → authdocloader-ZlLoXSxM.js} +3 -3
- package/dist/{builder-mfXmda-W.js → builder-BbKfqPmR.js} +4 -4
- package/dist/chunk-DqRYRqnO.cjs +34 -0
- package/dist/{client-DB8N2RwI.js → client-DgRjF0ha.js} +1 -1
- package/dist/client-DjT_tegg.d.cts +294 -0
- package/dist/compat/mod.cjs +10 -0
- package/dist/compat/mod.d.cts +13 -0
- package/dist/compat/mod.js +5 -5
- package/dist/compat/transformers.test.js +16 -16
- package/dist/compat-DmDDELst.cjs +4 -0
- package/dist/compat-nxUqe4Z-.js +4 -0
- package/dist/context-KXVF2AhH.d.cts +2261 -0
- package/dist/{docloader-XJzCMWY-.js → docloader-BKf9RWX4.js} +4 -4
- package/dist/docloader-D-MrRyHl.d.cts +219 -0
- package/dist/docloader-eqgyMp7h.cjs +4682 -0
- package/dist/{esm-BVYQVacR.js → esm-B_ZjJ1sB.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 +18 -18
- package/dist/federation/mod.cjs +29 -0
- package/dist/federation/mod.d.cts +13 -0
- package/dist/federation/mod.js +15 -15
- 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/{federation-CMX7WzeL.js → federation-D1U8YY9t.js} +3 -3
- package/dist/federation-H2_En3j5.cjs +244 -0
- package/dist/http-B_zBcsai.d.cts +253 -0
- package/dist/{http-B_bBrm6N.js → http-C5XLveZw.js} +2 -2
- package/dist/{http-DYB4M8Pr.js → http-CwlUFNG4.js} +6 -6
- package/dist/http-_vjuGcXn.cjs +826 -0
- package/dist/{inbox-B4k2JQpE.js → inbox-sVXiVBbT.js} +1 -1
- package/dist/key-19P2dWvf.cjs +290 -0
- package/dist/{key-BdBFUTr5.js → key-BCWvPOkD.js} +5 -5
- package/dist/key-CsQ7J8-m.js +10 -0
- package/dist/key-Dt7qJaQT.cjs +10 -0
- package/dist/{key-feGm-IP3.js → key-Jrnr66vx.js} +2 -2
- package/dist/{key-BcVEPl--.js → key-lpATOAE4.js} +3 -3
- package/dist/{keycache-b7FYgzB9.js → keycache-ogQInQck.js} +1 -1
- package/dist/{keys-B7uX1KoX.js → keys-DcGsKtHW.js} +1 -1
- package/dist/kv-63Cil1MD.d.cts +81 -0
- package/dist/{ld-DJCemZO2.js → ld-BSE4jnyK.js} +2 -2
- package/dist/lookup-D96ipStp.cjs +137 -0
- package/dist/{lookup-CIsbr_Qi.js → lookup-D_-F1hLw.js} +4 -4
- package/dist/{lookup-CXaZBmuy.js → lookup-DdxOle8f.js} +1 -1
- package/dist/middleware-B0f850Ei.cjs +17 -0
- package/dist/middleware-B2DFqtJ-.cjs +4240 -0
- package/dist/middleware-COHAbwGs.js +17 -0
- package/dist/{middleware-D5JRdsEc.js → middleware-CuTcPjfP.js} +13 -13
- package/dist/middleware-Dt7C7qpw.js +26 -0
- package/dist/{middleware-e_Gw7sQy.js → middleware-T_y4Bnvw.js} +14 -14
- package/dist/mod-C2tOeRkN.d.cts +1 -0
- package/dist/mod-C3CGxYoF.d.cts +102 -0
- package/dist/mod-COw_caPC.d.cts +266 -0
- package/dist/mod-FZd39qVq.d.cts +1 -0
- package/dist/mod-NKH_G-IY.d.cts +289 -0
- package/dist/mod-YfAcrVbP.d.cts +80 -0
- package/dist/mod-jQ4OODsl.d.cts +113 -0
- package/dist/mod.cjs +152 -0
- package/dist/mod.d.cts +17 -0
- package/dist/mod.js +20 -20
- package/dist/mq-B7R1Q-M5.d.cts +140 -0
- package/dist/nodeinfo/client.test.js +5 -5
- package/dist/nodeinfo/handler.test.js +16 -16
- package/dist/nodeinfo/mod.cjs +13 -0
- package/dist/nodeinfo/mod.d.cts +5 -0
- package/dist/nodeinfo/mod.js +6 -6
- package/dist/nodeinfo/semver.test.js +3 -3
- package/dist/nodeinfo/types.test.js +3 -3
- package/dist/nodeinfo-Co9lJrWl.cjs +4 -0
- package/dist/nodeinfo-DfycQ8Wf.js +4 -0
- package/dist/owner-C9Ry0TOI.d.cts +67 -0
- package/dist/{owner-i9FkgZwa.js → owner-DJtc8evi.js} +2 -2
- package/dist/{proof-Bvtdd-Ul.js → proof-9OMp0o4n.js} +2 -2
- package/dist/{proof-DKGUTtBt.js → proof-BuPk23Er.js} +6 -6
- package/dist/proof-CRHppbRk.cjs +673 -0
- 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.cjs +25 -0
- package/dist/runtime/mod.d.cts +6 -0
- package/dist/runtime/mod.js +10 -10
- package/dist/runtime/multibase/multibase.test.js +3 -3
- package/dist/runtime/url.test.js +3 -3
- package/dist/runtime-C58AJWSv.cjs +4 -0
- package/dist/runtime-DPYEDf-o.js +4 -0
- package/dist/{send-Cuw-wTCx.js → send-cXerEJm9.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 +30 -0
- package/dist/sig/mod.d.cts +8 -0
- package/dist/sig/mod.js +10 -10
- package/dist/sig/owner.test.js +7 -7
- package/dist/sig/proof.test.js +7 -7
- package/dist/sig-ByHXzqUi.cjs +4 -0
- package/dist/sig-Cj3tk-ig.js +4 -0
- package/dist/testing/docloader.test.js +3 -3
- package/dist/testing/mod.js +3 -3
- package/dist/{testing-DUFWSgSt.js → testing-BX6IA3LR.js} +2 -2
- package/dist/{transformers-Dna8Fg7k.js → transformers-BFT6d7J5.js} +3 -3
- package/dist/transformers-CoBS-oFG.cjs +116 -0
- package/dist/{type-DDwsy8fI.js → type-DF9yoIpt.js} +186 -186
- package/dist/types-DcKQIzdO.cjs +488 -0
- package/dist/{types-CuvNqe2X.js → types-Q17QxOOC.js} +4 -4
- package/dist/vocab/actor.test.js +5 -5
- package/dist/vocab/lookup.test.js +4 -4
- package/dist/vocab/mod.cjs +87 -0
- package/dist/vocab/mod.d.cts +6 -0
- package/dist/vocab/mod.js +7 -7
- package/dist/vocab/type.test.js +3 -3
- package/dist/vocab/vocab.test.js +4 -4
- package/dist/{vocab-CEXwobaS.js → vocab-BUc_4ZsW.js} +6 -6
- package/dist/vocab-BzGg7ltX.d.cts +14629 -0
- package/dist/vocab-Du8FV6H1.cjs +282 -0
- package/dist/webfinger/handler.test.js +16 -16
- package/dist/webfinger/lookup.test.js +4 -4
- package/dist/webfinger/mod.cjs +9 -0
- package/dist/webfinger/mod.d.cts +4 -0
- package/dist/webfinger/mod.js +6 -6
- package/dist/webfinger-BjOEdFPs.cjs +4 -0
- package/dist/webfinger-De_bU0iE.js +4 -0
- package/dist/x/cfworkers.cjs +100 -0
- package/dist/x/cfworkers.d.cts +59 -0
- package/dist/x/cfworkers.js +3 -3
- package/dist/x/cfworkers.test.js +3 -3
- package/dist/x/hono.cjs +61 -0
- package/dist/x/hono.d.cts +54 -0
- package/dist/x/hono.js +3 -3
- package/dist/x/sveltekit.cjs +69 -0
- package/dist/x/sveltekit.d.cts +46 -0
- package/dist/x/sveltekit.js +3 -3
- package/package.json +68 -12
- package/dist/compat-Bb5myD13.js +0 -4
- package/dist/key-0hFXQUQz.js +0 -10
- package/dist/middleware-BhQdOVAF.js +0 -17
- package/dist/middleware-DVy3ms0C.js +0 -26
- package/dist/nodeinfo-CyEbLjHs.js +0 -4
- package/dist/runtime-BSkOVUWM.js +0 -4
- package/dist/sig-BXJO--F9.js +0 -4
- package/dist/webfinger-C3GIyXIg.js +0 -4
@@ -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-DF9yoIpt.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-DF9yoIpt.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-DdxOle8f.js";
|
13
|
+
import "../inbox-sVXiVBbT.js";
|
14
|
+
import { createFederationBuilder } from "../builder-BbKfqPmR.js";
|
15
|
+
import { test } from "../testing-BX6IA3LR.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-DF9yoIpt.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-DdxOle8f.js";
|
11
11
|
import { buildCollectionSynchronizationHeader, digest } from "../collection-CSzG2j1P.js";
|
12
|
-
import { test } from "../testing-
|
12
|
+
import { test } from "../testing-BX6IA3LR.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-DF9yoIpt.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-CuTcPjfP.js";
|
12
12
|
import "../semver-dArNLkR9.js";
|
13
|
-
import "../client-
|
14
|
-
import "../lookup-
|
13
|
+
import "../client-DgRjF0ha.js";
|
14
|
+
import "../lookup-DdxOle8f.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-Dw7av4Zk.js";
|
17
|
+
import "../key-Jrnr66vx.js";
|
18
|
+
import { signRequest } from "../http-C5XLveZw.js";
|
19
|
+
import "../authdocloader-ZlLoXSxM.js";
|
20
|
+
import "../ld-BSE4jnyK.js";
|
21
|
+
import "../owner-DJtc8evi.js";
|
22
|
+
import "../proof-9OMp0o4n.js";
|
23
|
+
import { InboxListenerSet } from "../inbox-sVXiVBbT.js";
|
24
|
+
import "../builder-BbKfqPmR.js";
|
25
25
|
import "../collection-CSzG2j1P.js";
|
26
|
-
import "../keycache-
|
26
|
+
import "../keycache-ogQInQck.js";
|
27
27
|
import "../retry-D4GJ670a.js";
|
28
|
-
import "../send-
|
29
|
-
import { createInboxContext, createRequestContext, mockDocumentLoader, test } from "../testing-
|
28
|
+
import "../send-cXerEJm9.js";
|
29
|
+
import { createInboxContext, createRequestContext, mockDocumentLoader, test } from "../testing-BX6IA3LR.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-DcGsKtHW.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-DF9yoIpt.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-DdxOle8f.js";
|
9
|
+
import { InboxListenerSet } from "../inbox-sVXiVBbT.js";
|
10
|
+
import { test } from "../testing-BX6IA3LR.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-DF9yoIpt.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-DdxOle8f.js";
|
12
|
+
import { KvKeyCache } from "../keycache-ogQInQck.js";
|
13
|
+
import { test } from "../testing-BX6IA3LR.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-DF9yoIpt.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-DdxOle8f.js";
|
12
|
+
import { test } from "../testing-BX6IA3LR.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, FetchError, Invite, Multikey, Note, Object as Object$1, Offer, Person, fetchDocumentLoader, getTypeId } from "../type-
|
6
|
+
import { Activity, Announce, Create, FetchError, Invite, Multikey, Note, Object as Object$1, Offer, Person, fetchDocumentLoader, getTypeId } from "../type-DF9yoIpt.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-CuTcPjfP.js";
|
12
12
|
import "../semver-dArNLkR9.js";
|
13
|
-
import "../client-
|
14
|
-
import { RouterError, lookupObject } from "../lookup-
|
13
|
+
import "../client-DgRjF0ha.js";
|
14
|
+
import { RouterError, lookupObject } from "../lookup-DdxOle8f.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-Dw7av4Zk.js";
|
17
|
+
import "../key-Jrnr66vx.js";
|
18
|
+
import { signRequest, verifyRequest } from "../http-C5XLveZw.js";
|
19
|
+
import { getAuthenticatedDocumentLoader } from "../authdocloader-ZlLoXSxM.js";
|
20
|
+
import { detachSignature, signJsonLd, verifyJsonLd } from "../ld-BSE4jnyK.js";
|
21
|
+
import { doesActorOwnKey } from "../owner-DJtc8evi.js";
|
22
|
+
import { signObject, verifyObject } from "../proof-9OMp0o4n.js";
|
23
|
+
import "../inbox-sVXiVBbT.js";
|
24
|
+
import "../builder-BbKfqPmR.js";
|
25
25
|
import "../collection-CSzG2j1P.js";
|
26
|
-
import "../keycache-
|
26
|
+
import "../keycache-ogQInQck.js";
|
27
27
|
import "../retry-D4GJ670a.js";
|
28
|
-
import "../send-
|
29
|
-
import { mockDocumentLoader, test } from "../testing-
|
28
|
+
import "../send-cXerEJm9.js";
|
29
|
+
import { mockDocumentLoader, test } from "../testing-BX6IA3LR.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-DcGsKtHW.js";
|
36
|
+
import { esm_default } from "../esm-B_ZjJ1sB.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"];
|
@@ -0,0 +1,29 @@
|
|
1
|
+
|
2
|
+
const { Temporal } = require("@js-temporal/polyfill");
|
3
|
+
const { URLPattern } = require("urlpattern-polyfill");
|
4
|
+
|
5
|
+
require('../transformers-CoBS-oFG.cjs');
|
6
|
+
require('../docloader-eqgyMp7h.cjs');
|
7
|
+
require('../actor-CfaqWvJb.cjs');
|
8
|
+
const require_middleware = require('../middleware-B2DFqtJ-.cjs');
|
9
|
+
require('../lookup-D96ipStp.cjs');
|
10
|
+
require('../key-19P2dWvf.cjs');
|
11
|
+
require('../http-_vjuGcXn.cjs');
|
12
|
+
require('../proof-CRHppbRk.cjs');
|
13
|
+
const require_federation = require('../federation-H2_En3j5.cjs');
|
14
|
+
require('../types-DcKQIzdO.cjs');
|
15
|
+
require('../authdocloader-BVYv0Ct8.cjs');
|
16
|
+
require('../vocab-Du8FV6H1.cjs');
|
17
|
+
|
18
|
+
exports.InProcessMessageQueue = require_federation.InProcessMessageQueue;
|
19
|
+
exports.MemoryKvStore = require_federation.MemoryKvStore;
|
20
|
+
exports.ParallelMessageQueue = require_federation.ParallelMessageQueue;
|
21
|
+
exports.Router = require_middleware.Router;
|
22
|
+
exports.RouterError = require_middleware.RouterError;
|
23
|
+
exports.buildCollectionSynchronizationHeader = require_middleware.buildCollectionSynchronizationHeader;
|
24
|
+
exports.createExponentialBackoffPolicy = require_middleware.createExponentialBackoffPolicy;
|
25
|
+
exports.createFederation = require_middleware.createFederation;
|
26
|
+
exports.createFederationBuilder = require_middleware.createFederationBuilder;
|
27
|
+
exports.digest = require_middleware.digest;
|
28
|
+
exports.respondWithObject = require_middleware.respondWithObject;
|
29
|
+
exports.respondWithObjectIfAcceptable = require_middleware.respondWithObjectIfAcceptable;
|
@@ -0,0 +1,13 @@
|
|
1
|
+
import { KvKey, KvStore, KvStoreSetOptions, MemoryKvStore } from "../kv-63Cil1MD.cjs";
|
2
|
+
import "../docloader-D-MrRyHl.cjs";
|
3
|
+
import "../client-DjT_tegg.cjs";
|
4
|
+
import "../vocab-BzGg7ltX.cjs";
|
5
|
+
import "../actor-CHOM_AN3.cjs";
|
6
|
+
import "../http-B_zBcsai.cjs";
|
7
|
+
import "../owner-C9Ry0TOI.cjs";
|
8
|
+
import "../mod-NKH_G-IY.cjs";
|
9
|
+
import "../mod-jQ4OODsl.cjs";
|
10
|
+
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, WebFingerLinksDispatcher, buildCollectionSynchronizationHeader, createExponentialBackoffPolicy, createFederation, createFederationBuilder, digest, respondWithObject, respondWithObjectIfAcceptable } from "../context-KXVF2AhH.cjs";
|
11
|
+
import { InProcessMessageQueue, InProcessMessageQueueOptions, MessageQueue, MessageQueueEnqueueOptions, MessageQueueListenOptions, ParallelMessageQueue } from "../mq-B7R1Q-M5.cjs";
|
12
|
+
import "../mod-C2tOeRkN.cjs";
|
13
|
+
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, WebFingerLinksDispatcher, buildCollectionSynchronizationHeader, createExponentialBackoffPolicy, createFederation, createFederationBuilder, digest, respondWithObject, respondWithObjectIfAcceptable };
|
package/dist/federation/mod.js
CHANGED
@@ -1,18 +1,18 @@
|
|
1
1
|
|
2
|
-
|
3
|
-
|
4
|
-
|
5
|
-
import "../transformers-
|
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-
|
13
|
-
import { InProcessMessageQueue, MemoryKvStore, ParallelMessageQueue } from "../federation-
|
14
|
-
import "../types-
|
15
|
-
import "../authdocloader-
|
16
|
-
import "../vocab-
|
2
|
+
import { Temporal } from "@js-temporal/polyfill";
|
3
|
+
import { URLPattern } from "urlpattern-polyfill";
|
4
|
+
|
5
|
+
import "../transformers-BFT6d7J5.js";
|
6
|
+
import "../docloader-BKf9RWX4.js";
|
7
|
+
import "../actor-Detmisdi.js";
|
8
|
+
import { Router, RouterError, buildCollectionSynchronizationHeader, createExponentialBackoffPolicy, createFederation, createFederationBuilder, digest, respondWithObject, respondWithObjectIfAcceptable } from "../middleware-T_y4Bnvw.js";
|
9
|
+
import "../lookup-D_-F1hLw.js";
|
10
|
+
import "../key-BCWvPOkD.js";
|
11
|
+
import "../http-CwlUFNG4.js";
|
12
|
+
import "../proof-BuPk23Er.js";
|
13
|
+
import { InProcessMessageQueue, MemoryKvStore, ParallelMessageQueue } from "../federation-D1U8YY9t.js";
|
14
|
+
import "../types-Q17QxOOC.js";
|
15
|
+
import "../authdocloader-5UJ5Gme-.js";
|
16
|
+
import "../vocab-BUc_4ZsW.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-DF9yoIpt.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-DdxOle8f.js";
|
11
|
+
import { test } from "../testing-BX6IA3LR.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-DF9yoIpt.js";
|
7
7
|
import { AssertionError, assertEquals } from "../assert_equals-DSbWqCm3.js";
|
8
|
-
import "../lookup-
|
8
|
+
import "../lookup-DdxOle8f.js";
|
9
9
|
import { createExponentialBackoffPolicy } from "../retry-D4GJ670a.js";
|
10
|
-
import { test } from "../testing-
|
10
|
+
import { test } from "../testing-BX6IA3LR.js";
|
11
11
|
import { assertNotEquals } from "../assert_not_equals-f3m3epl3.js";
|
12
12
|
|
13
13
|
//#region src/federation/retry.test.ts
|
@@ -3,12 +3,12 @@
|
|
3
3
|
import { URLPattern } from "urlpattern-polyfill";
|
4
4
|
globalThis.addEventListener = () => {};
|
5
5
|
|
6
|
-
import "../type-
|
6
|
+
import "../type-DF9yoIpt.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 { Router, RouterError } from "../lookup-
|
11
|
-
import { test } from "../testing-
|
10
|
+
import { Router, RouterError } from "../lookup-DdxOle8f.js";
|
11
|
+
import { test } from "../testing-BX6IA3LR.js";
|
12
12
|
import "../std__assert-X-_kMxKM.js";
|
13
13
|
import { assertFalse } from "../assert_rejects-DiIiJbZn.js";
|
14
14
|
import "../assert_is_error-BPGph1Jx.js";
|
@@ -3,24 +3,24 @@
|
|
3
3
|
import { URLPattern } from "urlpattern-polyfill";
|
4
4
|
globalThis.addEventListener = () => {};
|
5
5
|
|
6
|
-
import { Activity, Application, Endpoints, Group, Person, Service } from "../type-
|
6
|
+
import { Activity, Application, Endpoints, Group, Person, Service } from "../type-DF9yoIpt.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 "../actor-
|
12
|
-
import "../key-
|
13
|
-
import { verifyRequest } from "../http-
|
14
|
-
import { doesActorOwnKey } from "../owner-
|
15
|
-
import { extractInboxes, sendActivity } from "../send-
|
16
|
-
import { mockDocumentLoader, test } from "../testing-
|
10
|
+
import "../lookup-DdxOle8f.js";
|
11
|
+
import "../actor-Dw7av4Zk.js";
|
12
|
+
import "../key-Jrnr66vx.js";
|
13
|
+
import { verifyRequest } from "../http-C5XLveZw.js";
|
14
|
+
import { doesActorOwnKey } from "../owner-DJtc8evi.js";
|
15
|
+
import { extractInboxes, sendActivity } from "../send-cXerEJm9.js";
|
16
|
+
import { mockDocumentLoader, test } from "../testing-BX6IA3LR.js";
|
17
17
|
import "../std__assert-X-_kMxKM.js";
|
18
18
|
import { assertFalse, assertRejects } from "../assert_rejects-DiIiJbZn.js";
|
19
19
|
import "../assert_is_error-BPGph1Jx.js";
|
20
20
|
import { assertNotEquals } from "../assert_not_equals-f3m3epl3.js";
|
21
21
|
import "../assert_throws-BOO88avQ.js";
|
22
|
-
import { ed25519Multikey, ed25519PrivateKey, rsaPrivateKey2, rsaPublicKey2 } from "../keys-
|
23
|
-
import { esm_default } from "../esm-
|
22
|
+
import { ed25519Multikey, ed25519PrivateKey, rsaPrivateKey2, rsaPublicKey2 } from "../keys-DcGsKtHW.js";
|
23
|
+
import { esm_default } from "../esm-B_ZjJ1sB.js";
|
24
24
|
|
25
25
|
//#region src/federation/send.test.ts
|
26
26
|
test("extractInboxes()", () => {
|
@@ -1,7 +1,7 @@
|
|
1
1
|
|
2
|
-
|
3
|
-
|
4
|
-
|
2
|
+
import { Temporal } from "@js-temporal/polyfill";
|
3
|
+
import { URLPattern } from "urlpattern-polyfill";
|
4
|
+
|
5
5
|
import { isEqual } from "es-toolkit";
|
6
6
|
|
7
7
|
//#region src/federation/kv.ts
|
@@ -0,0 +1,244 @@
|
|
1
|
+
|
2
|
+
const { Temporal } = require("@js-temporal/polyfill");
|
3
|
+
const { URLPattern } = require("urlpattern-polyfill");
|
4
|
+
|
5
|
+
const require_chunk = require('./chunk-DqRYRqnO.cjs');
|
6
|
+
const es_toolkit = require_chunk.__toESM(require("es-toolkit"));
|
7
|
+
|
8
|
+
//#region src/federation/kv.ts
|
9
|
+
/**
|
10
|
+
* A key–value store that stores values in memory.
|
11
|
+
* Do not use this in production as it does not persist values.
|
12
|
+
*
|
13
|
+
* @since 0.5.0
|
14
|
+
*/
|
15
|
+
var MemoryKvStore = class {
|
16
|
+
#values = {};
|
17
|
+
#encodeKey(key) {
|
18
|
+
return JSON.stringify(key);
|
19
|
+
}
|
20
|
+
/**
|
21
|
+
* {@inheritDoc KvStore.get}
|
22
|
+
*/
|
23
|
+
get(key) {
|
24
|
+
const encodedKey = this.#encodeKey(key);
|
25
|
+
const entry = this.#values[encodedKey];
|
26
|
+
if (entry == null) return Promise.resolve(void 0);
|
27
|
+
const [value, expiration] = entry;
|
28
|
+
if (expiration != null && Temporal.Now.instant().until(expiration).sign < 0) {
|
29
|
+
delete this.#values[encodedKey];
|
30
|
+
return Promise.resolve(void 0);
|
31
|
+
}
|
32
|
+
return Promise.resolve(value);
|
33
|
+
}
|
34
|
+
/**
|
35
|
+
* {@inheritDoc KvStore.set}
|
36
|
+
*/
|
37
|
+
set(key, value, options) {
|
38
|
+
const encodedKey = this.#encodeKey(key);
|
39
|
+
const expiration = options?.ttl == null ? null : Temporal.Now.instant().add(options.ttl.round({ largestUnit: "hour" }));
|
40
|
+
this.#values[encodedKey] = [value, expiration];
|
41
|
+
return Promise.resolve();
|
42
|
+
}
|
43
|
+
/**
|
44
|
+
* {@inheritDoc KvStore.delete}
|
45
|
+
*/
|
46
|
+
delete(key) {
|
47
|
+
const encodedKey = this.#encodeKey(key);
|
48
|
+
delete this.#values[encodedKey];
|
49
|
+
return Promise.resolve();
|
50
|
+
}
|
51
|
+
/**
|
52
|
+
* {@inheritDoc KvStore.cas}
|
53
|
+
*/
|
54
|
+
cas(key, expectedValue, newValue, options) {
|
55
|
+
const encodedKey = this.#encodeKey(key);
|
56
|
+
const entry = this.#values[encodedKey];
|
57
|
+
let currentValue;
|
58
|
+
if (entry == null) currentValue = void 0;
|
59
|
+
else {
|
60
|
+
const [value, expiration$1] = entry;
|
61
|
+
if (expiration$1 != null && Temporal.Now.instant().until(expiration$1).sign < 0) {
|
62
|
+
delete this.#values[encodedKey];
|
63
|
+
currentValue = void 0;
|
64
|
+
} else currentValue = value;
|
65
|
+
}
|
66
|
+
if (!(0, es_toolkit.isEqual)(currentValue, expectedValue)) return Promise.resolve(false);
|
67
|
+
const expiration = options?.ttl == null ? null : Temporal.Now.instant().add(options.ttl.round({ largestUnit: "hour" }));
|
68
|
+
this.#values[encodedKey] = [newValue, expiration];
|
69
|
+
return Promise.resolve(true);
|
70
|
+
}
|
71
|
+
};
|
72
|
+
|
73
|
+
//#endregion
|
74
|
+
//#region src/federation/mq.ts
|
75
|
+
/**
|
76
|
+
* A message queue that processes messages in the same process.
|
77
|
+
* Do not use this in production as it does neither persist messages nor
|
78
|
+
* distribute them across multiple processes.
|
79
|
+
*
|
80
|
+
* @since 0.5.0
|
81
|
+
*/
|
82
|
+
var InProcessMessageQueue = class {
|
83
|
+
#messages;
|
84
|
+
#monitors;
|
85
|
+
#pollIntervalMs;
|
86
|
+
/**
|
87
|
+
* In-process message queue does not provide native retry mechanisms.
|
88
|
+
* @since 1.7.0
|
89
|
+
*/
|
90
|
+
nativeRetrial = false;
|
91
|
+
/**
|
92
|
+
* Constructs a new {@link InProcessMessageQueue} with the given options.
|
93
|
+
* @param options Additional options for the in-process message queue.
|
94
|
+
*/
|
95
|
+
constructor(options = {}) {
|
96
|
+
this.#messages = [];
|
97
|
+
this.#monitors = {};
|
98
|
+
this.#pollIntervalMs = Temporal.Duration.from(options.pollInterval ?? { seconds: 5 }).total("millisecond");
|
99
|
+
}
|
100
|
+
enqueue(message, options) {
|
101
|
+
const delay = options?.delay == null ? 0 : Math.max(options.delay.total("millisecond"), 0);
|
102
|
+
if (delay > 0) {
|
103
|
+
setTimeout(() => this.enqueue(message, {
|
104
|
+
...options,
|
105
|
+
delay: void 0
|
106
|
+
}), delay);
|
107
|
+
return Promise.resolve();
|
108
|
+
}
|
109
|
+
this.#messages.push(message);
|
110
|
+
for (const monitorId in this.#monitors) this.#monitors[monitorId]();
|
111
|
+
return Promise.resolve();
|
112
|
+
}
|
113
|
+
enqueueMany(messages, options) {
|
114
|
+
if (messages.length === 0) return Promise.resolve();
|
115
|
+
const delay = options?.delay == null ? 0 : Math.max(options.delay.total("millisecond"), 0);
|
116
|
+
if (delay > 0) {
|
117
|
+
setTimeout(() => this.enqueueMany(messages, {
|
118
|
+
...options,
|
119
|
+
delay: void 0
|
120
|
+
}), delay);
|
121
|
+
return Promise.resolve();
|
122
|
+
}
|
123
|
+
this.#messages.push(...messages);
|
124
|
+
for (const monitorId in this.#monitors) this.#monitors[monitorId]();
|
125
|
+
return Promise.resolve();
|
126
|
+
}
|
127
|
+
async listen(handler, options = {}) {
|
128
|
+
const signal = options.signal;
|
129
|
+
while (signal == null || !signal.aborted) {
|
130
|
+
while (this.#messages.length > 0) {
|
131
|
+
const message = this.#messages.shift();
|
132
|
+
await handler(message);
|
133
|
+
}
|
134
|
+
await this.#wait(this.#pollIntervalMs, signal);
|
135
|
+
}
|
136
|
+
}
|
137
|
+
#wait(ms, signal) {
|
138
|
+
let timer = null;
|
139
|
+
return Promise.any([new Promise((resolve) => {
|
140
|
+
signal?.addEventListener("abort", () => {
|
141
|
+
if (timer != null) clearTimeout(timer);
|
142
|
+
resolve();
|
143
|
+
}, { once: true });
|
144
|
+
const monitorId = crypto.randomUUID();
|
145
|
+
this.#monitors[monitorId] = () => {
|
146
|
+
delete this.#monitors[monitorId];
|
147
|
+
if (timer != null) clearTimeout(timer);
|
148
|
+
resolve();
|
149
|
+
};
|
150
|
+
}), new Promise((resolve) => timer = setTimeout(resolve, ms))]);
|
151
|
+
}
|
152
|
+
};
|
153
|
+
/**
|
154
|
+
* A message queue that processes messages in parallel. It takes another
|
155
|
+
* {@link MessageQueue}, and processes messages in parallel up to a certain
|
156
|
+
* number of workers.
|
157
|
+
*
|
158
|
+
* Actually, it's rather a decorator than a queue itself.
|
159
|
+
*
|
160
|
+
* Note that the workers do not run in truly parallel, in the sense that they
|
161
|
+
* are not running in separate threads or processes. They are running in the
|
162
|
+
* same process, but are scheduled to run in parallel. Hence, this is useful
|
163
|
+
* for I/O-bound tasks, but not for CPU-bound tasks, which is okay for Fedify's
|
164
|
+
* workloads.
|
165
|
+
*
|
166
|
+
* @since 1.0.0
|
167
|
+
*/
|
168
|
+
var ParallelMessageQueue = class ParallelMessageQueue {
|
169
|
+
queue;
|
170
|
+
workers;
|
171
|
+
/**
|
172
|
+
* Inherits the native retry capability from the wrapped queue.
|
173
|
+
* @since 1.7.0
|
174
|
+
*/
|
175
|
+
nativeRetrial;
|
176
|
+
/**
|
177
|
+
* Constructs a new {@link ParallelMessageQueue} with the given queue and
|
178
|
+
* number of workers.
|
179
|
+
* @param queue The message queue to use under the hood. Note that
|
180
|
+
* {@link ParallelMessageQueue} cannot be nested.
|
181
|
+
* @param workers The number of workers to process messages in parallel.
|
182
|
+
* @throws {TypeError} If the given queue is an instance of
|
183
|
+
* {@link ParallelMessageQueue}.
|
184
|
+
*/
|
185
|
+
constructor(queue, workers) {
|
186
|
+
if (queue instanceof ParallelMessageQueue) throw new TypeError("Cannot nest ParallelMessageQueue.");
|
187
|
+
this.queue = queue;
|
188
|
+
this.workers = workers;
|
189
|
+
this.nativeRetrial = queue.nativeRetrial;
|
190
|
+
}
|
191
|
+
enqueue(message, options) {
|
192
|
+
return this.queue.enqueue(message, options);
|
193
|
+
}
|
194
|
+
async enqueueMany(messages, options) {
|
195
|
+
if (this.queue.enqueueMany == null) {
|
196
|
+
const results = await Promise.allSettled(messages.map((message) => this.queue.enqueue(message, options)));
|
197
|
+
const errors = results.filter((r) => r.status === "rejected").map((r) => r.reason);
|
198
|
+
if (errors.length > 1) throw new AggregateError(errors, "Failed to enqueue messages.");
|
199
|
+
else if (errors.length === 1) throw errors[0];
|
200
|
+
return;
|
201
|
+
}
|
202
|
+
await this.queue.enqueueMany(messages, options);
|
203
|
+
}
|
204
|
+
listen(handler, options = {}) {
|
205
|
+
const workers = /* @__PURE__ */ new Map();
|
206
|
+
return this.queue.listen(async (message) => {
|
207
|
+
while (workers.size >= this.workers) {
|
208
|
+
const consumedId = await Promise.any(workers.values());
|
209
|
+
workers.delete(consumedId);
|
210
|
+
}
|
211
|
+
const workerId = crypto.randomUUID();
|
212
|
+
const promise = this.#work(workerId, handler, message);
|
213
|
+
workers.set(workerId, promise);
|
214
|
+
}, options);
|
215
|
+
}
|
216
|
+
async #work(workerId, handler, message) {
|
217
|
+
await this.#sleep(0);
|
218
|
+
await handler(message);
|
219
|
+
return workerId;
|
220
|
+
}
|
221
|
+
#sleep(ms) {
|
222
|
+
return new Promise((resolve) => setTimeout(resolve, ms));
|
223
|
+
}
|
224
|
+
};
|
225
|
+
|
226
|
+
//#endregion
|
227
|
+
Object.defineProperty(exports, 'InProcessMessageQueue', {
|
228
|
+
enumerable: true,
|
229
|
+
get: function () {
|
230
|
+
return InProcessMessageQueue;
|
231
|
+
}
|
232
|
+
});
|
233
|
+
Object.defineProperty(exports, 'MemoryKvStore', {
|
234
|
+
enumerable: true,
|
235
|
+
get: function () {
|
236
|
+
return MemoryKvStore;
|
237
|
+
}
|
238
|
+
});
|
239
|
+
Object.defineProperty(exports, 'ParallelMessageQueue', {
|
240
|
+
enumerable: true,
|
241
|
+
get: function () {
|
242
|
+
return ParallelMessageQueue;
|
243
|
+
}
|
244
|
+
});
|