@fedify/fedify 2.0.0-pr.434.1662 → 2.0.0-pr.435.1667

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 (123) hide show
  1. package/dist/{actor-Dd2E4F9C.cjs → actor-C3gJhZJj.cjs} +187 -187
  2. package/dist/{actor-Dsla85Uq.js → actor-CnVfp1Hp.js} +187 -187
  3. package/dist/{actor-By5NMImS.js → actor-Cpal85xW.js} +1 -1
  4. package/dist/{assert_rejects-DiIiJbZn.js → assert_rejects-7UF4R_Qs.js} +1 -1
  5. package/dist/{assert_throws-BOO88avQ.js → assert_throws-53_pKeP3.js} +1 -1
  6. package/dist/{authdocloader-B28UEZlz.cjs → authdocloader-DPCGwidE.cjs} +3 -3
  7. package/dist/{authdocloader-CpmdBiRe.js → authdocloader-DWnwkjvZ.js} +3 -3
  8. package/dist/{authdocloader-lhbaj4KA.js → authdocloader-Df2BFefL.js} +3 -3
  9. package/dist/{builder-B6AupxqD.js → builder-CMxichO9.js} +4 -4
  10. package/dist/{client-KUXReLjS.js → client-BqyuOGiQ.js} +1 -1
  11. package/dist/compat/mod.d.cts +2 -2
  12. package/dist/compat/mod.d.ts +2 -2
  13. package/dist/compat/transformers.test.js +17 -18
  14. package/dist/{context-CQsAT7xk.d.ts → context-CDSZdQHD.d.ts} +1 -0
  15. package/dist/{context-tVOQ76fi.d.cts → context-Dq8aCtMH.d.cts} +1 -0
  16. package/dist/{docloader-NJZ5ADV3.cjs → docloader-B1O1Z5OK.cjs} +2 -2
  17. package/dist/{docloader-ZGKS1Zy-.js → docloader-xJVzq9O0.js} +2 -2
  18. package/dist/{esm-CIFbziGC.js → esm-BBznxjVc.js} +1 -1
  19. package/dist/federation/builder.test.js +10 -10
  20. package/dist/federation/collection.test.js +8 -8
  21. package/dist/federation/handler.test.js +145 -26
  22. package/dist/federation/inbox.test.js +6 -6
  23. package/dist/federation/keycache.test.js +4 -4
  24. package/dist/federation/kv.test.js +8 -8
  25. package/dist/federation/middleware.test.js +38 -255
  26. package/dist/federation/mod.cjs +10 -10
  27. package/dist/federation/mod.d.cts +1 -1
  28. package/dist/federation/mod.d.ts +1 -1
  29. package/dist/federation/mod.js +10 -10
  30. package/dist/federation/mq.test.js +10 -10
  31. package/dist/federation/retry.test.js +5 -5
  32. package/dist/federation/router.test.js +8 -8
  33. package/dist/federation/send.test.js +15 -15
  34. package/dist/{http-BqSkbrGv.js → http-CovAm6we.js} +3 -3
  35. package/dist/{http-DH8DQz2-.cjs → http-Hw9HJp9i.cjs} +3 -3
  36. package/dist/{http-CCydyMoV.js → http-y7khnX5Q.js} +2 -2
  37. package/dist/{inbox-DH8TXk1f.js → inbox-DpcYOzs8.js} +1 -1
  38. package/dist/{key-cn3BcQaB.js → key-BRmlopJL.js} +2 -2
  39. package/dist/key-CV3FT32G.cjs +10 -0
  40. package/dist/{key-CYrKbGH0.cjs → key-CzF9SAEI.cjs} +2 -2
  41. package/dist/{key-B057bXm0.js → key-DORX19Bl.js} +2 -2
  42. package/dist/{key-3cqchRKs.js → key-jf6dIIF-.js} +3 -3
  43. package/dist/{key-HjvDY-QJ.js → key-lapZwBwG.js} +4 -4
  44. package/dist/{keycache-CB_VjDe0.js → keycache-AH1uj1j-.js} +1 -1
  45. package/dist/{keys-Dz9o2VwW.js → keys-B3fzLXBG.js} +1 -1
  46. package/dist/{ld-CxJe2x7_.js → ld-D3cq9xO1.js} +2 -2
  47. package/dist/{lookup-BZzUCUat.cjs → lookup-7u217Q3H.cjs} +1 -1
  48. package/dist/{lookup-q8DeFAjR.js → lookup-BrhURkmj.js} +1 -1
  49. package/dist/{lookup-Cc-KXO2K.js → lookup-CfU0DgLr.js} +1 -1
  50. package/dist/{middleware-DxS7Csvz.js → middleware-BDN7YoYJ.js} +130 -35
  51. package/dist/middleware-CV-OPMlZ.js +17 -0
  52. package/dist/middleware-DGqnaAbp.cjs +17 -0
  53. package/dist/{middleware-BvEwDOJ5.js → middleware-DXWUGrBQ.js} +63 -32
  54. package/dist/{middleware-DGvzxKjo.cjs → middleware-Gsxukxs5.cjs} +63 -32
  55. package/dist/middleware-cCdfTTMv.js +25 -0
  56. package/dist/{mod-DBQAI4v9.d.cts → mod-BhMnAkFX.d.cts} +1 -1
  57. package/dist/{mod-B26zRlH1.d.ts → mod-RI3-KvUI.d.ts} +1 -1
  58. package/dist/mod.cjs +10 -10
  59. package/dist/mod.d.cts +2 -2
  60. package/dist/mod.d.ts +2 -2
  61. package/dist/mod.js +10 -10
  62. package/dist/nodeinfo/client.test.js +10 -10
  63. package/dist/nodeinfo/handler.test.js +22 -23
  64. package/dist/nodeinfo/mod.cjs +2 -2
  65. package/dist/nodeinfo/mod.js +2 -2
  66. package/dist/nodeinfo/types.test.js +8 -8
  67. package/dist/{owner-jwXilm3L.js → owner-NFlQJyvM.js} +2 -2
  68. package/dist/{proof-BE1A6Ct1.js → proof-Be1oOYEh.js} +3 -3
  69. package/dist/{proof-BzKiLsN7.cjs → proof-Gip91fK7.cjs} +3 -3
  70. package/dist/{proof-CHi36V0T.js → proof-ar9xgPWi.js} +2 -2
  71. package/dist/runtime/authdocloader.test.js +14 -14
  72. package/dist/runtime/docloader.test.js +9 -9
  73. package/dist/runtime/key.test.js +10 -10
  74. package/dist/runtime/langstr.test.js +8 -8
  75. package/dist/runtime/link.test.js +3 -3
  76. package/dist/runtime/mod.cjs +6 -6
  77. package/dist/runtime/mod.js +6 -6
  78. package/dist/runtime/multibase/multibase.test.js +8 -8
  79. package/dist/runtime/url.test.js +5 -5
  80. package/dist/{send-CwVrwo7j.js → send-DkwkMFjJ.js} +2 -2
  81. package/dist/sig/http.test.js +13 -13
  82. package/dist/sig/key.test.js +11 -11
  83. package/dist/sig/ld.test.js +10 -10
  84. package/dist/sig/mod.cjs +6 -6
  85. package/dist/sig/mod.js +6 -6
  86. package/dist/sig/owner.test.js +12 -12
  87. package/dist/sig/proof.test.js +12 -12
  88. package/dist/testing/docloader.test.js +8 -8
  89. package/dist/testing/mod.js +3 -3
  90. package/dist/{testing-Cqwzq9nj.js → testing-BMBhkcz9.js} +2 -2
  91. package/dist/{type-BSR-vRXo.js → type-FCer_9yh.js} +187 -187
  92. package/dist/{types-XMA_ABYQ.js → types-CNWeAz8v.js} +1 -1
  93. package/dist/{types-zwVAf9LF.cjs → types-CZ_qo9KW.cjs} +1 -1
  94. package/dist/vocab/actor.test.js +10 -10
  95. package/dist/vocab/lookup.test.js +9 -9
  96. package/dist/vocab/mod.cjs +4 -4
  97. package/dist/vocab/mod.js +4 -4
  98. package/dist/vocab/type.test.js +3 -3
  99. package/dist/vocab/vocab.test.js +9 -9
  100. package/dist/{vocab-Bj8iyEkG.cjs → vocab-9MjZjuZb.cjs} +3 -3
  101. package/dist/{vocab-BlOQWNvd.js → vocab-gpwUU9fc.js} +3 -3
  102. package/dist/webfinger/handler.test.js +22 -23
  103. package/dist/webfinger/lookup.test.js +9 -9
  104. package/dist/webfinger/mod.cjs +2 -2
  105. package/dist/webfinger/mod.js +2 -2
  106. package/dist/x/cfworkers.test.js +8 -8
  107. package/dist/x/hono.d.cts +1 -1
  108. package/dist/x/hono.d.ts +1 -1
  109. package/dist/x/sveltekit.d.cts +1 -1
  110. package/dist/x/sveltekit.d.ts +1 -1
  111. package/package.json +1 -1
  112. package/dist/federation/negotiation.test.d.ts +0 -3
  113. package/dist/federation/negotiation.test.js +0 -28
  114. package/dist/key-Bom4W546.cjs +0 -10
  115. package/dist/middleware-B7yi4Uls.cjs +0 -17
  116. package/dist/middleware-DCdrZPxz.js +0 -17
  117. package/dist/middleware-DTjhpVrj.js +0 -26
  118. package/dist/negotiation-5NPJL6zp.js +0 -71
  119. /package/dist/{assert_is_error-BPGph1Jx.js → assert_is_error-B035L3om.js} +0 -0
  120. /package/dist/{assert_not_equals-f3m3epl3.js → assert_not_equals-C80BG-_5.js} +0 -0
  121. /package/dist/{denokv-Bv33Xxea.js → denokv-jZ0Z2h0M.js} +0 -0
  122. /package/dist/{retry-D4GJ670a.js → retry-CfF8Gn4d.js} +0 -0
  123. /package/dist/{std__assert-X-_kMxKM.js → std__assert-DWivtrGR.js} +0 -0
