@fedify/fedify 2.0.0-dev.1641 → 2.0.0-dev.1690

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 (147) hide show
  1. package/dist/{actor-CP03csrm.cjs → actor-Be0ThtXy.cjs} +7263 -2440
  2. package/dist/{actor-DU511yTk.js → actor-ChbPLm6n.js} +7263 -2440
  3. package/dist/{actor-DMgu-ZjT.d.cts → actor-D6K058Tb.d.cts} +1 -1
  4. package/dist/{actor-DVpsNXhn.js → actor-DuCeRiNh.js} +1 -1
  5. package/dist/{actor-C22bXuuC.d.ts → actor-T6RyhRgk.d.ts} +1 -1
  6. package/dist/{assert_rejects-7UF4R_Qs.js → assert_rejects-DiIiJbZn.js} +1 -1
  7. package/dist/{assert_throws-53_pKeP3.js → assert_throws-BOO88avQ.js} +1 -1
  8. package/dist/{authdocloader-BkIZCKQv.js → authdocloader-Brax1A32.js} +3 -3
  9. package/dist/{authdocloader-DCgMyo82.js → authdocloader-CrxhFL8e.js} +3 -3
  10. package/dist/{authdocloader-BnsFSERg.cjs → authdocloader-OSn_teLV.cjs} +3 -3
  11. package/dist/{builder-E2Icrl_a.js → builder-CYOcDUkj.js} +10 -4
  12. package/dist/{client-BW4V0OJx.js → client-CnOdwLLN.js} +1 -1
  13. package/dist/compat/mod.d.cts +7 -7
  14. package/dist/compat/mod.d.ts +7 -7
  15. package/dist/compat/transformers.test.js +18 -17
  16. package/dist/{context-CDSZdQHD.d.ts → context-ByZprN0S.d.ts} +66 -6
  17. package/dist/{context-Dq8aCtMH.d.cts → context-C5BsZkDr.d.cts} +66 -6
  18. package/dist/{docloader-kae6M-GI.cjs → docloader-CCqXeagZ.cjs} +2 -2
  19. package/dist/{docloader-BtqIh1OE.js → docloader-XK3y2jn5.js} +2 -2
  20. package/dist/{esm-mtx3XJAD.js → esm-DnIzfEj0.js} +1 -1
  21. package/dist/federation/builder.test.js +10 -10
  22. package/dist/federation/collection.test.js +8 -8
  23. package/dist/federation/handler.test.js +26 -145
  24. package/dist/federation/idempotency.test.d.ts +3 -0
  25. package/dist/federation/idempotency.test.js +202 -0
  26. package/dist/federation/inbox.test.js +6 -6
  27. package/dist/federation/keycache.test.js +4 -4
  28. package/dist/federation/kv.test.js +8 -8
  29. package/dist/federation/middleware.test.js +232 -38
  30. package/dist/federation/mod.cjs +10 -10
  31. package/dist/federation/mod.d.cts +7 -7
  32. package/dist/federation/mod.d.ts +7 -7
  33. package/dist/federation/mod.js +10 -10
  34. package/dist/federation/mq.test.js +10 -10
  35. package/dist/federation/negotiation.test.d.ts +3 -0
  36. package/dist/federation/negotiation.test.js +28 -0
  37. package/dist/federation/retry.test.js +5 -5
  38. package/dist/federation/router.test.js +8 -8
  39. package/dist/federation/send.test.js +15 -15
  40. package/dist/fixtures/media.example.com/avatars/test-avatar.jpg.json +6 -0
  41. package/dist/{http-Cox5GsED.js → http-BNOYnVsU.js} +2 -2
  42. package/dist/{http-C7uYFcBo.js → http-BxbM8sEy.js} +3 -3
  43. package/dist/{http-ZhcoaYEa.cjs → http-C7vbQwbz.cjs} +3 -3
  44. package/dist/{http-BS6766zs.d.cts → http-D-e6AFwR.d.cts} +1 -1
  45. package/dist/{http-DqSNLFNY.d.ts → http-D6Uj2x2y.d.ts} +1 -1
  46. package/dist/{inbox-BDdRbWNI.js → inbox-BRru9pX3.js} +24 -7
  47. package/dist/{key-CfiBDu3o.js → key-1KXru8Ug.js} +2 -2
  48. package/dist/{key-B9Z5ZuX9.js → key-B3uag-rz.js} +4 -4
  49. package/dist/key-BiBmb1Yy.cjs +10 -0
  50. package/dist/{key-CgwCzDC4.js → key-DK_nfU4I.js} +3 -3
  51. package/dist/{key-HqzOCwDc.cjs → key-Z6ceKnZC.cjs} +2 -2
  52. package/dist/{key-Cc0JlcKe.js → key-jyNTxCvK.js} +2 -2
  53. package/dist/{keycache-CVBjz3xi.js → keycache-CN61iGVj.js} +1 -1
  54. package/dist/{keys-CBKbYaJA.js → keys-BPdFKgiy.js} +1 -1
  55. package/dist/{ld-CxgmnSO3.js → ld-Dv8DNNAT.js} +2 -2
  56. package/dist/{lookup-NuT9cCSl.js → lookup-BPviO8ij.js} +1 -1
  57. package/dist/{lookup-QHjmy4Og.cjs → lookup-hnMAAU5r.cjs} +1 -1
  58. package/dist/{lookup-CiU3QxQz.js → lookup-pV0JOsuV.js} +21 -12
  59. package/dist/{middleware-LyCG_YVM.cjs → middleware-BmoOlgc1.cjs} +69 -73
  60. package/dist/{middleware-DXidHY4N.js → middleware-Bz_A2jeJ.js} +69 -73
  61. package/dist/middleware-CI0-zw4U.js +26 -0
  62. package/dist/{middleware-ByPnvMMS.js → middleware-DY9B2lL8.js} +43 -134
  63. package/dist/middleware-QNK-W-jE.cjs +17 -0
  64. package/dist/middleware-_vjt6FWU.js +17 -0
  65. package/dist/{mod-BhMnAkFX.d.cts → mod-8DMWKtQE.d.cts} +2 -2
  66. package/dist/{mod-Drmz72EK.d.ts → mod-BhUKmBJD.d.ts} +2 -2
  67. package/dist/{mod-TFoH2Ql8.d.ts → mod-CerN_Sza.d.ts} +1 -1
  68. package/dist/{mod-Dc_-mf8s.d.cts → mod-Cj1tHXBR.d.cts} +1 -1
  69. package/dist/{mod-evzlRVZq.d.cts → mod-CxkWO3Mg.d.cts} +19 -1
  70. package/dist/{mod-RI3-KvUI.d.ts → mod-D6hQoxC5.d.ts} +2 -2
  71. package/dist/{mod-BClfg3ej.d.cts → mod-Djzcw2ry.d.cts} +2 -2
  72. package/dist/{mod-Cxt4Kpf6.d.ts → mod-DlU8ISoa.d.ts} +19 -1
  73. package/dist/mod.cjs +10 -10
  74. package/dist/mod.d.cts +10 -10
  75. package/dist/mod.d.ts +10 -10
  76. package/dist/mod.js +10 -10
  77. package/dist/negotiation-5NPJL6zp.js +71 -0
  78. package/dist/nodeinfo/client.test.js +10 -10
  79. package/dist/nodeinfo/handler.test.js +23 -22
  80. package/dist/nodeinfo/mod.cjs +2 -2
  81. package/dist/nodeinfo/mod.js +2 -2
  82. package/dist/nodeinfo/types.test.js +8 -8
  83. package/dist/{owner-B-7Ptt_m.d.cts → owner-BN_tO3cY.d.cts} +2 -2
  84. package/dist/{owner-Cxob5_PK.js → owner-e3FYDhsk.js} +2 -2
  85. package/dist/{owner-CQPnQVtf.d.ts → owner-hd9lvQcP.d.ts} +2 -2
  86. package/dist/{proof-BiSQNUmQ.js → proof-6gFMwMNJ.js} +2 -2
  87. package/dist/{proof-2Gcor0_N.cjs → proof-B-eqv0Ug.cjs} +3 -3
  88. package/dist/{proof-DkxwMaWE.js → proof-DfgvA3al.js} +3 -3
  89. package/dist/runtime/authdocloader.test.js +14 -14
  90. package/dist/runtime/docloader.test.js +9 -9
  91. package/dist/runtime/key.test.js +10 -10
  92. package/dist/runtime/langstr.test.js +8 -8
  93. package/dist/runtime/link.test.js +3 -3
  94. package/dist/runtime/mod.cjs +6 -6
  95. package/dist/runtime/mod.d.cts +3 -3
  96. package/dist/runtime/mod.d.ts +3 -3
  97. package/dist/runtime/mod.js +6 -6
  98. package/dist/runtime/multibase/multibase.test.js +8 -8
  99. package/dist/runtime/url.test.js +5 -5
  100. package/dist/{send-DSEhWIYD.js → send-Tl9NOnmO.js} +2 -2
  101. package/dist/sig/http.test.js +13 -13
  102. package/dist/sig/key.test.js +11 -11
  103. package/dist/sig/ld.test.js +10 -10
  104. package/dist/sig/mod.cjs +6 -6
  105. package/dist/sig/mod.d.cts +5 -5
  106. package/dist/sig/mod.d.ts +5 -5
  107. package/dist/sig/mod.js +6 -6
  108. package/dist/sig/owner.test.js +12 -12
  109. package/dist/sig/proof.test.js +12 -12
  110. package/dist/testing/docloader.test.js +8 -8
  111. package/dist/testing/mod.d.ts +272 -0
  112. package/dist/testing/mod.js +3 -3
  113. package/dist/{testing-ByQmUvf-.js → testing-BWNCAbL-.js} +2 -2
  114. package/dist/{type-B4NJkfVg.js → type-C69ZBu7f.js} +6944 -2121
  115. package/dist/{types-l2uh_ZhP.js → types-DqxyTxOf.js} +1 -1
  116. package/dist/{types-Bqt2EgP0.cjs → types-zqdWZh4O.cjs} +1 -1
  117. package/dist/vocab/actor.test.js +10 -10
  118. package/dist/vocab/lookup.test.js +259 -9
  119. package/dist/vocab/mod.cjs +4 -4
  120. package/dist/vocab/mod.d.cts +3 -3
  121. package/dist/vocab/mod.d.ts +3 -3
  122. package/dist/vocab/mod.js +4 -4
  123. package/dist/vocab/type.test.js +3 -3
  124. package/dist/vocab/vocab.test.js +402 -13
  125. package/dist/{vocab-B0-5a8pw.cjs → vocab-B39-pFl9.cjs} +23 -14
  126. package/dist/{vocab-SOE1ifCr.d.ts → vocab-BI0Ak5lL.d.ts} +290 -0
  127. package/dist/{vocab-lBFcVxVF.js → vocab-BWoeZsME.js} +23 -14
  128. package/dist/{vocab-DJTYMqyU.d.cts → vocab-Dw1-yVGg.d.cts} +290 -0
  129. package/dist/webfinger/handler.test.js +23 -22
  130. package/dist/webfinger/lookup.test.js +9 -9
  131. package/dist/webfinger/mod.cjs +2 -2
  132. package/dist/webfinger/mod.js +2 -2
  133. package/dist/x/cfworkers.test.js +8 -8
  134. package/dist/x/hono.d.cts +6 -6
  135. package/dist/x/hono.d.ts +6 -6
  136. package/dist/x/sveltekit.d.cts +6 -6
  137. package/dist/x/sveltekit.d.ts +6 -6
  138. package/package.json +1 -1
  139. package/dist/key-D-7DPHNl.cjs +0 -10
  140. package/dist/middleware-BHboQ4BE.js +0 -25
  141. package/dist/middleware-Bp3I9z8r.js +0 -17
  142. package/dist/middleware-oYqSU5ky.cjs +0 -17
  143. /package/dist/{assert_is_error-B035L3om.js → assert_is_error-BPGph1Jx.js} +0 -0
  144. /package/dist/{assert_not_equals-C80BG-_5.js → assert_not_equals-f3m3epl3.js} +0 -0
  145. /package/dist/{denokv-jZ0Z2h0M.js → denokv-Bv33Xxea.js} +0 -0
  146. /package/dist/{retry-CfF8Gn4d.js → retry-D4GJ670a.js} +0 -0
  147. /package/dist/{std__assert-DWivtrGR.js → std__assert-X-_kMxKM.js} +0 -0
