@fedify/fedify 2.5.0-dev.2619 → 2.5.0-dev.2664

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 (100) hide show
  1. package/README.md +1 -1
  2. package/dist/{builder-Dlad1NzZ.mjs → builder-CGJ-NXcZ.mjs} +2 -2
  3. package/dist/compat/transformers.test.mjs +1 -1
  4. package/dist/{compound-proof-BPor5rpc.mjs → compound-proof-CnzwOddk.mjs} +2 -2
  5. package/dist/{context-A-Nde3u-.mjs → context-LgGFFSz7.mjs} +1 -1
  6. package/dist/{deno-DhOes0kL.mjs → deno-eoFpPk7W.mjs} +1 -1
  7. package/dist/{dist-DJQM4u7i.mjs → dist-_geWsuaI.mjs} +1 -1
  8. package/dist/{docloader-BLKe4L-U.mjs → docloader-DwkipyL1.mjs} +2 -2
  9. package/dist/federation/builder.test.mjs +1 -1
  10. package/dist/federation/compound-fanout.test.mjs +5 -5
  11. package/dist/federation/handler-compound-proof.test.mjs +4 -4
  12. package/dist/federation/handler.test.mjs +5 -5
  13. package/dist/federation/hashlink-media.test.mjs +2 -2
  14. package/dist/federation/idempotency.test.mjs +2 -2
  15. package/dist/federation/inbox-actorless.test.mjs +5 -5
  16. package/dist/federation/inbox-report.test.mjs +5 -5
  17. package/dist/federation/inbox-view.test.mjs +1 -1
  18. package/dist/federation/inbox.test.mjs +1 -1
  19. package/dist/federation/metrics.test.mjs +1 -1
  20. package/dist/federation/middleware.test.mjs +16 -13
  21. package/dist/federation/mod.cjs +1 -1
  22. package/dist/federation/mod.js +1 -1
  23. package/dist/federation/mq.test.mjs +1 -1
  24. package/dist/federation/negotiation.test.mjs +1 -1
  25. package/dist/federation/outbound-capture.test.mjs +1 -1
  26. package/dist/federation/outbound-dispatch.test.mjs +1 -1
  27. package/dist/federation/outbound-document.test.mjs +1 -1
  28. package/dist/federation/outbound-provenance.test.mjs +2 -2
  29. package/dist/federation/outbound-report.test.mjs +5 -5
  30. package/dist/federation/outbound-workflow.test.mjs +1 -1
  31. package/dist/federation/outgoing-proof.test.mjs +7 -7
  32. package/dist/federation/portable-actor.test.mjs +3 -3
  33. package/dist/federation/portable-chain.test.mjs +3 -3
  34. package/dist/federation/portable-collection.test.mjs +5 -5
  35. package/dist/federation/portable-delivery.test.mjs +2 -2
  36. package/dist/federation/portable-gateway-keys.test.mjs +6 -6
  37. package/dist/federation/portable-inbox.test.mjs +4 -4
  38. package/dist/federation/portable-parse-uri.test.mjs +1 -1
  39. package/dist/federation/portable-route-activity.test.mjs +2 -2
  40. package/dist/federation/portable.test.mjs +3 -3
  41. package/dist/federation/send.test.mjs +4 -4
  42. package/dist/federation/tasks/enqueue.test.mjs +3 -3
  43. package/dist/federation/tasks/tasks.test.mjs +4 -4
  44. package/dist/federation/temporal.test.mjs +1 -1
  45. package/dist/federation/webfinger.test.mjs +2 -2
  46. package/dist/{federation-C7hr1d70.cjs → federation-FbwcnRHg.cjs} +13 -9
  47. package/dist/{http-DdL5DIEg.js → http-CWn0K5jD.js} +2 -2
  48. package/dist/{http-DJ0rqMZp.cjs → http-DbvOPsFZ.cjs} +2 -2
  49. package/dist/{http-Dl2oG-DY.mjs → http-l1zKGCll.mjs} +4 -4
  50. package/dist/{inbox-CnD0d-M3.mjs → inbox-CWX3EBTO.mjs} +2 -2
  51. package/dist/{inbox-view-DE-qXPd4.mjs → inbox-view-DkPCF71K.mjs} +1 -1
  52. package/dist/{kv-cache-2qRQ6ul-.mjs → kv-cache-8eJh4Xum.mjs} +1 -1
  53. package/dist/{kv-cache-DY6N3JNe.cjs → kv-cache-B-fOrhb-.cjs} +1 -1
  54. package/dist/{kv-cache-C35JVxTl.js → kv-cache-BC837EqC.js} +1 -1
  55. package/dist/{ld-rNrQkbOP.mjs → ld-Cdt8qD-r.mjs} +3 -3
  56. package/dist/{metrics-M-q8sKlg.mjs → metrics-BnfvSPj9.mjs} +1 -1
  57. package/dist/{middleware-B6SGVMRh.mjs → middleware-CwnXJze2.mjs} +1 -1
  58. package/dist/{middleware-DTtxkZcU.mjs → middleware-D_W_LdJN.mjs} +25 -21
  59. package/dist/{middleware-DwSDtJqA.js → middleware-n2UrG62B.js} +13 -9
  60. package/dist/mod.cjs +4 -4
  61. package/dist/mod.js +4 -4
  62. package/dist/{negotiation-CCocWT_N.mjs → negotiation-BAKO9nih.mjs} +1 -1
  63. package/dist/nodeinfo/handler.test.mjs +2 -2
  64. package/dist/{owner-DXBLhiOp.mjs → owner-DukEQnv3.mjs} +3 -3
  65. package/dist/{portable-collection-BIU6ofW8.js → portable-collection-DQhIkX5a.js} +1 -1
  66. package/dist/{portable-collection-uvJgxij0.cjs → portable-collection-DseoiPPj.cjs} +1 -1
  67. package/dist/{portable-collection-Bdm4GVrg.mjs → portable-collection-OHaqa11n.mjs} +2 -2
  68. package/dist/{portable-key-BWWlhf-H.mjs → portable-key-BkOLJxVz.mjs} +1 -1
  69. package/dist/{proof-D0_8PUaM.mjs → proof-Y7omSVvc.mjs} +3 -3
  70. package/dist/{send-B5Q2gFPx.mjs → send-ccQynabr.mjs} +3 -3
  71. package/dist/sig/compound-proof-discovery.test.mjs +1 -1
  72. package/dist/sig/compound-proof-producer.test.mjs +1 -1
  73. package/dist/sig/compound-proof-verification.test.mjs +2 -2
  74. package/dist/sig/compound-proof.test.mjs +2 -2
  75. package/dist/sig/http.test.mjs +3 -3
  76. package/dist/sig/key.test.mjs +1 -1
  77. package/dist/sig/ld.test.mjs +1 -1
  78. package/dist/sig/mitra-receive-interop.test.mjs +4 -4
  79. package/dist/sig/mitra-send-interop.test.mjs +3 -3
  80. package/dist/sig/mod.cjs +2 -2
  81. package/dist/sig/mod.js +2 -2
  82. package/dist/sig/owner.test.mjs +1 -1
  83. package/dist/sig/portable-collection.test.mjs +1 -1
  84. package/dist/sig/portable-interop.test.mjs +3 -3
  85. package/dist/sig/portable-key.test.mjs +5 -5
  86. package/dist/sig/proof.test.mjs +3 -3
  87. package/dist/sig/tootik-request-interop.test.mjs +4 -4
  88. package/dist/sig/tootik-send-interop.test.mjs +3 -3
  89. package/dist/sig/verification.test.mjs +3 -3
  90. package/dist/{tasks-IG3pHfvZ.mjs → tasks-BCUmQbbz.mjs} +1 -1
  91. package/dist/{temporal-T_o6VW2J.mjs → temporal-f_K4lAVR.mjs} +1 -1
  92. package/dist/testing/context.test.mjs +1 -1
  93. package/dist/testing/kv.test.mjs +3 -3
  94. package/dist/testing/mod.mjs +4 -4
  95. package/dist/{testing-_9kJHvqh.mjs → testing-vrnD5Uaa.mjs} +3 -3
  96. package/dist/utils/docloader.test.mjs +3 -3
  97. package/dist/utils/kv-cache.test.mjs +1 -1
  98. package/dist/utils/mod.cjs +1 -1
  99. package/dist/utils/mod.js +1 -1
  100. package/package.json +7 -7
