@fedify/fedify 2.5.0-dev.2440 → 2.5.0-dev.2448

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.
Files changed (117) hide show
  1. package/dist/{activity-listener-C-BSbKI7.mjs → activity-listener-CELFAodc.mjs} +8 -4
  2. package/dist/{builder-CTasaZgj.mjs → builder-DbC8bn6k.mjs} +5 -5
  3. package/dist/compat/mod.d.cts +1 -1
  4. package/dist/compat/mod.d.ts +1 -1
  5. package/dist/compat/transformers.test.mjs +1 -1
  6. package/dist/{compound-proof-D5r-dQMr.mjs → compound-proof-heeXW2_A.mjs} +2 -2
  7. package/dist/{context-DPocjp1l.d.cts → context-BazwQrHn.d.cts} +307 -5
  8. package/dist/{context-8Tu9kea0.mjs → context-COHd1Rsh.mjs} +2 -0
  9. package/dist/{context-2wLkQrjb.d.ts → context-GlHrzdSP.d.ts} +307 -5
  10. package/dist/{deno-DR1uYWpm.mjs → deno-Dpewt_jJ.mjs} +1 -1
  11. package/dist/{docloader-BpCJ2dHm.mjs → docloader-CpsDyqVN.mjs} +2 -2
  12. package/dist/federation/builder.test.mjs +1 -1
  13. package/dist/federation/compound-fanout.test.mjs +3 -3
  14. package/dist/federation/handler-compound-proof.test.mjs +5 -5
  15. package/dist/federation/handler.test.mjs +21 -6
  16. package/dist/federation/hashlink-media.test.mjs +2 -2
  17. package/dist/federation/idempotency.test.mjs +2 -2
  18. package/dist/federation/inbox-actorless.test.d.mts +2 -0
  19. package/dist/federation/inbox-actorless.test.mjs +487 -0
  20. package/dist/federation/inbox-authentication.test.d.mts +2 -0
  21. package/dist/federation/inbox-authentication.test.mjs +116 -0
  22. package/dist/federation/inbox-report.test.mjs +5 -5
  23. package/dist/federation/inbox-view.test.d.mts +2 -0
  24. package/dist/federation/inbox-view.test.mjs +369 -0
  25. package/dist/federation/inbox.test.mjs +22 -12
  26. package/dist/federation/metrics.test.mjs +1 -1
  27. package/dist/federation/middleware.test.mjs +24 -9
  28. package/dist/federation/mod.cjs +2 -1
  29. package/dist/federation/mod.d.cts +3 -3
  30. package/dist/federation/mod.d.ts +3 -3
  31. package/dist/federation/mod.js +8 -2
  32. package/dist/federation/mq.test.mjs +36 -1
  33. package/dist/federation/outgoing-proof.test.mjs +4 -4
  34. package/dist/federation/portable-actor.test.mjs +3 -3
  35. package/dist/federation/portable-chain.test.mjs +3 -3
  36. package/dist/federation/portable-collection.test.mjs +4 -4
  37. package/dist/federation/portable-delivery.test.mjs +2 -2
  38. package/dist/federation/portable-gateway-keys.test.mjs +6 -6
  39. package/dist/federation/portable-inbox.test.mjs +4 -4
  40. package/dist/federation/portable-parse-uri.test.mjs +1 -1
  41. package/dist/federation/portable-route-activity.test.mjs +2 -2
  42. package/dist/federation/portable.test.mjs +3 -3
  43. package/dist/federation/send.test.mjs +3 -3
  44. package/dist/federation/tasks/enqueue.test.mjs +3 -3
  45. package/dist/federation/tasks/tasks.test.mjs +4 -4
  46. package/dist/federation/temporal.test.mjs +1 -1
  47. package/dist/federation/webfinger.test.mjs +2 -2
  48. package/dist/{federation-eYRUxkUW.cjs → federation-D8YexkP1.cjs} +1174 -132
  49. package/dist/{http-CgaoFGXV.js → http-BBr-VLil.js} +143 -16
  50. package/dist/{http-CRrg14tX.mjs → http-BZkyQIkb.mjs} +4 -4
  51. package/dist/{http-CmFHJm6o.cjs → http-CAl7Num5.cjs} +161 -16
  52. package/dist/inbox-authentication-DflPYlLL.mjs +171 -0
  53. package/dist/inbox-view-NE9wXdLo.mjs +385 -0
  54. package/dist/inbox-wDuMKaFW.mjs +312 -0
  55. package/dist/{kv-cache-MxJrD9gD.mjs → kv-cache-CTQSfkmp.mjs} +1 -1
  56. package/dist/{kv-cache-DvVRGOMw.cjs → kv-cache-CjgCOz3i.cjs} +1 -1
  57. package/dist/{kv-cache-DeagaIIB.js → kv-cache-U7uz5nx4.js} +1 -1
  58. package/dist/{ld-CUM16-EE.mjs → ld-CQFuiah9.mjs} +52 -9
  59. package/dist/ld-CcuZ4NZa.d.ts +250 -0
  60. package/dist/ld-Cel1RRZ5.d.cts +250 -0
  61. package/dist/{metrics-DIM8ZCKq.mjs → metrics-B-QxRSSR.mjs} +1 -1
  62. package/dist/{middleware-Bx_QxJ0s.mjs → middleware-BdlNa8BD.mjs} +1 -1
  63. package/dist/{middleware-CDdFG6xf.mjs → middleware-CuVa0UuS.mjs} +461 -99
  64. package/dist/{middleware-CGfFooYv.js → middleware-P-AZEQMn.js} +1171 -142
  65. package/dist/mod-B2783_3v.d.cts +154 -0
  66. package/dist/mod-BHQE-7WQ.d.ts +154 -0
  67. package/dist/{mod-Dm-7RdhR.d.ts → mod-DjZfJj9R.d.ts} +1 -1
  68. package/dist/{mod-DKGoPoQC.d.cts → mod-DvWOv2Ho.d.cts} +1 -1
  69. package/dist/mod.cjs +5 -4
  70. package/dist/mod.d.cts +6 -6
  71. package/dist/mod.d.ts +6 -6
  72. package/dist/mod.js +5 -5
  73. package/dist/{mq-Dm1Wmtm-.mjs → mq-eF96QxUT.mjs} +6 -0
  74. package/dist/nodeinfo/handler.test.mjs +2 -2
  75. package/dist/{owner-DoQDS_g0.mjs → owner-ccKkQOAf.mjs} +3 -3
  76. package/dist/{portable-collection-DiBqtGSM.mjs → portable-collection-CndnpXfo.mjs} +2 -2
  77. package/dist/{portable-collection-BVKSWfBe.js → portable-collection-DUlQ3s2M.js} +1 -1
  78. package/dist/{portable-collection-C-etRRF0.cjs → portable-collection-TC-kvkVI.cjs} +1 -1
  79. package/dist/{portable-key-DSRuCUpF.mjs → portable-key-D5tFOoV-.mjs} +1 -1
  80. package/dist/{proof-DWpruPWs.mjs → proof-DPoF06nz.mjs} +98 -10
  81. package/dist/{send-H0z9Ey5l.mjs → send-CF44O1Df.mjs} +3 -3
  82. package/dist/sig/compound-proof-discovery.test.mjs +1 -1
  83. package/dist/sig/compound-proof-producer.test.mjs +1 -1
  84. package/dist/sig/compound-proof-verification.test.mjs +2 -2
  85. package/dist/sig/compound-proof.test.mjs +2 -2
  86. package/dist/sig/http.test.mjs +2 -2
  87. package/dist/sig/key.test.mjs +1 -1
  88. package/dist/sig/ld.test.mjs +1 -1
  89. package/dist/sig/mitra-receive-interop.test.mjs +4 -4
  90. package/dist/sig/mitra-send-interop.test.mjs +3 -3
  91. package/dist/sig/mod.cjs +2 -2
  92. package/dist/sig/mod.d.cts +2 -2
  93. package/dist/sig/mod.d.ts +2 -2
  94. package/dist/sig/mod.js +2 -2
  95. package/dist/sig/owner.test.mjs +1 -1
  96. package/dist/sig/portable-collection.test.mjs +1 -1
  97. package/dist/sig/portable-interop.test.mjs +3 -3
  98. package/dist/sig/portable-key.test.mjs +5 -5
  99. package/dist/sig/proof.test.mjs +44 -4
  100. package/dist/sig/tootik-request-interop.test.mjs +4 -4
  101. package/dist/sig/tootik-send-interop.test.mjs +3 -3
  102. package/dist/sig/verification.test.mjs +3 -3
  103. package/dist/{temporal-BiSBCImA.mjs → temporal-XlZ4Wb94.mjs} +1 -1
  104. package/dist/testing/kv.test.mjs +1 -1
  105. package/dist/testing/mod.d.mts +265 -3
  106. package/dist/testing/mod.mjs +2 -2
  107. package/dist/{testing-t8xDeJZ5.mjs → testing-Dbr21vZk.mjs} +1 -1
  108. package/dist/utils/docloader.test.mjs +2 -2
  109. package/dist/utils/kv-cache.test.mjs +1 -1
  110. package/dist/utils/mod.cjs +1 -1
  111. package/dist/utils/mod.js +1 -1
  112. package/package.json +7 -7
  113. package/dist/inbox-BwPoSUEv.mjs +0 -188
  114. package/dist/mod-BRpER-B0.d.ts +0 -320
  115. package/dist/mod-xAfaLS4T.d.cts +0 -320
  116. package/dist/owner-BF0L9cMt.d.cts +0 -78
  117. package/dist/owner-BSzr5-I8.d.ts +0 -78