@@ -3,22 +3,23 @@
3
3
  import { URLPattern } from "urlpattern-polyfill";
4
4
  globalThis.addEventListener = () => {};
5
5
 
6
- import { Activity, Collection, CollectionPage, CryptographicKey, Link, Multikey, Object as Object$1, OrderedCollection, OrderedCollectionPage, deno_default, getDocumentLoader, getTypeId, kvCache, lookupWebFinger } from "./type-B4NJkfVg.js";
7
- import { getNodeInfo } from "./client-BW4V0OJx.js";
8
- import { RouterError, lookupObject, traverseCollection } from "./lookup-CiU3QxQz.js";
6
+ import { Activity, Collection, CollectionPage, CryptographicKey, Link, Multikey, Object as Object$1, OrderedCollection, OrderedCollectionPage, deno_default, getDocumentLoader, getTypeId, kvCache, lookupWebFinger } from "./type-C69ZBu7f.js";
7
+ import { getNodeInfo } from "./client-CnOdwLLN.js";
8
+ import { RouterError, lookupObject, traverseCollection } from "./lookup-pV0JOsuV.js";
9
9
  import { nodeInfoToJson } from "./types-BSuWJsOm.js";
10
- import { exportJwk, importJwk, validateCryptoKey } from "./key-CfiBDu3o.js";
11
- import { verifyRequest } from "./http-Cox5GsED.js";
12
- import { getAuthenticatedDocumentLoader } from "./authdocloader-BkIZCKQv.js";
13
- import { detachSignature, hasSignature, signJsonLd, verifyJsonLd } from "./ld-CxgmnSO3.js";
14
- import { doesActorOwnKey, getKeyOwner } from "./owner-Cxob5_PK.js";
15
- import { signObject, verifyObject } from "./proof-BiSQNUmQ.js";
16
- import { routeActivity } from "./inbox-BDdRbWNI.js";
17
- import { FederationBuilderImpl } from "./builder-E2Icrl_a.js";
10
+ import { exportJwk, importJwk, validateCryptoKey } from "./key-1KXru8Ug.js";
11
+ import { verifyRequest } from "./http-BNOYnVsU.js";
12
+ import { getAuthenticatedDocumentLoader } from "./authdocloader-Brax1A32.js";
13
+ import { detachSignature, hasSignature, signJsonLd, verifyJsonLd } from "./ld-Dv8DNNAT.js";
14
+ import { doesActorOwnKey, getKeyOwner } from "./owner-e3FYDhsk.js";
15
+ import { signObject, verifyObject } from "./proof-6gFMwMNJ.js";
16
+ import { routeActivity } from "./inbox-BRru9pX3.js";
17
+ import { FederationBuilderImpl } from "./builder-CYOcDUkj.js";
18
18
  import { buildCollectionSynchronizationHeader } from "./collection-CcnIw1qY.js";
19
- import { KvKeyCache } from "./keycache-CVBjz3xi.js";
20
- import { createExponentialBackoffPolicy } from "./retry-CfF8Gn4d.js";
21
- import { extractInboxes, sendActivity } from "./send-DSEhWIYD.js";
19
+ import { KvKeyCache } from "./keycache-CN61iGVj.js";
20
+ import { acceptsJsonLd } from "./negotiation-5NPJL6zp.js";
21
+ import { createExponentialBackoffPolicy } from "./retry-D4GJ670a.js";
22
+ import { extractInboxes, sendActivity } from "./send-Tl9NOnmO.js";
22
23
  import { getLogger, withContext } from "@logtape/logtape";
