@fedify/fedify 1.7.0-pr.251.886 → 1.7.0

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 (109) hide show
  1. package/dist/{actor-tT_B0pDn.d.ts → actor-CPpvuBKU.d.ts} +2 -2
  2. package/dist/{actor-vbzjuRVs.js → actor-DTfguoCb.js} +179 -179
  3. package/dist/{actor-5-FAuRf4.js → actor-DeIuzQxq.js} +3 -3
  4. package/dist/{authdocloader-D-1CDzwt.js → authdocloader-BEp8lEDb.js} +3 -3
  5. package/dist/{authdocloader-BCjWsAbK.js → authdocloader-D70SfymB.js} +3 -3
  6. package/dist/{builder-CWndROqP.js → builder-J9iFzZzN.js} +3 -3
  7. package/dist/{client-Cd552pKL.d.ts → client-DvtwXO7t.d.ts} +1 -1
  8. package/dist/{client-DQa0LNir.js → client-Zr00-i3d.js} +2 -2
  9. package/dist/compat/mod.d.ts +11 -11
  10. package/dist/compat/transformers.test.js +21 -21
  11. package/dist/{context-BtMgfseO.js → context-Bs34sOF6.js} +2 -2
  12. package/dist/{context-DdICJaUT.d.ts → context-DPggmpB4.d.ts} +28 -9
  13. package/dist/{docloader-BJ8NylDw.js → docloader-Cg1VPpKf.js} +1 -1
  14. package/dist/{docloader-CdsC_SRJ.js → docloader-CoPL1xCC.js} +1 -1
  15. package/dist/{docloader-DlUDOVSe.d.ts → docloader-Q42SMRIB.d.ts} +2 -2
  16. package/dist/{esm-Btx3E8og.js → esm-CASHO3OR.js} +18 -12
  17. package/dist/federation/builder.test.js +29 -7
  18. package/dist/federation/collection.test.js +1 -1
  19. package/dist/federation/handler.test.js +23 -23
  20. package/dist/federation/inbox.test.js +4 -4
  21. package/dist/federation/keycache.test.js +5 -5
  22. package/dist/federation/kv.test.js +2 -2
  23. package/dist/federation/middleware.test.js +61 -24
  24. package/dist/federation/mod.d.ts +10 -10
  25. package/dist/federation/mod.js +11 -11
  26. package/dist/federation/mq.test.js +1 -1
  27. package/dist/federation/retry.test.js +1 -1
  28. package/dist/federation/router.test.js +1 -1
  29. package/dist/federation/send.test.js +11 -11
  30. package/dist/{federation-lZOZyLAo.js → federation-BRIQn-GV.js} +1 -1
  31. package/dist/{http-BkUCISGt.d.ts → http-B8EiSgi2.d.ts} +2 -2
  32. package/dist/{http-hoUn8iUC.js → http-BTqtnecF.js} +4 -4
  33. package/dist/{http-D31adQ9m.js → http-D4ufSjCD.js} +4 -4
  34. package/dist/{inbox-Bms4Rzz4.js → inbox-BLGI5mWd.js} +2 -2
  35. package/dist/{key-Dhc8vzUw.js → key-B0tlgo53.js} +2 -2
  36. package/dist/{key-Dl5NFtcR.js → key-CCfpdutM.js} +4 -4
  37. package/dist/{key-BizNDJoH.js → key-CJGEHNGN.js} +5 -5
  38. package/dist/{key-rYOCY-hi.js → key-CWTlZkYV.js} +3 -3
  39. package/dist/{keycache-8o75IpyO.js → keycache-D4rAVXOS.js} +1 -1
  40. package/dist/{keys-BKAHqM62.js → keys-cySMuiGu.js} +1 -1
  41. package/dist/{kv-DohFOP2C.js → kv-BMY6Qf_A.js} +1 -1
  42. package/dist/{kv-p8sC8PTT.d.ts → kv-DRaeSXco.d.ts} +4 -4
  43. package/dist/{ld-A7VhPKHt.js → ld-ecZJerZ8.js} +3 -3
  44. package/dist/{lookup-Daj8VQd5.js → lookup-BLCwJTxi.js} +1 -1
  45. package/dist/{lookup-vJccIKCS.d.ts → lookup-Bf-K85bV.d.ts} +1 -1
  46. package/dist/{lookup-CPeufLlL.js → lookup-CX4qjAss.js} +1 -1
  47. package/dist/{lookup-ITcjtTkl.js → lookup-Cbwww1Nk.js} +3 -3
  48. package/dist/{middleware-CO_CI9yz.js → middleware-CUrRKWpM.js} +16 -14
  49. package/dist/middleware-D6StExQX.js +17 -0
  50. package/dist/middleware-UQpFubxd.js +33 -0
  51. package/dist/{middleware-DT7wvoCV.js → middleware-rvM2CNtG.js} +22 -20
  52. package/dist/{mod-BTHfUeLo.d.ts → mod-C2drFqH8.d.ts} +2 -2
  53. package/dist/{mod-DSPyncxx.d.ts → mod-CDzlVCUF.d.ts} +2 -2
  54. package/dist/{mod-5orySGMZ.d.ts → mod-CbjCOiVh.d.ts} +2 -2
  55. package/dist/{mod-BUTm-sog.d.ts → mod-sEI6_uZ2.d.ts} +3 -3
  56. package/dist/mod.d.ts +13 -13
  57. package/dist/mod.js +11 -11
  58. package/dist/nodeinfo/client.test.js +5 -5
  59. package/dist/nodeinfo/handler.test.js +22 -22
  60. package/dist/nodeinfo/mod.d.ts +3 -3
  61. package/dist/nodeinfo/mod.js +2 -2
  62. package/dist/nodeinfo/semver.test.js +2 -2
  63. package/dist/nodeinfo/types.test.js +3 -3
  64. package/dist/{owner-Df3xRLIJ.js → owner-BSmRd_IH.js} +3 -3
  65. package/dist/{owner-CbRc94FP.d.ts → owner-D0cOz8R5.d.ts} +3 -3
  66. package/dist/{proof-X7M5KbVO.js → proof-CkXiUJfu.js} +3 -3
  67. package/dist/{proof-Mnk9Grq5.js → proof-R84z_lDC.js} +3 -3
  68. package/dist/runtime/authdocloader.test.js +10 -10
  69. package/dist/runtime/docloader.test.js +4 -4
  70. package/dist/runtime/key.test.js +6 -6
  71. package/dist/runtime/langstr.test.js +1 -1
  72. package/dist/runtime/mod.d.ts +5 -5
  73. package/dist/runtime/mod.js +6 -6
  74. package/dist/runtime/multibase/multibase.test.js +1 -1
  75. package/dist/runtime/url.test.js +1 -1
  76. package/dist/{semver-CbbIgUsa.js → semver-DWClQt_5.js} +2 -2
  77. package/dist/{send-0SSru5CD.js → send-DrxpWl1q.js} +2 -2
  78. package/dist/sig/http.test.js +15 -15
  79. package/dist/sig/key.test.js +7 -7
  80. package/dist/sig/ld.test.js +8 -8
  81. package/dist/sig/mod.d.ts +7 -7
  82. package/dist/sig/mod.js +6 -6
  83. package/dist/sig/owner.test.js +9 -9
  84. package/dist/sig/proof.test.js +8 -8
  85. package/dist/testing/docloader.test.js +1 -1
  86. package/dist/testing/mod.js +1 -1
  87. package/dist/{testing-jcGLO9Lp.js → testing-BZ0dJ4qn.js} +1 -1
  88. package/dist/{types-CqoqWDkp.js → types-C7C_l-jz.js} +1 -1
  89. package/dist/{types-C7WKHGmD.js → types-DfKof1zg.js} +3 -3
  90. package/dist/vocab/actor.test.js +6 -6
  91. package/dist/vocab/lookup.test.js +6 -6
  92. package/dist/vocab/mod.d.ts +5 -5
  93. package/dist/vocab/mod.js +4 -4
  94. package/dist/vocab/type.test.js +3 -3
  95. package/dist/vocab/vocab.test.js +65 -35
  96. package/dist/{vocab-g1ubBONs.js → vocab-BwnH7Mra.js} +3 -3
  97. package/dist/{vocab-D6Yp14Di.js → vocab-CkD4jwmV.js} +178 -178
  98. package/dist/{vocab-DSFLLLe6.d.ts → vocab-CzEfWQk2.d.ts} +1 -1
  99. package/dist/webfinger/handler.test.js +22 -22
  100. package/dist/webfinger/lookup.test.js +4 -4
  101. package/dist/webfinger/mod.d.ts +3 -3
  102. package/dist/webfinger/mod.js +2 -2
  103. package/dist/x/cfworkers.d.ts +1 -1
  104. package/dist/x/cfworkers.test.js +1 -1
  105. package/dist/x/hono.d.ts +10 -10
  106. package/dist/x/sveltekit.d.ts +10 -10
  107. package/package.json +2 -2
  108. package/dist/middleware-B0SwYDk5.js +0 -17
  109. package/dist/middleware-DDwAHKV5.js +0 -33
