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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (123) hide show
  1. package/dist/{actor-Dd2E4F9C.cjs → actor-C3gJhZJj.cjs} +187 -187
  2. package/dist/{actor-Dsla85Uq.js → actor-CnVfp1Hp.js} +187 -187
  3. package/dist/{actor-By5NMImS.js → actor-Cpal85xW.js} +1 -1
  4. package/dist/{assert_rejects-DiIiJbZn.js → assert_rejects-7UF4R_Qs.js} +1 -1
  5. package/dist/{assert_throws-BOO88avQ.js → assert_throws-53_pKeP3.js} +1 -1
  6. package/dist/{authdocloader-B28UEZlz.cjs → authdocloader-DPCGwidE.cjs} +3 -3
  7. package/dist/{authdocloader-CpmdBiRe.js → authdocloader-DWnwkjvZ.js} +3 -3
  8. package/dist/{authdocloader-lhbaj4KA.js → authdocloader-Df2BFefL.js} +3 -3
  9. package/dist/{builder-B6AupxqD.js → builder-CMxichO9.js} +4 -4
  10. package/dist/{client-KUXReLjS.js → client-BqyuOGiQ.js} +1 -1
  11. package/dist/compat/mod.d.cts +2 -2
  12. package/dist/compat/mod.d.ts +2 -2
  13. package/dist/compat/transformers.test.js +17 -18
  14. package/dist/{context-CQsAT7xk.d.ts → context-CDSZdQHD.d.ts} +1 -0
  15. package/dist/{context-tVOQ76fi.d.cts → context-Dq8aCtMH.d.cts} +1 -0
  16. package/dist/{docloader-NJZ5ADV3.cjs → docloader-B1O1Z5OK.cjs} +2 -2
  17. package/dist/{docloader-ZGKS1Zy-.js → docloader-xJVzq9O0.js} +2 -2
  18. package/dist/{esm-CIFbziGC.js → esm-BBznxjVc.js} +1 -1
  19. package/dist/federation/builder.test.js +10 -10
  20. package/dist/federation/collection.test.js +8 -8
  21. package/dist/federation/handler.test.js +145 -26
  22. package/dist/federation/inbox.test.js +6 -6
  23. package/dist/federation/keycache.test.js +4 -4
  24. package/dist/federation/kv.test.js +8 -8
  25. package/dist/federation/middleware.test.js +38 -255
  26. package/dist/federation/mod.cjs +10 -10
  27. package/dist/federation/mod.d.cts +1 -1
  28. package/dist/federation/mod.d.ts +1 -1
  29. package/dist/federation/mod.js +10 -10
  30. package/dist/federation/mq.test.js +10 -10
  31. package/dist/federation/retry.test.js +5 -5
  32. package/dist/federation/router.test.js +8 -8
  33. package/dist/federation/send.test.js +15 -15
  34. package/dist/{http-BqSkbrGv.js → http-CovAm6we.js} +3 -3
  35. package/dist/{http-DH8DQz2-.cjs → http-Hw9HJp9i.cjs} +3 -3
  36. package/dist/{http-CCydyMoV.js → http-y7khnX5Q.js} +2 -2
  37. package/dist/{inbox-DH8TXk1f.js → inbox-DpcYOzs8.js} +1 -1
  38. package/dist/{key-cn3BcQaB.js → key-BRmlopJL.js} +2 -2
  39. package/dist/key-CV3FT32G.cjs +10 -0
  40. package/dist/{key-CYrKbGH0.cjs → key-CzF9SAEI.cjs} +2 -2
  41. package/dist/{key-B057bXm0.js → key-DORX19Bl.js} +2 -2
  42. package/dist/{key-3cqchRKs.js → key-jf6dIIF-.js} +3 -3
  43. package/dist/{key-HjvDY-QJ.js → key-lapZwBwG.js} +4 -4
  44. package/dist/{keycache-CB_VjDe0.js → keycache-AH1uj1j-.js} +1 -1
  45. package/dist/{keys-Dz9o2VwW.js → keys-B3fzLXBG.js} +1 -1
  46. package/dist/{ld-CxJe2x7_.js → ld-D3cq9xO1.js} +2 -2
  47. package/dist/{lookup-BZzUCUat.cjs → lookup-7u217Q3H.cjs} +1 -1
  48. package/dist/{lookup-q8DeFAjR.js → lookup-BrhURkmj.js} +1 -1
  49. package/dist/{lookup-Cc-KXO2K.js → lookup-CfU0DgLr.js} +1 -1
  50. package/dist/{middleware-DxS7Csvz.js → middleware-BDN7YoYJ.js} +130 -35
  51. package/dist/middleware-CV-OPMlZ.js +17 -0
  52. package/dist/middleware-DGqnaAbp.cjs +17 -0
  53. package/dist/{middleware-BvEwDOJ5.js → middleware-DXWUGrBQ.js} +63 -32
  54. package/dist/{middleware-DGvzxKjo.cjs → middleware-Gsxukxs5.cjs} +63 -32
  55. package/dist/middleware-cCdfTTMv.js +25 -0
  56. package/dist/{mod-DBQAI4v9.d.cts → mod-BhMnAkFX.d.cts} +1 -1
  57. package/dist/{mod-B26zRlH1.d.ts → mod-RI3-KvUI.d.ts} +1 -1
  58. package/dist/mod.cjs +10 -10
  59. package/dist/mod.d.cts +2 -2
  60. package/dist/mod.d.ts +2 -2
  61. package/dist/mod.js +10 -10
  62. package/dist/nodeinfo/client.test.js +10 -10
  63. package/dist/nodeinfo/handler.test.js +22 -23
  64. package/dist/nodeinfo/mod.cjs +2 -2
  65. package/dist/nodeinfo/mod.js +2 -2
  66. package/dist/nodeinfo/types.test.js +8 -8
  67. package/dist/{owner-jwXilm3L.js → owner-NFlQJyvM.js} +2 -2
  68. package/dist/{proof-BE1A6Ct1.js → proof-Be1oOYEh.js} +3 -3
  69. package/dist/{proof-BzKiLsN7.cjs → proof-Gip91fK7.cjs} +3 -3
  70. package/dist/{proof-CHi36V0T.js → proof-ar9xgPWi.js} +2 -2
  71. package/dist/runtime/authdocloader.test.js +14 -14
  72. package/dist/runtime/docloader.test.js +9 -9
  73. package/dist/runtime/key.test.js +10 -10
  74. package/dist/runtime/langstr.test.js +8 -8
  75. package/dist/runtime/link.test.js +3 -3
  76. package/dist/runtime/mod.cjs +6 -6
  77. package/dist/runtime/mod.js +6 -6
  78. package/dist/runtime/multibase/multibase.test.js +8 -8
  79. package/dist/runtime/url.test.js +5 -5
  80. package/dist/{send-CwVrwo7j.js → send-DkwkMFjJ.js} +2 -2
  81. package/dist/sig/http.test.js +13 -13
  82. package/dist/sig/key.test.js +11 -11
  83. package/dist/sig/ld.test.js +10 -10
  84. package/dist/sig/mod.cjs +6 -6
  85. package/dist/sig/mod.js +6 -6
  86. package/dist/sig/owner.test.js +12 -12
  87. package/dist/sig/proof.test.js +12 -12
  88. package/dist/testing/docloader.test.js +8 -8
  89. package/dist/testing/mod.js +3 -3
  90. package/dist/{testing-Cqwzq9nj.js → testing-BMBhkcz9.js} +2 -2
  91. package/dist/{type-BSR-vRXo.js → type-FCer_9yh.js} +187 -187
  92. package/dist/{types-XMA_ABYQ.js → types-CNWeAz8v.js} +1 -1
  93. package/dist/{types-zwVAf9LF.cjs → types-CZ_qo9KW.cjs} +1 -1
  94. package/dist/vocab/actor.test.js +10 -10
  95. package/dist/vocab/lookup.test.js +9 -9
  96. package/dist/vocab/mod.cjs +4 -4
  97. package/dist/vocab/mod.js +4 -4
  98. package/dist/vocab/type.test.js +3 -3
  99. package/dist/vocab/vocab.test.js +9 -9
  100. package/dist/{vocab-Bj8iyEkG.cjs → vocab-9MjZjuZb.cjs} +3 -3
  101. package/dist/{vocab-BlOQWNvd.js → vocab-gpwUU9fc.js} +3 -3
  102. package/dist/webfinger/handler.test.js +22 -23
  103. package/dist/webfinger/lookup.test.js +9 -9
  104. package/dist/webfinger/mod.cjs +2 -2
  105. package/dist/webfinger/mod.js +2 -2
  106. package/dist/x/cfworkers.test.js +8 -8
  107. package/dist/x/hono.d.cts +1 -1
  108. package/dist/x/hono.d.ts +1 -1
  109. package/dist/x/sveltekit.d.cts +1 -1
  110. package/dist/x/sveltekit.d.ts +1 -1
  111. package/package.json +1 -1
  112. package/dist/federation/negotiation.test.d.ts +0 -3
  113. package/dist/federation/negotiation.test.js +0 -28
  114. package/dist/key-Bom4W546.cjs +0 -10
  115. package/dist/middleware-B7yi4Uls.cjs +0 -17
  116. package/dist/middleware-DCdrZPxz.js +0 -17
  117. package/dist/middleware-DTjhpVrj.js +0 -26
  118. package/dist/negotiation-5NPJL6zp.js +0 -71
  119. /package/dist/{assert_is_error-BPGph1Jx.js → assert_is_error-B035L3om.js} +0 -0
  120. /package/dist/{assert_not_equals-f3m3epl3.js → assert_not_equals-C80BG-_5.js} +0 -0
  121. /package/dist/{denokv-Bv33Xxea.js → denokv-jZ0Z2h0M.js} +0 -0
  122. /package/dist/{retry-D4GJ670a.js → retry-CfF8Gn4d.js} +0 -0
  123. /package/dist/{std__assert-X-_kMxKM.js → std__assert-DWivtrGR.js} +0 -0