@@ -2,18 +2,18 @@ import { Temporal } from "temporal-polyfill";
2
2
  import "urlpattern-polyfill";
3
3
  globalThis.addEventListener = () => {};
4
4
  import { t as esm_default } from "../esm-BHXXx4Wx.mjs";
5
- import { r as createRequestContext, t as createInboxContext } from "../context-A-Nde3u-.mjs";
5
+ import { r as createRequestContext, t as createInboxContext } from "../context-LgGFFSz7.mjs";
6
6
  import { t as MemoryKvStore } from "../kv-DCHkaJ9-.mjs";
7
7
  import { t as assertEquals } from "../assert_equals-Z6IcEbWU.mjs";
8
8
  import "../std__assert-DvMDRPes.mjs";
9
9
  import { t as assertRejects } from "../assert_rejects-CTptdYck.mjs";
10
10
  import { r as getVerifiedKeyOwnerEvidence } from "../key-owner-evidence-APB6NpSk.mjs";
11
- import { m as signJsonLd } from "../ld-rNrQkbOP.mjs";
12
- import { m as verifyRequestDetailed, p as verifyRequest, u as signRequest } from "../http-Dl2oG-DY.mjs";
11
+ import { m as signJsonLd } from "../ld-Cdt8qD-r.mjs";
12
+ import { m as verifyRequestDetailed, p as verifyRequest, u as signRequest } from "../http-l1zKGCll.mjs";
13
13
  import { a as rsaPrivateKey3, i as rsaPrivateKey2, n as ed25519PrivateKey, r as ed25519PublicKey, s as rsaPublicKey2 } from "../keys-DIJNHW-Y.mjs";
14
- import { n as getAuthenticatedDocumentLoader } from "../docloader-BLKe4L-U.mjs";
15
- import { f as handleInbox, n as FederationImpl, o as createFederation } from "../middleware-DTtxkZcU.mjs";
16
- import { n as getKeyOwner, t as doesActorOwnKey } from "../owner-DXBLhiOp.mjs";
14
+ import { n as getAuthenticatedDocumentLoader } from "../docloader-DwkipyL1.mjs";
15
+ import { f as handleInbox, n as FederationImpl, o as createFederation } from "../middleware-D_W_LdJN.mjs";
16
+ import { n as getKeyOwner, t as doesActorOwnKey } from "../owner-DukEQnv3.mjs";
17
17
  import { t as ActivityListenerSet } from "../activity-listener-CELFAodc.mjs";
18
18
  import { t as KvKeyCache } from "../keycache-N2opu4-3.mjs";
19
19
  import { Create, CryptographicKey, Person } from "@fedify/vocab";
@@ -9,11 +9,11 @@ import { t as assertThrows } from "../assert_throws-BYITOvPO.mjs";
9
9
  import "../std__assert-DvMDRPes.mjs";
10
10
  import { t as assertStrictEquals } from "../assert_strict_equals-CYvBmkpC.mjs";
11
11
  import { t as assert } from "../assert-D1Eafmd_.mjs";
12
- import { m as signJsonLd } from "../ld-rNrQkbOP.mjs";
13
- import { s as signObject } from "../proof-D0_8PUaM.mjs";
14
- import { m as verifyRequestDetailed, u as signRequest } from "../http-Dl2oG-DY.mjs";
12
+ import { m as signJsonLd } from "../ld-Cdt8qD-r.mjs";
13
+ import { s as signObject } from "../proof-Y7omSVvc.mjs";
14
+ import { m as verifyRequestDetailed, u as signRequest } from "../http-l1zKGCll.mjs";
15
15
  import { a as rsaPrivateKey3, c as rsaPublicKey3, i as rsaPrivateKey2, n as ed25519PrivateKey, r as ed25519PublicKey, s as rsaPublicKey2 } from "../keys-DIJNHW-Y.mjs";
16
- import { M as observeOutboundBroadcast, _ as coversDelivery, o as createFederation, v as forwardPortableInboxActivity, y as resolvePortableInboxForwardingOptions } from "../middleware-DTtxkZcU.mjs";
16
+ import { M as observeOutboundBroadcast, _ as coversDelivery, o as createFederation, v as forwardPortableInboxActivity, y as resolvePortableInboxForwardingOptions } from "../middleware-D_W_LdJN.mjs";
17
17
  import { Create, CryptographicKey, Follow, Note, Person, Tombstone } from "@fedify/vocab";
18
18
  import { exportDidKey, formatIri, parseIri } from "@fedify/vocab-runtime";
19
19
  import { createTestTracerProvider, mockDocumentLoader, test } from "@fedify/fixture";
@@ -7,7 +7,7 @@ import { t as assertFalse } from "../assert_false-CPdRnc3E.mjs";
7
7
  import "../std__assert-DvMDRPes.mjs";
8
8
  import { t as assert } from "../assert-D1Eafmd_.mjs";
9
9
  import { r as ed25519PublicKey } from "../keys-DIJNHW-Y.mjs";
10
- import { o as createFederation } from "../middleware-DTtxkZcU.mjs";
10
+ import { o as createFederation } from "../middleware-D_W_LdJN.mjs";
11
11
  import { Note, Object as Object$1, Person } from "@fedify/vocab";
12
12
  import { exportDidKey, parseIri } from "@fedify/vocab-runtime";
13
13
  import { test } from "@fedify/fixture";
@@ -6,9 +6,9 @@ import { t as assertEquals } from "../assert_equals-Z6IcEbWU.mjs";
6
6
  import { t as assertFalse } from "../assert_false-CPdRnc3E.mjs";
7
7
  import "../std__assert-DvMDRPes.mjs";
8
8
  import { t as assert } from "../assert-D1Eafmd_.mjs";
9
- import { s as signObject } from "../proof-D0_8PUaM.mjs";
9
+ import { s as signObject } from "../proof-Y7omSVvc.mjs";
10
10
  import { n as ed25519PrivateKey, r as ed25519PublicKey } from "../keys-DIJNHW-Y.mjs";
11
- import { o as createFederation } from "../middleware-DTtxkZcU.mjs";
11
+ import { o as createFederation } from "../middleware-D_W_LdJN.mjs";
12
12
  import { Create, Note } from "@fedify/vocab";
13
13
  import { exportDidKey, formatIri, parseIri, toCompatibleEf61Id } from "@fedify/vocab-runtime";
14
14
  import { mockDocumentLoader, test } from "@fedify/fixture";
@@ -8,10 +8,10 @@ import { t as assertThrows } from "../assert_throws-BYITOvPO.mjs";
8
8
  import "../std__assert-DvMDRPes.mjs";
9
9
  import { t as assertStrictEquals } from "../assert_strict_equals-CYvBmkpC.mjs";
10
10
  import { t as assert } from "../assert-D1Eafmd_.mjs";
