@fedify/fedify 2.4.0-pr.936.41 → 2.5.0-dev.2271
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/README.md +50 -39
- package/dist/{assert-CJ1KXcvv.mjs → assert-D1Eafmd_.mjs} +1 -1
- package/dist/{assert_equals-BV7oLMxm.mjs → assert_equals-Z6IcEbWU.mjs} +2 -28
- package/dist/assert_exists-cffSpJ7X.mjs +28 -0
- package/dist/assert_false-CPdRnc3E.mjs +23 -0
- package/dist/assert_greater_or_equal-BlafOF4-.mjs +31 -0
- package/dist/{assert_instance_of-Q9KTBnrf.mjs → assert_instance_of-mrXWWNY-.mjs} +1 -1
- package/dist/{assert_not_equals-EPJPoxuf.mjs → assert_not_equals-CpPK2t89.mjs} +2 -1
- package/dist/assert_rejects-CTptdYck.mjs +39 -0
- package/dist/{assert_strict_equals-Ec20AUwa.mjs → assert_strict_equals-CYvBmkpC.mjs} +2 -1
- package/dist/{assert_throws-NiFfqbnH.mjs → assert_throws-BYITOvPO.mjs} +2 -1
- package/dist/assertion_error-B-cx0fFA.mjs +31 -0
- package/dist/audience-CHQ-FlLD.mjs +95 -0
- package/dist/{builder-DonuxRl_.mjs → builder-Bda6LK7A.mjs} +169 -14
- package/dist/{circuit-breaker-CBGyz5F7.mjs → circuit-breaker-XJ53md4S.mjs} +224 -17
- package/dist/circuit-breaker-test-utils-DW6YC_Pe.mjs +14 -0
- package/dist/{client-CjF5IYQS.mjs → client-CEnNz8O7.mjs} +144 -8
- package/dist/{codec-BBga-FWI.mjs → codec-C6rTrpIp.mjs} +26 -3
- package/dist/{collection-BIhlldqK.mjs → collection-CnnP1UAv.mjs} +1 -1
- package/dist/compat/mod.cjs +1 -1
- package/dist/compat/mod.d.cts +1 -1
- package/dist/compat/mod.d.ts +1 -1
- package/dist/compat/mod.js +1 -1
- package/dist/compat/outgoing-jsonld.test.mjs +71 -3
- package/dist/compat/public-audience.test.mjs +14 -5
- package/dist/compat/secured-document.test.d.mts +2 -0
- package/dist/compat/secured-document.test.mjs +58 -0
- package/dist/compat/transformers.test.mjs +5 -5
- package/dist/compound-proof-B-9mXxFW.mjs +989 -0
- package/dist/{context-Zii1f5xS.d.ts → context-7NyiqIcg.d.ts} +1600 -25
- package/dist/{context-BJXxPElm.mjs → context-8Tu9kea0.mjs} +21 -63
- package/dist/{context-lxX6I7as.d.cts → context-tsYPJ2Ew.d.cts} +1600 -25
- package/dist/{deno-BHzKn9Ig.mjs → deno-oR5aJKpU.mjs} +1 -1
- package/dist/dist-DJQM4u7i.mjs +189 -0
- package/dist/docloader-DBoYbvYW.mjs +87 -0
- package/dist/{esm-yYQfPhIY.mjs → esm-BHXXx4Wx.mjs} +13 -6
- package/dist/federation/audience.test.d.mts +2 -0
- package/dist/federation/audience.test.mjs +130 -0
- package/dist/federation/builder.test.mjs +54 -5
- package/dist/federation/circuit-breaker.test.mjs +838 -7
- package/dist/federation/collection.test.mjs +3 -3
- package/dist/federation/compound-fanout.test.d.mts +2 -0
- package/dist/federation/compound-fanout.test.mjs +228 -0
- package/dist/federation/handler-compound-proof.test.d.mts +2 -0
- package/dist/federation/handler-compound-proof.test.mjs +384 -0
- package/dist/federation/handler.test.mjs +385 -15
- package/dist/federation/hashlink-media.test.d.mts +2 -0
- package/dist/federation/hashlink-media.test.mjs +422 -0
- package/dist/federation/idempotency.test.mjs +6 -6
- package/dist/federation/inbox-report.test.d.mts +2 -0
- package/dist/federation/inbox-report.test.mjs +475 -0
- package/dist/federation/inbox.test.mjs +3 -3
- package/dist/federation/keycache.test.mjs +215 -14
- package/dist/federation/kv.test.mjs +3 -3
- package/dist/federation/metrics.test.mjs +5 -5
- package/dist/federation/middleware.test.mjs +967 -35
- package/dist/federation/mod.cjs +18 -261
- package/dist/federation/mod.d.cts +5 -5
- package/dist/federation/mod.d.ts +5 -5
- package/dist/federation/mod.js +279 -1
- package/dist/federation/mq.test.mjs +123 -47
- package/dist/federation/negotiation.test.mjs +4 -4
- package/dist/federation/outgoing-proof.test.d.mts +2 -0
- package/dist/federation/outgoing-proof.test.mjs +931 -0
- package/dist/federation/portable-actor.test.d.mts +2 -0
- package/dist/federation/portable-actor.test.mjs +496 -0
- package/dist/federation/portable-chain.test.d.mts +2 -0
- package/dist/federation/portable-chain.test.mjs +370 -0
- package/dist/federation/portable-collection.test.d.mts +2 -0
- package/dist/federation/portable-collection.test.mjs +832 -0
- package/dist/federation/portable-delivery.test.d.mts +2 -0
- package/dist/federation/portable-delivery.test.mjs +746 -0
- package/dist/federation/portable-gateway-keys.test.d.mts +2 -0
- package/dist/federation/portable-gateway-keys.test.mjs +686 -0
- package/dist/federation/portable-inbox.test.d.mts +2 -0
- package/dist/federation/portable-inbox.test.mjs +1535 -0
- package/dist/federation/portable-parse-uri.test.d.mts +2 -0
- package/dist/federation/portable-parse-uri.test.mjs +348 -0
- package/dist/federation/portable-route-activity.test.d.mts +2 -0
- package/dist/federation/portable-route-activity.test.mjs +259 -0
- package/dist/federation/portable.test.d.mts +2 -0
- package/dist/federation/portable.test.mjs +1072 -0
- package/dist/federation/retry.test.mjs +4 -3
- package/dist/federation/router.test.mjs +9 -159
- package/dist/federation/send.test.mjs +245 -27
- package/dist/federation/tasks/codec.test.mjs +4 -4
- package/dist/federation/tasks/enqueue.test.mjs +42 -4
- package/dist/federation/tasks/tasks.test.mjs +7 -6
- package/dist/federation/temporal.test.mjs +4 -4
- package/dist/federation/webfinger.test.mjs +275 -12
- package/dist/{middleware-FrSMAYEx.cjs → federation-CkZiAcWY.cjs} +8640 -3722
- package/dist/http-B5JT115n.cjs +10630 -0
- package/dist/http-DydWCB7R.js +6527 -0
- package/dist/{http-CPVMUgsW.mjs → http-siciWkmx.mjs} +397 -168
- package/dist/key-BspPiXqn.mjs +951 -0
- package/dist/key-C1nv7_jD.d.ts +1125 -0
- package/dist/key-DYxuyd-s.d.cts +1125 -0
- package/dist/key-owner-evidence-APB6NpSk.mjs +108 -0
- package/dist/keycache-Da8A8mZa.mjs +200 -0
- package/dist/{kv-D6hNiMTK.d.ts → kv-B2mzK5tl.d.cts} +3 -2
- package/dist/{kv-gJ8LYbxX.d.cts → kv-B2mzK5tl.d.ts} +3 -2
- package/dist/kv-DBRWVx3Q.mjs +104 -0
- package/dist/{kv-cache-KyGqJqSp.mjs → kv-cache-BF1hnW65.mjs} +1 -1
- package/dist/{kv-cache-5bnX3-Jq.js → kv-cache-CTQr1tbn.js} +54 -16
- package/dist/{kv-cache-DQ29C4XL.cjs → kv-cache-DCac1nEU.cjs} +55 -19
- package/dist/{ld-Cj9F_5AP.mjs → ld-CzaP-hJl.mjs} +44 -12
- package/dist/map-local-context-conflict-DOYEEJ3u.mjs +204 -0
- package/dist/map-local-create-note-B0SeXJms.mjs +214 -0
- package/dist/{metrics-DMk-nTxI.mjs → metrics-CYg9yxBL.mjs} +3 -2
- package/dist/metrics-DVKYY6K1.d.cts +36 -0
- package/dist/metrics-DoRtI0qU.d.ts +36 -0
- package/dist/{middleware-Y-kpsp6S.js → middleware-CsDDXKuL.js} +5493 -1103
- package/dist/{middleware-CvwTUgnP.mjs → middleware-D7_LO-Vs.mjs} +3157 -272
- package/dist/{middleware-CEctxBN6.mjs → middleware-DWjrfpcz.mjs} +1 -1
- package/dist/{mod-gOlPDuT8.d.cts → mod-BojP2Bw3.d.cts} +1 -1
- package/dist/mod-CavhAgLw.d.cts +320 -0
- package/dist/mod-CtpF2BU5.d.ts +320 -0
- package/dist/{mod-BtEaIEcD.d.cts → mod-DEZXwV6J.d.ts} +10 -4
- package/dist/{mod-UMmveiO0.d.ts → mod-Dw-nPxQh.d.cts} +10 -4
- package/dist/{mod-DLc2Ot6f.d.ts → mod-Xj5P4s4d.d.ts} +1 -1
- package/dist/mod.cjs +40 -39
- package/dist/mod.d.cts +10 -11
- package/dist/mod.d.ts +10 -11
- package/dist/mod.js +9 -9
- package/dist/{mq-llHKivST.mjs → mq-Dm1Wmtm-.mjs} +6 -0
- package/dist/nodeinfo/client.test.mjs +139 -4
- package/dist/nodeinfo/handler.test.mjs +5 -5
- package/dist/nodeinfo/mod.cjs +1 -1
- package/dist/nodeinfo/mod.d.cts +1 -1
- package/dist/nodeinfo/mod.d.ts +1 -1
- package/dist/nodeinfo/mod.js +1 -1
- package/dist/nodeinfo/types.test.mjs +4 -4
- package/dist/otel/exporter.test.mjs +3 -3
- package/dist/otel/mod.cjs +0 -1
- package/dist/otel/mod.d.cts +1 -1
- package/dist/otel/mod.d.ts +1 -1
- package/dist/{outgoing-jsonld-URuqsICz.mjs → outgoing-jsonld-4IJqPYos.mjs} +12 -10
- package/dist/{owner-DEvZuyOE.d.cts → owner-BF0L9cMt.d.cts} +11 -0
- package/dist/{owner-CnngXDNJ.d.ts → owner-BSzr5-I8.d.ts} +11 -0
- package/dist/owner-DYgfTFHy.mjs +267 -0
- package/dist/portable-collection-BpsVsRov.js +670 -0
- package/dist/portable-collection-C74P1vtC.mjs +418 -0
- package/dist/portable-collection-DZd2bm7M.cjs +686 -0
- package/dist/portable-key-BIMLrAP4.mjs +549 -0
- package/dist/portable-key-id-Ca30-hOa.mjs +248 -0
- package/dist/proof-Dxy6ByqI.mjs +1299 -0
- package/dist/{public-audience-Cr5MsnMq.mjs → public-audience--klBIOk1.mjs} +15 -10
- package/dist/router-u5O5KCQr.mjs +156 -0
- package/dist/runtime/mod.cjs +1 -1
- package/dist/runtime/mod.js +1 -1
- package/dist/secured-document-CxzZZ9nL.mjs +35 -0
- package/dist/send-C4dDpAxm.mjs +495 -0
- package/dist/sig/accept.test.mjs +1 -1
- package/dist/sig/compound-proof-discovery.test.d.mts +2 -0
- package/dist/sig/compound-proof-discovery.test.mjs +331 -0
- package/dist/sig/compound-proof-producer.test.d.mts +2 -0
- package/dist/sig/compound-proof-producer.test.mjs +107 -0
- package/dist/sig/compound-proof-verification.test.d.mts +2 -0
- package/dist/sig/compound-proof-verification.test.mjs +833 -0
- package/dist/sig/compound-proof.test.d.mts +2 -0
- package/dist/sig/compound-proof.test.mjs +411 -0
- package/dist/sig/http.test.mjs +702 -31
- package/dist/sig/key-owner-evidence.test.d.mts +2 -0
- package/dist/sig/key-owner-evidence.test.mjs +100 -0
- package/dist/sig/key.test.mjs +220 -8
- package/dist/sig/ld.test.mjs +65 -7
- package/dist/sig/mitra-receive-interop.test.d.mts +2 -0
- package/dist/sig/mitra-receive-interop.test.mjs +260 -0
- package/dist/sig/mitra-send-interop.test.d.mts +2 -0
- package/dist/sig/mitra-send-interop.test.mjs +461 -0
- package/dist/sig/mod.cjs +18 -16
- package/dist/sig/mod.d.cts +4 -4
- package/dist/sig/mod.d.ts +4 -4
- package/dist/sig/mod.js +3 -3
- package/dist/sig/owner.test.mjs +108 -9
- package/dist/sig/portable-collection.test.d.mts +2 -0
- package/dist/sig/portable-collection.test.mjs +697 -0
- package/dist/sig/portable-interop.test.d.mts +2 -0
- package/dist/sig/portable-interop.test.mjs +156 -0
- package/dist/sig/portable-key-id.test.d.mts +2 -0
- package/dist/sig/portable-key-id.test.mjs +67 -0
- package/dist/sig/portable-key.test.d.mts +2 -0
- package/dist/sig/portable-key.test.mjs +1439 -0
- package/dist/sig/proof.test.mjs +1753 -16
- package/dist/sig/tootik-request-interop.test.d.mts +2 -0
- package/dist/sig/tootik-request-interop.test.mjs +190 -0
- package/dist/sig/tootik-send-interop.test.d.mts +2 -0
- package/dist/sig/tootik-send-interop.test.mjs +331 -0
- package/dist/sig/verification.test.d.mts +2 -0
- package/dist/sig/verification.test.mjs +310 -0
- package/dist/std__assert-DvMDRPes.mjs +8 -0
- package/dist/{testing-CO7ftO8A.mjs → tasks-IG3pHfvZ.mjs} +2 -2
- package/dist/{temporal-fsXO5IvD.mjs → temporal-D0KJI4NF.mjs} +3 -3
- package/dist/testing/context.test.d.mts +2 -0
- package/dist/testing/context.test.mjs +19 -0
- package/dist/testing/kv.test.d.mts +2 -0
- package/dist/testing/kv.test.mjs +101 -0
- package/dist/testing/mod.d.mts +1617 -48
- package/dist/testing/mod.mjs +6 -3
- package/dist/testing-t8xDeJZ5.mjs +8 -0
- package/dist/{transformers-DGwl-hD1.cjs → transformers-BalCrSsr.cjs} +0 -1
- package/dist/{types-DC1pNgJA.js → types-_S2_MeLF.js} +144 -8
- package/dist/{types-CPym83zc.cjs → types-poIao40f.cjs} +160 -7
- package/dist/utils/docloader.test.mjs +530 -8
- package/dist/utils/kv-cache.test.mjs +2 -2
- package/dist/utils/mod.cjs +1 -1
- package/dist/utils/mod.d.cts +1 -1
- package/dist/utils/mod.d.ts +1 -1
- package/dist/utils/mod.js +1 -1
- package/dist/verification-C3954hQh.mjs +5 -0
- package/dist/verification-Dpfcw8ml.mjs +105 -0
- package/dist/vocab/cjs.test.mjs +1 -1
- package/package.json +8 -8
- package/dist/assert_rejects-EgstcQy5.mjs +0 -82
- package/dist/docloader-e1khNUKy.mjs +0 -49
- package/dist/http-CsmQ-BQ4.js +0 -2483
- package/dist/http-VyDTd4G3.d.cts +0 -553
- package/dist/http-hlIjmewS.cjs +0 -2694
- package/dist/http-lf8Hsd91.d.ts +0 -553
- package/dist/key-DfPsX8hv.mjs +0 -453
- package/dist/keycache-_DHqz5z_.mjs +0 -97
- package/dist/metrics-CoUJLQhZ.d.cts +0 -276
- package/dist/metrics-Dc4jR-IC.d.ts +0 -276
- package/dist/mod-B0hW12_O.d.cts +0 -307
- package/dist/mod-COIAjwRS.d.ts +0 -307
- package/dist/owner-Br9YYzn_.mjs +0 -120
- package/dist/proof-B4ngoaNQ.mjs +0 -316
- package/dist/proof-B6E0XUXJ.js +0 -1415
- package/dist/proof-NN4xCQGL.cjs +0 -1562
- package/dist/send-CxHKUNzv.mjs +0 -239
- package/dist/std__assert-B2NnY9bq.mjs +0 -79
- package/dist/temporal-polyfill-BCdTHexd.cjs +0 -3565
- /package/dist/{accept-8PiolDP7.mjs → accept-CPVqki78.mjs} +0 -0
- /package/dist/{activity-listener-BtTSxZWA.mjs → activity-listener-C-BSbKI7.mjs} +0 -0
- /package/dist/{client-CAM_bQXx.d.cts → client-D-XP_Ccb.d.cts} +0 -0
- /package/dist/{client-CSddvgWN.d.ts → client-D-XP_Ccb.d.ts} +0 -0
- /package/dist/{keys-Dbyd7bhl.mjs → keys-DIJNHW-Y.mjs} +0 -0
- /package/dist/{kv-CXBAok3k.mjs → kv-DCHkaJ9-.mjs} +0 -0
- /package/dist/{negotiation-RuwrPFqi.mjs → negotiation-CCocWT_N.mjs} +0 -0
- /package/dist/{retry-DgFqeS5k.mjs → retry-zX5xw5e0.mjs} +0 -0
- /package/dist/{chunk-D5IdezsZ.js → rolldown-runtime-BC-Eo5Mj.js} +0 -0
- /package/dist/{chunk-Czpeue4M.cjs → rolldown-runtime-Dmm3t92W.cjs} +0 -0
- /package/dist/{transformers-DXze6FUB.js → transformers-DAtXl_Kc.js} +0 -0
- /package/dist/{types-CrtdVuDP.mjs → types-DE_LV1JB.mjs} +0 -0
|
@@ -0,0 +1,105 @@
|
|
|
1
|
+
import "temporal-polyfill";
|
|
2
|
+
import "urlpattern-polyfill";
|
|
3
|
+
globalThis.addEventListener = () => {};
|
|
4
|
+
import { CryptographicKey } from "@fedify/vocab";
|
|
5
|
+
//#region src/sig/verification.ts
|
|
6
|
+
const verificationObservation = Symbol("verificationObservation");
|
|
7
|
+
function snapshotKey(key) {
|
|
8
|
+
if (key.publicKey == null) throw new TypeError("Verification key has no public key.");
|
|
9
|
+
const id = key.id == null ? null : new URL(key.id.href);
|
|
10
|
+
return key instanceof CryptographicKey ? {
|
|
11
|
+
type: "cryptographicKey",
|
|
12
|
+
id,
|
|
13
|
+
ownerId: key.ownerId == null ? null : new URL(key.ownerId.href),
|
|
14
|
+
publicKey: key.publicKey
|
|
15
|
+
} : {
|
|
16
|
+
type: "multikey",
|
|
17
|
+
id,
|
|
18
|
+
controllerId: key.controllerId == null ? null : new URL(key.controllerId.href),
|
|
19
|
+
publicKey: key.publicKey
|
|
20
|
+
};
|
|
21
|
+
}
|
|
22
|
+
function triedKey(options, key) {
|
|
23
|
+
const check = options[verificationObservation]?.check;
|
|
24
|
+
if (check != null) check.triedKeys.push(snapshotKey(key));
|
|
25
|
+
}
|
|
26
|
+
async function observeCheck(options, identity, declaredKeyId, operation) {
|
|
27
|
+
const observation = options[verificationObservation];
|
|
28
|
+
if (observation?.attempt == null) return await operation(observation ?? { attempts: [] });
|
|
29
|
+
const check = {
|
|
30
|
+
identity,
|
|
31
|
+
declaredKeyId,
|
|
32
|
+
triedKeys: []
|
|
33
|
+
};
|
|
34
|
+
const base = {
|
|
35
|
+
...identity,
|
|
36
|
+
declaredKeyId,
|
|
37
|
+
triedKeys: check.triedKeys
|
|
38
|
+
};
|
|
39
|
+
try {
|
|
40
|
+
const key = await operation({
|
|
41
|
+
...observation,
|
|
42
|
+
check
|
|
43
|
+
});
|
|
44
|
+
observation.attempt.checks.push(key == null ? {
|
|
45
|
+
...base,
|
|
46
|
+
status: "rejected",
|
|
47
|
+
reason: check.reason ?? { type: "invalidSignature" }
|
|
48
|
+
} : {
|
|
49
|
+
...base,
|
|
50
|
+
status: "verified",
|
|
51
|
+
key: check.triedKeys.at(-1) ?? snapshotKey(key)
|
|
52
|
+
});
|
|
53
|
+
return key;
|
|
54
|
+
} catch (error) {
|
|
55
|
+
observation.attempt.checks.push({
|
|
56
|
+
...base,
|
|
57
|
+
status: "error",
|
|
58
|
+
error
|
|
59
|
+
});
|
|
60
|
+
throw error;
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
async function observeAttempt(options, mechanism, operation, isVerified) {
|
|
64
|
+
const observation = options[verificationObservation];
|
|
65
|
+
if (observation == null) return await operation({ attempts: [] });
|
|
66
|
+
const attempt = { checks: [] };
|
|
67
|
+
const base = {
|
|
68
|
+
mechanism,
|
|
69
|
+
subject: observation.subject == null ? {
|
|
70
|
+
id: null,
|
|
71
|
+
pointer: ""
|
|
72
|
+
} : {
|
|
73
|
+
id: observation.subject.id == null ? null : new URL(observation.subject.id.href),
|
|
74
|
+
pointer: observation.subject.pointer
|
|
75
|
+
},
|
|
76
|
+
checks: attempt.checks
|
|
77
|
+
};
|
|
78
|
+
try {
|
|
79
|
+
const value = await operation({
|
|
80
|
+
...observation,
|
|
81
|
+
subject: base.subject,
|
|
82
|
+
attempt,
|
|
83
|
+
check: void 0
|
|
84
|
+
});
|
|
85
|
+
observation.attempts.push(isVerified(value) ? {
|
|
86
|
+
...base,
|
|
87
|
+
status: "verified",
|
|
88
|
+
signatures: attempt.checks.filter((check) => check.status === "verified")
|
|
89
|
+
} : {
|
|
90
|
+
...base,
|
|
91
|
+
status: "rejected",
|
|
92
|
+
reason: attempt.reason ?? { type: "signatureVerificationFailed" }
|
|
93
|
+
});
|
|
94
|
+
return value;
|
|
95
|
+
} catch (error) {
|
|
96
|
+
observation.attempts.push({
|
|
97
|
+
...base,
|
|
98
|
+
status: "error",
|
|
99
|
+
error
|
|
100
|
+
});
|
|
101
|
+
throw error;
|
|
102
|
+
}
|
|
103
|
+
}
|
|
104
|
+
//#endregion
|
|
105
|
+
export { verificationObservation as a, triedKey as i, observeCheck as n, snapshotKey as r, observeAttempt as t };
|
package/dist/vocab/cjs.test.mjs
CHANGED
|
@@ -5,7 +5,7 @@ import { createRequire } from "node:module";
|
|
|
5
5
|
import { strictEqual } from "node:assert";
|
|
6
6
|
import { test } from "@fedify/fixture";
|
|
7
7
|
//#region src/vocab/cjs.test.ts
|
|
8
|
-
test("CommonJS vocab entry exports Object", { ignore: "Deno" in globalThis }, () => {
|
|
8
|
+
test("CommonJS vocab entry exports Object", { ignore: "Deno" in globalThis || "navigator" in globalThis && navigator.userAgent === "Cloudflare-Workers" }, () => {
|
|
9
9
|
const vocab = createRequire(import.meta.url)("./mod.cjs");
|
|
10
10
|
strictEqual(typeof vocab.Object, "function");
|
|
11
11
|
strictEqual(typeof vocab.Update, "function");
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@fedify/fedify",
|
|
3
|
-
"version": "2.
|
|
3
|
+
"version": "2.5.0-dev.2271+49d937e2",
|
|
4
4
|
"description": "An ActivityPub server framework",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"ActivityPub",
|
|
@@ -151,15 +151,15 @@
|
|
|
151
151
|
"structured-field-values": "^2.0.4",
|
|
152
152
|
"temporal-polyfill": "^1.0.1",
|
|
153
153
|
"urlpattern-polyfill": "^10.1.0",
|
|
154
|
-
"@fedify/uri-template": "2.
|
|
155
|
-
"@fedify/
|
|
156
|
-
"@fedify/
|
|
157
|
-
"@fedify/vocab": "2.
|
|
154
|
+
"@fedify/uri-template": "2.5.0-dev.2271+49d937e2",
|
|
155
|
+
"@fedify/webfinger": "2.5.0-dev.2271+49d937e2",
|
|
156
|
+
"@fedify/vocab-runtime": "2.5.0-dev.2271+49d937e2",
|
|
157
|
+
"@fedify/vocab": "2.5.0-dev.2271+49d937e2"
|
|
158
158
|
},
|
|
159
159
|
"devDependencies": {
|
|
160
160
|
"@std/assert": "npm:@jsr/std__assert@^0.226.0",
|
|
161
161
|
"@std/path": "npm:@jsr/std__path@^1.0.6",
|
|
162
|
-
"@types/node": "^24.2
|
|
162
|
+
"@types/node": "^24.12.2",
|
|
163
163
|
"fetch-mock": "^12.5.4",
|
|
164
164
|
"miniflare": "^4.20250523.0",
|
|
165
165
|
"tsdown": "^0.22.0",
|
|
@@ -167,7 +167,7 @@
|
|
|
167
167
|
"typescript": "^6.0.0",
|
|
168
168
|
"wrangler": "^4.17.0",
|
|
169
169
|
"@fedify/fixture": "2.0.0",
|
|
170
|
-
"@fedify/vocab-tools": "^2.
|
|
170
|
+
"@fedify/vocab-tools": "^2.5.0-dev.2271+49d937e2"
|
|
171
171
|
},
|
|
172
172
|
"scripts": {
|
|
173
173
|
"build:self": "tsdown",
|
|
@@ -177,6 +177,6 @@
|
|
|
177
177
|
"test": "cd dist/ && node --test",
|
|
178
178
|
"pretest:bun": "pnpm build",
|
|
179
179
|
"test:bun": "cd dist/ && bun test --timeout 60000",
|
|
180
|
-
"test:cfworkers": "deno task codegen && wrangler deploy --dry-run --outdir src/cfworkers && node --import=tsx src/cfworkers/client.ts"
|
|
180
|
+
"test:cfworkers": "deno task codegen && wrangler deploy --dry-run --outdir src/cfworkers && node --import=tsx scripts/check_cfworkers.ts && node --import=tsx src/cfworkers/client.ts"
|
|
181
181
|
}
|
|
182
182
|
}
|
|
@@ -1,82 +0,0 @@
|
|
|
1
|
-
import "temporal-polyfill";
|
|
2
|
-
import "urlpattern-polyfill";
|
|
3
|
-
globalThis.addEventListener = () => {};
|
|
4
|
-
import { l as AssertionError, s as format } from "./assert_equals-BV7oLMxm.mjs";
|
|
5
|
-
import { n as assertIsError } from "./assert_throws-NiFfqbnH.mjs";
|
|
6
|
-
//#region ../../node_modules/.pnpm/@jsr+std__assert@0.226.0/node_modules/@jsr/std__assert/assert_false.js
|
|
7
|
-
/**
|
|
8
|
-
* Make an assertion, error will be thrown if `expr` have truthy value.
|
|
9
|
-
*
|
|
10
|
-
* @example Usage
|
|
11
|
-
* ```ts no-eval
|
|
12
|
-
* import { assertFalse } from "@std/assert/assert-false";
|
|
13
|
-
*
|
|
14
|
-
* assertFalse(false); // Doesn't throw
|
|
15
|
-
* assertFalse(true); // Throws
|
|
16
|
-
* ```
|
|
17
|
-
*
|
|
18
|
-
* @param expr The expression to test.
|
|
19
|
-
* @param msg The optional message to display if the assertion fails.
|
|
20
|
-
*/ function assertFalse(expr, msg = "") {
|
|
21
|
-
if (expr) throw new AssertionError(msg);
|
|
22
|
-
}
|
|
23
|
-
//#endregion
|
|
24
|
-
//#region ../../node_modules/.pnpm/@jsr+std__assert@0.226.0/node_modules/@jsr/std__assert/assert_greater_or_equal.js
|
|
25
|
-
/**
|
|
26
|
-
* Make an assertion that `actual` is greater than or equal to `expected`.
|
|
27
|
-
* If not then throw.
|
|
28
|
-
*
|
|
29
|
-
* @example Usage
|
|
30
|
-
* ```ts no-eval
|
|
31
|
-
* import { assertGreaterOrEqual } from "@std/assert/assert-greater-or-equal";
|
|
32
|
-
*
|
|
33
|
-
* assertGreaterOrEqual(2, 1); // Doesn't throw
|
|
34
|
-
* assertGreaterOrEqual(1, 1); // Doesn't throw
|
|
35
|
-
* assertGreaterOrEqual(0, 1); // Throws
|
|
36
|
-
* ```
|
|
37
|
-
*
|
|
38
|
-
* @typeParam T The type of the values to compare.
|
|
39
|
-
* @param actual The actual value to compare.
|
|
40
|
-
* @param expected The expected value to compare.
|
|
41
|
-
* @param msg The optional message to display if the assertion fails.
|
|
42
|
-
*/ function assertGreaterOrEqual(actual, expected, msg) {
|
|
43
|
-
if (actual >= expected) return;
|
|
44
|
-
const actualString = format(actual);
|
|
45
|
-
const expectedString = format(expected);
|
|
46
|
-
throw new AssertionError(msg ?? `Expect ${actualString} >= ${expectedString}`);
|
|
47
|
-
}
|
|
48
|
-
//#endregion
|
|
49
|
-
//#region ../../node_modules/.pnpm/@jsr+std__assert@0.226.0/node_modules/@jsr/std__assert/assert_rejects.js
|
|
50
|
-
async function assertRejects(fn, errorClassOrMsg, msgIncludesOrMsg, msg) {
|
|
51
|
-
let ErrorClass = void 0;
|
|
52
|
-
let msgIncludes = void 0;
|
|
53
|
-
let err;
|
|
54
|
-
if (typeof errorClassOrMsg !== "string") {
|
|
55
|
-
if (errorClassOrMsg === void 0 || errorClassOrMsg.prototype instanceof Error || errorClassOrMsg.prototype === Error.prototype) {
|
|
56
|
-
ErrorClass = errorClassOrMsg;
|
|
57
|
-
msgIncludes = msgIncludesOrMsg;
|
|
58
|
-
}
|
|
59
|
-
} else msg = errorClassOrMsg;
|
|
60
|
-
let doesThrow = false;
|
|
61
|
-
let isPromiseReturned = false;
|
|
62
|
-
const msgSuffix = msg ? `: ${msg}` : ".";
|
|
63
|
-
try {
|
|
64
|
-
const possiblePromise = fn();
|
|
65
|
-
if (possiblePromise && typeof possiblePromise === "object" && typeof possiblePromise.then === "function") {
|
|
66
|
-
isPromiseReturned = true;
|
|
67
|
-
await possiblePromise;
|
|
68
|
-
} else throw Error();
|
|
69
|
-
} catch (error) {
|
|
70
|
-
if (!isPromiseReturned) throw new AssertionError(`Function throws when expected to reject${msgSuffix}`);
|
|
71
|
-
if (ErrorClass) {
|
|
72
|
-
if (!(error instanceof Error)) throw new AssertionError(`A non-Error object was rejected${msgSuffix}`);
|
|
73
|
-
assertIsError(error, ErrorClass, msgIncludes, msg);
|
|
74
|
-
}
|
|
75
|
-
err = error;
|
|
76
|
-
doesThrow = true;
|
|
77
|
-
}
|
|
78
|
-
if (!doesThrow) throw new AssertionError(`Expected function to reject${msgSuffix}`);
|
|
79
|
-
return err;
|
|
80
|
-
}
|
|
81
|
-
//#endregion
|
|
82
|
-
export { assertGreaterOrEqual as n, assertFalse as r, assertRejects as t };
|
|
@@ -1,49 +0,0 @@
|
|
|
1
|
-
import "temporal-polyfill";
|
|
2
|
-
import "urlpattern-polyfill";
|
|
3
|
-
globalThis.addEventListener = () => {};
|
|
4
|
-
import { o as validateCryptoKey } from "./key-DfPsX8hv.mjs";
|
|
5
|
-
import { n as doubleKnock } from "./http-CPVMUgsW.mjs";
|
|
6
|
-
import { getLogger } from "@logtape/logtape";
|
|
7
|
-
import { curry } from "es-toolkit";
|
|
8
|
-
import { UrlError, createActivityPubRequest, getRemoteDocument, logRequest, validatePublicUrl } from "@fedify/vocab-runtime";
|
|
9
|
-
//#region src/utils/docloader.ts
|
|
10
|
-
const logger = getLogger([
|
|
11
|
-
"fedify",
|
|
12
|
-
"utils",
|
|
13
|
-
"docloader"
|
|
14
|
-
]);
|
|
15
|
-
/**
|
|
16
|
-
* Gets an authenticated {@link DocumentLoader} for the given identity.
|
|
17
|
-
* Note that an authenticated document loader intentionally does not cache
|
|
18
|
-
* the fetched documents.
|
|
19
|
-
* @param identity The identity to get the document loader for.
|
|
20
|
-
* The actor's key pair.
|
|
21
|
-
* @param options The options for the document loader.
|
|
22
|
-
* @returns The authenticated document loader.
|
|
23
|
-
* @throws {TypeError} If the key is invalid or unsupported.
|
|
24
|
-
* @since 0.4.0
|
|
25
|
-
*/
|
|
26
|
-
function getAuthenticatedDocumentLoader(identity, { allowPrivateAddress, maxRedirection, userAgent, specDeterminer, tracerProvider } = {}) {
|
|
27
|
-
validateCryptoKey(identity.privateKey);
|
|
28
|
-
async function load(url, options) {
|
|
29
|
-
if (!allowPrivateAddress) try {
|
|
30
|
-
await validatePublicUrl(url);
|
|
31
|
-
} catch (error) {
|
|
32
|
-
if (error instanceof UrlError) logger.error("Disallowed private URL: {url}", {
|
|
33
|
-
url,
|
|
34
|
-
error
|
|
35
|
-
});
|
|
36
|
-
throw error;
|
|
37
|
-
}
|
|
38
|
-
return getRemoteDocument(url, await doubleKnock(createActivityPubRequest(url, { userAgent }), identity, {
|
|
39
|
-
maxRedirection,
|
|
40
|
-
specDeterminer,
|
|
41
|
-
log: curry(logRequest)(logger),
|
|
42
|
-
tracerProvider,
|
|
43
|
-
signal: options?.signal
|
|
44
|
-
}), load);
|
|
45
|
-
}
|
|
46
|
-
return load;
|
|
47
|
-
}
|
|
48
|
-
//#endregion
|
|
49
|
-
export { getAuthenticatedDocumentLoader as t };
|