@@ -6,42 +6,42 @@
6
6
  import { assertEquals } from "../assert_equals-Dnj7ejjL.js";
7
7
  import { assert } from "../assert-YJk-1DlZ.js";
8
8
  import { assertInstanceOf } from "../assert_instance_of-DBIoG5k7.js";
9
- import { MemoryKvStore } from "../kv-DohFOP2C.js";
10
- import { ContextImpl, FederationImpl, InboxContextImpl, createFederation } from "../middleware-DT7wvoCV.js";
11
- import { FetchError, fetchDocumentLoader } from "../docloader-BJ8NylDw.js";
9
+ import { MemoryKvStore } from "../kv-BMY6Qf_A.js";
10
+ import { ContextImpl, FederationImpl, InboxContextImpl, KvSpecDeterminer, createFederation } from "../middleware-rvM2CNtG.js";
11
+ import { FetchError, fetchDocumentLoader } from "../docloader-Cg1VPpKf.js";
12
12
  import "../url-kTAI6_KP.js";
13
- import "../semver-CbbIgUsa.js";
14
- import "../client-DQa0LNir.js";
13
+ import "../semver-DWClQt_5.js";
14
+ import "../client-Zr00-i3d.js";
15
15
  import { RouterError } from "../router-D_aVZZUc.js";
16
- import "../types-CqoqWDkp.js";
16
+ import "../types-C7C_l-jz.js";
17
17
  import "../multibase-DeCHcK8L.js";
18
- import { Activity, Announce, Create, Invite, Multikey, Note, Object as Object$1, Offer, Person } from "../vocab-D6Yp14Di.js";
18
+ import { Activity, Announce, Create, Invite, Multikey, Note, Object as Object$1, Offer, Person } from "../vocab-CkD4jwmV.js";
19
19
  import "../langstr-DbWheeIS.js";
20
- import "../lookup-CPeufLlL.js";
20
+ import "../lookup-CX4qjAss.js";
21
21
  import { getTypeId } from "../type-D2s5lmbZ.js";
22
- import "../actor-5-FAuRf4.js";
23
- import "../key-rYOCY-hi.js";
24
- import { signRequest, verifyRequest } from "../http-hoUn8iUC.js";
25
- import { getAuthenticatedDocumentLoader } from "../authdocloader-D-1CDzwt.js";
26
- import { detachSignature, signJsonLd, verifyJsonLd } from "../ld-A7VhPKHt.js";
27
- import { doesActorOwnKey } from "../owner-Df3xRLIJ.js";
28
- import { signObject, verifyObject } from "../proof-X7M5KbVO.js";
29
- import { lookupObject } from "../lookup-ITcjtTkl.js";
30
- import "../inbox-Bms4Rzz4.js";
31
- import "../builder-CWndROqP.js";
22
+ import "../actor-DeIuzQxq.js";
23
+ import "../key-CWTlZkYV.js";
24
+ import { signRequest, verifyRequest } from "../http-BTqtnecF.js";
25
+ import { getAuthenticatedDocumentLoader } from "../authdocloader-BEp8lEDb.js";
26
+ import { detachSignature, signJsonLd, verifyJsonLd } from "../ld-ecZJerZ8.js";
27
+ import { doesActorOwnKey } from "../owner-BSmRd_IH.js";
28
+ import { signObject, verifyObject } from "../proof-CkXiUJfu.js";
29
+ import { lookupObject } from "../lookup-Cbwww1Nk.js";
30
+ import "../inbox-BLGI5mWd.js";
31
+ import "../builder-J9iFzZzN.js";
32
32
  import "../collection-Dfb0TPno.js";
33
- import "../keycache-8o75IpyO.js";
33
+ import "../keycache-D4rAVXOS.js";
34
34
  import "../retry-BiIhZWgD.js";
35
- import "../send-0SSru5CD.js";
36
- import { test } from "../testing-jcGLO9Lp.js";
35
+ import "../send-DrxpWl1q.js";
36
+ import { test } from "../testing-BZ0dJ4qn.js";
37
37
  import { assertStrictEquals } from "../std__assert-CHXwj7zk.js";
