@fedify/fedify 1.8.7 → 1.8.9

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 (79) hide show
  1. package/dist/{actor-C7pfGu4X.js → actor-BVy_Nr_z.js} +1 -1
  2. package/dist/{actor-WJ7wHeRU.js → actor-CQMO-eYO.js} +179 -179
  3. package/dist/{authdocloader-NFokReAQ.js → authdocloader-DmAkc_Zu.js} +3 -3
  4. package/dist/{authdocloader-ZiObBwwa.js → authdocloader-Du8CFIup.js} +3 -3
  5. package/dist/{builder-BHKW2pdc.js → builder-BeMe26Qw.js} +4 -4
  6. package/dist/{client-CJxLG6ee.js → client-BaYgvD_x.js} +1 -1
  7. package/dist/compat/transformers.test.js +16 -16
  8. package/dist/{docloader-B8l5ArhI.js → docloader-BJ1yrV8b.js} +1 -1
  9. package/dist/{esm-HTbWR6Yb.js → esm-Cv2jpPyR.js} +1 -1
  10. package/dist/federation/builder.test.js +5 -5
  11. package/dist/federation/collection.test.js +3 -3
  12. package/dist/federation/handler.test.js +17 -17
  13. package/dist/federation/inbox.test.js +4 -4
  14. package/dist/federation/keycache.test.js +4 -4
  15. package/dist/federation/kv.test.js +3 -3
  16. package/dist/federation/middleware.test.js +18 -18
  17. package/dist/federation/mod.js +10 -10
  18. package/dist/federation/mq.test.js +3 -3
  19. package/dist/federation/retry.test.js +3 -3
  20. package/dist/federation/router.test.js +3 -3
  21. package/dist/federation/send.test.js +10 -10
  22. package/dist/fixtures/oeee.cafe/ap/users/3609fd4e-d51d-4db8-9f04-4189815864dd.json +24 -0
  23. package/dist/{http-BYpPKHof.js → http-2pI8LHsa.js} +51 -5
  24. package/dist/{http-BTbT0TFj.js → http-n15QrYTy.js} +50 -4
  25. package/dist/{inbox-CZpWkkEj.js → inbox-BGL89YR_.js} +1 -1
  26. package/dist/{key-XRVsGjsK.js → key-BuSFjObw.js} +3 -3
  27. package/dist/{key-DUTRSgmm.js → key-DTE7NuP6.js} +2 -2
  28. package/dist/{key-CVBXeeCe.js → key-DhoYIbNP.js} +4 -4
  29. package/dist/{key-DO-jGH1-.js → key-bbkWVT9m.js} +2 -2
  30. package/dist/{keycache-ByS53syz.js → keycache-CwJM6yw-.js} +1 -1
  31. package/dist/{keys-Beku4H4V.js → keys-qHol1Qqg.js} +1 -1
  32. package/dist/{ld-B2Zws6mR.js → ld-BtcBjVHO.js} +2 -2
  33. package/dist/{lookup-OrOsTes4.js → lookup-C6LPK2Ae.js} +1 -1
  34. package/dist/{lookup-B3DDTNE8.js → lookup-DZ9o30-U.js} +1 -1
  35. package/dist/middleware-5vnxVXM3.js +17 -0
  36. package/dist/{middleware-D8drNbUb.js → middleware-C9coBpNo.js} +10 -10
  37. package/dist/{middleware-C5lTWaJc.js → middleware-CVg9c-sx.js} +13 -13
  38. package/dist/middleware-Dic5jVVI.js +26 -0
  39. package/dist/mod.js +10 -10
  40. package/dist/nodeinfo/client.test.js +5 -5
  41. package/dist/nodeinfo/handler.test.js +16 -16
  42. package/dist/nodeinfo/mod.js +2 -2
  43. package/dist/nodeinfo/semver.test.js +3 -3
  44. package/dist/nodeinfo/types.test.js +3 -3
  45. package/dist/{owner-BgiYvP3X.js → owner--mWjsRbl.js} +2 -2
  46. package/dist/{proof-CANzMXwU.js → proof-5HdLxt3v.js} +3 -3
  47. package/dist/{proof-wOJ2cerK.js → proof-BuCUwVgD.js} +2 -2
  48. package/dist/runtime/authdocloader.test.js +9 -9
  49. package/dist/runtime/docloader.test.js +4 -4
  50. package/dist/runtime/key.test.js +5 -5
  51. package/dist/runtime/langstr.test.js +3 -3
  52. package/dist/runtime/mod.js +6 -6
  53. package/dist/runtime/multibase/multibase.test.js +3 -3
  54. package/dist/runtime/url.test.js +3 -3
  55. package/dist/{send-C4n5IcVS.js → send-DW1nBJyL.js} +2 -2
  56. package/dist/sig/http.test.js +24 -8
  57. package/dist/sig/key.test.js +6 -6
  58. package/dist/sig/ld.test.js +7 -7
  59. package/dist/sig/mod.js +6 -6
  60. package/dist/sig/owner.test.js +7 -7
  61. package/dist/sig/proof.test.js +7 -7
  62. package/dist/testing/docloader.test.js +3 -3
  63. package/dist/testing/mod.js +3 -3
  64. package/dist/{testing-Do5ElhBv.js → testing-wuOLACBL.js} +2 -2
  65. package/dist/{type-s3cxzdF7.js → type-BCkcg7q-.js} +178 -178
  66. package/dist/{types-sRqvaRh2.js → types-wuqkip7B.js} +1 -1
  67. package/dist/vocab/actor.test.js +5 -5
  68. package/dist/vocab/lookup.test.js +4 -4
  69. package/dist/vocab/mod.js +4 -4
  70. package/dist/vocab/type.test.js +3 -3
  71. package/dist/vocab/vocab.test.js +4 -4
  72. package/dist/{vocab-BEyMnNOH.js → vocab-Dsa7zLsk.js} +3 -3
  73. package/dist/webfinger/handler.test.js +16 -16
  74. package/dist/webfinger/lookup.test.js +4 -4
  75. package/dist/webfinger/mod.js +2 -2
  76. package/dist/x/cfworkers.test.js +3 -3
  77. package/package.json +1 -1
  78. package/dist/middleware-ByzBB8GV.js +0 -26
  79. package/dist/middleware-CeKE_YXN.js +0 -17
