@fedify/fedify 1.7.9 → 1.7.11

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 (114) hide show
  1. package/dist/{actor-lW38sC2T.js → actor-2ENhJMd7.js} +3 -3
  2. package/dist/{actor-BdEyRHSu.js → actor-DgWryCk8.js} +179 -179
  3. package/dist/{authdocloader-DYTQwADG.js → authdocloader-BUJAQQAE.js} +3 -3
  4. package/dist/{authdocloader-DNjankdO.js → authdocloader-CK17fG7y.js} +3 -3
  5. package/dist/{builder-CngxHTRi.js → builder-CZM8EtHh.js} +3 -3
  6. package/dist/{client-BNeCIx9P.js → client-D83KwIk4.js} +1 -1
  7. package/dist/compat/transformers.test.d.ts +2 -1
  8. package/dist/compat/transformers.test.js +19 -18
  9. package/dist/{context-lumX0ZHV.js → context-MUHrGcK9.js} +2 -2
  10. package/dist/{docloader-C2i2VJR7.js → docloader-BcyuO_kK.js} +2 -2
  11. package/dist/{docloader-BpoDr2rw.js → docloader-D4wl8z_4.js} +2 -2
  12. package/dist/federation/builder.test.d.ts +2 -1
  13. package/dist/federation/builder.test.js +6 -5
  14. package/dist/federation/collection.test.d.ts +2 -1
  15. package/dist/federation/collection.test.js +2 -1
  16. package/dist/federation/handler.test.d.ts +2 -1
  17. package/dist/federation/handler.test.js +21 -20
  18. package/dist/federation/inbox.test.d.ts +2 -1
  19. package/dist/federation/inbox.test.js +5 -4
  20. package/dist/federation/keycache.test.d.ts +2 -1
  21. package/dist/federation/keycache.test.js +5 -4
  22. package/dist/federation/kv.test.d.ts +2 -1
  23. package/dist/federation/kv.test.js +2 -1
  24. package/dist/federation/middleware.test.d.ts +2 -1
  25. package/dist/federation/middleware.test.js +20 -19
  26. package/dist/federation/mod.js +10 -10
  27. package/dist/federation/mq.test.d.ts +2 -1
  28. package/dist/federation/mq.test.js +2 -1
  29. package/dist/federation/retry.test.d.ts +2 -1
  30. package/dist/federation/retry.test.js +2 -1
  31. package/dist/federation/router.test.d.ts +2 -1
  32. package/dist/federation/router.test.js +2 -1
  33. package/dist/federation/send.test.d.ts +2 -1
  34. package/dist/federation/send.test.js +11 -10
  35. package/dist/fixtures/oeee.cafe/ap/users/3609fd4e-d51d-4db8-9f04-4189815864dd.json +24 -0
  36. package/dist/{http-Bf73Pc8n.js → http-DFHfa9tA.js} +51 -5
  37. package/dist/{http-BiXP97Mg.js → http-Dsj_eYDw.js} +51 -5
  38. package/dist/{inbox-B6bABfWF.js → inbox-CltmHpHc.js} +2 -2
  39. package/dist/{key-sU83wJ27.js → key-BROjrzkW.js} +5 -5
  40. package/dist/{key-B4FI9Pmx.js → key-bBurC_PZ.js} +4 -4
  41. package/dist/{key-CVu3UHNk.js → key-bttcdrh5.js} +3 -3
  42. package/dist/{key-BkcDQGWw.js → key-qFVeObG1.js} +2 -2
  43. package/dist/{keycache-CbYZZGcu.js → keycache-DijbBawF.js} +1 -1
  44. package/dist/{keys-DERJJq0n.js → keys-DJ5t4jB4.js} +1 -1
  45. package/dist/{ld-DwQsszWL.js → ld-U-lGfuzj.js} +3 -3
  46. package/dist/{lookup-MomtMbVM.js → lookup-BGqnk7rW.js} +1 -1
  47. package/dist/{lookup-i_xNGJhe.js → lookup-BlPHJ-Ff.js} +1 -1
  48. package/dist/{lookup-Ck4rDA0d.js → lookup-C8ZpflGI.js} +3 -3
  49. package/dist/{middleware-BPdRnvp4.js → middleware-BRzqW-QG.js} +10 -10
  50. package/dist/middleware-BhqeOJrC.js +17 -0
  51. package/dist/{middleware-DtP_z9I6.js → middleware-D66R1UZl.js} +15 -15
  52. package/dist/middleware-DFra19vb.js +33 -0
  53. package/dist/mod.js +10 -10
  54. package/dist/nodeinfo/client.test.d.ts +2 -1
  55. package/dist/nodeinfo/client.test.js +4 -3
  56. package/dist/nodeinfo/handler.test.d.ts +2 -1
  57. package/dist/nodeinfo/handler.test.js +20 -19
  58. package/dist/nodeinfo/mod.js +2 -2
  59. package/dist/nodeinfo/semver.test.d.ts +2 -1
  60. package/dist/nodeinfo/semver.test.js +2 -1
  61. package/dist/nodeinfo/types.test.d.ts +2 -1
  62. package/dist/nodeinfo/types.test.js +2 -1
  63. package/dist/{owner-7iBuSVl4.js → owner-2zho-3Ew.js} +3 -3
  64. package/dist/{proof-CtoF37-N.js → proof-3J23UdVg.js} +3 -3
  65. package/dist/{proof-W7ADUBT9.js → proof-BYHc1mMr.js} +3 -3
  66. package/dist/runtime/authdocloader.test.d.ts +2 -1
  67. package/dist/runtime/authdocloader.test.js +10 -9
  68. package/dist/runtime/docloader.test.d.ts +2 -1
  69. package/dist/runtime/docloader.test.js +27 -2
  70. package/dist/runtime/key.test.d.ts +2 -1
  71. package/dist/runtime/key.test.js +7 -6
  72. package/dist/runtime/langstr.test.d.ts +2 -1
  73. package/dist/runtime/langstr.test.js +2 -1
  74. package/dist/runtime/mod.js +6 -6
  75. package/dist/runtime/multibase/multibase.test.d.ts +2 -1
  76. package/dist/runtime/multibase/multibase.test.js +2 -1
  77. package/dist/runtime/url.test.d.ts +2 -1
  78. package/dist/runtime/url.test.js +2 -1
  79. package/dist/{send-CaHCB-Kf.js → send-CW7iJ-b9.js} +2 -2
  80. package/dist/sig/http.test.d.ts +2 -1
  81. package/dist/sig/http.test.js +25 -8
  82. package/dist/sig/key.test.d.ts +2 -1
  83. package/dist/sig/key.test.js +8 -7
  84. package/dist/sig/ld.test.d.ts +2 -1
  85. package/dist/sig/ld.test.js +9 -8
  86. package/dist/sig/mod.js +6 -6
  87. package/dist/sig/owner.test.d.ts +2 -1
  88. package/dist/sig/owner.test.js +10 -9
  89. package/dist/sig/proof.test.d.ts +2 -1
  90. package/dist/sig/proof.test.js +9 -8
  91. package/dist/testing/docloader.test.d.ts +2 -1
  92. package/dist/testing/docloader.test.js +2 -1
  93. package/dist/{types-CJqlYa9v.js → types-DXmLob1B.js} +1 -1
  94. package/dist/vocab/actor.test.d.ts +2 -1
  95. package/dist/vocab/actor.test.js +6 -6
  96. package/dist/vocab/lookup.test.d.ts +2 -1
  97. package/dist/vocab/lookup.test.js +6 -5
  98. package/dist/vocab/mod.js +4 -4
  99. package/dist/vocab/type.test.d.ts +2 -1
  100. package/dist/vocab/type.test.js +4 -3
  101. package/dist/vocab/vocab.test.d.ts +2 -1
  102. package/dist/vocab/vocab.test.js +19 -18
  103. package/dist/{vocab-b9IZeAzb.js → vocab-BojAnGjI.js} +178 -178
  104. package/dist/{vocab-C9CPkYQi.js → vocab-Cy9XhW_T.js} +3 -3
  105. package/dist/webfinger/handler.test.d.ts +2 -1
  106. package/dist/webfinger/handler.test.js +20 -19
  107. package/dist/webfinger/lookup.test.d.ts +2 -1
  108. package/dist/webfinger/lookup.test.js +4 -3
  109. package/dist/webfinger/mod.js +2 -2
  110. package/dist/x/cfworkers.test.d.ts +2 -1
  111. package/dist/x/cfworkers.test.js +2 -1
  112. package/package.json +1 -1
  113. package/dist/middleware-BXEwpPLe.js +0 -17
  114. package/dist/middleware-DAbjdD1U.js +0 -33
