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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (123) hide show
  1. package/dist/{actor-Cpal85xW.js → actor-BxAu0qet.js} +1 -1
  2. package/dist/{actor-C3gJhZJj.cjs → actor-CNUje03O.cjs} +187 -187
  3. package/dist/{actor-CnVfp1Hp.js → actor-m_ko-86v.js} +187 -187
  4. package/dist/{assert_rejects-7UF4R_Qs.js → assert_rejects-DiIiJbZn.js} +1 -1
  5. package/dist/{assert_throws-53_pKeP3.js → assert_throws-BOO88avQ.js} +1 -1
  6. package/dist/{authdocloader-Df2BFefL.js → authdocloader-Chl2nuOI.js} +3 -3
  7. package/dist/{authdocloader-DPCGwidE.cjs → authdocloader-D_3mtAjX.cjs} +3 -3
  8. package/dist/{authdocloader-DWnwkjvZ.js → authdocloader-nRFL9luh.js} +3 -3
  9. package/dist/{builder-CMxichO9.js → builder-C8Of4dPy.js} +4 -4
  10. package/dist/{client-BqyuOGiQ.js → client-yGBH5stP.js} +1 -1
  11. package/dist/compat/mod.d.cts +2 -2
  12. package/dist/compat/mod.d.ts +2 -2
  13. package/dist/compat/transformers.test.js +18 -17
  14. package/dist/{context-CDSZdQHD.d.ts → context-CQsAT7xk.d.ts} +0 -1
  15. package/dist/{context-Dq8aCtMH.d.cts → context-tVOQ76fi.d.cts} +0 -1
  16. package/dist/{docloader-B1O1Z5OK.cjs → docloader-SZjTrl6Z.cjs} +2 -2
  17. package/dist/{docloader-xJVzq9O0.js → docloader-_WdHTWQR.js} +2 -2
  18. package/dist/{esm-BBznxjVc.js → esm-e_G_xo95.js} +1 -1
  19. package/dist/federation/builder.test.js +10 -10
  20. package/dist/federation/collection.test.js +8 -8
  21. package/dist/federation/handler.test.js +26 -145
  22. package/dist/federation/inbox.test.js +6 -6
  23. package/dist/federation/keycache.test.js +4 -4
  24. package/dist/federation/kv.test.js +8 -8
  25. package/dist/federation/middleware.test.js +255 -38
  26. package/dist/federation/mod.cjs +10 -10
  27. package/dist/federation/mod.d.cts +1 -1
  28. package/dist/federation/mod.d.ts +1 -1
  29. package/dist/federation/mod.js +10 -10
  30. package/dist/federation/mq.test.js +10 -10
  31. package/dist/federation/negotiation.test.d.ts +3 -0
  32. package/dist/federation/negotiation.test.js +28 -0
  33. package/dist/federation/retry.test.js +5 -5
  34. package/dist/federation/router.test.js +8 -8
  35. package/dist/federation/send.test.js +15 -15
  36. package/dist/{http-y7khnX5Q.js → http-BEo67UOx.js} +2 -2
  37. package/dist/{http-CovAm6we.js → http-BpoEurUR.js} +3 -3
  38. package/dist/{http-Hw9HJp9i.cjs → http-DREvFalF.cjs} +3 -3
  39. package/dist/{inbox-DpcYOzs8.js → inbox-D-B5xFtJ.js} +1 -1
  40. package/dist/key-BvvbahfP.cjs +10 -0
  41. package/dist/{key-BRmlopJL.js → key-Cf8KTg-A.js} +2 -2
  42. package/dist/{key-DORX19Bl.js → key-Cps8Sv3N.js} +2 -2
  43. package/dist/{key-lapZwBwG.js → key-DJpcumqB.js} +4 -4
  44. package/dist/{key-jf6dIIF-.js → key-DqrTz8Xq.js} +3 -3
  45. package/dist/{key-CzF9SAEI.cjs → key-JqiQvcq1.cjs} +2 -2
  46. package/dist/{keycache-AH1uj1j-.js → keycache-D_Q1fPV0.js} +1 -1
  47. package/dist/{keys-B3fzLXBG.js → keys-F0jh2GNR.js} +1 -1
  48. package/dist/{ld-D3cq9xO1.js → ld-CXygHn_m.js} +2 -2
  49. package/dist/{lookup-7u217Q3H.cjs → lookup-C-Y0Ep1a.cjs} +1 -1
  50. package/dist/{lookup-CfU0DgLr.js → lookup-C6WSLjPE.js} +1 -1
  51. package/dist/{lookup-BrhURkmj.js → lookup-DuqY2_In.js} +1 -1
  52. package/dist/{middleware-DXWUGrBQ.js → middleware-2qNNXYEE.js} +32 -63
  53. package/dist/middleware-BD1IE5O5.js +26 -0
  54. package/dist/{middleware-Gsxukxs5.cjs → middleware-BsFAFlnZ.cjs} +32 -63
  55. package/dist/middleware-BuZrvrDv.js +17 -0
  56. package/dist/{middleware-BDN7YoYJ.js → middleware-CMiUxZ6O.js} +35 -130
  57. package/dist/middleware-h_3nRr8m.cjs +17 -0
  58. package/dist/{mod-RI3-KvUI.d.ts → mod-B26zRlH1.d.ts} +1 -1
  59. package/dist/{mod-BhMnAkFX.d.cts → mod-DBQAI4v9.d.cts} +1 -1
  60. package/dist/mod.cjs +10 -10
  61. package/dist/mod.d.cts +2 -2
  62. package/dist/mod.d.ts +2 -2
  63. package/dist/mod.js +10 -10
  64. package/dist/negotiation-5NPJL6zp.js +71 -0
  65. package/dist/nodeinfo/client.test.js +10 -10
  66. package/dist/nodeinfo/handler.test.js +23 -22
  67. package/dist/nodeinfo/mod.cjs +2 -2
  68. package/dist/nodeinfo/mod.js +2 -2
  69. package/dist/nodeinfo/types.test.js +8 -8
  70. package/dist/{owner-NFlQJyvM.js → owner-D2fTlp_x.js} +2 -2
  71. package/dist/{proof-Gip91fK7.cjs → proof-C4Y4gJcm.cjs} +3 -3
  72. package/dist/{proof-Be1oOYEh.js → proof-CHM9su4L.js} +3 -3
  73. package/dist/{proof-ar9xgPWi.js → proof-kEUjWRNJ.js} +2 -2
  74. package/dist/runtime/authdocloader.test.js +14 -14
  75. package/dist/runtime/docloader.test.js +9 -9
  76. package/dist/runtime/key.test.js +10 -10
  77. package/dist/runtime/langstr.test.js +8 -8
  78. package/dist/runtime/link.test.js +3 -3
  79. package/dist/runtime/mod.cjs +6 -6
  80. package/dist/runtime/mod.js +6 -6
  81. package/dist/runtime/multibase/multibase.test.js +8 -8
  82. package/dist/runtime/url.test.js +5 -5
  83. package/dist/{send-DkwkMFjJ.js → send-Utq2Jm0I.js} +2 -2
  84. package/dist/sig/http.test.js +13 -13
  85. package/dist/sig/key.test.js +11 -11
  86. package/dist/sig/ld.test.js +10 -10
  87. package/dist/sig/mod.cjs +6 -6
  88. package/dist/sig/mod.js +6 -6
  89. package/dist/sig/owner.test.js +12 -12
  90. package/dist/sig/proof.test.js +12 -12
  91. package/dist/testing/docloader.test.js +8 -8
  92. package/dist/testing/mod.js +3 -3
  93. package/dist/{testing-BMBhkcz9.js → testing-DUpTIvNE.js} +2 -2
  94. package/dist/{type-FCer_9yh.js → type-BYN6Ax2M.js} +187 -187
  95. package/dist/{types-CZ_qo9KW.cjs → types-BBpQe860.cjs} +1 -1
  96. package/dist/{types-CNWeAz8v.js → types-BXkh8ctL.js} +1 -1
  97. package/dist/vocab/actor.test.js +10 -10
  98. package/dist/vocab/lookup.test.js +9 -9
  99. package/dist/vocab/mod.cjs +4 -4
  100. package/dist/vocab/mod.js +4 -4
  101. package/dist/vocab/type.test.js +3 -3
  102. package/dist/vocab/vocab.test.js +9 -9
  103. package/dist/{vocab-9MjZjuZb.cjs → vocab-DWZQ7gVQ.cjs} +3 -3
  104. package/dist/{vocab-gpwUU9fc.js → vocab-PKJB4DyY.js} +3 -3
  105. package/dist/webfinger/handler.test.js +23 -22
  106. package/dist/webfinger/lookup.test.js +9 -9
  107. package/dist/webfinger/mod.cjs +2 -2
  108. package/dist/webfinger/mod.js +2 -2
  109. package/dist/x/cfworkers.test.js +8 -8
  110. package/dist/x/hono.d.cts +1 -1
  111. package/dist/x/hono.d.ts +1 -1
  112. package/dist/x/sveltekit.d.cts +1 -1
  113. package/dist/x/sveltekit.d.ts +1 -1
  114. package/package.json +1 -1
  115. package/dist/key-CV3FT32G.cjs +0 -10
  116. package/dist/middleware-CV-OPMlZ.js +0 -17
  117. package/dist/middleware-DGqnaAbp.cjs +0 -17
  118. package/dist/middleware-cCdfTTMv.js +0 -25
  119. /package/dist/{assert_is_error-B035L3om.js → assert_is_error-BPGph1Jx.js} +0 -0
  120. /package/dist/{assert_not_equals-C80BG-_5.js → assert_not_equals-f3m3epl3.js} +0 -0
  121. /package/dist/{denokv-jZ0Z2h0M.js → denokv-Bv33Xxea.js} +0 -0
  122. /package/dist/{retry-CfF8Gn4d.js → retry-D4GJ670a.js} +0 -0
  123. /package/dist/{std__assert-DWivtrGR.js → std__assert-X-_kMxKM.js} +0 -0
