@fedify/fedify 1.9.0-pr.407.1541 → 1.9.0-pr.421.1746

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 (176) hide show
  1. package/dist/actor-B2pAR8hn.cjs +42606 -0
  2. package/dist/{actor-Ci9FEnz7.js → actor-BGkVHk1D.js} +6951 -2127
  3. package/dist/{actor-Ch5yFYFG.d.ts → actor-C1Euqngb.d.ts} +1 -1
  4. package/dist/{actor-CgxU5g3T.js → actor-CRMvoMgB.js} +1 -1
  5. package/dist/actor-Ydzhc8dj.d.cts +128 -0
  6. package/dist/{authdocloader-C1mRjUL0.js → authdocloader-1wvQznSP.js} +6 -6
  7. package/dist/authdocloader-B6vfY0DQ.cjs +58 -0
  8. package/dist/{authdocloader-BzYD_FmX.js → authdocloader-BaK01biC.js} +3 -3
  9. package/dist/{builder-BA9imTs-.js → builder-BYjzwwU1.js} +14 -8
  10. package/dist/chunk-DqRYRqnO.cjs +34 -0
  11. package/dist/{client-a0QdQSaG.js → client-CchEe2DS.js} +1 -1
  12. package/dist/client-DjT_tegg.d.cts +294 -0
  13. package/dist/compat/mod.cjs +10 -0
  14. package/dist/compat/mod.d.cts +13 -0
  15. package/dist/compat/mod.d.ts +7 -7
  16. package/dist/compat/mod.js +5 -5
  17. package/dist/compat/transformers.test.js +16 -16
  18. package/dist/compat-DmDDELst.cjs +4 -0
  19. package/dist/compat-nxUqe4Z-.js +4 -0
  20. package/dist/{context-DFruNLny.d.ts → context-CXUibY4L.d.ts} +179 -116
  21. package/dist/context-CwUAkopp.d.cts +2324 -0
  22. package/dist/docloader-BeO6Nvv8.cjs +4862 -0
  23. package/dist/{docloader-B1FKn22p.js → docloader-Bf4PXDNP.js} +188 -8
  24. package/dist/docloader-D-MrRyHl.d.cts +219 -0
  25. package/dist/{esm-BnTQrd7h.js → esm-DKBIHBc7.js} +1 -1
  26. package/dist/federation/builder.test.js +5 -5
  27. package/dist/federation/collection.test.js +3 -3
  28. package/dist/federation/handler.test.js +17 -17
  29. package/dist/federation/idempotency.test.d.ts +3 -0
  30. package/dist/federation/idempotency.test.js +202 -0
  31. package/dist/federation/inbox.test.js +4 -4
  32. package/dist/federation/keycache.test.js +4 -4
  33. package/dist/federation/kv.test.js +4 -3
  34. package/dist/federation/middleware.test.js +18 -18
  35. package/dist/federation/mod.cjs +29 -0
  36. package/dist/federation/mod.d.cts +13 -0
  37. package/dist/federation/mod.d.ts +7 -7
  38. package/dist/federation/mod.js +15 -15
  39. package/dist/federation/mq.test.js +3 -3
  40. package/dist/federation/retry.test.js +3 -3
  41. package/dist/federation/router.test.js +3 -3
  42. package/dist/federation/send.test.js +10 -10
  43. package/dist/{federation-CMX7WzeL.js → federation-D1U8YY9t.js} +3 -3
  44. package/dist/federation-H2_En3j5.cjs +244 -0
  45. package/dist/fixtures/media.example.com/avatars/test-avatar.jpg.json +6 -0
  46. package/dist/http-B1_DzfAU.d.cts +253 -0
  47. package/dist/{http-_F1-otnG.js → http-BciknU_m.js} +7 -7
  48. package/dist/http-BkgY_K-o.cjs +826 -0
  49. package/dist/{http-BJUVXM-v.js → http-CvT-8K7A.js} +3 -3
  50. package/dist/{http-D8Q4xH0d.d.ts → http-wsGR6KkT.d.ts} +1 -1
  51. package/dist/{inbox-BdmFE-7t.js → inbox-DmOmHCt8.js} +29 -7
  52. package/dist/key-BNpAX-yy.cjs +290 -0
  53. package/dist/{key-BwUPZ9c4.js → key-Bf8wecsW.js} +3 -3
  54. package/dist/{key-6mpld0vV.js → key-Btn1rSKF.js} +5 -5
  55. package/dist/key-C-s397Qs.cjs +10 -0
  56. package/dist/{key-BjMZVyIc.js → key-CZzHTxwc.js} +2 -2
  57. package/dist/key-DlGLd9iL.js +10 -0
  58. package/dist/{keycache-C6v3brY3.js → keycache-BRLbFuE4.js} +1 -1
  59. package/dist/{keys-C4_uagjj.js → keys-DgqkndRb.js} +1 -1
  60. package/dist/kv-63Cil1MD.d.cts +81 -0
  61. package/dist/{ld-DjtcmRNX.js → ld-v-iyFVSd.js} +4 -4
  62. package/dist/lookup-6OyofAxv.cjs +137 -0
  63. package/dist/{lookup-CHXemfKP.js → lookup-8ZcpBTR8.js} +21 -12
  64. package/dist/{lookup-BacM-mU2.js → lookup-DxJ0NLYS.js} +4 -4
  65. package/dist/middleware-C7PiPtdo.cjs +4271 -0
  66. package/dist/middleware-CnRFgcDM.cjs +17 -0
  67. package/dist/middleware-CvThFfEG.js +26 -0
  68. package/dist/middleware-DG81e5gf.js +17 -0
  69. package/dist/{middleware-D229H6sF.js → middleware-DRE7WmH1.js} +96 -65
  70. package/dist/{middleware-Chvh9WwC.js → middleware-LZN4mAnb.js} +57 -54
  71. package/dist/mod-BUbqxBev.d.cts +307 -0
  72. package/dist/{mod-CiXjux2r.d.ts → mod-BcObK1Lz.d.ts} +2 -2
  73. package/dist/mod-C2tOeRkN.d.cts +1 -0
  74. package/dist/{mod-Cy6pkZSn.d.ts → mod-CDObsV1d.d.ts} +19 -1
  75. package/dist/{mod-BAuhKa9d.d.ts → mod-CIbqfZW0.d.ts} +1 -1
  76. package/dist/{mod-B7Pc0I7F.d.ts → mod-DgcYoyZK.d.ts} +2 -2
  77. package/dist/mod-Dt-G9ZOS.d.cts +102 -0
  78. package/dist/mod-FZd39qVq.d.cts +1 -0
  79. package/dist/mod-fjqfsrty.d.cts +266 -0
  80. package/dist/mod-jQ4OODsl.d.cts +113 -0
  81. package/dist/mod-mXx9V0q5.d.cts +80 -0
  82. package/dist/mod.cjs +152 -0
  83. package/dist/mod.d.cts +17 -0
  84. package/dist/mod.d.ts +10 -10
  85. package/dist/mod.js +20 -20
  86. package/dist/mq-B7R1Q-M5.d.cts +140 -0
  87. package/dist/nodeinfo/client.test.js +5 -5
  88. package/dist/nodeinfo/handler.test.js +16 -16
  89. package/dist/nodeinfo/mod.cjs +13 -0
  90. package/dist/nodeinfo/mod.d.cts +5 -0
  91. package/dist/nodeinfo/mod.js +6 -6
  92. package/dist/nodeinfo/semver.test.js +3 -3
  93. package/dist/nodeinfo/types.test.js +3 -3
  94. package/dist/nodeinfo-Co9lJrWl.cjs +4 -0
  95. package/dist/nodeinfo-DfycQ8Wf.js +4 -0
  96. package/dist/owner-6KSEp9eV.d.cts +67 -0
  97. package/dist/{owner-D38zBIMc.d.ts → owner-BbeUDvOu.d.ts} +2 -2
  98. package/dist/{owner-C_Ovx3OW.js → owner-DiaqwZNX.js} +2 -2
  99. package/dist/{proof-Cn9ubQ_4.js → proof-BJmMlvgv.js} +9 -9
  100. package/dist/{proof-DsTmMO9a.js → proof-BLrU2QqY.js} +3 -3
  101. package/dist/proof-uoL7KsPK.cjs +673 -0
  102. package/dist/runtime/authdocloader.test.js +9 -9
  103. package/dist/runtime/docloader.test.js +4 -4
  104. package/dist/runtime/key.test.js +5 -5
  105. package/dist/runtime/langstr.test.js +3 -3
  106. package/dist/runtime/link.test.d.ts +3 -0
  107. package/dist/runtime/link.test.js +61 -0
  108. package/dist/runtime/mod.cjs +25 -0
  109. package/dist/runtime/mod.d.cts +6 -0
  110. package/dist/runtime/mod.d.ts +3 -3
  111. package/dist/runtime/mod.js +10 -10
  112. package/dist/runtime/multibase/multibase.test.js +3 -3
  113. package/dist/runtime/url.test.js +3 -3
  114. package/dist/runtime-C58AJWSv.cjs +4 -0
  115. package/dist/runtime-DPYEDf-o.js +4 -0
  116. package/dist/{send-B_t14nZe.js → send-Bh9H1ZtH.js} +2 -2
  117. package/dist/sig/http.test.js +9 -9
  118. package/dist/sig/key.test.js +6 -6
  119. package/dist/sig/ld.test.js +7 -7
  120. package/dist/sig/mod.cjs +30 -0
  121. package/dist/sig/mod.d.cts +8 -0
  122. package/dist/sig/mod.d.ts +5 -5
  123. package/dist/sig/mod.js +10 -10
  124. package/dist/sig/owner.test.js +7 -7
  125. package/dist/sig/proof.test.js +7 -7
  126. package/dist/sig-ByHXzqUi.cjs +4 -0
  127. package/dist/sig-Cj3tk-ig.js +4 -0
  128. package/dist/testing/docloader.test.js +3 -3
  129. package/dist/testing/mod.d.ts +385 -110
  130. package/dist/testing/mod.js +3 -3
  131. package/dist/{testing-BWnZ_sj_.js → testing-wv9xgBFV.js} +2 -2
  132. package/dist/{transformers-Dna8Fg7k.js → transformers-BFT6d7J5.js} +3 -3
  133. package/dist/transformers-CoBS-oFG.cjs +116 -0
  134. package/dist/{type-B8vENQVR.js → type-JHkkALfe.js} +7261 -2257
  135. package/dist/{types-vtD95MgU.js → types-D-8qHCG5.js} +4 -4
  136. package/dist/types-SEdRdlKp.cjs +488 -0
  137. package/dist/vocab/actor.test.js +5 -5
  138. package/dist/vocab/lookup.test.js +255 -5
  139. package/dist/vocab/mod.cjs +87 -0
  140. package/dist/vocab/mod.d.cts +6 -0
  141. package/dist/vocab/mod.d.ts +3 -3
  142. package/dist/vocab/mod.js +7 -7
  143. package/dist/vocab/type.test.js +3 -3
  144. package/dist/vocab/vocab.test.js +433 -9
  145. package/dist/vocab-BZ2XJ4IH.cjs +291 -0
  146. package/dist/{vocab-BEEm2I6u.d.ts → vocab-CDHNj5zp.d.ts} +290 -0
  147. package/dist/{vocab-BQIHm1R2.js → vocab-Cb3CeS7_.js} +26 -17
  148. package/dist/vocab-Cfs0937i.d.cts +14919 -0
  149. package/dist/webfinger/handler.test.js +16 -16
  150. package/dist/webfinger/lookup.test.js +4 -4
  151. package/dist/webfinger/mod.cjs +9 -0
  152. package/dist/webfinger/mod.d.cts +4 -0
  153. package/dist/webfinger/mod.js +6 -6
  154. package/dist/webfinger-BjOEdFPs.cjs +4 -0
  155. package/dist/webfinger-De_bU0iE.js +4 -0
  156. package/dist/x/cfworkers.cjs +100 -0
  157. package/dist/x/cfworkers.d.cts +59 -0
  158. package/dist/x/cfworkers.js +3 -3
  159. package/dist/x/cfworkers.test.js +3 -3
  160. package/dist/x/hono.cjs +61 -0
  161. package/dist/x/hono.d.cts +54 -0
  162. package/dist/x/hono.d.ts +6 -6
  163. package/dist/x/hono.js +3 -3
  164. package/dist/x/sveltekit.cjs +69 -0
  165. package/dist/x/sveltekit.d.cts +46 -0
  166. package/dist/x/sveltekit.d.ts +6 -6
  167. package/dist/x/sveltekit.js +3 -3
  168. package/package.json +68 -13
  169. package/dist/compat-Bb5myD13.js +0 -4
  170. package/dist/key-MAzA0B5q.js +0 -10
  171. package/dist/middleware-BmxFy3Oa.js +0 -17
  172. package/dist/middleware-DJi4jhq9.js +0 -26
  173. package/dist/nodeinfo-CyEbLjHs.js +0 -4
  174. package/dist/runtime-BSkOVUWM.js +0 -4
  175. package/dist/sig-BXJO--F9.js +0 -4
  176. package/dist/webfinger-C3GIyXIg.js +0 -4