11
- import { d as verifyPortableObjectProof, s as signObject } from "../proof-D0_8PUaM.mjs";
12
- import { u as signRequest } from "../http-Dl2oG-DY.mjs";
11
+ import { d as verifyPortableObjectProof, s as signObject } from "../proof-Y7omSVvc.mjs";
12
+ import { u as signRequest } from "../http-l1zKGCll.mjs";
13
13
  import { a as rsaPrivateKey3, c as rsaPublicKey3, i as rsaPrivateKey2, n as ed25519PrivateKey, r as ed25519PublicKey, s as rsaPublicKey2 } from "../keys-DIJNHW-Y.mjs";
14
- import { b as PORTABLE_OBJECT_CONTENT_TYPE, o as createFederation } from "../middleware-DTtxkZcU.mjs";
14
+ import { b as PORTABLE_OBJECT_CONTENT_TYPE, o as createFederation } from "../middleware-D_W_LdJN.mjs";
15
15
  import { configure, reset } from "@logtape/logtape";
16
16
  import { Collection, Create, Note, Object as Object$1, PUBLIC_COLLECTION, Person, Tombstone, lookupObject } from "@fedify/vocab";
17
17
  import { exportDidKey, formatIri, parseIri, toCompatibleEf61Id } from "@fedify/vocab-runtime";
@@ -11,10 +11,10 @@ import { t as assertNotEquals } from "../assert_not_equals-CpPK2t89.mjs";
11
11
  import "../std__assert-DvMDRPes.mjs";
12
12
  import { t as assertRejects } from "../assert_rejects-CTptdYck.mjs";
13
13
  import { t as assert } from "../assert-D1Eafmd_.mjs";
14
- import { p as verifyRequest } from "../http-Dl2oG-DY.mjs";
14
+ import { p as verifyRequest } from "../http-l1zKGCll.mjs";
15
15
  import { i as rsaPrivateKey2, n as ed25519PrivateKey, s as rsaPublicKey2, t as ed25519Multikey } from "../keys-DIJNHW-Y.mjs";
16
- import { t as doesActorOwnKey } from "../owner-DXBLhiOp.mjs";
17
- import { i as sendActivity, n as extractInboxes, r as fetchWithValidatedRedirects, t as SendActivityError } from "../send-B5Q2gFPx.mjs";
16
+ import { t as doesActorOwnKey } from "../owner-DukEQnv3.mjs";
17
+ import { i as sendActivity, n as extractInboxes, r as fetchWithValidatedRedirects, t as SendActivityError } from "../send-ccQynabr.mjs";
18
18
  import { t as FedifySpanExporter } from "../exporter-DVG68ozH.mjs";
19
19
  import { configure, getLogger, reset, withContext } from "@logtape/logtape";
20
20
  import { Activity, Application, Endpoints, Group, Person, Service } from "@fedify/vocab";
@@ -1113,7 +1113,7 @@ async function captureLogs(fn) {
1113
1113
  return records;
1114
1114
  }
1115
1115
  function getCancelFailureUrls(records) {
1116
- return records.filter((r) => r.rawMessage === "Failed to cancel the response body from {url}: {error}").map((r) => r.properties.url);
1116
+ return records.flatMap((r) => r.rawMessage === "Failed to cancel the response body from {url}: {error}" ? [r.properties.url] : []);
1117
1117
  }
1118
1118
  test("fetchWithValidatedRedirects() logs a redirect body failing to cancel and follows the redirect", async (t) => {
1119
1119
  const url = "https://example.com/lifecycle/cancel-failure";
@@ -2,9 +2,9 @@ import { Temporal } from "temporal-polyfill";
2
2
  import "urlpattern-polyfill";
3
3
  globalThis.addEventListener = () => {};
4
4
  import { t as MemoryKvStore } from "../../kv-DCHkaJ9-.mjs";
5
- import { a as numberSchema, i as makeSchema, n as baseOptions, o as stringSchema, t as MockQueue } from "../../tasks-IG3pHfvZ.mjs";
6
- import "../../testing-_9kJHvqh.mjs";
7
- import { o as createFederation } from "../../middleware-DTtxkZcU.mjs";
5
+ import { a as numberSchema, i as makeSchema, n as baseOptions, o as stringSchema, t as MockQueue } from "../../tasks-BCUmQbbz.mjs";
6
+ import "../../testing-vrnD5Uaa.mjs";
7
+ import { o as createFederation } from "../../middleware-D_W_LdJN.mjs";
8
8
  import { n as ParallelMessageQueue } from "../../mq-eF96QxUT.mjs";
9
9
  import { configure, reset } from "@logtape/logtape";
10
10
  import { delay } from "es-toolkit";
@@ -2,10 +2,10 @@ import { Temporal } from "temporal-polyfill";
2
2
  import "urlpattern-polyfill";
3
3
  globalThis.addEventListener = () => {};
4
4
  import { t as MemoryKvStore } from "../../kv-DCHkaJ9-.mjs";
5
- import { a as numberSchema, i as makeSchema, n as baseOptions, o as stringSchema, t as MockQueue } from "../../tasks-IG3pHfvZ.mjs";
6
- import "../../testing-_9kJHvqh.mjs";
7
- import { r as createFederationBuilder } from "../../builder-Dlad1NzZ.mjs";
8
- import { o as createFederation } from "../../middleware-DTtxkZcU.mjs";
5
+ import { a as numberSchema, i as makeSchema, n as baseOptions, o as stringSchema, t as MockQueue } from "../../tasks-BCUmQbbz.mjs";
6
+ import "../../testing-vrnD5Uaa.mjs";
7
+ import { r as createFederationBuilder } from "../../builder-CGJ-NXcZ.mjs";
8
+ import { o as createFederation } from "../../middleware-D_W_LdJN.mjs";
9
9
  import { t as TaskCodec } from "../../codec-C6rTrpIp.mjs";
10
10
  import { t as InProcessMessageQueue } from "../../mq-eF96QxUT.mjs";
11
11
  import { W3CTraceContextPropagator } from "@opentelemetry/core";
@@ -4,7 +4,7 @@ globalThis.addEventListener = () => {};
4
4
  import { t as assertFalse } from "../assert_false-CPdRnc3E.mjs";
5
5
  import "../std__assert-DvMDRPes.mjs";
6
6
  import { t as assert } from "../assert-D1Eafmd_.mjs";
7
- import { t as hasMalformedKnownTemporalLiteral } from "../temporal-T_o6VW2J.mjs";
7
+ import { t as hasMalformedKnownTemporalLiteral } from "../temporal-f_K4lAVR.mjs";
8
8
  import { test } from "@fedify/fixture";
9
9
  //#region src/federation/temporal.test.ts
10
10
  test("hasMalformedKnownTemporalLiteral() detects expanded proof timestamps", async () => {
@@ -1,12 +1,12 @@
1
1
  import { Temporal } from "temporal-polyfill";
2
2
  import "urlpattern-polyfill";
3
3
  globalThis.addEventListener = () => {};
4
- import { r as createRequestContext } from "../context-A-Nde3u-.mjs";
4
+ import { r as createRequestContext } from "../context-LgGFFSz7.mjs";
5
5
  import { t as MemoryKvStore } from "../kv-DCHkaJ9-.mjs";
6
6
  import { t as assertEquals } from "../assert_equals-Z6IcEbWU.mjs";
7
7
  import { t as assertNotEquals } from "../assert_not_equals-CpPK2t89.mjs";
8
8
  import "../std__assert-DvMDRPes.mjs";
9
- import { o as createFederation, s as handleWebFinger } from "../middleware-DTtxkZcU.mjs";
9
+ import { o as createFederation, s as handleWebFinger } from "../middleware-D_W_LdJN.mjs";
10
10
  import { Image, Link, Person, Tombstone } from "@fedify/vocab";
11
11
  import { parseIri } from "@fedify/vocab-runtime";
12
12
  import { createTestMeterProvider, test } from "@fedify/fixture";
@@ -1,10 +1,10 @@
1
1
  const { URLPattern } = require("urlpattern-polyfill");
2
2
  const require_rolldown_runtime = require("./rolldown-runtime-Dmm3t92W.cjs");
3
3
  const require_transformers = require("./transformers-BalCrSsr.cjs");
4
- const require_http = require("./http-DJ0rqMZp.cjs");
4
+ const require_http = require("./http-DbvOPsFZ.cjs");
5
5
  const require_types = require("./types-hKCCjii0.cjs");
6
- const require_portable_collection = require("./portable-collection-uvJgxij0.cjs");
7
- const require_kv_cache = require("./kv-cache-DY6N3JNe.cjs");
6
+ const require_portable_collection = require("./portable-collection-DseoiPPj.cjs");
7
+ const require_kv_cache = require("./kv-cache-B-fOrhb-.cjs");
8
8
  let _logtape_logtape = require("@logtape/logtape");
9
9
  let _fedify_vocab_runtime = require("@fedify/vocab-runtime");
10
10
  let _fedify_uri_template = require("@fedify/uri-template");
@@ -4545,7 +4545,7 @@ function compareSpecs(a, b) {
4545
4545
  function isQuality(spec) {
4546
4546
  return spec.q > 0;
4547
4547
  }
4548
- const simpleMediaTypeRegExp = /^\s*([^\s\/;]+)\/([^;\s]+)\s*(?:;(.*))?$/;
4548
+ const simpleMediaTypeRegExp = /^\s*([^\s/;]+)\/([^;\s]+)\s*(?:;(.*))?$/;
4549
4549
  function splitKeyValuePair(str) {
4550
4550
  const [key, value] = str.split("=");
4551
4551
  return [key.toLowerCase(), value];
@@ -10880,7 +10880,10 @@ var FederationImpl = class extends FederationBuilderImpl {
10880
10880
  "fedify",
10881
10881
  "federation",
10882
10882
  "benchmark"
10883
- ]).warn(`Fedify benchmarkMode is enabled; ${relaxationSummary}. Benchmark endpoints are active and must not be used in production.`, { relaxations });
10883
+ ]).warn("Fedify benchmarkMode is enabled; {relaxationSummary}. Benchmark endpoints are active and must not be used in production.", {
10884
+ relaxations,
10885
+ relaxationSummary
10886
+ });
10884
10887
  }
10885
10888
  this.benchmarkMode = benchmarkMode;
10886
10889
  this.benchmarkTriggerOptions = benchmarkMode ? getBenchmarkTriggerOptions(benchmarkOptions) : {};
@@ -12687,7 +12690,7 @@ var FederationImpl = class extends FederationBuilderImpl {
12687
12690
  queueMessageId: m.message.id
12688
12691
  }], "outbox", enqueue));