@@ -0,0 +1,369 @@
1
+ import "temporal-polyfill";
2
+ import "urlpattern-polyfill";
3
+ globalThis.addEventListener = () => {};
4
+ import { t as assertEquals } from "../assert_equals-Z6IcEbWU.mjs";
5
+ import { t as assertFalse } from "../assert_false-CPdRnc3E.mjs";
6
+ import "../std__assert-DvMDRPes.mjs";
7
+ import { t as assertRejects } from "../assert_rejects-CTptdYck.mjs";
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-NE9wXdLo.mjs";
10
+ import { getDocumentLoader, preloadedContexts } from "@fedify/vocab-runtime";
11
+ import { test } from "@fedify/fixture";
12
+ //#region src/federation/inbox-view.test.ts
13
+ const AS = "https://www.w3.org/ns/activitystreams";
14
+ const CUSTOM = "https://remote.example/contexts/custom";
15
+ function createMutableLoader() {
16
+ const loads = [];
17
+ const preloaded = getDocumentLoader();
18
+ return {
19
+ loads,
20
+ loader: (url, options) => {
21
+ loads.push(url);
22
+ if (url === CUSTOM) {
23
+ const n = loads.filter((u) => u === CUSTOM).length;
24
+ return Promise.resolve({
25
+ contextUrl: null,
26
+ documentUrl: url,
27
+ document: { "@context": { tgt: {
28
+ "@id": n % 2 === 1 ? `${AS}#object` : `${AS}#target`,
29
+ "@type": "@id"
30
+ } } }
31
+ });
32
+ }
33
+ return preloaded(url, options);
34
+ }
35
+ };
36
+ }
37
+ test("createContextSnapshot() memoizes responses for a delivery", async () => {
38
+ const { loader, loads } = createMutableLoader();
39
+ const snapshot = createContextSnapshot(loader);
40
+ const standard = snapshot.loader("standard");
41
+ const first = await standard(CUSTOM);
42
+ const second = await standard(CUSTOM);
43
+ assertEquals(first, second);
44
+ assertEquals(loads.filter((url) => url === CUSTOM).length, 1);
45
+ first.document["@context"] = null;
46
+ assertEquals((await standard(CUSTOM)).document, second.document);
47
+ assertEquals(snapshot.entries().map((entry) => [entry.policy, entry.url]), [["standard", CUSTOM]]);
48
+ snapshot.release();
49
+ await standard(CUSTOM);
50
+ assertEquals(loads.filter((url) => url === CUSTOM).length, 2);
51
+ });
52
+ test("createContextSnapshot() memoizes failures for a delivery", async () => {
53
+ let calls = 0;
54
+ const snapshot = createContextSnapshot((url) => {
55
+ calls++;
56
+ return calls === 1 ? Promise.reject(/* @__PURE__ */ new TypeError("fetch failed")) : Promise.resolve({
57
+ contextUrl: null,
58
+ documentUrl: url,
59
+ document: {}
60
+ });
61
+ });
62
+ const loader = snapshot.loader("standard");
63
+ await assertRejects(() => loader(CUSTOM), TypeError);
64
+ await assertRejects(() => loader(CUSTOM), TypeError);
65
+ assertEquals(calls, 1);
66
+ assertEquals(snapshot.entries(), []);
67
+ });
68
+ test("createContextSnapshot() records the normalization overrides", async () => {
69
+ const snapshot = createContextSnapshot(() => Promise.reject(/* @__PURE__ */ new Error("The caller's loader must not be asked.")));
70
+ await snapshot.loader("normalization")("https://w3id.org/security/v1");
71
+ assertEquals(snapshot.entries().map((entry) => [entry.policy, entry.url]), [["normalization", "https://w3id.org/security/v1"]]);
72
+ const [entry] = await serializeContextSnapshot(snapshot.entries());
73
+ assert("bundled" in entry && entry.bundled);
74
+ });
75
+ test("serializeContextSnapshot() stores only exactly bundled responses by hash", async () => {
76
+ const bundled = {
77
+ contextUrl: null,
78
+ documentUrl: AS,
79
+ document: preloadedContexts[AS]
80
+ };
81
+ const serialized = await serializeContextSnapshot([
82
+ {
83
+ policy: "standard",
84
+ url: AS,
85
+ response: bundled
86
+ },
87
+ {
88
+ policy: "standard",
89
+ url: "https://www.w3.org/ns/activitystreams",
90
+ response: {
91
+ ...bundled,
92
+ documentUrl: "https://mirror.example/as"
93
+ }
94
+ },
95
+ {
96
+ policy: "standard",
97
+ url: AS,
98
+ response: {
99
+ ...bundled,
100
+ document: { "@context": {} }
101
+ }
102
+ }
103
+ ]);
104
+ assert("bundled" in serialized[0]);
105
+ assert("response" in serialized[1]);
106
+ assert("response" in serialized[2]);
107
+ const restored = await deserializeContextSnapshot(JSON.parse(JSON.stringify(serialized)));
108
+ assertEquals(restored[0].response.document, preloadedContexts[AS]);
109
+ assertEquals(restored[1].response.documentUrl, "https://mirror.example/as");
110
+ assertEquals(restored[2].response.document, { "@context": {} });
111
+ });
112
+ test("deserializeContextSnapshot() rejects tampered or unknown entries", async () => {
113
+ const [entry] = await serializeContextSnapshot([{
114
+ policy: "standard",
115
+ url: CUSTOM,
116
+ response: {
117
+ contextUrl: null,
118
+ documentUrl: CUSTOM,
119
+ document: { a: 1 }
120
+ }
121
+ }]);
122
+ await assertRejects(() => deserializeContextSnapshot([{
123
+ ...entry,
124
+ response: {
125
+ contextUrl: null,
126
+ documentUrl: CUSTOM,
127
+ document: { a: 2 }
128
+ }
129
+ }]), ContextSnapshotMissError);
130
+ await assertRejects(() => deserializeContextSnapshot([{
131
+ policy: "standard",
132
+ url: CUSTOM,
133
+ sha256: entry.sha256,
134
+ bundled: true
135
+ }]), ContextSnapshotMissError);
136
+ await assertRejects(() => deserializeContextSnapshot([{ url: CUSTOM }]), ContextSnapshotMissError);
137
+ await assertRejects(() => deserializeContextSnapshot("nope"), ContextSnapshotMissError);
138
+ });
139
+ test("createSnapshotOnlyLoader() serves only the snapshot", async () => {
140
+ const loader = createSnapshotOnlyLoader([{
141
+ policy: "standard",
142
+ url: CUSTOM,
143
+ response: {
144
+ contextUrl: null,
145
+ documentUrl: CUSTOM,
146
+ document: { a: 1 }
147
+ }
148
+ }], "standard");
149
+ assertEquals((await loader(CUSTOM)).document, { a: 1 });
150
+ await assertRejects(() => loader(AS), ContextSnapshotMissError);
151
+ const normalization = createSnapshotOnlyLoader([{
152
+ policy: "standard",
153
+ url: CUSTOM,
154
+ response: {
155
+ contextUrl: null,
156
+ documentUrl: CUSTOM,
157
+ document: { a: 1 }
158
+ }
159
+ }], "normalization");
160
+ await assertRejects(() => normalization(CUSTOM), ContextSnapshotMissError);
161
+ });
162
+ test("createReleasableLoader() is strict until released", async () => {
163
+ const strict = () => Promise.reject(/* @__PURE__ */ new Error("strict"));
164
+ const fallback = (url) => Promise.resolve({
165
+ contextUrl: null,
166
+ documentUrl: url,
167
+ document: {}
168
+ });
169
+ const releasable = createReleasableLoader(strict, fallback, "standard");
170
+ await assertRejects(() => releasable.loader(CUSTOM), Error, "strict");
171
+ releasable.release();
172
+ assertEquals((await releasable.loader(CUSTOM)).document, {});
173
+ });
174
+ test("getActorPresence() counts every declared actor value", async () => {
175
+ const expand = (actor) => expandDocument({
176
+ "@context": AS,
177
+ id: "https://example.com/activities/1",
178
+ type: "Create",
179
+ ...actor === void 0 ? {} : { actor }
180
+ }, getDocumentLoader());
181
+ assertEquals(getActorPresence(await expand()), "absent");
182
+ assertEquals(getActorPresence(await expand([])), "absent");
183
+ assertEquals(getActorPresence(await expand({ "@list": [] })), "absent");
184
+ for (const actor of [
185
+ "https://example.com/users/alice",
186
+ {
187
+ type: "Person",
188
+ name: "Anonymous"
189
+ },
190
+ { name: "Anonymous" },
191
+ { id: "_:b0" },
192
+ { "@list": [{ name: "Anonymous" }] }
193
+ ]) assertEquals(getActorPresence(await expand(actor)), "present");
194
+ assertEquals(getActorPresence([]), "present");
195
+ });
196
+ test("getPropertyValues() unwraps a single list like the decoders", () => {
197
+ const node = {
198
+ a: [{ "@list": [{ "@id": "x" }, { "@id": "y" }] }],
199
+ b: [{ "@id": "x" }, { "@list": [] }]
200
+ };
201
+ assertEquals(getPropertyValues(node, "a").length, 2);
202
+ assertEquals(getPropertyValues(node, "b").length, 2);
203
+ assertEquals(getPropertyValues(node, "c"), []);
204
+ });
205
+ test("restoreVerifiedActivityView() replays the authenticated interpretation", async () => {
206
+ const { loader, loads } = createMutableLoader();
207
+ const document = {
208
+ "@context": [AS, CUSTOM],
209
+ id: "https://example.com/activities/1",
210
+ type: "Create",
211
+ tgt: "https://example.com/notes/1"
212
+ };
213
+ const { view, expanded } = await buildVerifiedActivityView(createContextSnapshot(loader), {
214
+ policy: "standard",
215
+ source: "activity",
216
+ document,
217
+ baseUrl: null
218
+ });
219
+ const queued = JSON.parse(JSON.stringify(view));
220
+ const loadsBefore = loads.length;
221
+ const restored = await restoreVerifiedActivityView(queued, { activity: document });
222
+ assertEquals(loads.length, loadsBefore);
223
+ assertEquals(restored.expanded, expanded);
224
+ assertEquals(getPropertyValues(restored.expanded[0], `${AS}#object`).length, 1);
225
+ await assertRejects(() => restoreVerifiedActivityView({
226
+ ...queued,
227
+ expandedDigest: "0"
228
+ }, { activity: document }), ContextSnapshotMissError);
229
+ await assertRejects(() => restoreVerifiedActivityView(queued, { activity: {
230
+ ...document,
231
+ tgt: "https://example.com/notes/2"
232
+ } }), ContextSnapshotMissError);
233
+ await assertRejects(() => restoreVerifiedActivityView({
234
+ ...queued,
235
+ source: "normalizedActivity"
236
+ }, { activity: document }), ContextSnapshotMissError);
237
+ });
238
+ test("restoreVerifiedActivityView() survives changes to unused bundled terms", async () => {
239
+ const document = {
240
+ "@context": [AS, "http://joinmastodon.org/ns"],
241
+ id: "https://example.com/likes/1",
242
+ type: "Like",
243
+ object: "https://example.com/notes/1"
244
+ };
245
+ const { view, expanded } = await buildVerifiedActivityView(createContextSnapshot(getDocumentLoader()), {
246
+ policy: "standard",
247
+ source: "activity",
248
+ document,
249
+ baseUrl: null
250
+ });
251
+ const mastodon = view.contexts.find((entry) => entry.url === "http://joinmastodon.org/ns");
252
+ assert(mastodon != null && "bundled" in mastodon);
253
+ assertEquals((await restoreVerifiedActivityView({
254
+ ...view,
255
+ contexts: view.contexts.map((entry) => entry === mastodon ? {
256
+ ...entry,
257
+ sha256: "0".repeat(64)
258
+ } : entry)
259
+ }, { activity: document })).expanded, expanded);
260
+ });
261
+ test("buildVerifiedActivityView() keeps only the contexts it uses", async () => {
262
+ const { loader } = createMutableLoader();
263
+ const snapshot = createContextSnapshot(loader);
264
+ await snapshot.loader("standard")("https://w3id.org/security/v1");
265
+ const { view } = await buildVerifiedActivityView(snapshot, {
266
+ policy: "standard",
267
+ source: "activity",
268
+ document: {
269
+ "@context": [AS, CUSTOM],
270
+ id: "https://example.com/activities/1",
271
+ type: "Create",
272
+ tgt: "https://example.com/notes/1"
273
+ },
274
+ baseUrl: null
275
+ });
276
+ assertEquals(view.contexts.map((entry) => entry.url).sort(), [CUSTOM, AS].sort());
277
+ });
278
+ test("createContextSnapshot() keeps contexts out of jsonld.js's shared cache", async () => {
279
+ let loads = 0;
280
+ const document = {
281
+ "@context": [AS, "https://remote.example/contexts/static"],
282
+ id: "https://example.com/activities/static",
283
+ type: "Create"
284
+ };
285
+ const tagging = (url, options) => {
286
+ if (url !== "https://remote.example/contexts/static") return getDocumentLoader()(url, options);
287
+ loads++;
288
+ return Promise.resolve({
289
+ contextUrl: null,
290
+ documentUrl: url,
291
+ document: { "@context": { x: "https://example.com/x" } },
292
+ tag: "static"
293
+ });
294
+ };
295
+ for (let i = 0; i < 2; i++) {
296
+ const { view } = await buildVerifiedActivityView(createContextSnapshot(tagging), {
297
+ policy: "standard",
298
+ source: "activity",
299
+ document,
300
+ baseUrl: null
301
+ });
302
+ assert(view.contexts.some((entry) => entry.url === "https://remote.example/contexts/static"));
303
+ }
304
+ assertEquals(loads, 2);
305
+ });
306
+ test("buildVerifiedActivityView() tells contexts it could not record", async () => {
307
+ const cached = "https://remote.example/contexts/shared-cache";
308
+ const preloaded = getDocumentLoader();
309
+ await expandDocument({
310
+ "@context": cached,
311
+ "y": "z"
312
+ }, (url, options) => url === cached ? Promise.resolve({
313
+ contextUrl: null,
314
+ documentUrl: url,
315
+ document: { "@context": { y: "https://example.com/y" } },
316
+ tag: "static"
317
+ }) : preloaded(url, options));
318
+ const build = (document) => buildVerifiedActivityView(createContextSnapshot(preloaded), {
319
+ policy: "standard",
320
+ source: "activity",
321
+ document,
322
+ baseUrl: null
323
+ });
324
+ const { replayable, view } = await build({
325
+ "@context": [AS, cached],
326
+ id: "https://example.com/activities/cached",
327
+ type: "Create"
328
+ });
329
+ assertEquals(replayable, false);
330
+ assertFalse(view.contexts.some((entry) => entry.url === cached));
331
+ assertEquals((await build({
332
+ "@context": AS,
333
+ id: "https://example.com/activities/plain",
334
+ type: "Create"
335
+ })).replayable, true);
336
+ });
337
+ test("buildVerifiedActivityView() tells contexts linked from a context", async () => {
338
+ const cached = "https://remote.example/contexts/linked-shared-cache";
339
+ const linking = "https://remote.example/contexts/linking";
340
+ const preloaded = getDocumentLoader();
341
+ await expandDocument({
342
+ "@context": cached,
343
+ "w": "z"
344
+ }, (url, options) => url === cached ? Promise.resolve({
345
+ contextUrl: null,
346
+ documentUrl: url,
347
+ document: { "@context": { w: "https://example.com/w" } },
348
+ tag: "static"
349
+ }) : preloaded(url, options));
350
+ const { replayable, view } = await buildVerifiedActivityView(createContextSnapshot((url, options) => url === linking ? Promise.resolve({
351
+ contextUrl: cached,
352
+ documentUrl: url,
353
+ document: { "@context": { v: "https://example.com/v" } }
354
+ }) : preloaded(url, options)), {
355
+ policy: "standard",
356
+ source: "activity",
357
+ document: {
358
+ "@context": [AS, linking],
359
+ id: "https://example.com/activities/linked",
360
+ type: "Create"
361
+ },
362
+ baseUrl: null
363
+ });
364
+ assert(view.contexts.some((entry) => entry.url === linking));
365
+ assertFalse(view.contexts.some((entry) => entry.url === cached));
366
+ assertEquals(replayable, false);
367
+ });
368
+ //#endregion
369
+ export {};
@@ -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 ActivityListenerSet } from "../activity-listener-C-BSbKI7.mjs";
8
- import { t as actorsHaveSameOrigin } from "../inbox-BwPoSUEv.mjs";
7
+ import { t as ActivityListenerSet } from "../activity-listener-CELFAodc.mjs";
8
+ import { t as actorsHaveSameOrigin } from "../inbox-wDuMKaFW.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";
@@ -67,12 +67,14 @@ test("ActivityListenerSet", () => {
67
67
  assertEquals(listeners.dispatch(activity), null);
68
68
  assertEquals(listeners.dispatchWithClass(offer), {
69
69
  class: Offer,
70
- listener: listenOffer
70
+ listener: listenOffer,
71
+ options: {}
71
72
  });
72
73
  assertEquals(listeners.dispatch(offer), listenOffer);
73
74
  assertEquals(listeners.dispatchWithClass(invite), {
74
75
  class: Offer,
75
- listener: listenOffer
76
+ listener: listenOffer,
77
+ options: {}
76
78
  });
77
79
  assertEquals(listeners.dispatch(invite), listenOffer);
78
80
  assertEquals(listeners.dispatch(create), null);
@@ -83,17 +85,20 @@ test("ActivityListenerSet", () => {
83
85
  assertEquals(listeners.dispatch(offer), listenOffer);
84
86
  assertEquals(listeners.dispatchWithClass(offer), {
85
87
  class: Offer,
86
- listener: listenOffer
88
+ listener: listenOffer,
89
+ options: {}
87
90
  });
88
91
  assertEquals(listeners.dispatch(invite), listenOffer);
89
92
  assertEquals(listeners.dispatchWithClass(invite), {
90
93
  class: Offer,
91
- listener: listenOffer
94
+ listener: listenOffer,
95
+ options: {}
92
96
  });
93
97
  assertEquals(listeners.dispatch(create), listenCreate);
94
98
  assertEquals(listeners.dispatchWithClass(create), {
95
99
  class: Create,
96
- listener: listenCreate
100
+ listener: listenCreate,
101
+ options: {}
97
102
  });
98
103
  assertEquals(listeners.dispatch(update), null);
99
104
  const listenActivity = () => {};
@@ -101,27 +106,32 @@ test("ActivityListenerSet", () => {
101
106
  assertEquals(listeners.dispatch(activity), listenActivity);
102
107
  assertEquals(listeners.dispatchWithClass(activity), {
103
108
  class: Activity,
104
- listener: listenActivity
109
+ listener: listenActivity,
110
+ options: {}
105
111
  });
106
112
  assertEquals(listeners.dispatch(offer), listenOffer);
107
113
  assertEquals(listeners.dispatchWithClass(offer), {
108
114
  class: Offer,
109
- listener: listenOffer
115
+ listener: listenOffer,
116
+ options: {}
110
117
  });
111
118
  assertEquals(listeners.dispatch(invite), listenOffer);
112
119
  assertEquals(listeners.dispatchWithClass(invite), {
113
120
  class: Offer,
114
- listener: listenOffer
121
+ listener: listenOffer,
122
+ options: {}
115
123
  });
116
124
  assertEquals(listeners.dispatch(create), listenCreate);
117
125
  assertEquals(listeners.dispatchWithClass(create), {
118
126
  class: Create,
119
- listener: listenCreate
127
+ listener: listenCreate,
128
+ options: {}
120
129
  });
121
130
  assertEquals(listeners.dispatch(update), listenActivity);
122
131
  assertEquals(listeners.dispatchWithClass(update), {
123
132
  class: Activity,
124
- listener: listenActivity
133
+ listener: listenActivity,
134
+ options: {}
125
135
  });
126
136
  assertThrows(() => listeners.add(Activity, listenActivity), TypeError, "Listener already set for this type.");
127
137
  });
@@ -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-DIM8ZCKq.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-B-QxRSSR.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";
@@ -5,7 +5,7 @@ import { t as esm_default } from "../esm-BHXXx4Wx.mjs";
5
5
  import { t as MemoryKvStore } from "../kv-DCHkaJ9-.mjs";
6
6
  import { t as ManualClockKvStore } from "../kv-DBRWVx3Q.mjs";
7
7
  import { a as numberSchema, r as envelopeSchema, t as MockQueue } from "../tasks-IG3pHfvZ.mjs";
8
- import "../testing-t8xDeJZ5.mjs";
8
+ import "../testing-Dbr21vZk.mjs";
9
9
  import { t as assertEquals } from "../assert_equals-Z6IcEbWU.mjs";
10
10
  import { t as assertExists } from "../assert_exists-cffSpJ7X.mjs";
11
11
  import { t as assertFalse } from "../assert_false-CPdRnc3E.mjs";
@@ -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-DIM8ZCKq.mjs";
20
- import { a as compactJsonLd, h as verifyJsonLd, p as signJsonLd, s as detachSignature } from "../ld-CUM16-EE.mjs";
21
- import { c as verifyObject, o as signObject } from "../proof-DWpruPWs.mjs";
22
- import { f as verifyRequest, l as signRequest } from "../http-CRrg14tX.mjs";
19
+ import { g as recordInboxActivity } from "../metrics-B-QxRSSR.mjs";
20
+ import { _ as verifyJsonLd, a as compactJsonLd, m as signJsonLd, s as detachSignature } from "../ld-CQFuiah9.mjs";
21
+ import { l as verifyObject, s as signObject } from "../proof-DPoF06nz.mjs";
22
+ import { f as verifyRequest, l as signRequest } from "../http-BZkyQIkb.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 { t as getAuthenticatedDocumentLoader } from "../docloader-BpCJ2dHm.mjs";
25
- import { T as handleBenchmarkTrigger, i as KvSpecDeterminer, n as FederationImpl, o as createFederation, r as InboxContextImpl, t as ContextImpl } from "../middleware-CDdFG6xf.mjs";
26
- import { t as doesActorOwnKey } from "../owner-DoQDS_g0.mjs";
24
+ import { t as getAuthenticatedDocumentLoader } from "../docloader-CpsDyqVN.mjs";
25
+ import { T as handleBenchmarkTrigger, i as KvSpecDeterminer, n as FederationImpl, o as createFederation, r as InboxContextImpl, t as ContextImpl } from "../middleware-CuVa0UuS.mjs";
26
+ import { t as doesActorOwnKey } from "../owner-ccKkQOAf.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";
@@ -7833,7 +7833,7 @@ test("FederationImpl.processQueuedTask() rejects untrusted activity origins befo
7833
7833
  traceContext: {}
7834
7834
  });
7835
7835
  assertEquals(listenerCalls, 1);
7836
- assertEquals(kv.reads, 1);
7836
+ assertEquals(kv.reads, 2);
7837
7837
  assertEquals(kv.writes, 1);
7838
7838
  });
7839
7839
  test("ContextImpl.getCollectionUri()", () => {
@@ -8432,6 +8432,21 @@ test("ContextImpl.enqueueTask()", async (t) => {
8432
8432
  strictEqual(decoded.title, "greeting");
8433
8433
  });
8434
8434
  });
8435
+ test("ContextImpl.lookupWebFinger()", async (t) => {
8436
+ await t.step("always returns a plain ResourceDescriptor or null, even if options structurally contains withDiagnostics", async () => {
8437
+ esm_default.spyGlobal();
8438
+ try {
8439
+ const expected = {
8440
+ subject: "acct:alice@example.com",
8441
+ links: []
8442
+ };
8443
+ esm_default.get("https://example.com/.well-known/webfinger?resource=acct%3Aalice%40example.com", { body: expected });
8444
+ deepStrictEqual(await createFederation(mockOptions()).createContext(new URL("https://example.com/"), void 0).lookupWebFinger("acct:alice@example.com", { withDiagnostics: true }), expected);
8445
+ } finally {
8446
+ esm_default.hardReset();
8447
+ }
8448
+ });
8449
+ });
8435
8450
  test("ContextImpl.enqueueTaskMany()", async (t) => {
8436
8451
  await t.step("round-trips every payload through enqueueMany in order, forwarding options", async () => {
8437
8452
  const queue = new MockQueue({ supportsEnqueueMany: true });
@@ -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-eYRUxkUW.cjs");
3
+ const require_federation = require("../federation-D8YexkP1.cjs");
4
4
  exports.CircuitBreaker = require_federation.CircuitBreaker;
5
5
  exports.InProcessMessageQueue = require_federation.InProcessMessageQueue;
6
6
  exports.MemoryKvStore = require_federation.MemoryKvStore;
@@ -14,6 +14,7 @@ exports.createFederation = require_federation.createFederation;
14
14
  exports.createFederationBuilder = require_federation.createFederationBuilder;
15
15
  exports.digest = require_federation.digest;
16
16
  exports.handleWebFinger = require_federation.handleWebFinger;
17
+ exports.isActorAuthenticated = require_federation.isActorAuthenticated;
17
18
  exports.normalizeCircuitBreakerOptions = require_federation.normalizeCircuitBreakerOptions;
18
19
  exports.parseCircuitBreakerKvState = require_federation.parseCircuitBreakerKvState;
19
20
  exports.respondWithObject = require_federation.respondWithObject;
@@ -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-nYGY4QB9.cjs";
3
- import { $ as respondWithObject, $t as digest, A as InboxChallengePolicy, At as CustomCollectionDispatcher, B as createFederation, Bt as OutboxListener, C as FederationBenchmarkOptions, Ct as ActorKeyPairsDispatcher, D as FederationStartQueueOptions, Dt as CollectionDispatcher, E as FederationOptions, Et as CollectionCursor, F as PortableInboxForwardingOptions, Ft as MediaUploaderCallback, G as TaskEnqueueOptions, Gt as SharedInboxKeyDispatcher, H as createFederationBuilder, Ht as OutboxPermanentFailureHandler, I as Rfc6570Expression, It as NodeInfoDispatcher, J as CreateExponentialBackoffPolicyOptions, Jt as WebFingerLinksDispatcher, K as TaskHandler, Kt as UnverifiedActivityHandler, L as FederationKvPrefixes, Lt as ObjectAuthorizePredicate, M as MediaUploaderSetters, Mt as HashlinkMediaRequest, N as ObjectCallbackSetters, Nt as InboxErrorHandler, O as IdempotencyKeyCallback, Ot as CustomCollectionCounter, P as OutboxListenerSetters, Pt as InboxListener, Q as RespondWithObjectOptions, Qt as buildCollectionSynchronizationHeader, R as FederationOrigin, Rt as ObjectDispatcher, S as Federation, St as ActorHandleMapper, T as FederationFetchOptions, Tt as CollectionCounter, U as TaskDefinition, Ut as PortableActorIdMapper, V as Message, Vt as OutboxListenerErrorHandler, W as TaskDefinitionOptions, Wt as PortableCollectionOwnerMapper, X as RetryPolicy, Xt as SenderKeyPair, Y as RetryContext, Yt as SendActivityError, Z as createExponentialBackoffPolicy, Zt as PageItems, _ as ActorCallbackSetters, _t as NormalizedCircuitBreakerOptions, a as GetObjectOptions, an as InboxRequestReport, at as MessageQueueEnqueueOptions, b as CustomCollectionCallbackSetters, bt as ActorAliasMapper, c as IsSignedByAudienceOptions, ct as CircuitBreaker, d as ParseUriResult, dt as CircuitBreakerCreateOptions, et as respondWithObjectIfAcceptable, f as PortableRequest, ft as CircuitBreakerFailurePolicy, g as SendActivityOptionsForCollection, gt as CircuitBreakerStateChange, h as SendActivityOptions, ht as CircuitBreakerState, i as GetActorOptions, in as InboxRequestOutcome, it as MessageQueueDepth, j as InboxListenerSetters, jt as HashlinkMediaDispatcher, k as IdempotencyStrategy, kt as CustomCollectionCursor, l as OutboxContext, lt as CircuitBreakerActivityDrop, m as RouteActivityOptions, mt as CircuitBreakerOptions, n as Context, nn as InboxJsonValue, nt as InProcessMessageQueueOptions, o as GetSignedKeyOptions, ot as MessageQueueListenOptions, p as RequestContext, pt as CircuitBreakerKvState, q as TaskRegistry, qt as UnverifiedActivityReason, r as ForwardActivityOptions, rn as InboxRequestFinishedHandler, rt as MessageQueue, s as InboxContext, st as ParallelMessageQueue, t as ActorKeyPair, tn as InboxAuthentication, tt as InProcessMessageQueue, u as ParseUriOptions, ut as CircuitBreakerBeforeSendDecision, v as CollectionCallbackSetters, vt as normalizeCircuitBreakerOptions, w as FederationBuilder, wt as AuthorizePredicate, x as Federatable, xt as ActorDispatcher, y as ConstructorWithTypeId, yt as parseCircuitBreakerKvState, z as FederationQueueOptions, zt as OutboxErrorHandler } from "../context-DPocjp1l.cjs";
3
+ import { $ as respondWithObject, $t as SendActivityError, A as InboxChallengePolicy, At as CollectionCursor, B as createFederation, Bt as NodeInfoDispatcher, C as FederationBenchmarkOptions, Ct as parseCircuitBreakerKvState, D as FederationStartQueueOptions, Dt as ActorKeyPairsDispatcher, E as FederationOptions, Et as ActorHandleMapper, F as PortableInboxForwardingOptions, Ft as HashlinkMediaDispatcher, G as TaskEnqueueOptions, Gt as OutboxListenerErrorHandler, H as createFederationBuilder, Ht as ObjectDispatcher, I as Rfc6570Expression, It as HashlinkMediaRequest, J as CreateExponentialBackoffPolicyOptions, Jt as PortableCollectionOwnerMapper, K as TaskHandler, Kt as OutboxPermanentFailureHandler, L as FederationKvPrefixes, Lt as InboxErrorHandler, M as MediaUploaderSetters, Mt as CustomCollectionCounter, N as ObjectCallbackSetters, Nt as CustomCollectionCursor, O as IdempotencyKeyCallback, Ot as AuthorizePredicate, P as OutboxListenerSetters, Pt as CustomCollectionDispatcher, Q as RespondWithObjectOptions, Qt as WebFingerLinksDispatcher, R as FederationOrigin, Rt as InboxListener, S as Federation, St as normalizeCircuitBreakerOptions, T as FederationFetchOptions, Tt as ActorDispatcher, U as TaskDefinition, Ut as OutboxErrorHandler, V as Message, Vt as ObjectAuthorizePredicate, W as TaskDefinitionOptions, Wt as OutboxListener, X as RetryPolicy, Xt as UnverifiedActivityHandler, Y as RetryContext, Yt as SharedInboxKeyDispatcher, Z as createExponentialBackoffPolicy, Zt as UnverifiedActivityReason, _ as ActorCallbackSetters, _t as CircuitBreakerKvState, a as GetObjectOptions, an as InboxAuthentication, at as InProcessMessageQueue, b as CustomCollectionCallbackSetters, bt as CircuitBreakerStateChange, c as IsSignedByAudienceOptions, cn as InboxRequestOutcome, ct as MessageQueueDepth, d as ParseUriResult, dt as ParallelMessageQueue, en as SenderKeyPair, et as respondWithObjectIfAcceptable, f as PortableRequest, ft as CircuitBreaker, g as SendActivityOptionsForCollection, gt as CircuitBreakerFailurePolicy, h as SendActivityOptions, ht as CircuitBreakerCreateOptions, i as GetActorOptions, it as isActorAuthenticated, j as InboxListenerSetters, jt as CollectionDispatcher, k as IdempotencyStrategy, kt as CollectionCounter, l as OutboxContext, ln as InboxRequestReport, lt as MessageQueueEnqueueOptions, m as RouteActivityOptions, mt as CircuitBreakerBeforeSendDecision, n as Context, nn as buildCollectionSynchronizationHeader, nt as InboxPrincipal, o as GetSignedKeyOptions, on as InboxJsonValue, ot as InProcessMessageQueueOptions, p as RequestContext, pt as CircuitBreakerActivityDrop, q as TaskRegistry, qt as PortableActorIdMapper, r as ForwardActivityOptions, rn as digest, rt as IsActorAuthenticatedOptions, s as InboxContext, sn as InboxRequestFinishedHandler, st as MessageQueue, t as ActorKeyPair, tn as PageItems, tt as InboxAuthenticationEvidence, u as ParseUriOptions, un as InboxListenerOptions, ut as MessageQueueListenOptions, v as CollectionCallbackSetters, vt as CircuitBreakerOptions, w as FederationBuilder, wt as ActorAliasMapper, x as Federatable, xt as NormalizedCircuitBreakerOptions, y as ConstructorWithTypeId, yt as CircuitBreakerState, z as FederationQueueOptions, zt as MediaUploaderCallback } from "../context-BazwQrHn.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-DKGoPoQC.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, InboxChallengePolicy, InboxContext, InboxErrorHandler, InboxJsonValue, InboxListener, InboxListenerSetters, InboxProofPolicyFailureReason, InboxRequestFinishedHandler, InboxRequestOutcome, InboxRequestReport, InboxSignatureCheck, InboxSignatureFailureReason, InboxSignatureIdentity, InboxVerificationAttempt, InboxVerificationFailureReason, InboxVerificationKey, 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, 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-DvWOv2Ho.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, 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 };
@@ -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-DhsBxxZN.js";
3
- import { $ as respondWithObject, $t as digest, A as InboxChallengePolicy, At as CustomCollectionDispatcher, B as createFederation, Bt as OutboxListener, C as FederationBenchmarkOptions, Ct as ActorKeyPairsDispatcher, D as FederationStartQueueOptions, Dt as CollectionDispatcher, E as FederationOptions, Et as CollectionCursor, F as PortableInboxForwardingOptions, Ft as MediaUploaderCallback, G as TaskEnqueueOptions, Gt as SharedInboxKeyDispatcher, H as createFederationBuilder, Ht as OutboxPermanentFailureHandler, I as Rfc6570Expression, It as NodeInfoDispatcher, J as CreateExponentialBackoffPolicyOptions, Jt as WebFingerLinksDispatcher, K as TaskHandler, Kt as UnverifiedActivityHandler, L as FederationKvPrefixes, Lt as ObjectAuthorizePredicate, M as MediaUploaderSetters, Mt as HashlinkMediaRequest, N as ObjectCallbackSetters, Nt as InboxErrorHandler, O as IdempotencyKeyCallback, Ot as CustomCollectionCounter, P as OutboxListenerSetters, Pt as InboxListener, Q as RespondWithObjectOptions, Qt as buildCollectionSynchronizationHeader, R as FederationOrigin, Rt as ObjectDispatcher, S as Federation, St as ActorHandleMapper, T as FederationFetchOptions, Tt as CollectionCounter, U as TaskDefinition, Ut as PortableActorIdMapper, V as Message, Vt as OutboxListenerErrorHandler, W as TaskDefinitionOptions, Wt as PortableCollectionOwnerMapper, X as RetryPolicy, Xt as SenderKeyPair, Y as RetryContext, Yt as SendActivityError, Z as createExponentialBackoffPolicy, Zt as PageItems, _ as ActorCallbackSetters, _t as NormalizedCircuitBreakerOptions, a as GetObjectOptions, an as InboxRequestReport, at as MessageQueueEnqueueOptions, b as CustomCollectionCallbackSetters, bt as ActorAliasMapper, c as IsSignedByAudienceOptions, ct as CircuitBreaker, d as ParseUriResult, dt as CircuitBreakerCreateOptions, et as respondWithObjectIfAcceptable, f as PortableRequest, ft as CircuitBreakerFailurePolicy, g as SendActivityOptionsForCollection, gt as CircuitBreakerStateChange, h as SendActivityOptions, ht as CircuitBreakerState, i as GetActorOptions, in as InboxRequestOutcome, it as MessageQueueDepth, j as InboxListenerSetters, jt as HashlinkMediaDispatcher, k as IdempotencyStrategy, kt as CustomCollectionCursor, l as OutboxContext, lt as CircuitBreakerActivityDrop, m as RouteActivityOptions, mt as CircuitBreakerOptions, n as Context, nn as InboxJsonValue, nt as InProcessMessageQueueOptions, o as GetSignedKeyOptions, ot as MessageQueueListenOptions, p as RequestContext, pt as CircuitBreakerKvState, q as TaskRegistry, qt as UnverifiedActivityReason, r as ForwardActivityOptions, rn as InboxRequestFinishedHandler, rt as MessageQueue, s as InboxContext, st as ParallelMessageQueue, t as ActorKeyPair, tn as InboxAuthentication, tt as InProcessMessageQueue, u as ParseUriOptions, ut as CircuitBreakerBeforeSendDecision, v as CollectionCallbackSetters, vt as normalizeCircuitBreakerOptions, w as FederationBuilder, wt as AuthorizePredicate, x as Federatable, xt as ActorDispatcher, y as ConstructorWithTypeId, yt as parseCircuitBreakerKvState, z as FederationQueueOptions, zt as OutboxErrorHandler } from "../context-2wLkQrjb.js";
3
+ import { $ as respondWithObject, $t as SendActivityError, A as InboxChallengePolicy, At as CollectionCursor, B as createFederation, Bt as NodeInfoDispatcher, C as FederationBenchmarkOptions, Ct as parseCircuitBreakerKvState, D as FederationStartQueueOptions, Dt as ActorKeyPairsDispatcher, E as FederationOptions, Et as ActorHandleMapper, F as PortableInboxForwardingOptions, Ft as HashlinkMediaDispatcher, G as TaskEnqueueOptions, Gt as OutboxListenerErrorHandler, H as createFederationBuilder, Ht as ObjectDispatcher, I as Rfc6570Expression, It as HashlinkMediaRequest, J as CreateExponentialBackoffPolicyOptions, Jt as PortableCollectionOwnerMapper, K as TaskHandler, Kt as OutboxPermanentFailureHandler, L as FederationKvPrefixes, Lt as InboxErrorHandler, M as MediaUploaderSetters, Mt as CustomCollectionCounter, N as ObjectCallbackSetters, Nt as CustomCollectionCursor, O as IdempotencyKeyCallback, Ot as AuthorizePredicate, P as OutboxListenerSetters, Pt as CustomCollectionDispatcher, Q as RespondWithObjectOptions, Qt as WebFingerLinksDispatcher, R as FederationOrigin, Rt as InboxListener, S as Federation, St as normalizeCircuitBreakerOptions, T as FederationFetchOptions, Tt as ActorDispatcher, U as TaskDefinition, Ut as OutboxErrorHandler, V as Message, Vt as ObjectAuthorizePredicate, W as TaskDefinitionOptions, Wt as OutboxListener, X as RetryPolicy, Xt as UnverifiedActivityHandler, Y as RetryContext, Yt as SharedInboxKeyDispatcher, Z as createExponentialBackoffPolicy, Zt as UnverifiedActivityReason, _ as ActorCallbackSetters, _t as CircuitBreakerKvState, a as GetObjectOptions, an as InboxAuthentication, at as InProcessMessageQueue, b as CustomCollectionCallbackSetters, bt as CircuitBreakerStateChange, c as IsSignedByAudienceOptions, cn as InboxRequestOutcome, ct as MessageQueueDepth, d as ParseUriResult, dt as ParallelMessageQueue, en as SenderKeyPair, et as respondWithObjectIfAcceptable, f as PortableRequest, ft as CircuitBreaker, g as SendActivityOptionsForCollection, gt as CircuitBreakerFailurePolicy, h as SendActivityOptions, ht as CircuitBreakerCreateOptions, i as GetActorOptions, it as isActorAuthenticated, j as InboxListenerSetters, jt as CollectionDispatcher, k as IdempotencyStrategy, kt as CollectionCounter, l as OutboxContext, ln as InboxRequestReport, lt as MessageQueueEnqueueOptions, m as RouteActivityOptions, mt as CircuitBreakerBeforeSendDecision, n as Context, nn as buildCollectionSynchronizationHeader, nt as InboxPrincipal, o as GetSignedKeyOptions, on as InboxJsonValue, ot as InProcessMessageQueueOptions, p as RequestContext, pt as CircuitBreakerActivityDrop, q as TaskRegistry, qt as PortableActorIdMapper, r as ForwardActivityOptions, rn as digest, rt as IsActorAuthenticatedOptions, s as InboxContext, sn as InboxRequestFinishedHandler, st as MessageQueue, t as ActorKeyPair, tn as PageItems, tt as InboxAuthenticationEvidence, u as ParseUriOptions, un as InboxListenerOptions, ut as MessageQueueListenOptions, v as CollectionCallbackSetters, vt as CircuitBreakerOptions, w as FederationBuilder, wt as ActorAliasMapper, x as Federatable, xt as NormalizedCircuitBreakerOptions, y as ConstructorWithTypeId, yt as CircuitBreakerState, z as FederationQueueOptions, zt as MediaUploaderCallback } from "../context-GlHrzdSP.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-Dm-7RdhR.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, InboxChallengePolicy, InboxContext, InboxErrorHandler, InboxJsonValue, InboxListener, InboxListenerSetters, InboxProofPolicyFailureReason, InboxRequestFinishedHandler, InboxRequestOutcome, InboxRequestReport, InboxSignatureCheck, InboxSignatureFailureReason, InboxSignatureIdentity, InboxVerificationAttempt, InboxVerificationFailureReason, InboxVerificationKey, 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, 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-DjZfJj9R.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, 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 };