@@ -3,18 +3,18 @@
3
3
  import { URLPattern } from "urlpattern-polyfill";
4
4
  globalThis.addEventListener = () => {};
5
5
 
6
- import { Collection, Note, Object as Object$1, Person } from "../type-B8vENQVR.js";
6
+ import { Collection, Note, Object as Object$1, Person } from "../type-JHkkALfe.js";
7
7
  import { assertEquals } from "../assert_equals-DSbWqCm3.js";
8
8
  import "../assert-MZs1qjMx.js";
9
9
  import { assertInstanceOf } from "../assert_instance_of-DHz7EHNU.js";
10
- import { lookupObject, traverseCollection } from "../lookup-CHXemfKP.js";
11
- import { mockDocumentLoader, test } from "../testing-BWnZ_sj_.js";
10
+ import { lookupObject, traverseCollection } from "../lookup-8ZcpBTR8.js";
11
+ import { mockDocumentLoader, test } from "../testing-wv9xgBFV.js";
12
12
  import "../std__assert-X-_kMxKM.js";
13
- import "../assert_rejects-DiIiJbZn.js";
13
+ import { assertRejects } from "../assert_rejects-DiIiJbZn.js";
14
14
  import "../assert_is_error-BPGph1Jx.js";
15
15
  import "../assert_not_equals-f3m3epl3.js";