12689
12692
  require_http.recordOutboxEnqueue(this.meterProvider, outboxQueue, m.message);
12690
- }))).filter((r) => r.status === "rejected").map((r) => r.reason);
12693
+ }))).flatMap((r) => r.status === "rejected" ? [r.reason] : []);
12691
12694
  if (errors.length > 0) {
12692
12695
  logger.error("Failed to enqueue activity {activityId} to send later: {errors}", {
12693
12696
  activityId: activity.id.href,
@@ -14106,9 +14109,10 @@ var ContextImpl = class ContextImpl {
14106
14109
  identifierPromise = identifier instanceof Promise ? identifier : Promise.resolve(identifier);
14107
14110
  }
14108
14111
  } else identifierPromise = Promise.resolve(identity.identifier);
14109
- return identifierPromise.then((identifier) => {
14112
+ return identifierPromise.then(async (identifier) => {
14110
14113
  if (identifier == null) return this.documentLoader;
14111
- return this.getRsaKeyPairFromIdentifier(identifier).then((pair) => pair == null ? this.documentLoader : this.federation.authenticatedDocumentLoaderFactory(pair));
14114
+ const pair = await this.getRsaKeyPairFromIdentifier(identifier);
14115
+ return pair == null ? this.documentLoader : this.federation.authenticatedDocumentLoaderFactory(pair);
14112
14116
  });
14113
14117
  }
14114
14118
  return this.federation.authenticatedDocumentLoaderFactory(identity);
@@ -15008,7 +15012,7 @@ async function forwardActivityInternal(ctx, loggerCategory, forwarder, recipient
15008
15012
  queueMessageId: m.message.id
15009
15013
  }], "outbox", () => outboxQueue.enqueue(m.message, { orderingKey: m.orderingKey })));
15010
15014
  require_http.recordOutboxEnqueue(ctx.federation.meterProvider, outboxQueue, m.message);