@@ -3,15 +3,15 @@
3
3
  import { URLPattern } from "urlpattern-polyfill";
4
4
 
5
5
  import { getDefaultActivityTransformers } from "./transformers-BFT6d7J5.js";
6
- import { deno_default, getDocumentLoader, kvCache } from "./docloader-ZGKS1Zy-.js";
7
- import { Activity, Collection, CollectionPage, CryptographicKey, Link, Multikey, Object as Object$1, OrderedCollection, OrderedCollectionPage, getTypeId } from "./actor-Dsla85Uq.js";
8
- import { lookupWebFinger } from "./lookup-Cc-KXO2K.js";
9
- import { exportJwk, importJwk, validateCryptoKey } from "./key-cn3BcQaB.js";
10
- import { doubleKnock, verifyRequest } from "./http-BqSkbrGv.js";
11
- import { detachSignature, doesActorOwnKey, getKeyOwner, hasSignature, signJsonLd, signObject, verifyJsonLd, verifyObject } from "./proof-BE1A6Ct1.js";
12
- import { getNodeInfo, nodeInfoToJson } from "./types-XMA_ABYQ.js";
13
- import { getAuthenticatedDocumentLoader } from "./authdocloader-CpmdBiRe.js";
14
- import { lookupObject, traverseCollection } from "./vocab-BlOQWNvd.js";
6
+ import { deno_default, getDocumentLoader, kvCache } from "./docloader-xJVzq9O0.js";
7
+ import { Activity, Collection, CollectionPage, CryptographicKey, Link, Multikey, Object as Object$1, OrderedCollection, OrderedCollectionPage, getTypeId } from "./actor-CnVfp1Hp.js";
8
+ import { lookupWebFinger } from "./lookup-CfU0DgLr.js";
9
+ import { exportJwk, importJwk, validateCryptoKey } from "./key-BRmlopJL.js";
10
+ import { doubleKnock, verifyRequest } from "./http-CovAm6we.js";
11
+ import { detachSignature, doesActorOwnKey, getKeyOwner, hasSignature, signJsonLd, signObject, verifyJsonLd, verifyObject } from "./proof-Be1oOYEh.js";
12
+ import { getNodeInfo, nodeInfoToJson } from "./types-CNWeAz8v.js";
13
+ import { getAuthenticatedDocumentLoader } from "./authdocloader-DWnwkjvZ.js";
14
+ import { lookupObject, traverseCollection } from "./vocab-gpwUU9fc.js";
15
15
  import { getLogger, withContext } from "@logtape/logtape";
16
16
  import { SpanKind, SpanStatusCode, context, propagation, trace } from "@opentelemetry/api";
17
17
  import { encodeHex } from "byte-encodings/hex";
@@ -321,7 +321,7 @@ var FederationBuilderImpl = class {
321
321
  this.collectionTypeIds = {};
322
322
  }