@@ -3,8 +3,8 @@
3
3
  import { URLPattern } from "urlpattern-polyfill";
4
4
  globalThis.addEventListener = () => {};
5
5
 
6
- import { CryptographicKey, deno_default } from "./type-s3cxzdF7.js";
7
- import { fetchKey, validateCryptoKey } from "./key-DUTRSgmm.js";
6
+ import { CryptographicKey, deno_default } from "./type-BCkcg7q-.js";
7
+ import { fetchKey, validateCryptoKey } from "./key-DTE7NuP6.js";
8
8
  import { getLogger } from "@logtape/logtape";
9
9
  import { SpanStatusCode, trace } from "@opentelemetry/api";
10
10
  import { ATTR_HTTP_REQUEST_HEADER, ATTR_HTTP_REQUEST_METHOD, ATTR_URL_FULL } from "@opentelemetry/semantic-conventions";
@@ -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,7 +3,7 @@
3
3
  import { URLPattern } from "urlpattern-polyfill";
4
4
  globalThis.addEventListener = () => {};
5
5
 
6
- import { Activity, deno_default, getTypeId } from "./type-s3cxzdF7.js";
6
+ import { Activity, deno_default, getTypeId } from "./type-BCkcg7q-.js";
7
7
  import { getLogger } from "@logtape/logtape";
8
8
  import { SpanKind, SpanStatusCode, context, propagation, trace } from "@opentelemetry/api";
9
9
 
@@ -3,8 +3,8 @@
3
3
  import { URLPattern } from "urlpattern-polyfill";
4
4
  globalThis.addEventListener = () => {};
5
5
 
6
- import "./type-s3cxzdF7.js";
7
- import "./actor-C7pfGu4X.js";
8
- import { exportJwk, fetchKey, generateCryptoKeyPair, importJwk, validateCryptoKey } from "./key-DUTRSgmm.js";
6
+ import "./type-BCkcg7q-.js";
7
+ import "./actor-BVy_Nr_z.js";
8
+ import { exportJwk, fetchKey, generateCryptoKeyPair, importJwk, validateCryptoKey } from "./key-DTE7NuP6.js";
9
9
 
10
10
  export { validateCryptoKey };
@@ -3,8 +3,8 @@
3
3
  import { URLPattern } from "urlpattern-polyfill";
4
4
  globalThis.addEventListener = () => {};
5
5
 
6
- import { CryptographicKey, Object as Object$1, deno_default, getDocumentLoader } from "./type-s3cxzdF7.js";
7
- import { isActor } from "./actor-C7pfGu4X.js";
6
+ import { CryptographicKey, Object as Object$1, deno_default, getDocumentLoader } from "./type-BCkcg7q-.js";
7
+ import { isActor } from "./actor-BVy_Nr_z.js";
8
8
  import { getLogger } from "@logtape/logtape";
9
9
  import { SpanKind, SpanStatusCode, trace } from "@opentelemetry/api";
10
10
 
@@ -2,9 +2,9 @@
2
2
  import { Temporal } from "@js-temporal/polyfill";
3
3
  import { URLPattern } from "urlpattern-polyfill";
4
4
 
5
- import "./docloader-B8l5ArhI.js";
6
- import "./actor-WJ7wHeRU.js";
7
- import "./lookup-B3DDTNE8.js";
8
- import { exportJwk, fetchKey, generateCryptoKeyPair, importJwk, validateCryptoKey } from "./key-DO-jGH1-.js";
5
+ import "./docloader-BJ1yrV8b.js";
6
+ import "./actor-CQMO-eYO.js";
7
+ import "./lookup-DZ9o30-U.js";
8
+ import { exportJwk, fetchKey, generateCryptoKeyPair, importJwk, validateCryptoKey } from "./key-bbkWVT9m.js";
9
9
 
10
10
  export { validateCryptoKey };