16
16
  import "../assert_throws-BOO88avQ.js";
17
- import { esm_default } from "../esm-BnTQrd7h.js";
17
+ import { esm_default } from "../esm-DKBIHBc7.js";
18
18
 
19
19
  //#region src/vocab/lookup.test.ts
20
20
  test("lookupObject()", {
@@ -202,5 +202,255 @@ test("traverseCollection()", {
202
202
  new Note({ content: "This is a third simple note" })
203
203
  ]);
204
204
  });
205
+ test("FEP-fe34: lookupObject() cross-origin security", {
206
+ sanitizeResources: false,
207
+ sanitizeOps: false
208
+ }, async (t) => {
209
+ await t.step("crossOrigin: ignore (default) - returns null for cross-origin objects", async () => {
210
+ const crossOriginDocumentLoader = async (url) => {
211
+ if (url === "https://example.com/note") return {
212
+ documentUrl: url,
213
+ contextUrl: null,
214
+ document: {
215
+ "@context": "https://www.w3.org/ns/activitystreams",
216
+ type: "Note",
217
+ id: "https://malicious.com/fake-note",
218
+ content: "This is a spoofed note from a different origin"
219
+ }
220
+ };
221
+ throw new Error(`Unexpected URL: ${url}`);
222
+ };
223
+ const result = await lookupObject("https://example.com/note", {
224
+ documentLoader: crossOriginDocumentLoader,
225
+ contextLoader: mockDocumentLoader
226
+ });
227
+ assertEquals(result, null);
228
+ });
229
+ await t.step("crossOrigin: throw - throws error for cross-origin objects", async () => {
230
+ const crossOriginDocumentLoader = async (url) => {
231
+ if (url === "https://example.com/note") return {
232
+ documentUrl: url,
233
+ contextUrl: null,
234
+ document: {
235
+ "@context": "https://www.w3.org/ns/activitystreams",
236
+ type: "Note",
237
+ id: "https://malicious.com/fake-note",
238
+ content: "This is a spoofed note from a different origin"
239
+ }
240
+ };
241
+ throw new Error(`Unexpected URL: ${url}`);
242
+ };
243
+ await assertRejects(() => lookupObject("https://example.com/note", {
244
+ documentLoader: crossOriginDocumentLoader,
245
+ contextLoader: mockDocumentLoader,
246
+ crossOrigin: "throw"
247
+ }), Error, "The object's @id (https://malicious.com/fake-note) has a different origin than the document URL (https://example.com/note)");
248
+ });
249
+ await t.step("crossOrigin: trust - allows cross-origin objects", async () => {
250
+ const crossOriginDocumentLoader = async (url) => {
251
+ if (url === "https://example.com/note") return {
252
+ documentUrl: url,
253
+ contextUrl: null,
254
+ document: {
255
+ "@context": "https://www.w3.org/ns/activitystreams",
256
+ type: "Note",
257
+ id: "https://malicious.com/fake-note",
258
+ content: "This is a spoofed note from a different origin"
259
+ }
260
+ };
261
+ throw new Error(`Unexpected URL: ${url}`);
262
+ };
263
+ const result = await lookupObject("https://example.com/note", {
264
+ documentLoader: crossOriginDocumentLoader,
265
+ contextLoader: mockDocumentLoader,
266
+ crossOrigin: "trust"
267
+ });
268
+ assertInstanceOf(result, Note);
269
+ assertEquals(result.id, new URL("https://malicious.com/fake-note"));
270
+ assertEquals(result.content, "This is a spoofed note from a different origin");
271
+ });
272
+ await t.step("same-origin objects are always trusted", async () => {
273
+ const sameOriginDocumentLoader = async (url) => {
274
+ if (url === "https://example.com/note") return {
275
+ documentUrl: url,
276
+ contextUrl: null,
277
+ document: {
278
+ "@context": "https://www.w3.org/ns/activitystreams",
279
+ type: "Note",
280
+ id: "https://example.com/note",
281
+ content: "This is a legitimate note from the same origin"
282
+ }
283
+ };
284
+ throw new Error(`Unexpected URL: ${url}`);
285
+ };
286
+ const result = await lookupObject("https://example.com/note", {
287
+ documentLoader: sameOriginDocumentLoader,
288
+ contextLoader: mockDocumentLoader
289
+ });
290
+ assertInstanceOf(result, Note);
291
+ assertEquals(result.id, new URL("https://example.com/note"));
292
+ assertEquals(result.content, "This is a legitimate note from the same origin");
293
+ });
294
+ await t.step("objects without @id are trusted", async () => {
295
+ const noIdDocumentLoader = async (url) => {
296
+ if (url === "https://example.com/note") return {
297
+ documentUrl: url,
298
+ contextUrl: null,
299
+ document: {
300
+ "@context": "https://www.w3.org/ns/activitystreams",
301
+ type: "Note",
302
+ content: "This is a note without an ID"
303
+ }
304
+ };
305
+ throw new Error(`Unexpected URL: ${url}`);
306
+ };
307
+ const result = await lookupObject("https://example.com/note", {
308
+ documentLoader: noIdDocumentLoader,
309
+ contextLoader: mockDocumentLoader
310
+ });
311
+ assertInstanceOf(result, Note);
312
+ assertEquals(result.id, null);
313
+ assertEquals(result.content, "This is a note without an ID");
314
+ });
315
+ await t.step("WebFinger lookup with cross-origin actor URL", async () => {
316
+ esm_default.spyGlobal();
317
+ esm_default.get("begin:https://example.com/.well-known/webfinger", {
318
+ subject: "acct:user@example.com",
319
+ links: [{
320
+ rel: "self",
321
+ href: "https://different-origin.com/actor",
322
+ type: "application/activity+json"
323
+ }]
324
+ });
325
+ const webfingerDocumentLoader = async (url) => {
326
+ if (url === "https://different-origin.com/actor") return {
327
+ documentUrl: url,
328
+ contextUrl: null,
329
+ document: {
330
+ "@context": "https://www.w3.org/ns/activitystreams",
331
+ type: "Person",
332
+ id: "https://malicious.com/fake-actor",
333
+ name: "Fake Actor"
334
+ }
335
+ };
336
+ throw new Error(`Unexpected URL: ${url}`);
337
+ };
338
+ const result1 = await lookupObject("@user@example.com", {
339
+ documentLoader: webfingerDocumentLoader,
340
+ contextLoader: mockDocumentLoader
341
+ });
342
+ assertEquals(result1, null);
343
+ await assertRejects(() => lookupObject("@user@example.com", {
344
+ documentLoader: webfingerDocumentLoader,
345
+ contextLoader: mockDocumentLoader,
346
+ crossOrigin: "throw"
347
+ }), Error, "The object's @id (https://malicious.com/fake-actor) has a different origin than the document URL (https://different-origin.com/actor)");
348
+ const result2 = await lookupObject("@user@example.com", {
349
+ documentLoader: webfingerDocumentLoader,
350
+ contextLoader: mockDocumentLoader,
351
+ crossOrigin: "trust"
352
+ });
353
+ assertInstanceOf(result2, Person);
354
+ assertEquals(result2.id, new URL("https://malicious.com/fake-actor"));
355
+ esm_default.removeRoutes();
356
+ esm_default.hardReset();
357
+ });
358
+ await t.step("subdomain same-origin check", async () => {
359
+ const subdomainDocumentLoader = async (url) => {
360
+ if (url === "https://api.example.com/note") return {
361
+ documentUrl: url,
362
+ contextUrl: null,
363
+ document: {
364
+ "@context": "https://www.w3.org/ns/activitystreams",
365
+ type: "Note",
366
+ id: "https://www.example.com/note",
367
+ content: "Cross-subdomain note"
368
+ }
369
+ };
370
+ throw new Error(`Unexpected URL: ${url}`);
371
+ };
372
+ const result = await lookupObject("https://api.example.com/note", {
373
+ documentLoader: subdomainDocumentLoader,
374
+ contextLoader: mockDocumentLoader
375
+ });
376
+ assertEquals(result, null);
377
+ });
378
+ await t.step("different port same-origin check", async () => {
379
+ const differentPortDocumentLoader = async (url) => {
380
+ if (url === "https://example.com:8080/note") return {
381
+ documentUrl: url,
382
+ contextUrl: null,
383
+ document: {
384
+ "@context": "https://www.w3.org/ns/activitystreams",
385
+ type: "Note",
386
+ id: "https://example.com:9090/note",
387
+ content: "Cross-port note"
388
+ }
389
+ };
390
+ throw new Error(`Unexpected URL: ${url}`);
391
+ };
392
+ const result = await lookupObject("https://example.com:8080/note", {
393
+ documentLoader: differentPortDocumentLoader,
394
+ contextLoader: mockDocumentLoader
395
+ });
396
+ assertEquals(result, null);
397
+ });
398
+ await t.step("protocol difference same-origin check", async () => {
399
+ const differentProtocolDocumentLoader = async (url) => {
400
+ if (url === "https://example.com/note") return {
401
+ documentUrl: url,
402
+ contextUrl: null,
403
+ document: {
404
+ "@context": "https://www.w3.org/ns/activitystreams",
405
+ type: "Note",
406
+ id: "http://example.com/note",
407
+ content: "Cross-protocol note"
408
+ }
409
+ };
410
+ throw new Error(`Unexpected URL: ${url}`);
411
+ };
412
+ const result = await lookupObject("https://example.com/note", {
413
+ documentLoader: differentProtocolDocumentLoader,
414
+ contextLoader: mockDocumentLoader
415
+ });
416
+ assertEquals(result, null);
417
+ });
418
+ await t.step("error handling with crossOrigin throw option", async () => {
419
+ const errorDocumentLoader = async (_url) => {
420
+ throw new Error("Network error");
421
+ };
422
+ const result = await lookupObject("https://example.com/note", {
423
+ documentLoader: errorDocumentLoader,
424
+ contextLoader: mockDocumentLoader,
425
+ crossOrigin: "throw"
426
+ });
427
+ assertEquals(result, null);
428
+ });
429
+ await t.step("malformed JSON handling with cross-origin policy", async () => {
430
+ const malformedJsonDocumentLoader = async (url) => {
431
+ if (url === "https://example.com/note") return {
432
+ documentUrl: url,
433
+ contextUrl: null,
434
+ document: "invalid json"
435
+ };
436
+ throw new Error(`Unexpected URL: ${url}`);
437
+ };
438
+ assertEquals(await lookupObject("https://example.com/note", {
439
+ documentLoader: malformedJsonDocumentLoader,
440
+ contextLoader: mockDocumentLoader,
441
+ crossOrigin: "ignore"
442
+ }), null);
443
+ assertEquals(await lookupObject("https://example.com/note", {
444
+ documentLoader: malformedJsonDocumentLoader,
445
+ contextLoader: mockDocumentLoader,
446
+ crossOrigin: "throw"
447
+ }), null);
448
+ assertEquals(await lookupObject("https://example.com/note", {
449
+ documentLoader: malformedJsonDocumentLoader,
450
+ contextLoader: mockDocumentLoader,
451
+ crossOrigin: "trust"
452
+ }), null);
453
+ });
454
+ });
205
455
 