@@ -3,9 +3,9 @@
3
3
  import { URLPattern } from "urlpattern-polyfill";
4
4
  globalThis.addEventListener = () => {};
5
5
 
6
- import { deno_default } from "./docloader-BpoDr2rw.js";
7
- import { CryptographicKey } from "./vocab-b9IZeAzb.js";
8
- import { fetchKey, validateCryptoKey } from "./key-CVu3UHNk.js";
6
+ import { deno_default } from "./docloader-D4wl8z_4.js";
7
+ import { CryptographicKey } from "./vocab-BojAnGjI.js";
8
+ import { fetchKey, validateCryptoKey } from "./key-bttcdrh5.js";
9
9
  import { getLogger } from "@logtape/logtape";
10
10
  import { SpanStatusCode, trace } from "@opentelemetry/api";
11
11
  import { ATTR_HTTP_REQUEST_HEADER, ATTR_HTTP_REQUEST_METHOD, ATTR_URL_FULL } from "@opentelemetry/semantic-conventions";
@@ -367,7 +367,7 @@ async function verifyRequestDraft(request, span, { documentLoader, contextLoader
367
367
  return null;
368
368
  }
369
369
  }
370
- const sigValues = Object.fromEntries(sigHeader.split(",").map((pair) => pair.match(/^\s*([A-Za-z]+)="([^"]*)"\s*$/)).filter((m) => m != null).map((m) => m.slice(1, 3)));
370
+ const sigValues = Object.fromEntries(sigHeader.split(",").map((pair) => pair.match(/^\s*([A-Za-z]+)=(?:"([^"]*)"|(\d+))\s*$/)).filter((m) => m != null).map((m) => [m[1], m[2] ?? m[3]]));
371
371
  if (!("keyId" in sigValues)) {
372
372
  logger.debug("Failed to verify; no keyId field found in the Signature header.", { signature: sigHeader });
373
373
  return null;
@@ -378,6 +378,52 @@ async function verifyRequestDraft(request, span, { documentLoader, contextLoader
378
378
  logger.debug("Failed to verify; no signature field found in the Signature header.", { signature: sigHeader });
379
379
  return null;
380
380
  }
381
+ if ("expires" in sigValues) {
382
+ const expiresSeconds = parseInt(sigValues.expires);
383
+ if (!Number.isInteger(expiresSeconds)) {
384
+ logger.debug("Failed to verify; invalid expires field in the Signature header: {expires}.", {
385
+ expires: sigValues.expires,
386
+ signature: sigHeader
387
+ });
388
+ return null;
389
+ }
390
+ const expires = Temporal.Instant.fromEpochMilliseconds(expiresSeconds * 1e3);
391
+ if (Temporal.Instant.compare(now, expires) > 0) {
392
+ logger.debug("Failed to verify; signature expired at {expires} (now: {now}).", {
393
+ expires: expires.toString(),
394
+ now: now.toString(),
395
+ signature: sigHeader
396
+ });
397
+ return null;
398
+ }
399
+ }
400
+ if ("created" in sigValues) {
401
+ const createdSeconds = parseInt(sigValues.created);
402
+ if (!Number.isInteger(createdSeconds)) {
403
+ logger.debug("Failed to verify; invalid created field in the Signature header: {created}.", {
404
+ created: sigValues.created,
405
+ signature: sigHeader
406
+ });
407
+ return null;
408
+ }
409
+ if (timeWindow !== false) {
410
+ const created = Temporal.Instant.fromEpochMilliseconds(createdSeconds * 1e3);
411
+ const tw = timeWindow ?? { minutes: 1 };
412
+ if (Temporal.Instant.compare(created, now.add(tw)) > 0) {
413
+ logger.debug("Failed to verify; created is too far in the future.", {
414
+ created: created.toString(),
415
+ now: now.toString()
416
+ });
417
+ return null;
418
+ } else if (Temporal.Instant.compare(created, now.subtract(tw)) < 0) {
419
+ logger.debug("Failed to verify; created is too far in the past.", {
420
+ created: created.toString(),
421
+ now: now.toString()
422
+ });
423
+ return null;
424
+ }
425
+ }
426
+ }
381
427
  const { keyId, headers, signature } = sigValues;
382
428
  span?.setAttribute("http_signatures.key_id", keyId);
383
429
  if ("algorithm" in sigValues) span?.setAttribute("http_signatures.algorithm", sigValues.algorithm);
@@ -397,7 +443,7 @@ async function verifyRequestDraft(request, span, { documentLoader, contextLoader
397
443
  logger.debug("Failed to verify; required headers missing in the Signature header: {headers}.", { headers });
398
444
  return null;
399
445
  }
400
- const message = headerNames.map((name) => `${name}: ` + (name == "(request-target)" ? `${request.method.toLowerCase()} ${new URL(request.url).pathname}` : name == "host" ? request.headers.get("host") ?? new URL(request.url).host : request.headers.get(name))).join("\n");
446
+ const message = headerNames.map((name) => `${name}: ` + (name === "(request-target)" ? `${request.method.toLowerCase()} ${new URL(request.url).pathname}` : name === "(created)" ? sigValues.created ?? "" : name === "(expires)" ? sigValues.expires ?? "" : name === "host" ? request.headers.get("host") ?? new URL(request.url).host : request.headers.get(name))).join("\n");
401
447
  const sig = decodeBase64(signature);
402
448
  span?.setAttribute("http_signatures.signature", encodeHex(sig));
403
449
  const verified = await crypto.subtle.verify("RSASSA-PKCS1-v1_5", key.publicKey, sig, new TextEncoder().encode(message));
@@ -2,9 +2,9 @@
2
2
  import { Temporal } from "@js-temporal/polyfill";
3
3
  import { URLPattern } from "urlpattern-polyfill";
4
4
 
5
- import { deno_default } from "./docloader-C2i2VJR7.js";
6
- import { CryptographicKey } from "./actor-BdEyRHSu.js";
7
- import { fetchKey, validateCryptoKey } from "./key-BkcDQGWw.js";
5
+ import { deno_default } from "./docloader-BcyuO_kK.js";
6
+ import { CryptographicKey } from "./actor-DgWryCk8.js";
7
+ import { fetchKey, validateCryptoKey } from "./key-qFVeObG1.js";
8
8
  import { getLogger } from "@logtape/logtape";
9
9
  import { SpanStatusCode, trace } from "@opentelemetry/api";
10
10
  import { decodeBase64, encodeBase64 } from "byte-encodings/base64";
@@ -366,7 +366,7 @@ async function verifyRequestDraft(request, span, { documentLoader, contextLoader
366
366
  return null;
367
367
  }
368
368
  }
369
- const sigValues = Object.fromEntries(sigHeader.split(",").map((pair) => pair.match(/^\s*([A-Za-z]+)="([^"]*)"\s*$/)).filter((m) => m != null).map((m) => m.slice(1, 3)));
369
+ const sigValues = Object.fromEntries(sigHeader.split(",").map((pair) => pair.match(/^\s*([A-Za-z]+)=(?:"([^"]*)"|(\d+))\s*$/)).filter((m) => m != null).map((m) => [m[1], m[2] ?? m[3]]));
370
370
  if (!("keyId" in sigValues)) {
371
371
  logger.debug("Failed to verify; no keyId field found in the Signature header.", { signature: sigHeader });
372
372
  return null;
@@ -377,6 +377,52 @@ async function verifyRequestDraft(request, span, { documentLoader, contextLoader
377
377
  logger.debug("Failed to verify; no signature field found in the Signature header.", { signature: sigHeader });
378
378
  return null;
379
379
  }
380
+ if ("expires" in sigValues) {
381
+ const expiresSeconds = parseInt(sigValues.expires);
382
+ if (!Number.isInteger(expiresSeconds)) {
383
+ logger.debug("Failed to verify; invalid expires field in the Signature header: {expires}.", {
384
+ expires: sigValues.expires,
385
+ signature: sigHeader
386
+ });
387
+ return null;
388
+ }
389
+ const expires = Temporal.Instant.fromEpochMilliseconds(expiresSeconds * 1e3);
390
+ if (Temporal.Instant.compare(now, expires) > 0) {
391
+ logger.debug("Failed to verify; signature expired at {expires} (now: {now}).", {
392
+ expires: expires.toString(),
393
+ now: now.toString(),
394
+ signature: sigHeader
395
+ });
396
+ return null;
397
+ }
398
+ }
399
+ if ("created" in sigValues) {
400
+ const createdSeconds = parseInt(sigValues.created);
401
+ if (!Number.isInteger(createdSeconds)) {
402
+ logger.debug("Failed to verify; invalid created field in the Signature header: {created}.", {
403
+ created: sigValues.created,
404
+ signature: sigHeader
405
+ });
406
+ return null;
407
+ }
408
+ if (timeWindow !== false) {
409
+ const created = Temporal.Instant.fromEpochMilliseconds(createdSeconds * 1e3);
410
+ const tw = timeWindow ?? { minutes: 1 };
411
+ if (Temporal.Instant.compare(created, now.add(tw)) > 0) {
412
+ logger.debug("Failed to verify; created is too far in the future.", {
413
+ created: created.toString(),
414
+ now: now.toString()
415
+ });
416
+ return null;
417
+ } else if (Temporal.Instant.compare(created, now.subtract(tw)) < 0) {
418
+ logger.debug("Failed to verify; created is too far in the past.", {
419
+ created: created.toString(),
420
+ now: now.toString()
421
+ });
422
+ return null;
423
+ }
424
+ }
425
+ }
380
426
  const { keyId, headers, signature } = sigValues;
381
427
  span?.setAttribute("http_signatures.key_id", keyId);
382
428
  if ("algorithm" in sigValues) span?.setAttribute("http_signatures.algorithm", sigValues.algorithm);
@@ -396,7 +442,7 @@ async function verifyRequestDraft(request, span, { documentLoader, contextLoader
396
442
  logger.debug("Failed to verify; required headers missing in the Signature header: {headers}.", { headers });
397
443
  return null;
398
444
  }
399
- const message = headerNames.map((name) => `${name}: ` + (name == "(request-target)" ? `${request.method.toLowerCase()} ${new URL(request.url).pathname}` : name == "host" ? request.headers.get("host") ?? new URL(request.url).host : request.headers.get(name))).join("\n");
445
+ const message = headerNames.map((name) => `${name}: ` + (name === "(request-target)" ? `${request.method.toLowerCase()} ${new URL(request.url).pathname}` : name === "(created)" ? sigValues.created ?? "" : name === "(expires)" ? sigValues.expires ?? "" : name === "host" ? request.headers.get("host") ?? new URL(request.url).host : request.headers.get(name))).join("\n");
400
446
  const sig = decodeBase64(signature);
401
447
  span?.setAttribute("http_signatures.signature", encodeHex(sig));
402
448
  const verified = await crypto.subtle.verify("RSASSA-PKCS1-v1_5", key.publicKey, sig, new TextEncoder().encode(message));
@@ -3,8 +3,8 @@
3
3
  import { URLPattern } from "urlpattern-polyfill";
4
4
  globalThis.addEventListener = () => {};
5
5
 
6
- import { deno_default } from "./docloader-BpoDr2rw.js";
7
- import { Activity } from "./vocab-b9IZeAzb.js";
6
+ import { deno_default } from "./docloader-D4wl8z_4.js";
7
+ import { Activity } from "./vocab-BojAnGjI.js";
8
8
  import { getTypeId } from "./type-D2s5lmbZ.js";
9
9
  import { getLogger } from "@logtape/logtape";
10
10
  import { SpanKind, SpanStatusCode, context, propagation, trace } from "@opentelemetry/api";
@@ -3,14 +3,14 @@
3
3
  import { URLPattern } from "urlpattern-polyfill";
4
4
  globalThis.addEventListener = () => {};
5
5
 
6
- import "./docloader-BpoDr2rw.js";
6
+ import "./docloader-D4wl8z_4.js";
7
7
  import "./url-kTAI6_KP.js";
8
8
  import "./multibase-DeCHcK8L.js";
9
- import "./vocab-b9IZeAzb.js";
9
+ import "./vocab-BojAnGjI.js";
10
10
  import "./langstr-DbWheeIS.js";
11
- import "./lookup-MomtMbVM.js";
11
+ import "./lookup-BGqnk7rW.js";
12
12
  import "./type-D2s5lmbZ.js";
13
- import "./actor-lW38sC2T.js";
14
- import { exportJwk, fetchKey, generateCryptoKeyPair, importJwk, validateCryptoKey } from "./key-CVu3UHNk.js";
13
+ import "./actor-2ENhJMd7.js";
14
+ import { exportJwk, fetchKey, generateCryptoKeyPair, importJwk, validateCryptoKey } from "./key-bttcdrh5.js";
15
15
 
16
16
  export { validateCryptoKey };
@@ -2,9 +2,9 @@
2
2
  import { Temporal } from "@js-temporal/polyfill";
3
3
  import { URLPattern } from "urlpattern-polyfill";
4
4
 
5
- import "./docloader-C2i2VJR7.js";
6
- import "./actor-BdEyRHSu.js";
7
- import "./lookup-i_xNGJhe.js";
8
- import { exportJwk, fetchKey, generateCryptoKeyPair, importJwk, validateCryptoKey } from "./key-BkcDQGWw.js";
5
+ import "./docloader-BcyuO_kK.js";
6
+ import "./actor-DgWryCk8.js";
7
+ import "./lookup-BlPHJ-Ff.js";
8
+ import { exportJwk, fetchKey, generateCryptoKeyPair, importJwk, validateCryptoKey } from "./key-qFVeObG1.js";
9
9
 
10
10
  export { validateCryptoKey };
@@ -3,9 +3,9 @@
3
3
  import { URLPattern } from "urlpattern-polyfill";
4
4
  globalThis.addEventListener = () => {};
5
5
 
6
- import { deno_default, getDocumentLoader } from "./docloader-BpoDr2rw.js";
7
- import { CryptographicKey, Object as Object$1 } from "./vocab-b9IZeAzb.js";
8
- import { isActor } from "./actor-lW38sC2T.js";
6
+ import { deno_default, getDocumentLoader } from "./docloader-D4wl8z_4.js";
7
+ import { CryptographicKey, Object as Object$1 } from "./vocab-BojAnGjI.js";
8
+ import { isActor } from "./actor-2ENhJMd7.js";
9
9
  import { getLogger } from "@logtape/logtape";
10
10
  import { SpanKind, SpanStatusCode, trace } from "@opentelemetry/api";
11
11
 
@@ -2,8 +2,8 @@
2
2
  import { Temporal } from "@js-temporal/polyfill";
3
3
  import { URLPattern } from "urlpattern-polyfill";
4
4
 
5
- import { deno_default, getDocumentLoader } from "./docloader-C2i2VJR7.js";
6
- import { CryptographicKey, Object as Object$1, isActor } from "./actor-BdEyRHSu.js";
5
+ import { deno_default, getDocumentLoader } from "./docloader-BcyuO_kK.js";
6
+ import { CryptographicKey, Object as Object$1, isActor } from "./actor-DgWryCk8.js";
7
7
  import { getLogger } from "@logtape/logtape";
8
8
  import { SpanKind, SpanStatusCode, trace } from "@opentelemetry/api";
9
9
 
@@ -3,7 +3,7 @@
3
3
  import { URLPattern } from "urlpattern-polyfill";
4
4
  globalThis.addEventListener = () => {};
5
5
 
6
- import { CryptographicKey, Multikey } from "./vocab-b9IZeAzb.js";
6
+ import { CryptographicKey, Multikey } from "./vocab-BojAnGjI.js";
7
7
 
8
8
  //#region federation/keycache.ts
9
9
  var KvKeyCache = class {
@@ -3,7 +3,7 @@
3
3
  import { URLPattern } from "urlpattern-polyfill";
4
4
  globalThis.addEventListener = () => {};
5
5
 
6
- import { CryptographicKey, Multikey, importSpki } from "./vocab-b9IZeAzb.js";
6
+ import { CryptographicKey, Multikey, importSpki } from "./vocab-BojAnGjI.js";
7
7
 
8
8
  //#region testing/keys.ts
9
9
  const rsaPublicKey1 = new CryptographicKey({
@@ -3,10 +3,10 @@
3
3
  import { URLPattern } from "urlpattern-polyfill";
4
4
  globalThis.addEventListener = () => {};
5
5
 
6
- import { deno_default, getDocumentLoader } from "./docloader-BpoDr2rw.js";
7
- import { Activity, CryptographicKey, Object as Object$1 } from "./vocab-b9IZeAzb.js";
6
+ import { deno_default, getDocumentLoader } from "./docloader-D4wl8z_4.js";
7
+ import { Activity, CryptographicKey, Object as Object$1 } from "./vocab-BojAnGjI.js";
8
8
  import { getTypeId } from "./type-D2s5lmbZ.js";
9
- import { fetchKey, validateCryptoKey } from "./key-CVu3UHNk.js";
9
+ import { fetchKey, validateCryptoKey } from "./key-bttcdrh5.js";
10
10
  import { getLogger } from "@logtape/logtape";
11
11
  import { SpanStatusCode, trace } from "@opentelemetry/api";
12
12
  import { decodeBase64, encodeBase64 } from "byte-encodings/base64";
@@ -3,7 +3,7 @@
3
3
  import { URLPattern } from "urlpattern-polyfill";
4
4
  globalThis.addEventListener = () => {};
5
5
 
6
- import { deno_default, getUserAgent } from "./docloader-BpoDr2rw.js";
6
+ import { deno_default, getUserAgent } from "./docloader-D4wl8z_4.js";
7
7
  import { UrlError, validatePublicUrl } from "./url-kTAI6_KP.js";
8
8
  import { getLogger } from "@logtape/logtape";
9
9
  import { SpanKind, SpanStatusCode, trace } from "@opentelemetry/api";
@@ -2,7 +2,7 @@
2
2
  import { Temporal } from "@js-temporal/polyfill";
3
3
  import { URLPattern } from "urlpattern-polyfill";
4
4
 
5
- import { UrlError, deno_default, getUserAgent, validatePublicUrl } from "./docloader-C2i2VJR7.js";
5
+ import { UrlError, deno_default, getUserAgent, validatePublicUrl } from "./docloader-BcyuO_kK.js";
6
6
  import { getLogger } from "@logtape/logtape";
7
7
  import { SpanKind, SpanStatusCode, trace } from "@opentelemetry/api";
8
8
 
@@ -3,9 +3,9 @@
3
3
  import { URLPattern } from "urlpattern-polyfill";
4
4
  globalThis.addEventListener = () => {};
5
5
 
6
- import { deno_default, getDocumentLoader } from "./docloader-BpoDr2rw.js";
7
- import { Object as Object$1 } from "./vocab-b9IZeAzb.js";
8
- import { lookupWebFinger } from "./lookup-MomtMbVM.js";
6
+ import { deno_default, getDocumentLoader } from "./docloader-D4wl8z_4.js";
7
+ import { Object as Object$1 } from "./vocab-BojAnGjI.js";
8
+ import { lookupWebFinger } from "./lookup-BGqnk7rW.js";
9
9
  import { getTypeId } from "./type-D2s5lmbZ.js";
10
10
  import { getLogger } from "@logtape/logtape";
11
11
  import { SpanStatusCode, trace } from "@opentelemetry/api";
@@ -3,15 +3,15 @@
3
3
  import { URLPattern } from "urlpattern-polyfill";
4
4
 
5
5
  import { getDefaultActivityTransformers } from "./transformers-ghwJuzGY.js";
6
- import { deno_default, getDocumentLoader, kvCache } from "./docloader-C2i2VJR7.js";
7
- import { Activity, CryptographicKey, Link, Multikey, Object as Object$1, OrderedCollection, OrderedCollectionPage, getTypeId } from "./actor-BdEyRHSu.js";
8
- import { lookupWebFinger } from "./lookup-i_xNGJhe.js";
9
- import { exportJwk, importJwk, validateCryptoKey } from "./key-BkcDQGWw.js";
10
- import { doubleKnock, verifyRequest } from "./http-BiXP97Mg.js";
11
- import { detachSignature, doesActorOwnKey, getKeyOwner, hasSignature, signJsonLd, signObject, verifyJsonLd, verifyObject } from "./proof-CtoF37-N.js";
12
- import { getNodeInfo, nodeInfoToJson } from "./types-CJqlYa9v.js";
13
- import { getAuthenticatedDocumentLoader } from "./authdocloader-DYTQwADG.js";
14
- import { lookupObject, traverseCollection } from "./vocab-C9CPkYQi.js";
6
+ import { deno_default, getDocumentLoader, kvCache } from "./docloader-BcyuO_kK.js";
7
+ import { Activity, CryptographicKey, Link, Multikey, Object as Object$1, OrderedCollection, OrderedCollectionPage, getTypeId } from "./actor-DgWryCk8.js";
8
+ import { lookupWebFinger } from "./lookup-BlPHJ-Ff.js";
9
+ import { exportJwk, importJwk, validateCryptoKey } from "./key-qFVeObG1.js";
10
+ import { doubleKnock, verifyRequest } from "./http-Dsj_eYDw.js";
11
+ import { detachSignature, doesActorOwnKey, getKeyOwner, hasSignature, signJsonLd, signObject, verifyJsonLd, verifyObject } from "./proof-3J23UdVg.js";
12
+ import { getNodeInfo, nodeInfoToJson } from "./types-DXmLob1B.js";
13
+ import { getAuthenticatedDocumentLoader } from "./authdocloader-BUJAQQAE.js";
14
+ import { lookupObject, traverseCollection } from "./vocab-Cy9XhW_T.js";
15
15
  import { getLogger, withContext } from "@logtape/logtape";
16
16
  import { SpanKind, SpanStatusCode, context, propagation, trace } from "@opentelemetry/api";
17
17
  import { encodeHex } from "byte-encodings/hex";
@@ -312,7 +312,7 @@ var FederationBuilderImpl = class {
312
312
  this.objectTypeIds = {};
313
313
  }
314
314
  async build(options) {
315
- const { FederationImpl: FederationImpl$1 } = await import("./middleware-BXEwpPLe.js");
315
+ const { FederationImpl: FederationImpl$1 } = await import("./middleware-BhqeOJrC.js");
316
316
  const f = new FederationImpl$1(options);
317
317
  const trailingSlashInsensitiveValue = f.router.trailingSlashInsensitive;
318
318
  f.router = this.router.clone();
@@ -0,0 +1,17 @@
1
+
2
+ import { Temporal } from "@js-temporal/polyfill";
3
+ import { URLPattern } from "urlpattern-polyfill";
4
+
5
+ import "./transformers-ghwJuzGY.js";
6
+ import "./docloader-BcyuO_kK.js";
7
+ import "./actor-DgWryCk8.js";
8
+ import { ContextImpl, FederationImpl, InboxContextImpl, KvSpecDeterminer, createFederation } from "./middleware-BRzqW-QG.js";
9
+ import "./lookup-BlPHJ-Ff.js";
10
+ import "./key-qFVeObG1.js";
11
+ import "./http-Dsj_eYDw.js";
12
+ import "./proof-3J23UdVg.js";
13
+ import "./types-DXmLob1B.js";
14
+ import "./authdocloader-BUJAQQAE.js";
15
+ import "./vocab-Cy9XhW_T.js";
16
+
17
+ export { FederationImpl };
@@ -3,26 +3,26 @@
3
3
  import { URLPattern } from "urlpattern-polyfill";
4
4
  globalThis.addEventListener = () => {};
5
5
 
6
- import { deno_default, getDocumentLoader, kvCache } from "./docloader-BpoDr2rw.js";
7
- import { getNodeInfo } from "./client-BNeCIx9P.js";
6
+ import { deno_default, getDocumentLoader, kvCache } from "./docloader-D4wl8z_4.js";
7
+ import { getNodeInfo } from "./client-D83KwIk4.js";
8
8
  import { RouterError } from "./router-D_aVZZUc.js";
9
9
  import { nodeInfoToJson } from "./types-C7C_l-jz.js";
10
- import { Activity, CryptographicKey, Link, Multikey, Object as Object$1, OrderedCollection, OrderedCollectionPage } from "./vocab-b9IZeAzb.js";
11
- import { lookupWebFinger } from "./lookup-MomtMbVM.js";
10
+ import { Activity, CryptographicKey, Link, Multikey, Object as Object$1, OrderedCollection, OrderedCollectionPage } from "./vocab-BojAnGjI.js";
11
+ import { lookupWebFinger } from "./lookup-BGqnk7rW.js";
12
12
  import { getTypeId } from "./type-D2s5lmbZ.js";
13
- import { exportJwk, importJwk, validateCryptoKey } from "./key-CVu3UHNk.js";
14
- import { verifyRequest } from "./http-Bf73Pc8n.js";
15
- import { getAuthenticatedDocumentLoader } from "./authdocloader-DNjankdO.js";
16
- import { detachSignature, hasSignature, signJsonLd, verifyJsonLd } from "./ld-DwQsszWL.js";
17
- import { doesActorOwnKey, getKeyOwner } from "./owner-7iBuSVl4.js";
18
- import { signObject, verifyObject } from "./proof-W7ADUBT9.js";
19
- import { lookupObject, traverseCollection } from "./lookup-Ck4rDA0d.js";
20
- import { routeActivity } from "./inbox-B6bABfWF.js";
21
- import { FederationBuilderImpl } from "./builder-CngxHTRi.js";
13
+ import { exportJwk, importJwk, validateCryptoKey } from "./key-bttcdrh5.js";
14
+ import { verifyRequest } from "./http-DFHfa9tA.js";
15
+ import { getAuthenticatedDocumentLoader } from "./authdocloader-CK17fG7y.js";
16
+ import { detachSignature, hasSignature, signJsonLd, verifyJsonLd } from "./ld-U-lGfuzj.js";
17
+ import { doesActorOwnKey, getKeyOwner } from "./owner-2zho-3Ew.js";
18
+ import { signObject, verifyObject } from "./proof-BYHc1mMr.js";
19
+ import { lookupObject, traverseCollection } from "./lookup-C8ZpflGI.js";
20
+ import { routeActivity } from "./inbox-CltmHpHc.js";
21
+ import { FederationBuilderImpl } from "./builder-CZM8EtHh.js";
22
22
  import { buildCollectionSynchronizationHeader } from "./collection-Dfb0TPno.js";
23
- import { KvKeyCache } from "./keycache-CbYZZGcu.js";
23
+ import { KvKeyCache } from "./keycache-DijbBawF.js";
24
24
  import { createExponentialBackoffPolicy } from "./retry-BiIhZWgD.js";
25
- import { extractInboxes, sendActivity } from "./send-CaHCB-Kf.js";
25
+ import { extractInboxes, sendActivity } from "./send-CW7iJ-b9.js";
26
26
  import { getLogger, withContext } from "@logtape/logtape";
27
27
  import { SpanKind, SpanStatusCode, context, propagation, trace } from "@opentelemetry/api";
28
28
  import { ATTR_HTTP_REQUEST_HEADER, ATTR_HTTP_REQUEST_METHOD, ATTR_HTTP_RESPONSE_HEADER, ATTR_HTTP_RESPONSE_STATUS_CODE, ATTR_URL_FULL } from "@opentelemetry/semantic-conventions";
@@ -0,0 +1,33 @@
1
+
2
+ import { Temporal } from "@js-temporal/polyfill";
3
+ import { URLPattern } from "urlpattern-polyfill";
4
+ globalThis.addEventListener = () => {};
5
+
6
+ import { ContextImpl, FederationImpl, InboxContextImpl, KvSpecDeterminer, createFederation } from "./middleware-D66R1UZl.js";
7
+ import "./docloader-D4wl8z_4.js";
8
+ import "./url-kTAI6_KP.js";
9
+ import "./semver-DWClQt_5.js";
10
+ import "./client-D83KwIk4.js";
11
+ import "./router-D_aVZZUc.js";
12
+ import "./types-C7C_l-jz.js";
13
+ import "./multibase-DeCHcK8L.js";
14
+ import "./vocab-BojAnGjI.js";
15
+ import "./langstr-DbWheeIS.js";
16
+ import "./lookup-BGqnk7rW.js";
17
+ import "./type-D2s5lmbZ.js";
18
+ import "./actor-2ENhJMd7.js";
19
+ import "./key-bttcdrh5.js";
20
+ import "./http-DFHfa9tA.js";
21
+ import "./authdocloader-CK17fG7y.js";
22
+ import "./ld-U-lGfuzj.js";
23
+ import "./owner-2zho-3Ew.js";
24
+ import "./proof-BYHc1mMr.js";
25
+ import "./lookup-C8ZpflGI.js";
26
+ import "./inbox-CltmHpHc.js";
27
+ import "./builder-CZM8EtHh.js";
28
+ import "./collection-Dfb0TPno.js";
29
+ import "./keycache-DijbBawF.js";
30
+ import "./retry-BiIhZWgD.js";
31
+ import "./send-CW7iJ-b9.js";
32
+
33
+ export { FederationImpl };
package/dist/mod.js CHANGED
@@ -4,17 +4,17 @@
4
4
 
5
5
  import { actorDehydrator, autoIdAssigner, getDefaultActivityTransformers } from "./transformers-ghwJuzGY.js";
6
6
  import "./compat-Bb5myD13.js";
7
- import { FetchError, fetchDocumentLoader, getDocumentLoader, getUserAgent, kvCache } from "./docloader-C2i2VJR7.js";
8
- 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, LanguageString, 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, exportMultibaseKey, exportSpki, getActorClassByTypeName, getActorHandle, getActorTypeName, getTypeId, importMultibaseKey, importPem, importPkcs1, importSpki, isActor, normalizeActorHandle } from "./actor-BdEyRHSu.js";
9
- import { Router, RouterError, buildCollectionSynchronizationHeader, createExponentialBackoffPolicy, createFederation, createFederationBuilder, digest, respondWithObject, respondWithObjectIfAcceptable } from "./middleware-BPdRnvp4.js";
10
- import { lookupWebFinger } from "./lookup-i_xNGJhe.js";
11
- import { exportJwk, fetchKey, generateCryptoKeyPair, importJwk } from "./key-BkcDQGWw.js";
12
- import { signRequest, verifyRequest } from "./http-BiXP97Mg.js";
13
- import { attachSignature, createProof, createSignature, detachSignature, doesActorOwnKey, getKeyOwner, signJsonLd, signObject, verifyJsonLd, verifyObject, verifyProof, verifySignature } from "./proof-CtoF37-N.js";
7
+ import { FetchError, fetchDocumentLoader, getDocumentLoader, getUserAgent, kvCache } from "./docloader-BcyuO_kK.js";
8
+ 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, LanguageString, 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, exportMultibaseKey, exportSpki, getActorClassByTypeName, getActorHandle, getActorTypeName, getTypeId, importMultibaseKey, importPem, importPkcs1, importSpki, isActor, normalizeActorHandle } from "./actor-DgWryCk8.js";
9
+ import { Router, RouterError, buildCollectionSynchronizationHeader, createExponentialBackoffPolicy, createFederation, createFederationBuilder, digest, respondWithObject, respondWithObjectIfAcceptable } from "./middleware-BRzqW-QG.js";
10
+ import { lookupWebFinger } from "./lookup-BlPHJ-Ff.js";
11
+ import { exportJwk, fetchKey, generateCryptoKeyPair, importJwk } from "./key-qFVeObG1.js";
12
+ import { signRequest, verifyRequest } from "./http-Dsj_eYDw.js";
13
+ import { attachSignature, createProof, createSignature, detachSignature, doesActorOwnKey, getKeyOwner, signJsonLd, signObject, verifyJsonLd, verifyObject, verifyProof, verifySignature } from "./proof-3J23UdVg.js";
14
14
  import { InProcessMessageQueue, MemoryKvStore, ParallelMessageQueue } from "./federation-BRIQn-GV.js";
15
- import { formatSemVer, getNodeInfo, nodeInfoToJson, parseNodeInfo, parseSemVer } from "./types-CJqlYa9v.js";
16
- import { getAuthenticatedDocumentLoader } from "./authdocloader-DYTQwADG.js";
17
- import { PUBLIC_COLLECTION, lookupObject, traverseCollection } from "./vocab-C9CPkYQi.js";
15
+ import { formatSemVer, getNodeInfo, nodeInfoToJson, parseNodeInfo, parseSemVer } from "./types-DXmLob1B.js";
16
+ import { getAuthenticatedDocumentLoader } from "./authdocloader-BUJAQQAE.js";
17
+ import { PUBLIC_COLLECTION, lookupObject, traverseCollection } from "./vocab-Cy9XhW_T.js";
18
18
  import "./nodeinfo-CyEbLjHs.js";
19
19
  import "./runtime-BSkOVUWM.js";
20
20
  import "./sig-BXJO--F9.js";
@@ -1,3 +1,4 @@
1
1
  import { Temporal } from "@js-temporal/polyfill";
2
2
  import { URLPattern } from "urlpattern-polyfill";
3
- globalThis.addEventListener = () => {};
3
+ globalThis.addEventListener = () => {};
4
+ export {};
@@ -6,10 +6,10 @@
6
6
  import { assertEquals } from "../assert_equals-CTYbeopb.js";
7
7
  import "../assert-DmFG7ppO.js";
8
8
  import "../assert_instance_of-CF09JHYM.js";
9
- import "../docloader-BpoDr2rw.js";
9
+ import "../docloader-D4wl8z_4.js";
10
10
  import "../url-kTAI6_KP.js";
11
11
  import "../semver-DWClQt_5.js";
12
- import { getNodeInfo, parseInboundService, parseNodeInfo, parseOutboundService, parseProtocol, parseServices, parseSoftware, parseUsage } from "../client-BNeCIx9P.js";
12
+ import { getNodeInfo, parseInboundService, parseNodeInfo, parseOutboundService, parseProtocol, parseServices, parseSoftware, parseUsage } from "../client-D83KwIk4.js";
13
13
  import { test } from "../testing-BZ0dJ4qn.js";
14
14
  import "../std__assert-vp0TKMS1.js";
15
15
  import "../assert_rejects-C-sxEMM5.js";
@@ -963,4 +963,5 @@ test("parseUsage()", () => {
963
963
  });
964
964
  });
965
965
 
966
- //#endregion
966
+ //#endregion
967
+ export { };
@@ -1,3 +1,4 @@
1
1
  import { Temporal } from "@js-temporal/polyfill";
2
2
  import { URLPattern } from "urlpattern-polyfill";
3
- globalThis.addEventListener = () => {};
3
+ globalThis.addEventListener = () => {};
4
+ export {};
@@ -7,32 +7,32 @@ import { assertEquals } from "../assert_equals-CTYbeopb.js";
7
7
  import "../assert-DmFG7ppO.js";
8
8
  import "../assert_instance_of-CF09JHYM.js";
9
9
  import { MemoryKvStore } from "../kv-BMY6Qf_A.js";
10
- import { createFederation, handleNodeInfo, handleNodeInfoJrd } from "../middleware-DtP_z9I6.js";
11
- import "../docloader-BpoDr2rw.js";
10
+ import { createFederation, handleNodeInfo, handleNodeInfoJrd } from "../middleware-D66R1UZl.js";
11
+ import "../docloader-D4wl8z_4.js";
12
12
  import "../url-kTAI6_KP.js";
13
13
  import { parseSemVer } from "../semver-DWClQt_5.js";
14
- import "../client-BNeCIx9P.js";
14
+ import "../client-D83KwIk4.js";
15
15
  import "../router-D_aVZZUc.js";
16
16
  import "../types-C7C_l-jz.js";
17
17
  import "../multibase-DeCHcK8L.js";
18
- import "../vocab-b9IZeAzb.js";
18
+ import "../vocab-BojAnGjI.js";
19
19
  import "../langstr-DbWheeIS.js";
20
- import "../lookup-MomtMbVM.js";
20
+ import "../lookup-BGqnk7rW.js";
21
21
  import "../type-D2s5lmbZ.js";
22
- import "../actor-lW38sC2T.js";
23
- import "../key-CVu3UHNk.js";
24
- import "../http-Bf73Pc8n.js";
25
- import "../authdocloader-DNjankdO.js";
26
- import "../ld-DwQsszWL.js";
27
- import "../owner-7iBuSVl4.js";
28
- import "../proof-W7ADUBT9.js";
29
- import "../lookup-Ck4rDA0d.js";
30
- import "../inbox-B6bABfWF.js";
31
- import "../builder-CngxHTRi.js";
22
+ import "../actor-2ENhJMd7.js";
23
+ import "../key-bttcdrh5.js";
24
+ import "../http-DFHfa9tA.js";
25
+ import "../authdocloader-CK17fG7y.js";
26
+ import "../ld-U-lGfuzj.js";
27
+ import "../owner-2zho-3Ew.js";
28
+ import "../proof-BYHc1mMr.js";
29
+ import "../lookup-C8ZpflGI.js";
30
+ import "../inbox-CltmHpHc.js";
31
+ import "../builder-CZM8EtHh.js";
32
32
  import "../collection-Dfb0TPno.js";
33
- import "../keycache-CbYZZGcu.js";
33
+ import "../keycache-DijbBawF.js";
34
34
  import "../retry-BiIhZWgD.js";
35
- import "../send-CaHCB-Kf.js";
35
+ import "../send-CW7iJ-b9.js";
36
36
  import { test } from "../testing-BZ0dJ4qn.js";
37
37
  import "../std__assert-vp0TKMS1.js";
38
38
  import "../assert_rejects-C-sxEMM5.js";
@@ -40,7 +40,7 @@ import "../assert_is_error-nrwA1GeT.js";
40
40
  import "../assert_not_equals-Dc7y-V5Q.js";
41
41
  import "../assert_throws-Cn9C6Jur.js";
42
42
  import "../docloader-09nVWLAZ.js";
43
- import { createRequestContext } from "../context-lumX0ZHV.js";
43
+ import { createRequestContext } from "../context-MUHrGcK9.js";
44
44
 
45
45
  //#region nodeinfo/handler.test.ts
46
46
  test("handleNodeInfo()", async () => {
@@ -129,4 +129,5 @@ test("handleNodeInfoJrd()", async () => {
129
129
  }] });
130
130
  });
131
131
 
132
- //#endregion
132
+ //#endregion
133
+ export { };
@@ -2,8 +2,8 @@
2
2
  import { Temporal } from "@js-temporal/polyfill";
3
3
  import { URLPattern } from "urlpattern-polyfill";
4
4
 
5
- import "../docloader-C2i2VJR7.js";
6
- import { formatSemVer, getNodeInfo, nodeInfoToJson, parseNodeInfo, parseSemVer } from "../types-CJqlYa9v.js";
5
+ import "../docloader-BcyuO_kK.js";
6
+ import { formatSemVer, getNodeInfo, nodeInfoToJson, parseNodeInfo, parseSemVer } from "../types-DXmLob1B.js";
7
7
  import "../nodeinfo-CyEbLjHs.js";
8
8
 
9
9
  export { formatSemVer, getNodeInfo, nodeInfoToJson, parseNodeInfo, parseSemVer };
@@ -1,3 +1,4 @@
1
1
  import { Temporal } from "@js-temporal/polyfill";
2
2
  import { URLPattern } from "urlpattern-polyfill";
3
- globalThis.addEventListener = () => {};
3
+ globalThis.addEventListener = () => {};
4
+ export {};
@@ -138,4 +138,5 @@ test("formatSemVer()", async (t) => {
138
138
  });
139
139
  });
140
140
 
141
- //#endregion
141
+ //#endregion
142
+ export { };
@@ -1,3 +1,4 @@
1
1
  import { Temporal } from "@js-temporal/polyfill";
2
2
  import { URLPattern } from "urlpattern-polyfill";
3
- globalThis.addEventListener = () => {};
3
+ globalThis.addEventListener = () => {};
4
+ export {};
@@ -202,4 +202,5 @@ test("nodeInfoToJson()", () => {
202
202
  }), TypeError, "Invalid local comments");
203
203
  });
204
204
 
205
- //#endregion
205
+ //#endregion
206
+ export { };