@@ -3,38 +3,44 @@
3
3
  import { URLPattern } from "urlpattern-polyfill";
4
4
  globalThis.addEventListener = () => {};
5
5
 
6
- import { Create, Note, Person } from "../type-BSR-vRXo.js";
6
+ import { Create, Note, Person } from "../type-FCer_9yh.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
10
  import { MemoryKvStore } from "../kv-CRZrzyXm.js";
11
- import { createFederation, handleActor, handleCollection, handleCustomCollection, handleInbox, handleObject, respondWithObject, respondWithObjectIfAcceptable } from "../middleware-DxS7Csvz.js";
12
- import "../client-KUXReLjS.js";
13
- import "../lookup-q8DeFAjR.js";
11
+ import { acceptsJsonLd, createFederation, handleActor, handleCollection, handleCustomCollection, handleInbox, handleObject, respondWithObject, respondWithObjectIfAcceptable } from "../middleware-BDN7YoYJ.js";
12
+ import "../client-BqyuOGiQ.js";
13
+ import "../lookup-BrhURkmj.js";
14
14
  import "../types-BSuWJsOm.js";
15
- import "../actor-By5NMImS.js";
16
- import "../key-B057bXm0.js";
17
- import { signRequest } from "../http-CCydyMoV.js";
18
- import "../authdocloader-lhbaj4KA.js";
19
- import "../ld-CxJe2x7_.js";
20
- import "../owner-jwXilm3L.js";
21
- import "../proof-CHi36V0T.js";
22
- import { InboxListenerSet } from "../inbox-DH8TXk1f.js";
23
- import "../builder-B6AupxqD.js";
15
+ import "../actor-Cpal85xW.js";
16
+ import "../key-DORX19Bl.js";
17
+ import { signRequest } from "../http-y7khnX5Q.js";
18
+ import "../authdocloader-Df2BFefL.js";
19
+ import "../ld-D3cq9xO1.js";
20
+ import "../owner-NFlQJyvM.js";
21
+ import "../proof-ar9xgPWi.js";
22
+ import { InboxListenerSet } from "../inbox-DpcYOzs8.js";
23
+ import "../builder-CMxichO9.js";
24
24
  import "../collection-CcnIw1qY.js";