23
24
  import { SpanKind, SpanStatusCode, context, propagation, trace } from "@opentelemetry/api";
24
25
  import { ATTR_HTTP_REQUEST_HEADER, ATTR_HTTP_REQUEST_METHOD, ATTR_HTTP_RESPONSE_HEADER, ATTR_HTTP_RESPONSE_STATUS_CODE, ATTR_URL_FULL } from "@opentelemetry/semantic-conventions";
@@ -297,73 +298,8 @@ async function handleWebFingerInternal(request, { context: context$1, host, acto
297
298
  } });
298
299
  }
299
300
 
300
- //#endregion
301
- //#region src/federation/negotiation.ts
302
- function compareSpecs(a, b) {
303
- return b.q - a.q || (b.s ?? 0) - (a.s ?? 0) || (a.o ?? 0) - (b.o ?? 0) || a.i - b.i || 0;
304
- }
305
- function isQuality(spec) {
306
- return spec.q > 0;
307
- }
308
- const simpleMediaTypeRegExp = /^\s*([^\s\/;]+)\/([^;\s]+)\s*(?:;(.*))?$/;
309
- function splitKeyValuePair(str) {
310
- const [key, value] = str.split("=");
311
- return [key.toLowerCase(), value];
312
- }
313
- function parseMediaType(str, i) {
314
- const match = simpleMediaTypeRegExp.exec(str);
315
- if (!match) return;
316
- const [, type, subtype, parameters] = match;
317
- if (!type || !subtype) return;
318
- const params = Object.create(null);
319
- let q = 1;
320
- if (parameters) {
321
- const kvps = parameters.split(";").map((p) => p.trim()).map(splitKeyValuePair);
322
- for (const [key, val] of kvps) {
323
- const value = val && val[0] === `"` && val[val.length - 1] === `"` ? val.slice(1, val.length - 1) : val;
324
- if (key === "q" && value) {
325
- q = parseFloat(value);
326
- break;
327
- }
328
- params[key] = value;
329
- }
330
- }
331
- return {
332
- type,
333
- subtype,
334
- params,
335
- i,
336
- o: void 0,
337
- q,
338
- s: void 0
339
- };
340
- }
341
- function parseAccept(accept) {
342
- const accepts = accept.split(",").map((p) => p.trim());
343
- const mediaTypes = [];
344
- for (const [index, accept$1] of accepts.entries()) {
345
- const mediaType = parseMediaType(accept$1.trim(), index);
346
- if (mediaType) mediaTypes.push(mediaType);
347
- }
348
- return mediaTypes;
349
- }
350
- function getFullType(spec) {
351
- return `${spec.type}/${spec.subtype}`;
352
- }
353
- function preferredMediaTypes(accept) {
354
- const accepts = parseAccept(accept === void 0 ? "*/*" : accept ?? "");
355
- return accepts.filter(isQuality).sort(compareSpecs).map(getFullType);
356
- }
357
-
358
301
  //#endregion
359
302
  //#region src/federation/handler.ts
360
- function acceptsJsonLd(request) {
361
- const accept = request.headers.get("Accept");
362
- const types = accept ? preferredMediaTypes(accept) : ["*/*"];
363
- if (types == null) return true;
364
- if (types[0] === "text/html" || types[0] === "application/xhtml+xml") return false;
365
- return types.includes("application/activity+json") || types.includes("application/ld+json") || types.includes("application/json");
366
- }
367
303
  /**
368
304
  * Handles an actor request.
369
305
  * @template TContextData The context data to pass to the context.
@@ -371,7 +307,7 @@ function acceptsJsonLd(request) {
371
307
  * @param parameters The parameters for handling the actor.
372
308
  * @returns A promise that resolves to an HTTP response.
373
309
  */
