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

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 (126) hide show
  1. package/README.md +3 -0
  2. package/dist/{builder-DbC8bn6k.mjs → builder-DphK9v7f.mjs} +2 -2
  3. package/dist/{client-D-XP_Ccb.d.cts → client-3InDZbba.d.cts} +0 -1
  4. package/dist/{client-D-XP_Ccb.d.ts → client-3InDZbba.d.ts} +0 -1
  5. package/dist/{client-CEnNz8O7.mjs → client-5SIFzW3q.mjs} +113 -64
  6. package/dist/compat/mod.d.cts +1 -1
  7. package/dist/compat/mod.d.ts +1 -1
  8. package/dist/compat/transformers.test.mjs +1 -1
  9. package/dist/{compound-proof-heeXW2_A.mjs → compound-proof-cYtvlTgF.mjs} +2 -2
  10. package/dist/{context-GlHrzdSP.d.ts → context-DQJE9YfH.d.ts} +29 -3
  11. package/dist/{context-BazwQrHn.d.cts → context-DSuL3YWx.d.cts} +29 -3
  12. package/dist/{deno-Dpewt_jJ.mjs → deno-iOAA7iRN.mjs} +1 -1
  13. package/dist/docloader-DCZkiTeF.mjs +136 -0
  14. package/dist/{exporter-DThFfe7P.mjs → exporter-DVG68ozH.mjs} +36 -30
  15. package/dist/federation/builder.test.mjs +1 -1
  16. package/dist/federation/compound-fanout.test.mjs +6 -3
  17. package/dist/federation/handler-compound-proof.test.mjs +3 -3
  18. package/dist/federation/handler.test.mjs +5 -5
  19. package/dist/federation/hashlink-media.test.mjs +2 -2
  20. package/dist/federation/idempotency.test.mjs +2 -2
  21. package/dist/federation/inbox-actorless.test.mjs +5 -5
  22. package/dist/federation/inbox-report.test.mjs +5 -5
  23. package/dist/federation/inbox-view.test.mjs +1 -1
  24. package/dist/federation/inbox.test.mjs +1 -1
  25. package/dist/federation/metrics.test.mjs +1 -1
  26. package/dist/federation/middleware.test.mjs +468 -33
  27. package/dist/federation/mod.cjs +1 -1
  28. package/dist/federation/mod.d.cts +3 -3
  29. package/dist/federation/mod.d.ts +3 -3
  30. package/dist/federation/mod.js +1 -1
  31. package/dist/federation/mq.test.mjs +1 -1
  32. package/dist/federation/outgoing-proof.test.mjs +9 -6
  33. package/dist/federation/portable-actor.test.mjs +3 -3
  34. package/dist/federation/portable-chain.test.mjs +3 -3
  35. package/dist/federation/portable-collection.test.mjs +4 -4
  36. package/dist/federation/portable-delivery.test.mjs +2 -2
  37. package/dist/federation/portable-gateway-keys.test.mjs +11 -5
  38. package/dist/federation/portable-inbox.test.mjs +4 -4
  39. package/dist/federation/portable-parse-uri.test.mjs +1 -1
  40. package/dist/federation/portable-route-activity.test.mjs +2 -2
  41. package/dist/federation/portable.test.mjs +3 -3
  42. package/dist/federation/send.test.mjs +502 -93
  43. package/dist/federation/tasks/enqueue.test.mjs +1 -1
  44. package/dist/federation/tasks/tasks.test.mjs +2 -2
  45. package/dist/federation/temporal.test.mjs +1 -1
  46. package/dist/federation/webfinger.test.mjs +1 -1
  47. package/dist/{federation-D8YexkP1.cjs → federation-D0AZw_aw.cjs} +246 -108
  48. package/dist/{http-BZkyQIkb.mjs → http-BoJCMnjY.mjs} +204 -106
  49. package/dist/{http-BBr-VLil.js → http-ChXUU_3c.js} +178 -109
  50. package/dist/{http-CAl7Num5.cjs → http-kv1LZw-r.cjs} +179 -110
  51. package/dist/{inbox-wDuMKaFW.mjs → inbox-BjihTKLo.mjs} +2 -2
  52. package/dist/{inbox-view-NE9wXdLo.mjs → inbox-view-D-skypg-.mjs} +1 -1
  53. package/dist/{key-nYGY4QB9.d.cts → key-DbLNT-vA.d.ts} +1 -2
  54. package/dist/{key-DhsBxxZN.d.ts → key-DlHT4R6k.d.cts} +1 -2
  55. package/dist/{kv-cache-CTQSfkmp.mjs → kv-cache-Cmsyke4d.mjs} +1 -1
  56. package/dist/{kv-cache-U7uz5nx4.js → kv-cache-DQcte7ES.js} +73 -28
  57. package/dist/{kv-cache-CjgCOz3i.cjs → kv-cache-Ddh5sMxH.cjs} +72 -27
  58. package/dist/{ld-Cel1RRZ5.d.cts → ld-CWVpo_NM.d.cts} +1 -1
  59. package/dist/{ld-CQFuiah9.mjs → ld-CdvcOEXQ.mjs} +2 -2
  60. package/dist/{ld-CcuZ4NZa.d.ts → ld-Inagww4R.d.ts} +1 -1
  61. package/dist/{metrics-B-QxRSSR.mjs → metrics-CpxvUrBz.mjs} +1 -1
  62. package/dist/{middleware-P-AZEQMn.js → middleware-BHb5toqA.js} +247 -109
  63. package/dist/{middleware-BdlNa8BD.mjs → middleware-BKs2DLUF.mjs} +1 -1
  64. package/dist/{middleware-CuVa0UuS.mjs → middleware-CoBLrTKX.mjs} +89 -49
  65. package/dist/{mod-DvWOv2Ho.d.cts → mod-6TQ4UQZb.d.cts} +1 -1
  66. package/dist/{mod-BHQE-7WQ.d.ts → mod-B4kBw1-8.d.ts} +1 -1
  67. package/dist/{mod-DkhfZC1u.d.ts → mod-B7j30IQf.d.ts} +2 -9
  68. package/dist/{mod-B2783_3v.d.cts → mod-C1nT74IG.d.cts} +1 -1
  69. package/dist/{mod-DjZfJj9R.d.ts → mod-CIeBgsOC.d.ts} +1 -1
  70. package/dist/{mod-B5-wdzmJ.d.cts → mod-YvA4Rk8J.d.cts} +2 -9
  71. package/dist/mod.cjs +5 -5
  72. package/dist/mod.d.cts +7 -7
  73. package/dist/mod.d.ts +7 -7
  74. package/dist/mod.js +5 -5
  75. package/dist/nodeinfo/client.test.mjs +337 -19
  76. package/dist/nodeinfo/handler.test.mjs +1 -1
  77. package/dist/nodeinfo/mod.cjs +1 -1
  78. package/dist/nodeinfo/mod.d.cts +1 -1
  79. package/dist/nodeinfo/mod.d.ts +1 -1
  80. package/dist/nodeinfo/mod.js +1 -1
  81. package/dist/otel/exporter.test.mjs +257 -1
  82. package/dist/otel/mod.cjs +36 -30
  83. package/dist/otel/mod.d.cts +13 -0
  84. package/dist/otel/mod.d.ts +13 -0
  85. package/dist/otel/mod.js +36 -30
  86. package/dist/{owner-ccKkQOAf.mjs → owner-DTnVpUKA.mjs} +3 -3
  87. package/dist/{portable-collection-CndnpXfo.mjs → portable-collection-CJeYTL61.mjs} +2 -2
  88. package/dist/{portable-collection-TC-kvkVI.cjs → portable-collection-DciwBIia.cjs} +1 -1
  89. package/dist/{portable-collection-DUlQ3s2M.js → portable-collection-TmtpzD4E.js} +1 -1
  90. package/dist/{portable-key-D5tFOoV-.mjs → portable-key-DcYok4ki.mjs} +1 -1
  91. package/dist/{proof-DPoF06nz.mjs → proof-GH7Poos_.mjs} +3 -3
  92. package/dist/{send-CF44O1Df.mjs → send-BgGJh6pv.mjs} +174 -76
  93. package/dist/sig/compound-proof-discovery.test.mjs +1 -1
  94. package/dist/sig/compound-proof-producer.test.mjs +1 -1
  95. package/dist/sig/compound-proof-verification.test.mjs +2 -2
  96. package/dist/sig/compound-proof.test.mjs +2 -2
  97. package/dist/sig/http.test.mjs +553 -2
  98. package/dist/sig/key.test.mjs +1 -1
  99. package/dist/sig/ld.test.mjs +1 -1
  100. package/dist/sig/mitra-receive-interop.test.mjs +4 -4
  101. package/dist/sig/mitra-send-interop.test.mjs +3 -3
  102. package/dist/sig/mod.cjs +2 -2
  103. package/dist/sig/mod.d.cts +3 -3
  104. package/dist/sig/mod.d.ts +3 -3
  105. package/dist/sig/mod.js +2 -2
  106. package/dist/sig/owner.test.mjs +1 -1
  107. package/dist/sig/portable-collection.test.mjs +1 -1
  108. package/dist/sig/portable-interop.test.mjs +3 -3
  109. package/dist/sig/portable-key.test.mjs +5 -5
  110. package/dist/sig/proof.test.mjs +4 -4
  111. package/dist/sig/tootik-request-interop.test.mjs +4 -4
  112. package/dist/sig/tootik-send-interop.test.mjs +3 -3
  113. package/dist/sig/verification.test.mjs +3 -3
  114. package/dist/{temporal-XlZ4Wb94.mjs → temporal-gJINzcL4.mjs} +1 -1
  115. package/dist/testing/kv.test.mjs +1 -1
  116. package/dist/testing/mod.d.mts +26 -0
  117. package/dist/{types-_S2_MeLF.js → types-DUjZb4i6.js} +112 -63
  118. package/dist/{types-poIao40f.cjs → types-hKCCjii0.cjs} +111 -62
  119. package/dist/utils/docloader.test.mjs +344 -36
  120. package/dist/utils/kv-cache.test.mjs +1 -1
  121. package/dist/utils/mod.cjs +1 -1
  122. package/dist/utils/mod.d.cts +1 -1
  123. package/dist/utils/mod.d.ts +1 -1
  124. package/dist/utils/mod.js +1 -1
  125. package/package.json +8 -8
  126. package/dist/docloader-CpsDyqVN.mjs +0 -91