38
38
  import { assertFalse, assertRejects } from "../assert_rejects-BZjUwo62.js";
39
39
  import "../assert_is_error-jyzqjHud.js";
40
40
  import { assertNotEquals } from "../assert_not_equals-wx-SRs4i.js";
41
41
  import { assertThrows } from "../assert_throws-gBPv3v2V.js";
42
42
  import { mockDocumentLoader } from "../docloader-09nVWLAZ.js";
43
- import { ed25519Multikey, ed25519PrivateKey, ed25519PublicKey, rsaPrivateKey2, rsaPrivateKey3, rsaPublicKey2, rsaPublicKey3 } from "../keys-BKAHqM62.js";
44
- import { esm_default } from "../esm-Btx3E8og.js";
43
+ import { ed25519Multikey, ed25519PrivateKey, ed25519PublicKey, rsaPrivateKey2, rsaPrivateKey3, rsaPublicKey2, rsaPublicKey3 } from "../keys-cySMuiGu.js";
44
+ import { esm_default } from "../esm-CASHO3OR.js";
45
45
 
46
46
  //#region testing/fixtures/example.com/person.json
47
47
  var __context$1 = ["https://www.w3.org/ns/activitystreams", "https://w3id.org/security/v1"];
@@ -933,7 +933,7 @@ test("Federation.setInboxListeners()", async (t) => {
933
933
  privateKey: rsaPrivateKey2,
934
934
  publicKey: rsaPublicKey2.publicKey
935
935
  }]);
936
- const error = new Error("test");
936
+ const error = /* @__PURE__ */ new Error("test");
937
937
  const errors = [];
938
938
  federation.setInboxListeners("/users/{identifier}/inbox", "/inbox").on(Create, () => {
939
939
  throw error;
@@ -1742,5 +1742,42 @@ test("InboxContextImpl.forwardActivity()", async (t) => {
1742
1742
  });
1743
1743
  esm_default.hardReset();
1744
1744
  });
1745
+ test("KvSpecDeterminer", async (t) => {
1746
+ await t.step("should use default spec when not found in KV", async () => {
1747
+ const kv = new MemoryKvStore();
1748
+ const prefix = ["test", "spec"];
1749
+ const determiner = new KvSpecDeterminer(kv, prefix);
1750
+ const spec = await determiner.determineSpec("example.com");
1751
+ assertEquals(spec, "rfc9421");
1752
+ });
1753
+ await t.step("should use custom default spec", async () => {
1754
+ const kv = new MemoryKvStore();
1755
+ const prefix = ["test", "spec"];
1756
+ const determiner = new KvSpecDeterminer(kv, prefix, "draft-cavage-http-signatures-12");
1757
+ const spec = await determiner.determineSpec("example.com");
1758
+ assertEquals(spec, "draft-cavage-http-signatures-12");
1759
+ });
1760
+ await t.step("should remember and retrieve spec from KV", async () => {
1761
+ const kv = new MemoryKvStore();
1762
+ const prefix = ["test", "spec"];
1763
+ const determiner = new KvSpecDeterminer(kv, prefix);
1764
+ await determiner.rememberSpec("example.com", "draft-cavage-http-signatures-12");
1765
+ const spec = await determiner.determineSpec("example.com");
1766
+ assertEquals(spec, "draft-cavage-http-signatures-12");
1767
+ const defaultSpec = await determiner.determineSpec("other.com");
1768
+ assertEquals(defaultSpec, "rfc9421");
1769
+ });
1770
+ await t.step("should override remembered spec", async () => {
1771
+ const kv = new MemoryKvStore();
1772
+ const prefix = ["test", "spec"];
1773
+ const determiner = new KvSpecDeterminer(kv, prefix);
1774
+ await determiner.rememberSpec("example.com", "draft-cavage-http-signatures-12");
1775
+ let spec = await determiner.determineSpec("example.com");
1776
+ assertEquals(spec, "draft-cavage-http-signatures-12");
1777
+ await determiner.rememberSpec("example.com", "rfc9421");
1778
+ spec = await determiner.determineSpec("example.com");
1779
+ assertEquals(spec, "rfc9421");
1780
+ });
1781
+ });
1745
1782
 
1746
1783
  //#endregion
@@ -1,15 +1,15 @@
1
1
  import { Temporal } from "@js-temporal/polyfill";
2
2
  import { URLPattern } from "urlpattern-polyfill";
3
- import { KvKey, KvStore, KvStoreSetOptions, MemoryKvStore } from "../kv-p8sC8PTT.js";
4
- import "../docloader-DlUDOVSe.js";
5
- import "../client-Cd552pKL.js";
6
- import "../vocab-DSFLLLe6.js";
7
- import "../actor-tT_B0pDn.js";
8
- import "../http-BkUCISGt.js";
9
- import "../owner-CbRc94FP.js";
10
- import "../mod-DSPyncxx.js";
11
- import "../lookup-vJccIKCS.js";
12
- import { ActorAliasMapper, ActorCallbackSetters, ActorDispatcher, ActorHandleMapper, ActorKeyPair, ActorKeyPairsDispatcher, AuthorizePredicate, CollectionCallbackSetters, CollectionCounter, CollectionCursor, CollectionDispatcher, Context, CreateExponentialBackoffPolicyOptions, CreateFederationOptions, Federatable, Federation, FederationBuilder, FederationFetchOptions, FederationKvPrefixes, FederationOptions, FederationOrigin, FederationQueueOptions, FederationStartQueueOptions, ForwardActivityOptions, GetSignedKeyOptions, InboxContext, InboxErrorHandler, InboxListener, InboxListenerSetters, Message, NodeInfoDispatcher, ObjectAuthorizePredicate, ObjectCallbackSetters, ObjectDispatcher, OutboxErrorHandler, PageItems, ParseUriResult, RequestContext, RespondWithObjectOptions, RetryContext, RetryPolicy, RouteActivityOptions, Router, RouterError, RouterOptions, RouterRouteResult, SendActivityOptions, SendActivityOptionsForCollection, SenderKeyPair, SharedInboxKeyDispatcher, buildCollectionSynchronizationHeader, createExponentialBackoffPolicy, createFederation, createFederationBuilder, digest, respondWithObject, respondWithObjectIfAcceptable } from "../context-DdICJaUT.js";
3
+ import { KvKey, KvStore, KvStoreSetOptions, MemoryKvStore } from "../kv-DRaeSXco.js";
4
+ import "../docloader-Q42SMRIB.js";
5
+ import "../client-DvtwXO7t.js";
6
+ import "../vocab-CzEfWQk2.js";
7
+ import "../actor-CPpvuBKU.js";
8
+ import "../http-B8EiSgi2.js";
9
+ import "../owner-D0cOz8R5.js";
10
+ import "../mod-CDzlVCUF.js";
11
+ import "../lookup-Bf-K85bV.js";
12
+ import { ActorAliasMapper, ActorCallbackSetters, ActorDispatcher, ActorHandleMapper, ActorKeyPair, ActorKeyPairsDispatcher, AuthorizePredicate, CollectionCallbackSetters, CollectionCounter, CollectionCursor, CollectionDispatcher, Context, CreateExponentialBackoffPolicyOptions, CreateFederationOptions, Federatable, Federation, FederationBuilder, FederationFetchOptions, FederationKvPrefixes, FederationOptions, FederationOrigin, FederationQueueOptions, FederationStartQueueOptions, ForwardActivityOptions, GetSignedKeyOptions, InboxContext, InboxErrorHandler, InboxListener, InboxListenerSetters, Message, NodeInfoDispatcher, ObjectAuthorizePredicate, ObjectCallbackSetters, ObjectDispatcher, OutboxErrorHandler, PageItems, ParseUriResult, RequestContext, RespondWithObjectOptions, RetryContext, RetryPolicy, RouteActivityOptions, Router, RouterError, RouterOptions, RouterRouteResult, SendActivityOptions, SendActivityOptionsForCollection, SenderKeyPair, SharedInboxKeyDispatcher, buildCollectionSynchronizationHeader, createExponentialBackoffPolicy, createFederation, createFederationBuilder, digest, respondWithObject, respondWithObjectIfAcceptable } from "../context-DPggmpB4.js";
13
13
  import { InProcessMessageQueue, InProcessMessageQueueOptions, MessageQueue, MessageQueueEnqueueOptions, MessageQueueListenOptions, ParallelMessageQueue } from "../mq-DYKDDJmp.js";