@@ -3,37 +3,51 @@
3
3
  import { URLPattern } from "urlpattern-polyfill";
4
4
  globalThis.addEventListener = () => {};
5
5
 
6
- import { Activity, Announce, Create, Invite, Multikey, Note, Object as Object$1, Offer, Person, fetchDocumentLoader, getTypeId } from "../type-FCer_9yh.js";
6
+ import { Activity, Announce, Create, Invite, Multikey, Note, Object as Object$1, Offer, Person, fetchDocumentLoader, getTypeId } from "../type-BYN6Ax2M.js";
7
7
  import { assertEquals } from "../assert_equals-DSbWqCm3.js";
8
8
  import { assert } from "../assert-MZs1qjMx.js";
9
9
  import { assertInstanceOf } from "../assert_instance_of-DHz7EHNU.js";
10
10
  import { MemoryKvStore } from "../kv-CRZrzyXm.js";
11
- import { ContextImpl, FederationImpl, InboxContextImpl, KvSpecDeterminer, createFederation } from "../middleware-BDN7YoYJ.js";
12
- import "../client-BqyuOGiQ.js";
13
- import { RouterError, lookupObject } from "../lookup-BrhURkmj.js";
11
+ import { ContextImpl, FederationImpl, InboxContextImpl, KvSpecDeterminer, createFederation } from "../middleware-CMiUxZ6O.js";
12
+ import "../client-yGBH5stP.js";
13
+ import { RouterError, lookupObject } from "../lookup-DuqY2_In.js";
14
14
  import "../types-BSuWJsOm.js";
15
- import "../actor-Cpal85xW.js";
16
- import "../key-DORX19Bl.js";
17
- import { signRequest, verifyRequest } from "../http-y7khnX5Q.js";
18
- import { getAuthenticatedDocumentLoader } from "../authdocloader-Df2BFefL.js";
19
- import { detachSignature, signJsonLd, verifyJsonLd } from "../ld-D3cq9xO1.js";
20
- import { doesActorOwnKey } from "../owner-NFlQJyvM.js";
21
- import { signObject, verifyObject } from "../proof-ar9xgPWi.js";
22
- import "../inbox-DpcYOzs8.js";
23
- import "../builder-CMxichO9.js";
15
+ import "../actor-BxAu0qet.js";
16
+ import "../key-Cps8Sv3N.js";
17
+ import { signRequest, verifyRequest } from "../http-BEo67UOx.js";
18
+ import { getAuthenticatedDocumentLoader } from "../authdocloader-Chl2nuOI.js";
19
+ import { detachSignature, signJsonLd, verifyJsonLd } from "../ld-CXygHn_m.js";
20
+ import { doesActorOwnKey } from "../owner-D2fTlp_x.js";
21
+ import { signObject, verifyObject } from "../proof-kEUjWRNJ.js";
22
+ import "../inbox-D-B5xFtJ.js";
23
+ import "../builder-C8Of4dPy.js";
24
24
  import "../collection-CcnIw1qY.js";