206
456
  //#endregion
@@ -0,0 +1,87 @@
1
+
2
+ const { Temporal } = require("@js-temporal/polyfill");
3
+ const { URLPattern } = require("urlpattern-polyfill");
4
+
5
+ require('../docloader-BeO6Nvv8.cjs');
6
+ const require_actor = require('../actor-B2pAR8hn.cjs');
7
+ require('../lookup-6OyofAxv.cjs');
8
+ const require_vocab = require('../vocab-BZ2XJ4IH.cjs');
9
+
10
+ exports.Accept = require_actor.Accept;
11
+ exports.Activity = require_actor.Activity;
12
+ exports.Add = require_actor.Add;
13
+ exports.Announce = require_actor.Announce;
14
+ exports.Application = require_actor.Application;
15
+ exports.Arrive = require_actor.Arrive;
16
+ exports.Article = require_actor.Article;
17
+ exports.Audio = require_actor.Audio;
18
+ exports.Block = require_actor.Block;
19
+ exports.ChatMessage = require_actor.ChatMessage;
20
+ exports.Collection = require_actor.Collection;
21
+ exports.CollectionPage = require_actor.CollectionPage;
22
+ exports.Create = require_actor.Create;
23
+ exports.CryptographicKey = require_actor.CryptographicKey;
24
+ exports.DataIntegrityProof = require_actor.DataIntegrityProof;
25
+ exports.Delete = require_actor.Delete;
26
+ exports.DidService = require_actor.DidService;
27
+ exports.Dislike = require_actor.Dislike;
28
+ exports.Document = require_actor.Document;
29
+ exports.Emoji = require_actor.Emoji;
30
+ exports.EmojiReact = require_actor.EmojiReact;
31
+ exports.Endpoints = require_actor.Endpoints;
32
+ exports.Event = require_actor.Event;
33
+ exports.Export = require_actor.Export;
34
+ exports.Flag = require_actor.Flag;
35
+ exports.Follow = require_actor.Follow;
36
+ exports.Group = require_actor.Group;
37
+ exports.Hashtag = require_actor.Hashtag;
38
+ exports.Ignore = require_actor.Ignore;
39
+ exports.Image = require_actor.Image;
40
+ exports.IntransitiveActivity = require_actor.IntransitiveActivity;
41
+ exports.Invite = require_actor.Invite;
42
+ exports.Join = require_actor.Join;
43
+ exports.Leave = require_actor.Leave;
44
+ exports.Like = require_actor.Like;
45
+ exports.Link = require_actor.Link;
46
+ exports.Listen = require_actor.Listen;
47
+ exports.Mention = require_actor.Mention;
48
+ exports.Move = require_actor.Move;
49
+ exports.Multikey = require_actor.Multikey;
50
+ exports.Note = require_actor.Note;
51
+ exports.Object = require_actor.Object$1;
52
+ exports.Offer = require_actor.Offer;
53
+ exports.OrderedCollection = require_actor.OrderedCollection;
54
+ exports.OrderedCollectionPage = require_actor.OrderedCollectionPage;
55
+ exports.Organization = require_actor.Organization;
56
+ exports.PUBLIC_COLLECTION = require_vocab.PUBLIC_COLLECTION;
57
+ exports.Page = require_actor.Page;
58
+ exports.Person = require_actor.Person;
59
+ exports.Place = require_actor.Place;
60
+ exports.Profile = require_actor.Profile;
61
+ exports.PropertyValue = require_actor.PropertyValue;
62
+ exports.Question = require_actor.Question;
63
+ exports.Read = require_actor.Read;
64
+ exports.Reject = require_actor.Reject;
65
+ exports.Relationship = require_actor.Relationship;
66
+ exports.Remove = require_actor.Remove;
67
+ exports.Service = require_actor.Service;
68
+ exports.Source = require_actor.Source;
69
+ exports.TentativeAccept = require_actor.TentativeAccept;
70
+ exports.TentativeReject = require_actor.TentativeReject;
71
+ exports.Tombstone = require_actor.Tombstone;
72
+ exports.Travel = require_actor.Travel;
73
+ exports.Undo = require_actor.Undo;
74
+ exports.Update = require_actor.Update;
75
+ exports.Video = require_actor.Video;
76
+ exports.View = require_actor.View;
77
+ exports.getActorClassByTypeName = require_actor.getActorClassByTypeName;
78
+ exports.getActorHandle = require_actor.getActorHandle;
79
+ exports.getActorTypeName = require_actor.getActorTypeName;
80
+ exports.getTypeId = require_actor.getTypeId;
81
+ exports.isActor = require_actor.isActor;
82
+ exports.isFediverseHandle = require_vocab.isFediverseHandle;
83
+ exports.lookupObject = require_vocab.lookupObject;
84
+ exports.normalizeActorHandle = require_actor.normalizeActorHandle;
85
+ exports.parseFediverseHandle = require_vocab.parseFediverseHandle;
86
+ exports.toAcctUrl = require_vocab.toAcctUrl;
87
+ exports.traverseCollection = require_vocab.traverseCollection;
@@ -0,0 +1,6 @@
1
+ import "../kv-63Cil1MD.cjs";
2
+ import "../docloader-D-MrRyHl.cjs";
3
+ import { Accept, Activity, Add, Announce, Application, Arrive, Article, Audio, Block, ChatMessage, Collection, CollectionPage, Create, CryptographicKey, DataIntegrityProof, Delete, DidService, Dislike, Document, Emoji, EmojiReact, Endpoints, Event, Export, Flag, Follow, Group, Hashtag, Ignore, Image, IntransitiveActivity, Invite, Join, Leave, Like, Link, Listen, Mention, Move, Multikey, Note, Object as Object$1, Offer, OrderedCollection, OrderedCollectionPage, Organization, Page, Person, Place, Profile, PropertyValue, Question, Read, Reject, Relationship, Remove, Service, Source, TentativeAccept, TentativeReject, Tombstone, Travel, Undo, Update, Video, View } from "../vocab-Cfs0937i.cjs";
4
+ import { Actor, ActorTypeName, GetActorHandleOptions, NormalizeActorHandleOptions, Recipient, getActorClassByTypeName, getActorHandle, getActorTypeName, isActor, normalizeActorHandle } from "../actor-Ydzhc8dj.cjs";
5
+ import { FediverseHandle, LookupObjectOptions, PUBLIC_COLLECTION, TraverseCollectionOptions, getTypeId, isFediverseHandle, lookupObject, parseFediverseHandle, toAcctUrl, traverseCollection } from "../mod-BUbqxBev.cjs";
6
+ export { Accept, Activity, Actor, ActorTypeName, Add, Announce, Application, Arrive, Article, Audio, Block, ChatMessage, Collection, CollectionPage, Create, CryptographicKey, DataIntegrityProof, Delete, DidService, Dislike, Document, Emoji, EmojiReact, Endpoints, Event, Export, FediverseHandle, Flag, Follow, GetActorHandleOptions, Group, Hashtag, Ignore, Image, IntransitiveActivity, Invite, Join, Leave, Like, Link, Listen, LookupObjectOptions, Mention, Move, Multikey, NormalizeActorHandleOptions, Note, Object$1 as Object, Offer, OrderedCollection, OrderedCollectionPage, Organization, PUBLIC_COLLECTION, Page, Person, Place, Profile, PropertyValue, Question, Read, Recipient, Reject, Relationship, Remove, Service, Source, TentativeAccept, TentativeReject, Tombstone, Travel, TraverseCollectionOptions, Undo, Update, Video, View, getActorClassByTypeName, getActorHandle, getActorTypeName, getTypeId, isActor, isFediverseHandle, lookupObject, normalizeActorHandle, parseFediverseHandle, toAcctUrl, traverseCollection };
@@ -2,7 +2,7 @@ import { Temporal } from "@js-temporal/polyfill";
2
2
  import { URLPattern } from "urlpattern-polyfill";