374
- async function handleActor(request, { identifier, context: context$1, actorDispatcher, authorizePredicate, onNotFound, onNotAcceptable, onUnauthorized }) {
310
+ async function handleActor(request, { identifier, context: context$1, actorDispatcher, authorizePredicate, onNotFound, onUnauthorized }) {
375
311
  const logger$2 = getLogger([
376
312
  "fedify",
377
313
  "federation",
@@ -386,7 +322,6 @@ async function handleActor(request, { identifier, context: context$1, actorDispa
386
322
  logger$2.debug("Actor {identifier} not found.", { identifier });
387
323
  return await onNotFound(request);
388
324
  }
389
- if (!acceptsJsonLd(request)) return await onNotAcceptable(request);
390
325
  if (authorizePredicate != null) {
391
326
  let key = await context$1.getSignedKey();
392
327
  key = key?.clone({}, { $warning: {
@@ -421,11 +356,10 @@ async function handleActor(request, { identifier, context: context$1, actorDispa
421
356
  * @param parameters The parameters for handling the object.
422
357
  * @returns A promise that resolves to an HTTP response.
423
358
  */
424
- async function handleObject(request, { values, context: context$1, objectDispatcher, authorizePredicate, onNotFound, onNotAcceptable, onUnauthorized }) {
359
+ async function handleObject(request, { values, context: context$1, objectDispatcher, authorizePredicate, onNotFound, onUnauthorized }) {
425
360
  if (objectDispatcher == null) return await onNotFound(request);
426
361
  const object = await objectDispatcher(context$1, values);
427
362
  if (object == null) return await onNotFound(request);
428
- if (!acceptsJsonLd(request)) return await onNotAcceptable(request);
429
363
  if (authorizePredicate != null) {
430
364
  let key = await context$1.getSignedKey();
431
365
  key = key?.clone({}, { $warning: {
@@ -463,7 +397,7 @@ async function handleObject(request, { values, context: context$1, objectDispatc
463
397
  * @param parameters The parameters for handling the collection.
464
398
  * @returns A promise that resolves to an HTTP response.
465
399
  */
466
- async function handleCollection(request, { name, identifier, uriGetter, filter, filterPredicate, context: context$1, collectionCallbacks, tracerProvider, onUnauthorized, onNotFound, onNotAcceptable }) {
400
+ async function handleCollection(request, { name, identifier, uriGetter, filter, filterPredicate, context: context$1, collectionCallbacks, tracerProvider, onUnauthorized, onNotFound }) {
467
401
  const spanName = name.trim().replace(/\s+/g, "_");
468
402
  tracerProvider = tracerProvider ?? trace.getTracerProvider();
469
403
  const tracer = tracerProvider.getTracer(deno_default.name, deno_default.version);
@@ -576,7 +510,6 @@ async function handleCollection(request, { name, identifier, uriGetter, filter,
576
510
  partOf
577
511
  });
578
512
  }
579
- if (!acceptsJsonLd(request)) return await onNotAcceptable(request);
580
513
  if (collectionCallbacks.authorizePredicate != null) {
581
514
  let key = await context$1.getSignedKey();
582
515
  key = key?.clone({}, { $warning: {
@@ -671,7 +604,8 @@ async function handleInbox(request, options) {
671
604
  * @param span The OpenTelemetry span for tracing.
672
605
  * @returns A promise that resolves to an HTTP response.
673
606
  */
674
- async function handleInboxInternal(request, { recipient, context: ctx, inboxContextFactory, kv, kvPrefixes, queue, actorDispatcher, inboxListeners, inboxErrorHandler, onNotFound, signatureTimeWindow, skipSignatureVerification, tracerProvider }, span) {
607
+ async function handleInboxInternal(request, parameters, span) {
608
+ const { recipient, context: ctx, inboxContextFactory, kv, kvPrefixes, queue, actorDispatcher, inboxListeners, inboxErrorHandler, onNotFound, signatureTimeWindow, skipSignatureVerification, tracerProvider } = parameters;
675
609
  const logger$2 = getLogger([
676
610
  "fedify",
677
611
  "federation",
@@ -873,7 +807,8 @@ async function handleInboxInternal(request, { recipient, context: ctx, inboxCont
873
807
  kvPrefixes,
874
808
  queue,
875
809
  span,
876
- tracerProvider
810
+ tracerProvider,
811
+ idempotencyStrategy: parameters.idempotencyStrategy
877
812
  });
878
813
  if (routeResult === "alreadyProcessed") return new Response(`Activity <${activity.id}> has already been processed.`, {
879
814
  status: 202,
@@ -914,7 +849,6 @@ async function handleInboxInternal(request, { recipient, context: ctx, inboxCont
914
849
  const handleCustomCollection = exceptWrapper(_handleCustomCollection);
915
850
  async function _handleCustomCollection(request, { name, values, context: context$1, tracerProvider, collectionCallbacks: callbacks, filterPredicate }) {
916
851
  verifyDefined(callbacks);
917
- verifyJsonLdRequest(request);
918
852
  await authIfNeeded(context$1, values, callbacks);
919
853
  const cursor = new URL(request.url).searchParams.get("cursor");
920
854
  return await new CustomCollectionHandler(name, values, context$1, callbacks, tracerProvider, Collection, CollectionPage, filterPredicate).fetchCollection(cursor).toJsonLd().then(respondAsActivity);
@@ -933,7 +867,6 @@ async function _handleCustomCollection(request, { name, values, context: context
933
867
  const handleOrderedCollection = exceptWrapper(_handleOrderedCollection);
934
868
  async function _handleOrderedCollection(request, { name, values, context: context$1, tracerProvider, collectionCallbacks: callbacks, filterPredicate }) {
935
869
  verifyDefined(callbacks);
936
- verifyJsonLdRequest(request);
937
870
  await authIfNeeded(context$1, values, callbacks);
938
871
  const cursor = new URL(request.url).searchParams.get("cursor");
939
872
  return await new CustomCollectionHandler(name, values, context$1, callbacks, tracerProvider, OrderedCollection, OrderedCollectionPage, filterPredicate).fetchCollection(cursor).toJsonLd().then(respondAsActivity);
@@ -1211,10 +1144,9 @@ function exceptWrapper(handler) {
1211
1144
  try {
1212
1145
  return await handler(request, handlerParams);
1213
1146
  } catch (error) {
1214
- const { onNotFound, onNotAcceptable, onUnauthorized } = handlerParams;
1147
+ const { onNotFound, onUnauthorized } = handlerParams;
1215
1148
  switch (error?.constructor) {
1216
1149
  case ItemsNotFoundError: return await onNotFound(request);
1217
- case NotAcceptableError: return await onNotAcceptable(request);
1218
1150
  case UnauthorizedError: return await onUnauthorized(request);
1219
1151
  default: throw error;
1220
1152
  }
@@ -1232,15 +1164,6 @@ const verifyDefined = (callbacks) => {
1232
1164
  if (callbacks === void 0) throw new ItemsNotFoundError();
1233
1165
  };
1234
1166
  /**
1235
- * Verifies that a request accepts JSON-LD content type.
1236
- * @param request The HTTP request to verify.
1237
- * @throws {NotAcceptableError} If the request doesn't accept JSON-LD.
1238
- * @since 1.8.0
1239
- */
1240
- const verifyJsonLdRequest = (request) => {
1241
- if (!acceptsJsonLd(request)) throw new NotAcceptableError();
1242
- };
1243
- /**
1244
1167
  * Performs authorization if needed based on the authorization predicate.
1245
1168
  * @template TContextData The context data type.
1246
1169
  * @param {RequestContext<TContextData>} context The request context.
@@ -1324,15 +1247,6 @@ var ItemsNotFoundError = class extends HandlerError {
1324
1247
  }
1325
1248
  };
1326
1249
  /**
1327
- * Error thrown when the request is not acceptable (e.g., wrong content type).
1328
- * @since 1.8.0
1329
- */
1330
- var NotAcceptableError = class extends HandlerError {
1331
- constructor() {
1332
- super("The request is not acceptable.");
1333
- }
1334
- };
1335
- /**
1336
1250
  * Error thrown when access to a collection is unauthorized.
1337
1251
  * @since 1.8.0
1338
1252
  */
@@ -2011,6 +1925,7 @@ var FederationImpl = class extends FederationBuilderImpl {
2011
1925
  span,
2012
1926
  tracer
2013
1927
  });
1928
+ if (acceptsJsonLd(request)) response.headers.set("Vary", "Accept");
2014
1929
  } catch (error) {
2015
1930
  span.setStatus({
2016
1931
  code: SpanStatusCode.ERROR,
@@ -2074,6 +1989,9 @@ var FederationImpl = class extends FederationBuilderImpl {
2074
1989
  context: context$1,
2075
1990
  nodeInfoDispatcher: this.nodeInfoDispatcher
2076
1991
  });
1992
+ }
1993
+ if (request.method !== "POST" && !acceptsJsonLd(request)) return await onNotAcceptable(request);
1994
+ switch (routeName) {
2077
1995
  case "actor":
2078
1996
  context$1 = this.#createContext(request, contextData, { invokedFromActorDispatcher: { identifier: route.values.identifier ?? route.values.handle } });
2079
1997
  return await handleActor(request, {
@@ -2082,8 +2000,7 @@ var FederationImpl = class extends FederationBuilderImpl {
2082
2000
  actorDispatcher: this.actorCallbacks?.dispatcher,
2083
2001
  authorizePredicate: this.actorCallbacks?.authorizePredicate,
2084
2002
  onUnauthorized,
2085
- onNotFound,
2086
- onNotAcceptable
2003
+ onNotFound
2087
2004
  });
2088
2005
  case "object": {
2089
2006
  const typeId = route.name.replace(/^object:/, "");
@@ -2099,8 +2016,7 @@ var FederationImpl = class extends FederationBuilderImpl {
2099
2016
  objectDispatcher: callbacks?.dispatcher,
2100
2017
  authorizePredicate: callbacks?.authorizePredicate,
2101
2018
  onUnauthorized,
2102
- onNotFound,
2103
- onNotAcceptable
2019
+ onNotFound
2104
2020
  });
2105
2021
  }
2106
2022
  case "outbox": return await handleCollection(request, {
@@ -2111,8 +2027,7 @@ var FederationImpl = class extends FederationBuilderImpl {
2111
2027
  collectionCallbacks: this.outboxCallbacks,
2112
2028
  tracerProvider: this.tracerProvider,
2113
2029
  onUnauthorized,
2114
- onNotFound,
2115
- onNotAcceptable
2030
+ onNotFound
2116
2031
  });
2117
2032
  case "inbox":
2118
2033
  if (request.method !== "POST") return await handleCollection(request, {
@@ -2123,8 +2038,7 @@ var FederationImpl = class extends FederationBuilderImpl {
2123
2038
  collectionCallbacks: this.inboxCallbacks,
2124
2039
  tracerProvider: this.tracerProvider,
2125
2040
  onUnauthorized,
2126
- onNotFound,
2127
- onNotAcceptable
2041
+ onNotFound
2128
2042
  });
2129
2043
  context$1 = this.#createContext(request, contextData, { documentLoader: await context$1.getDocumentLoader({ identifier: route.values.identifier ?? route.values.handle }) });
2130
2044
  case "sharedInbox":
@@ -2146,7 +2060,8 @@ var FederationImpl = class extends FederationBuilderImpl {
2146
2060
  onNotFound,
2147
2061
  signatureTimeWindow: this.signatureTimeWindow,
2148
2062
  skipSignatureVerification: this.skipSignatureVerification,
2149
- tracerProvider: this.tracerProvider
2063
+ tracerProvider: this.tracerProvider,
2064
+ idempotencyStrategy: this.idempotencyStrategy
2150
2065
  });
2151
2066
  case "following": return await handleCollection(request, {
2152
2067
  name: "following",
@@ -2156,8 +2071,7 @@ var FederationImpl = class extends FederationBuilderImpl {
2156
2071
  collectionCallbacks: this.followingCallbacks,
2157
2072
  tracerProvider: this.tracerProvider,
2158
2073
  onUnauthorized,
2159
- onNotFound,
2160
- onNotAcceptable
2074
+ onNotFound
2161
2075
  });
2162
2076
  case "followers": {
2163
2077
  let baseUrl = url.searchParams.get("base-url");
@@ -2180,8 +2094,7 @@ var FederationImpl = class extends FederationBuilderImpl {
2180
2094
  collectionCallbacks: this.followersCallbacks,
2181
2095
  tracerProvider: this.tracerProvider,
2182
2096
  onUnauthorized,
2183
- onNotFound,
2184
- onNotAcceptable
2097
+ onNotFound
2185
2098
  });
2186
2099
  }
2187
2100
  case "liked": return await handleCollection(request, {
@@ -2192,8 +2105,7 @@ var FederationImpl = class extends FederationBuilderImpl {
2192
2105
  collectionCallbacks: this.likedCallbacks,
2193
2106
  tracerProvider: this.tracerProvider,
2194
2107
  onUnauthorized,
2195
- onNotFound,
2196
- onNotAcceptable
2108
+ onNotFound
2197
2109
  });
2198
2110
  case "featured": return await handleCollection(request, {
2199
2111
  name: "featured",
@@ -2203,8 +2115,7 @@ var FederationImpl = class extends FederationBuilderImpl {
2203
2115
  collectionCallbacks: this.featuredCallbacks,
2204
2116
  tracerProvider: this.tracerProvider,
2205
2117
  onUnauthorized,
2206
- onNotFound,
2207
- onNotAcceptable
2118
+ onNotFound
2208
2119
  });
2209
2120
  case "featuredTags": return await handleCollection(request, {
2210
2121
  name: "featured tags",
@@ -2214,8 +2125,7 @@ var FederationImpl = class extends FederationBuilderImpl {
2214
2125
  collectionCallbacks: this.featuredTagsCallbacks,
2215
2126
  tracerProvider: this.tracerProvider,
2216
2127
  onUnauthorized,
2217
- onNotFound,
2218
- onNotAcceptable
2128
+ onNotFound
2219
2129
  });
2220
2130
  case "collection": {
2221
2131
  const name = route.name.replace(/^collection:/, "");
@@ -2227,8 +2137,7 @@ var FederationImpl = class extends FederationBuilderImpl {
2227
2137
  collectionCallbacks: callbacks,
2228
2138
  tracerProvider: this.tracerProvider,
2229
2139
  onUnauthorized,
2230
- onNotFound,
2231
- onNotAcceptable
2140
+ onNotFound
2232
2141
  });
2233
2142
  }
2234
2143
  case "orderedCollection": {
@@ -2241,8 +2150,7 @@ var FederationImpl = class extends FederationBuilderImpl {
2241
2150
  collectionCallbacks: callbacks,
2242
2151
  tracerProvider: this.tracerProvider,
2243
2152
  onUnauthorized,
2244
- onNotFound,
2245
- onNotAcceptable
2153
+ onNotFound
2246
2154
  });
2247
2155
  }
2248
2156
  default: {
@@ -2896,7 +2804,8 @@ var ContextImpl = class ContextImpl {
2896
2804
  kvPrefixes: this.federation.kvPrefixes,
2897
2805
  queue: this.federation.inboxQueue,
2898
2806
  span,
2899
- tracerProvider: options.tracerProvider ?? this.tracerProvider
2807
+ tracerProvider: options.tracerProvider ?? this.tracerProvider,
2808
+ idempotencyStrategy: this.federation.idempotencyStrategy
2900
2809
  });
2901
2810
  return routeResult === "alreadyProcessed" || routeResult === "enqueued" || routeResult === "unsupportedActivity" || routeResult === "success";
2902
2811
  }
@@ -3210,4 +3119,4 @@ function getRequestId(request) {
3210
3119
  }
3211
3120
 
3212
3121
  //#endregion
3213
- export { ContextImpl, FederationImpl, InboxContextImpl, KvSpecDeterminer, acceptsJsonLd, actorDehydrator, autoIdAssigner, createFederation, handleActor, handleCollection, handleCustomCollection, handleInbox, handleNodeInfo, handleNodeInfoJrd, handleObject, handleWebFinger, respondWithObject, respondWithObjectIfAcceptable };
3122
+ export { ContextImpl, FederationImpl, InboxContextImpl, KvSpecDeterminer, actorDehydrator, autoIdAssigner, createFederation, handleActor, handleCollection, handleCustomCollection, handleInbox, handleNodeInfo, handleNodeInfoJrd, handleObject, handleWebFinger, respondWithObject, respondWithObjectIfAcceptable };
@@ -0,0 +1,17 @@
1
+
2
+ const { Temporal } = require("@js-temporal/polyfill");
3
+ const { URLPattern } = require("urlpattern-polyfill");
4
+
5
+ require('./transformers-CoBS-oFG.cjs');
6
+ require('./docloader-CCqXeagZ.cjs');
7
+ require('./actor-Be0ThtXy.cjs');
8
+ const require_middleware = require('./middleware-BmoOlgc1.cjs');
9
+ require('./lookup-hnMAAU5r.cjs');
10
+ require('./key-Z6ceKnZC.cjs');
11
+ require('./http-C7vbQwbz.cjs');
12
+ require('./proof-B-eqv0Ug.cjs');
13
+ require('./types-zqdWZh4O.cjs');
14
+ require('./authdocloader-OSn_teLV.cjs');
15
+ require('./vocab-B39-pFl9.cjs');
16
+
17
+ exports.FederationImpl = require_middleware.FederationImpl;
@@ -0,0 +1,17 @@
1
+
2
+ import { Temporal } from "@js-temporal/polyfill";
3
+ import { URLPattern } from "urlpattern-polyfill";
4
+
5
+ import "./transformers-BFT6d7J5.js";
6
+ import "./docloader-XK3y2jn5.js";
7
+ import "./actor-ChbPLm6n.js";
8
+ import { ContextImpl, FederationImpl, InboxContextImpl, KvSpecDeterminer, createFederation } from "./middleware-Bz_A2jeJ.js";
9
+ import "./lookup-BPviO8ij.js";
10
+ import "./key-jyNTxCvK.js";
11
+ import "./http-BxbM8sEy.js";
12
+ import "./proof-DfgvA3al.js";
13
+ import "./types-DqxyTxOf.js";
14
+ import "./authdocloader-CrxhFL8e.js";
15
+ import "./vocab-BWoeZsME.js";
16
+
17
+ export { FederationImpl };
@@ -1,5 +1,5 @@
1
- import { Activity } from "./vocab-DJTYMqyU.cjs";
2
- import { ActivityTransformer, Context } from "./context-Dq8aCtMH.cjs";
1
+ import { Activity } from "./vocab-Dw1-yVGg.cjs";
2
+ import { ActivityTransformer, Context } from "./context-C5BsZkDr.cjs";
3
3
 
4
4
  //#region src/compat/transformers.d.ts
5
5
 
@@ -1,8 +1,8 @@
1
1
  import { Temporal } from "@js-temporal/polyfill";
2
2
  import { URLPattern } from "urlpattern-polyfill";
3
3
  import { DocumentLoader } from "./docloader-CxWcuWqQ.js";
4
- import { CryptographicKey, DataIntegrityProof, Multikey, Object as Object$1 } from "./vocab-SOE1ifCr.js";
5
- import { KeyCache } from "./http-DqSNLFNY.js";
4
+ import { CryptographicKey, DataIntegrityProof, Multikey, Object as Object$1 } from "./vocab-BI0Ak5lL.js";
5
+ import { KeyCache } from "./http-D6Uj2x2y.js";
6
6
  import { TracerProvider } from "@opentelemetry/api";
7
7
 
8
8
  //#region src/sig/ld.d.ts
@@ -1,7 +1,7 @@
1
1
  import { Temporal } from "@js-temporal/polyfill";
2
2
  import { URLPattern } from "urlpattern-polyfill";
3
3
  import { DocumentLoader, DocumentLoaderFactoryOptions } from "./docloader-CxWcuWqQ.js";
4
- import { HttpMessageSignaturesSpecDeterminer } from "./http-DqSNLFNY.js";
4
+ import { HttpMessageSignaturesSpecDeterminer } from "./http-D6Uj2x2y.js";
5
5
  import { TracerProvider } from "@opentelemetry/api";
6
6
 
7
7
  //#region src/runtime/authdocloader.d.ts
@@ -1,5 +1,5 @@
1
1
  import { DocumentLoader, DocumentLoaderFactoryOptions } from "./docloader-D-MrRyHl.cjs";
2
- import { HttpMessageSignaturesSpecDeterminer } from "./http-BS6766zs.cjs";
2
+ import { HttpMessageSignaturesSpecDeterminer } from "./http-D-e6AFwR.cjs";
3
3
  import { TracerProvider } from "@opentelemetry/api";
4
4
 
5
5
  //#region src/runtime/authdocloader.d.ts
@@ -1,5 +1,5 @@
1
1
  import { DocumentLoader, GetUserAgentOptions } from "./docloader-D-MrRyHl.cjs";
2
- import { Collection, Link, Object as Object$1 } from "./vocab-DJTYMqyU.cjs";
2
+ import { Collection, Link, Object as Object$1 } from "./vocab-Dw1-yVGg.cjs";
3
3
  import { TracerProvider } from "@opentelemetry/api";
4
4
 
5
5
  //#region src/vocab/lookup.d.ts
@@ -18,6 +18,24 @@ interface LookupObjectOptions {
18
18
  * @since 0.8.0
19
19
  */
20
20
  contextLoader?: DocumentLoader;
21
+ /**
22
+ * Whether to allow fetching an object with an `@id` having a different
23
+ * origin than the object's URL. This is not recommended, as it may
24
+ * lead to security issues. Only use this option if you know what you
25
+ * are doing.
26
+ *
27
+ * How to handle the case when an object's `@id` has a different origin
28
+ * than the object's URL:
29
+ *
30
+ * - `"ignore"` (default): Do not return the object, and log a warning.
31
+ * - `"throw"`: Throw an error.
32
+ * - `"trust"`: Bypass the check and return the object anyway. This
33
+ * is not recommended, as it may lead to security issues. Only use
34
+ * this option if you know what you are doing.
35
+ *
36
+ * @since 1.9.0
37
+ */
38
+ crossOrigin?: "ignore" | "throw" | "trust";
21
39
  /**
22
40
  * The options for making `User-Agent` header.
23
41
  * If a string is given, it is used as the `User-Agent` header value.
@@ -1,7 +1,7 @@
1
1
  import { Temporal } from "@js-temporal/polyfill";
2
2
  import { URLPattern } from "urlpattern-polyfill";
3
- import { Activity } from "./vocab-SOE1ifCr.js";
4
- import { ActivityTransformer, Context } from "./context-CDSZdQHD.js";
3
+ import { Activity } from "./vocab-BI0Ak5lL.js";
4
+ import { ActivityTransformer, Context } from "./context-ByZprN0S.js";
5
5
 
6
6
  //#region src/compat/transformers.d.ts
7
7
 
@@ -1,6 +1,6 @@
1
1
  import { DocumentLoader } from "./docloader-D-MrRyHl.cjs";
2
- import { CryptographicKey, DataIntegrityProof, Multikey, Object as Object$1 } from "./vocab-DJTYMqyU.cjs";
3
- import { KeyCache } from "./http-BS6766zs.cjs";
2
+ import { CryptographicKey, DataIntegrityProof, Multikey, Object as Object$1 } from "./vocab-Dw1-yVGg.cjs";
3
+ import { KeyCache } from "./http-D-e6AFwR.cjs";
4
4
  import { TracerProvider } from "@opentelemetry/api";
5
5
 
6
6
  //#region src/sig/ld.d.ts
@@ -1,7 +1,7 @@
1
1
  import { Temporal } from "@js-temporal/polyfill";
2
2
  import { URLPattern } from "urlpattern-polyfill";
3
3
  import { DocumentLoader, GetUserAgentOptions } from "./docloader-CxWcuWqQ.js";
4
- import { Collection, Link, Object as Object$1 } from "./vocab-SOE1ifCr.js";
4
+ import { Collection, Link, Object as Object$1 } from "./vocab-BI0Ak5lL.js";
5
5
  import { TracerProvider } from "@opentelemetry/api";
6
6
 
7
7
  //#region src/vocab/lookup.d.ts
@@ -20,6 +20,24 @@ interface LookupObjectOptions {
20
20
  * @since 0.8.0
21
21
  */
22
22
  contextLoader?: DocumentLoader;
23
+ /**
24
+ * Whether to allow fetching an object with an `@id` having a different
25
+ * origin than the object's URL. This is not recommended, as it may
26
+ * lead to security issues. Only use this option if you know what you
27
+ * are doing.
28
+ *
29
+ * How to handle the case when an object's `@id` has a different origin
30
+ * than the object's URL:
31
+ *
32
+ * - `"ignore"` (default): Do not return the object, and log a warning.
33
+ * - `"throw"`: Throw an error.
34
+ * - `"trust"`: Bypass the check and return the object anyway. This
35
+ * is not recommended, as it may lead to security issues. Only use
36
+ * this option if you know what you are doing.
37
+ *
38
+ * @since 1.9.0
39
+ */
40
+ crossOrigin?: "ignore" | "throw" | "trust";
23
41
  /**
24
42
  * The options for making `User-Agent` header.
25
43
  * If a string is given, it is used as the `User-Agent` header value.
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-kae6M-GI.cjs');
8
- const require_actor = require('./actor-CP03csrm.cjs');
9
- const require_middleware = require('./middleware-LyCG_YVM.cjs');
10
- const require_lookup = require('./lookup-QHjmy4Og.cjs');
11
- const require_key = require('./key-HqzOCwDc.cjs');
12
- const require_http = require('./http-ZhcoaYEa.cjs');
13
- const require_proof = require('./proof-2Gcor0_N.cjs');
7
+ const require_docloader = require('./docloader-CCqXeagZ.cjs');
8
+ const require_actor = require('./actor-Be0ThtXy.cjs');
9
+ const require_middleware = require('./middleware-BmoOlgc1.cjs');
10
+ const require_lookup = require('./lookup-hnMAAU5r.cjs');
11
+ const require_key = require('./key-Z6ceKnZC.cjs');
12
+ const require_http = require('./http-C7vbQwbz.cjs');
13
+ const require_proof = require('./proof-B-eqv0Ug.cjs');
14
14
  const require_federation = require('./federation-H2_En3j5.cjs');
15
- const require_types = require('./types-Bqt2EgP0.cjs');
16
- const require_authdocloader = require('./authdocloader-BnsFSERg.cjs');
17
- const require_vocab = require('./vocab-B0-5a8pw.cjs');
15
+ const require_types = require('./types-zqdWZh4O.cjs');
16
+ const require_authdocloader = require('./authdocloader-OSn_teLV.cjs');
17
+ const require_vocab = require('./vocab-B39-pFl9.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
@@ -1,17 +1,17 @@
1
1
  import { KvKey, KvStore, KvStoreSetOptions, MemoryKvStore } from "./kv-63Cil1MD.cjs";
2
2
  import { AuthenticatedDocumentLoaderFactory, DocumentLoader, DocumentLoaderFactory, DocumentLoaderFactoryOptions, FetchError, GetDocumentLoaderOptions, GetUserAgentOptions, KvCacheParameters, RemoteDocument, fetchDocumentLoader, getDocumentLoader, getUserAgent, kvCache } from "./docloader-D-MrRyHl.cjs";
3
3
  import { GetNodeInfoOptions, InboundService, JsonValue, NodeInfo, OutboundService, ParseNodeInfoOptions, Protocol, Services, Software, Usage, getNodeInfo, nodeInfoToJson, parseNodeInfo } from "./client-CegPX0Rn.cjs";
4
- import { Accept, Activity, Add, Announce, Application, Arrive, Article, Audio, Block, ChatMessage, Collection, CollectionPage, Create, CryptographicKey, DataIntegrityProof, Delete, DidService, Dislike, Document, Emoji, EmojiReact, Endpoints, Event, Export, Flag, Follow, Group, Hashtag, Ignore, Image, IntransitiveActivity, Invite, Join, LanguageString, Leave, Like, Link, Listen, Mention, Move, Multikey, Note, Object as Object$1, Offer, OrderedCollection, OrderedCollectionPage, Organization, Page, Person, Place, Profile, PropertyValue, Question, Read, Reject, Relationship, Remove, Service, Source, TentativeAccept, TentativeReject, Tombstone, Travel, Undo, Update, Video, View } from "./vocab-DJTYMqyU.cjs";
5
- import { Actor, ActorTypeName, GetActorHandleOptions, NormalizeActorHandleOptions, Recipient, getActorClassByTypeName, getActorHandle, getActorTypeName, isActor, normalizeActorHandle } from "./actor-DMgu-ZjT.cjs";
6
- import { FetchKeyOptions, FetchKeyResult, HttpMessageSignaturesSpec, HttpMessageSignaturesSpecDeterminer, KeyCache, SignRequestOptions, VerifyRequestOptions, exportJwk, fetchKey, generateCryptoKeyPair, importJwk, signRequest, verifyRequest } from "./http-BS6766zs.cjs";
7
- import { DoesActorOwnKeyOptions, GetKeyOwnerOptions, doesActorOwnKey, getKeyOwner } from "./owner-B-7Ptt_m.cjs";
8
- import { FediverseHandle, LookupObjectOptions, PUBLIC_COLLECTION, TraverseCollectionOptions, getTypeId, isFediverseHandle, lookupObject, parseFediverseHandle, toAcctUrl, traverseCollection } from "./mod-evzlRVZq.cjs";
4
+ import { Accept, Activity, Add, Announce, Application, Arrive, Article, Audio, Block, ChatMessage, Collection, CollectionPage, Create, CryptographicKey, DataIntegrityProof, Delete, DidService, Dislike, Document, Emoji, EmojiReact, Endpoints, Event, Export, Flag, Follow, Group, Hashtag, Ignore, Image, IntransitiveActivity, Invite, Join, LanguageString, Leave, Like, Link, Listen, Mention, Move, Multikey, Note, Object as Object$1, Offer, OrderedCollection, OrderedCollectionPage, Organization, Page, Person, Place, Profile, PropertyValue, Question, Read, Reject, Relationship, Remove, Service, Source, TentativeAccept, TentativeReject, Tombstone, Travel, Undo, Update, Video, View } from "./vocab-Dw1-yVGg.cjs";
5
+ import { Actor, ActorTypeName, GetActorHandleOptions, NormalizeActorHandleOptions, Recipient, getActorClassByTypeName, getActorHandle, getActorTypeName, isActor, normalizeActorHandle } from "./actor-D6K058Tb.cjs";
6
+ import { FetchKeyOptions, FetchKeyResult, HttpMessageSignaturesSpec, HttpMessageSignaturesSpecDeterminer, KeyCache, SignRequestOptions, VerifyRequestOptions, exportJwk, fetchKey, generateCryptoKeyPair, importJwk, signRequest, verifyRequest } from "./http-D-e6AFwR.cjs";
7
+ import { DoesActorOwnKeyOptions, GetKeyOwnerOptions, doesActorOwnKey, getKeyOwner } from "./owner-BN_tO3cY.cjs";
8
+ import { FediverseHandle, LookupObjectOptions, PUBLIC_COLLECTION, TraverseCollectionOptions, getTypeId, isFediverseHandle, lookupObject, parseFediverseHandle, toAcctUrl, traverseCollection } from "./mod-CxkWO3Mg.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-Dq8aCtMH.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, IdempotencyKeyCallback, IdempotencyStrategy, 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-C5BsZkDr.cjs";
11
11
  import { InProcessMessageQueue, InProcessMessageQueueOptions, MessageQueue, MessageQueueEnqueueOptions, MessageQueueListenOptions, ParallelMessageQueue } from "./mq-B7R1Q-M5.cjs";
12
- import { actorDehydrator, autoIdAssigner, getDefaultActivityTransformers } from "./mod-BhMnAkFX.cjs";
12
+ import { actorDehydrator, autoIdAssigner, getDefaultActivityTransformers } from "./mod-8DMWKtQE.cjs";
13
13
  import "./mod-C2tOeRkN.cjs";
14
14
  import "./mod-FZd39qVq.cjs";
15
- import { GetAuthenticatedDocumentLoaderOptions, exportMultibaseKey, exportSpki, getAuthenticatedDocumentLoader, importMultibaseKey, importPem, importPkcs1, importSpki } from "./mod-Dc_-mf8s.cjs";
16
- import { CreateProofOptions, CreateSignatureOptions, SignJsonLdOptions, SignObjectOptions, VerifyJsonLdOptions, VerifyObjectOptions, VerifyProofOptions, VerifySignatureOptions, attachSignature, createProof, createSignature, detachSignature, signJsonLd, signObject, verifyJsonLd, verifyObject, verifyProof, verifySignature } from "./mod-BClfg3ej.cjs";
17
- export { Accept, Activity, ActivityTransformer, Actor, ActorAliasMapper, ActorCallbackSetters, ActorDispatcher, ActorHandleMapper, ActorKeyPair, ActorKeyPairsDispatcher, ActorTypeName, Add, Announce, Application, Arrive, Article, Audio, AuthenticatedDocumentLoaderFactory, AuthorizePredicate, Block, ChatMessage, Collection, CollectionCallbackSetters, CollectionCounter, CollectionCursor, CollectionDispatcher, CollectionPage, ConstructorWithTypeId, Context, Create, CreateExponentialBackoffPolicyOptions, CreateFederationOptions, CreateProofOptions, CreateSignatureOptions, CryptographicKey, CustomCollectionCallbackSetters, CustomCollectionCounter, CustomCollectionCursor, CustomCollectionDispatcher, DataIntegrityProof, Delete, DidService, Dislike, Document, DocumentLoader, DocumentLoaderFactory, DocumentLoaderFactoryOptions, DoesActorOwnKeyOptions, Emoji, EmojiReact, Endpoints, Event, Export, Federatable, Federation, FederationBuilder, FederationFetchOptions, FederationKvPrefixes, FederationOptions, FederationOrigin, FederationQueueOptions, FederationStartQueueOptions, FediverseHandle, FetchError, FetchKeyOptions, FetchKeyResult, Flag, Follow, ForwardActivityOptions, GetActorHandleOptions, GetAuthenticatedDocumentLoaderOptions, GetDocumentLoaderOptions, GetKeyOwnerOptions, GetNodeInfoOptions, GetSignedKeyOptions, GetUserAgentOptions, Group, Hashtag, HttpMessageSignaturesSpec, HttpMessageSignaturesSpecDeterminer, Ignore, Image, InProcessMessageQueue, InProcessMessageQueueOptions, InboundService, InboxContext, InboxErrorHandler, InboxListener, InboxListenerSetters, IntransitiveActivity, Invite, Join, JsonValue, KeyCache, KvCacheParameters, KvKey, KvStore, KvStoreSetOptions, LanguageString, Leave, Like, Link, Listen, LookupObjectOptions, MemoryKvStore, Mention, Message, MessageQueue, MessageQueueEnqueueOptions, MessageQueueListenOptions, Move, Multikey, NodeInfo, NodeInfoDispatcher, NormalizeActorHandleOptions, Note, Object$1 as Object, ObjectAuthorizePredicate, ObjectCallbackSetters, ObjectDispatcher, Offer, OrderedCollection, OrderedCollectionPage, Organization, OutboundService, OutboxErrorHandler, PUBLIC_COLLECTION, Page, PageItems, ParallelMessageQueue, ParamsKeyPath, ParseNodeInfoOptions, ParseUriResult, Person, Place, Profile, PropertyValue, Protocol, Question, Read, Recipient, Reject, Relationship, RemoteDocument, Remove, RequestContext, ResourceDescriptor, RespondWithObjectOptions, RetryContext, RetryPolicy, RouteActivityOptions, Router, RouterError, RouterOptions, RouterRouteResult, SendActivityOptions, SendActivityOptionsForCollection, SenderKeyPair, Service, Services, SharedInboxKeyDispatcher, SignJsonLdOptions, SignObjectOptions, SignRequestOptions, Software, Source, TentativeAccept, TentativeReject, Tombstone, Travel, TraverseCollectionOptions, Undo, Update, Usage, VerifyJsonLdOptions, VerifyObjectOptions, VerifyProofOptions, VerifyRequestOptions, VerifySignatureOptions, Video, View, WebFingerLinksDispatcher, actorDehydrator, attachSignature, autoIdAssigner, buildCollectionSynchronizationHeader, createExponentialBackoffPolicy, createFederation, createFederationBuilder, createProof, createSignature, detachSignature, digest, doesActorOwnKey, exportJwk, exportMultibaseKey, exportSpki, fetchDocumentLoader, fetchKey, generateCryptoKeyPair, getActorClassByTypeName, getActorHandle, getActorTypeName, getAuthenticatedDocumentLoader, getDefaultActivityTransformers, getDocumentLoader, getKeyOwner, getNodeInfo, getTypeId, getUserAgent, importJwk, importMultibaseKey, importPem, importPkcs1, importSpki, isActor, isFediverseHandle, kvCache, lookupObject, lookupWebFinger, nodeInfoToJson, normalizeActorHandle, parseFediverseHandle, parseNodeInfo, respondWithObject, respondWithObjectIfAcceptable, signJsonLd, signObject, signRequest, toAcctUrl, traverseCollection, verifyJsonLd, verifyObject, verifyProof, verifyRequest, verifySignature };
15
+ import { GetAuthenticatedDocumentLoaderOptions, exportMultibaseKey, exportSpki, getAuthenticatedDocumentLoader, importMultibaseKey, importPem, importPkcs1, importSpki } from "./mod-Cj1tHXBR.cjs";
16
+ import { CreateProofOptions, CreateSignatureOptions, SignJsonLdOptions, SignObjectOptions, VerifyJsonLdOptions, VerifyObjectOptions, VerifyProofOptions, VerifySignatureOptions, attachSignature, createProof, createSignature, detachSignature, signJsonLd, signObject, verifyJsonLd, verifyObject, verifyProof, verifySignature } from "./mod-Djzcw2ry.cjs";
17
+ export { Accept, Activity, ActivityTransformer, Actor, ActorAliasMapper, ActorCallbackSetters, ActorDispatcher, ActorHandleMapper, ActorKeyPair, ActorKeyPairsDispatcher, ActorTypeName, Add, Announce, Application, Arrive, Article, Audio, AuthenticatedDocumentLoaderFactory, AuthorizePredicate, Block, ChatMessage, Collection, CollectionCallbackSetters, CollectionCounter, CollectionCursor, CollectionDispatcher, CollectionPage, ConstructorWithTypeId, Context, Create, CreateExponentialBackoffPolicyOptions, CreateFederationOptions, CreateProofOptions, CreateSignatureOptions, CryptographicKey, CustomCollectionCallbackSetters, CustomCollectionCounter, CustomCollectionCursor, CustomCollectionDispatcher, DataIntegrityProof, Delete, DidService, Dislike, Document, DocumentLoader, DocumentLoaderFactory, DocumentLoaderFactoryOptions, DoesActorOwnKeyOptions, Emoji, EmojiReact, Endpoints, Event, Export, Federatable, Federation, FederationBuilder, FederationFetchOptions, FederationKvPrefixes, FederationOptions, FederationOrigin, FederationQueueOptions, FederationStartQueueOptions, FediverseHandle, FetchError, FetchKeyOptions, FetchKeyResult, Flag, Follow, ForwardActivityOptions, GetActorHandleOptions, GetAuthenticatedDocumentLoaderOptions, GetDocumentLoaderOptions, GetKeyOwnerOptions, GetNodeInfoOptions, GetSignedKeyOptions, GetUserAgentOptions, Group, Hashtag, HttpMessageSignaturesSpec, HttpMessageSignaturesSpecDeterminer, IdempotencyKeyCallback, IdempotencyStrategy, Ignore, Image, InProcessMessageQueue, InProcessMessageQueueOptions, InboundService, InboxContext, InboxErrorHandler, InboxListener, InboxListenerSetters, IntransitiveActivity, Invite, Join, JsonValue, KeyCache, KvCacheParameters, KvKey, KvStore, KvStoreSetOptions, LanguageString, Leave, Like, Link, Listen, LookupObjectOptions, MemoryKvStore, Mention, Message, MessageQueue, MessageQueueEnqueueOptions, MessageQueueListenOptions, Move, Multikey, NodeInfo, NodeInfoDispatcher, NormalizeActorHandleOptions, Note, Object$1 as Object, ObjectAuthorizePredicate, ObjectCallbackSetters, ObjectDispatcher, Offer, OrderedCollection, OrderedCollectionPage, Organization, OutboundService, OutboxErrorHandler, PUBLIC_COLLECTION, Page, PageItems, ParallelMessageQueue, ParamsKeyPath, ParseNodeInfoOptions, ParseUriResult, Person, Place, Profile, PropertyValue, Protocol, Question, Read, Recipient, Reject, Relationship, RemoteDocument, Remove, RequestContext, ResourceDescriptor, RespondWithObjectOptions, RetryContext, RetryPolicy, RouteActivityOptions, Router, RouterError, RouterOptions, RouterRouteResult, SendActivityOptions, SendActivityOptionsForCollection, SenderKeyPair, Service, Services, SharedInboxKeyDispatcher, SignJsonLdOptions, SignObjectOptions, SignRequestOptions, Software, Source, TentativeAccept, TentativeReject, Tombstone, Travel, TraverseCollectionOptions, Undo, Update, Usage, VerifyJsonLdOptions, VerifyObjectOptions, VerifyProofOptions, VerifyRequestOptions, VerifySignatureOptions, Video, View, WebFingerLinksDispatcher, actorDehydrator, attachSignature, autoIdAssigner, buildCollectionSynchronizationHeader, createExponentialBackoffPolicy, createFederation, createFederationBuilder, createProof, createSignature, detachSignature, digest, doesActorOwnKey, exportJwk, exportMultibaseKey, exportSpki, fetchDocumentLoader, fetchKey, generateCryptoKeyPair, getActorClassByTypeName, getActorHandle, getActorTypeName, getAuthenticatedDocumentLoader, getDefaultActivityTransformers, getDocumentLoader, getKeyOwner, getNodeInfo, getTypeId, getUserAgent, importJwk, importMultibaseKey, importPem, importPkcs1, importSpki, isActor, isFediverseHandle, kvCache, lookupObject, lookupWebFinger, nodeInfoToJson, normalizeActorHandle, parseFediverseHandle, parseNodeInfo, respondWithObject, respondWithObjectIfAcceptable, signJsonLd, signObject, signRequest, toAcctUrl, traverseCollection, verifyJsonLd, verifyObject, verifyProof, verifyRequest, verifySignature };