15011
- }))).filter((r) => r.status === "rejected").map((r) => r.reason);
15015
+ }))).flatMap((r) => r.status === "rejected" ? [r.reason] : []);
15012
15016
  if (errors.length > 0) {
15013
15017
  logger.error("Failed to enqueue activity {activityId} to forward later:\n{errors}", {
15014
15018
  activityId: ctx.activityId,
@@ -15,7 +15,7 @@ import serialize from "json-canon";
15
15
  import { ATTR_HTTP_REQUEST_HEADER, ATTR_HTTP_REQUEST_METHOD, ATTR_URL_FULL } from "@opentelemetry/semantic-conventions";
16
16
  //#region deno.json
17
17
  var name = "@fedify/fedify";
18
- var version = "2.5.0-dev.2619+88aa7efd";
18
+ var version = "2.5.0-dev.2664+4790a72e";
19
19
  //#endregion
20
20
  //#region src/sig/portable-key-id.ts
21
21
  const COMPATIBLE_KEY_ID_PATH_PATTERN = /^\/\.well-known\/apgateway\/did(?::|%3A)/i;
@@ -2455,7 +2455,7 @@ async function fetchKeyInternal(keyId, cls, options = {}) {
2455
2455
  response: error.response.clone()
2456
2456
  } : { error: error instanceof Error ? error : new Error(String(error)) };
2457
2457
  } catch {
2458
- result = { error: error instanceof Error ? error : /* @__PURE__ */ new Error() };
2458
+ result = { error: error instanceof Error ? error : /* @__PURE__ */ new Error("Unknown verification error") };
2459
2459
  }
2460
2460
  check.reason = {
2461
2461
  type: "keyFetchError",
@@ -17,7 +17,7 @@ json_canon = require_rolldown_runtime.__toESM(json_canon, 1);
17
17
  let _opentelemetry_semantic_conventions = require("@opentelemetry/semantic-conventions");
18
18
  //#region deno.json
19
19
  var name = "@fedify/fedify";
20
- var version = "2.5.0-dev.2619+88aa7efd";
20
+ var version = "2.5.0-dev.2664+4790a72e";
21
21
  //#endregion
22
22
  //#region src/sig/portable-key-id.ts
23
23
  const COMPATIBLE_KEY_ID_PATH_PATTERN = /^\/\.well-known\/apgateway\/did(?::|%3A)/i;
@@ -6023,7 +6023,7 @@ async function fetchKeyInternal(keyId, cls, options = {}) {
6023
6023
  response: error.response.clone()
6024
6024
  } : { error: error instanceof Error ? error : new Error(String(error)) };
6025
6025
  } catch {
6026
- result = { error: error instanceof Error ? error : /* @__PURE__ */ new Error() };
6026
+ result = { error: error instanceof Error ? error : /* @__PURE__ */ new Error("Unknown verification error") };
6027
6027
  }
6028
6028
  check.reason = {
6029
6029
  type: "keyFetchError",
@@ -3,12 +3,12 @@ import "urlpattern-polyfill";
3
3
  globalThis.addEventListener = () => {};
4
4
  import { m as parseKeyIdString } from "./portable-key-id-Ca30-hOa.mjs";
5
5
  import { a as verificationObservation, i as triedKey, n as observeCheck, t as observeAttempt } from "./verification-Dpfcw8ml.mjs";
6
- import { n as version, t as name } from "./deno-DhOes0kL.mjs";
7
- import { n as getDurationMs, r as getFederationMetrics, s as measureSignatureKeyFetch } from "./metrics-M-q8sKlg.mjs";
6
+ import { n as version, t as name } from "./deno-eoFpPk7W.mjs";
7
+ import { n as getDurationMs, r as getFederationMetrics, s as measureSignatureKeyFetch } from "./metrics-BnfvSPj9.mjs";
8
8
  import { i as validateAcceptSignature, n as fulfillAcceptSignature, r as parseAcceptSignature } from "./accept-CPVqki78.mjs";
9
9
  import { a as promoteKeyOwnerEvidence } from "./key-owner-evidence-APB6NpSk.mjs";
10
- import { D as validateCryptoKey, b as bypassKeyCacheReads, w as fetchKeyDetailed } from "./ld-rNrQkbOP.mjs";
11
- import { n as resolvePortableActorKey, r as verifyPortableGatewayKeyDocument } from "./portable-key-BWWlhf-H.mjs";
10
+ import { D as validateCryptoKey, b as bypassKeyCacheReads, w as fetchKeyDetailed } from "./ld-Cdt8qD-r.mjs";
11
+ import { n as resolvePortableActorKey, r as verifyPortableGatewayKeyDocument } from "./portable-key-BkOLJxVz.mjs";
12
12
  import { getLogger } from "@logtape/logtape";
13
13
  import { CryptographicKey } from "@fedify/vocab";
14
14
  import { SpanStatusCode, trace } from "@opentelemetry/api";
@@ -3,8 +3,8 @@ import "urlpattern-polyfill";
3
3
  globalThis.addEventListener = () => {};
4
4
  import { t as getAuthenticationOrigin } from "./portable-key-id-Ca30-hOa.mjs";
5
5
  import { o as serializeAuthentication, r as getEffectivePrincipals } from "./inbox-authentication-CgonVRkg.mjs";
6
- import { n as version, t as name } from "./deno-DhOes0kL.mjs";
7
- import { g as recordInboxActivity, n as getDurationMs, r as getFederationMetrics } from "./metrics-M-q8sKlg.mjs";
6
+ import { n as version, t as name } from "./deno-eoFpPk7W.mjs";
7
+ import { g as recordInboxActivity, n as getDurationMs, r as getFederationMetrics } from "./metrics-BnfvSPj9.mjs";
8
8
  import { getLogger } from "@logtape/logtape";
9
9
  import { getTypeId } from "@fedify/vocab";
10
10
  import { SpanKind, SpanStatusCode, context, propagation, trace } from "@opentelemetry/api";
@@ -1,7 +1,7 @@
1
1
  import "temporal-polyfill";
2
2
  import "urlpattern-polyfill";
3
3
  globalThis.addEventListener = () => {};
4
- import { c as getNormalizationContextLoader, p as markEffectiveContextLoader, s as detachSignature, y as wrapContextLoaderForJsonLd } from "./ld-rNrQkbOP.mjs";
4
+ import { c as getNormalizationContextLoader, p as markEffectiveContextLoader, s as detachSignature, y as wrapContextLoaderForJsonLd } from "./ld-Cdt8qD-r.mjs";
5
5
  import { preloadedContexts } from "@fedify/vocab-runtime";
6
6
  import { encodeHex } from "byte-encodings/hex";
7
7
  import jsonld from "@fedify/vocab-runtime/jsonld";
@@ -1,7 +1,7 @@
1
1
  import { Temporal } from "temporal-polyfill";
2
2
  import { URLPattern } from "urlpattern-polyfill";
3
3
  globalThis.addEventListener = () => {};
4
- import { p as recordDocumentCache } from "./metrics-M-q8sKlg.mjs";
4
+ import { p as recordDocumentCache } from "./metrics-BnfvSPj9.mjs";
5
5
  import { getLogger } from "@logtape/logtape";
6
6
  import { preloadedContexts } from "@fedify/vocab-runtime";
7
7
  //#region src/utils/kv-cache.ts
@@ -1,5 +1,5 @@
1
1
  const { URLPattern } = require("urlpattern-polyfill");
2
- const require_http = require("./http-DJ0rqMZp.cjs");
2
+ const require_http = require("./http-DbvOPsFZ.cjs");
3
3
  let _logtape_logtape = require("@logtape/logtape");
4
4
  let _fedify_vocab_runtime = require("@fedify/vocab-runtime");
5
5
  let es_toolkit = require("es-toolkit");
@@ -1,6 +1,6 @@
1
1
  import { Temporal } from "temporal-polyfill";
2
2
  import { URLPattern } from "urlpattern-polyfill";
3
- import { X as validateCryptoKey, dt as recordDocumentCache, t as doubleKnockScoped } from "./http-DdL5DIEg.js";
3
+ import { X as validateCryptoKey, dt as recordDocumentCache, t as doubleKnockScoped } from "./http-CWn0K5jD.js";
4
4
  import { getLogger } from "@logtape/logtape";
5
5
  import { FetchError, UrlError, createActivityPubRequest, getRemoteDocument, logRequest, preloadedContexts, resolveDocumentLoaderTimeout, withDocumentLoaderTimeout } from "@fedify/vocab-runtime";
6
6
  import { curry } from "es-toolkit";
@@ -3,8 +3,8 @@ import "urlpattern-polyfill";
3
3
  globalThis.addEventListener = () => {};
4
4
  import { c as isPortableActorDocument, d as isPortableUri, l as isPortableId, m as parseKeyIdString, s as isCompatibleKeyId } from "./portable-key-id-Ca30-hOa.mjs";
5
5
  import { a as verificationObservation, i as triedKey, n as observeCheck, t as observeAttempt } from "./verification-Dpfcw8ml.mjs";
6
- import { n as version, t as name } from "./deno-DhOes0kL.mjs";
7
- import { _ as recordKeyLookup, n as getDurationMs, r as getFederationMetrics, s as measureSignatureKeyFetch, t as classifyFetchError } from "./metrics-M-q8sKlg.mjs";
6
+ import { n as version, t as name } from "./deno-eoFpPk7W.mjs";
7
+ import { _ as recordKeyLookup, n as getDurationMs, r as getFederationMetrics, s as measureSignatureKeyFetch, t as classifyFetchError } from "./metrics-BnfvSPj9.mjs";
8
8
  import { n as attachKeyOwnerEvidence, t as MAX_PORTABLE_KEY_TTL } from "./key-owner-evidence-APB6NpSk.mjs";
9
9
  import { getLogger } from "@logtape/logtape";
10
10
  import { Activity, CryptographicKey, Multikey, Object as Object$1, getTypeId, isActor } from "@fedify/vocab";
@@ -1039,7 +1039,7 @@ async function fetchKeyInternal(keyId, cls, options = {}) {
1039
1039
  response: error.response.clone()
1040
1040
  } : { error: error instanceof Error ? error : new Error(String(error)) };
1041
1041
  } catch {
1042
- result = { error: error instanceof Error ? error : /* @__PURE__ */ new Error() };
1042
+ result = { error: error instanceof Error ? error : /* @__PURE__ */ new Error("Unknown verification error") };
1043
1043
  }
1044
1044
  check.reason = {
1045
1045
  type: "keyFetchError",
@@ -1,7 +1,7 @@
1
1
  import "temporal-polyfill";
2
2
  import "urlpattern-polyfill";
3
3
  globalThis.addEventListener = () => {};
4
- import { n as version, t as name } from "./deno-DhOes0kL.mjs";
4
+ import { n as version, t as name } from "./deno-eoFpPk7W.mjs";
5
5
  import { metrics } from "@opentelemetry/api";
6
6
  import { FetchError } from "@fedify/vocab-runtime";
7
7
  //#region src/federation/metrics.ts
@@ -1,5 +1,5 @@
1
1
  import "temporal-polyfill";
2
2
  import "urlpattern-polyfill";
3
3
  globalThis.addEventListener = () => {};
4
- import { n as FederationImpl } from "./middleware-DTtxkZcU.mjs";
4
+ import { n as FederationImpl } from "./middleware-D_W_LdJN.mjs";
5
5
  export { FederationImpl };
@@ -5,32 +5,32 @@ 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, s as toProofPrincipal, t as createAuthenticationEvidence } from "./inbox-authentication-CgonVRkg.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-DhOes0kL.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-M-q8sKlg.mjs";
8
+ import { n as version, t as name } from "./deno-eoFpPk7W.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-BnfvSPj9.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-rNrQkbOP.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-Cdt8qD-r.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-D0_8PUaM.mjs";
15
- import { c as parseRfc9421SignatureInput, f as validateMaxSignatures, l as selectRequestSignature, m as verifyRequestDetailed, o as listRequestSignatures, p as verifyRequest } from "./http-Dl2oG-DY.mjs";
16
- import { n as getAuthenticatedDocumentLoader } from "./docloader-BLKe4L-U.mjs";
17
- import { n as kvCache } from "./kv-cache-2qRQ6ul-.mjs";
18
- import { a as isActorlessActivityAuthenticated, c as createInboxRequestSource, d as invocationProvenance, f as outboundProvenance, g as sourceLogContext, h as snapshotLocalContext, i as getInboxIdempotencyKey, l as emptyProvenance, m as serializeProvenance, n as checkActorlessActivity, o as isInboxActivityProcessed, p as restoreProvenance, s as routeActivity, t as actorsHaveSameOrigin, u as getOutboundProvenance } from "./inbox-CnD0d-M3.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-Y7omSVvc.mjs";
15
+ import { c as parseRfc9421SignatureInput, f as validateMaxSignatures, l as selectRequestSignature, m as verifyRequestDetailed, o as listRequestSignatures, p as verifyRequest } from "./http-l1zKGCll.mjs";
16
+ import { n as getAuthenticatedDocumentLoader } from "./docloader-DwkipyL1.mjs";
17
+ import { n as kvCache } from "./kv-cache-8eJh4Xum.mjs";
18
+ import { a as isActorlessActivityAuthenticated, c as createInboxRequestSource, d as invocationProvenance, f as outboundProvenance, g as sourceLogContext, h as snapshotLocalContext, i as getInboxIdempotencyKey, l as emptyProvenance, m as serializeProvenance, n as checkActorlessActivity, o as isInboxActivityProcessed, p as restoreProvenance, s as routeActivity, t as actorsHaveSameOrigin, u as getOutboundProvenance } from "./inbox-CWX3EBTO.mjs";
19
19
  import { t as projectSenderPayload } from "./outbound-document-BMgwLXTY.mjs";
20
20
  import { t as captureResponseBody } from "./outbound-capture-DVgnRzlf.mjs";
21
- import { a as snapshotHeaders, n as FederationBuilderImpl, t as ACTOR_ALIAS_PREFIX } from "./builder-Dlad1NzZ.mjs";
21
+ import { a as snapshotHeaders, n as FederationBuilderImpl, t as ACTOR_ALIAS_PREFIX } from "./builder-CGJ-NXcZ.mjs";
22
22
  import { d as MAX_BODY_SIZE, f as readBoundedText, t as getNodeInfo, u as BodyTooLargeError } from "./client-5SIFzW3q.mjs";
23
23
  import { t as nodeInfoToJson } from "./types-DE_LV1JB.mjs";
24
- import { n as getKeyOwner, t as doesActorOwnKey } from "./owner-DXBLhiOp.mjs";
25
- import { t as verifyPortableObject } from "./portable-collection-Bdm4GVrg.mjs";
26
- import { a as sendActivityThroughGateways, i as sendActivity, n as extractInboxes, o as getOrderingDestination, t as SendActivityError } from "./send-B5Q2gFPx.mjs";
24
+ import { n as getKeyOwner, t as doesActorOwnKey } from "./owner-DukEQnv3.mjs";
25
+ import { t as verifyPortableObject } from "./portable-collection-OHaqa11n.mjs";
26
+ import { a as sendActivityThroughGateways, i as sendActivity, n as extractInboxes, o as getOrderingDestination, t as SendActivityError } from "./send-ccQynabr.mjs";
27
27
  import { t as CircuitBreaker } from "./circuit-breaker-XJ53md4S.mjs";
28
28
  import { t as buildCollectionSynchronizationHeader } from "./collection-CnnP1UAv.mjs";
29
- import { a as inspectCompoundPortableObjectApplicability, c as verifyServedPortableObjects, i as findUnsupportedCompoundProofShape, o as verifyCompoundPortableObjectProofs, r as findEmbeddedProofWithoutContext, t as containsCompoundPortableObject } from "./compound-proof-BPor5rpc.mjs";
30
- 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-DE-qXPd4.mjs";
29
+ import { a as inspectCompoundPortableObjectApplicability, c as verifyServedPortableObjects, i as findUnsupportedCompoundProofShape, o as verifyCompoundPortableObjectProofs, r as findEmbeddedProofWithoutContext, t as containsCompoundPortableObject } from "./compound-proof-CnzwOddk.mjs";
30
+ 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-DkPCF71K.mjs";
31
31
  import { t as KvKeyCache } from "./keycache-N2opu4-3.mjs";
32
- import { t as acceptsJsonLd } from "./negotiation-CCocWT_N.mjs";
33
- import { t as hasMalformedKnownTemporalLiteral } from "./temporal-T_o6VW2J.mjs";
32
+ import { t as acceptsJsonLd } from "./negotiation-BAKO9nih.mjs";
33
+ import { t as hasMalformedKnownTemporalLiteral } from "./temporal-f_K4lAVR.mjs";
34
34
  import { t as createExponentialBackoffPolicy } from "./retry-zX5xw5e0.mjs";
35
35
  import { t as TaskCodec } from "./codec-C6rTrpIp.mjs";
36
36
  import { getLogger, withContext } from "@logtape/logtape";
@@ -5650,7 +5650,10 @@ var FederationImpl = class extends FederationBuilderImpl {
5650
5650
  "fedify",
5651
5651
  "federation",
5652
5652
  "benchmark"
5653
- ]).warn(`Fedify benchmarkMode is enabled; ${relaxationSummary}. Benchmark endpoints are active and must not be used in production.`, { relaxations });
5653
+ ]).warn("Fedify benchmarkMode is enabled; {relaxationSummary}. Benchmark endpoints are active and must not be used in production.", {
5654
+ relaxations,
5655
+ relaxationSummary
5656
+ });
5654
5657
  }