3
3
  import "../kv-C7sopW2E.js";
4
4
  import "../docloader-CxWcuWqQ.js";
5
- import { Accept, Activity, Add, Announce, Application, Arrive, Article, Audio, Block, ChatMessage, Collection, CollectionPage, Create, CryptographicKey, DataIntegrityProof, Delete, DidService, Dislike, Document, Emoji, EmojiReact, Endpoints, Event, Export, Flag, Follow, Group, Hashtag, Ignore, Image, IntransitiveActivity, Invite, Join, Leave, Like, Link, Listen, Mention, Move, Multikey, Note, Object as Object$1, Offer, OrderedCollection, OrderedCollectionPage, Organization, Page, Person, Place, Profile, PropertyValue, Question, Read, Reject, Relationship, Remove, Service, Source, TentativeAccept, TentativeReject, Tombstone, Travel, Undo, Update, Video, View } from "../vocab-BEEm2I6u.js";
6
- import { Actor, ActorTypeName, GetActorHandleOptions, NormalizeActorHandleOptions, Recipient, getActorClassByTypeName, getActorHandle, getActorTypeName, isActor, normalizeActorHandle } from "../actor-Ch5yFYFG.js";
7
- import { FediverseHandle, LookupObjectOptions, PUBLIC_COLLECTION, TraverseCollectionOptions, getTypeId, isFediverseHandle, lookupObject, parseFediverseHandle, toAcctUrl, traverseCollection } from "../mod-Cy6pkZSn.js";
5
+ import { Accept, Activity, Add, Announce, Application, Arrive, Article, Audio, Block, ChatMessage, Collection, CollectionPage, Create, CryptographicKey, DataIntegrityProof, Delete, DidService, Dislike, Document, Emoji, EmojiReact, Endpoints, Event, Export, Flag, Follow, Group, Hashtag, Ignore, Image, IntransitiveActivity, Invite, Join, Leave, Like, Link, Listen, Mention, Move, Multikey, Note, Object as Object$1, Offer, OrderedCollection, OrderedCollectionPage, Organization, Page, Person, Place, Profile, PropertyValue, Question, Read, Reject, Relationship, Remove, Service, Source, TentativeAccept, TentativeReject, Tombstone, Travel, Undo, Update, Video, View } from "../vocab-CDHNj5zp.js";
6
+ import { Actor, ActorTypeName, GetActorHandleOptions, NormalizeActorHandleOptions, Recipient, getActorClassByTypeName, getActorHandle, getActorTypeName, isActor, normalizeActorHandle } from "../actor-C1Euqngb.js";
7
+ import { FediverseHandle, LookupObjectOptions, PUBLIC_COLLECTION, TraverseCollectionOptions, getTypeId, isFediverseHandle, lookupObject, parseFediverseHandle, toAcctUrl, traverseCollection } from "../mod-CDObsV1d.js";
8
8
  export { Accept, Activity, Actor, ActorTypeName, Add, Announce, Application, Arrive, Article, Audio, Block, ChatMessage, Collection, CollectionPage, Create, CryptographicKey, DataIntegrityProof, Delete, DidService, Dislike, Document, Emoji, EmojiReact, Endpoints, Event, Export, FediverseHandle, Flag, Follow, GetActorHandleOptions, Group, Hashtag, Ignore, Image, IntransitiveActivity, Invite, Join, Leave, Like, Link, Listen, LookupObjectOptions, Mention, Move, Multikey, NormalizeActorHandleOptions, Note, Object$1 as Object, Offer, OrderedCollection, OrderedCollectionPage, Organization, PUBLIC_COLLECTION, Page, Person, Place, Profile, PropertyValue, Question, Read, Recipient, Reject, Relationship, Remove, Service, Source, TentativeAccept, TentativeReject, Tombstone, Travel, TraverseCollectionOptions, Undo, Update, Video, View, getActorClassByTypeName, getActorHandle, getActorTypeName, getTypeId, isActor, isFediverseHandle, lookupObject, normalizeActorHandle, parseFediverseHandle, toAcctUrl, traverseCollection };