14
14
  import "../mod-g0xFzAP9.js";
15
15
  export { ActorAliasMapper, ActorCallbackSetters, ActorDispatcher, ActorHandleMapper, ActorKeyPair, ActorKeyPairsDispatcher, AuthorizePredicate, CollectionCallbackSetters, CollectionCounter, CollectionCursor, CollectionDispatcher, Context, CreateExponentialBackoffPolicyOptions, CreateFederationOptions, Federatable, Federation, FederationBuilder, FederationFetchOptions, FederationKvPrefixes, FederationOptions, FederationOrigin, FederationQueueOptions, FederationStartQueueOptions, ForwardActivityOptions, GetSignedKeyOptions, InProcessMessageQueue, InProcessMessageQueueOptions, InboxContext, InboxErrorHandler, InboxListener, InboxListenerSetters, KvKey, KvStore, KvStoreSetOptions, MemoryKvStore, Message, MessageQueue, MessageQueueEnqueueOptions, MessageQueueListenOptions, NodeInfoDispatcher, ObjectAuthorizePredicate, ObjectCallbackSetters, ObjectDispatcher, OutboxErrorHandler, PageItems, ParallelMessageQueue, ParseUriResult, RequestContext, RespondWithObjectOptions, RetryContext, RetryPolicy, RouteActivityOptions, Router, RouterError, RouterOptions, RouterRouteResult, SendActivityOptions, SendActivityOptionsForCollection, SenderKeyPair, SharedInboxKeyDispatcher, buildCollectionSynchronizationHeader, createExponentialBackoffPolicy, createFederation, createFederationBuilder, digest, respondWithObject, respondWithObjectIfAcceptable };
@@ -3,16 +3,16 @@
3
3
  import { URLPattern } from "urlpattern-polyfill";
4
4
 
5
5
  import "../transformers-ghwJuzGY.js";
6
- import "../docloader-CdsC_SRJ.js";
7
- import "../actor-vbzjuRVs.js";
8
- import { Router, RouterError, buildCollectionSynchronizationHeader, createExponentialBackoffPolicy, createFederation, createFederationBuilder, digest, respondWithObject, respondWithObjectIfAcceptable } from "../middleware-CO_CI9yz.js";
9
- import "../lookup-Daj8VQd5.js";
10
- import "../key-Dhc8vzUw.js";
11
- import "../http-D31adQ9m.js";
12
- import "../proof-Mnk9Grq5.js";
13
- import { InProcessMessageQueue, MemoryKvStore, ParallelMessageQueue } from "../federation-lZOZyLAo.js";
14
- import "../types-C7WKHGmD.js";
15
- import "../authdocloader-BCjWsAbK.js";
16
- import "../vocab-g1ubBONs.js";
6
+ import "../docloader-CoPL1xCC.js";
7
+ import "../actor-DTfguoCb.js";
8
+ import { Router, RouterError, buildCollectionSynchronizationHeader, createExponentialBackoffPolicy, createFederation, createFederationBuilder, digest, respondWithObject, respondWithObjectIfAcceptable } from "../middleware-CUrRKWpM.js";
9
+ import "../lookup-BLCwJTxi.js";
10
+ import "../key-B0tlgo53.js";
11
+ import "../http-D4ufSjCD.js";
12
+ import "../proof-R84z_lDC.js";
13
+ import { InProcessMessageQueue, MemoryKvStore, ParallelMessageQueue } from "../federation-BRIQn-GV.js";
14
+ import "../types-DfKof1zg.js";
15
+ import "../authdocloader-D70SfymB.js";
16
+ import "../vocab-BwnH7Mra.js";
17
17
 
18
18
  export { InProcessMessageQueue, MemoryKvStore, ParallelMessageQueue, Router, RouterError, buildCollectionSynchronizationHeader, createExponentialBackoffPolicy, createFederation, createFederationBuilder, digest, respondWithObject, respondWithObjectIfAcceptable };
@@ -6,7 +6,7 @@
6
6
  import { assertEquals } from "../assert_equals-Dnj7ejjL.js";
7
7
  import { assert } from "../assert-YJk-1DlZ.js";
8
8
  import "../assert_instance_of-DBIoG5k7.js";
9
- import { test } from "../testing-jcGLO9Lp.js";
9
+ import { test } from "../testing-BZ0dJ4qn.js";
10
10
  import { assertGreater, assertGreaterOrEqual } from "../std__assert-CHXwj7zk.js";
11
11
  import { assertFalse } from "../assert_rejects-BZjUwo62.js";
12
12
  import "../assert_is_error-jyzqjHud.js";
@@ -5,7 +5,7 @@
5
5
 
6
6
  import { AssertionError, assertEquals } from "../assert_equals-Dnj7ejjL.js";
7
7
  import { createExponentialBackoffPolicy } from "../retry-BiIhZWgD.js";