5655
5658
  this.benchmarkMode = benchmarkMode;
5656
5659
  this.benchmarkTriggerOptions = benchmarkMode ? getBenchmarkTriggerOptions(benchmarkOptions) : {};
@@ -7457,7 +7460,7 @@ var FederationImpl = class extends FederationBuilderImpl {
7457
7460
  queueMessageId: m.message.id
7458
7461
  }], "outbox", enqueue));
7459
7462
  recordOutboxEnqueue(this.meterProvider, outboxQueue, m.message);
7460
- }))).filter((r) => r.status === "rejected").map((r) => r.reason);
7463
+ }))).flatMap((r) => r.status === "rejected" ? [r.reason] : []);
7461
7464
  if (errors.length > 0) {
7462
7465
  logger.error("Failed to enqueue activity {activityId} to send later: {errors}", {
7463
7466
  activityId: activity.id.href,
@@ -8876,9 +8879,10 @@ var ContextImpl = class ContextImpl {
8876
8879
  identifierPromise = identifier instanceof Promise ? identifier : Promise.resolve(identifier);
8877
8880
  }
8878
8881
  } else identifierPromise = Promise.resolve(identity.identifier);
8879
- return identifierPromise.then((identifier) => {
8882
+ return identifierPromise.then(async (identifier) => {
8880
8883
  if (identifier == null) return this.documentLoader;
8881
- return this.getRsaKeyPairFromIdentifier(identifier).then((pair) => pair == null ? this.documentLoader : this.federation.authenticatedDocumentLoaderFactory(pair));
8884
+ const pair = await this.getRsaKeyPairFromIdentifier(identifier);
8885
+ return pair == null ? this.documentLoader : this.federation.authenticatedDocumentLoaderFactory(pair);
8882
8886
  });
8883
8887
  }
8884
8888
  return this.federation.authenticatedDocumentLoaderFactory(identity);
@@ -9778,7 +9782,7 @@ async function forwardActivityInternal(ctx, loggerCategory, forwarder, recipient
9778
9782
  queueMessageId: m.message.id
9779
9783
  }], "outbox", () => outboxQueue.enqueue(m.message, { orderingKey: m.orderingKey })));