package/dist/vocab/mod.js CHANGED
@@ -1,10 +1,10 @@
1
1
 
2
- import { Temporal } from "@js-temporal/polyfill";
3
- import { URLPattern } from "urlpattern-polyfill";
4
-
5
- import "../docloader-B1FKn22p.js";
6
- import { Accept, Activity, Add, Announce, Application, Arrive, Article, Audio, Block, ChatMessage, Collection, CollectionPage, Create, CryptographicKey, DataIntegrityProof, Delete, DidService, Dislike, Document, Emoji, EmojiReact, Endpoints, Event, Export, Flag, Follow, Group, Hashtag, Ignore, Image, IntransitiveActivity, Invite, Join, Leave, Like, Link, Listen, Mention, Move, Multikey, Note, Object as Object$1, Offer, OrderedCollection, OrderedCollectionPage, Organization, Page, Person, Place, Profile, PropertyValue, Question, Read, Reject, Relationship, Remove, Service, Source, TentativeAccept, TentativeReject, Tombstone, Travel, Undo, Update, Video, View, getActorClassByTypeName, getActorHandle, getActorTypeName, getTypeId, isActor, normalizeActorHandle } from "../actor-Ci9FEnz7.js";
7
- import "../lookup-BacM-mU2.js";
8
- import { PUBLIC_COLLECTION, isFediverseHandle, lookupObject, parseFediverseHandle, toAcctUrl, traverseCollection } from "../vocab-BQIHm1R2.js";
2
+ import { Temporal } from "@js-temporal/polyfill";
3
+ import { URLPattern } from "urlpattern-polyfill";
4
+
5
+ import "../docloader-Bf4PXDNP.js";
6
+ import { Accept, Activity, Add, Announce, Application, Arrive, Article, Audio, Block, ChatMessage, Collection, CollectionPage, Create, CryptographicKey, DataIntegrityProof, Delete, DidService, Dislike, Document, Emoji, EmojiReact, Endpoints, Event, Export, Flag, Follow, Group, Hashtag, Ignore, Image, IntransitiveActivity, Invite, Join, Leave, Like, Link, Listen, Mention, Move, Multikey, Note, Object as Object$1, Offer, OrderedCollection, OrderedCollectionPage, Organization, Page, Person, Place, Profile, PropertyValue, Question, Read, Reject, Relationship, Remove, Service, Source, TentativeAccept, TentativeReject, Tombstone, Travel, Undo, Update, Video, View, getActorClassByTypeName, getActorHandle, getActorTypeName, getTypeId, isActor, normalizeActorHandle } from "../actor-BGkVHk1D.js";
7
+ import "../lookup-DxJ0NLYS.js";
8
+ import { PUBLIC_COLLECTION, isFediverseHandle, lookupObject, parseFediverseHandle, toAcctUrl, traverseCollection } from "../vocab-Cb3CeS7_.js";
9
9
 
