@fedify/fedify 2.5.0-dev.2597 → 2.5.0-dev.2614
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/{builder-Da_V_LDj.mjs → builder-B2H8GsyI.mjs} +82 -3
- package/dist/compat/mod.d.cts +1 -1
- package/dist/compat/mod.d.ts +1 -1
- package/dist/compat/transformers.test.mjs +1 -1
- package/dist/{compound-proof-BqqP38Sf.mjs → compound-proof-BavXW-ow.mjs} +2 -2
- package/dist/{context-ByflxsY9.d.cts → context-C1NqcIct.d.cts} +1061 -443
- package/dist/{context-uQUY5fQT.d.ts → context-xrqq4Hrq.d.ts} +1064 -446
- package/dist/{deno-4cGKg59R.mjs → deno-CRXki9-m.mjs} +1 -1
- package/dist/{docloader-BiHD6NSO.mjs → docloader-Ca6i6ddp.mjs} +2 -2
- package/dist/federation/builder.test.mjs +1 -1
- package/dist/federation/compound-fanout.test.mjs +3 -3
- package/dist/federation/handler-compound-proof.test.mjs +3 -3
- package/dist/federation/handler.test.mjs +4 -4
- package/dist/federation/hashlink-media.test.mjs +2 -2
- package/dist/federation/idempotency.test.mjs +2 -2
- package/dist/federation/inbox-actorless.test.mjs +5 -5
- package/dist/federation/inbox-report.test.mjs +220 -5
- package/dist/federation/inbox-view.test.mjs +1 -1
- package/dist/federation/inbox.test.mjs +1 -1
- package/dist/federation/metrics.test.mjs +1 -1
- package/dist/federation/middleware.test.mjs +7 -7
- package/dist/federation/mod.cjs +1 -1
- package/dist/federation/mod.d.cts +3 -3
- package/dist/federation/mod.d.ts +4 -4
- package/dist/federation/mod.js +1 -1
- package/dist/federation/mq.test.mjs +1 -1
- package/dist/federation/outbound-body.test.d.mts +2 -0
- package/dist/federation/outbound-body.test.mjs +149 -0
- package/dist/federation/outbound-capture.test.d.mts +2 -0
- package/dist/federation/outbound-capture.test.mjs +394 -0
- package/dist/federation/outbound-dispatch.test.d.mts +2 -0
- package/dist/federation/outbound-dispatch.test.mjs +368 -0
- package/dist/federation/outbound-document.test.d.mts +2 -0
- package/dist/federation/outbound-document.test.mjs +171 -0
- package/dist/federation/outbound-provenance.test.d.mts +2 -0
- package/dist/federation/outbound-provenance.test.mjs +543 -0
- package/dist/federation/outbound-report.test.d.mts +2 -0
- package/dist/federation/outbound-report.test.mjs +5475 -0
- package/dist/federation/outbound-workers.test.d.mts +2 -0
- package/dist/federation/outbound-workers.test.mjs +64 -0
- package/dist/federation/outbound-workflow.test.d.mts +2 -0
- package/dist/federation/outbound-workflow.test.mjs +154 -0
- package/dist/federation/outgoing-proof.test.mjs +4 -4
- package/dist/federation/portable-actor.test.mjs +3 -3
- package/dist/federation/portable-chain.test.mjs +3 -3
- package/dist/federation/portable-collection.test.mjs +4 -4
- package/dist/federation/portable-delivery.test.mjs +106 -7
- package/dist/federation/portable-gateway-keys.test.mjs +5 -5
- package/dist/federation/portable-inbox.test.mjs +430 -5
- package/dist/federation/portable-parse-uri.test.mjs +1 -1
- package/dist/federation/portable-route-activity.test.mjs +2 -2
- package/dist/federation/portable.test.mjs +3 -3
- package/dist/federation/send.test.mjs +44 -3
- package/dist/federation/tasks/enqueue.test.mjs +1 -1
- package/dist/federation/tasks/tasks.test.mjs +2 -2
- package/dist/federation/temporal.test.mjs +1 -1
- package/dist/federation/webfinger.test.mjs +1 -1
- package/dist/{federation-BKJZEC0O.cjs → federation-DRl81KbJ.cjs} +2358 -405
- package/dist/{http-DQP4rw46.js → http-C2H4DT6t.js} +62 -32
- package/dist/{http-KU7_TLD9.cjs → http-DHSIMipE.cjs} +62 -32
- package/dist/{http-D5n4S1oL.mjs → http-DqOXkYbX.mjs} +64 -34
- package/dist/{inbox-CElAglrC.mjs → inbox-C4iW1g0F.mjs} +90 -3
- package/dist/{inbox-view-BTUuIIf6.mjs → inbox-view-Bu_aSwFJ.mjs} +1 -1
- package/dist/{key-DbLNT-vA.d.ts → key-dwwAg5bA.d.ts} +1 -1
- package/dist/{kv-cache-CFBwLUZr.js → kv-cache-B-x_OrBo.js} +1 -1
- package/dist/{kv-cache-DrQn-ugb.cjs → kv-cache-CHR_BVyM.cjs} +1 -1
- package/dist/{kv-cache-BV55jAE6.mjs → kv-cache-DJsxu9nI.mjs} +1 -1
- package/dist/{ld-CmAQYDWE.mjs → ld-C5JOBBFj.mjs} +2 -2
- package/dist/{ld-Inagww4R.d.ts → ld-o4LnhCYY.d.ts} +2 -2
- package/dist/{metrics-BvV60TwE.mjs → metrics-CTteRnEr.mjs} +1 -1
- package/dist/{metrics-DoRtI0qU.d.ts → metrics-DVKYY6K1.d.ts} +1 -1
- package/dist/{middleware-Di4y_M3y.js → middleware-B-tMVSUA.js} +2303 -351
- package/dist/{middleware-D02eC0j7.mjs → middleware-BkRqMGPU.mjs} +1573 -325
- package/dist/{middleware-iAJcDIM2.mjs → middleware-CPigKLnt.mjs} +1 -1
- package/dist/{mod-B7j30IQf.d.ts → mod-CQC9xlLZ.d.ts} +3 -3
- package/dist/{mod-B4kBw1-8.d.ts → mod-D22ZsiKi.d.ts} +2 -2
- package/dist/{mod-BN0TTfyQ.d.ts → mod-DO0epJGH.d.ts} +1 -1
- package/dist/{mod-DF2gbN_d.d.cts → mod-TwiQgEf3.d.cts} +1 -1
- package/dist/mod.cjs +4 -4
- package/dist/mod.d.cts +4 -4
- package/dist/mod.d.ts +8 -8
- package/dist/mod.js +4 -4
- package/dist/nodeinfo/handler.test.mjs +1 -1
- package/dist/outbound-body-CckPA5gc.mjs +83 -0
- package/dist/outbound-capture-DVgnRzlf.mjs +184 -0
- package/dist/outbound-document-BMgwLXTY.mjs +179 -0
- package/dist/{owner-C1-csjTo.mjs → owner-CKlRIkeF.mjs} +3 -3
- package/dist/{portable-collection-C0MNEEED.mjs → portable-collection-B7RBHVGl.mjs} +2 -2
- package/dist/{portable-collection-DkTLVfoM.js → portable-collection-CByyPjLc.js} +2 -2
- package/dist/{portable-collection-w6Qn-vJ3.cjs → portable-collection-CmLjeKsP.cjs} +2 -2
- package/dist/{portable-key-jtaxB7TD.mjs → portable-key-Clg0IH8C.mjs} +1 -1
- package/dist/{proof-CzWCRhnC.mjs → proof-tAb5_Dq4.mjs} +3 -3
- package/dist/{send-C9-dwpEH.mjs → send-DzfFREML.mjs} +153 -40
- package/dist/sig/compound-proof-discovery.test.mjs +1 -1
- package/dist/sig/compound-proof-producer.test.mjs +1 -1
- package/dist/sig/compound-proof-verification.test.mjs +2 -2
- package/dist/sig/compound-proof.test.mjs +2 -2
- package/dist/sig/http.test.mjs +38 -2
- package/dist/sig/key.test.mjs +1 -1
- package/dist/sig/ld.test.mjs +1 -1
- package/dist/sig/mitra-receive-interop.test.mjs +4 -4
- package/dist/sig/mitra-send-interop.test.mjs +3 -3
- package/dist/sig/mod.cjs +2 -2
- package/dist/sig/mod.d.ts +3 -3
- package/dist/sig/mod.js +2 -2
- package/dist/sig/owner.test.mjs +1 -1
- package/dist/sig/portable-collection.test.mjs +1 -1
- package/dist/sig/portable-interop.test.mjs +3 -3
- package/dist/sig/portable-key.test.mjs +5 -5
- package/dist/sig/proof.test.mjs +3 -3
- package/dist/sig/tootik-request-interop.test.mjs +4 -4
- package/dist/sig/tootik-send-interop.test.mjs +3 -3
- package/dist/sig/verification.test.mjs +3 -3
- package/dist/{temporal-lDCl8Zxn.mjs → temporal-D9Nt8Fm4.mjs} +1 -1
- package/dist/testing/kv.test.mjs +1 -1
- package/dist/testing/mod.d.mts +1030 -412
- package/dist/utils/docloader.test.mjs +2 -2
- package/dist/utils/kv-cache.test.mjs +1 -1
- package/dist/utils/mod.cjs +1 -1
- package/dist/utils/mod.d.ts +1 -1
- package/dist/utils/mod.js +1 -1
- package/package.json +6 -6
- package/skills/fedify/SKILL.md +60 -1
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import "temporal-polyfill";
|
|
2
2
|
import "urlpattern-polyfill";
|
|
3
3
|
globalThis.addEventListener = () => {};
|
|
4
|
-
import { D as validateCryptoKey } from "./ld-
|
|
5
|
-
import { r as doubleKnockScoped } from "./http-
|
|
4
|
+
import { D as validateCryptoKey } from "./ld-C5JOBBFj.mjs";
|
|
5
|
+
import { r as doubleKnockScoped } from "./http-DqOXkYbX.mjs";
|
|
6
6
|
import { getLogger } from "@logtape/logtape";
|
|
7
7
|
import { FetchError, UrlError, createActivityPubRequest, getRemoteDocument, logRequest, resolveDocumentLoaderTimeout, withDocumentLoaderTimeout } from "@fedify/vocab-runtime";
|
|
8
8
|
import { curry } from "es-toolkit";
|
|
@@ -7,7 +7,7 @@ import { t as assertExists } from "../assert_exists-cffSpJ7X.mjs";
|
|
|
7
7
|
import { t as assertThrows } from "../assert_throws-BYITOvPO.mjs";
|
|
8
8
|
import "../std__assert-DvMDRPes.mjs";
|
|
9
9
|
import { t as assertStrictEquals } from "../assert_strict_equals-CYvBmkpC.mjs";
|
|
10
|
-
import { r as createFederationBuilder } from "../builder-
|
|
10
|
+
import { r as createFederationBuilder } from "../builder-B2H8GsyI.mjs";
|
|
11
11
|
import { DisallowedOperatorError, DisallowedVarSpecModifierError, DuplicateRouteVariableError, RouteTemplateOptionsNotMatchedError, RouterError } from "@fedify/uri-template";
|
|
12
12
|
import { Activity, Note, Person } from "@fedify/vocab";
|
|
13
13
|
import { test } from "@fedify/fixture";
|
|
@@ -6,11 +6,11 @@ import { t as MemoryKvStore } from "../kv-DCHkaJ9-.mjs";
|
|
|
6
6
|
import { t as assertEquals } from "../assert_equals-Z6IcEbWU.mjs";
|
|
7
7
|
import "../std__assert-DvMDRPes.mjs";
|
|
8
8
|
import { t as assert } from "../assert-D1Eafmd_.mjs";
|
|
9
|
-
import { x as exportJwk } from "../ld-
|
|
9
|
+
import { x as exportJwk } from "../ld-C5JOBBFj.mjs";
|
|
10
10
|
import { r as normalizeOutgoingActivityJsonLd } from "../outgoing-jsonld-4IJqPYos.mjs";
|
|
11
|
-
import { h as verifyProof, s as signObject } from "../proof-
|
|
11
|
+
import { h as verifyProof, s as signObject } from "../proof-tAb5_Dq4.mjs";
|
|
12
12
|
import { i as rsaPrivateKey2, n as ed25519PrivateKey, r as ed25519PublicKey, s as rsaPublicKey2 } from "../keys-DIJNHW-Y.mjs";
|
|
13
|
-
import { n as FederationImpl } from "../middleware-
|
|
13
|
+
import { n as FederationImpl } from "../middleware-BkRqMGPU.mjs";
|
|
14
14
|
import { Create, DataIntegrityProof, Note } from "@fedify/vocab";
|
|
15
15
|
import { exportDidKey, parseIri } from "@fedify/vocab-runtime";
|
|
16
16
|
import { mockDocumentLoader, test } from "@fedify/fixture";
|
|
@@ -5,10 +5,10 @@ import { r as createRequestContext, t as createInboxContext } from "../context-A
|
|
|
5
5
|
import { t as MemoryKvStore } from "../kv-DCHkaJ9-.mjs";
|
|
6
6
|
import { t as assertEquals } from "../assert_equals-Z6IcEbWU.mjs";
|
|
7
7
|
import "../std__assert-DvMDRPes.mjs";
|
|
8
|
-
import { a as compactJsonLd, h as verifyCompactJsonLd, m as signJsonLd } from "../ld-
|
|
9
|
-
import { u as signRequest } from "../http-
|
|
8
|
+
import { a as compactJsonLd, h as verifyCompactJsonLd, m as signJsonLd } from "../ld-C5JOBBFj.mjs";
|
|
9
|
+
import { u as signRequest } from "../http-DqOXkYbX.mjs";
|
|
10
10
|
import { a as rsaPrivateKey3, c as rsaPublicKey3, n as ed25519PrivateKey, r as ed25519PublicKey, s as rsaPublicKey2 } from "../keys-DIJNHW-Y.mjs";
|
|
11
|
-
import { f as handleInbox, o as createFederation } from "../middleware-
|
|
11
|
+
import { f as handleInbox, o as createFederation } from "../middleware-BkRqMGPU.mjs";
|
|
12
12
|
import { t as ActivityListenerSet } from "../activity-listener-CELFAodc.mjs";
|
|
13
13
|
import { t as map_local_create_note_default } from "../map-local-create-note-B0SeXJms.mjs";
|
|
14
14
|
import { Create, CryptographicKey, Multikey, Person, Update } from "@fedify/vocab";
|
|
@@ -11,11 +11,11 @@ import "../std__assert-DvMDRPes.mjs";
|
|
|
11
11
|
import { t as assertRejects } from "../assert_rejects-CTptdYck.mjs";
|
|
12
12
|
import { t as assert } from "../assert-D1Eafmd_.mjs";
|
|
13
13
|
import { r as parseAcceptSignature } from "../accept-CPVqki78.mjs";
|
|
14
|
-
import { T as generateCryptoKeyPair, a as compactJsonLd, m as signJsonLd } from "../ld-
|
|
15
|
-
import { s as signObject } from "../proof-
|
|
16
|
-
import { u as signRequest } from "../http-
|
|
14
|
+
import { T as generateCryptoKeyPair, a as compactJsonLd, m as signJsonLd } from "../ld-C5JOBBFj.mjs";
|
|
15
|
+
import { s as signObject } from "../proof-tAb5_Dq4.mjs";
|
|
16
|
+
import { u as signRequest } from "../http-DqOXkYbX.mjs";
|
|
17
17
|
import { a as rsaPrivateKey3, c as rsaPublicKey3, n as ed25519PrivateKey, s as rsaPublicKey2, t as ed25519Multikey } from "../keys-DIJNHW-Y.mjs";
|
|
18
|
-
import { d as handleCustomCollection, f as handleInbox, g as respondWithObjectIfAcceptable, h as respondWithObject, l as handleActor, m as handleOutbox, o as createFederation, p as handleObject, u as handleCollection } from "../middleware-
|
|
18
|
+
import { d as handleCustomCollection, f as handleInbox, g as respondWithObjectIfAcceptable, h as respondWithObject, l as handleActor, m as handleOutbox, o as createFederation, p as handleObject, u as handleCollection } from "../middleware-BkRqMGPU.mjs";
|
|
19
19
|
import { t as ActivityListenerSet } from "../activity-listener-CELFAodc.mjs";
|
|
20
20
|
import { t as FedifySpanExporter } from "../exporter-DVG68ozH.mjs";
|
|
21
21
|
import { configure, getLogger, reset, withContext } from "@logtape/logtape";
|
|
@@ -10,8 +10,8 @@ import "../std__assert-DvMDRPes.mjs";
|
|
|
10
10
|
import { t as assertStrictEquals } from "../assert_strict_equals-CYvBmkpC.mjs";
|
|
11
11
|
import { t as assert } from "../assert-D1Eafmd_.mjs";
|
|
12
12
|
import { r as ed25519PublicKey } from "../keys-DIJNHW-Y.mjs";
|
|
13
|
-
import {
|
|
14
|
-
import {
|
|
13
|
+
import { r as createFederationBuilder } from "../builder-B2H8GsyI.mjs";
|
|
14
|
+
import { o as createFederation, x as parseHashlinkGatewayRequest } from "../middleware-BkRqMGPU.mjs";
|
|
15
15
|
import { n as RouterError } from "../router-u5O5KCQr.mjs";
|
|
16
16
|
import { Note } from "@fedify/vocab";
|
|
17
17
|
import { computeDigestMultibase, encodeMultibase, exportDidKey } from "@fedify/vocab-runtime";
|
|
@@ -4,9 +4,9 @@ globalThis.addEventListener = () => {};
|
|
|
4
4
|
import { t as MemoryKvStore } from "../kv-DCHkaJ9-.mjs";
|
|
5
5
|
import { t as assertEquals } from "../assert_equals-Z6IcEbWU.mjs";
|
|
6
6
|
import "../std__assert-DvMDRPes.mjs";
|
|
7
|
-
import { s as signObject } from "../proof-
|
|
7
|
+
import { s as signObject } from "../proof-tAb5_Dq4.mjs";
|
|
8
8
|
import { n as ed25519PrivateKey, r as ed25519PublicKey, t as ed25519Multikey } from "../keys-DIJNHW-Y.mjs";
|
|
9
|
-
import { o as createFederation } from "../middleware-
|
|
9
|
+
import { o as createFederation } from "../middleware-BkRqMGPU.mjs";
|
|
10
10
|
import { Create, Follow, Person } from "@fedify/vocab";
|
|
11
11
|
import { mockDocumentLoader, test } from "@fedify/fixture";
|
|
12
12
|
//#region src/federation/idempotency.test.ts
|
|
@@ -7,12 +7,12 @@ import { t as assertEquals } from "../assert_equals-Z6IcEbWU.mjs";
|
|
|
7
7
|
import { t as assertFalse } from "../assert_false-CPdRnc3E.mjs";
|
|
8
8
|
import "../std__assert-DvMDRPes.mjs";
|
|
9
9
|
import { t as assert } from "../assert-D1Eafmd_.mjs";
|
|
10
|
-
import { m as signJsonLd } from "../ld-
|
|
11
|
-
import { s as signObject } from "../proof-
|
|
12
|
-
import { u as signRequest } from "../http-
|
|
10
|
+
import { m as signJsonLd } from "../ld-C5JOBBFj.mjs";
|
|
11
|
+
import { s as signObject } from "../proof-tAb5_Dq4.mjs";
|
|
12
|
+
import { u as signRequest } from "../http-DqOXkYbX.mjs";
|
|
13
13
|
import { a as rsaPrivateKey3, c as rsaPublicKey3, i as rsaPrivateKey2, n as ed25519PrivateKey, s as rsaPublicKey2 } from "../keys-DIJNHW-Y.mjs";
|
|
14
|
-
import { o as createFederation } from "../middleware-
|
|
15
|
-
import { c as expandDocument } from "../inbox-view-
|
|
14
|
+
import { o as createFederation } from "../middleware-BkRqMGPU.mjs";
|
|
15
|
+
import { c as expandDocument } from "../inbox-view-Bu_aSwFJ.mjs";
|
|
16
16
|
import { t as KvKeyCache } from "../keycache-N2opu4-3.mjs";
|
|
17
17
|
import { Create, CryptographicKey, FeatureRequest, Person } from "@fedify/vocab";
|
|
18
18
|
import { FetchError, encodeMultibase, preloadedContexts } from "@fedify/vocab-runtime";
|
|
@@ -2,12 +2,12 @@ import "temporal-polyfill";
|
|
|
2
2
|
import "urlpattern-polyfill";
|
|
3
3
|
globalThis.addEventListener = () => {};
|
|
4
4
|
import { t as MemoryKvStore } from "../kv-DCHkaJ9-.mjs";
|
|
5
|
-
import { m as signJsonLd } from "../ld-
|
|
6
|
-
import { s as signObject } from "../proof-
|
|
7
|
-
import { u as signRequest } from "../http-
|
|
5
|
+
import { m as signJsonLd } from "../ld-C5JOBBFj.mjs";
|
|
6
|
+
import { s as signObject } from "../proof-tAb5_Dq4.mjs";
|
|
7
|
+
import { u as signRequest } from "../http-DqOXkYbX.mjs";
|
|
8
8
|
import { a as rsaPrivateKey3, c as rsaPublicKey3, i as rsaPrivateKey2, n as ed25519PrivateKey, s as rsaPublicKey2, t as ed25519Multikey } from "../keys-DIJNHW-Y.mjs";
|
|
9
|
-
import {
|
|
10
|
-
import {
|
|
9
|
+
import { r as createFederationBuilder } from "../builder-B2H8GsyI.mjs";
|
|
10
|
+
import { o as createFederation, t as ContextImpl } from "../middleware-BkRqMGPU.mjs";
|
|
11
11
|
import { Create, Person } from "@fedify/vocab";
|
|
12
12
|
import { exportDidKey, parseIri } from "@fedify/vocab-runtime";
|
|
13
13
|
import { createTestTracerProvider, mockDocumentLoader, test } from "@fedify/fixture";
|
|
@@ -500,5 +500,220 @@ test("onRequestFinished observes the final response decoration result", async ()
|
|
|
500
500
|
});
|
|
501
501
|
}
|
|
502
502
|
});
|
|
503
|
+
test("inbox request cancellation snapshots preserve exact reasons without stopping processing", async (t) => {
|
|
504
|
+
for (const [label, reason] of [
|
|
505
|
+
["live", void 0],
|
|
506
|
+
["object", { kind: "client disconnect" }],
|
|
507
|
+
["zero", 0],
|
|
508
|
+
["nan", NaN],
|
|
509
|
+
["symbol", Symbol("client")]
|
|
510
|
+
]) await t.step(label, async () => {
|
|
511
|
+
const { federation, setters, reports } = setup(true);
|
|
512
|
+
let processed = 0;
|
|
513
|
+
setters.on(Create, () => {
|
|
514
|
+
processed++;
|
|
515
|
+
});
|
|
516
|
+
const controller = new AbortController();
|
|
517
|
+
const input = new Request(request(await payload()), { signal: controller.signal });
|
|
518
|
+
input.headers.set("X-Request-Id", "cancellation-case");
|
|
519
|
+
if (label !== "live") controller.abort(reason);
|
|
520
|
+
strictEqual((await federation.fetch(input, { contextData: void 0 })).status, 202);
|
|
521
|
+
strictEqual(processed, 1);
|
|
522
|
+
strictEqual(reports.length, 1);
|
|
523
|
+
const report = reports[0];
|
|
524
|
+
deepStrictEqual(report.outcome, {
|
|
525
|
+
type: "response",
|
|
526
|
+
status: 202,
|
|
527
|
+
disposition: "processed"
|
|
528
|
+
});
|
|
529
|
+
deepStrictEqual(report.authentication, { status: "skipped" });
|
|
530
|
+
strictEqual(report.payload.status, "parsed");
|
|
531
|
+
strictEqual(report.requestId, "cancellation-case");
|
|
532
|
+
ok(report.inboxRequestId);
|
|
533
|
+
deepStrictEqual(report.local, {
|
|
534
|
+
origin: "https://example.com",
|
|
535
|
+
host: "example.com",
|
|
536
|
+
hostname: "example.com",
|
|
537
|
+
canonicalOrigin: "https://example.com"
|
|
538
|
+
});
|
|
539
|
+
ok(Object.isFrozen(report.local));
|
|
540
|
+
ok(Object.isFrozen(report.requestCancellation));
|
|
541
|
+
strictEqual(report.requestCancellation.type, label === "live" ? "not-aborted" : "aborted");
|
|
542
|
+
if (report.requestCancellation.type === "aborted") {
|
|
543
|
+
ok(Object.is(report.requestCancellation.reason, reason));
|
|
544
|
+
strictEqual(report.requestCancellation.reason, input.signal.reason);
|
|
545
|
+
}
|
|
546
|
+
});
|
|
547
|
+
});
|
|
548
|
+
test("inbox request cancellation waits for processing and preserves original local facts", async () => {
|
|
549
|
+
const { federation, setters, reports } = setup(true);
|
|
550
|
+
let entered;
|
|
551
|
+
const listening = new Promise((resolve) => {
|
|
552
|
+
entered = resolve;
|
|
553
|
+
});
|
|
554
|
+
let release;
|
|
555
|
+
const gate = new Promise((resolve) => {
|
|
556
|
+
release = resolve;
|
|
557
|
+
});
|
|
558
|
+
setters.on(Create, async (ctx) => {
|
|
559
|
+
ok(ctx instanceof ContextImpl);
|
|
560
|
+
ctx.url.hostname = "changed.example";
|
|
561
|
+
entered();
|
|
562
|
+
await gate;
|
|
563
|
+
});
|
|
564
|
+
const controller = new AbortController();
|
|
565
|
+
const reason = Symbol("mid-processing disconnect");
|
|
566
|
+
const input = new Request(request(await payload()), { signal: controller.signal });
|
|
567
|
+
const processing = federation.fetch(input, { contextData: void 0 });
|
|
568
|
+
try {
|
|
569
|
+
await listening;
|
|
570
|
+
controller.abort(reason);
|
|
571
|
+
strictEqual(reports.length, 0);
|
|
572
|
+
release();
|
|
573
|
+
strictEqual((await processing).status, 202);
|
|
574
|
+
strictEqual(reports.length, 1);
|
|
575
|
+
deepStrictEqual(reports[0].outcome, {
|
|
576
|
+
type: "response",
|
|
577
|
+
status: 202,
|
|
578
|
+
disposition: "processed"
|
|
579
|
+
});
|
|
580
|
+
deepStrictEqual(reports[0].requestCancellation, {
|
|
581
|
+
type: "aborted",
|
|
582
|
+
reason
|
|
583
|
+
});
|
|
584
|
+
strictEqual(reports[0].local?.hostname, "example.com");
|
|
585
|
+
controller.abort("later reason");
|
|
586
|
+
await Promise.resolve();
|
|
587
|
+
strictEqual(reports.length, 1);
|
|
588
|
+
strictEqual(reports[0].local?.origin, "https://example.com");
|
|
589
|
+
} finally {
|
|
590
|
+
release();
|
|
591
|
+
await processing;
|
|
592
|
+
}
|
|
593
|
+
});
|
|
594
|
+
test("inbox request cancellation after report construction does not rewrite its snapshot", async () => {
|
|
595
|
+
const { federation, setters, reports } = setup(true);
|
|
596
|
+
setters.on(Create, () => {});
|
|
597
|
+
let entered;
|
|
598
|
+
const observing = new Promise((resolve) => {
|
|
599
|
+
entered = resolve;
|
|
600
|
+
});
|
|
601
|
+
let release;
|
|
602
|
+
const gate = new Promise((resolve) => {
|
|
603
|
+
release = resolve;
|
|
604
|
+
});
|
|
605
|
+
setters.onRequestFinished(async (_ctx, report) => {
|
|
606
|
+
reports.push(report);
|
|
607
|
+
entered();
|
|
608
|
+
await gate;
|
|
609
|
+
throw new Error("recording failure");
|
|
610
|
+
});
|
|
611
|
+
const controller = new AbortController();
|
|
612
|
+
const input = new Request(request(await payload()), { signal: controller.signal });
|
|
613
|
+
const processing = federation.fetch(input, { contextData: void 0 });
|
|
614
|
+
try {
|
|
615
|
+
await observing;
|
|
616
|
+
controller.abort({ kind: "late disconnect" });
|
|
617
|
+
deepStrictEqual(reports[0].requestCancellation, { type: "not-aborted" });
|
|
618
|
+
release();
|
|
619
|
+
strictEqual((await processing).status, 202);
|
|
620
|
+
await Promise.resolve();
|
|
621
|
+
strictEqual(reports.length, 1);
|
|
622
|
+
deepStrictEqual(reports[0].requestCancellation, { type: "not-aborted" });
|
|
623
|
+
deepStrictEqual(reports[0].outcome, {
|
|
624
|
+
type: "response",
|
|
625
|
+
status: 202,
|
|
626
|
+
disposition: "processed"
|
|
627
|
+
});
|
|
628
|
+
} finally {
|
|
629
|
+
release();
|
|
630
|
+
await processing;
|
|
631
|
+
}
|
|
632
|
+
});
|
|
633
|
+
test("inbox request cancellation retains accepted queue work and its separate lifetime", async () => {
|
|
634
|
+
const controller = new AbortController();
|
|
635
|
+
const reason = Symbol("disconnect after acceptance");
|
|
636
|
+
const messages = [];
|
|
637
|
+
const reports = [];
|
|
638
|
+
let processed = 0;
|
|
639
|
+
let workerSignal;
|
|
640
|
+
const federation = createFederation({
|
|
641
|
+
kv: new MemoryKvStore(),
|
|
642
|
+
skipSignatureVerification: true,
|
|
643
|
+
manuallyStartQueue: true,
|
|
644
|
+
documentLoaderFactory: () => mockDocumentLoader,
|
|
645
|
+
contextLoaderFactory: () => mockDocumentLoader,
|
|
646
|
+
queue: { inbox: {
|
|
647
|
+
enqueue(message) {
|
|
648
|
+
messages.push(message);
|
|
649
|
+
controller.abort(reason);
|
|
650
|
+
return Promise.resolve();
|
|
651
|
+
},
|
|
652
|
+
listen: () => Promise.resolve()
|
|
653
|
+
} }
|
|
654
|
+
});
|
|
655
|
+
federation.setActorDispatcher("/users/{identifier}", () => new Person({}));
|
|
656
|
+
federation.setInboxListeners("/users/{identifier}/inbox", "/inbox").on(Create, (ctx) => {
|
|
657
|
+
processed++;
|
|
658
|
+
workerSignal = Reflect.get(ctx, "signal");
|
|
659
|
+
}).onRequestFinished((_ctx, report) => {
|
|
660
|
+
reports.push(report);
|
|
661
|
+
});
|
|
662
|
+
const input = new Request(request(await payload()), { signal: controller.signal });
|
|
663
|
+
strictEqual((await federation.fetch(input, { contextData: void 0 })).status, 202);
|
|
664
|
+
strictEqual(messages.length, 1);
|
|
665
|
+
strictEqual(processed, 0);
|
|
666
|
+
strictEqual(reports.length, 1);
|
|
667
|
+
deepStrictEqual(reports[0].outcome, {
|
|
668
|
+
type: "response",
|
|
669
|
+
status: 202,
|
|
670
|
+
disposition: "enqueued"
|
|
671
|
+
});
|
|
672
|
+
deepStrictEqual(reports[0].requestCancellation, {
|
|
673
|
+
type: "aborted",
|
|
674
|
+
reason
|
|
675
|
+
});
|
|
676
|
+
strictEqual(Object.hasOwn(messages[0], "signal"), false);
|
|
677
|
+
strictEqual(Object.hasOwn(messages[0], "requestCancellation"), false);
|
|
678
|
+
await federation.processQueuedTask(void 0, messages[0]);
|
|
679
|
+
strictEqual(processed, 1);
|
|
680
|
+
strictEqual(workerSignal?.aborted === true, false);
|
|
681
|
+
strictEqual(reports.length, 1);
|
|
682
|
+
});
|
|
683
|
+
test("inbox request cancellation preserves early preparation failures and canonical source", async () => {
|
|
684
|
+
const error = /* @__PURE__ */ new Error("initial loader factory failed");
|
|
685
|
+
const reason = { kind: "client disconnected" };
|
|
686
|
+
const controller = new AbortController();
|
|
687
|
+
const reports = [];
|
|
688
|
+
const federation = createFederation({
|
|
689
|
+
kv: new MemoryKvStore(),
|
|
690
|
+
origin: "https://canonical.example",
|
|
691
|
+
documentLoaderFactory: () => {
|
|
692
|
+
throw error;
|
|
693
|
+
},
|
|
694
|
+
contextLoaderFactory: () => mockDocumentLoader
|
|
695
|
+
});
|
|
696
|
+
federation.setActorDispatcher("/users/{identifier}", () => new Person({}));
|
|
697
|
+
federation.setInboxListeners("/users/{identifier}/inbox", "/inbox").onRequestFinished((_ctx, report) => {
|
|
698
|
+
reports.push(report);
|
|
699
|
+
});
|
|
700
|
+
const input = new Request(request({}), { signal: controller.signal });
|
|
701
|
+
controller.abort(reason);
|
|
702
|
+
await rejects(federation.fetch(input, { contextData: void 0 }), (value) => value === error);
|
|
703
|
+
strictEqual(reports.length, 1);
|
|
704
|
+
deepStrictEqual(reports[0].outcome, {
|
|
705
|
+
type: "exception",
|
|
706
|
+
stage: "prepare",
|
|
707
|
+
error
|
|
708
|
+
});
|
|
709
|
+
deepStrictEqual(reports[0].authentication, { status: "notDetermined" });
|
|
710
|
+
deepStrictEqual(reports[0].payload, { status: "unavailable" });
|
|
711
|
+
deepStrictEqual(reports[0].requestCancellation, {
|
|
712
|
+
type: "aborted",
|
|
713
|
+
reason
|
|
714
|
+
});
|
|
715
|
+
strictEqual(reports[0].local?.origin, "https://example.com");
|
|
716
|
+
strictEqual(reports[0].local?.canonicalOrigin, "https://canonical.example");
|
|
717
|
+
});
|
|
503
718
|
//#endregion
|
|
504
719
|
export {};
|
|
@@ -6,7 +6,7 @@ import { t as assertFalse } from "../assert_false-CPdRnc3E.mjs";
|
|
|
6
6
|
import "../std__assert-DvMDRPes.mjs";
|
|
7
7
|
import { t as assertRejects } from "../assert_rejects-CTptdYck.mjs";
|
|
8
8
|
import { t as assert } from "../assert-D1Eafmd_.mjs";
|
|
9
|
-
import { a as createSnapshotOnlyLoader, c as expandDocument, f as restoreVerifiedActivityView, i as createReleasableLoader, l as getActorPresence, n as buildVerifiedActivityView, p as serializeContextSnapshot, r as createContextSnapshot, s as deserializeContextSnapshot, t as ContextSnapshotMissError, u as getPropertyValues } from "../inbox-view-
|
|
9
|
+
import { a as createSnapshotOnlyLoader, c as expandDocument, f as restoreVerifiedActivityView, i as createReleasableLoader, l as getActorPresence, n as buildVerifiedActivityView, p as serializeContextSnapshot, r as createContextSnapshot, s as deserializeContextSnapshot, t as ContextSnapshotMissError, u as getPropertyValues } from "../inbox-view-Bu_aSwFJ.mjs";
|
|
10
10
|
import { getDocumentLoader, preloadedContexts } from "@fedify/vocab-runtime";
|
|
11
11
|
import { test } from "@fedify/fixture";
|
|
12
12
|
//#region src/federation/inbox-view.test.ts
|
|
@@ -4,8 +4,8 @@ globalThis.addEventListener = () => {};
|
|
|
4
4
|
import { t as assertEquals } from "../assert_equals-Z6IcEbWU.mjs";
|
|
5
5
|
import { t as assertFalse } from "../assert_false-CPdRnc3E.mjs";
|
|
6
6
|
import { t as assertThrows } from "../assert_throws-BYITOvPO.mjs";
|
|
7
|
+
import { t as actorsHaveSameOrigin } from "../inbox-C4iW1g0F.mjs";
|
|
7
8
|
import { t as ActivityListenerSet } from "../activity-listener-CELFAodc.mjs";
|
|
8
|
-
import { t as actorsHaveSameOrigin } from "../inbox-CElAglrC.mjs";
|
|
9
9
|
import { Activity, Create, Invite, Offer, Update } from "@fedify/vocab";
|
|
10
10
|
import { parseIri } from "@fedify/vocab-runtime";
|
|
11
11
|
import { test } from "@fedify/fixture";
|
|
@@ -4,7 +4,7 @@ globalThis.addEventListener = () => {};
|
|
|
4
4
|
import { t as assertEquals } from "../assert_equals-Z6IcEbWU.mjs";
|
|
5
5
|
import "../std__assert-DvMDRPes.mjs";
|
|
6
6
|
import { t as assertRejects } from "../assert_rejects-CTptdYck.mjs";
|
|
7
|
-
import { _ as recordKeyLookup, a as instrumentDocumentLoader, b as recordWebFingerHandle, c as recordCircuitBreakerStateChange, d as recordCollectionRequest, f as recordCollectionTotalItems, g as recordInboxActivity, h as recordFanoutRecipients, i as getRemoteHost, l as recordCollectionDispatchDuration, m as recordDocumentFetch, p as recordDocumentCache, r as getFederationMetrics, t as classifyFetchError, u as recordCollectionPageItems, v as recordOutboxActivity, x as registerQueueDepthGauge, y as recordOutboxEnqueue } from "../metrics-
|
|
7
|
+
import { _ as recordKeyLookup, a as instrumentDocumentLoader, b as recordWebFingerHandle, c as recordCircuitBreakerStateChange, d as recordCollectionRequest, f as recordCollectionTotalItems, g as recordInboxActivity, h as recordFanoutRecipients, i as getRemoteHost, l as recordCollectionDispatchDuration, m as recordDocumentFetch, p as recordDocumentCache, r as getFederationMetrics, t as classifyFetchError, u as recordCollectionPageItems, v as recordOutboxActivity, x as registerQueueDepthGauge, y as recordOutboxEnqueue } from "../metrics-CTteRnEr.mjs";
|
|
8
8
|
import { FetchError } from "@fedify/vocab-runtime";
|
|
9
9
|
import { createTestMeterProvider, test } from "@fedify/fixture";
|
|
10
10
|
import { DataPointType, MeterProvider, MetricReader } from "@opentelemetry/sdk-metrics";
|
|
@@ -16,14 +16,14 @@ import "../std__assert-DvMDRPes.mjs";
|
|
|
16
16
|
import { t as assertRejects } from "../assert_rejects-CTptdYck.mjs";
|
|
17
17
|
import { t as assertStrictEquals } from "../assert_strict_equals-CYvBmkpC.mjs";
|
|
18
18
|
import { t as assert } from "../assert-D1Eafmd_.mjs";
|
|
19
|
-
import { g as recordInboxActivity } from "../metrics-
|
|
20
|
-
import { _ as verifyJsonLd, a as compactJsonLd, m as signJsonLd, s as detachSignature } from "../ld-
|
|
21
|
-
import { l as verifyObject, s as signObject } from "../proof-
|
|
22
|
-
import { p as verifyRequest, u as signRequest } from "../http-
|
|
19
|
+
import { g as recordInboxActivity } from "../metrics-CTteRnEr.mjs";
|
|
20
|
+
import { _ as verifyJsonLd, a as compactJsonLd, m as signJsonLd, s as detachSignature } from "../ld-C5JOBBFj.mjs";
|
|
21
|
+
import { l as verifyObject, s as signObject } from "../proof-tAb5_Dq4.mjs";
|
|
22
|
+
import { p as verifyRequest, u as signRequest } from "../http-DqOXkYbX.mjs";
|
|
23
23
|
import { a as rsaPrivateKey3, c as rsaPublicKey3, i as rsaPrivateKey2, n as ed25519PrivateKey, r as ed25519PublicKey, s as rsaPublicKey2, t as ed25519Multikey } from "../keys-DIJNHW-Y.mjs";
|
|
24
|
-
import { n as getAuthenticatedDocumentLoader } from "../docloader-
|
|
25
|
-
import { T as handleBenchmarkTrigger, i as KvSpecDeterminer, n as FederationImpl, o as createFederation, r as InboxContextImpl, t as ContextImpl } from "../middleware-
|
|
26
|
-
import { t as doesActorOwnKey } from "../owner-
|
|
24
|
+
import { n as getAuthenticatedDocumentLoader } from "../docloader-Ca6i6ddp.mjs";
|
|
25
|
+
import { T as handleBenchmarkTrigger, i as KvSpecDeterminer, n as FederationImpl, o as createFederation, r as InboxContextImpl, t as ContextImpl } from "../middleware-BkRqMGPU.mjs";
|
|
26
|
+
import { t as doesActorOwnKey } from "../owner-CKlRIkeF.mjs";
|
|
27
27
|
import { t as CircuitBreaker } from "../circuit-breaker-XJ53md4S.mjs";
|
|
28
28
|
import { t as TaskCodec } from "../codec-C6rTrpIp.mjs";
|
|
29
29
|
import { t as markCircuitBreakerLegacySweepDone } from "../circuit-breaker-test-utils-DW6YC_Pe.mjs";
|
package/dist/federation/mod.cjs
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
const { URLPattern } = require("urlpattern-polyfill");
|
|
2
2
|
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
3
|
-
const require_federation = require("../federation-
|
|
3
|
+
const require_federation = require("../federation-DRl81KbJ.cjs");
|
|
4
4
|
exports.CircuitBreaker = require_federation.CircuitBreaker;
|
|
5
5
|
exports.InProcessMessageQueue = require_federation.InProcessMessageQueue;
|
|
6
6
|
exports.MemoryKvStore = require_federation.MemoryKvStore;
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
/// <reference lib="esnext.temporal" />
|
|
2
2
|
import { _ as InboxVerificationKey, d as InboxProofPolicyFailureReason, f as InboxSignatureCheck, g as InboxVerificationFailureReason, h as InboxVerificationAttempt, m as InboxSignatureIdentity, p as InboxSignatureFailureReason } from "../key-DlHT4R6k.cjs";
|
|
3
|
-
import { $ as
|
|
3
|
+
import { $ as respondWithObjectIfAcceptable, $t as IsActorAuthenticatedOptions, A as InboxChallengePolicy, An as OutboundResponseBodyEvent, At as HashlinkMediaDispatcher, B as createFederation, Bt as OutboxListenerErrorHandler, C as FederationBenchmarkOptions, Cn as OutboundInboxRequest, Ct as AuthorizePredicate, D as FederationStartQueueOptions, Dn as OutboundPreparationResult, Dt as CustomCollectionCounter, E as FederationOptions, En as OutboundObservers, Et as CollectionDispatcher, F as PortableInboxForwardingOptions, Fn as OutboundWorkerPreparationDiagnostic, Ft as NodeInfoDispatcher, G as TaskHandler, Gt as UnverifiedActivityHandler, H as TaskDefinition, Ht as PortableActorIdMapper, I as Rfc6570Expression, In as OutboundWorkerReport, It as ObjectAuthorizePredicate, J as RetryContext, Jt as SendActivityError, K as TaskRegistry, Kt as UnverifiedActivityReason, L as FederationKvPrefixes, Ln as OutboundWorkerSchedule, Lt as ObjectDispatcher, M as MediaUploaderSetters, Mn as OutboundSourceMetadata, Mt as InboxErrorHandler, N as ObjectCallbackSetters, Nn as OutboundWorkerAction, Nt as InboxListener, O as IdempotencyKeyCallback, On as OutboundProvenance, Ot as CustomCollectionCursor, P as OutboxListenerSetters, Pn as OutboundWorkerChild, Pt as MediaUploaderCallback, Q as respondWithObject, Qt as InboxPrincipal, R as FederationOrigin, Rt as OutboxErrorHandler, S as Federation, Sn as OutboundHttpResponseMetadata, St as ActorKeyPairsDispatcher, T as FederationFetchOptions, Tn as OutboundLocalContext, Tt as CollectionCursor, U as TaskDefinitionOptions, Ut as PortableCollectionOwnerMapper, V as createFederationBuilder, Vt as OutboxPermanentFailureHandler, W as TaskEnqueueOptions, Wt as SharedInboxKeyDispatcher, X as createExponentialBackoffPolicy, Xt as Message, Y as RetryPolicy, Yt as SenderKeyPair, Z as RespondWithObjectOptions, Zt as InboxAuthenticationEvidence, _ as ActorCallbackSetters, _n as OutboundBroadcastEvent, _t as normalizeCircuitBreakerOptions, a as GetObjectOptions, an as InboxAuthentication, at as MessageQueueListenOptions, b as CustomCollectionCallbackSetters, bn as OutboundHeaderSnapshot, bt as ActorDispatcher, c as IsSignedByAudienceOptions, cn as InboxRequestFinishedHandler, ct as CircuitBreakerActivityDrop, d as ParseUriResult, dn as InboxListenerOptions, dt as CircuitBreakerFailurePolicy, en as isActorAuthenticated, et as InProcessMessageQueue, f as PortableRequest, fn as OutboundActivityReference, ft as CircuitBreakerKvState, g as SendActivityOptionsForCollection, gn as OutboundBodyCaptureSummary, gt as NormalizedCircuitBreakerOptions, h as SendActivityOptions, hn as OutboundAttemptResponse, ht as CircuitBreakerStateChange, i as GetActorOptions, it as MessageQueueEnqueueOptions, j as InboxListenerSetters, jn as OutboundSenderPayload, jt as HashlinkMediaRequest, k as IdempotencyStrategy, kn as OutboundResponseBodyCapture, kt as CustomCollectionDispatcher, l as OutboxContext, ln as InboxRequestOutcome, lt as CircuitBreakerBeforeSendDecision, m as RouteActivityOptions, mn as OutboundAttemptReport, mt as CircuitBreakerState, n as Context, nn as buildCollectionSynchronizationHeader, nt as MessageQueue, o as GetSignedKeyOptions, on as InboxJsonValue, ot as ParallelMessageQueue, p as RequestContext, pn as OutboundAttemptFailure, pt as CircuitBreakerOptions, q as CreateExponentialBackoffPolicyOptions, qt as WebFingerLinksDispatcher, r as ForwardActivityOptions, rn as digest, rt as MessageQueueDepth, s as InboxContext, sn as InboxRequestCancellation, st as CircuitBreaker, t as ActorKeyPair, tn as PageItems, tt as InProcessMessageQueueOptions, u as ParseUriOptions, un as InboxRequestReport, ut as CircuitBreakerCreateOptions, v as CollectionCallbackSetters, vn as OutboundDeliveryEvent, vt as parseCircuitBreakerKvState, w as FederationBuilder, wn as OutboundJsonValue, wt as CollectionCounter, x as Federatable, xn as OutboundHttpExchangeReport, xt as ActorHandleMapper, y as ConstructorWithTypeId, yn as OutboundHeaderPolicy, yt as ActorAliasMapper, z as FederationQueueOptions, zt as OutboxListener } from "../context-C1NqcIct.cjs";
|
|
4
4
|
import { a as MemoryKvStore, i as KvStoreSetOptions, n as KvStore, r as KvStoreListEntry, t as KvKey } from "../kv-B2mzK5tl.cjs";
|
|
5
|
-
import { a as RouterOptions, i as RouterError, n as handleWebFinger, o as RouterRouteResult, r as Router, t as WebFingerHandlerParameters } from "../mod-
|
|
6
|
-
export { ActorAliasMapper, ActorCallbackSetters, ActorDispatcher, ActorHandleMapper, ActorKeyPair, ActorKeyPairsDispatcher, AuthorizePredicate, CircuitBreaker, CircuitBreakerActivityDrop, CircuitBreakerBeforeSendDecision, CircuitBreakerCreateOptions, CircuitBreakerFailurePolicy, CircuitBreakerKvState, CircuitBreakerOptions, CircuitBreakerState, CircuitBreakerStateChange, CollectionCallbackSetters, CollectionCounter, CollectionCursor, CollectionDispatcher, ConstructorWithTypeId, Context, CreateExponentialBackoffPolicyOptions, CustomCollectionCallbackSetters, CustomCollectionCounter, CustomCollectionCursor, CustomCollectionDispatcher, Federatable, Federation, FederationBenchmarkOptions, FederationBuilder, FederationFetchOptions, FederationKvPrefixes, FederationOptions, FederationOrigin, FederationQueueOptions, FederationStartQueueOptions, ForwardActivityOptions, GetActorOptions, GetObjectOptions, GetSignedKeyOptions, HashlinkMediaDispatcher, HashlinkMediaRequest, IdempotencyKeyCallback, IdempotencyStrategy, InProcessMessageQueue, InProcessMessageQueueOptions, InboxAuthentication, InboxAuthenticationEvidence, InboxChallengePolicy, InboxContext, InboxErrorHandler, InboxJsonValue, InboxListener, InboxListenerOptions, InboxListenerSetters, InboxPrincipal, InboxProofPolicyFailureReason, InboxRequestFinishedHandler, InboxRequestOutcome, InboxRequestReport, InboxSignatureCheck, InboxSignatureFailureReason, InboxSignatureIdentity, InboxVerificationAttempt, InboxVerificationFailureReason, InboxVerificationKey, IsActorAuthenticatedOptions, IsSignedByAudienceOptions, KvKey, KvStore, KvStoreListEntry, KvStoreSetOptions, MediaUploaderCallback, MediaUploaderSetters, MemoryKvStore, Message, MessageQueue, MessageQueueDepth, MessageQueueEnqueueOptions, MessageQueueListenOptions, NodeInfoDispatcher, NormalizedCircuitBreakerOptions, ObjectAuthorizePredicate, ObjectCallbackSetters, ObjectDispatcher, OutboxContext, OutboxErrorHandler, OutboxListener, OutboxListenerErrorHandler, OutboxListenerSetters, OutboxPermanentFailureHandler, PageItems, ParallelMessageQueue, ParseUriOptions, ParseUriResult, PortableActorIdMapper, PortableCollectionOwnerMapper, PortableInboxForwardingOptions, PortableRequest, RequestContext, RespondWithObjectOptions, RetryContext, RetryPolicy, Rfc6570Expression, RouteActivityOptions, Router, RouterError, RouterOptions, RouterRouteResult, SendActivityError, SendActivityOptions, SendActivityOptionsForCollection, SenderKeyPair, SharedInboxKeyDispatcher, TaskDefinition, TaskDefinitionOptions, TaskEnqueueOptions, TaskHandler, TaskRegistry, UnverifiedActivityHandler, UnverifiedActivityReason, WebFingerHandlerParameters, WebFingerLinksDispatcher, buildCollectionSynchronizationHeader, createExponentialBackoffPolicy, createFederation, createFederationBuilder, digest, handleWebFinger, isActorAuthenticated, normalizeCircuitBreakerOptions, parseCircuitBreakerKvState, respondWithObject, respondWithObjectIfAcceptable };
|
|
5
|
+
import { a as RouterOptions, i as RouterError, n as handleWebFinger, o as RouterRouteResult, r as Router, t as WebFingerHandlerParameters } from "../mod-TwiQgEf3.cjs";
|
|
6
|
+
export { ActorAliasMapper, ActorCallbackSetters, ActorDispatcher, ActorHandleMapper, ActorKeyPair, ActorKeyPairsDispatcher, AuthorizePredicate, CircuitBreaker, CircuitBreakerActivityDrop, CircuitBreakerBeforeSendDecision, CircuitBreakerCreateOptions, CircuitBreakerFailurePolicy, CircuitBreakerKvState, CircuitBreakerOptions, CircuitBreakerState, CircuitBreakerStateChange, CollectionCallbackSetters, CollectionCounter, CollectionCursor, CollectionDispatcher, ConstructorWithTypeId, Context, CreateExponentialBackoffPolicyOptions, CustomCollectionCallbackSetters, CustomCollectionCounter, CustomCollectionCursor, CustomCollectionDispatcher, Federatable, Federation, FederationBenchmarkOptions, FederationBuilder, FederationFetchOptions, FederationKvPrefixes, FederationOptions, FederationOrigin, FederationQueueOptions, FederationStartQueueOptions, ForwardActivityOptions, GetActorOptions, GetObjectOptions, GetSignedKeyOptions, HashlinkMediaDispatcher, HashlinkMediaRequest, IdempotencyKeyCallback, IdempotencyStrategy, InProcessMessageQueue, InProcessMessageQueueOptions, InboxAuthentication, InboxAuthenticationEvidence, InboxChallengePolicy, InboxContext, InboxErrorHandler, InboxJsonValue, InboxListener, InboxListenerOptions, InboxListenerSetters, InboxPrincipal, InboxProofPolicyFailureReason, InboxRequestCancellation, InboxRequestFinishedHandler, InboxRequestOutcome, InboxRequestReport, InboxSignatureCheck, InboxSignatureFailureReason, InboxSignatureIdentity, InboxVerificationAttempt, InboxVerificationFailureReason, InboxVerificationKey, IsActorAuthenticatedOptions, IsSignedByAudienceOptions, KvKey, KvStore, KvStoreListEntry, KvStoreSetOptions, MediaUploaderCallback, MediaUploaderSetters, MemoryKvStore, Message, MessageQueue, MessageQueueDepth, MessageQueueEnqueueOptions, MessageQueueListenOptions, NodeInfoDispatcher, NormalizedCircuitBreakerOptions, ObjectAuthorizePredicate, ObjectCallbackSetters, ObjectDispatcher, OutboundActivityReference, OutboundAttemptFailure, OutboundAttemptReport, OutboundAttemptResponse, OutboundBodyCaptureSummary, OutboundBroadcastEvent, OutboundDeliveryEvent, OutboundHeaderPolicy, OutboundHeaderSnapshot, OutboundHttpExchangeReport, OutboundHttpResponseMetadata, OutboundInboxRequest, OutboundJsonValue, OutboundLocalContext, OutboundObservers, OutboundPreparationResult, OutboundProvenance, OutboundResponseBodyCapture, OutboundResponseBodyEvent, OutboundSenderPayload, OutboundSourceMetadata, OutboundWorkerAction, OutboundWorkerChild, OutboundWorkerPreparationDiagnostic, OutboundWorkerReport, OutboundWorkerSchedule, OutboxContext, OutboxErrorHandler, OutboxListener, OutboxListenerErrorHandler, OutboxListenerSetters, OutboxPermanentFailureHandler, PageItems, ParallelMessageQueue, ParseUriOptions, ParseUriResult, PortableActorIdMapper, PortableCollectionOwnerMapper, PortableInboxForwardingOptions, PortableRequest, RequestContext, RespondWithObjectOptions, RetryContext, RetryPolicy, Rfc6570Expression, RouteActivityOptions, Router, RouterError, RouterOptions, RouterRouteResult, SendActivityError, SendActivityOptions, SendActivityOptionsForCollection, SenderKeyPair, SharedInboxKeyDispatcher, TaskDefinition, TaskDefinitionOptions, TaskEnqueueOptions, TaskHandler, TaskRegistry, UnverifiedActivityHandler, UnverifiedActivityReason, WebFingerHandlerParameters, WebFingerLinksDispatcher, buildCollectionSynchronizationHeader, createExponentialBackoffPolicy, createFederation, createFederationBuilder, digest, handleWebFinger, isActorAuthenticated, normalizeCircuitBreakerOptions, parseCircuitBreakerKvState, respondWithObject, respondWithObjectIfAcceptable };
|
package/dist/federation/mod.d.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
/// <reference lib="esnext.temporal" />
|
|
2
|
-
import { _ as InboxVerificationKey, d as InboxProofPolicyFailureReason, f as InboxSignatureCheck, g as InboxVerificationFailureReason, h as InboxVerificationAttempt, m as InboxSignatureIdentity, p as InboxSignatureFailureReason } from "../key-
|
|
3
|
-
import { $ as
|
|
2
|
+
import { _ as InboxVerificationKey, d as InboxProofPolicyFailureReason, f as InboxSignatureCheck, g as InboxVerificationFailureReason, h as InboxVerificationAttempt, m as InboxSignatureIdentity, p as InboxSignatureFailureReason } from "../key-dwwAg5bA.js";
|
|
3
|
+
import { $ as respondWithObjectIfAcceptable, $t as IsActorAuthenticatedOptions, A as InboxChallengePolicy, An as OutboundResponseBodyEvent, At as HashlinkMediaDispatcher, B as createFederation, Bt as OutboxListenerErrorHandler, C as FederationBenchmarkOptions, Cn as OutboundInboxRequest, Ct as AuthorizePredicate, D as FederationStartQueueOptions, Dn as OutboundPreparationResult, Dt as CustomCollectionCounter, E as FederationOptions, En as OutboundObservers, Et as CollectionDispatcher, F as PortableInboxForwardingOptions, Fn as OutboundWorkerPreparationDiagnostic, Ft as NodeInfoDispatcher, G as TaskHandler, Gt as UnverifiedActivityHandler, H as TaskDefinition, Ht as PortableActorIdMapper, I as Rfc6570Expression, In as OutboundWorkerReport, It as ObjectAuthorizePredicate, J as RetryContext, Jt as SendActivityError, K as TaskRegistry, Kt as UnverifiedActivityReason, L as FederationKvPrefixes, Ln as OutboundWorkerSchedule, Lt as ObjectDispatcher, M as MediaUploaderSetters, Mn as OutboundSourceMetadata, Mt as InboxErrorHandler, N as ObjectCallbackSetters, Nn as OutboundWorkerAction, Nt as InboxListener, O as IdempotencyKeyCallback, On as OutboundProvenance, Ot as CustomCollectionCursor, P as OutboxListenerSetters, Pn as OutboundWorkerChild, Pt as MediaUploaderCallback, Q as respondWithObject, Qt as InboxPrincipal, R as FederationOrigin, Rt as OutboxErrorHandler, S as Federation, Sn as OutboundHttpResponseMetadata, St as ActorKeyPairsDispatcher, T as FederationFetchOptions, Tn as OutboundLocalContext, Tt as CollectionCursor, U as TaskDefinitionOptions, Ut as PortableCollectionOwnerMapper, V as createFederationBuilder, Vt as OutboxPermanentFailureHandler, W as TaskEnqueueOptions, Wt as SharedInboxKeyDispatcher, X as createExponentialBackoffPolicy, Xt as Message, Y as RetryPolicy, Yt as SenderKeyPair, Z as RespondWithObjectOptions, Zt as InboxAuthenticationEvidence, _ as ActorCallbackSetters, _n as OutboundBroadcastEvent, _t as normalizeCircuitBreakerOptions, a as GetObjectOptions, an as InboxAuthentication, at as MessageQueueListenOptions, b as CustomCollectionCallbackSetters, bn as OutboundHeaderSnapshot, bt as ActorDispatcher, c as IsSignedByAudienceOptions, cn as InboxRequestFinishedHandler, ct as CircuitBreakerActivityDrop, d as ParseUriResult, dn as InboxListenerOptions, dt as CircuitBreakerFailurePolicy, en as isActorAuthenticated, et as InProcessMessageQueue, f as PortableRequest, fn as OutboundActivityReference, ft as CircuitBreakerKvState, g as SendActivityOptionsForCollection, gn as OutboundBodyCaptureSummary, gt as NormalizedCircuitBreakerOptions, h as SendActivityOptions, hn as OutboundAttemptResponse, ht as CircuitBreakerStateChange, i as GetActorOptions, it as MessageQueueEnqueueOptions, j as InboxListenerSetters, jn as OutboundSenderPayload, jt as HashlinkMediaRequest, k as IdempotencyStrategy, kn as OutboundResponseBodyCapture, kt as CustomCollectionDispatcher, l as OutboxContext, ln as InboxRequestOutcome, lt as CircuitBreakerBeforeSendDecision, m as RouteActivityOptions, mn as OutboundAttemptReport, mt as CircuitBreakerState, n as Context, nn as buildCollectionSynchronizationHeader, nt as MessageQueue, o as GetSignedKeyOptions, on as InboxJsonValue, ot as ParallelMessageQueue, p as RequestContext, pn as OutboundAttemptFailure, pt as CircuitBreakerOptions, q as CreateExponentialBackoffPolicyOptions, qt as WebFingerLinksDispatcher, r as ForwardActivityOptions, rn as digest, rt as MessageQueueDepth, s as InboxContext, sn as InboxRequestCancellation, st as CircuitBreaker, t as ActorKeyPair, tn as PageItems, tt as InProcessMessageQueueOptions, u as ParseUriOptions, un as InboxRequestReport, ut as CircuitBreakerCreateOptions, v as CollectionCallbackSetters, vn as OutboundDeliveryEvent, vt as parseCircuitBreakerKvState, w as FederationBuilder, wn as OutboundJsonValue, wt as CollectionCounter, x as Federatable, xn as OutboundHttpExchangeReport, xt as ActorHandleMapper, y as ConstructorWithTypeId, yn as OutboundHeaderPolicy, yt as ActorAliasMapper, z as FederationQueueOptions, zt as OutboxListener } from "../context-xrqq4Hrq.js";
|
|
4
4
|
import { a as MemoryKvStore, i as KvStoreSetOptions, n as KvStore, r as KvStoreListEntry, t as KvKey } from "../kv-B2mzK5tl.js";
|
|
5
|
-
import { a as RouterOptions, i as RouterError, n as handleWebFinger, o as RouterRouteResult, r as Router, t as WebFingerHandlerParameters } from "../mod-
|
|
6
|
-
export { ActorAliasMapper, ActorCallbackSetters, ActorDispatcher, ActorHandleMapper, ActorKeyPair, ActorKeyPairsDispatcher, AuthorizePredicate, CircuitBreaker, CircuitBreakerActivityDrop, CircuitBreakerBeforeSendDecision, CircuitBreakerCreateOptions, CircuitBreakerFailurePolicy, CircuitBreakerKvState, CircuitBreakerOptions, CircuitBreakerState, CircuitBreakerStateChange, CollectionCallbackSetters, CollectionCounter, CollectionCursor, CollectionDispatcher, ConstructorWithTypeId, Context, CreateExponentialBackoffPolicyOptions, CustomCollectionCallbackSetters, CustomCollectionCounter, CustomCollectionCursor, CustomCollectionDispatcher, Federatable, Federation, FederationBenchmarkOptions, FederationBuilder, FederationFetchOptions, FederationKvPrefixes, FederationOptions, FederationOrigin, FederationQueueOptions, FederationStartQueueOptions, ForwardActivityOptions, GetActorOptions, GetObjectOptions, GetSignedKeyOptions, HashlinkMediaDispatcher, HashlinkMediaRequest, IdempotencyKeyCallback, IdempotencyStrategy, InProcessMessageQueue, InProcessMessageQueueOptions, InboxAuthentication, InboxAuthenticationEvidence, InboxChallengePolicy, InboxContext, InboxErrorHandler, InboxJsonValue, InboxListener, InboxListenerOptions, InboxListenerSetters, InboxPrincipal, InboxProofPolicyFailureReason, InboxRequestFinishedHandler, InboxRequestOutcome, InboxRequestReport, InboxSignatureCheck, InboxSignatureFailureReason, InboxSignatureIdentity, InboxVerificationAttempt, InboxVerificationFailureReason, InboxVerificationKey, IsActorAuthenticatedOptions, IsSignedByAudienceOptions, KvKey, KvStore, KvStoreListEntry, KvStoreSetOptions, MediaUploaderCallback, MediaUploaderSetters, MemoryKvStore, Message, MessageQueue, MessageQueueDepth, MessageQueueEnqueueOptions, MessageQueueListenOptions, NodeInfoDispatcher, NormalizedCircuitBreakerOptions, ObjectAuthorizePredicate, ObjectCallbackSetters, ObjectDispatcher, OutboxContext, OutboxErrorHandler, OutboxListener, OutboxListenerErrorHandler, OutboxListenerSetters, OutboxPermanentFailureHandler, PageItems, ParallelMessageQueue, ParseUriOptions, ParseUriResult, PortableActorIdMapper, PortableCollectionOwnerMapper, PortableInboxForwardingOptions, PortableRequest, RequestContext, RespondWithObjectOptions, RetryContext, RetryPolicy, Rfc6570Expression, RouteActivityOptions, Router, RouterError, RouterOptions, RouterRouteResult, SendActivityError, SendActivityOptions, SendActivityOptionsForCollection, SenderKeyPair, SharedInboxKeyDispatcher, TaskDefinition, TaskDefinitionOptions, TaskEnqueueOptions, TaskHandler, TaskRegistry, UnverifiedActivityHandler, UnverifiedActivityReason, WebFingerHandlerParameters, WebFingerLinksDispatcher, buildCollectionSynchronizationHeader, createExponentialBackoffPolicy, createFederation, createFederationBuilder, digest, handleWebFinger, isActorAuthenticated, normalizeCircuitBreakerOptions, parseCircuitBreakerKvState, respondWithObject, respondWithObjectIfAcceptable };
|
|
5
|
+
import { a as RouterOptions, i as RouterError, n as handleWebFinger, o as RouterRouteResult, r as Router, t as WebFingerHandlerParameters } from "../mod-DO0epJGH.js";
|
|
6
|
+
export { ActorAliasMapper, ActorCallbackSetters, ActorDispatcher, ActorHandleMapper, ActorKeyPair, ActorKeyPairsDispatcher, AuthorizePredicate, CircuitBreaker, CircuitBreakerActivityDrop, CircuitBreakerBeforeSendDecision, CircuitBreakerCreateOptions, CircuitBreakerFailurePolicy, CircuitBreakerKvState, CircuitBreakerOptions, CircuitBreakerState, CircuitBreakerStateChange, CollectionCallbackSetters, CollectionCounter, CollectionCursor, CollectionDispatcher, ConstructorWithTypeId, Context, CreateExponentialBackoffPolicyOptions, CustomCollectionCallbackSetters, CustomCollectionCounter, CustomCollectionCursor, CustomCollectionDispatcher, Federatable, Federation, FederationBenchmarkOptions, FederationBuilder, FederationFetchOptions, FederationKvPrefixes, FederationOptions, FederationOrigin, FederationQueueOptions, FederationStartQueueOptions, ForwardActivityOptions, GetActorOptions, GetObjectOptions, GetSignedKeyOptions, HashlinkMediaDispatcher, HashlinkMediaRequest, IdempotencyKeyCallback, IdempotencyStrategy, InProcessMessageQueue, InProcessMessageQueueOptions, InboxAuthentication, InboxAuthenticationEvidence, InboxChallengePolicy, InboxContext, InboxErrorHandler, InboxJsonValue, InboxListener, InboxListenerOptions, InboxListenerSetters, InboxPrincipal, InboxProofPolicyFailureReason, InboxRequestCancellation, InboxRequestFinishedHandler, InboxRequestOutcome, InboxRequestReport, InboxSignatureCheck, InboxSignatureFailureReason, InboxSignatureIdentity, InboxVerificationAttempt, InboxVerificationFailureReason, InboxVerificationKey, IsActorAuthenticatedOptions, IsSignedByAudienceOptions, KvKey, KvStore, KvStoreListEntry, KvStoreSetOptions, MediaUploaderCallback, MediaUploaderSetters, MemoryKvStore, Message, MessageQueue, MessageQueueDepth, MessageQueueEnqueueOptions, MessageQueueListenOptions, NodeInfoDispatcher, NormalizedCircuitBreakerOptions, ObjectAuthorizePredicate, ObjectCallbackSetters, ObjectDispatcher, OutboundActivityReference, OutboundAttemptFailure, OutboundAttemptReport, OutboundAttemptResponse, OutboundBodyCaptureSummary, OutboundBroadcastEvent, OutboundDeliveryEvent, OutboundHeaderPolicy, OutboundHeaderSnapshot, OutboundHttpExchangeReport, OutboundHttpResponseMetadata, OutboundInboxRequest, OutboundJsonValue, OutboundLocalContext, OutboundObservers, OutboundPreparationResult, OutboundProvenance, OutboundResponseBodyCapture, OutboundResponseBodyEvent, OutboundSenderPayload, OutboundSourceMetadata, OutboundWorkerAction, OutboundWorkerChild, OutboundWorkerPreparationDiagnostic, OutboundWorkerReport, OutboundWorkerSchedule, OutboxContext, OutboxErrorHandler, OutboxListener, OutboxListenerErrorHandler, OutboxListenerSetters, OutboxPermanentFailureHandler, PageItems, ParallelMessageQueue, ParseUriOptions, ParseUriResult, PortableActorIdMapper, PortableCollectionOwnerMapper, PortableInboxForwardingOptions, PortableRequest, RequestContext, RespondWithObjectOptions, RetryContext, RetryPolicy, Rfc6570Expression, RouteActivityOptions, Router, RouterError, RouterOptions, RouterRouteResult, SendActivityError, SendActivityOptions, SendActivityOptionsForCollection, SenderKeyPair, SharedInboxKeyDispatcher, TaskDefinition, TaskDefinitionOptions, TaskEnqueueOptions, TaskHandler, TaskRegistry, UnverifiedActivityHandler, UnverifiedActivityReason, WebFingerHandlerParameters, WebFingerLinksDispatcher, buildCollectionSynchronizationHeader, createExponentialBackoffPolicy, createFederation, createFederationBuilder, digest, handleWebFinger, isActorAuthenticated, normalizeCircuitBreakerOptions, parseCircuitBreakerKvState, respondWithObject, respondWithObjectIfAcceptable };
|
package/dist/federation/mod.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { Temporal } from "temporal-polyfill";
|
|
2
2
|
import { URLPattern } from "urlpattern-polyfill";
|
|
3
|
-
import { a as respondWithObjectIfAcceptable, c as buildCollectionSynchronizationHeader, d as normalizeCircuitBreakerOptions, f as parseCircuitBreakerKvState, i as respondWithObject, l as digest, n as handleWebFinger, o as SendActivityError, p as createFederationBuilder, r as createExponentialBackoffPolicy, s as isActorAuthenticated, t as createFederation, u as CircuitBreaker } from "../middleware-
|
|
3
|
+
import { a as respondWithObjectIfAcceptable, c as buildCollectionSynchronizationHeader, d as normalizeCircuitBreakerOptions, f as parseCircuitBreakerKvState, i as respondWithObject, l as digest, n as handleWebFinger, o as SendActivityError, p as createFederationBuilder, r as createExponentialBackoffPolicy, s as isActorAuthenticated, t as createFederation, u as CircuitBreaker } from "../middleware-B-tMVSUA.js";
|
|
4
4
|
import { getLogger } from "@logtape/logtape";
|
|
5
5
|
import { Router as Router$1, RouterError as RouterError$1, assertPath, isPath } from "@fedify/uri-template";
|
|
6
6
|
import { isEqual } from "es-toolkit";
|
|
@@ -7,7 +7,7 @@ import { t as assertGreaterOrEqual } from "../assert_greater_or_equal-BlafOF4-.m
|
|
|
7
7
|
import "../std__assert-DvMDRPes.mjs";
|
|
8
8
|
import { t as assertRejects } from "../assert_rejects-CTptdYck.mjs";
|
|
9
9
|
import { t as assert } from "../assert-D1Eafmd_.mjs";
|
|
10
|
-
import { r as estimateQueuedMessageSize } from "../inbox-
|
|
10
|
+
import { r as estimateQueuedMessageSize } from "../inbox-C4iW1g0F.mjs";
|
|
11
11
|
import { n as ParallelMessageQueue, t as InProcessMessageQueue } from "../mq-eF96QxUT.mjs";
|
|
12
12
|
import { delay } from "es-toolkit";
|
|
13
13
|
import { test } from "@fedify/fixture";
|