@@ -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-B8l5ArhI.js";
6
- import { CryptographicKey, Object as Object$1, isActor } from "./actor-WJ7wHeRU.js";
5
+ import { deno_default, getDocumentLoader } from "./docloader-BJ1yrV8b.js";
6
+ import { CryptographicKey, Object as Object$1, isActor } from "./actor-CQMO-eYO.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 "./type-s3cxzdF7.js";
6
+ import { CryptographicKey, Multikey } from "./type-BCkcg7q-.js";
7
7
 
8
8
  //#region src/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 "./type-s3cxzdF7.js";
6
+ import { CryptographicKey, Multikey, importSpki } from "./type-BCkcg7q-.js";
7
7
 
8
8
  //#region src/testing/keys.ts
9
9
  const rsaPublicKey1 = new CryptographicKey({
@@ -3,8 +3,8 @@
3
3
  import { URLPattern } from "urlpattern-polyfill";
4
4
  globalThis.addEventListener = () => {};
5
5
 
6
- import { Activity, CryptographicKey, Object as Object$1, deno_default, getDocumentLoader, getTypeId } from "./type-s3cxzdF7.js";
7
- import { fetchKey, validateCryptoKey } from "./key-DUTRSgmm.js";
6
+ import { Activity, CryptographicKey, Object as Object$1, deno_default, getDocumentLoader, getTypeId } from "./type-BCkcg7q-.js";
7
+ import { fetchKey, validateCryptoKey } from "./key-DTE7NuP6.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";
@@ -3,7 +3,7 @@
3
3
  import { URLPattern } from "urlpattern-polyfill";
4
4
  globalThis.addEventListener = () => {};
5
5
 
6
- import { Object as Object$1, deno_default, getDocumentLoader, getTypeId, lookupWebFinger } from "./type-s3cxzdF7.js";
6
+ import { Object as Object$1, deno_default, getDocumentLoader, getTypeId, lookupWebFinger } from "./type-BCkcg7q-.js";
7
7
  import { cloneDeep, delay } from "es-toolkit";
8
8
  import { getLogger } from "@logtape/logtape";
9
9
  import { 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-B8l5ArhI.js";
5
+ import { UrlError, deno_default, getUserAgent, validatePublicUrl } from "./docloader-BJ1yrV8b.js";
6
6
  import { getLogger } from "@logtape/logtape";
7
7
  import { SpanKind, SpanStatusCode, trace } from "@opentelemetry/api";
8
8
 
@@ -0,0 +1,17 @@
1
+
2
+ import { Temporal } from "@js-temporal/polyfill";
3
+ import { URLPattern } from "urlpattern-polyfill";
4
+
5
+ import "./transformers-Dna8Fg7k.js";
6
+ import "./docloader-BJ1yrV8b.js";
7
+ import "./actor-CQMO-eYO.js";
8
+ import { ContextImpl, FederationImpl, InboxContextImpl, KvSpecDeterminer, createFederation } from "./middleware-C9coBpNo.js";
9
+ import "./lookup-DZ9o30-U.js";
10
+ import "./key-bbkWVT9m.js";
11
+ import "./http-2pI8LHsa.js";
12
+ import "./proof-5HdLxt3v.js";
13
+ import "./types-wuqkip7B.js";
14
+ import "./authdocloader-DmAkc_Zu.js";
15
+ import "./vocab-Dsa7zLsk.js";
16
+
17
+ export { FederationImpl };
@@ -3,15 +3,15 @@
3
3
  import { URLPattern } from "urlpattern-polyfill";
4
4
 
5
5
  import { getDefaultActivityTransformers } from "./transformers-Dna8Fg7k.js";
6
- import { deno_default, getDocumentLoader, kvCache } from "./docloader-B8l5ArhI.js";
7
- import { Activity, Collection, CollectionPage, CryptographicKey, Link, Multikey, Object as Object$1, OrderedCollection, OrderedCollectionPage, getTypeId } from "./actor-WJ7wHeRU.js";
8
- import { lookupWebFinger } from "./lookup-B3DDTNE8.js";
9
- import { exportJwk, importJwk, validateCryptoKey } from "./key-DO-jGH1-.js";
10
- import { doubleKnock, verifyRequest } from "./http-BYpPKHof.js";
11
- import { detachSignature, doesActorOwnKey, getKeyOwner, hasSignature, signJsonLd, signObject, verifyJsonLd, verifyObject } from "./proof-CANzMXwU.js";
12
- import { getNodeInfo, nodeInfoToJson } from "./types-sRqvaRh2.js";
13
- import { getAuthenticatedDocumentLoader } from "./authdocloader-NFokReAQ.js";
14
- import { lookupObject, traverseCollection } from "./vocab-BEyMnNOH.js";
6
+ import { deno_default, getDocumentLoader, kvCache } from "./docloader-BJ1yrV8b.js";
7
+ import { Activity, Collection, CollectionPage, CryptographicKey, Link, Multikey, Object as Object$1, OrderedCollection, OrderedCollectionPage, getTypeId } from "./actor-CQMO-eYO.js";
8
+ import { lookupWebFinger } from "./lookup-DZ9o30-U.js";
9
+ import { exportJwk, importJwk, validateCryptoKey } from "./key-bbkWVT9m.js";
10
+ import { doubleKnock, verifyRequest } from "./http-2pI8LHsa.js";
11
+ import { detachSignature, doesActorOwnKey, getKeyOwner, hasSignature, signJsonLd, signObject, verifyJsonLd, verifyObject } from "./proof-5HdLxt3v.js";
12
+ import { getNodeInfo, nodeInfoToJson } from "./types-wuqkip7B.js";
13
+ import { getAuthenticatedDocumentLoader } from "./authdocloader-DmAkc_Zu.js";
14
+ import { lookupObject, traverseCollection } from "./vocab-Dsa7zLsk.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";
@@ -320,7 +320,7 @@ var FederationBuilderImpl = class {
320
320
  this.collectionTypeIds = {};
321
321
  }
322
322
  async build(options) {
323
- const { FederationImpl: FederationImpl$1 } = await import("./middleware-CeKE_YXN.js");
323
+ const { FederationImpl: FederationImpl$1 } = await import("./middleware-5vnxVXM3.js");
324
324
  const f = new FederationImpl$1(options);
325
325
  const trailingSlashInsensitiveValue = f.router.trailingSlashInsensitive;
326
326
  f.router = this.router.clone();
@@ -3,22 +3,22 @@
3
3
  import { URLPattern } from "urlpattern-polyfill";
4
4
  globalThis.addEventListener = () => {};
5
5
 
6
- import { Activity, Collection, CollectionPage, CryptographicKey, Link, Multikey, Object as Object$1, OrderedCollection, OrderedCollectionPage, deno_default, getDocumentLoader, getTypeId, kvCache, lookupWebFinger } from "./type-s3cxzdF7.js";
7
- import { getNodeInfo } from "./client-CJxLG6ee.js";
8
- import { RouterError, lookupObject, traverseCollection } from "./lookup-OrOsTes4.js";
6
+ import { Activity, Collection, CollectionPage, CryptographicKey, Link, Multikey, Object as Object$1, OrderedCollection, OrderedCollectionPage, deno_default, getDocumentLoader, getTypeId, kvCache, lookupWebFinger } from "./type-BCkcg7q-.js";
7
+ import { getNodeInfo } from "./client-BaYgvD_x.js";
8
+ import { RouterError, lookupObject, traverseCollection } from "./lookup-C6LPK2Ae.js";
9
9
  import { nodeInfoToJson } from "./types-BIgY6c-l.js";
10
- import { exportJwk, importJwk, validateCryptoKey } from "./key-DUTRSgmm.js";
11
- import { verifyRequest } from "./http-BTbT0TFj.js";
12
- import { getAuthenticatedDocumentLoader } from "./authdocloader-ZiObBwwa.js";
13
- import { detachSignature, hasSignature, signJsonLd, verifyJsonLd } from "./ld-B2Zws6mR.js";
14
- import { doesActorOwnKey, getKeyOwner } from "./owner-BgiYvP3X.js";
15
- import { signObject, verifyObject } from "./proof-wOJ2cerK.js";
16
- import { routeActivity } from "./inbox-CZpWkkEj.js";
17
- import { FederationBuilderImpl } from "./builder-BHKW2pdc.js";
10
+ import { exportJwk, importJwk, validateCryptoKey } from "./key-DTE7NuP6.js";
11
+ import { verifyRequest } from "./http-n15QrYTy.js";
12
+ import { getAuthenticatedDocumentLoader } from "./authdocloader-Du8CFIup.js";
13
+ import { detachSignature, hasSignature, signJsonLd, verifyJsonLd } from "./ld-BtcBjVHO.js";
14
+ import { doesActorOwnKey, getKeyOwner } from "./owner--mWjsRbl.js";
15
+ import { signObject, verifyObject } from "./proof-BuCUwVgD.js";
16
+ import { routeActivity } from "./inbox-BGL89YR_.js";
17
+ import { FederationBuilderImpl } from "./builder-BeMe26Qw.js";
18
18
  import { buildCollectionSynchronizationHeader } from "./collection-CSzG2j1P.js";
19
- import { KvKeyCache } from "./keycache-ByS53syz.js";
19
+ import { KvKeyCache } from "./keycache-CwJM6yw-.js";
20
20
  import { createExponentialBackoffPolicy } from "./retry-D4GJ670a.js";
21
- import { extractInboxes, sendActivity } from "./send-C4n5IcVS.js";
21
+ import { extractInboxes, sendActivity } from "./send-DW1nBJyL.js";
22
22
  import { getLogger, withContext } from "@logtape/logtape";
23
23
  import { SpanKind, SpanStatusCode, context, propagation, trace } from "@opentelemetry/api";
24
24
  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,26 @@
1
+
2
+ import { Temporal } from "@js-temporal/polyfill";
3
+ import { URLPattern } from "urlpattern-polyfill";
4
+ globalThis.addEventListener = () => {};
5
+
6
+ import "./type-BCkcg7q-.js";
7
+ import { ContextImpl, FederationImpl, InboxContextImpl, KvSpecDeterminer, createFederation } from "./middleware-CVg9c-sx.js";
8
+ import "./semver-dArNLkR9.js";
9
+ import "./client-BaYgvD_x.js";
10
+ import "./lookup-C6LPK2Ae.js";
11
+ import "./types-BIgY6c-l.js";
12
+ import "./actor-BVy_Nr_z.js";
13
+ import "./key-DTE7NuP6.js";
14
+ import "./http-n15QrYTy.js";
15
+ import "./authdocloader-Du8CFIup.js";
16
+ import "./ld-BtcBjVHO.js";
17
+ import "./owner--mWjsRbl.js";
18
+ import "./proof-BuCUwVgD.js";
19
+ import "./inbox-BGL89YR_.js";
20
+ import "./builder-BeMe26Qw.js";
21
+ import "./collection-CSzG2j1P.js";
22
+ import "./keycache-CwJM6yw-.js";
23
+ import "./retry-D4GJ670a.js";
24
+ import "./send-DW1nBJyL.js";
25
+
26
+ export { FederationImpl };
package/dist/mod.js CHANGED
@@ -4,17 +4,17 @@
4
4
 
5
5
  import { actorDehydrator, autoIdAssigner, getDefaultActivityTransformers } from "./transformers-Dna8Fg7k.js";
6
6
  import "./compat-Bb5myD13.js";
7
- import { FetchError, fetchDocumentLoader, getDocumentLoader, getUserAgent, kvCache } from "./docloader-B8l5ArhI.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-WJ7wHeRU.js";
9
- import { Router, RouterError, buildCollectionSynchronizationHeader, createExponentialBackoffPolicy, createFederation, createFederationBuilder, digest, respondWithObject, respondWithObjectIfAcceptable } from "./middleware-D8drNbUb.js";
10
- import { lookupWebFinger } from "./lookup-B3DDTNE8.js";
11
- import { exportJwk, fetchKey, generateCryptoKeyPair, importJwk } from "./key-DO-jGH1-.js";
12
- import { signRequest, verifyRequest } from "./http-BYpPKHof.js";
13
- import { attachSignature, createProof, createSignature, detachSignature, doesActorOwnKey, getKeyOwner, signJsonLd, signObject, verifyJsonLd, verifyObject, verifyProof, verifySignature } from "./proof-CANzMXwU.js";
7
+ import { FetchError, fetchDocumentLoader, getDocumentLoader, getUserAgent, kvCache } from "./docloader-BJ1yrV8b.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-CQMO-eYO.js";
9
+ import { Router, RouterError, buildCollectionSynchronizationHeader, createExponentialBackoffPolicy, createFederation, createFederationBuilder, digest, respondWithObject, respondWithObjectIfAcceptable } from "./middleware-C9coBpNo.js";
10
+ import { lookupWebFinger } from "./lookup-DZ9o30-U.js";
11
+ import { exportJwk, fetchKey, generateCryptoKeyPair, importJwk } from "./key-bbkWVT9m.js";
12
+ import { signRequest, verifyRequest } from "./http-2pI8LHsa.js";
13
+ import { attachSignature, createProof, createSignature, detachSignature, doesActorOwnKey, getKeyOwner, signJsonLd, signObject, verifyJsonLd, verifyObject, verifyProof, verifySignature } from "./proof-5HdLxt3v.js";
14
14
  import { InProcessMessageQueue, MemoryKvStore, ParallelMessageQueue } from "./federation-CMX7WzeL.js";
15
- import { formatSemVer, getNodeInfo, nodeInfoToJson, parseNodeInfo, parseSemVer } from "./types-sRqvaRh2.js";
16
- import { getAuthenticatedDocumentLoader } from "./authdocloader-NFokReAQ.js";
17
- import { PUBLIC_COLLECTION, isFediverseHandle, lookupObject, parseFediverseHandle, toAcctUrl, traverseCollection } from "./vocab-BEyMnNOH.js";
15
+ import { formatSemVer, getNodeInfo, nodeInfoToJson, parseNodeInfo, parseSemVer } from "./types-wuqkip7B.js";
16
+ import { getAuthenticatedDocumentLoader } from "./authdocloader-DmAkc_Zu.js";
17
+ import { PUBLIC_COLLECTION, isFediverseHandle, lookupObject, parseFediverseHandle, toAcctUrl, traverseCollection } from "./vocab-Dsa7zLsk.js";
18
18
  import "./nodeinfo-CyEbLjHs.js";
19
19
  import "./runtime-BSkOVUWM.js";
20
20
  import "./sig-BXJO--F9.js";
@@ -3,20 +3,20 @@
3
3
  import { URLPattern } from "urlpattern-polyfill";
4
4
  globalThis.addEventListener = () => {};
5
5
 
6
- import "../type-s3cxzdF7.js";
6
+ import "../type-BCkcg7q-.js";
7
7
  import { assertEquals } from "../assert_equals-DSbWqCm3.js";
8
8
  import "../assert-MZs1qjMx.js";
9
9
  import "../assert_instance_of-DHz7EHNU.js";
10
10
  import "../semver-dArNLkR9.js";
11
- import { getNodeInfo, parseInboundService, parseNodeInfo, parseOutboundService, parseProtocol, parseServices, parseSoftware, parseUsage } from "../client-CJxLG6ee.js";
12
- import "../lookup-OrOsTes4.js";
13
- import { test } from "../testing-Do5ElhBv.js";
11
+ import { getNodeInfo, parseInboundService, parseNodeInfo, parseOutboundService, parseProtocol, parseServices, parseSoftware, parseUsage } from "../client-BaYgvD_x.js";
12
+ import "../lookup-C6LPK2Ae.js";
13
+ import { test } from "../testing-wuOLACBL.js";
14
14
  import "../std__assert-X-_kMxKM.js";
15
15
  import "../assert_rejects-DiIiJbZn.js";
16
16
  import "../assert_is_error-BPGph1Jx.js";
17
17
  import "../assert_not_equals-f3m3epl3.js";
18
18
  import "../assert_throws-BOO88avQ.js";
19
- import { esm_default } from "../esm-HTbWR6Yb.js";
19
+ import { esm_default } from "../esm-Cv2jpPyR.js";
20
20
 
21
21
  //#region src/nodeinfo/client.test.ts
22
22
  test("getNodeInfo()", async (t) => {
@@ -3,30 +3,30 @@
3
3
  import { URLPattern } from "urlpattern-polyfill";
4
4
  globalThis.addEventListener = () => {};
5
5
 
6
- import "../type-s3cxzdF7.js";
6
+ import "../type-BCkcg7q-.js";
7
7
  import { assertEquals } from "../assert_equals-DSbWqCm3.js";
8
8
  import "../assert-MZs1qjMx.js";
9
9
  import "../assert_instance_of-DHz7EHNU.js";
10
10
  import { MemoryKvStore } from "../kv-CRZrzyXm.js";
11
- import { createFederation, handleNodeInfo, handleNodeInfoJrd } from "../middleware-C5lTWaJc.js";
11
+ import { createFederation, handleNodeInfo, handleNodeInfoJrd } from "../middleware-CVg9c-sx.js";
12
12
  import { parseSemVer } from "../semver-dArNLkR9.js";
13
- import "../client-CJxLG6ee.js";
14
- import "../lookup-OrOsTes4.js";
13
+ import "../client-BaYgvD_x.js";
14
+ import "../lookup-C6LPK2Ae.js";
15
15
  import "../types-BIgY6c-l.js";
16
- import "../actor-C7pfGu4X.js";
17
- import "../key-DUTRSgmm.js";
18
- import "../http-BTbT0TFj.js";
19
- import "../authdocloader-ZiObBwwa.js";
20
- import "../ld-B2Zws6mR.js";
21
- import "../owner-BgiYvP3X.js";
22
- import "../proof-wOJ2cerK.js";
23
- import "../inbox-CZpWkkEj.js";
24
- import "../builder-BHKW2pdc.js";
16
+ import "../actor-BVy_Nr_z.js";
17
+ import "../key-DTE7NuP6.js";
18
+ import "../http-n15QrYTy.js";
19
+ import "../authdocloader-Du8CFIup.js";
20
+ import "../ld-BtcBjVHO.js";
21
+ import "../owner--mWjsRbl.js";
22
+ import "../proof-BuCUwVgD.js";
23
+ import "../inbox-BGL89YR_.js";
24
+ import "../builder-BeMe26Qw.js";
25
25
  import "../collection-CSzG2j1P.js";
26
- import "../keycache-ByS53syz.js";
26
+ import "../keycache-CwJM6yw-.js";
27
27
  import "../retry-D4GJ670a.js";
28
- import "../send-C4n5IcVS.js";
29
- import { createRequestContext, test } from "../testing-Do5ElhBv.js";
28
+ import "../send-DW1nBJyL.js";
29
+ import { createRequestContext, test } from "../testing-wuOLACBL.js";
30
30
  import "../std__assert-X-_kMxKM.js";
31
31
  import "../assert_rejects-DiIiJbZn.js";
32
32
  import "../assert_is_error-BPGph1Jx.js";
@@ -2,8 +2,8 @@
2
2
  import { Temporal } from "@js-temporal/polyfill";
3
3
  import { URLPattern } from "urlpattern-polyfill";
4
4
 
5
- import "../docloader-B8l5ArhI.js";
6
- import { formatSemVer, getNodeInfo, nodeInfoToJson, parseNodeInfo, parseSemVer } from "../types-sRqvaRh2.js";
5
+ import "../docloader-BJ1yrV8b.js";
6
+ import { formatSemVer, getNodeInfo, nodeInfoToJson, parseNodeInfo, parseSemVer } from "../types-wuqkip7B.js";
7
7
  import "../nodeinfo-CyEbLjHs.js";
8
8
 
9
9
  export { formatSemVer, getNodeInfo, nodeInfoToJson, parseNodeInfo, parseSemVer };
@@ -3,13 +3,13 @@
3
3
  import { URLPattern } from "urlpattern-polyfill";
4
4
  globalThis.addEventListener = () => {};
5
5
 
6
- import "../type-s3cxzdF7.js";
6
+ import "../type-BCkcg7q-.js";
7
7
  import { assertEquals } from "../assert_equals-DSbWqCm3.js";
8
8
  import "../assert-MZs1qjMx.js";
9
9
  import "../assert_instance_of-DHz7EHNU.js";
10
10
  import { formatSemVer, parseSemVer } from "../semver-dArNLkR9.js";
11
- import "../lookup-OrOsTes4.js";
12
- import { test } from "../testing-Do5ElhBv.js";
11
+ import "../lookup-C6LPK2Ae.js";
12
+ import { test } from "../testing-wuOLACBL.js";
13
13
  import "../std__assert-X-_kMxKM.js";
14
14
  import "../assert_rejects-DiIiJbZn.js";
15
15
  import "../assert_is_error-BPGph1Jx.js";
@@ -3,14 +3,14 @@
3
3
  import { URLPattern } from "urlpattern-polyfill";
4
4
  globalThis.addEventListener = () => {};
5
5
 
6
- import "../type-s3cxzdF7.js";
6
+ import "../type-BCkcg7q-.js";
7
7
  import { assertEquals } from "../assert_equals-DSbWqCm3.js";
8
8
  import "../assert-MZs1qjMx.js";
9
9
  import "../assert_instance_of-DHz7EHNU.js";
10
10
  import "../semver-dArNLkR9.js";
11
- import "../lookup-OrOsTes4.js";
11
+ import "../lookup-C6LPK2Ae.js";
12
12
  import { nodeInfoToJson } from "../types-BIgY6c-l.js";
13
- import { test } from "../testing-Do5ElhBv.js";
13
+ import { test } from "../testing-wuOLACBL.js";
14
14
  import "../std__assert-X-_kMxKM.js";
15
15
  import "../assert_rejects-DiIiJbZn.js";
16
16
  import "../assert_is_error-BPGph1Jx.js";
@@ -3,8 +3,8 @@
3
3
  import { URLPattern } from "urlpattern-polyfill";
4
4
  globalThis.addEventListener = () => {};
5
5
 
6
- import { CryptographicKey, Object as Object$1, getDocumentLoader } from "./type-s3cxzdF7.js";
7
- import { isActor } from "./actor-C7pfGu4X.js";
6
+ import { CryptographicKey, Object as Object$1, getDocumentLoader } from "./type-BCkcg7q-.js";
7
+ import { isActor } from "./actor-BVy_Nr_z.js";
8
8
  import { trace } from "@opentelemetry/api";
9
9
 
10
10
  //#region src/sig/owner.ts
@@ -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, getDocumentLoader } from "./docloader-B8l5ArhI.js";
6
- import { Activity, CryptographicKey, DataIntegrityProof, Multikey, Object as Object$1, getTypeId, isActor } from "./actor-WJ7wHeRU.js";
7
- import { fetchKey, validateCryptoKey } from "./key-DO-jGH1-.js";
5
+ import { deno_default, getDocumentLoader } from "./docloader-BJ1yrV8b.js";
6
+ import { Activity, CryptographicKey, DataIntegrityProof, Multikey, Object as Object$1, getTypeId, isActor } from "./actor-CQMO-eYO.js";
7
+ import { fetchKey, validateCryptoKey } from "./key-bbkWVT9m.js";
8
8
  import { getLogger } from "@logtape/logtape";
9
9
  import { SpanStatusCode, trace } from "@opentelemetry/api";
10
10
  import jsonld from "jsonld";
@@ -3,8 +3,8 @@
3
3
  import { URLPattern } from "urlpattern-polyfill";
4
4
  globalThis.addEventListener = () => {};
5
5
 
6
- import { Activity, DataIntegrityProof, Multikey, deno_default, getTypeId } from "./type-s3cxzdF7.js";
7
- import { fetchKey, validateCryptoKey } from "./key-DUTRSgmm.js";
6
+ import { Activity, DataIntegrityProof, Multikey, deno_default, getTypeId } from "./type-BCkcg7q-.js";
7
+ import { fetchKey, validateCryptoKey } from "./key-DTE7NuP6.js";
8
8
  import { getLogger } from "@logtape/logtape";
9
9
  import { SpanStatusCode, trace } from "@opentelemetry/api";
10
10
  import { encodeHex } from "byte-encodings/hex";
@@ -3,23 +3,23 @@
3
3
  import { URLPattern } from "urlpattern-polyfill";
4
4
  globalThis.addEventListener = () => {};
5
5
 
6
- import { UrlError } from "../type-s3cxzdF7.js";
6
+ import { UrlError } from "../type-BCkcg7q-.js";
7
7
  import { assertEquals } from "../assert_equals-DSbWqCm3.js";
8
8
  import "../assert-MZs1qjMx.js";
9
9
  import "../assert_instance_of-DHz7EHNU.js";
10
- import "../lookup-OrOsTes4.js";
11
- import "../actor-C7pfGu4X.js";
12
- import "../key-DUTRSgmm.js";
13
- import { verifyRequest } from "../http-BTbT0TFj.js";
14
- import { getAuthenticatedDocumentLoader } from "../authdocloader-ZiObBwwa.js";
15
- import { mockDocumentLoader, test } from "../testing-Do5ElhBv.js";
10
+ import "../lookup-C6LPK2Ae.js";
11
+ import "../actor-BVy_Nr_z.js";
12
+ import "../key-DTE7NuP6.js";
13
+ import { verifyRequest } from "../http-n15QrYTy.js";
14
+ import { getAuthenticatedDocumentLoader } from "../authdocloader-Du8CFIup.js";
15
+ import { mockDocumentLoader, test } from "../testing-wuOLACBL.js";
16
16
  import "../std__assert-X-_kMxKM.js";
17
17
  import { assertRejects } from "../assert_rejects-DiIiJbZn.js";
18
18
  import "../assert_is_error-BPGph1Jx.js";
19
19
  import "../assert_not_equals-f3m3epl3.js";
20
20
  import "../assert_throws-BOO88avQ.js";
21
- import { rsaPrivateKey2 } from "../keys-Beku4H4V.js";
22
- import { esm_default } from "../esm-HTbWR6Yb.js";
21
+ import { rsaPrivateKey2 } from "../keys-qHol1Qqg.js";
22
+ import { esm_default } from "../esm-Cv2jpPyR.js";
23
23
 
24
24
  //#region src/runtime/authdocloader.test.ts
25
25
  test("getAuthenticatedDocumentLoader()", async (t) => {
@@ -3,19 +3,19 @@
3
3
  import { URLPattern } from "urlpattern-polyfill";
4
4
  globalThis.addEventListener = () => {};
5
5
 
6
- import { FetchError, UrlError, contexts_default, deno_default, getDocumentLoader, getUserAgent, kvCache } from "../type-s3cxzdF7.js";
6
+ import { FetchError, UrlError, contexts_default, deno_default, getDocumentLoader, getUserAgent, kvCache } from "../type-BCkcg7q-.js";
7
7
  import { assertEquals } from "../assert_equals-DSbWqCm3.js";
8
8
  import "../assert-MZs1qjMx.js";
9
9
  import "../assert_instance_of-DHz7EHNU.js";
10
10
  import { MemoryKvStore } from "../kv-CRZrzyXm.js";
11
- import "../lookup-OrOsTes4.js";
12
- import { mockDocumentLoader, test } from "../testing-Do5ElhBv.js";
11
+ import "../lookup-C6LPK2Ae.js";
12
+ import { mockDocumentLoader, test } from "../testing-wuOLACBL.js";
13
13
  import "../std__assert-X-_kMxKM.js";
14
14
  import { assertRejects } from "../assert_rejects-DiIiJbZn.js";
15
15
  import "../assert_is_error-BPGph1Jx.js";
16
16
  import "../assert_not_equals-f3m3epl3.js";
17
17
  import { assertThrows } from "../assert_throws-BOO88avQ.js";
18
- import { esm_default } from "../esm-HTbWR6Yb.js";
18
+ import { esm_default } from "../esm-Cv2jpPyR.js";
19
19
  import process from "node:process";
20
20
 
21
21
  //#region src/runtime/docloader.test.ts
@@ -3,14 +3,14 @@
3
3
  import { URLPattern } from "urlpattern-polyfill";
4
4
  globalThis.addEventListener = () => {};
5
5
 
6
- import { exportMultibaseKey, exportSpki, importMultibaseKey, importPem, importPkcs1, importSpki } from "../type-s3cxzdF7.js";
6
+ import { exportMultibaseKey, exportSpki, importMultibaseKey, importPem, importPkcs1, importSpki } from "../type-BCkcg7q-.js";
7
7
  import { assertEquals } from "../assert_equals-DSbWqCm3.js";
8
8
  import "../assert-MZs1qjMx.js";
9
9
  import "../assert_instance_of-DHz7EHNU.js";
10
- import "../lookup-OrOsTes4.js";
11
- import "../actor-C7pfGu4X.js";
12
- import { exportJwk, importJwk } from "../key-DUTRSgmm.js";
13
- import { test } from "../testing-Do5ElhBv.js";
10
+ import "../lookup-C6LPK2Ae.js";
11
+ import "../actor-BVy_Nr_z.js";
12
+ import { exportJwk, importJwk } from "../key-DTE7NuP6.js";
13
+ import { test } from "../testing-wuOLACBL.js";
14
14
  import "../std__assert-X-_kMxKM.js";
15
15
  import "../assert_rejects-DiIiJbZn.js";
16
16
  import "../assert_is_error-BPGph1Jx.js";
@@ -3,12 +3,12 @@
3
3
  import { URLPattern } from "urlpattern-polyfill";
4
4
  globalThis.addEventListener = () => {};
5
5
 
6
- import { LanguageString } from "../type-s3cxzdF7.js";
6
+ import { LanguageString } from "../type-BCkcg7q-.js";
7
7
  import { assertEquals } from "../assert_equals-DSbWqCm3.js";
8
8
  import "../assert-MZs1qjMx.js";
9
9
  import "../assert_instance_of-DHz7EHNU.js";
10
- import "../lookup-OrOsTes4.js";
11
- import { test } from "../testing-Do5ElhBv.js";
10
+ import "../lookup-C6LPK2Ae.js";
11
+ import { test } from "../testing-wuOLACBL.js";
12
12
  import "../std__assert-X-_kMxKM.js";
13
13
  import "../assert_rejects-DiIiJbZn.js";
14
14
  import "../assert_is_error-BPGph1Jx.js";