9780
9784
  recordOutboxEnqueue(ctx.federation.meterProvider, outboxQueue, m.message);
9781
- }))).filter((r) => r.status === "rejected").map((r) => r.reason);
9785
+ }))).flatMap((r) => r.status === "rejected" ? [r.reason] : []);
9782
9786
  if (errors.length > 0) {
9783
9787
  logger.error("Failed to enqueue activity {activityId} to forward later:\n{errors}", {
9784
9788
  activityId: ctx.activityId,
@@ -2,10 +2,10 @@ import { Temporal } from "temporal-polyfill";
2
2
  import { URLPattern } from "urlpattern-polyfill";
3
3
  import { t as __exportAll } from "./rolldown-runtime-BC-Eo5Mj.js";
4
4
  import { r as getDefaultActivityTransformers } from "./transformers-DAtXl_Kc.js";
5
- import { $ as getVerifiedKeyOwnerEvidence, A as compactJsonLd, At as getRawCanonicalPortableId, B as verifyCompactJsonLdDetailed, C as verifyPortableObjectProofWithRoot, Ct as observeAttempt, D as InvalidContextReferenceError, Dt as getCanonicalPortableId, E as normalizeOutgoingActivityJsonLd, Et as getAuthenticationOrigin, F as hasSignatureLike, Ft as isPortableUri, I as isClearlyMalformedContextReference, It as isSameObjectId, L as isInvalidUrlTypeError, M as detachSignature, Mt as isCompatibleKeyId, N as getNormalizationContextLoader, Nt as isPortableId, O as assertSafeJsonLd, Ot as getGatewayKeyBase, P as hasSignature, Pt as isPortableKeyId, Q as MAX_PORTABLE_KEY_TTL, R as markEffectiveContextLoader, Rt as name, S as verifyPortableObjectProofPolicy, Tt as verificationObservation, U as wrapContextLoaderForJsonLd, W as exportJwk, X as validateCryptoKey, Y as importJwk, _ as signObject, _t as registerQueueDepthGauge, at as isAbortError, b as verifyObjectDetailed, c as verifyRequestDetailed, ct as recordCollectionPageItems, d as InvalidPortableObjectIdError, f as classifyFep2277CoreType, ft as recordFanoutRecipients, g as preparePortableObjectProofPolicy, gt as recordWebFingerHandle, h as hasProofLike, ht as recordOutboxEnqueue, i as selectRequestSignature, it as instrumentDocumentLoader, jt as hasPortableActor, kt as getPortableDid, lt as recordCollectionRequest, m as getProofSigner, mt as recordOutboxActivity, n as listRequestSignatures, nt as getFederationMetrics, o as validateMaxSignatures, ot as recordCircuitBreakerStateChange, pt as recordInboxActivity, r as parseRfc9421SignatureInput, rt as getRemoteHost, s as verifyRequest, st as recordCollectionDispatchDuration, t as doubleKnockScoped, tt as getDurationMs, ut as recordCollectionTotalItems, v as verifyMapLocalProof, vt as preloadedOnlyDocumentLoader, w as verifyPreparedPortableObjectProofPolicy, wt as snapshotKey, x as verifyPortableObjectProof, y as verifyObject, yt as formatAcceptSignature, z as signJsonLd, zt as version } from "./http-DdL5DIEg.js";
5
+ import { $ as getVerifiedKeyOwnerEvidence, A as compactJsonLd, At as getRawCanonicalPortableId, B as verifyCompactJsonLdDetailed, C as verifyPortableObjectProofWithRoot, Ct as observeAttempt, D as InvalidContextReferenceError, Dt as getCanonicalPortableId, E as normalizeOutgoingActivityJsonLd, Et as getAuthenticationOrigin, F as hasSignatureLike, Ft as isPortableUri, I as isClearlyMalformedContextReference, It as isSameObjectId, L as isInvalidUrlTypeError, M as detachSignature, Mt as isCompatibleKeyId, N as getNormalizationContextLoader, Nt as isPortableId, O as assertSafeJsonLd, Ot as getGatewayKeyBase, P as hasSignature, Pt as isPortableKeyId, Q as MAX_PORTABLE_KEY_TTL, R as markEffectiveContextLoader, Rt as name, S as verifyPortableObjectProofPolicy, Tt as verificationObservation, U as wrapContextLoaderForJsonLd, W as exportJwk, X as validateCryptoKey, Y as importJwk, _ as signObject, _t as registerQueueDepthGauge, at as isAbortError, b as verifyObjectDetailed, c as verifyRequestDetailed, ct as recordCollectionPageItems, d as InvalidPortableObjectIdError, f as classifyFep2277CoreType, ft as recordFanoutRecipients, g as preparePortableObjectProofPolicy, gt as recordWebFingerHandle, h as hasProofLike, ht as recordOutboxEnqueue, i as selectRequestSignature, it as instrumentDocumentLoader, jt as hasPortableActor, kt as getPortableDid, lt as recordCollectionRequest, m as getProofSigner, mt as recordOutboxActivity, n as listRequestSignatures, nt as getFederationMetrics, o as validateMaxSignatures, ot as recordCircuitBreakerStateChange, pt as recordInboxActivity, r as parseRfc9421SignatureInput, rt as getRemoteHost, s as verifyRequest, st as recordCollectionDispatchDuration, t as doubleKnockScoped, tt as getDurationMs, ut as recordCollectionTotalItems, v as verifyMapLocalProof, vt as preloadedOnlyDocumentLoader, w as verifyPreparedPortableObjectProofPolicy, wt as snapshotKey, x as verifyPortableObjectProof, y as verifyObject, yt as formatAcceptSignature, z as signJsonLd, zt as version } from "./http-CWn0K5jD.js";
6
6
  import { a as MAX_BODY_SIZE, i as BodyTooLargeError, n as getNodeInfo, o as readBoundedText, t as nodeInfoToJson } from "./types-DUjZb4i6.js";
7
- import { n as doesActorOwnKey, r as getKeyOwner, t as verifyPortableObject } from "./portable-collection-BIU6ofW8.js";
8
- import { n as getAuthenticatedDocumentLoader, t as kvCache } from "./kv-cache-C35JVxTl.js";
7
+ import { n as doesActorOwnKey, r as getKeyOwner, t as verifyPortableObject } from "./portable-collection-DQhIkX5a.js";
8
+ import { n as getAuthenticatedDocumentLoader, t as kvCache } from "./kv-cache-BC837EqC.js";
9
9
  import { getLogger, withContext } from "@logtape/logtape";
10
10
  import { FetchError, UrlError, canonicalizePortableUri, decodeMultibase, formatIri, fromCompatibleEf61Id, getDocumentLoader, getFe34Origin, isGatewayUrl, parseDigestMultibase, parseHashlink, parseIri, preloadedContexts, resolveDocumentLoaderTimeout, toCompatibleEf61Id } from "@fedify/vocab-runtime";
11
11
  import { Router, RouterError, assertPath } from "@fedify/uri-template";
@@ -4541,7 +4541,7 @@ function compareSpecs(a, b) {
4541
4541
  function isQuality(spec) {
4542
4542
  return spec.q > 0;
4543
4543
  }
4544
- const simpleMediaTypeRegExp = /^\s*([^\s\/;]+)\/([^;\s]+)\s*(?:;(.*))?$/;
4544
+ const simpleMediaTypeRegExp = /^\s*([^\s/;]+)\/([^;\s]+)\s*(?:;(.*))?$/;
4545
4545
  function splitKeyValuePair(str) {
4546
4546
  const [key, value] = str.split("=");
4547
4547
  return [key.toLowerCase(), value];
@@ -10781,7 +10781,10 @@ var FederationImpl = class extends FederationBuilderImpl {
10781
10781
  "fedify",
10782
10782
  "federation",
10783
10783
  "benchmark"
10784
- ]).warn(`Fedify benchmarkMode is enabled; ${relaxationSummary}. Benchmark endpoints are active and must not be used in production.`, { relaxations });
10784
+ ]).warn("Fedify benchmarkMode is enabled; {relaxationSummary}. Benchmark endpoints are active and must not be used in production.", {
10785
+ relaxations,
10786
+ relaxationSummary
10787
+ });
10785
10788
  }
10786
10789
  this.benchmarkMode = benchmarkMode;
10787
10790
  this.benchmarkTriggerOptions = benchmarkMode ? getBenchmarkTriggerOptions(benchmarkOptions) : {};
@@ -12588,7 +12591,7 @@ var FederationImpl = class extends FederationBuilderImpl {
12588
12591
  queueMessageId: m.message.id
12589
12592
  }], "outbox", enqueue));