8
- import { test } from "../testing-jcGLO9Lp.js";
8
+ import { test } from "../testing-BZ0dJ4qn.js";
9
9
  import { assertNotEquals } from "../assert_not_equals-wx-SRs4i.js";
10
10
 
11
11
  //#region federation/retry.test.ts
@@ -7,7 +7,7 @@ import { assertEquals } from "../assert_equals-Dnj7ejjL.js";
7
7
  import { assert } from "../assert-YJk-1DlZ.js";
8
8
  import "../assert_instance_of-DBIoG5k7.js";
9
9
  import { Router, RouterError } from "../router-D_aVZZUc.js";
10
- import { test } from "../testing-jcGLO9Lp.js";
10
+ import { test } from "../testing-BZ0dJ4qn.js";
11
11
  import "../std__assert-CHXwj7zk.js";
12
12
  import { assertFalse } from "../assert_rejects-BZjUwo62.js";
13
13
  import "../assert_is_error-jyzqjHud.js";
@@ -6,27 +6,27 @@
6
6
  import { assertEquals } from "../assert_equals-Dnj7ejjL.js";
7
7
  import { assert } from "../assert-YJk-1DlZ.js";
8
8
  import "../assert_instance_of-DBIoG5k7.js";
9
- import "../docloader-BJ8NylDw.js";
9
+ import "../docloader-Cg1VPpKf.js";
10
10
  import "../url-kTAI6_KP.js";
11
11
  import "../multibase-DeCHcK8L.js";
12
- import { Activity, Application, Endpoints, Group, Person, Service } from "../vocab-D6Yp14Di.js";
12
+ import { Activity, Application, Endpoints, Group, Person, Service } from "../vocab-CkD4jwmV.js";
13
13
  import "../langstr-DbWheeIS.js";
14
- import "../lookup-CPeufLlL.js";
14
+ import "../lookup-CX4qjAss.js";
15
15
  import "../type-D2s5lmbZ.js";
16
- import "../actor-5-FAuRf4.js";
17
- import "../key-rYOCY-hi.js";
18
- import { verifyRequest } from "../http-hoUn8iUC.js";
19
- import { doesActorOwnKey } from "../owner-Df3xRLIJ.js";
20
- import { extractInboxes, sendActivity } from "../send-0SSru5CD.js";
21
- import { test } from "../testing-jcGLO9Lp.js";
16
+ import "../actor-DeIuzQxq.js";
17
+ import "../key-CWTlZkYV.js";
18
+ import { verifyRequest } from "../http-BTqtnecF.js";
19
+ import { doesActorOwnKey } from "../owner-BSmRd_IH.js";
20
+ import { extractInboxes, sendActivity } from "../send-DrxpWl1q.js";
21
+ import { test } from "../testing-BZ0dJ4qn.js";
22
22
  import "../std__assert-CHXwj7zk.js";
23
23
  import { assertFalse, assertRejects } from "../assert_rejects-BZjUwo62.js";
24
24
  import "../assert_is_error-jyzqjHud.js";
25
25
  import { assertNotEquals } from "../assert_not_equals-wx-SRs4i.js";
26
26
  import "../assert_throws-gBPv3v2V.js";
27
27
  import { mockDocumentLoader } from "../docloader-09nVWLAZ.js";
28
- import { ed25519Multikey, ed25519PrivateKey, rsaPrivateKey2, rsaPublicKey2 } from "../keys-BKAHqM62.js";
29
- import { esm_default } from "../esm-Btx3E8og.js";
28
+ import { ed25519Multikey, ed25519PrivateKey, rsaPrivateKey2, rsaPublicKey2 } from "../keys-cySMuiGu.js";
29
+ import { esm_default } from "../esm-CASHO3OR.js";
30
30
 
31
31
  //#region federation/send.test.ts