323
323
  async build(options) {
324
- const { FederationImpl: FederationImpl$1 } = await import("./middleware-DCdrZPxz.js");
324
+ const { FederationImpl: FederationImpl$1 } = await import("./middleware-CV-OPMlZ.js");
325
325
  const f = new FederationImpl$1(options);
326
326
  const trailingSlashInsensitiveValue = f.router.trailingSlashInsensitive;
327
327
  f.router = this.router.clone();
@@ -979,6 +979,9 @@ function preferredMediaTypes(accept) {
979
979
  const accepts = parseAccept(accept === void 0 ? "*/*" : accept ?? "");
980
980
  return accepts.filter(isQuality).sort(compareSpecs).map(getFullType);
981
981
  }
982
+
983
+ //#endregion
984
+ //#region src/federation/handler.ts
982
985
  function acceptsJsonLd(request) {
983
986
  const accept = request.headers.get("Accept");
984
987
  const types = accept ? preferredMediaTypes(accept) : ["*/*"];
@@ -986,9 +989,6 @@ function acceptsJsonLd(request) {
986
989
  if (types[0] === "text/html" || types[0] === "application/xhtml+xml") return false;
987
990
  return types.includes("application/activity+json") || types.includes("application/ld+json") || types.includes("application/json");
988
991
  }
989
-
990
- //#endregion
991
- //#region src/federation/handler.ts
992
992
  /**
993
993
  * Handles an actor request.
994
994
  * @template TContextData The context data to pass to the context.
@@ -996,7 +996,7 @@ function acceptsJsonLd(request) {
996
996
  * @param parameters The parameters for handling the actor.
997
997
  * @returns A promise that resolves to an HTTP response.
998
998
  */
999
- async function handleActor(request, { identifier, context: context$1, actorDispatcher, authorizePredicate, onNotFound, onUnauthorized }) {
999
+ async function handleActor(request, { identifier, context: context$1, actorDispatcher, authorizePredicate, onNotFound, onNotAcceptable, onUnauthorized }) {
1000
1000
  const logger$1 = getLogger([
1001
1001
  "fedify",
1002
1002
  "federation",
@@ -1011,6 +1011,7 @@ async function handleActor(request, { identifier, context: context$1, actorDispa
1011
1011
  logger$1.debug("Actor {identifier} not found.", { identifier });
1012
1012
  return await onNotFound(request);
1013
1013
  }
1014
+ if (!acceptsJsonLd(request)) return await onNotAcceptable(request);
1014
1015
  if (authorizePredicate != null) {
1015
1016
  let key = await context$1.getSignedKey();
1016
1017
  key = key?.clone({}, { $warning: {
@@ -1045,10 +1046,11 @@ async function handleActor(request, { identifier, context: context$1, actorDispa
1045
1046
  * @param parameters The parameters for handling the object.
1046
1047
  * @returns A promise that resolves to an HTTP response.
1047
1048
  */
1048
- async function handleObject(request, { values, context: context$1, objectDispatcher, authorizePredicate, onNotFound, onUnauthorized }) {
1049
+ async function handleObject(request, { values, context: context$1, objectDispatcher, authorizePredicate, onNotFound, onNotAcceptable, onUnauthorized }) {
1049
1050
  if (objectDispatcher == null) return await onNotFound(request);
1050
1051
  const object = await objectDispatcher(context$1, values);
1051
1052
  if (object == null) return await onNotFound(request);
1053
+ if (!acceptsJsonLd(request)) return await onNotAcceptable(request);
1052
1054
  if (authorizePredicate != null) {
1053
1055
  let key = await context$1.getSignedKey();
1054
1056
  key = key?.clone({}, { $warning: {
@@ -1086,7 +1088,7 @@ async function handleObject(request, { values, context: context$1, objectDispatc
1086
1088
  * @param parameters The parameters for handling the collection.
1087
1089
  * @returns A promise that resolves to an HTTP response.
1088
1090
  */
1089
- async function handleCollection(request, { name, identifier, uriGetter, filter, filterPredicate, context: context$1, collectionCallbacks, tracerProvider, onUnauthorized, onNotFound }) {
1091
+ async function handleCollection(request, { name, identifier, uriGetter, filter, filterPredicate, context: context$1, collectionCallbacks, tracerProvider, onUnauthorized, onNotFound, onNotAcceptable }) {
1090
1092
  const spanName = name.trim().replace(/\s+/g, "_");
1091
1093
  tracerProvider = tracerProvider ?? trace.getTracerProvider();
1092
1094
  const tracer = tracerProvider.getTracer(deno_default.name, deno_default.version);
@@ -1199,6 +1201,7 @@ async function handleCollection(request, { name, identifier, uriGetter, filter,
1199
1201
  partOf
1200
1202
  });
1201
1203
  }
1204
+ if (!acceptsJsonLd(request)) return await onNotAcceptable(request);
1202
1205
  if (collectionCallbacks.authorizePredicate != null) {
1203
1206
  let key = await context$1.getSignedKey();
1204
1207
  key = key?.clone({}, { $warning: {
@@ -1536,6 +1539,7 @@ async function handleInboxInternal(request, { recipient, context: ctx, inboxCont
1536
1539
  const handleCustomCollection = exceptWrapper(_handleCustomCollection);
1537
1540
  async function _handleCustomCollection(request, { name, values, context: context$1, tracerProvider, collectionCallbacks: callbacks, filterPredicate }) {
1538
1541
  verifyDefined(callbacks);
1542
+ verifyJsonLdRequest(request);
1539
1543
  await authIfNeeded(context$1, values, callbacks);
1540
1544
  const cursor = new URL(request.url).searchParams.get("cursor");
1541
1545
  return await new CustomCollectionHandler(name, values, context$1, callbacks, tracerProvider, Collection, CollectionPage, filterPredicate).fetchCollection(cursor).toJsonLd().then(respondAsActivity);
@@ -1554,6 +1558,7 @@ async function _handleCustomCollection(request, { name, values, context: context
1554
1558
  const handleOrderedCollection = exceptWrapper(_handleOrderedCollection);
1555
1559
  async function _handleOrderedCollection(request, { name, values, context: context$1, tracerProvider, collectionCallbacks: callbacks, filterPredicate }) {
1556
1560
  verifyDefined(callbacks);
1561
+ verifyJsonLdRequest(request);
1557
1562
  await authIfNeeded(context$1, values, callbacks);
1558
1563
  const cursor = new URL(request.url).searchParams.get("cursor");
1559
1564
  return await new CustomCollectionHandler(name, values, context$1, callbacks, tracerProvider, OrderedCollection, OrderedCollectionPage, filterPredicate).fetchCollection(cursor).toJsonLd().then(respondAsActivity);
@@ -1831,9 +1836,10 @@ function exceptWrapper(handler) {
1831
1836
  try {
1832
1837
  return await handler(request, handlerParams);
1833
1838
  } catch (error) {
1834
- const { onNotFound, onUnauthorized } = handlerParams;
1839
+ const { onNotFound, onNotAcceptable, onUnauthorized } = handlerParams;
1835
1840
  switch (error?.constructor) {
1836
1841
  case ItemsNotFoundError: return await onNotFound(request);
1842
+ case NotAcceptableError: return await onNotAcceptable(request);
1837
1843
  case UnauthorizedError: return await onUnauthorized(request);
1838
1844
  default: throw error;
1839
1845
  }
@@ -1851,6 +1857,15 @@ const verifyDefined = (callbacks) => {
1851
1857
  if (callbacks === void 0) throw new ItemsNotFoundError();
1852
1858
  };
1853
1859
  /**
1860
+ * Verifies that a request accepts JSON-LD content type.
1861
+ * @param request The HTTP request to verify.
1862
+ * @throws {NotAcceptableError} If the request doesn't accept JSON-LD.
1863
+ * @since 1.8.0
1864
+ */
1865
+ const verifyJsonLdRequest = (request) => {
1866
+ if (!acceptsJsonLd(request)) throw new NotAcceptableError();
1867
+ };
1868
+ /**
1854
1869
  * Performs authorization if needed based on the authorization predicate.
1855
1870
  * @template TContextData The context data type.
1856
1871
  * @param {RequestContext<TContextData>} context The request context.
@@ -1934,6 +1949,15 @@ var ItemsNotFoundError = class extends HandlerError {
1934
1949
  }
1935
1950
  };
1936
1951
  /**
1952
+ * Error thrown when the request is not acceptable (e.g., wrong content type).
1953
+ * @since 1.8.0
1954
+ */
1955
+ var NotAcceptableError = class extends HandlerError {
1956
+ constructor() {
1957
+ super("The request is not acceptable.");
1958
+ }
1959
+ };
1960
+ /**
1937
1961
  * Error thrown when access to a collection is unauthorized.
1938
1962
  * @since 1.8.0
1939
1963
  */
@@ -2931,7 +2955,6 @@ var FederationImpl = class extends FederationBuilderImpl {
2931
2955
  span,
2932
2956
  tracer
2933
2957
  });
2934
- if (acceptsJsonLd(request)) response.headers.set("Vary", "Accept");
2935
2958
  } catch (error) {
2936
2959
  span.setStatus({
2937
2960
  code: SpanStatusCode.ERROR,
@@ -2995,9 +3018,6 @@ var FederationImpl = class extends FederationBuilderImpl {
2995
3018
  context: context$1,
2996
3019
  nodeInfoDispatcher: this.nodeInfoDispatcher
2997
3020
  });
2998
- }
2999
- if (!acceptsJsonLd(request)) return await onNotAcceptable(request);
3000
- switch (routeName) {
3001
3021
  case "actor":
3002
3022
  context$1 = this.#createContext(request, contextData, { invokedFromActorDispatcher: { identifier: route.values.identifier ?? route.values.handle } });
3003
3023
  return await handleActor(request, {
@@ -3006,7 +3026,8 @@ var FederationImpl = class extends FederationBuilderImpl {
3006
3026
  actorDispatcher: this.actorCallbacks?.dispatcher,
3007
3027
  authorizePredicate: this.actorCallbacks?.authorizePredicate,
3008
3028
  onUnauthorized,
3009
- onNotFound
3029
+ onNotFound,
3030
+ onNotAcceptable
3010
3031
  });
3011
3032
  case "object": {
3012
3033
  const typeId = route.name.replace(/^object:/, "");
@@ -3022,7 +3043,8 @@ var FederationImpl = class extends FederationBuilderImpl {
3022
3043
  objectDispatcher: callbacks?.dispatcher,
3023
3044
  authorizePredicate: callbacks?.authorizePredicate,
3024
3045
  onUnauthorized,
3025
- onNotFound
3046
+ onNotFound,
3047
+ onNotAcceptable
3026
3048
  });
3027
3049
  }
3028
3050
  case "outbox": return await handleCollection(request, {
@@ -3033,7 +3055,8 @@ var FederationImpl = class extends FederationBuilderImpl {
3033
3055
  collectionCallbacks: this.outboxCallbacks,
3034
3056
  tracerProvider: this.tracerProvider,
3035
3057
  onUnauthorized,
3036
- onNotFound
3058
+ onNotFound,
3059
+ onNotAcceptable
3037
3060
  });
3038
3061
  case "inbox":
3039
3062
  if (request.method !== "POST") return await handleCollection(request, {
@@ -3044,7 +3067,8 @@ var FederationImpl = class extends FederationBuilderImpl {
3044
3067
  collectionCallbacks: this.inboxCallbacks,
3045
3068
  tracerProvider: this.tracerProvider,
3046
3069
  onUnauthorized,
3047
- onNotFound
3070
+ onNotFound,
3071
+ onNotAcceptable
3048
3072
  });
3049
3073
  context$1 = this.#createContext(request, contextData, { documentLoader: await context$1.getDocumentLoader({ identifier: route.values.identifier ?? route.values.handle }) });
3050
3074
  case "sharedInbox":
@@ -3076,7 +3100,8 @@ var FederationImpl = class extends FederationBuilderImpl {
3076
3100
  collectionCallbacks: this.followingCallbacks,
3077
3101
  tracerProvider: this.tracerProvider,
3078
3102
  onUnauthorized,
3079
- onNotFound
3103
+ onNotFound,
3104
+ onNotAcceptable
3080
3105
  });
3081
3106
  case "followers": {
3082
3107
  let baseUrl = url.searchParams.get("base-url");
@@ -3099,7 +3124,8 @@ var FederationImpl = class extends FederationBuilderImpl {
3099
3124
  collectionCallbacks: this.followersCallbacks,
3100
3125
  tracerProvider: this.tracerProvider,
3101
3126
  onUnauthorized,
3102
- onNotFound
3127
+ onNotFound,
3128
+ onNotAcceptable
3103
3129
  });
3104
3130
  }
3105
3131
  case "liked": return await handleCollection(request, {
@@ -3110,7 +3136,8 @@ var FederationImpl = class extends FederationBuilderImpl {
3110
3136
  collectionCallbacks: this.likedCallbacks,
3111
3137
  tracerProvider: this.tracerProvider,
3112
3138
  onUnauthorized,
3113
- onNotFound
3139
+ onNotFound,
3140
+ onNotAcceptable
3114
3141
  });
3115
3142
  case "featured": return await handleCollection(request, {
3116
3143
  name: "featured",
@@ -3120,7 +3147,8 @@ var FederationImpl = class extends FederationBuilderImpl {
3120
3147
  collectionCallbacks: this.featuredCallbacks,
3121
3148
  tracerProvider: this.tracerProvider,
3122
3149
  onUnauthorized,
3123
- onNotFound
3150
+ onNotFound,
3151
+ onNotAcceptable
3124
3152
  });
3125
3153
  case "featuredTags": return await handleCollection(request, {
3126
3154
  name: "featured tags",
@@ -3130,7 +3158,8 @@ var FederationImpl = class extends FederationBuilderImpl {
3130
3158
  collectionCallbacks: this.featuredTagsCallbacks,
3131
3159
  tracerProvider: this.tracerProvider,
3132
3160
  onUnauthorized,
3133
- onNotFound
3161
+ onNotFound,
3162
+ onNotAcceptable
3134
3163
  });
3135
3164
  case "collection": {
3136
3165
  const name = route.name.replace(/^collection:/, "");
@@ -3142,7 +3171,8 @@ var FederationImpl = class extends FederationBuilderImpl {
3142
3171
  collectionCallbacks: callbacks,
3143
3172
  tracerProvider: this.tracerProvider,
3144
3173
  onUnauthorized,
3145
- onNotFound
3174
+ onNotFound,
3175
+ onNotAcceptable
3146
3176
  });
3147
3177
  }
3148
3178
  case "orderedCollection": {
@@ -3155,7 +3185,8 @@ var FederationImpl = class extends FederationBuilderImpl {
3155
3185
  collectionCallbacks: callbacks,
3156
3186
  tracerProvider: this.tracerProvider,
3157
3187
  onUnauthorized,
3158
- onNotFound
3188
+ onNotFound,
3189
+ onNotAcceptable
3159
3190
  });
3160
3191
  }
3161
3192
  default: {
@@ -4,15 +4,15 @@
4
4
 
5
5
  const require_chunk = require('./chunk-DqRYRqnO.cjs');
6
6
  const require_transformers = require('./transformers-CoBS-oFG.cjs');
7
- const require_docloader = require('./docloader-NJZ5ADV3.cjs');
8
- const require_actor = require('./actor-Dd2E4F9C.cjs');
9
- const require_lookup = require('./lookup-BZzUCUat.cjs');
10
- const require_key = require('./key-CYrKbGH0.cjs');
11
- const require_http = require('./http-DH8DQz2-.cjs');
12
- const require_proof = require('./proof-BzKiLsN7.cjs');
13
- const require_types = require('./types-zwVAf9LF.cjs');
14
- const require_authdocloader = require('./authdocloader-B28UEZlz.cjs');
15
- const require_vocab = require('./vocab-Bj8iyEkG.cjs');
7
+ const require_docloader = require('./docloader-B1O1Z5OK.cjs');
8
+ const require_actor = require('./actor-C3gJhZJj.cjs');
9
+ const require_lookup = require('./lookup-7u217Q3H.cjs');
10
+ const require_key = require('./key-CzF9SAEI.cjs');
11
+ const require_http = require('./http-Hw9HJp9i.cjs');
12
+ const require_proof = require('./proof-Gip91fK7.cjs');
13
+ const require_types = require('./types-CZ_qo9KW.cjs');
14
+ const require_authdocloader = require('./authdocloader-DPCGwidE.cjs');
15
+ const require_vocab = require('./vocab-9MjZjuZb.cjs');
16
16
  const __logtape_logtape = require_chunk.__toESM(require("@logtape/logtape"));
17
17
  const __opentelemetry_api = require_chunk.__toESM(require("@opentelemetry/api"));
18
18
  const byte_encodings_hex = require_chunk.__toESM(require("byte-encodings/hex"));
@@ -322,7 +322,7 @@ var FederationBuilderImpl = class {
322
322
  this.collectionTypeIds = {};
323
323
  }
324
324
  async build(options) {
325
- const { FederationImpl: FederationImpl$1 } = await Promise.resolve().then(() => require("./middleware-B7yi4Uls.cjs"));
325
+ const { FederationImpl: FederationImpl$1 } = await Promise.resolve().then(() => require("./middleware-DGqnaAbp.cjs"));
326
326
  const f = new FederationImpl$1(options);
327
327
  const trailingSlashInsensitiveValue = f.router.trailingSlashInsensitive;
328
328
  f.router = this.router.clone();
@@ -980,6 +980,9 @@ function preferredMediaTypes(accept) {
980
980
  const accepts = parseAccept(accept === void 0 ? "*/*" : accept ?? "");
981
981
  return accepts.filter(isQuality).sort(compareSpecs).map(getFullType);
982
982
  }
983
+
984
+ //#endregion
985
+ //#region src/federation/handler.ts
983
986
  function acceptsJsonLd(request) {
984
987
  const accept = request.headers.get("Accept");
985
988
  const types = accept ? preferredMediaTypes(accept) : ["*/*"];
@@ -987,9 +990,6 @@ function acceptsJsonLd(request) {
987
990
  if (types[0] === "text/html" || types[0] === "application/xhtml+xml") return false;
988
991
  return types.includes("application/activity+json") || types.includes("application/ld+json") || types.includes("application/json");
989
992
  }
990
-
991
- //#endregion
992
- //#region src/federation/handler.ts
993
993
  /**
994
994
  * Handles an actor request.
995
995
  * @template TContextData The context data to pass to the context.
@@ -997,7 +997,7 @@ function acceptsJsonLd(request) {
997
997
  * @param parameters The parameters for handling the actor.
998
998
  * @returns A promise that resolves to an HTTP response.
999
999
  */
1000
- async function handleActor(request, { identifier, context: context$2, actorDispatcher, authorizePredicate, onNotFound, onUnauthorized }) {
1000
+ async function handleActor(request, { identifier, context: context$2, actorDispatcher, authorizePredicate, onNotFound, onNotAcceptable, onUnauthorized }) {
1001
1001
  const logger$1 = (0, __logtape_logtape.getLogger)([
1002
1002
  "fedify",
1003
1003
  "federation",
@@ -1012,6 +1012,7 @@ async function handleActor(request, { identifier, context: context$2, actorDispa
1012
1012
  logger$1.debug("Actor {identifier} not found.", { identifier });
1013
1013
  return await onNotFound(request);
1014
1014
  }
1015
+ if (!acceptsJsonLd(request)) return await onNotAcceptable(request);
1015
1016
  if (authorizePredicate != null) {
1016
1017
  let key = await context$2.getSignedKey();
1017
1018
  key = key?.clone({}, { $warning: {
@@ -1046,10 +1047,11 @@ async function handleActor(request, { identifier, context: context$2, actorDispa
1046
1047
  * @param parameters The parameters for handling the object.
1047
1048
  * @returns A promise that resolves to an HTTP response.
1048
1049
  */
1049
- async function handleObject(request, { values, context: context$2, objectDispatcher, authorizePredicate, onNotFound, onUnauthorized }) {
1050
+ async function handleObject(request, { values, context: context$2, objectDispatcher, authorizePredicate, onNotFound, onNotAcceptable, onUnauthorized }) {
1050
1051
  if (objectDispatcher == null) return await onNotFound(request);
1051
1052
  const object = await objectDispatcher(context$2, values);
1052
1053
  if (object == null) return await onNotFound(request);
1054
+ if (!acceptsJsonLd(request)) return await onNotAcceptable(request);
1053
1055
  if (authorizePredicate != null) {
1054
1056
  let key = await context$2.getSignedKey();
1055
1057
  key = key?.clone({}, { $warning: {
@@ -1087,7 +1089,7 @@ async function handleObject(request, { values, context: context$2, objectDispatc
1087
1089
  * @param parameters The parameters for handling the collection.
1088
1090
  * @returns A promise that resolves to an HTTP response.
1089
1091
  */
1090
- async function handleCollection(request, { name, identifier, uriGetter, filter, filterPredicate, context: context$2, collectionCallbacks, tracerProvider, onUnauthorized, onNotFound }) {
1092
+ async function handleCollection(request, { name, identifier, uriGetter, filter, filterPredicate, context: context$2, collectionCallbacks, tracerProvider, onUnauthorized, onNotFound, onNotAcceptable }) {
1091
1093
  const spanName = name.trim().replace(/\s+/g, "_");
1092
1094
  tracerProvider = tracerProvider ?? __opentelemetry_api.trace.getTracerProvider();
1093
1095
  const tracer = tracerProvider.getTracer(require_docloader.deno_default.name, require_docloader.deno_default.version);
@@ -1200,6 +1202,7 @@ async function handleCollection(request, { name, identifier, uriGetter, filter,
1200
1202
  partOf
1201
1203
  });
1202
1204
  }
1205
+ if (!acceptsJsonLd(request)) return await onNotAcceptable(request);
1203
1206
  if (collectionCallbacks.authorizePredicate != null) {
1204
1207
  let key = await context$2.getSignedKey();
1205
1208
  key = key?.clone({}, { $warning: {
@@ -1537,6 +1540,7 @@ async function handleInboxInternal(request, { recipient, context: ctx, inboxCont
1537
1540
  const handleCustomCollection = exceptWrapper(_handleCustomCollection);
1538
1541
  async function _handleCustomCollection(request, { name, values, context: context$2, tracerProvider, collectionCallbacks: callbacks, filterPredicate }) {
1539
1542
  verifyDefined(callbacks);
1543
+ verifyJsonLdRequest(request);
1540
1544
  await authIfNeeded(context$2, values, callbacks);
1541
1545
  const cursor = new URL(request.url).searchParams.get("cursor");
1542
1546
  return await new CustomCollectionHandler(name, values, context$2, callbacks, tracerProvider, require_actor.Collection, require_actor.CollectionPage, filterPredicate).fetchCollection(cursor).toJsonLd().then(respondAsActivity);
@@ -1555,6 +1559,7 @@ async function _handleCustomCollection(request, { name, values, context: context
1555
1559
  const handleOrderedCollection = exceptWrapper(_handleOrderedCollection);
1556
1560
  async function _handleOrderedCollection(request, { name, values, context: context$2, tracerProvider, collectionCallbacks: callbacks, filterPredicate }) {
1557
1561
  verifyDefined(callbacks);
1562
+ verifyJsonLdRequest(request);
1558
1563
  await authIfNeeded(context$2, values, callbacks);
1559
1564
  const cursor = new URL(request.url).searchParams.get("cursor");
1560
1565
  return await new CustomCollectionHandler(name, values, context$2, callbacks, tracerProvider, require_actor.OrderedCollection, require_actor.OrderedCollectionPage, filterPredicate).fetchCollection(cursor).toJsonLd().then(respondAsActivity);
@@ -1832,9 +1837,10 @@ function exceptWrapper(handler) {
1832
1837
  try {
1833
1838
  return await handler(request, handlerParams);
1834
1839
  } catch (error) {
1835
- const { onNotFound, onUnauthorized } = handlerParams;
1840
+ const { onNotFound, onNotAcceptable, onUnauthorized } = handlerParams;
1836
1841
  switch (error?.constructor) {
1837
1842
  case ItemsNotFoundError: return await onNotFound(request);
1843
+ case NotAcceptableError: return await onNotAcceptable(request);
1838
1844
  case UnauthorizedError: return await onUnauthorized(request);
1839
1845
  default: throw error;
1840
1846
  }
@@ -1852,6 +1858,15 @@ const verifyDefined = (callbacks) => {
1852
1858
  if (callbacks === void 0) throw new ItemsNotFoundError();
1853
1859
  };
1854
1860
  /**
1861
+ * Verifies that a request accepts JSON-LD content type.
1862
+ * @param request The HTTP request to verify.
1863
+ * @throws {NotAcceptableError} If the request doesn't accept JSON-LD.
1864
+ * @since 1.8.0
1865
+ */
1866
+ const verifyJsonLdRequest = (request) => {
1867
+ if (!acceptsJsonLd(request)) throw new NotAcceptableError();
1868
+ };
1869
+ /**
1855
1870
  * Performs authorization if needed based on the authorization predicate.
1856
1871
  * @template TContextData The context data type.
1857
1872
  * @param {RequestContext<TContextData>} context The request context.
@@ -1935,6 +1950,15 @@ var ItemsNotFoundError = class extends HandlerError {
1935
1950
  }
1936
1951
  };
1937
1952
  /**
1953
+ * Error thrown when the request is not acceptable (e.g., wrong content type).
1954
+ * @since 1.8.0
1955
+ */
1956
+ var NotAcceptableError = class extends HandlerError {
1957
+ constructor() {
1958
+ super("The request is not acceptable.");
1959
+ }
1960
+ };
1961
+ /**
1938
1962
  * Error thrown when access to a collection is unauthorized.
1939
1963
  * @since 1.8.0
1940
1964
  */
@@ -2932,7 +2956,6 @@ var FederationImpl = class extends FederationBuilderImpl {
2932
2956
  span,
2933
2957
  tracer
2934
2958
  });
2935
- if (acceptsJsonLd(request)) response.headers.set("Vary", "Accept");
2936
2959
  } catch (error) {
2937
2960
  span.setStatus({
2938
2961
  code: __opentelemetry_api.SpanStatusCode.ERROR,
@@ -2996,9 +3019,6 @@ var FederationImpl = class extends FederationBuilderImpl {
2996
3019
  context: context$2,
2997
3020
  nodeInfoDispatcher: this.nodeInfoDispatcher
2998
3021
  });
2999
- }
3000
- if (!acceptsJsonLd(request)) return await onNotAcceptable(request);
3001
- switch (routeName) {
3002
3022
  case "actor":
3003
3023
  context$2 = this.#createContext(request, contextData, { invokedFromActorDispatcher: { identifier: route.values.identifier ?? route.values.handle } });
3004
3024
  return await handleActor(request, {
@@ -3007,7 +3027,8 @@ var FederationImpl = class extends FederationBuilderImpl {
3007
3027
  actorDispatcher: this.actorCallbacks?.dispatcher,
3008
3028
  authorizePredicate: this.actorCallbacks?.authorizePredicate,
3009
3029
  onUnauthorized,
3010
- onNotFound
3030
+ onNotFound,
3031
+ onNotAcceptable
3011
3032
  });
3012
3033
  case "object": {
3013
3034
  const typeId = route.name.replace(/^object:/, "");
@@ -3023,7 +3044,8 @@ var FederationImpl = class extends FederationBuilderImpl {
3023
3044
  objectDispatcher: callbacks?.dispatcher,
3024
3045
  authorizePredicate: callbacks?.authorizePredicate,
3025
3046
  onUnauthorized,
3026
- onNotFound
3047
+ onNotFound,
3048
+ onNotAcceptable
3027
3049
  });
3028
3050
  }
3029
3051
  case "outbox": return await handleCollection(request, {
@@ -3034,7 +3056,8 @@ var FederationImpl = class extends FederationBuilderImpl {
3034
3056
  collectionCallbacks: this.outboxCallbacks,
3035
3057
  tracerProvider: this.tracerProvider,
3036
3058
  onUnauthorized,
3037
- onNotFound
3059
+ onNotFound,
3060
+ onNotAcceptable
3038
3061
  });
3039
3062
  case "inbox":
3040
3063
  if (request.method !== "POST") return await handleCollection(request, {
@@ -3045,7 +3068,8 @@ var FederationImpl = class extends FederationBuilderImpl {
3045
3068
  collectionCallbacks: this.inboxCallbacks,
3046
3069
  tracerProvider: this.tracerProvider,
3047
3070
  onUnauthorized,
3048
- onNotFound
3071
+ onNotFound,
3072
+ onNotAcceptable
3049
3073
  });
3050
3074
  context$2 = this.#createContext(request, contextData, { documentLoader: await context$2.getDocumentLoader({ identifier: route.values.identifier ?? route.values.handle }) });
3051
3075
  case "sharedInbox":
@@ -3077,7 +3101,8 @@ var FederationImpl = class extends FederationBuilderImpl {
3077
3101
  collectionCallbacks: this.followingCallbacks,
3078
3102
  tracerProvider: this.tracerProvider,
3079
3103
  onUnauthorized,
3080
- onNotFound
3104
+ onNotFound,
3105
+ onNotAcceptable
3081
3106
  });
3082
3107
  case "followers": {
3083
3108
  let baseUrl = url.searchParams.get("base-url");
@@ -3100,7 +3125,8 @@ var FederationImpl = class extends FederationBuilderImpl {
3100
3125
  collectionCallbacks: this.followersCallbacks,
3101
3126
  tracerProvider: this.tracerProvider,
3102
3127
  onUnauthorized,
3103
- onNotFound
3128
+ onNotFound,
3129
+ onNotAcceptable
3104
3130
  });
3105
3131
  }
3106
3132
  case "liked": return await handleCollection(request, {
@@ -3111,7 +3137,8 @@ var FederationImpl = class extends FederationBuilderImpl {
3111
3137
  collectionCallbacks: this.likedCallbacks,
3112
3138
  tracerProvider: this.tracerProvider,
3113
3139
  onUnauthorized,
3114
- onNotFound
3140
+ onNotFound,
3141
+ onNotAcceptable
3115
3142
  });
3116
3143
  case "featured": return await handleCollection(request, {
3117
3144
  name: "featured",
@@ -3121,7 +3148,8 @@ var FederationImpl = class extends FederationBuilderImpl {
3121
3148
  collectionCallbacks: this.featuredCallbacks,
3122
3149
  tracerProvider: this.tracerProvider,
3123
3150
  onUnauthorized,
3124
- onNotFound
3151
+ onNotFound,
3152
+ onNotAcceptable
3125
3153
  });
3126
3154
  case "featuredTags": return await handleCollection(request, {
3127
3155
  name: "featured tags",
@@ -3131,7 +3159,8 @@ var FederationImpl = class extends FederationBuilderImpl {
3131
3159
  collectionCallbacks: this.featuredTagsCallbacks,
3132
3160
  tracerProvider: this.tracerProvider,
3133
3161
  onUnauthorized,
3134
- onNotFound
3162
+ onNotFound,
3163
+ onNotAcceptable
3135
3164
  });
3136
3165
  case "collection": {
3137
3166
  const name = route.name.replace(/^collection:/, "");
@@ -3143,7 +3172,8 @@ var FederationImpl = class extends FederationBuilderImpl {
3143
3172
  collectionCallbacks: callbacks,
3144
3173
  tracerProvider: this.tracerProvider,
3145
3174
  onUnauthorized,
3146
- onNotFound
3175
+ onNotFound,
3176
+ onNotAcceptable
3147
3177
  });
3148
3178
  }
3149
3179
  case "orderedCollection": {
@@ -3156,7 +3186,8 @@ var FederationImpl = class extends FederationBuilderImpl {
3156
3186
  collectionCallbacks: callbacks,
3157
3187
  tracerProvider: this.tracerProvider,
3158
3188
  onUnauthorized,
3159
- onNotFound
3189
+ onNotFound,
3190
+ onNotAcceptable
3160
3191
  });
3161
3192
  }
3162
3193
  default: {
@@ -0,0 +1,25 @@
1
+
2
+ import { Temporal } from "@js-temporal/polyfill";
3
+ import { URLPattern } from "urlpattern-polyfill";
4
+ globalThis.addEventListener = () => {};
5
+
6
+ import "./type-FCer_9yh.js";
7
+ import { ContextImpl, FederationImpl, InboxContextImpl, KvSpecDeterminer, createFederation } from "./middleware-BDN7YoYJ.js";
8
+ import "./client-BqyuOGiQ.js";
9
+ import "./lookup-BrhURkmj.js";
10
+ import "./types-BSuWJsOm.js";
11
+ import "./actor-Cpal85xW.js";
12
+ import "./key-DORX19Bl.js";
13
+ import "./http-y7khnX5Q.js";
14
+ import "./authdocloader-Df2BFefL.js";
15
+ import "./ld-D3cq9xO1.js";
16
+ import "./owner-NFlQJyvM.js";
17
+ import "./proof-ar9xgPWi.js";
18
+ import "./inbox-DpcYOzs8.js";
19
+ import "./builder-CMxichO9.js";
20
+ import "./collection-CcnIw1qY.js";
21
+ import "./keycache-AH1uj1j-.js";
22
+ import "./retry-CfF8Gn4d.js";
23
+ import "./send-DkwkMFjJ.js";
24
+
25
+ export { FederationImpl };
@@ -1,5 +1,5 @@
1
1
  import { Activity } from "./vocab-DJTYMqyU.cjs";
2
- import { ActivityTransformer, Context } from "./context-tVOQ76fi.cjs";
2
+ import { ActivityTransformer, Context } from "./context-Dq8aCtMH.cjs";
3
3
 
4
4
  //#region src/compat/transformers.d.ts
5
5
 
@@ -1,7 +1,7 @@
1
1
  import { Temporal } from "@js-temporal/polyfill";
2
2
  import { URLPattern } from "urlpattern-polyfill";
3
3
  import { Activity } from "./vocab-SOE1ifCr.js";
4
- import { ActivityTransformer, Context } from "./context-CQsAT7xk.js";
4
+ import { ActivityTransformer, Context } from "./context-CDSZdQHD.js";
5
5
 
6
6
  //#region src/compat/transformers.d.ts
7
7
 
package/dist/mod.cjs CHANGED
@@ -4,17 +4,17 @@
4
4
 
5
5
  const require_transformers = require('./transformers-CoBS-oFG.cjs');
6
6
  require('./compat-DmDDELst.cjs');
7
- const require_docloader = require('./docloader-NJZ5ADV3.cjs');
8
- const require_actor = require('./actor-Dd2E4F9C.cjs');
9
- const require_middleware = require('./middleware-DGvzxKjo.cjs');
10
- const require_lookup = require('./lookup-BZzUCUat.cjs');
11
- const require_key = require('./key-CYrKbGH0.cjs');
12
- const require_http = require('./http-DH8DQz2-.cjs');
13
- const require_proof = require('./proof-BzKiLsN7.cjs');
7
+ const require_docloader = require('./docloader-B1O1Z5OK.cjs');
8
+ const require_actor = require('./actor-C3gJhZJj.cjs');
9
+ const require_middleware = require('./middleware-Gsxukxs5.cjs');
10
+ const require_lookup = require('./lookup-7u217Q3H.cjs');
11
+ const require_key = require('./key-CzF9SAEI.cjs');
12
+ const require_http = require('./http-Hw9HJp9i.cjs');
13
+ const require_proof = require('./proof-Gip91fK7.cjs');
14
14
  const require_federation = require('./federation-H2_En3j5.cjs');
15
- const require_types = require('./types-zwVAf9LF.cjs');
16
- const require_authdocloader = require('./authdocloader-B28UEZlz.cjs');
17
- const require_vocab = require('./vocab-Bj8iyEkG.cjs');
15
+ const require_types = require('./types-CZ_qo9KW.cjs');
16
+ const require_authdocloader = require('./authdocloader-DPCGwidE.cjs');
17
+ const require_vocab = require('./vocab-9MjZjuZb.cjs');
18
18
  require('./nodeinfo-Co9lJrWl.cjs');
19
19
  require('./runtime-C58AJWSv.cjs');
20
20
  require('./sig-ByHXzqUi.cjs');
package/dist/mod.d.cts CHANGED
@@ -7,9 +7,9 @@ import { FetchKeyOptions, FetchKeyResult, HttpMessageSignaturesSpec, HttpMessage
7
7
  import { DoesActorOwnKeyOptions, GetKeyOwnerOptions, doesActorOwnKey, getKeyOwner } from "./owner-B-7Ptt_m.cjs";
8
8
  import { FediverseHandle, LookupObjectOptions, PUBLIC_COLLECTION, TraverseCollectionOptions, getTypeId, isFediverseHandle, lookupObject, parseFediverseHandle, toAcctUrl, traverseCollection } from "./mod-evzlRVZq.cjs";
9
9
  import { ResourceDescriptor, lookupWebFinger } from "./mod-jQ4OODsl.cjs";
10
- import { ActivityTransformer, ActorAliasMapper, ActorCallbackSetters, ActorDispatcher, ActorHandleMapper, ActorKeyPair, ActorKeyPairsDispatcher, AuthorizePredicate, CollectionCallbackSetters, CollectionCounter, CollectionCursor, CollectionDispatcher, ConstructorWithTypeId, Context, CreateExponentialBackoffPolicyOptions, CreateFederationOptions, CustomCollectionCallbackSetters, CustomCollectionCounter, CustomCollectionCursor, CustomCollectionDispatcher, Federatable, Federation, FederationBuilder, FederationFetchOptions, FederationKvPrefixes, FederationOptions, FederationOrigin, FederationQueueOptions, FederationStartQueueOptions, ForwardActivityOptions, GetSignedKeyOptions, InboxContext, InboxErrorHandler, InboxListener, InboxListenerSetters, Message, NodeInfoDispatcher, ObjectAuthorizePredicate, ObjectCallbackSetters, ObjectDispatcher, OutboxErrorHandler, PageItems, ParamsKeyPath, ParseUriResult, RequestContext, RespondWithObjectOptions, RetryContext, RetryPolicy, RouteActivityOptions, Router, RouterError, RouterOptions, RouterRouteResult, SendActivityOptions, SendActivityOptionsForCollection, SenderKeyPair, SharedInboxKeyDispatcher, WebFingerLinksDispatcher, buildCollectionSynchronizationHeader, createExponentialBackoffPolicy, createFederation, createFederationBuilder, digest, respondWithObject, respondWithObjectIfAcceptable } from "./context-tVOQ76fi.cjs";
10
+ import { ActivityTransformer, ActorAliasMapper, ActorCallbackSetters, ActorDispatcher, ActorHandleMapper, ActorKeyPair, ActorKeyPairsDispatcher, AuthorizePredicate, CollectionCallbackSetters, CollectionCounter, CollectionCursor, CollectionDispatcher, ConstructorWithTypeId, Context, CreateExponentialBackoffPolicyOptions, CreateFederationOptions, CustomCollectionCallbackSetters, CustomCollectionCounter, CustomCollectionCursor, CustomCollectionDispatcher, Federatable, Federation, FederationBuilder, FederationFetchOptions, FederationKvPrefixes, FederationOptions, FederationOrigin, FederationQueueOptions, FederationStartQueueOptions, ForwardActivityOptions, GetSignedKeyOptions, InboxContext, InboxErrorHandler, InboxListener, InboxListenerSetters, Message, NodeInfoDispatcher, ObjectAuthorizePredicate, ObjectCallbackSetters, ObjectDispatcher, OutboxErrorHandler, PageItems, ParamsKeyPath, ParseUriResult, RequestContext, RespondWithObjectOptions, RetryContext, RetryPolicy, RouteActivityOptions, Router, RouterError, RouterOptions, RouterRouteResult, SendActivityOptions, SendActivityOptionsForCollection, SenderKeyPair, SharedInboxKeyDispatcher, WebFingerLinksDispatcher, buildCollectionSynchronizationHeader, createExponentialBackoffPolicy, createFederation, createFederationBuilder, digest, respondWithObject, respondWithObjectIfAcceptable } from "./context-Dq8aCtMH.cjs";
11
11
  import { InProcessMessageQueue, InProcessMessageQueueOptions, MessageQueue, MessageQueueEnqueueOptions, MessageQueueListenOptions, ParallelMessageQueue } from "./mq-B7R1Q-M5.cjs";
12
- import { actorDehydrator, autoIdAssigner, getDefaultActivityTransformers } from "./mod-DBQAI4v9.cjs";
12
+ import { actorDehydrator, autoIdAssigner, getDefaultActivityTransformers } from "./mod-BhMnAkFX.cjs";
13
13
  import "./mod-C2tOeRkN.cjs";
14
14
  import "./mod-FZd39qVq.cjs";
15
15
  import { GetAuthenticatedDocumentLoaderOptions, exportMultibaseKey, exportSpki, getAuthenticatedDocumentLoader, importMultibaseKey, importPem, importPkcs1, importSpki } from "./mod-Dc_-mf8s.cjs";