12590
12593
  recordOutboxEnqueue(this.meterProvider, outboxQueue, m.message);
12591
- }))).filter((r) => r.status === "rejected").map((r) => r.reason);
12594
+ }))).flatMap((r) => r.status === "rejected" ? [r.reason] : []);
12592
12595
  if (errors.length > 0) {
12593
12596
  logger.error("Failed to enqueue activity {activityId} to send later: {errors}", {
12594
12597
  activityId: activity.id.href,
@@ -14007,9 +14010,10 @@ var ContextImpl = class ContextImpl {
14007
14010
  identifierPromise = identifier instanceof Promise ? identifier : Promise.resolve(identifier);
14008
14011
  }
14009
14012
  } else identifierPromise = Promise.resolve(identity.identifier);
14010
- return identifierPromise.then((identifier) => {
14013
+ return identifierPromise.then(async (identifier) => {
14011
14014
  if (identifier == null) return this.documentLoader;
14012
- return this.getRsaKeyPairFromIdentifier(identifier).then((pair) => pair == null ? this.documentLoader : this.federation.authenticatedDocumentLoaderFactory(pair));
14015
+ const pair = await this.getRsaKeyPairFromIdentifier(identifier);
14016
+ return pair == null ? this.documentLoader : this.federation.authenticatedDocumentLoaderFactory(pair);
14013
14017
  });
14014
14018
  }
14015
14019
  return this.federation.authenticatedDocumentLoaderFactory(identity);
@@ -14909,7 +14913,7 @@ async function forwardActivityInternal(ctx, loggerCategory, forwarder, recipient
14909
14913
  queueMessageId: m.message.id
14910
14914
  }], "outbox", () => outboxQueue.enqueue(m.message, { orderingKey: m.orderingKey })));
14911
14915
  recordOutboxEnqueue(ctx.federation.meterProvider, outboxQueue, m.message);
14912
- }))).filter((r) => r.status === "rejected").map((r) => r.reason);
14916
+ }))).flatMap((r) => r.status === "rejected" ? [r.reason] : []);
14913
14917
  if (errors.length > 0) {
14914
14918
  logger.error("Failed to enqueue activity {activityId} to forward later:\n{errors}", {
14915
14919
  activityId: ctx.activityId,
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_federation = require("./federation-C7hr1d70.cjs");
7
- const require_http = require("./http-DJ0rqMZp.cjs");
6
+ const require_federation = require("./federation-FbwcnRHg.cjs");
7
+ const require_http = require("./http-DbvOPsFZ.cjs");
8
8
  const require_types = require("./types-hKCCjii0.cjs");
9
- const require_portable_collection = require("./portable-collection-uvJgxij0.cjs");
10
- const require_kv_cache = require("./kv-cache-DY6N3JNe.cjs");
9
+ const require_portable_collection = require("./portable-collection-DseoiPPj.cjs");
10
+ const require_kv_cache = require("./kv-cache-B-fOrhb-.cjs");
11
11
  require("./nodeinfo/mod.cjs");
12
12
  require("./runtime/mod.cjs");
13
13
  require("./sig/mod.cjs");
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 { 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-DwSDtJqA.js";
7
- 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-DdL5DIEg.js";
6
+ 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-n2UrG62B.js";
7
+ 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-CWn0K5jD.js";
8
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-BIU6ofW8.js";
10
- import { n as getAuthenticatedDocumentLoader, t as kvCache } from "./kv-cache-C35JVxTl.js";
9
+ import { n as doesActorOwnKey, r as getKeyOwner, t as verifyPortableObject } from "./portable-collection-DQhIkX5a.js";
10
+ import { n as getAuthenticatedDocumentLoader, t as kvCache } from "./kv-cache-BC837EqC.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";
@@ -37,7 +37,7 @@ function compareSpecs(a, b) {
37
37
  function isQuality(spec) {
38
38
  return spec.q > 0;
39
39
  }
40
- const simpleMediaTypeRegExp = /^\s*([^\s\/;]+)\/([^;\s]+)\s*(?:;(.*))?$/;
40
+ const simpleMediaTypeRegExp = /^\s*([^\s/;]+)\/([^;\s]+)\s*(?:;(.*))?$/;
41
41
  function splitKeyValuePair(str) {
42
42
  const [key, value] = str.split("=");
43
43
  return [key.toLowerCase(), value];