32
32
  test("extractInboxes()", () => {
@@ -4,7 +4,7 @@
4
4
 
5
5
  //#region federation/kv.ts
6
6
  /**
7
- * A key-value store that stores values in memory.
7
+ * A keyvalue store that stores values in memory.
8
8
  * Do not use this in production as it does not persist values.
9
9
  *
10
10
  * @since 0.5.0
@@ -1,7 +1,7 @@
1
1
  import { Temporal } from "@js-temporal/polyfill";
2
2
  import { URLPattern } from "urlpattern-polyfill";
3
- import { DocumentLoader } from "./docloader-DlUDOVSe.js";
4
- import { CryptographicKey, Multikey } from "./vocab-DSFLLLe6.js";
3
+ import { DocumentLoader } from "./docloader-Q42SMRIB.js";
4
+ import { CryptographicKey, Multikey } from "./vocab-CzEfWQk2.js";
5
5
  import { TracerProvider } from "@opentelemetry/api";
6
6
 
7
7
  //#region sig/key.d.ts
@@ -3,9 +3,9 @@
3
3
  import { URLPattern } from "urlpattern-polyfill";
4
4
  globalThis.addEventListener = () => {};
5
5
 
6
- import { deno_default } from "./docloader-BJ8NylDw.js";
7
- import { CryptographicKey } from "./vocab-D6Yp14Di.js";
8
- import { fetchKey, validateCryptoKey } from "./key-rYOCY-hi.js";
6
+ import { deno_default } from "./docloader-Cg1VPpKf.js";
7
+ import { CryptographicKey } from "./vocab-CkD4jwmV.js";
8
+ import { fetchKey, validateCryptoKey } from "./key-CWTlZkYV.js";
9
9
  import { getLogger } from "@logtape/logtape";
10
10
  import { SpanStatusCode, trace } from "@opentelemetry/api";
11
11
  import { ATTR_HTTP_REQUEST_HEADER, ATTR_HTTP_REQUEST_METHOD, ATTR_URL_FULL } from "@opentelemetry/semantic-conventions";
@@ -666,7 +666,7 @@ async function doubleKnock(request, identity, options = {}) {
666
666
  integrity: request.integrity,
667
667
  keepalive: request.keepalive
668
668
  }), identity, options);
669
- } else if (response.status === 400 || response.status === 401) {
669
+ } else if (response.status === 400 || response.status === 401 || response.status > 401) {
670
670
  const spec = firstTrySpec === "draft-cavage-http-signatures-12" ? "rfc9421" : "draft-cavage-http-signatures-12";
671
671
  getLogger([
672
672
  "fedify",
@@ -2,9 +2,9 @@
2
2
  import { Temporal } from "@js-temporal/polyfill";
3
3
  import { URLPattern } from "urlpattern-polyfill";
4
4
 
5
- import { deno_default } from "./docloader-CdsC_SRJ.js";
6
- import { CryptographicKey } from "./actor-vbzjuRVs.js";
7
- import { fetchKey, validateCryptoKey } from "./key-Dhc8vzUw.js";
5
+ import { deno_default } from "./docloader-CoPL1xCC.js";
6
+ import { CryptographicKey } from "./actor-DTfguoCb.js";
7
+ import { fetchKey, validateCryptoKey } from "./key-B0tlgo53.js";
8
8
  import { getLogger } from "@logtape/logtape";
9
9
  import { SpanStatusCode, trace } from "@opentelemetry/api";
10
10
  import { decodeBase64, encodeBase64 } from "byte-encodings/base64";
@@ -665,7 +665,7 @@ async function doubleKnock(request, identity, options = {}) {
665
665
  integrity: request.integrity,
666
666
  keepalive: request.keepalive
667
667
  }), identity, options);
668
- } else if (response.status === 400 || response.status === 401) {
668
+ } else if (response.status === 400 || response.status === 401 || response.status > 401) {
669
669
  const spec = firstTrySpec === "draft-cavage-http-signatures-12" ? "rfc9421" : "draft-cavage-http-signatures-12";
670
670
  getLogger([
671
671
  "fedify",
@@ -3,8 +3,8 @@
3
3
  import { URLPattern } from "urlpattern-polyfill";
4
4
  globalThis.addEventListener = () => {};
5
5
 
6
- import { deno_default } from "./docloader-BJ8NylDw.js";
7
- import { Activity } from "./vocab-D6Yp14Di.js";
6
+ import { deno_default } from "./docloader-Cg1VPpKf.js";
7
+ import { Activity } from "./vocab-CkD4jwmV.js";
8
8
  import { getTypeId } from "./type-D2s5lmbZ.js";
9
9
  import { getLogger } from "@logtape/logtape";
10
10
  import { SpanKind, SpanStatusCode, context, propagation, trace } from "@opentelemetry/api";
@@ -2,8 +2,8 @@
2
2
  import { Temporal } from "@js-temporal/polyfill";
3
3
  import { URLPattern } from "urlpattern-polyfill";
4
4
 
5
- import { deno_default, getDocumentLoader } from "./docloader-CdsC_SRJ.js";
6
- import { CryptographicKey, Object as Object$1, isActor } from "./actor-vbzjuRVs.js";
5
+ import { deno_default, getDocumentLoader } from "./docloader-CoPL1xCC.js";
6
+ import { CryptographicKey, Object as Object$1, isActor } from "./actor-DTfguoCb.js";
7
7
  import { getLogger } from "@logtape/logtape";
8
8
  import { SpanKind, SpanStatusCode, trace } from "@opentelemetry/api";
9
9
 
@@ -2,9 +2,9 @@
2
2
  import { Temporal } from "@js-temporal/polyfill";
3
3
  import { URLPattern } from "urlpattern-polyfill";
4
4
 
5
- import "./docloader-CdsC_SRJ.js";
6
- import "./actor-vbzjuRVs.js";
7
- import "./lookup-Daj8VQd5.js";
8
- import { exportJwk, fetchKey, generateCryptoKeyPair, importJwk, validateCryptoKey } from "./key-Dhc8vzUw.js";
5
+ import "./docloader-CoPL1xCC.js";
6
+ import "./actor-DTfguoCb.js";
7
+ import "./lookup-BLCwJTxi.js";
8
+ import { exportJwk, fetchKey, generateCryptoKeyPair, importJwk, validateCryptoKey } from "./key-B0tlgo53.js";
9
9
 
10
10
  export { validateCryptoKey };
@@ -3,14 +3,14 @@
3
3
  import { URLPattern } from "urlpattern-polyfill";
4
4
  globalThis.addEventListener = () => {};
5
5
 
6
- import "./docloader-BJ8NylDw.js";
6
+ import "./docloader-Cg1VPpKf.js";
7
7
  import "./url-kTAI6_KP.js";
8
8
  import "./multibase-DeCHcK8L.js";
9
- import "./vocab-D6Yp14Di.js";
9
+ import "./vocab-CkD4jwmV.js";
10
10
  import "./langstr-DbWheeIS.js";
11
- import "./lookup-CPeufLlL.js";
11
+ import "./lookup-CX4qjAss.js";
12
12
  import "./type-D2s5lmbZ.js";
13
- import "./actor-5-FAuRf4.js";
14
- import { exportJwk, fetchKey, generateCryptoKeyPair, importJwk, validateCryptoKey } from "./key-rYOCY-hi.js";
13
+ import "./actor-DeIuzQxq.js";
14
+ import { exportJwk, fetchKey, generateCryptoKeyPair, importJwk, validateCryptoKey } from "./key-CWTlZkYV.js";
15
15
 
16
16
  export { validateCryptoKey };
@@ -3,9 +3,9 @@
3
3
  import { URLPattern } from "urlpattern-polyfill";
4
4
  globalThis.addEventListener = () => {};
5
5
 
6
- import { deno_default, getDocumentLoader } from "./docloader-BJ8NylDw.js";
7
- import { CryptographicKey, Object as Object$1 } from "./vocab-D6Yp14Di.js";
8
- import { isActor } from "./actor-5-FAuRf4.js";
6
+ import { deno_default, getDocumentLoader } from "./docloader-Cg1VPpKf.js";
7
+ import { CryptographicKey, Object as Object$1 } from "./vocab-CkD4jwmV.js";
8
+ import { isActor } from "./actor-DeIuzQxq.js";
9
9
  import { getLogger } from "@logtape/logtape";
10
10
  import { SpanKind, SpanStatusCode, trace } from "@opentelemetry/api";
11
11
 
@@ -3,7 +3,7 @@
3
3
  import { URLPattern } from "urlpattern-polyfill";
4
4
  globalThis.addEventListener = () => {};
5
5
 
6
- import { CryptographicKey, Multikey } from "./vocab-D6Yp14Di.js";
6
+ import { CryptographicKey, Multikey } from "./vocab-CkD4jwmV.js";
7
7
 
8
8
  //#region federation/keycache.ts
9
9
  var KvKeyCache = class {
@@ -3,7 +3,7 @@
3
3
  import { URLPattern } from "urlpattern-polyfill";
4
4
  globalThis.addEventListener = () => {};
5
5
 
6
- import { CryptographicKey, Multikey, importSpki } from "./vocab-D6Yp14Di.js";
6
+ import { CryptographicKey, Multikey, importSpki } from "./vocab-CkD4jwmV.js";
7
7
 
8
8
  //#region testing/keys.ts
9
9
  const rsaPublicKey1 = new CryptographicKey({
@@ -5,7 +5,7 @@
5
5
 
6
6
  //#region federation/kv.ts
7
7
  /**
8
- * A key-value store that stores values in memory.
8
+ * A keyvalue store that stores values in memory.
9
9
  * Do not use this in production as it does not persist values.
10
10
  *
11
11
  * @since 0.5.0
@@ -3,13 +3,13 @@ import { URLPattern } from "urlpattern-polyfill";
3
3
 
4
4
  //#region federation/kv.d.ts
5
5
  /**
6
- * A key for a key-value store. An array of one or more strings.
6
+ * A key for a keyvalue store. An array of one or more strings.
7
7
  *
8
8
  * @since 0.5.0
9
9
  */
10
10
  type KvKey = readonly [string] | readonly [string, ...string[]];
11
11
  /**
12
- * Additional options for setting a value in a key-value store.
12
+ * Additional options for setting a value in a keyvalue store.
13
13
  *
14
14
  * @since 0.5.0
15
15
  */
@@ -20,7 +20,7 @@ interface KvStoreSetOptions {
20
20
  ttl?: Temporal.Duration;
21
21
  }
22
22
  /**
23
- * An abstract interface for a key-value store.
23
+ * An abstract interface for a keyvalue store.
24
24
  *
25
25
  * @since 0.5.0
26
26
  */
@@ -46,7 +46,7 @@ interface KvStore {
46
46
  delete(key: KvKey): Promise<void>;
47
47
  }
48
48
  /**
49
- * A key-value store that stores values in memory.
49
+ * A keyvalue store that stores values in memory.
50
50
  * Do not use this in production as it does not persist values.
51
51
  *
52
52
  * @since 0.5.0
@@ -3,10 +3,10 @@
3
3
  import { URLPattern } from "urlpattern-polyfill";
4
4
  globalThis.addEventListener = () => {};
5
5
 
6
- import { deno_default, getDocumentLoader } from "./docloader-BJ8NylDw.js";
7
- import { Activity, CryptographicKey, Object as Object$1 } from "./vocab-D6Yp14Di.js";
6
+ import { deno_default, getDocumentLoader } from "./docloader-Cg1VPpKf.js";
7
+ import { Activity, CryptographicKey, Object as Object$1 } from "./vocab-CkD4jwmV.js";
8
8
  import { getTypeId } from "./type-D2s5lmbZ.js";
9
- import { fetchKey, validateCryptoKey } from "./key-rYOCY-hi.js";
9
+ import { fetchKey, validateCryptoKey } from "./key-CWTlZkYV.js";
10
10
  import { getLogger } from "@logtape/logtape";
11
11
  import { SpanStatusCode, trace } from "@opentelemetry/api";
12
12
  import { decodeBase64, encodeBase64 } from "byte-encodings/base64";
@@ -2,7 +2,7 @@
2
2
  import { Temporal } from "@js-temporal/polyfill";
3
3
  import { URLPattern } from "urlpattern-polyfill";
4
4
 
5
- import { UrlError, deno_default, getUserAgent, validatePublicUrl } from "./docloader-CdsC_SRJ.js";
5
+ import { UrlError, deno_default, getUserAgent, validatePublicUrl } from "./docloader-CoPL1xCC.js";
6
6
  import { getLogger } from "@logtape/logtape";
7
7
  import { SpanKind, SpanStatusCode, trace } from "@opentelemetry/api";
8
8
 
@@ -1,6 +1,6 @@
1
1
  import { Temporal } from "@js-temporal/polyfill";
2
2
  import { URLPattern } from "urlpattern-polyfill";
3
- import { GetUserAgentOptions } from "./docloader-DlUDOVSe.js";
3
+ import { GetUserAgentOptions } from "./docloader-Q42SMRIB.js";
4
4
  import { TracerProvider } from "@opentelemetry/api";
5
5
 
6
6
  //#region webfinger/jrd.d.ts
@@ -3,7 +3,7 @@
3
3
  import { URLPattern } from "urlpattern-polyfill";
4
4
  globalThis.addEventListener = () => {};
5
5
 
6
- import { deno_default, getUserAgent } from "./docloader-BJ8NylDw.js";
6
+ import { deno_default, getUserAgent } from "./docloader-Cg1VPpKf.js";
7
7
  import { UrlError, validatePublicUrl } from "./url-kTAI6_KP.js";
8
8
  import { getLogger } from "@logtape/logtape";
9
9
  import { SpanKind, SpanStatusCode, trace } from "@opentelemetry/api";
@@ -3,9 +3,9 @@
3
3
  import { URLPattern } from "urlpattern-polyfill";
4
4
  globalThis.addEventListener = () => {};
5
5
 
6
- import { deno_default, getDocumentLoader } from "./docloader-BJ8NylDw.js";
7
- import { Object as Object$1 } from "./vocab-D6Yp14Di.js";
8
- import { lookupWebFinger } from "./lookup-CPeufLlL.js";
6
+ import { deno_default, getDocumentLoader } from "./docloader-Cg1VPpKf.js";
7
+ import { Object as Object$1 } from "./vocab-CkD4jwmV.js";
8
+ import { lookupWebFinger } from "./lookup-CX4qjAss.js";
9
9
  import { getTypeId } from "./type-D2s5lmbZ.js";
10
10
  import { getLogger } from "@logtape/logtape";
11
11
  import { SpanStatusCode, trace } from "@opentelemetry/api";
@@ -3,15 +3,15 @@
3
3
  import { URLPattern } from "urlpattern-polyfill";
4
4
 
5
5
  import { getDefaultActivityTransformers } from "./transformers-ghwJuzGY.js";
6
- import { deno_default, getDocumentLoader, kvCache } from "./docloader-CdsC_SRJ.js";
7
- import { Activity, CryptographicKey, Link, Multikey, Object as Object$1, OrderedCollection, OrderedCollectionPage, getTypeId } from "./actor-vbzjuRVs.js";
8
- import { lookupWebFinger } from "./lookup-Daj8VQd5.js";
9
- import { exportJwk, importJwk, validateCryptoKey } from "./key-Dhc8vzUw.js";
10
- import { doubleKnock, verifyRequest } from "./http-D31adQ9m.js";
11
- import { detachSignature, doesActorOwnKey, getKeyOwner, hasSignature, signJsonLd, signObject, verifyJsonLd, verifyObject } from "./proof-Mnk9Grq5.js";
12
- import { getNodeInfo, nodeInfoToJson } from "./types-C7WKHGmD.js";
13
- import { getAuthenticatedDocumentLoader } from "./authdocloader-BCjWsAbK.js";
14
- import { lookupObject, traverseCollection } from "./vocab-g1ubBONs.js";
6
+ import { deno_default, getDocumentLoader, kvCache } from "./docloader-CoPL1xCC.js";
7
+ import { Activity, CryptographicKey, Link, Multikey, Object as Object$1, OrderedCollection, OrderedCollectionPage, getTypeId } from "./actor-DTfguoCb.js";
8
+ import { lookupWebFinger } from "./lookup-BLCwJTxi.js";
9
+ import { exportJwk, importJwk, validateCryptoKey } from "./key-B0tlgo53.js";
10
+ import { doubleKnock, verifyRequest } from "./http-D4ufSjCD.js";
11
+ import { detachSignature, doesActorOwnKey, getKeyOwner, hasSignature, signJsonLd, signObject, verifyJsonLd, verifyObject } from "./proof-R84z_lDC.js";
12
+ import { getNodeInfo, nodeInfoToJson } from "./types-DfKof1zg.js";
13
+ import { getAuthenticatedDocumentLoader } from "./authdocloader-D70SfymB.js";
14
+ import { lookupObject, traverseCollection } from "./vocab-BwnH7Mra.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";
@@ -312,7 +312,7 @@ var FederationBuilderImpl = class {
312
312
  this.objectTypeIds = {};
313
313
  }
314
314
  async build(options) {
315
- const { FederationImpl: FederationImpl$1 } = await import("./middleware-B0SwYDk5.js");
315
+ const { FederationImpl: FederationImpl$1 } = await import("./middleware-D6StExQX.js");
316
316
  const f = new FederationImpl$1(options);
317
317
  const trailingSlashInsensitiveValue = f.router.trailingSlashInsensitive;
318
318
  f.router = this.router.clone();
@@ -1780,6 +1780,7 @@ var FederationImpl = class extends FederationBuilderImpl {
1780
1780
  inboxRetryPolicy;
1781
1781
  activityTransformers;
1782
1782
  tracerProvider;
1783
+ firstKnock;
1783
1784
  constructor(options) {
1784
1785
  super();
1785
1786
  const logger$1 = getLogger(["fedify", "federation"]);
@@ -1858,7 +1859,7 @@ var FederationImpl = class extends FederationBuilderImpl {
1858
1859
  this.authenticatedDocumentLoaderFactory = options.authenticatedDocumentLoaderFactory ?? ((identity) => getAuthenticatedDocumentLoader(identity, {
1859
1860
  allowPrivateAddress,
1860
1861
  userAgent,
1861
- specDeterminer: new KvSpecDeterminer(this.kv, this.kvPrefixes.httpMessageSignaturesSpec),
1862
+ specDeterminer: new KvSpecDeterminer(this.kv, this.kvPrefixes.httpMessageSignaturesSpec, options.firstKnock),
1862
1863
  tracerProvider: this.tracerProvider
1863
1864
  }));
1864
1865
  this.userAgent = userAgent;
@@ -1869,6 +1870,7 @@ var FederationImpl = class extends FederationBuilderImpl {
1869
1870
  this.inboxRetryPolicy = options.inboxRetryPolicy ?? createExponentialBackoffPolicy();
1870
1871
  this.activityTransformers = options.activityTransformers ?? getDefaultActivityTransformers();
1871
1872
  this.tracerProvider = options.tracerProvider ?? trace.getTracerProvider();
1873
+ this.firstKnock = options.firstKnock;
1872
1874
  }
1873
1875
  _initializeRouter() {
1874
1876
  this.router.add("/.well-known/webfinger", "webfinger");
@@ -2028,7 +2030,7 @@ var FederationImpl = class extends FederationBuilderImpl {
2028
2030
  inbox: new URL(message.inbox),
2029
2031
  sharedInbox: message.sharedInbox,
2030
2032
  headers: new Headers(message.headers),
2031
- specDeterminer: new KvSpecDeterminer(this.kv, this.kvPrefixes.httpMessageSignaturesSpec),
2033
+ specDeterminer: new KvSpecDeterminer(this.kv, this.kvPrefixes.httpMessageSignaturesSpec, this.firstKnock),
2032
2034
  tracerProvider: this.tracerProvider
2033
2035
  });
2034
2036
  } catch (error) {
@@ -2305,7 +2307,7 @@ var FederationImpl = class extends FederationBuilderImpl {
2305
2307
  inbox: new URL(inbox),
2306
2308
  sharedInbox: inboxes[inbox].sharedInbox,
2307
2309
  headers: collectionSync == null ? void 0 : new Headers({ "Collection-Synchronization": await buildCollectionSynchronizationHeader(collectionSync, inboxes[inbox].actorIds) }),
2308
- specDeterminer: new KvSpecDeterminer(this.kv, this.kvPrefixes.httpMessageSignaturesSpec),
2310
+ specDeterminer: new KvSpecDeterminer(this.kv, this.kvPrefixes.httpMessageSignaturesSpec, this.firstKnock),
2309
2311
  tracerProvider: this.tracerProvider
2310
2312
  }));
2311
2313
  await Promise.all(promises);
@@ -3428,7 +3430,7 @@ var InboxContextImpl = class InboxContextImpl extends ContextImpl {
3428
3430
  inbox: new URL(inbox),
3429
3431
  sharedInbox: inboxes[inbox].sharedInbox,
3430
3432
  tracerProvider: this.tracerProvider,
3431
- specDeterminer: new KvSpecDeterminer(this.federation.kv, this.federation.kvPrefixes.httpMessageSignaturesSpec)
3433
+ specDeterminer: new KvSpecDeterminer(this.federation.kv, this.federation.kvPrefixes.httpMessageSignaturesSpec, this.federation.firstKnock)
3432
3434
  }));
3433
3435
  await Promise.all(promises);
3434
3436
  return;
@@ -0,0 +1,17 @@
1
+
2
+ import { Temporal } from "@js-temporal/polyfill";
3
+ import { URLPattern } from "urlpattern-polyfill";
4
+
5
+ import "./transformers-ghwJuzGY.js";
6
+ import "./docloader-CoPL1xCC.js";
7
+ import "./actor-DTfguoCb.js";
8
+ import { ContextImpl, FederationImpl, InboxContextImpl, KvSpecDeterminer, createFederation } from "./middleware-CUrRKWpM.js";
9
+ import "./lookup-BLCwJTxi.js";
10
+ import "./key-B0tlgo53.js";
11
+ import "./http-D4ufSjCD.js";
12
+ import "./proof-R84z_lDC.js";
13
+ import "./types-DfKof1zg.js";
14
+ import "./authdocloader-D70SfymB.js";
15
+ import "./vocab-BwnH7Mra.js";
16
+
17
+ export { FederationImpl };