25
- import "../keycache-AH1uj1j-.js";
26
- import "../retry-CfF8Gn4d.js";
27
- import "../send-DkwkMFjJ.js";
28
- import { mockDocumentLoader, test } from "../testing-BMBhkcz9.js";
29
- import { assertStrictEquals } from "../std__assert-DWivtrGR.js";
30
- import { assertFalse, assertRejects } from "../assert_rejects-7UF4R_Qs.js";
31
- import "../assert_is_error-B035L3om.js";
32
- import { assertNotEquals } from "../assert_not_equals-C80BG-_5.js";
33
- import { assertThrows } from "../assert_throws-53_pKeP3.js";
34
- import { ed25519Multikey, ed25519PrivateKey, ed25519PublicKey, rsaPrivateKey2, rsaPrivateKey3, rsaPublicKey2, rsaPublicKey3 } from "../keys-B3fzLXBG.js";
35
- import { esm_default } from "../esm-BBznxjVc.js";
25
+ import "../keycache-D_Q1fPV0.js";
26
+ import "../negotiation-5NPJL6zp.js";
27
+ import "../retry-D4GJ670a.js";
28
+ import "../send-Utq2Jm0I.js";
29
+ import { mockDocumentLoader, test } from "../testing-DUpTIvNE.js";
30
+ import { assertStrictEquals } from "../std__assert-X-_kMxKM.js";
31
+ import { assertFalse, assertRejects } from "../assert_rejects-DiIiJbZn.js";
32
+ import "../assert_is_error-BPGph1Jx.js";
33
+ import { assertNotEquals } from "../assert_not_equals-f3m3epl3.js";
34
+ import { assertThrows } from "../assert_throws-BOO88avQ.js";
35
+ import { ed25519Multikey, ed25519PrivateKey, ed25519PublicKey, rsaPrivateKey2, rsaPrivateKey3, rsaPublicKey2, rsaPublicKey3 } from "../keys-F0jh2GNR.js";
36
+ import { esm_default } from "../esm-e_G_xo95.js";
36
37
 
38
+ //#region src/testing/fixtures/example.com/create.json
39
+ var __context$2 = "https://www.w3.org/ns/activitystreams";
40
+ var type$2 = "Create";
41
+ var id$2 = "https://example.com/create";
42
+ var actor = "https://example.com/person";
43
+ var create_default = {
44
+ "@context": __context$2,
45
+ type: type$2,
46
+ id: id$2,
47
+ actor
48
+ };
49
+
50
+ //#endregion
37
51
  //#region src/testing/fixtures/example.com/person.json
38
52
  var __context$1 = ["https://www.w3.org/ns/activitystreams", "https://w3id.org/security/v1"];
39
53
  var id$1 = "https://example.com/person";
@@ -680,7 +694,7 @@ test({
680
694
  kv,
681
695
  documentLoaderFactory: () => mockDocumentLoader
682
696
  });
683
- const req = new Request("https://example.com/");
697
+ const req = new Request("https://example.com/", { headers: { "accept": "application/ld+json" } });
684
698
  const ctx = federation.createContext(req, 123);
685
699
  assertEquals(ctx.request, req);
686
700
  assertEquals(ctx.url, new URL("https://example.com/"));