25
- import "../keycache-CB_VjDe0.js";
26
- import "../negotiation-5NPJL6zp.js";
27
- import "../retry-D4GJ670a.js";
28
- import "../send-CwVrwo7j.js";
29
- import { createInboxContext, createRequestContext, mockDocumentLoader, test } from "../testing-Cqwzq9nj.js";
30
- import "../std__assert-X-_kMxKM.js";
31
- import "../assert_rejects-DiIiJbZn.js";
32
- import "../assert_is_error-BPGph1Jx.js";
33
- import "../assert_not_equals-f3m3epl3.js";
34
- import "../assert_throws-BOO88avQ.js";
35
- import { rsaPrivateKey3, rsaPublicKey2, rsaPublicKey3 } from "../keys-Dz9o2VwW.js";
25
+ import "../keycache-AH1uj1j-.js";
26
+ import "../retry-CfF8Gn4d.js";
27
+ import "../send-DkwkMFjJ.js";
28
+ import { createInboxContext, createRequestContext, mockDocumentLoader, test } from "../testing-BMBhkcz9.js";
29
+ import "../std__assert-DWivtrGR.js";
30
+ import { assertFalse } from "../assert_rejects-7UF4R_Qs.js";
31
+ import "../assert_is_error-B035L3om.js";
32
+ import "../assert_not_equals-C80BG-_5.js";
33
+ import "../assert_throws-53_pKeP3.js";
34
+ import { rsaPrivateKey3, rsaPublicKey2, rsaPublicKey3 } from "../keys-B3fzLXBG.js";
36
35
 
37
36
  //#region src/federation/handler.test.ts