@@ -5,30 +5,30 @@ import { d as isPortableUri, f as isSameObjectId, i as getPortableDid, l as isPo
5
5
  import { n as isPubliclyAddressedNode, t as isInAudience } from "./audience-CHQ-FlLD.mjs";
6
6
  import { i as getEmptyAuthenticationEvidence, n as deserializeAuthentication, t as createAuthenticationEvidence } from "./inbox-authentication-DflPYlLL.mjs";
7
7
  import { a as verificationObservation, r as snapshotKey, t as observeAttempt } from "./verification-Dpfcw8ml.mjs";
8
- import { n as version, t as name } from "./deno-Dpewt_jJ.mjs";
9
- import { a as instrumentDocumentLoader, b as recordWebFingerHandle, c as recordCircuitBreakerStateChange, d as recordCollectionRequest, f as recordCollectionTotalItems, g as recordInboxActivity, h as recordFanoutRecipients, i as getRemoteHost, l as recordCollectionDispatchDuration, n as getDurationMs, o as isAbortError, r as getFederationMetrics, u as recordCollectionPageItems, v as recordOutboxActivity, x as registerQueueDepthGauge, y as recordOutboxEnqueue } from "./metrics-B-QxRSSR.mjs";
8
+ import { n as version, t as name } from "./deno-iOAA7iRN.mjs";
9
+ import { a as instrumentDocumentLoader, b as recordWebFingerHandle, c as recordCircuitBreakerStateChange, d as recordCollectionRequest, f as recordCollectionTotalItems, g as recordInboxActivity, h as recordFanoutRecipients, i as getRemoteHost, l as recordCollectionDispatchDuration, n as getDurationMs, o as isAbortError, r as getFederationMetrics, u as recordCollectionPageItems, v as recordOutboxActivity, x as registerQueueDepthGauge, y as recordOutboxEnqueue } from "./metrics-CpxvUrBz.mjs";
10
10
  import { t as formatAcceptSignature } from "./accept-CPVqki78.mjs";
11
11
  import { r as getVerifiedKeyOwnerEvidence } from "./key-owner-evidence-APB6NpSk.mjs";
12
- import { D as validateCryptoKey, E as importJwk, a as compactJsonLd, c as getNormalizationContextLoader, d as isClearlyMalformedContextReference, f as isInvalidUrlTypeError, g as verifyCompactJsonLdDetailed, l as hasSignature, m as signJsonLd, r as assertSafeJsonLd, s as detachSignature, t as InvalidContextReferenceError, u as hasSignatureLike, x as exportJwk, y as wrapContextLoaderForJsonLd } from "./ld-CQFuiah9.mjs";
12
+ import { D as validateCryptoKey, E as importJwk, a as compactJsonLd, c as getNormalizationContextLoader, d as isClearlyMalformedContextReference, f as isInvalidUrlTypeError, g as verifyCompactJsonLdDetailed, l as hasSignature, m as signJsonLd, r as assertSafeJsonLd, s as detachSignature, t as InvalidContextReferenceError, u as hasSignatureLike, x as exportJwk, y as wrapContextLoaderForJsonLd } from "./ld-CdvcOEXQ.mjs";
13
13
  import { r as normalizeOutgoingActivityJsonLd } from "./outgoing-jsonld-4IJqPYos.mjs";
14
- import { a as hasProofLike, d as verifyPortableObjectProof, i as getProofSigner, l as verifyObject, p as verifyPortableObjectProofWithRoot, s as signObject, t as InvalidPortableObjectIdError, u as verifyObjectDetailed } from "./proof-DPoF06nz.mjs";
15
- import { a as listRequestSignatures, c as selectRequestSignature, d as validateMaxSignatures, f as verifyRequest, p as verifyRequestDetailed, s as parseRfc9421SignatureInput } from "./http-BZkyQIkb.mjs";
16
- import { t as getAuthenticatedDocumentLoader } from "./docloader-CpsDyqVN.mjs";
17
- import { n as kvCache } from "./kv-cache-CTQSfkmp.mjs";
18
- import { d as readBoundedText, l as BodyTooLargeError, t as getNodeInfo, u as MAX_BODY_SIZE } from "./client-CEnNz8O7.mjs";
14
+ import { a as hasProofLike, d as verifyPortableObjectProof, i as getProofSigner, l as verifyObject, p as verifyPortableObjectProofWithRoot, s as signObject, t as InvalidPortableObjectIdError, u as verifyObjectDetailed } from "./proof-GH7Poos_.mjs";
15
+ import { c as parseRfc9421SignatureInput, f as validateMaxSignatures, l as selectRequestSignature, m as verifyRequestDetailed, o as listRequestSignatures, p as verifyRequest } from "./http-BoJCMnjY.mjs";
16
+ import { n as getAuthenticatedDocumentLoader } from "./docloader-DCZkiTeF.mjs";
17
+ import { n as kvCache } from "./kv-cache-Cmsyke4d.mjs";
18
+ import { d as MAX_BODY_SIZE, f as readBoundedText, t as getNodeInfo, u as BodyTooLargeError } from "./client-5SIFzW3q.mjs";
19
19
  import { t as nodeInfoToJson } from "./types-DE_LV1JB.mjs";
20
- import { n as getKeyOwner, t as doesActorOwnKey } from "./owner-ccKkQOAf.mjs";
21
- import { t as verifyPortableObject } from "./portable-collection-CndnpXfo.mjs";
22
- import { a as getOrderingDestination, i as sendActivityThroughGateways, n as extractInboxes, r as sendActivity, t as SendActivityError } from "./send-CF44O1Df.mjs";
23
- import { n as FederationBuilderImpl, t as ACTOR_ALIAS_PREFIX } from "./builder-DbC8bn6k.mjs";
20
+ import { n as getKeyOwner, t as doesActorOwnKey } from "./owner-DTnVpUKA.mjs";
21
+ import { t as verifyPortableObject } from "./portable-collection-CJeYTL61.mjs";
22
+ import { a as sendActivityThroughGateways, i as sendActivity, n as extractInboxes, o as getOrderingDestination, t as SendActivityError } from "./send-BgGJh6pv.mjs";
23
+ import { n as FederationBuilderImpl, t as ACTOR_ALIAS_PREFIX } from "./builder-DphK9v7f.mjs";
24
24
  import { t as CircuitBreaker } from "./circuit-breaker-XJ53md4S.mjs";
25
25
  import { t as buildCollectionSynchronizationHeader } from "./collection-CnnP1UAv.mjs";
26
- import { a as inspectCompoundPortableObjectApplicability, c as verifyServedPortableObjects, i as findUnsupportedCompoundProofShape, o as verifyCompoundPortableObjectProofs, r as findEmbeddedProofWithoutContext, t as containsCompoundPortableObject } from "./compound-proof-heeXW2_A.mjs";
27
- import { a as isActorlessActivityAuthenticated, i as getInboxIdempotencyKey, n as checkActorlessActivity, o as isInboxActivityProcessed, s as routeActivity, t as actorsHaveSameOrigin } from "./inbox-wDuMKaFW.mjs";
28
- import { c as expandDocument, d as parseSerializedVerifiedActivityView, f as restoreVerifiedActivityView, i as createReleasableLoader, l as getActorPresence, n as buildVerifiedActivityView, o as deepFreeze, r as createContextSnapshot, t as ContextSnapshotMissError } from "./inbox-view-NE9wXdLo.mjs";
26
+ import { a as inspectCompoundPortableObjectApplicability, c as verifyServedPortableObjects, i as findUnsupportedCompoundProofShape, o as verifyCompoundPortableObjectProofs, r as findEmbeddedProofWithoutContext, t as containsCompoundPortableObject } from "./compound-proof-cYtvlTgF.mjs";
27
+ import { a as isActorlessActivityAuthenticated, i as getInboxIdempotencyKey, n as checkActorlessActivity, o as isInboxActivityProcessed, s as routeActivity, t as actorsHaveSameOrigin } from "./inbox-BjihTKLo.mjs";
28
+ import { c as expandDocument, d as parseSerializedVerifiedActivityView, f as restoreVerifiedActivityView, i as createReleasableLoader, l as getActorPresence, n as buildVerifiedActivityView, o as deepFreeze, r as createContextSnapshot, t as ContextSnapshotMissError } from "./inbox-view-D-skypg-.mjs";
29
29
  import { t as KvKeyCache } from "./keycache-N2opu4-3.mjs";
30
30
  import { t as acceptsJsonLd } from "./negotiation-CCocWT_N.mjs";
31
- import { t as hasMalformedKnownTemporalLiteral } from "./temporal-XlZ4Wb94.mjs";
31
+ import { t as hasMalformedKnownTemporalLiteral } from "./temporal-gJINzcL4.mjs";
32
32
  import { t as createExponentialBackoffPolicy } from "./retry-zX5xw5e0.mjs";
33
33
  import { t as TaskCodec } from "./codec-C6rTrpIp.mjs";
34
34
  import { getLogger, withContext } from "@logtape/logtape";
@@ -6504,7 +6504,7 @@ var FederationImpl = class extends FederationBuilderImpl {
6504
6504
  onNotAcceptable ??= notAcceptable;
6505
6505
  onUnauthorized ??= unauthorized;
6506
6506
  const url = new URL(request.url);
6507
- const route = this.router.route(url.pathname);
6507
+ const route = this.router.route(url.pathname, { allowUnencodedColon: true });
6508
6508
  if (route == null) {
6509
6509
  const media = this.hashlinkMediaDispatcher == null ? null : parseHashlinkGatewayRequest(url);
6510
6510
  if (media != null) return await this.#fetchHashlinkMedia(request, media, {
@@ -8323,52 +8323,92 @@ var RequestContextImpl = class RequestContextImpl extends ContextImpl {
8323
8323
  if (object instanceof Tombstone && !(object instanceof cls) && options?.tombstone !== "passthrough") return null;
8324
8324
  return object;
8325
8325
  }
8326
- #signedKey = void 0;
8326
+ #signedKey = null;
8327
+ #signedKeyOwner = null;
8328
+ #signatureChecks = /* @__PURE__ */ new WeakMap();
8329
+ #getSignatureCheck(documentLoader, contextLoader) {
8330
+ let checks = this.#signatureChecks.get(documentLoader);
8331
+ if (checks == null) {
8332
+ checks = /* @__PURE__ */ new WeakMap();
8333
+ this.#signatureChecks.set(documentLoader, checks);
8334
+ }
8335
+ let check = checks.get(contextLoader);
8336
+ if (check == null) {
8337
+ check = {};
8338
+ checks.set(contextLoader, check);
8339
+ }
8340
+ return check;
8341
+ }
8327
8342
  async getSignedKey(options = {}) {
8328
8343
  if (this.#signedKey != null) return this.#signedKey;
8329
- const keyCache = new KvKeyCache(this.federation.kv, this.federation.kvPrefixes.publicKey, {
8330
- documentLoader: options.documentLoader ?? this.documentLoader,
8331
- contextLoader: options.contextLoader ?? this.contextLoader,
8344
+ const documentLoader = options.documentLoader ?? this.documentLoader;
8345
+ const contextLoader = options.contextLoader ?? this.contextLoader;
8346
+ const check = this.#getSignatureCheck(documentLoader, contextLoader);
8347
+ if (check.key != null) return check.key;
8348
+ const keyCache = documentLoader === this.documentLoader && contextLoader === this.contextLoader ? new KvKeyCache(this.federation.kv, this.federation.kvPrefixes.publicKey, {
8349
+ documentLoader,
8350
+ contextLoader,
8332
8351
  tracerProvider: options.tracerProvider ?? this.tracerProvider,
8333
8352
  keyTtl: this.federation.publicKeyTtl
8334
- });
8335
- return this.#signedKey = await verifyRequest(this.request, {
8353
+ }) : void 0;
8354
+ const promise = verifyRequest(this.request, {
8336
8355
  ...this,
8337
- contextLoader: options.contextLoader ?? this.contextLoader,
8338
- documentLoader: options.documentLoader ?? this.documentLoader,
8356
+ contextLoader,
8357
+ documentLoader,
8339
8358
  timeWindow: this.federation.signatureTimeWindow,
8340
8359
  maxSignatures: this.federation.maxHttpSignatures,
8360
+ keyCache,
8341
8361
  meterProvider: this.meterProvider,
8342
- tracerProvider: options.tracerProvider ?? this.tracerProvider,
8343
- keyCache
8362
+ tracerProvider: options.tracerProvider ?? this.tracerProvider
8363
+ }).then((key) => {
8364
+ if (key != null) this.#signedKey ??= key;
8365
+ return key;
8366
+ }).catch((error) => {
8367
+ if (check.key === promise) check.key = void 0;
8368
+ throw error;
8344
8369
  });
8370
+ check.key = promise;
8371
+ return await promise;
8345
8372
  }
8346
- #signedKeyOwner = void 0;
8347
8373
  async getSignedKeyOwner(options = {}) {
8348
8374
  if (this.#signedKeyOwner != null) return this.#signedKeyOwner;
8349
- const key = await this.getSignedKey(options);
8350
- if (key == null) return this.#signedKeyOwner = null;
8351
- try {
8352
- return this.#signedKeyOwner = await getKeyOwner(key, {
8353
- contextLoader: options.contextLoader ?? this.contextLoader,
8354
- documentLoader: options.documentLoader ?? this.documentLoader,
8355
- tracerProvider: options.tracerProvider ?? this.tracerProvider
8356
- });
8357
- } catch (error) {
8358
- if (error instanceof FetchError) {
8359
- getLogger([
8360
- "fedify",
8361
- "federation",
8362
- "actor"
8363
- ]).warn("Failed to fetch the key owner {keyOwner} of {keyId} while verifying the request signature; treating the request as unauthenticated: {error}", {
8364
- keyId: key.id?.href,
8365
- keyOwner: error.url.href,
8366
- error
8367
- });
8368
- return this.#signedKeyOwner = null;
8375
+ const normalizedOptions = {
8376
+ documentLoader: options.documentLoader ?? this.documentLoader,
8377
+ contextLoader: options.contextLoader ?? this.contextLoader,
8378
+ tracerProvider: options.tracerProvider ?? this.tracerProvider
8379
+ };
8380
+ const check = this.#getSignatureCheck(normalizedOptions.documentLoader, normalizedOptions.contextLoader);
8381
+ if (check.owner != null) return check.owner;
8382
+ const promise = this.getSignedKey(normalizedOptions).then(async (key) => {
8383
+ if (key == null) {
8384
+ if (check.owner === promise) check.owner = void 0;
8385
+ return null;
8386
+ }
8387
+ try {
8388
+ const owner = await getKeyOwner(key, normalizedOptions);
8389
+ if (owner != null) this.#signedKeyOwner ??= owner;
8390
+ return owner;
8391
+ } catch (error) {
8392
+ if (error instanceof FetchError) {
8393
+ getLogger([
8394
+ "fedify",
8395
+ "federation",
8396
+ "actor"
8397
+ ]).warn("Failed to fetch the key owner {keyOwner} of {keyId} while verifying the request signature; treating the request as unauthenticated: {error}", {
8398
+ keyId: key.id?.href,
8399
+ keyOwner: error.url.href,
8400
+ error
8401
+ });
8402
+ return null;
8403
+ }
8404
+ throw error;
8369
8405
  }
8406
+ }).catch((error) => {
8407
+ if (check.owner === promise) check.owner = void 0;
8370
8408
  throw error;
8371
- }
8409
+ });
8410
+ check.owner = promise;
8411
+ return await promise;
8372
8412
  }
8373
8413
  async isSignedByAudience(object, options = {}) {
8374
8414
  return await isInAudience(object, null) || await isInAudience(object, await this.getSignedKeyOwner(options), options);
@@ -1,5 +1,5 @@
1
1
  /// <reference lib="esnext.temporal" />
2
- import { Et as ActorHandleMapper, Qt as WebFingerLinksDispatcher, Tt as ActorDispatcher, p as RequestContext, wt as ActorAliasMapper } from "./context-BazwQrHn.cjs";
2
+ import { Et as ActorHandleMapper, Qt as WebFingerLinksDispatcher, Tt as ActorDispatcher, p as RequestContext, wt as ActorAliasMapper } from "./context-DSuL3YWx.cjs";
3
3
  import { MeterProvider, Span, Tracer } from "@opentelemetry/api";
4
4
  import { RouterError, RouterOptions, RouterRouteResult } from "@fedify/uri-template";
5
5
 
@@ -1,5 +1,5 @@
1
1
  /// <reference lib="esnext.temporal" />
2
- import { B as VerifyPortableObjectProofOptions, z as VerifyPortableObjectProofFailureReason } from "./key-DhsBxxZN.js";
2
+ import { B as VerifyPortableObjectProofOptions, z as VerifyPortableObjectProofFailureReason } from "./key-DbLNT-vA.js";
3
3
  import { Multikey } from "@fedify/vocab";
4
4
  import { PortableObjectVerifierOptions } from "@fedify/vocab-runtime";
5
5
 
@@ -1,5 +1,5 @@
1
1
  /// <reference lib="esnext.temporal" />
2
- import { b as HttpMessageSignaturesSpecDeterminer } from "./key-DhsBxxZN.js";
2
+ import { b as HttpMessageSignaturesSpecDeterminer } from "./key-DbLNT-vA.js";
3
3
  import { n as KvStore, t as KvKey } from "./kv-B2mzK5tl.js";
4
4
  import { t as DocumentFetchKind } from "./metrics-DoRtI0qU.js";
5
5
  import { MeterProvider, TracerProvider } from "@opentelemetry/api";
@@ -46,14 +46,7 @@ interface GetAuthenticatedDocumentLoaderOptions extends DocumentLoaderFactoryOpt
46
46
  declare function getAuthenticatedDocumentLoader(identity: {
47
47
  keyId: URL;
48
48
  privateKey: CryptoKey;
49
- }, {
50
- allowPrivateAddress,
51
- maxRedirection,
52
- userAgent,
53
- specDeterminer,
54
- timeout,
55
- tracerProvider
56
- }?: GetAuthenticatedDocumentLoaderOptions): DocumentLoader;
49
+ }, options?: GetAuthenticatedDocumentLoaderOptions): DocumentLoader;
57
50
  //#endregion
58
51
  //#region src/utils/kv-cache.d.ts
59
52
  /**
@@ -1,5 +1,5 @@
1
1
  /// <reference lib="esnext.temporal" />
2
- import { B as VerifyPortableObjectProofOptions, z as VerifyPortableObjectProofFailureReason } from "./key-nYGY4QB9.cjs";
2
+ import { B as VerifyPortableObjectProofOptions, z as VerifyPortableObjectProofFailureReason } from "./key-DlHT4R6k.cjs";
3
3
  import { Multikey } from "@fedify/vocab";
4
4
  import { PortableObjectVerifierOptions } from "@fedify/vocab-runtime";
5
5
 
@@ -1,5 +1,5 @@
1
1
  /// <reference lib="esnext.temporal" />
2
- import { Et as ActorHandleMapper, Qt as WebFingerLinksDispatcher, Tt as ActorDispatcher, p as RequestContext, wt as ActorAliasMapper } from "./context-GlHrzdSP.js";
2
+ import { Et as ActorHandleMapper, Qt as WebFingerLinksDispatcher, Tt as ActorDispatcher, p as RequestContext, wt as ActorAliasMapper } from "./context-DQJE9YfH.js";
3
3
  import { RouterError, RouterOptions, RouterRouteResult } from "@fedify/uri-template";
4
4
  import { MeterProvider, Span, Tracer } from "@opentelemetry/api";
5
5
 
@@ -1,5 +1,5 @@
1
1
  /// <reference lib="esnext.temporal" />
2
- import { b as HttpMessageSignaturesSpecDeterminer } from "./key-nYGY4QB9.cjs";
2
+ import { b as HttpMessageSignaturesSpecDeterminer } from "./key-DlHT4R6k.cjs";
3
3
  import { n as KvStore, t as KvKey } from "./kv-B2mzK5tl.cjs";
4
4
  import { t as DocumentFetchKind } from "./metrics-DVKYY6K1.cjs";
5
5
  import { DocumentLoader, DocumentLoaderFactoryOptions } from "@fedify/vocab-runtime";
@@ -46,14 +46,7 @@ interface GetAuthenticatedDocumentLoaderOptions extends DocumentLoaderFactoryOpt
46
46
  declare function getAuthenticatedDocumentLoader(identity: {
47
47
  keyId: URL;
48
48
  privateKey: CryptoKey;
49
- }, {
50
- allowPrivateAddress,
51
- maxRedirection,
52
- userAgent,
53
- specDeterminer,
54
- timeout,
55
- tracerProvider
56
- }?: GetAuthenticatedDocumentLoaderOptions): DocumentLoader;
49
+ }, options?: GetAuthenticatedDocumentLoaderOptions): DocumentLoader;
57
50
  //#endregion
58
51
  //#region src/utils/kv-cache.d.ts
59
52
  /**
package/dist/mod.cjs CHANGED
@@ -3,11 +3,11 @@ Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
3
3
  require("./rolldown-runtime-Dmm3t92W.cjs");
4
4
  const require_transformers = require("./transformers-BalCrSsr.cjs");
5
5
  require("./compat/mod.cjs");
6
- const require_http = require("./http-CAl7Num5.cjs");
7
- const require_federation = require("./federation-D8YexkP1.cjs");
8
- const require_types = require("./types-poIao40f.cjs");
9
- const require_portable_collection = require("./portable-collection-TC-kvkVI.cjs");
10
- const require_kv_cache = require("./kv-cache-CjgCOz3i.cjs");
6
+ const require_http = require("./http-kv1LZw-r.cjs");
7
+ const require_federation = require("./federation-D0AZw_aw.cjs");
8
+ const require_types = require("./types-hKCCjii0.cjs");
9
+ const require_portable_collection = require("./portable-collection-DciwBIia.cjs");
10
+ const require_kv_cache = require("./kv-cache-Ddh5sMxH.cjs");
11
11
  require("./nodeinfo/mod.cjs");
12
12
  require("./runtime/mod.cjs");
13
13
  require("./sig/mod.cjs");
package/dist/mod.d.cts CHANGED
@@ -1,13 +1,13 @@
1
1
  /// <reference lib="esnext.temporal" />
2
- import { a as InboundService, c as OutboundService, d as Software, f as Usage, i as parseNodeInfo, l as Protocol, n as ParseNodeInfoOptions, o as JsonValue, p as nodeInfoToJson, r as getNodeInfo, s as NodeInfo, t as GetNodeInfoOptions, u as Services } from "./client-D-XP_Ccb.cjs";
3
- import { A as AcceptSignatureParameters, B as VerifyPortableObjectProofOptions, C as VerifyRequestDetailedResult, D as verifyRequest, E as signRequest, F as validateAcceptSignature, G as signObject, H as VerifyProofOptions, I as CreateProofOptions, J as verifyProof, K as verifyObject, L as SignObjectOptions, M as formatAcceptSignature, N as fulfillAcceptSignature, O as verifyRequestDetailed, P as parseAcceptSignature, R as VerifyObjectOptions, S as SignRequestOptions, T as VerifyRequestOptions, U as createProof, V as VerifyPortableObjectProofResult, W as hasProofLike, _ as InboxVerificationKey, a as KeyCache, b as HttpMessageSignaturesSpecDeterminer, c as fetchKeyDetailed, d as InboxProofPolicyFailureReason, f as InboxSignatureCheck, g as InboxVerificationFailureReason, h as InboxVerificationAttempt, i as FetchKeyResult, j as FulfillAcceptSignatureResult, k as AcceptSignatureMember, l as generateCryptoKeyPair, m as InboxSignatureIdentity, n as FetchKeyErrorResult, o as exportJwk, p as InboxSignatureFailureReason, q as verifyPortableObjectProof, r as FetchKeyOptions, s as fetchKey, t as FetchKeyDetailedResult, u as importJwk, w as VerifyRequestFailureReason, x as Rfc9421SignRequestOptions, y as HttpMessageSignaturesSpec, z as VerifyPortableObjectProofFailureReason } from "./key-nYGY4QB9.cjs";
4
- import { a as VerifySignatureOptions, c as detachSignature, d as verifyJsonLd, f as verifySignature, g as getKeyOwner, h as doesActorOwnKey, i as VerifyJsonLdOptions, l as hasSignatureLike, m as GetKeyOwnerOptions, o as attachSignature, p as DoesActorOwnKeyOptions, r as SignJsonLdOptions, s as createSignature, t as CreateSignatureOptions, u as signJsonLd } from "./ld-Cel1RRZ5.cjs";
5
- import { $ as respondWithObject, $t as SendActivityError, A as InboxChallengePolicy, At as CollectionCursor, B as createFederation, Bt as NodeInfoDispatcher, C as FederationBenchmarkOptions, Ct as parseCircuitBreakerKvState, D as FederationStartQueueOptions, Dt as ActorKeyPairsDispatcher, E as FederationOptions, Et as ActorHandleMapper, F as PortableInboxForwardingOptions, Ft as HashlinkMediaDispatcher, G as TaskEnqueueOptions, Gt as OutboxListenerErrorHandler, H as createFederationBuilder, Ht as ObjectDispatcher, I as Rfc6570Expression, It as HashlinkMediaRequest, J as CreateExponentialBackoffPolicyOptions, Jt as PortableCollectionOwnerMapper, K as TaskHandler, Kt as OutboxPermanentFailureHandler, L as FederationKvPrefixes, Lt as InboxErrorHandler, M as MediaUploaderSetters, Mt as CustomCollectionCounter, N as ObjectCallbackSetters, Nt as CustomCollectionCursor, O as IdempotencyKeyCallback, Ot as AuthorizePredicate, P as OutboxListenerSetters, Pt as CustomCollectionDispatcher, Q as RespondWithObjectOptions, Qt as WebFingerLinksDispatcher, R as FederationOrigin, Rt as InboxListener, S as Federation, St as normalizeCircuitBreakerOptions, T as FederationFetchOptions, Tt as ActorDispatcher, U as TaskDefinition, Ut as OutboxErrorHandler, V as Message, Vt as ObjectAuthorizePredicate, W as TaskDefinitionOptions, Wt as OutboxListener, X as RetryPolicy, Xt as UnverifiedActivityHandler, Y as RetryContext, Yt as SharedInboxKeyDispatcher, Z as createExponentialBackoffPolicy, Zt as UnverifiedActivityReason, _ as ActorCallbackSetters, _t as CircuitBreakerKvState, a as GetObjectOptions, an as InboxAuthentication, at as InProcessMessageQueue, b as CustomCollectionCallbackSetters, bt as CircuitBreakerStateChange, c as IsSignedByAudienceOptions, cn as InboxRequestOutcome, ct as MessageQueueDepth, d as ParseUriResult, dt as ParallelMessageQueue, en as SenderKeyPair, et as respondWithObjectIfAcceptable, f as PortableRequest, ft as CircuitBreaker, g as SendActivityOptionsForCollection, gt as CircuitBreakerFailurePolicy, h as SendActivityOptions, ht as CircuitBreakerCreateOptions, i as GetActorOptions, in as ActivityTransformer, it as isActorAuthenticated, j as InboxListenerSetters, jt as CollectionDispatcher, k as IdempotencyStrategy, kt as CollectionCounter, l as OutboxContext, ln as InboxRequestReport, lt as MessageQueueEnqueueOptions, m as RouteActivityOptions, mt as CircuitBreakerBeforeSendDecision, n as Context, nn as buildCollectionSynchronizationHeader, nt as InboxPrincipal, o as GetSignedKeyOptions, on as InboxJsonValue, ot as InProcessMessageQueueOptions, p as RequestContext, pt as CircuitBreakerActivityDrop, q as TaskRegistry, qt as PortableActorIdMapper, r as ForwardActivityOptions, rn as digest, rt as IsActorAuthenticatedOptions, s as InboxContext, sn as InboxRequestFinishedHandler, st as MessageQueue, t as ActorKeyPair, tn as PageItems, tt as InboxAuthenticationEvidence, u as ParseUriOptions, un as InboxListenerOptions, ut as MessageQueueListenOptions, v as CollectionCallbackSetters, vt as CircuitBreakerOptions, w as FederationBuilder, wt as ActorAliasMapper, x as Federatable, xt as NormalizedCircuitBreakerOptions, y as ConstructorWithTypeId, yt as CircuitBreakerState, z as FederationQueueOptions, zt as MediaUploaderCallback } from "./context-BazwQrHn.cjs";
2
+ import { a as InboundService, c as OutboundService, d as Software, f as Usage, i as parseNodeInfo, l as Protocol, n as ParseNodeInfoOptions, o as JsonValue, p as nodeInfoToJson, r as getNodeInfo, s as NodeInfo, t as GetNodeInfoOptions, u as Services } from "./client-3InDZbba.cjs";
3
+ import { A as AcceptSignatureParameters, B as VerifyPortableObjectProofOptions, C as VerifyRequestDetailedResult, D as verifyRequest, E as signRequest, F as validateAcceptSignature, G as signObject, H as VerifyProofOptions, I as CreateProofOptions, J as verifyProof, K as verifyObject, L as SignObjectOptions, M as formatAcceptSignature, N as fulfillAcceptSignature, O as verifyRequestDetailed, P as parseAcceptSignature, R as VerifyObjectOptions, S as SignRequestOptions, T as VerifyRequestOptions, U as createProof, V as VerifyPortableObjectProofResult, W as hasProofLike, _ as InboxVerificationKey, a as KeyCache, b as HttpMessageSignaturesSpecDeterminer, c as fetchKeyDetailed, d as InboxProofPolicyFailureReason, f as InboxSignatureCheck, g as InboxVerificationFailureReason, h as InboxVerificationAttempt, i as FetchKeyResult, j as FulfillAcceptSignatureResult, k as AcceptSignatureMember, l as generateCryptoKeyPair, m as InboxSignatureIdentity, n as FetchKeyErrorResult, o as exportJwk, p as InboxSignatureFailureReason, q as verifyPortableObjectProof, r as FetchKeyOptions, s as fetchKey, t as FetchKeyDetailedResult, u as importJwk, w as VerifyRequestFailureReason, x as Rfc9421SignRequestOptions, y as HttpMessageSignaturesSpec, z as VerifyPortableObjectProofFailureReason } from "./key-DlHT4R6k.cjs";
4
+ import { a as VerifySignatureOptions, c as detachSignature, d as verifyJsonLd, f as verifySignature, g as getKeyOwner, h as doesActorOwnKey, i as VerifyJsonLdOptions, l as hasSignatureLike, m as GetKeyOwnerOptions, o as attachSignature, p as DoesActorOwnKeyOptions, r as SignJsonLdOptions, s as createSignature, t as CreateSignatureOptions, u as signJsonLd } from "./ld-CWVpo_NM.cjs";
5
+ import { $ as respondWithObject, $t as SendActivityError, A as InboxChallengePolicy, At as CollectionCursor, B as createFederation, Bt as NodeInfoDispatcher, C as FederationBenchmarkOptions, Ct as parseCircuitBreakerKvState, D as FederationStartQueueOptions, Dt as ActorKeyPairsDispatcher, E as FederationOptions, Et as ActorHandleMapper, F as PortableInboxForwardingOptions, Ft as HashlinkMediaDispatcher, G as TaskEnqueueOptions, Gt as OutboxListenerErrorHandler, H as createFederationBuilder, Ht as ObjectDispatcher, I as Rfc6570Expression, It as HashlinkMediaRequest, J as CreateExponentialBackoffPolicyOptions, Jt as PortableCollectionOwnerMapper, K as TaskHandler, Kt as OutboxPermanentFailureHandler, L as FederationKvPrefixes, Lt as InboxErrorHandler, M as MediaUploaderSetters, Mt as CustomCollectionCounter, N as ObjectCallbackSetters, Nt as CustomCollectionCursor, O as IdempotencyKeyCallback, Ot as AuthorizePredicate, P as OutboxListenerSetters, Pt as CustomCollectionDispatcher, Q as RespondWithObjectOptions, Qt as WebFingerLinksDispatcher, R as FederationOrigin, Rt as InboxListener, S as Federation, St as normalizeCircuitBreakerOptions, T as FederationFetchOptions, Tt as ActorDispatcher, U as TaskDefinition, Ut as OutboxErrorHandler, V as Message, Vt as ObjectAuthorizePredicate, W as TaskDefinitionOptions, Wt as OutboxListener, X as RetryPolicy, Xt as UnverifiedActivityHandler, Y as RetryContext, Yt as SharedInboxKeyDispatcher, Z as createExponentialBackoffPolicy, Zt as UnverifiedActivityReason, _ as ActorCallbackSetters, _t as CircuitBreakerKvState, a as GetObjectOptions, an as InboxAuthentication, at as InProcessMessageQueue, b as CustomCollectionCallbackSetters, bt as CircuitBreakerStateChange, c as IsSignedByAudienceOptions, cn as InboxRequestOutcome, ct as MessageQueueDepth, d as ParseUriResult, dt as ParallelMessageQueue, en as SenderKeyPair, et as respondWithObjectIfAcceptable, f as PortableRequest, ft as CircuitBreaker, g as SendActivityOptionsForCollection, gt as CircuitBreakerFailurePolicy, h as SendActivityOptions, ht as CircuitBreakerCreateOptions, i as GetActorOptions, in as ActivityTransformer, it as isActorAuthenticated, j as InboxListenerSetters, jt as CollectionDispatcher, k as IdempotencyStrategy, kt as CollectionCounter, l as OutboxContext, ln as InboxRequestReport, lt as MessageQueueEnqueueOptions, m as RouteActivityOptions, mt as CircuitBreakerBeforeSendDecision, n as Context, nn as buildCollectionSynchronizationHeader, nt as InboxPrincipal, o as GetSignedKeyOptions, on as InboxJsonValue, ot as InProcessMessageQueueOptions, p as RequestContext, pt as CircuitBreakerActivityDrop, q as TaskRegistry, qt as PortableActorIdMapper, r as ForwardActivityOptions, rn as digest, rt as IsActorAuthenticatedOptions, s as InboxContext, sn as InboxRequestFinishedHandler, st as MessageQueue, t as ActorKeyPair, tn as PageItems, tt as InboxAuthenticationEvidence, u as ParseUriOptions, un as InboxListenerOptions, ut as MessageQueueListenOptions, v as CollectionCallbackSetters, vt as CircuitBreakerOptions, w as FederationBuilder, wt as ActorAliasMapper, x as Federatable, xt as NormalizedCircuitBreakerOptions, y as ConstructorWithTypeId, yt as CircuitBreakerState, z as FederationQueueOptions, zt as MediaUploaderCallback } from "./context-DSuL3YWx.cjs";
6
6
  import { a as MemoryKvStore, i as KvStoreSetOptions, n as KvStore, r as KvStoreListEntry, t as KvKey } from "./kv-B2mzK5tl.cjs";
7
7
  import { actorDehydrator, autoIdAssigner, getDefaultActivityTransformers } from "./compat/mod.cjs";
8
- import { a as RouterOptions, i as RouterError, n as handleWebFinger, o as RouterRouteResult, r as Router, t as WebFingerHandlerParameters } from "./mod-DvWOv2Ho.cjs";
9
- import { i as verifyPortableObject, n as VerifyPortableObjectOptions, r as VerifyPortableObjectResult, t as VerifyPortableObjectFailureReason } from "./mod-B2783_3v.cjs";
10
- import { n as getAuthenticatedDocumentLoader, t as kvCache } from "./mod-B5-wdzmJ.cjs";
8
+ import { a as RouterOptions, i as RouterError, n as handleWebFinger, o as RouterRouteResult, r as Router, t as WebFingerHandlerParameters } from "./mod-6TQ4UQZb.cjs";
9
+ import { i as verifyPortableObject, n as VerifyPortableObjectOptions, r as VerifyPortableObjectResult, t as VerifyPortableObjectFailureReason } from "./mod-C1nT74IG.cjs";
10
+ import { n as getAuthenticatedDocumentLoader, t as kvCache } from "./mod-YvA4Rk8J.cjs";
11
11
  export * from "@fedify/vocab-runtime";
12
12
 
13
13
  //#region src/mod.d.ts
package/dist/mod.d.ts CHANGED
@@ -1,13 +1,13 @@
1
1
  /// <reference lib="esnext.temporal" />
2
- import { a as InboundService, c as OutboundService, d as Software, f as Usage, i as parseNodeInfo, l as Protocol, n as ParseNodeInfoOptions, o as JsonValue, p as nodeInfoToJson, r as getNodeInfo, s as NodeInfo, t as GetNodeInfoOptions, u as Services } from "./client-D-XP_Ccb.js";
3
- import { A as AcceptSignatureParameters, B as VerifyPortableObjectProofOptions, C as VerifyRequestDetailedResult, D as verifyRequest, E as signRequest, F as validateAcceptSignature, G as signObject, H as VerifyProofOptions, I as CreateProofOptions, J as verifyProof, K as verifyObject, L as SignObjectOptions, M as formatAcceptSignature, N as fulfillAcceptSignature, O as verifyRequestDetailed, P as parseAcceptSignature, R as VerifyObjectOptions, S as SignRequestOptions, T as VerifyRequestOptions, U as createProof, V as VerifyPortableObjectProofResult, W as hasProofLike, _ as InboxVerificationKey, a as KeyCache, b as HttpMessageSignaturesSpecDeterminer, c as fetchKeyDetailed, d as InboxProofPolicyFailureReason, f as InboxSignatureCheck, g as InboxVerificationFailureReason, h as InboxVerificationAttempt, i as FetchKeyResult, j as FulfillAcceptSignatureResult, k as AcceptSignatureMember, l as generateCryptoKeyPair, m as InboxSignatureIdentity, n as FetchKeyErrorResult, o as exportJwk, p as InboxSignatureFailureReason, q as verifyPortableObjectProof, r as FetchKeyOptions, s as fetchKey, t as FetchKeyDetailedResult, u as importJwk, w as VerifyRequestFailureReason, x as Rfc9421SignRequestOptions, y as HttpMessageSignaturesSpec, z as VerifyPortableObjectProofFailureReason } from "./key-DhsBxxZN.js";
4
- import { a as VerifySignatureOptions, c as detachSignature, d as verifyJsonLd, f as verifySignature, g as getKeyOwner, h as doesActorOwnKey, i as VerifyJsonLdOptions, l as hasSignatureLike, m as GetKeyOwnerOptions, o as attachSignature, p as DoesActorOwnKeyOptions, r as SignJsonLdOptions, s as createSignature, t as CreateSignatureOptions, u as signJsonLd } from "./ld-CcuZ4NZa.js";
5
- import { $ as respondWithObject, $t as SendActivityError, A as InboxChallengePolicy, At as CollectionCursor, B as createFederation, Bt as NodeInfoDispatcher, C as FederationBenchmarkOptions, Ct as parseCircuitBreakerKvState, D as FederationStartQueueOptions, Dt as ActorKeyPairsDispatcher, E as FederationOptions, Et as ActorHandleMapper, F as PortableInboxForwardingOptions, Ft as HashlinkMediaDispatcher, G as TaskEnqueueOptions, Gt as OutboxListenerErrorHandler, H as createFederationBuilder, Ht as ObjectDispatcher, I as Rfc6570Expression, It as HashlinkMediaRequest, J as CreateExponentialBackoffPolicyOptions, Jt as PortableCollectionOwnerMapper, K as TaskHandler, Kt as OutboxPermanentFailureHandler, L as FederationKvPrefixes, Lt as InboxErrorHandler, M as MediaUploaderSetters, Mt as CustomCollectionCounter, N as ObjectCallbackSetters, Nt as CustomCollectionCursor, O as IdempotencyKeyCallback, Ot as AuthorizePredicate, P as OutboxListenerSetters, Pt as CustomCollectionDispatcher, Q as RespondWithObjectOptions, Qt as WebFingerLinksDispatcher, R as FederationOrigin, Rt as InboxListener, S as Federation, St as normalizeCircuitBreakerOptions, T as FederationFetchOptions, Tt as ActorDispatcher, U as TaskDefinition, Ut as OutboxErrorHandler, V as Message, Vt as ObjectAuthorizePredicate, W as TaskDefinitionOptions, Wt as OutboxListener, X as RetryPolicy, Xt as UnverifiedActivityHandler, Y as RetryContext, Yt as SharedInboxKeyDispatcher, Z as createExponentialBackoffPolicy, Zt as UnverifiedActivityReason, _ as ActorCallbackSetters, _t as CircuitBreakerKvState, a as GetObjectOptions, an as InboxAuthentication, at as InProcessMessageQueue, b as CustomCollectionCallbackSetters, bt as CircuitBreakerStateChange, c as IsSignedByAudienceOptions, cn as InboxRequestOutcome, ct as MessageQueueDepth, d as ParseUriResult, dt as ParallelMessageQueue, en as SenderKeyPair, et as respondWithObjectIfAcceptable, f as PortableRequest, ft as CircuitBreaker, g as SendActivityOptionsForCollection, gt as CircuitBreakerFailurePolicy, h as SendActivityOptions, ht as CircuitBreakerCreateOptions, i as GetActorOptions, in as ActivityTransformer, it as isActorAuthenticated, j as InboxListenerSetters, jt as CollectionDispatcher, k as IdempotencyStrategy, kt as CollectionCounter, l as OutboxContext, ln as InboxRequestReport, lt as MessageQueueEnqueueOptions, m as RouteActivityOptions, mt as CircuitBreakerBeforeSendDecision, n as Context, nn as buildCollectionSynchronizationHeader, nt as InboxPrincipal, o as GetSignedKeyOptions, on as InboxJsonValue, ot as InProcessMessageQueueOptions, p as RequestContext, pt as CircuitBreakerActivityDrop, q as TaskRegistry, qt as PortableActorIdMapper, r as ForwardActivityOptions, rn as digest, rt as IsActorAuthenticatedOptions, s as InboxContext, sn as InboxRequestFinishedHandler, st as MessageQueue, t as ActorKeyPair, tn as PageItems, tt as InboxAuthenticationEvidence, u as ParseUriOptions, un as InboxListenerOptions, ut as MessageQueueListenOptions, v as CollectionCallbackSetters, vt as CircuitBreakerOptions, w as FederationBuilder, wt as ActorAliasMapper, x as Federatable, xt as NormalizedCircuitBreakerOptions, y as ConstructorWithTypeId, yt as CircuitBreakerState, z as FederationQueueOptions, zt as MediaUploaderCallback } from "./context-GlHrzdSP.js";
2
+ import { a as InboundService, c as OutboundService, d as Software, f as Usage, i as parseNodeInfo, l as Protocol, n as ParseNodeInfoOptions, o as JsonValue, p as nodeInfoToJson, r as getNodeInfo, s as NodeInfo, t as GetNodeInfoOptions, u as Services } from "./client-3InDZbba.js";
3
+ import { A as AcceptSignatureParameters, B as VerifyPortableObjectProofOptions, C as VerifyRequestDetailedResult, D as verifyRequest, E as signRequest, F as validateAcceptSignature, G as signObject, H as VerifyProofOptions, I as CreateProofOptions, J as verifyProof, K as verifyObject, L as SignObjectOptions, M as formatAcceptSignature, N as fulfillAcceptSignature, O as verifyRequestDetailed, P as parseAcceptSignature, R as VerifyObjectOptions, S as SignRequestOptions, T as VerifyRequestOptions, U as createProof, V as VerifyPortableObjectProofResult, W as hasProofLike, _ as InboxVerificationKey, a as KeyCache, b as HttpMessageSignaturesSpecDeterminer, c as fetchKeyDetailed, d as InboxProofPolicyFailureReason, f as InboxSignatureCheck, g as InboxVerificationFailureReason, h as InboxVerificationAttempt, i as FetchKeyResult, j as FulfillAcceptSignatureResult, k as AcceptSignatureMember, l as generateCryptoKeyPair, m as InboxSignatureIdentity, n as FetchKeyErrorResult, o as exportJwk, p as InboxSignatureFailureReason, q as verifyPortableObjectProof, r as FetchKeyOptions, s as fetchKey, t as FetchKeyDetailedResult, u as importJwk, w as VerifyRequestFailureReason, x as Rfc9421SignRequestOptions, y as HttpMessageSignaturesSpec, z as VerifyPortableObjectProofFailureReason } from "./key-DbLNT-vA.js";
4
+ import { a as VerifySignatureOptions, c as detachSignature, d as verifyJsonLd, f as verifySignature, g as getKeyOwner, h as doesActorOwnKey, i as VerifyJsonLdOptions, l as hasSignatureLike, m as GetKeyOwnerOptions, o as attachSignature, p as DoesActorOwnKeyOptions, r as SignJsonLdOptions, s as createSignature, t as CreateSignatureOptions, u as signJsonLd } from "./ld-Inagww4R.js";
5
+ import { $ as respondWithObject, $t as SendActivityError, A as InboxChallengePolicy, At as CollectionCursor, B as createFederation, Bt as NodeInfoDispatcher, C as FederationBenchmarkOptions, Ct as parseCircuitBreakerKvState, D as FederationStartQueueOptions, Dt as ActorKeyPairsDispatcher, E as FederationOptions, Et as ActorHandleMapper, F as PortableInboxForwardingOptions, Ft as HashlinkMediaDispatcher, G as TaskEnqueueOptions, Gt as OutboxListenerErrorHandler, H as createFederationBuilder, Ht as ObjectDispatcher, I as Rfc6570Expression, It as HashlinkMediaRequest, J as CreateExponentialBackoffPolicyOptions, Jt as PortableCollectionOwnerMapper, K as TaskHandler, Kt as OutboxPermanentFailureHandler, L as FederationKvPrefixes, Lt as InboxErrorHandler, M as MediaUploaderSetters, Mt as CustomCollectionCounter, N as ObjectCallbackSetters, Nt as CustomCollectionCursor, O as IdempotencyKeyCallback, Ot as AuthorizePredicate, P as OutboxListenerSetters, Pt as CustomCollectionDispatcher, Q as RespondWithObjectOptions, Qt as WebFingerLinksDispatcher, R as FederationOrigin, Rt as InboxListener, S as Federation, St as normalizeCircuitBreakerOptions, T as FederationFetchOptions, Tt as ActorDispatcher, U as TaskDefinition, Ut as OutboxErrorHandler, V as Message, Vt as ObjectAuthorizePredicate, W as TaskDefinitionOptions, Wt as OutboxListener, X as RetryPolicy, Xt as UnverifiedActivityHandler, Y as RetryContext, Yt as SharedInboxKeyDispatcher, Z as createExponentialBackoffPolicy, Zt as UnverifiedActivityReason, _ as ActorCallbackSetters, _t as CircuitBreakerKvState, a as GetObjectOptions, an as InboxAuthentication, at as InProcessMessageQueue, b as CustomCollectionCallbackSetters, bt as CircuitBreakerStateChange, c as IsSignedByAudienceOptions, cn as InboxRequestOutcome, ct as MessageQueueDepth, d as ParseUriResult, dt as ParallelMessageQueue, en as SenderKeyPair, et as respondWithObjectIfAcceptable, f as PortableRequest, ft as CircuitBreaker, g as SendActivityOptionsForCollection, gt as CircuitBreakerFailurePolicy, h as SendActivityOptions, ht as CircuitBreakerCreateOptions, i as GetActorOptions, in as ActivityTransformer, it as isActorAuthenticated, j as InboxListenerSetters, jt as CollectionDispatcher, k as IdempotencyStrategy, kt as CollectionCounter, l as OutboxContext, ln as InboxRequestReport, lt as MessageQueueEnqueueOptions, m as RouteActivityOptions, mt as CircuitBreakerBeforeSendDecision, n as Context, nn as buildCollectionSynchronizationHeader, nt as InboxPrincipal, o as GetSignedKeyOptions, on as InboxJsonValue, ot as InProcessMessageQueueOptions, p as RequestContext, pt as CircuitBreakerActivityDrop, q as TaskRegistry, qt as PortableActorIdMapper, r as ForwardActivityOptions, rn as digest, rt as IsActorAuthenticatedOptions, s as InboxContext, sn as InboxRequestFinishedHandler, st as MessageQueue, t as ActorKeyPair, tn as PageItems, tt as InboxAuthenticationEvidence, u as ParseUriOptions, un as InboxListenerOptions, ut as MessageQueueListenOptions, v as CollectionCallbackSetters, vt as CircuitBreakerOptions, w as FederationBuilder, wt as ActorAliasMapper, x as Federatable, xt as NormalizedCircuitBreakerOptions, y as ConstructorWithTypeId, yt as CircuitBreakerState, z as FederationQueueOptions, zt as MediaUploaderCallback } from "./context-DQJE9YfH.js";
6
6
  import { a as MemoryKvStore, i as KvStoreSetOptions, n as KvStore, r as KvStoreListEntry, t as KvKey } from "./kv-B2mzK5tl.js";
7
7
  import { actorDehydrator, autoIdAssigner, getDefaultActivityTransformers } from "./compat/mod.js";
8
- import { a as RouterOptions, i as RouterError, n as handleWebFinger, o as RouterRouteResult, r as Router, t as WebFingerHandlerParameters } from "./mod-DjZfJj9R.js";
9
- import { i as verifyPortableObject, n as VerifyPortableObjectOptions, r as VerifyPortableObjectResult, t as VerifyPortableObjectFailureReason } from "./mod-BHQE-7WQ.js";
10
- import { n as getAuthenticatedDocumentLoader, t as kvCache } from "./mod-DkhfZC1u.js";
8
+ import { a as RouterOptions, i as RouterError, n as handleWebFinger, o as RouterRouteResult, r as Router, t as WebFingerHandlerParameters } from "./mod-CIeBgsOC.js";
9
+ import { i as verifyPortableObject, n as VerifyPortableObjectOptions, r as VerifyPortableObjectResult, t as VerifyPortableObjectFailureReason } from "./mod-B4kBw1-8.js";
10
+ import { n as getAuthenticatedDocumentLoader, t as kvCache } from "./mod-B7j30IQf.js";
11
11
  export * from "@fedify/vocab-runtime";
12
12
 
13
13
  //#region src/mod.d.ts
package/dist/mod.js CHANGED
@@ -3,11 +3,11 @@ import { URLPattern } from "urlpattern-polyfill";
3
3
  import "./rolldown-runtime-BC-Eo5Mj.js";
4
4
  import { n as autoIdAssigner, r as getDefaultActivityTransformers, t as actorDehydrator } from "./transformers-DAtXl_Kc.js";
5
5
  import "./compat/mod.js";
6
- import { F as hasSignatureLike, H as verifySignature, J as generateCryptoKeyPair, K as fetchKey, M as detachSignature, St as validateAcceptSignature, T as verifyProof, V as verifyJsonLd, W as exportJwk, Y as importJwk, _ as signObject, a as signRequest, bt as fulfillAcceptSignature, c as verifyRequestDetailed, h as hasProofLike, j as createSignature, k as attachSignature, p as createProof, q as fetchKeyDetailed, s as verifyRequest, x as verifyPortableObjectProof, xt as parseAcceptSignature, y as verifyObject, yt as formatAcceptSignature, z as signJsonLd } from "./http-BBr-VLil.js";
7
- import { a as respondWithObjectIfAcceptable, c as buildCollectionSynchronizationHeader, d as normalizeCircuitBreakerOptions, f as parseCircuitBreakerKvState, i as respondWithObject, l as digest, n as handleWebFinger, o as SendActivityError, p as createFederationBuilder, r as createExponentialBackoffPolicy, s as isActorAuthenticated, t as createFederation, u as CircuitBreaker } from "./middleware-P-AZEQMn.js";
8
- import { n as getNodeInfo, r as parseNodeInfo, t as nodeInfoToJson } from "./types-_S2_MeLF.js";
9
- import { n as doesActorOwnKey, r as getKeyOwner, t as verifyPortableObject } from "./portable-collection-DUlQ3s2M.js";
10
- import { n as getAuthenticatedDocumentLoader, t as kvCache } from "./kv-cache-U7uz5nx4.js";
6
+ import { F as hasSignatureLike, H as verifySignature, J as generateCryptoKeyPair, K as fetchKey, M as detachSignature, St as validateAcceptSignature, T as verifyProof, V as verifyJsonLd, W as exportJwk, Y as importJwk, _ as signObject, a as signRequest, bt as fulfillAcceptSignature, c as verifyRequestDetailed, h as hasProofLike, j as createSignature, k as attachSignature, p as createProof, q as fetchKeyDetailed, s as verifyRequest, x as verifyPortableObjectProof, xt as parseAcceptSignature, y as verifyObject, yt as formatAcceptSignature, z as signJsonLd } from "./http-ChXUU_3c.js";
7
+ import { a as respondWithObjectIfAcceptable, c as buildCollectionSynchronizationHeader, d as normalizeCircuitBreakerOptions, f as parseCircuitBreakerKvState, i as respondWithObject, l as digest, n as handleWebFinger, o as SendActivityError, p as createFederationBuilder, r as createExponentialBackoffPolicy, s as isActorAuthenticated, t as createFederation, u as CircuitBreaker } from "./middleware-BHb5toqA.js";
8
+ import { n as getNodeInfo, r as parseNodeInfo, t as nodeInfoToJson } from "./types-DUjZb4i6.js";
9
+ import { n as doesActorOwnKey, r as getKeyOwner, t as verifyPortableObject } from "./portable-collection-TmtpzD4E.js";
10
+ import { n as getAuthenticatedDocumentLoader, t as kvCache } from "./kv-cache-DQcte7ES.js";
11
11
  import { InProcessMessageQueue, MemoryKvStore, ParallelMessageQueue, Router, RouterError } from "./federation/mod.js";
12
12
  import "./nodeinfo/mod.js";
13
13
  import "./runtime/mod.js";