@@ -698,7 +712,7 @@ test({
698
712
  assertEquals(await ctx.getSignedKey(), null);
699
713
  assertEquals(await ctx.getSignedKeyOwner(), null);
700
714
  await assertRejects(() => ctx.getActor("someone"), Error, "No actor dispatcher registered");
701
- const signedReq = await signRequest(new Request("https://example.com/"), rsaPrivateKey2, rsaPublicKey2.id);
715
+ const signedReq = await signRequest(new Request("https://example.com/", { headers: { "accept": "application/ld+json" } }), rsaPrivateKey2, rsaPublicKey2.id);
702
716
  const signedCtx = federation.createContext(signedReq, 456);
703
717
  assertEquals(signedCtx.request, signedReq);
704
718
  assertEquals(signedCtx.url, new URL("https://example.com/"));
@@ -707,7 +721,7 @@ test({
707
721
  assertEquals(await signedCtx.getSignedKeyOwner(), null);
708
722
  assertEquals(await signedCtx.getSignedKey(), rsaPublicKey2);
709
723
  assertEquals(await signedCtx.getSignedKeyOwner(), null);
710
- const signedReq2 = await signRequest(new Request("https://example.com/"), rsaPrivateKey3, rsaPublicKey3.id);
724
+ const signedReq2 = await signRequest(new Request("https://example.com/", { headers: { "accept": "application/ld+json" } }), rsaPrivateKey3, rsaPublicKey3.id);
711
725
  const signedCtx2 = federation.createContext(signedReq2, 456);
712
726
  assertEquals(signedCtx2.request, signedReq2);
713
727
  assertEquals(signedCtx2.url, new URL("https://example.com/"));
@@ -740,7 +754,7 @@ test({
740
754
  });
741
755
  await t.step("RequestContext.clone()", () => {
742
756
  const federation = createFederation({ kv });
743
- const req = new Request("https://example.com/");
757
+ const req = new Request("https://example.com/", { headers: { "accept": "application/ld+json" } });
744
758
  const ctx = federation.createContext(req, 123);
745
759
  const clone = ctx.clone(456);
746
760
  assertStrictEquals(clone.request, ctx.request);
@@ -756,6 +770,180 @@ test({
756
770
  esm_default.hardReset();
757
771
  }
758
772
  });
773
+ test("Federation.fetch()", async (t) => {
774
+ esm_default.spyGlobal();
775
+ esm_default.get("https://example.com/key2", {
776
+ headers: { "Content-Type": "application/activity+json" },
777
+ body: await rsaPublicKey2.toJsonLd({ contextLoader: mockDocumentLoader })
778
+ });
779
+ esm_default.get("begin:https://example.com/person", {
780
+ headers: { "Content-Type": "application/activity+json" },
781
+ body: person_default
782
+ });
783
+ const createTestContext = () => {
784
+ const kv = new MemoryKvStore();
785
+ const inbox = [];
786
+ const dispatches = [];
787
+ const federation = createFederation({
788
+ kv,
789
+ documentLoaderFactory: () => mockDocumentLoader,
790
+ authenticatedDocumentLoaderFactory(identity) {
791
+ const docLoader = getAuthenticatedDocumentLoader(identity);
792
+ return (url) => {
793
+ const urlObj = new URL(url);
794
+ if (urlObj.host === "example.com") return docLoader(url);
795
+ return mockDocumentLoader(url);
796
+ };
797
+ }
798
+ });
799
+ federation.setActorDispatcher("/users/{identifier}", (ctx, identifier) => {
800
+ dispatches.push(identifier);
801
+ return new Person({
802
+ id: ctx.getActorUri(identifier),
803
+ inbox: ctx.getInboxUri(identifier),
804
+ preferredUsername: identifier
805
+ });
806
+ }).setKeyPairsDispatcher(() => {
807
+ return [{
808
+ privateKey: rsaPrivateKey2,
809
+ publicKey: rsaPublicKey2.publicKey
810
+ }];
811
+ });
812
+ federation.setInboxDispatcher("/users/{identifier}/inbox", () => {
813
+ return { items: [] };
814
+ });
815
+ federation.setInboxListeners("/users/{identifier}/inbox", "/inbox").on(Create, (_ctx, activity) => {
816
+ inbox.push(activity.id.toString());
817
+ return;
818
+ });
819
+ return {
820
+ federation,
821
+ inbox,
822
+ dispatches
823
+ };
824
+ };
825
+ await t.step("POST without accepts header", async () => {
826
+ const { federation, inbox } = createTestContext();
827
+ const response = await federation.fetch(new Request("https://example.com/inbox", { method: "POST" }), { contextData: void 0 });
828
+ assertEquals(inbox, []);
829
+ assertEquals(response.status, 406);
830
+ });
831
+ await t.step("GET without accepts header", async () => {
832
+ const { federation, dispatches } = createTestContext();
833
+ const response = await federation.fetch(new Request("https://example.com/users/actor", { method: "GET" }), { contextData: void 0 });
834
+ assertEquals(dispatches, []);
835
+ assertEquals(response.status, 406);
836
+ });
837
+ await t.step("POST with application/json", async () => {
838
+ const { federation, inbox } = createTestContext();
839
+ const request = await signRequest(new Request("https://example.com/users/json/inbox", {
840
+ method: "POST",
841
+ headers: {
842
+ "Accept": "application/json",
843
+ "Content-Type": "application/json"
844
+ },
845
+ body: JSON.stringify(create_default)
846
+ }), rsaPrivateKey2, rsaPublicKey2.id);
847
+ const response = await federation.fetch(request, { contextData: void 0 });
848
+ assertEquals(response.status, 202);
849
+ assertEquals(inbox.length, 1, "Expected one item in the inbox, json");
850
+ assertEquals(inbox[0], create_default.id);
851
+ });
852
+ await t.step("GET with application/json", async () => {
853
+ const { federation, dispatches } = createTestContext();
854
+ const response = await federation.fetch(new Request("https://example.com/users/json", {
855
+ method: "GET",
856
+ headers: { "Accept": "application/json" }
857
+ }), { contextData: void 0 });
858
+ assertEquals(dispatches, ["json"]);
859
+ assertEquals(response.status, 200);
860
+ });
861
+ await t.step("POST with application/ld+json", async () => {
862
+ const { federation, inbox } = createTestContext();
863
+ const request = await signRequest(new Request("https://example.com/users/ld/inbox", {
864
+ method: "POST",
865
+ headers: {
866
+ "Accept": "application/ld+json",
867
+ "Content-Type": "application/activity+json"
868
+ },
869
+ body: JSON.stringify(create_default)
870
+ }), rsaPrivateKey2, rsaPublicKey2.id);
871
+ const response = await federation.fetch(request, { contextData: void 0 });
872
+ assertEquals(response.status, 202);
873
+ assertEquals(inbox.length, 1, "Expected one inbox activity, ld+json");
874
+ assertEquals(inbox[0], create_default.id);
875
+ });
876
+ await t.step("GET with application/ld+json", async () => {
877
+ const { federation, dispatches } = createTestContext();
878
+ const request = new Request("https://example.com/users/ld", {
879
+ method: "GET",
880
+ headers: { "Accept": "application/ld+json" }
881
+ });
882
+ const response = await federation.fetch(request, { contextData: void 0 });
883
+ assertEquals(dispatches, ["ld"]);
884
+ assertEquals(response.status, 200);
885
+ });
886
+ await t.step("POST with application/activity+json", async () => {
887
+ const { federation, inbox } = createTestContext();
888
+ const request = await signRequest(new Request("https://example.com/users/activity/inbox", {
889
+ method: "POST",
890
+ headers: {
891
+ "Accept": "application/activity+json",
892
+ "Content-Type": "application/activity+json"
893
+ },
894
+ body: JSON.stringify(create_default)
895
+ }), rsaPrivateKey2, rsaPublicKey2.id);
896
+ const response = await federation.fetch(request, { contextData: void 0 });
897
+ assertEquals(response.status, 202);
898
+ assertEquals(inbox.length, 1);
899
+ assertEquals(inbox[0], create_default.id);
900
+ });
901
+ await t.step("GET with application/activity+json", async () => {
902
+ const { federation, dispatches } = createTestContext();
903
+ const request = new Request("https://example.com/users/activity", {
904
+ method: "GET",
905
+ headers: { "Accept": "application/ld+json" }
906
+ });
907
+ const response = await federation.fetch(request, { contextData: void 0 });
908
+ assertEquals(dispatches, ["activity"]);
909
+ assertEquals(response.status, 200);
910
+ });
911
+ await t.step("onNotAcceptable with POST", async () => {
912
+ const { federation } = createTestContext();
913
+ let notAcceptableCalled = false;
914
+ const response = await federation.fetch(new Request("https://example.com/users/html/inbox", {
915
+ method: "POST",
916
+ headers: { "Accept": "text/html" }
917
+ }), {
918
+ contextData: void 0,
919
+ onNotAcceptable: () => {
920
+ notAcceptableCalled = true;
921
+ return new Response("handled by onNotAcceptable", { status: 200 });
922
+ }
923
+ });
924
+ assertEquals(notAcceptableCalled, true);
925
+ assertEquals(response.status, 200);
926
+ assertEquals(await response.text(), "handled by onNotAcceptable");
927
+ });
928
+ await t.step("onNotAcceptable with GET", async () => {
929
+ const { federation } = createTestContext();
930
+ let notAcceptableCalled = false;
931
+ const response = await federation.fetch(new Request("https://example.com/users/html", {
932
+ method: "GET",
933
+ headers: { "Accept": "text/html" }
934
+ }), {
935
+ contextData: void 0,
936
+ onNotAcceptable: () => {
937
+ notAcceptableCalled = true;
938
+ return new Response("handled by onNotAcceptable", { status: 200 });
939
+ }
940
+ });
941
+ assertEquals(notAcceptableCalled, true);
942
+ assertEquals(response.status, 200);
943
+ assertEquals(await response.text(), "handled by onNotAcceptable");
944
+ });
945
+ esm_default.hardReset();
946
+ });
759
947
  test("Federation.setInboxListeners()", async (t) => {
760
948
  const kv = new MemoryKvStore();
761
949
  esm_default.spyGlobal();
@@ -808,7 +996,10 @@ test("Federation.setInboxListeners()", async (t) => {
808
996
  federation.setInboxListeners("/users/{identifier}/inbox", "/inbox").on(Create, (ctx, create) => {
809
997
  inbox.push([ctx, create]);
810
998
  });
811
- let response = await federation.fetch(new Request("https://example.com/inbox", { method: "POST" }), { contextData: void 0 });
999
+ let response = await federation.fetch(new Request("https://example.com/inbox", {
1000
+ method: "POST",
1001
+ headers: { "accept": "application/ld+json" }
1002
+ }), { contextData: void 0 });
812
1003
  assertEquals(inbox, []);
813
1004
  assertEquals(response.status, 404);
814
1005
  federation.setActorDispatcher("/users/{identifier}", (_, identifier) => identifier === "john" ? new Person({}) : null).setKeyPairsDispatcher(() => [{
@@ -825,23 +1016,37 @@ test("Federation.setInboxListeners()", async (t) => {
825
1016
  });
826
1017
  response = await federation.fetch(new Request("https://example.com/inbox", {
827
1018
  method: "POST",
828
- body: JSON.stringify(await activity().toJsonLd(options))
1019
+ body: JSON.stringify(await activity().toJsonLd(options)),
1020
+ headers: {
1021
+ "accept": "application/ld+json",
1022
+ "content-type": "application/ld+json"
1023
+ }
829
1024
  }), { contextData: void 0 });
830
1025
  assertEquals(inbox, []);
831
1026
  assertEquals(response.status, 401);
832
- response = await federation.fetch(new Request("https://example.com/users/no-one/inbox", { method: "POST" }), { contextData: void 0 });
1027
+ response = await federation.fetch(new Request("https://example.com/users/no-one/inbox", {
1028
+ method: "POST",
1029
+ headers: { "accept": "application/ld+json" }
1030
+ }), { contextData: void 0 });
833
1031
  assertEquals(inbox, []);
834
1032
  assertEquals(response.status, 404);
835
1033
  response = await federation.fetch(new Request("https://example.com/users/john/inbox", {
836
1034
  method: "POST",
837
- body: JSON.stringify(await activity().toJsonLd(options))
1035
+ body: JSON.stringify(await activity().toJsonLd(options)),
1036
+ headers: {
1037
+ "accept": "application/ld+json",
1038
+ "content-type": "application/ld+json"
1039
+ }
838
1040
  }), { contextData: void 0 });
839
1041
  assertEquals(inbox, []);
840
1042
  assertEquals(response.status, 401);
841
1043
  const activityPayload = await activity().toJsonLd(options);
842
1044
  let request = new Request("https://example.com/users/john/inbox", {
843
1045
  method: "POST",
844
- headers: { "Content-Type": "application/activity+json" },
1046
+ headers: {
1047
+ "Content-Type": "application/activity+json",
1048
+ accept: "application/ld+json"
1049
+ },
845
1050
  body: JSON.stringify(activityPayload)
846
1051
  });
847
1052
  request = await signRequest(request, rsaPrivateKey3, new URL("https://example.com/person2#key3"));
@@ -858,7 +1063,10 @@ test("Federation.setInboxListeners()", async (t) => {
858
1063
  inbox.shift();
859
1064
  request = new Request("https://another.host/users/john/inbox", {
860
1065
  method: "POST",
861
- headers: { "Content-Type": "application/activity+json" },
1066
+ headers: {
1067
+ "Content-Type": "application/activity+json",
1068
+ "accept": "application/ld+json"
1069
+ },
862
1070
  body: JSON.stringify(activityPayload)
863
1071
  });
864
1072
  request = await signRequest(request, rsaPrivateKey3, new URL("https://example.com/person2#key3"));
@@ -873,7 +1081,10 @@ test("Federation.setInboxListeners()", async (t) => {
873
1081
  inbox.shift();
874
1082
  request = new Request("https://example.com/inbox", {
875
1083
  method: "POST",
876
- headers: { "Content-Type": "application/activity+json" },
1084
+ headers: {
1085
+ "Content-Type": "application/activity+json",
1086
+ "accept": "application/ld+json"
1087
+ },
877
1088
  body: JSON.stringify(await activity().toJsonLd(options))
878
1089
  });
879
1090
  request = await signRequest(request, rsaPrivateKey3, new URL("https://example.com/person2#key3"));
@@ -888,7 +1099,10 @@ test("Federation.setInboxListeners()", async (t) => {
888
1099
  inbox.shift();
889
1100
  request = new Request("https://example.com/users/john/inbox", {
890
1101
  method: "POST",
891
- headers: { "Content-Type": "application/activity+json" },
1102
+ headers: {
1103
+ "Content-Type": "application/activity+json",
1104
+ "accept": "application/ld+json"
1105
+ },
892
1106
  body: JSON.stringify(await (await signObject(activity(), ed25519PrivateKey, ed25519Multikey.id, options)).toJsonLd(options))
893
1107
  });
894
1108
  response = await federation.fetch(request, { contextData: void 0 });
@@ -927,7 +1141,10 @@ test("Federation.setInboxListeners()", async (t) => {
927
1141
  const activity = new Create({ actor: new URL("https://example.com/person") });
928
1142
  let request = new Request("https://example.com/users/john/inbox", {
929
1143
  method: "POST",
930
- headers: { "Content-Type": "application/activity+json" },
1144
+ headers: {
1145
+ "Content-Type": "application/activity+json",
1146
+ "Accept": "application/activity+json"
1147
+ },
931
1148
  body: JSON.stringify(await activity.toJsonLd({ contextLoader: mockDocumentLoader }))
932
1149
  });
933
1150
  request = await signRequest(request, rsaPrivateKey2, new URL("https://example.com/key2"));
@@ -1243,7 +1460,7 @@ test("ContextImpl.sendActivity()", async (t) => {
1243
1460
  collectionSyncHeader = cl.request.headers.get("Collection-Synchronization");
1244
1461
  const options = {
1245
1462
  async documentLoader(url) {
1246
- const response = await federation.fetch(new Request(url), { contextData: void 0 });
1463
+ const response = await federation.fetch(new Request(url, { headers: { "accept": "application/ld+json" } }), { contextData: void 0 });
1247
1464
  if (response.ok) return {
1248
1465
  contextUrl: null,
1249
1466
  document: await response.json(),
@@ -3,17 +3,17 @@
3
3
  const { URLPattern } = require("urlpattern-polyfill");
4
4
 
5
5
  require('../transformers-CoBS-oFG.cjs');
6
- require('../docloader-B1O1Z5OK.cjs');
7
- require('../actor-C3gJhZJj.cjs');
8
- const require_middleware = require('../middleware-Gsxukxs5.cjs');
9
- require('../lookup-7u217Q3H.cjs');
10
- require('../key-CzF9SAEI.cjs');
11
- require('../http-Hw9HJp9i.cjs');
12
- require('../proof-Gip91fK7.cjs');
6
+ require('../docloader-SZjTrl6Z.cjs');
7
+ require('../actor-CNUje03O.cjs');
8
+ const require_middleware = require('../middleware-BsFAFlnZ.cjs');
9
+ require('../lookup-C-Y0Ep1a.cjs');
10
+ require('../key-JqiQvcq1.cjs');
11
+ require('../http-DREvFalF.cjs');
12
+ require('../proof-C4Y4gJcm.cjs');
13
13
  const require_federation = require('../federation-H2_En3j5.cjs');
14
- require('../types-CZ_qo9KW.cjs');
15
- require('../authdocloader-DPCGwidE.cjs');
16
- require('../vocab-9MjZjuZb.cjs');
14
+ require('../types-BBpQe860.cjs');
15
+ require('../authdocloader-D_3mtAjX.cjs');
16
+ require('../vocab-DWZQ7gVQ.cjs');
17
17
 
18
18
  exports.InProcessMessageQueue = require_federation.InProcessMessageQueue;
19
19
  exports.MemoryKvStore = require_federation.MemoryKvStore;
@@ -7,7 +7,7 @@ import "../http-BS6766zs.cjs";
7
7
  import "../owner-B-7Ptt_m.cjs";
8
8
  import "../mod-evzlRVZq.cjs";
9
9
  import "../mod-jQ4OODsl.cjs";
10
- import { 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 { ActorAliasMapper, ActorCallbackSetters, ActorDispatcher, ActorHandleMapper, ActorKeyPair, ActorKeyPairsDispatcher, AuthorizePredicate, CollectionCallbackSetters, CollectionCounter, CollectionCursor, CollectionDispatcher, ConstructorWithTypeId, Context, CreateExponentialBackoffPolicyOptions, CreateFederationOptions, CustomCollectionCallbackSetters, CustomCollectionCounter, CustomCollectionCursor, CustomCollectionDispatcher, Federatable, Federation, FederationBuilder, FederationFetchOptions, FederationKvPrefixes, FederationOptions, FederationOrigin, FederationQueueOptions, FederationStartQueueOptions, ForwardActivityOptions, GetSignedKeyOptions, InboxContext, InboxErrorHandler, InboxListener, InboxListenerSetters, Message, NodeInfoDispatcher, ObjectAuthorizePredicate, ObjectCallbackSetters, ObjectDispatcher, OutboxErrorHandler, PageItems, ParamsKeyPath, ParseUriResult, RequestContext, RespondWithObjectOptions, RetryContext, RetryPolicy, RouteActivityOptions, Router, RouterError, RouterOptions, RouterRouteResult, SendActivityOptions, SendActivityOptionsForCollection, SenderKeyPair, SharedInboxKeyDispatcher, WebFingerLinksDispatcher, buildCollectionSynchronizationHeader, createExponentialBackoffPolicy, createFederation, createFederationBuilder, digest, respondWithObject, respondWithObjectIfAcceptable } from "../context-tVOQ76fi.cjs";
11
11
  import { InProcessMessageQueue, InProcessMessageQueueOptions, MessageQueue, MessageQueueEnqueueOptions, MessageQueueListenOptions, ParallelMessageQueue } from "../mq-B7R1Q-M5.cjs";
12
12
  import "../mod-C2tOeRkN.cjs";
13
13
  export { 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, InProcessMessageQueue, InProcessMessageQueueOptions, InboxContext, InboxErrorHandler, InboxListener, InboxListenerSetters, KvKey, KvStore, KvStoreSetOptions, MemoryKvStore, Message, MessageQueue, MessageQueueEnqueueOptions, MessageQueueListenOptions, NodeInfoDispatcher, ObjectAuthorizePredicate, ObjectCallbackSetters, ObjectDispatcher, OutboxErrorHandler, PageItems, ParallelMessageQueue, ParamsKeyPath, ParseUriResult, RequestContext, RespondWithObjectOptions, RetryContext, RetryPolicy, RouteActivityOptions, Router, RouterError, RouterOptions, RouterRouteResult, SendActivityOptions, SendActivityOptionsForCollection, SenderKeyPair, SharedInboxKeyDispatcher, WebFingerLinksDispatcher, buildCollectionSynchronizationHeader, createExponentialBackoffPolicy, createFederation, createFederationBuilder, digest, respondWithObject, respondWithObjectIfAcceptable };
@@ -9,7 +9,7 @@ import "../http-DqSNLFNY.js";
9
9
  import "../owner-CQPnQVtf.js";
10
10
  import "../mod-Cxt4Kpf6.js";
11
11
  import "../mod-DBzN0aCM.js";
12
- import { 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-CDSZdQHD.js";
12
+ import { 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-CQsAT7xk.js";
13
13
  import { InProcessMessageQueue, InProcessMessageQueueOptions, MessageQueue, MessageQueueEnqueueOptions, MessageQueueListenOptions, ParallelMessageQueue } from "../mq-CRGm1e_F.js";
14
14
  import "../mod-g0xFzAP9.js";
15
15
  export { 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, InProcessMessageQueue, InProcessMessageQueueOptions, InboxContext, InboxErrorHandler, InboxListener, InboxListenerSetters, KvKey, KvStore, KvStoreSetOptions, MemoryKvStore, Message, MessageQueue, MessageQueueEnqueueOptions, MessageQueueListenOptions, NodeInfoDispatcher, ObjectAuthorizePredicate, ObjectCallbackSetters, ObjectDispatcher, OutboxErrorHandler, PageItems, ParallelMessageQueue, ParamsKeyPath, ParseUriResult, RequestContext, RespondWithObjectOptions, RetryContext, RetryPolicy, RouteActivityOptions, Router, RouterError, RouterOptions, RouterRouteResult, SendActivityOptions, SendActivityOptionsForCollection, SenderKeyPair, SharedInboxKeyDispatcher, WebFingerLinksDispatcher, buildCollectionSynchronizationHeader, createExponentialBackoffPolicy, createFederation, createFederationBuilder, digest, respondWithObject, respondWithObjectIfAcceptable };
@@ -3,16 +3,16 @@
3
3
  import { URLPattern } from "urlpattern-polyfill";
4
4
 
5
5
  import "../transformers-BFT6d7J5.js";
6
- import "../docloader-xJVzq9O0.js";
7
- import "../actor-CnVfp1Hp.js";
8
- import { Router, RouterError, buildCollectionSynchronizationHeader, createExponentialBackoffPolicy, createFederation, createFederationBuilder, digest, respondWithObject, respondWithObjectIfAcceptable } from "../middleware-DXWUGrBQ.js";
9
- import "../lookup-CfU0DgLr.js";
10
- import "../key-BRmlopJL.js";
11
- import "../http-CovAm6we.js";
12
- import "../proof-Be1oOYEh.js";
6
+ import "../docloader-_WdHTWQR.js";
7
+ import "../actor-m_ko-86v.js";
8
+ import { Router, RouterError, buildCollectionSynchronizationHeader, createExponentialBackoffPolicy, createFederation, createFederationBuilder, digest, respondWithObject, respondWithObjectIfAcceptable } from "../middleware-2qNNXYEE.js";
9
+ import "../lookup-C6WSLjPE.js";
10
+ import "../key-Cf8KTg-A.js";
11
+ import "../http-BpoEurUR.js";
12
+ import "../proof-CHM9su4L.js";
13
13
  import { InProcessMessageQueue, MemoryKvStore, ParallelMessageQueue } from "../federation-D1U8YY9t.js";
14
- import "../types-CNWeAz8v.js";
15
- import "../authdocloader-DWnwkjvZ.js";
16
- import "../vocab-gpwUU9fc.js";
14
+ import "../types-BXkh8ctL.js";
15
+ import "../authdocloader-nRFL9luh.js";
16
+ import "../vocab-PKJB4DyY.js";
17
17
 
18
18
  export { InProcessMessageQueue, MemoryKvStore, ParallelMessageQueue, Router, RouterError, buildCollectionSynchronizationHeader, createExponentialBackoffPolicy, createFederation, createFederationBuilder, digest, respondWithObject, respondWithObjectIfAcceptable };
@@ -3,17 +3,17 @@
3
3
  import { URLPattern } from "urlpattern-polyfill";
4
4
  globalThis.addEventListener = () => {};
5
5
 
6
- import "../type-FCer_9yh.js";
6
+ import "../type-BYN6Ax2M.js";
7
7
  import { assertEquals } from "../assert_equals-DSbWqCm3.js";
8
8
  import { assert } from "../assert-MZs1qjMx.js";
9
9
  import "../assert_instance_of-DHz7EHNU.js";
10
- import "../lookup-BrhURkmj.js";
11
- import { test } from "../testing-BMBhkcz9.js";
12
- import { assertGreater, assertGreaterOrEqual } from "../std__assert-DWivtrGR.js";
13
- import { assertFalse } from "../assert_rejects-7UF4R_Qs.js";
14
- import "../assert_is_error-B035L3om.js";
15
- import "../assert_not_equals-C80BG-_5.js";
16
- import "../assert_throws-53_pKeP3.js";
10
+ import "../lookup-DuqY2_In.js";
11
+ import { test } from "../testing-DUpTIvNE.js";
12
+ import { assertGreater, assertGreaterOrEqual } from "../std__assert-X-_kMxKM.js";
13
+ import { assertFalse } from "../assert_rejects-DiIiJbZn.js";
14
+ import "../assert_is_error-BPGph1Jx.js";
15
+ import "../assert_not_equals-f3m3epl3.js";
16
+ import "../assert_throws-BOO88avQ.js";
17
17
  import { delay } from "es-toolkit";
18
18
 
19
19
  //#region src/federation/mq.ts
@@ -227,7 +227,7 @@ test("InProcessMessageQueue", async (t) => {
227
227
  });
228
228
  test("MessageQueue.nativeRetrial", async (t) => {
229
229
  if ("Deno" in globalThis && "openKv" in globalThis.Deno && typeof globalThis.Deno.openKv === "function") await t.step("DenoKvMessageQueue", async () => {
230
- const { DenoKvMessageQueue } = await import("../denokv-jZ0Z2h0M.js");
230
+ const { DenoKvMessageQueue } = await import("../denokv-Bv33Xxea.js");
231
231
  const mq = new DenoKvMessageQueue(await globalThis.Deno.openKv(":memory:"));
232
232
  assert(mq.nativeRetrial);
233
233
  if (Symbol.dispose in mq) {
@@ -266,7 +266,7 @@ test("MessageQueue.nativeRetrial", async (t) => {
266
266
  });
267
267
  const queues = { InProcessMessageQueue: () => Promise.resolve(new InProcessMessageQueue()) };
268
268
  if ("Deno" in globalThis && "openKv" in globalThis.Deno && typeof globalThis.Deno.openKv === "function") {
269
- const { DenoKvMessageQueue } = await import("../denokv-jZ0Z2h0M.js");
269
+ const { DenoKvMessageQueue } = await import("../denokv-Bv33Xxea.js");
270
270
  queues.DenoKvMessageQueue = async () => new DenoKvMessageQueue(await globalThis.Deno.openKv(":memory:"));
271
271
  }
272
272
  for (const mqName in queues) test({
@@ -0,0 +1,3 @@
1
+ import { Temporal } from "@js-temporal/polyfill";
2
+ import { URLPattern } from "urlpattern-polyfill";
3
+ globalThis.addEventListener = () => {};
@@ -0,0 +1,28 @@
1
+
2
+ import { Temporal } from "@js-temporal/polyfill";
3
+ import { URLPattern } from "urlpattern-polyfill";
4
+ globalThis.addEventListener = () => {};
5
+
6
+ import "../type-BYN6Ax2M.js";
7
+ import "../assert_equals-DSbWqCm3.js";
8
+ import { assert } from "../assert-MZs1qjMx.js";
9
+ import "../assert_instance_of-DHz7EHNU.js";
10
+ import "../lookup-DuqY2_In.js";
11
+ import { acceptsJsonLd } from "../negotiation-5NPJL6zp.js";
12
+ import { test } from "../testing-DUpTIvNE.js";
13
+ import "../std__assert-X-_kMxKM.js";
14
+ import { assertFalse } from "../assert_rejects-DiIiJbZn.js";
15
+ import "../assert_is_error-BPGph1Jx.js";
16
+ import "../assert_not_equals-f3m3epl3.js";
17
+ import "../assert_throws-BOO88avQ.js";
18
+
19
+ //#region src/federation/negotiation.test.ts
20
+ test("acceptsJsonLd()", () => {
21
+ assert(acceptsJsonLd(new Request("https://example.com/", { headers: { Accept: "application/activity+json" } })));
22
+ assert(acceptsJsonLd(new Request("https://example.com/", { headers: { Accept: "application/ld+json" } })));
23
+ assert(acceptsJsonLd(new Request("https://example.com/", { headers: { Accept: "application/json" } })));
24
+ assertFalse(acceptsJsonLd(new Request("https://example.com/", { headers: { Accept: "application/ld+json; q=0.5, text/html; q=0.8" } })));
25
+ assertFalse(acceptsJsonLd(new Request("https://example.com/", { headers: { Accept: "application/ld+json; q=0.4, application/xhtml+xml; q=0.9" } })));
26
+ });
27
+
28
+ //#endregion
@@ -3,12 +3,12 @@
3
3
  import { URLPattern } from "urlpattern-polyfill";
4
4
  globalThis.addEventListener = () => {};
5
5
 
6
- import "../type-FCer_9yh.js";
6
+ import "../type-BYN6Ax2M.js";
7
7
  import { AssertionError, assertEquals } from "../assert_equals-DSbWqCm3.js";
8
- import "../lookup-BrhURkmj.js";
9
- import { createExponentialBackoffPolicy } from "../retry-CfF8Gn4d.js";
10
- import { test } from "../testing-BMBhkcz9.js";
11
- import { assertNotEquals } from "../assert_not_equals-C80BG-_5.js";
8
+ import "../lookup-DuqY2_In.js";
9
+ import { createExponentialBackoffPolicy } from "../retry-D4GJ670a.js";
10
+ import { test } from "../testing-DUpTIvNE.js";
11
+ import { assertNotEquals } from "../assert_not_equals-f3m3epl3.js";
12
12
 
13
13
  //#region src/federation/retry.test.ts
14
14
  test("createExponentialBackoffPolicy()", () => {
@@ -3,17 +3,17 @@
3
3
  import { URLPattern } from "urlpattern-polyfill";
4
4
  globalThis.addEventListener = () => {};
5
5
 
6
- import "../type-FCer_9yh.js";
6
+ import "../type-BYN6Ax2M.js";
7
7
  import { assertEquals } from "../assert_equals-DSbWqCm3.js";
8
8
  import { assert } from "../assert-MZs1qjMx.js";
9
9
  import "../assert_instance_of-DHz7EHNU.js";
10
- import { Router, RouterError } from "../lookup-BrhURkmj.js";
11
- import { test } from "../testing-BMBhkcz9.js";
12
- import "../std__assert-DWivtrGR.js";
13
- import { assertFalse } from "../assert_rejects-7UF4R_Qs.js";
14
- import "../assert_is_error-B035L3om.js";
15
- import "../assert_not_equals-C80BG-_5.js";
16
- import { assertThrows } from "../assert_throws-53_pKeP3.js";
10
+ import { Router, RouterError } from "../lookup-DuqY2_In.js";
11
+ import { test } from "../testing-DUpTIvNE.js";
12
+ import "../std__assert-X-_kMxKM.js";
13
+ import { assertFalse } from "../assert_rejects-DiIiJbZn.js";
14
+ import "../assert_is_error-BPGph1Jx.js";
15
+ import "../assert_not_equals-f3m3epl3.js";
16
+ import { assertThrows } from "../assert_throws-BOO88avQ.js";
17
17
 
18
18
  //#region src/federation/router.test.ts
19
19
  function setUp(options = {}) {