37
+ test("acceptsJsonLd()", () => {
38
+ assert(acceptsJsonLd(new Request("https://example.com/", { headers: { Accept: "application/activity+json" } })));
39
+ assert(acceptsJsonLd(new Request("https://example.com/", { headers: { Accept: "application/ld+json" } })));
40
+ assert(acceptsJsonLd(new Request("https://example.com/", { headers: { Accept: "application/json" } })));
41
+ assertFalse(acceptsJsonLd(new Request("https://example.com/", { headers: { Accept: "application/ld+json; q=0.5, text/html; q=0.8" } })));
42
+ assertFalse(acceptsJsonLd(new Request("https://example.com/", { headers: { Accept: "application/ld+json; q=0.4, application/xhtml+xml; q=0.9" } })));
43
+ });
38
44
  test("handleActor()", async () => {
39
45
  const federation = createFederation({ kv: new MemoryKvStore() });
40
46
  let context = createRequestContext({
@@ -57,6 +63,11 @@ test("handleActor()", async () => {
57
63
  onNotFoundCalled = request;
58
64
  return new Response("Not found", { status: 404 });
59
65
  };
66
+ let onNotAcceptableCalled = null;
67
+ const onNotAcceptable = (request) => {
68
+ onNotAcceptableCalled = request;
69
+ return new Response("Not acceptable", { status: 406 });
70
+ };
60
71
  let onUnauthorizedCalled = null;
61
72
  const onUnauthorized = (request) => {
62
73
  onUnauthorizedCalled = request;
@@ -66,21 +77,44 @@ test("handleActor()", async () => {
66
77
  context,
67
78
  identifier: "someone",
68
79
  onNotFound,
80
+ onNotAcceptable,
69
81
  onUnauthorized
70
82
  });
71
83
  assertEquals(response.status, 404);
72
84
  assertEquals(onNotFoundCalled, context.request);
85
+ assertEquals(onNotAcceptableCalled, null);
73
86
  assertEquals(onUnauthorizedCalled, null);
74
87
  onNotFoundCalled = null;
88
+ context = createRequestContext({
89
+ ...context,
90
+ getActor(handle) {
91
+ return Promise.resolve(actorDispatcher(context, handle));
92
+ }
93
+ });
94
+ response = await handleActor(context.request, {
95
+ context,
96
+ identifier: "someone",
97
+ actorDispatcher,
98
+ onNotFound,
99
+ onNotAcceptable,
100
+ onUnauthorized
101
+ });
102
+ assertEquals(response.status, 406);
103
+ assertEquals(onNotFoundCalled, null);
104
+ assertEquals(onNotAcceptableCalled, context.request);
105
+ assertEquals(onUnauthorizedCalled, null);
106
+ onNotAcceptableCalled = null;
75
107
  response = await handleActor(context.request, {
76
108
  context,
77
109
  identifier: "no-one",
78
110
  actorDispatcher,
79
111
  onNotFound,
112
+ onNotAcceptable,
80
113
  onUnauthorized
81
114
  });
82
115
  assertEquals(response.status, 404);
83
116
  assertEquals(onNotFoundCalled, context.request);
117
+ assertEquals(onNotAcceptableCalled, null);
84
118
  assertEquals(onUnauthorizedCalled, null);
85
119
  onNotFoundCalled = null;
86
120
  context = createRequestContext({
@@ -92,6 +126,7 @@ test("handleActor()", async () => {
92
126
  identifier: "someone",
93
127
  actorDispatcher,
94
128
  onNotFound,
129
+ onNotAcceptable,
95
130
  onUnauthorized
96
131
  });
97
132
  assertEquals(response.status, 200);
@@ -140,16 +175,19 @@ test("handleActor()", async () => {
140
175
  name: "Someone"
141
176
  });
142
177
  assertEquals(onNotFoundCalled, null);
178
+ assertEquals(onNotAcceptableCalled, null);
143
179
  assertEquals(onUnauthorizedCalled, null);
144
180
  response = await handleActor(context.request, {
145
181
  context,
146
182
  identifier: "no-one",
147
183
  actorDispatcher,
148
184
  onNotFound,
185
+ onNotAcceptable,
149
186
  onUnauthorized
150
187
  });
151
188
  assertEquals(response.status, 404);
152
189
  assertEquals(onNotFoundCalled, context.request);
190
+ assertEquals(onNotAcceptableCalled, null);
153
191
  assertEquals(onUnauthorizedCalled, null);
154
192
  onNotFoundCalled = null;
155
193
  response = await handleActor(context.request, {
@@ -158,10 +196,12 @@ test("handleActor()", async () => {
158
196
  actorDispatcher,
159
197
  authorizePredicate: (_ctx, _handle, signedKey, signedKeyOwner) => signedKey != null && signedKeyOwner != null,
160
198
  onNotFound,
199
+ onNotAcceptable,
161
200
  onUnauthorized
162
201
  });
163
202
  assertEquals(response.status, 401);
164
203
  assertEquals(onNotFoundCalled, null);
204
+ assertEquals(onNotAcceptableCalled, null);
165
205
  assertEquals(onUnauthorizedCalled, context.request);
166
206
  onUnauthorizedCalled = null;
167
207
  context = createRequestContext({
@@ -175,6 +215,7 @@ test("handleActor()", async () => {
175
215
  actorDispatcher,
176
216
  authorizePredicate: (_ctx, _handle, signedKey, signedKeyOwner) => signedKey != null && signedKeyOwner != null,
177
217
  onNotFound,
218
+ onNotAcceptable,
178
219
  onUnauthorized
179
220
  });
180
221
  assertEquals(response.status, 200);
@@ -223,6 +264,7 @@ test("handleActor()", async () => {
223
264
  name: "Someone"
224
265
  });
225
266
  assertEquals(onNotFoundCalled, null);
267
+ assertEquals(onNotAcceptableCalled, null);
226
268
  assertEquals(onUnauthorizedCalled, null);
227
269
  });
228
270
  test("handleObject()", async () => {
@@ -247,6 +289,11 @@ test("handleObject()", async () => {
247
289
  onNotFoundCalled = request;
248
290
  return new Response("Not found", { status: 404 });
249
291
  };
292
+ let onNotAcceptableCalled = null;
293
+ const onNotAcceptable = (request) => {
294
+ onNotAcceptableCalled = request;
295
+ return new Response("Not acceptable", { status: 406 });
296
+ };
250
297
  let onUnauthorizedCalled = null;
251
298
  const onUnauthorized = (request) => {
252
299
  onUnauthorizedCalled = request;
@@ -259,10 +306,12 @@ test("handleObject()", async () => {
259
306
  id: "123"
260
307
  },
261
308
  onNotFound,
309
+ onNotAcceptable,
262
310
  onUnauthorized
263
311
  });
264
312
  assertEquals(response.status, 404);
265
313
  assertEquals(onNotFoundCalled, context.request);
314
+ assertEquals(onNotAcceptableCalled, null);
266
315
  assertEquals(onUnauthorizedCalled, null);
267
316
  onNotFoundCalled = null;
268
317
  response = await handleObject(context.request, {
@@ -273,11 +322,14 @@ test("handleObject()", async () => {
273
322
  },
274
323
  objectDispatcher,
275
324
  onNotFound,
325
+ onNotAcceptable,
276
326
  onUnauthorized
277
327
  });
278
- assertEquals(response.status, 200);
328
+ assertEquals(response.status, 406);
279
329
  assertEquals(onNotFoundCalled, null);
330
+ assertEquals(onNotAcceptableCalled, context.request);
280
331
  assertEquals(onUnauthorizedCalled, null);
332
+ onNotAcceptableCalled = null;
281
333
  response = await handleObject(context.request, {
282
334
  context,
283
335
  values: {
@@ -286,10 +338,12 @@ test("handleObject()", async () => {
286
338
  },
287
339
  objectDispatcher,
288
340
  onNotFound,
341
+ onNotAcceptable,
289
342
  onUnauthorized
290
343
  });
291
344
  assertEquals(response.status, 404);
292
345
  assertEquals(onNotFoundCalled, context.request);
346
+ assertEquals(onNotAcceptableCalled, null);
293
347
  assertEquals(onUnauthorizedCalled, null);
294
348
  onNotFoundCalled = null;
295
349
  response = await handleObject(context.request, {
@@ -300,10 +354,12 @@ test("handleObject()", async () => {
300
354
  },
301
355
  objectDispatcher,
302
356
  onNotFound,
357
+ onNotAcceptable,
303
358
  onUnauthorized
304
359
  });
305
360
  assertEquals(response.status, 404);
306
361
  assertEquals(onNotFoundCalled, context.request);
362
+ assertEquals(onNotAcceptableCalled, null);
307
363
  assertEquals(onUnauthorizedCalled, null);
308
364
  onNotFoundCalled = null;
309
365
  context = createRequestContext({
@@ -318,6 +374,7 @@ test("handleObject()", async () => {
318
374
  },
319
375
  objectDispatcher,
320
376
  onNotFound,
377
+ onNotAcceptable,
321
378
  onUnauthorized
322
379
  });
323
380
  assertEquals(response.status, 200);
@@ -347,6 +404,7 @@ test("handleObject()", async () => {
347
404
  type: "Note"
348
405
  });
349
406
  assertEquals(onNotFoundCalled, null);
407
+ assertEquals(onNotAcceptableCalled, null);
350
408
  assertEquals(onUnauthorizedCalled, null);
351
409
  response = await handleObject(context.request, {
352
410
  context,
@@ -356,10 +414,12 @@ test("handleObject()", async () => {
356
414
  },
357
415
  objectDispatcher,
358
416
  onNotFound,
417
+ onNotAcceptable,
359
418
  onUnauthorized
360
419
  });
361
420
  assertEquals(response.status, 404);
362
421
  assertEquals(onNotFoundCalled, context.request);
422
+ assertEquals(onNotAcceptableCalled, null);
363
423
  assertEquals(onUnauthorizedCalled, null);
364
424
  onNotFoundCalled = null;
365
425
  response = await handleObject(context.request, {
@@ -370,10 +430,12 @@ test("handleObject()", async () => {
370
430
  },
371
431
  objectDispatcher,
372
432
  onNotFound,
433
+ onNotAcceptable,
373
434
  onUnauthorized
374
435
  });
375
436
  assertEquals(response.status, 404);
376
437
  assertEquals(onNotFoundCalled, context.request);
438
+ assertEquals(onNotAcceptableCalled, null);
377
439
  assertEquals(onUnauthorizedCalled, null);
378
440
  onNotFoundCalled = null;
379
441
  response = await handleObject(context.request, {
@@ -385,10 +447,12 @@ test("handleObject()", async () => {
385
447
  objectDispatcher,
386
448
  authorizePredicate: (_ctx, _values, signedKey, signedKeyOwner) => signedKey != null && signedKeyOwner != null,
387
449
  onNotFound,
450
+ onNotAcceptable,
388
451
  onUnauthorized
389
452
  });
390
453
  assertEquals(response.status, 401);
391
454
  assertEquals(onNotFoundCalled, null);
455
+ assertEquals(onNotAcceptableCalled, null);
392
456
  assertEquals(onUnauthorizedCalled, context.request);
393
457
  onUnauthorizedCalled = null;
394
458
  context = createRequestContext({
@@ -405,6 +469,7 @@ test("handleObject()", async () => {
405
469
  objectDispatcher,
406
470
  authorizePredicate: (_ctx, _values, signedKey, signedKeyOwner) => signedKey != null && signedKeyOwner != null,
407
471
  onNotFound,
472
+ onNotAcceptable,
408
473
  onUnauthorized
409
474
  });
410
475
  assertEquals(response.status, 200);
@@ -434,6 +499,7 @@ test("handleObject()", async () => {
434
499
  type: "Note"
435
500
  });
436
501
  assertEquals(onNotFoundCalled, null);
502
+ assertEquals(onNotAcceptableCalled, null);
437
503
  assertEquals(onUnauthorizedCalled, null);
438
504
  });
439
505
  test("handleCollection()", async () => {
@@ -471,6 +537,11 @@ test("handleCollection()", async () => {
471
537
  onNotFoundCalled = request;
472
538
  return new Response("Not found", { status: 404 });
473
539
  };
540
+ let onNotAcceptableCalled = null;
541
+ const onNotAcceptable = (request) => {
542
+ onNotAcceptableCalled = request;
543
+ return new Response("Not acceptable", { status: 406 });
544
+ };
474
545
  let onUnauthorizedCalled = null;
475
546
  const onUnauthorized = (request) => {
476
547
  onUnauthorizedCalled = request;
@@ -484,10 +555,12 @@ test("handleCollection()", async () => {
484
555
  return new URL(`https://example.com/users/${identifier}`);
485
556
  },
486
557
  onNotFound,
558
+ onNotAcceptable,
487
559
  onUnauthorized
488
560
  });
489
561
  assertEquals(response.status, 404);
490
562
  assertEquals(onNotFoundCalled, context.request);
563
+ assertEquals(onNotAcceptableCalled, null);
491
564
  assertEquals(onUnauthorizedCalled, null);
492
565
  onNotFoundCalled = null;
493
566
  response = await handleCollection(context.request, {
@@ -499,11 +572,14 @@ test("handleCollection()", async () => {
499
572
  },
500
573
  collectionCallbacks: { dispatcher },
501
574
  onNotFound,
575
+ onNotAcceptable,
502
576
  onUnauthorized
503
577
  });
504
- assertEquals(response.status, 200);
578
+ assertEquals(response.status, 406);
505
579
  assertEquals(onNotFoundCalled, null);
580
+ assertEquals(onNotAcceptableCalled, context.request);
506
581
  assertEquals(onUnauthorizedCalled, null);
582
+ onNotAcceptableCalled = null;
507
583
  response = await handleCollection(context.request, {
508
584
  context,
509
585
  name: "collection",
@@ -513,10 +589,12 @@ test("handleCollection()", async () => {
513
589
  },
514
590
  collectionCallbacks: { dispatcher },
515
591
  onNotFound,
592
+ onNotAcceptable,
516
593
  onUnauthorized
517
594
  });
518
595
  assertEquals(response.status, 404);
519
596
  assertEquals(onNotFoundCalled, context.request);
597
+ assertEquals(onNotAcceptableCalled, null);
520
598
  assertEquals(onUnauthorizedCalled, null);
521
599
  onNotFoundCalled = null;
522
600
  context = createRequestContext({
@@ -532,10 +610,12 @@ test("handleCollection()", async () => {
532
610
  },
533
611
  collectionCallbacks: { dispatcher },
534
612
  onNotFound,
613
+ onNotAcceptable,
535
614
  onUnauthorized
536
615
  });
537
616
  assertEquals(response.status, 404);
538
617
  assertEquals(onNotFoundCalled, context.request);
618
+ assertEquals(onNotAcceptableCalled, null);
539
619
  assertEquals(onUnauthorizedCalled, null);
540
620
  onNotFoundCalled = null;
541
621
  response = await handleCollection(context.request, {
@@ -547,6 +627,7 @@ test("handleCollection()", async () => {
547
627
  },
548
628
  collectionCallbacks: { dispatcher },
549
629
  onNotFound,
630
+ onNotAcceptable,
550
631
  onUnauthorized
551
632
  });
552
633
  assertEquals(response.status, 200);
@@ -619,6 +700,7 @@ test("handleCollection()", async () => {
619
700
  ]
620
701
  });
621
702
  assertEquals(onNotFoundCalled, null);
703
+ assertEquals(onNotAcceptableCalled, null);
622
704
  assertEquals(onUnauthorizedCalled, null);
623
705
  response = await handleCollection(context.request, {
624
706
  context,
@@ -632,10 +714,12 @@ test("handleCollection()", async () => {
632
714
  authorizePredicate: (_ctx, _handle, key, keyOwner) => key != null && keyOwner != null
633
715
  },
634
716
  onNotFound,
717
+ onNotAcceptable,
635
718
  onUnauthorized
636
719
  });
637
720
  assertEquals(response.status, 401);
638
721
  assertEquals(onNotFoundCalled, null);
722
+ assertEquals(onNotAcceptableCalled, null);
639
723
  assertEquals(onUnauthorizedCalled, context.request);
640
724
  onUnauthorizedCalled = null;
641
725
  context = createRequestContext({
@@ -655,6 +739,7 @@ test("handleCollection()", async () => {
655
739
  authorizePredicate: (_ctx, _handle, key, keyOwner) => key != null && keyOwner != null
656
740
  },
657
741
  onNotFound,
742
+ onNotAcceptable,
658
743
  onUnauthorized
659
744
  });
660
745
  assertEquals(response.status, 200);
@@ -702,6 +787,7 @@ test("handleCollection()", async () => {
702
787
  ]
703
788
  });
704
789
  assertEquals(onNotFoundCalled, null);
790
+ assertEquals(onNotAcceptableCalled, null);
705
791
  assertEquals(onUnauthorizedCalled, null);
706
792
  response = await handleCollection(context.request, {
707
793
  context,
@@ -717,6 +803,7 @@ test("handleCollection()", async () => {
717
803
  lastCursor
718
804
  },
719
805
  onNotFound,
806
+ onNotAcceptable,
720
807
  onUnauthorized
721
808
  });
722
809
  assertEquals(response.status, 200);
@@ -750,6 +837,7 @@ test("handleCollection()", async () => {
750
837
  last: "https://example.com/?cursor=2"
751
838
  });
752
839
  assertEquals(onNotFoundCalled, null);
840
+ assertEquals(onNotAcceptableCalled, null);
753
841
  assertEquals(onUnauthorizedCalled, null);
754
842
  let url = new URL("https://example.com/?cursor=0");
755
843
  context = createRequestContext({
@@ -771,6 +859,7 @@ test("handleCollection()", async () => {
771
859
  lastCursor
772
860
  },
773
861
  onNotFound,
862
+ onNotAcceptable,
774
863
  onUnauthorized
775
864
  });
776
865
  assertEquals(response.status, 200);
@@ -808,6 +897,7 @@ test("handleCollection()", async () => {
808
897
  }]
809
898
  });
810
899
  assertEquals(onNotFoundCalled, null);
900
+ assertEquals(onNotAcceptableCalled, null);
811
901
  assertEquals(onUnauthorizedCalled, null);
812
902
  url = new URL("https://example.com/?cursor=2");
813
903
  context = createRequestContext({
@@ -829,6 +919,7 @@ test("handleCollection()", async () => {
829
919
  lastCursor
830
920
  },
831
921
  onNotFound,
922
+ onNotAcceptable,
832
923
  onUnauthorized
833
924
  });
834
925
  assertEquals(response.status, 200);
@@ -866,6 +957,7 @@ test("handleCollection()", async () => {
866
957
  }]
867
958
  });
868
959
  assertEquals(onNotFoundCalled, null);
960
+ assertEquals(onNotAcceptableCalled, null);
869
961
  assertEquals(onUnauthorizedCalled, null);
870
962
  });
871
963
  test("handleInbox()", async () => {
@@ -1237,6 +1329,11 @@ test("handleCustomCollection()", async () => {
1237
1329
  onNotFoundCalled = request;
1238
1330
  return new Response("Not found", { status: 404 });
1239
1331
  };
1332
+ let onNotAcceptableCalled = null;
1333
+ const onNotAcceptable = (request) => {
1334
+ onNotAcceptableCalled = request;
1335
+ return new Response("Not acceptable", { status: 406 });
1336
+ };
1240
1337
  let onUnauthorizedCalled = null;
1241
1338
  const onUnauthorized = (request) => {
1242
1339
  onUnauthorizedCalled = request;
@@ -1244,6 +1341,7 @@ test("handleCustomCollection()", async () => {
1244
1341
  };
1245
1342
  const errorHandlers = {
1246
1343
  onNotFound,
1344
+ onNotAcceptable,
1247
1345
  onUnauthorized
1248
1346
  };
1249
1347
  let response = await handleCustomCollection(context.request, {
@@ -1254,7 +1352,21 @@ test("handleCustomCollection()", async () => {
1254
1352
  });
1255
1353
  assertEquals(response.status, 404);
1256
1354
  assertEquals(onNotFoundCalled, context.request);
1355
+ assertEquals(onNotAcceptableCalled, null);
1356
+ assertEquals(onUnauthorizedCalled, null);
1357
+ onNotFoundCalled = null;
1358
+ response = await handleCustomCollection(context.request, {
1359
+ context,
1360
+ name: "custom collection",
1361
+ values: { handle: "someone" },
1362
+ collectionCallbacks: { dispatcher },
1363
+ ...errorHandlers
1364
+ });
1365
+ assertEquals(response.status, 406);
1366
+ assertEquals(onNotFoundCalled, null);
1367
+ assertEquals(onNotAcceptableCalled, context.request);
1257
1368
  assertEquals(onUnauthorizedCalled, null);
1369
+ onNotAcceptableCalled = null;
1258
1370
  context = createRequestContext({
1259
1371
  ...context,
1260
1372
  request: new Request(context.url, { headers: { Accept: "application/activity+json" } })
@@ -1268,6 +1380,7 @@ test("handleCustomCollection()", async () => {
1268
1380
  });
1269
1381
  assertEquals(response.status, 404);
1270
1382
  assertEquals(onNotFoundCalled, context.request);
1383
+ assertEquals(onNotAcceptableCalled, null);
1271
1384
  assertEquals(onUnauthorizedCalled, null);
1272
1385
  onNotFoundCalled = null;
1273
1386
  response = await handleCustomCollection(context.request, {
@@ -1348,6 +1461,7 @@ test("handleCustomCollection()", async () => {
1348
1461
  ]
1349
1462
  });
1350
1463
  assertEquals(onNotFoundCalled, null);
1464
+ assertEquals(onNotAcceptableCalled, null);
1351
1465
  assertEquals(onUnauthorizedCalled, null);
1352
1466
  response = await handleCustomCollection(context.request, {
1353
1467
  context,
@@ -1361,6 +1475,7 @@ test("handleCustomCollection()", async () => {
1361
1475
  });
1362
1476
  assertEquals(response.status, 401);
1363
1477
  assertEquals(onNotFoundCalled, null);
1478
+ assertEquals(onNotAcceptableCalled, null);
1364
1479
  assertEquals(onUnauthorizedCalled, context.request);
1365
1480
  onUnauthorizedCalled = null;
1366
1481
  context = createRequestContext({
@@ -1403,6 +1518,7 @@ test("handleCustomCollection()", async () => {
1403
1518
  ]
1404
1519
  });
1405
1520
  assertEquals(onNotFoundCalled, null);
1521
+ assertEquals(onNotAcceptableCalled, null);
1406
1522
  assertEquals(onUnauthorizedCalled, null);
1407
1523
  response = await handleCustomCollection(context.request, {
1408
1524
  context,
@@ -1422,6 +1538,7 @@ test("handleCustomCollection()", async () => {
1422
1538
  last: "https://example.com/?cursor=2"
1423
1539
  });
1424
1540
  assertEquals(onNotFoundCalled, null);
1541
+ assertEquals(onNotAcceptableCalled, null);
1425
1542
  assertEquals(onUnauthorizedCalled, null);
1426
1543
  let url = new URL("https://example.com/?cursor=0");
1427
1544
  context = createRequestContext({
@@ -1451,6 +1568,7 @@ test("handleCustomCollection()", async () => {
1451
1568
  }
1452
1569
  });
1453
1570
  assertEquals(onNotFoundCalled, null);
1571
+ assertEquals(onNotAcceptableCalled, null);
1454
1572
  assertEquals(onUnauthorizedCalled, null);
1455
1573
  url = new URL("https://example.com/?cursor=2");
1456
1574
  context = createRequestContext({
@@ -1480,6 +1598,7 @@ test("handleCustomCollection()", async () => {
1480
1598
  }
1481
1599
  });
1482
1600
  assertEquals(onNotFoundCalled, null);
1601
+ assertEquals(onNotAcceptableCalled, null);
1483
1602
  assertEquals(onUnauthorizedCalled, null);
1484
1603
  });
1485
1604
 
@@ -3,13 +3,13 @@
3
3
  import { URLPattern } from "urlpattern-polyfill";
4
4
  globalThis.addEventListener = () => {};
5
5
 
6
- import { Activity, Create, Invite, Offer, Update } from "../type-BSR-vRXo.js";
6
+ import { Activity, Create, Invite, Offer, Update } from "../type-FCer_9yh.js";
7
7
  import { assertEquals } from "../assert_equals-DSbWqCm3.js";
8
- import "../lookup-q8DeFAjR.js";
9
- import { InboxListenerSet } from "../inbox-DH8TXk1f.js";
10
- import { test } from "../testing-Cqwzq9nj.js";
11
- import "../assert_is_error-BPGph1Jx.js";
12
- import { assertThrows } from "../assert_throws-BOO88avQ.js";
8
+ import "../lookup-BrhURkmj.js";
9
+ import { InboxListenerSet } from "../inbox-DpcYOzs8.js";
10
+ import { test } from "../testing-BMBhkcz9.js";
11
+ import "../assert_is_error-B035L3om.js";
12
+ import { assertThrows } from "../assert_throws-53_pKeP3.js";
13
13
 
14
14
  //#region src/federation/inbox.test.ts
15
15
  test("InboxListenerSet", () => {
@@ -3,14 +3,14 @@
3
3
  import { URLPattern } from "urlpattern-polyfill";
4
4
  globalThis.addEventListener = () => {};
5
5
 
6
- import { CryptographicKey, Multikey } from "../type-BSR-vRXo.js";
6
+ import { CryptographicKey, Multikey } from "../type-FCer_9yh.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 "../lookup-q8DeFAjR.js";
12
- import { KvKeyCache } from "../keycache-CB_VjDe0.js";
13
- import { test } from "../testing-Cqwzq9nj.js";
11
+ import "../lookup-BrhURkmj.js";
12
+ import { KvKeyCache } from "../keycache-AH1uj1j-.js";
13
+ import { test } from "../testing-BMBhkcz9.js";
14
14
 
15
15
  //#region src/federation/keycache.test.ts
16
16
  test("KvKeyCache.set()", async () => {
@@ -3,18 +3,18 @@
3
3
  import { URLPattern } from "urlpattern-polyfill";
4
4
  globalThis.addEventListener = () => {};
5
5
 
6
- import "../type-BSR-vRXo.js";
6
+ import "../type-FCer_9yh.js";
7
7
  import { assertEquals } from "../assert_equals-DSbWqCm3.js";
8
8
  import "../assert-MZs1qjMx.js";
9
9
  import "../assert_instance_of-DHz7EHNU.js";
10
10
  import { MemoryKvStore } from "../kv-CRZrzyXm.js";
11
- import "../lookup-q8DeFAjR.js";
12
- import { test } from "../testing-Cqwzq9nj.js";
13
- import "../std__assert-X-_kMxKM.js";
14
- import "../assert_rejects-DiIiJbZn.js";
15
- import "../assert_is_error-BPGph1Jx.js";
16
- import "../assert_not_equals-f3m3epl3.js";
17
- import "../assert_throws-BOO88avQ.js";
11
+ import "../lookup-BrhURkmj.js";
12
+ import { test } from "../testing-BMBhkcz9.js";
13
+ import "../std__assert-DWivtrGR.js";
14
+ import "../assert_rejects-7UF4R_Qs.js";
15
+ import "../assert_is_error-B035L3om.js";
16
+ import "../assert_not_equals-C80BG-_5.js";
17
+ import "../assert_throws-53_pKeP3.js";
18
18
 
19
19
  //#region src/federation/kv.test.ts
20
20
  test("MemoryKvStore", async (t) => {