10
10
  export { Accept, Activity, Add, Announce, Application, Arrive, Article, Audio, Block, ChatMessage, Collection, CollectionPage, Create, CryptographicKey, DataIntegrityProof, Delete, DidService, Dislike, Document, Emoji, EmojiReact, Endpoints, Event, Export, Flag, Follow, Group, Hashtag, Ignore, Image, IntransitiveActivity, Invite, Join, Leave, Like, Link, Listen, Mention, Move, Multikey, Note, Object$1 as Object, Offer, OrderedCollection, OrderedCollectionPage, Organization, PUBLIC_COLLECTION, Page, Person, Place, Profile, PropertyValue, Question, Read, Reject, Relationship, Remove, Service, Source, TentativeAccept, TentativeReject, Tombstone, Travel, Undo, Update, Video, View, getActorClassByTypeName, getActorHandle, getActorTypeName, getTypeId, isActor, isFediverseHandle, lookupObject, normalizeActorHandle, parseFediverseHandle, toAcctUrl, traverseCollection };
@@ -3,10 +3,10 @@
3
3
  import { URLPattern } from "urlpattern-polyfill";
4
4
  globalThis.addEventListener = () => {};
5
5
 
6
- import { Person, getTypeId } from "../type-B8vENQVR.js";
6
+ import { Person, getTypeId } from "../type-JHkkALfe.js";
7
7
  import { assertEquals } from "../assert_equals-DSbWqCm3.js";
8
- import "../lookup-CHXemfKP.js";
9
- import { test } from "../testing-BWnZ_sj_.js";
8
+ import "../lookup-8ZcpBTR8.js";
9
+ import { test } from "../testing-wv9xgBFV.js";
10
10
 
11
11
  //#region src/vocab/type.test.ts
12
12
  test("getTypeId()", () => {