@fedify/fedify 2.0.29-dev.2068 → 2.0.29-dev.2107

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 (56) hide show
  1. package/dist/{builder-C6aY8W_Y.mjs → builder-CsI6ZXC9.mjs} +3 -3
  2. package/dist/compat/transformers.test.mjs +1 -1
  3. package/dist/{deno-Ks4jPytK.mjs → deno-CjMqmOHc.mjs} +1 -1
  4. package/dist/{docloader-BC9om32k.mjs → docloader-Czq6jsdF.mjs} +2 -2
  5. package/dist/federation/builder.test.mjs +2 -2
  6. package/dist/federation/collection.test.mjs +1 -1
  7. package/dist/federation/handler.test.mjs +7 -7
  8. package/dist/federation/idempotency.test.mjs +3 -3
  9. package/dist/federation/inbox.test.mjs +1 -1
  10. package/dist/federation/kv.test.mjs +1 -1
  11. package/dist/federation/middleware.test.mjs +7 -7
  12. package/dist/federation/mod.cjs +1 -1
  13. package/dist/federation/mod.js +1 -1
  14. package/dist/federation/mq.test.mjs +98 -43
  15. package/dist/federation/negotiation.test.mjs +1 -1
  16. package/dist/federation/router.test.mjs +1 -1
  17. package/dist/federation/send.test.mjs +4 -4
  18. package/dist/federation/temporal.test.mjs +2 -2
  19. package/dist/federation/webfinger.test.mjs +2 -2
  20. package/dist/{http-etl3aebt.mjs → http-Ba7807Bo.mjs} +2 -2
  21. package/dist/{http-CusH0a-W.js → http-D5vmrVLV.js} +1 -1
  22. package/dist/{http-fTCz9O58.cjs → http-VNuWokJg.cjs} +1 -1
  23. package/dist/{inbox-CiNFJlvq.mjs → inbox-C18xUe71.mjs} +1 -1
  24. package/dist/{key-CKKr8_gq.mjs → key-1YdrFVdl.mjs} +1 -1
  25. package/dist/{kv-cache-Bcl0jbmu.js → kv-cache-BIIdI_Cr.js} +1 -1
  26. package/dist/{kv-cache-CKd4oYie.cjs → kv-cache-DRelxPCd.cjs} +1 -1
  27. package/dist/{ld-CL2DqChv.mjs → ld-lZDwbdE9.mjs} +2 -2
  28. package/dist/{middleware-CNcJt6nP.cjs → middleware-BN9TRImG.cjs} +1 -1
  29. package/dist/{middleware-DWhUcnwV.mjs → middleware-By-XnBx8.mjs} +11 -11
  30. package/dist/{middleware-bs7TK_La.js → middleware-D2iI7G04.js} +3 -3
  31. package/dist/{middleware-OAHuntmm.cjs → middleware-DAH4XiqU.cjs} +4 -4
  32. package/dist/{middleware-D3DHGwG3.mjs → middleware-Dqe-7tvB.mjs} +1 -1
  33. package/dist/mod.cjs +4 -4
  34. package/dist/mod.js +4 -4
  35. package/dist/nodeinfo/client.test.mjs +1 -1
  36. package/dist/nodeinfo/handler.test.mjs +2 -2
  37. package/dist/nodeinfo/types.test.mjs +1 -1
  38. package/dist/otel/exporter.test.mjs +1 -1
  39. package/dist/{owner-DbrGyuAQ.mjs → owner-D1HCbj2y.mjs} +2 -2
  40. package/dist/{proof-DFpWNtoe.cjs → proof-Ce-JBAuj.cjs} +1 -1
  41. package/dist/{proof-26Qxlvm_.js → proof-DZCZie--.js} +1 -1
  42. package/dist/{proof-CnD5PujV.mjs → proof-oOsaCl4z.mjs} +2 -2
  43. package/dist/{send-DC84LVnR.mjs → send-D2F0cCVr.mjs} +2 -2
  44. package/dist/sig/http.test.mjs +3 -3
  45. package/dist/sig/key.test.mjs +2 -2
  46. package/dist/sig/ld.test.mjs +2 -2
  47. package/dist/sig/mod.cjs +2 -2
  48. package/dist/sig/mod.js +2 -2
  49. package/dist/sig/owner.test.mjs +2 -2
  50. package/dist/sig/proof.test.mjs +2 -2
  51. package/dist/{std__assert-Duiq_YC9.mjs → std__assert-BUOJXi-Z.mjs} +1 -26
  52. package/dist/{temporal-CGIyJaQs.mjs → temporal-BTCyquNi.mjs} +1 -1
  53. package/dist/utils/docloader.test.mjs +3 -3
  54. package/dist/utils/mod.cjs +1 -1
  55. package/dist/utils/mod.js +1 -1
  56. package/package.json +6 -6
@@ -2,8 +2,8 @@ import "@js-temporal/polyfill";
2
2
  import "urlpattern-polyfill";
3
3
  globalThis.addEventListener = () => {};
4
4
  import { n as RouterError, t as Router } from "./router-CrMLXoOr.mjs";
5
- import { n as version, t as name } from "./deno-Ks4jPytK.mjs";
6
- import { t as InboxListenerSet } from "./inbox-CiNFJlvq.mjs";
5
+ import { n as version, t as name } from "./deno-CjMqmOHc.mjs";
6
+ import { t as InboxListenerSet } from "./inbox-C18xUe71.mjs";
7
7
  import { getTypeId } from "@fedify/vocab";
8
8
  import { SpanKind, SpanStatusCode, trace } from "@opentelemetry/api";
9
9
  import { getLogger } from "@logtape/logtape";
@@ -42,7 +42,7 @@ var FederationBuilderImpl = class {
42
42
  this.collectionTypeIds = {};
43
43
  }
44
44
  async build(options) {
45
- const { FederationImpl } = await import("./middleware-D3DHGwG3.mjs");
45
+ const { FederationImpl } = await import("./middleware-Dqe-7tvB.mjs");
46
46
  const f = new FederationImpl(options);
47
47
  const trailingSlashInsensitiveValue = f.router.trailingSlashInsensitive;
48
48
  f.router = this.router.clone();
@@ -4,7 +4,7 @@ globalThis.addEventListener = () => {};
4
4
  import { t as assertEquals } from "../assert_equals-Ew3jOFa3.mjs";
5
5
  import { n as assertInstanceOf, t as assert } from "../assert-BhQd8QHP.mjs";
6
6
  import { t as MemoryKvStore } from "../kv-mI4Ix2EU.mjs";
7
- import { _ as autoIdAssigner, g as actorDehydrator, n as FederationImpl } from "../middleware-DWhUcnwV.mjs";
7
+ import { _ as autoIdAssigner, g as actorDehydrator, n as FederationImpl } from "../middleware-By-XnBx8.mjs";
8
8
  import { test } from "@fedify/fixture";
9
9
  import { Follow, Person } from "@fedify/vocab";
10
10
  //#region src/compat/transformers.test.ts
@@ -3,6 +3,6 @@ import "urlpattern-polyfill";
3
3
  globalThis.addEventListener = () => {};
4
4
  //#region deno.json
5
5
  var name = "@fedify/fedify";
6
- var version = "2.0.29-dev.2068+bb645217";
6
+ var version = "2.0.29-dev.2107+5ab4c99b";
7
7
  //#endregion
8
8
  export { version as n, name as t };
@@ -1,8 +1,8 @@
1
1
  import "@js-temporal/polyfill";
2
2
  import "urlpattern-polyfill";
3
3
  globalThis.addEventListener = () => {};
4
- import { o as validateCryptoKey } from "./key-CKKr8_gq.mjs";
5
- import { n as doubleKnock } from "./http-etl3aebt.mjs";
4
+ import { o as validateCryptoKey } from "./key-1YdrFVdl.mjs";
5
+ import { n as doubleKnock } from "./http-Ba7807Bo.mjs";
6
6
  import { curry } from "es-toolkit";
7
7
  import { UrlError, createActivityPubRequest, getRemoteDocument, logRequest, validatePublicUrl } from "@fedify/vocab-runtime";
8
8
  import { getLogger } from "@logtape/logtape";
@@ -2,10 +2,10 @@ import "@js-temporal/polyfill";
2
2
  import "urlpattern-polyfill";
3
3
  globalThis.addEventListener = () => {};
4
4
  import { t as assertEquals } from "../assert_equals-Ew3jOFa3.mjs";
5
- import { a as assertExists } from "../std__assert-Duiq_YC9.mjs";
5
+ import { i as assertExists } from "../std__assert-BUOJXi-Z.mjs";
6
6
  import { t as assertThrows } from "../assert_throws-4NwKEy2q.mjs";
7
7
  import { t as MemoryKvStore } from "../kv-mI4Ix2EU.mjs";
8
- import { n as createFederationBuilder } from "../builder-C6aY8W_Y.mjs";
8
+ import { n as createFederationBuilder } from "../builder-CsI6ZXC9.mjs";
9
9
  import { test } from "@fedify/fixture";
10
10
  import { Activity, Note, Person } from "@fedify/vocab";
11
11
  //#region src/federation/builder.test.ts
@@ -2,7 +2,7 @@ import "@js-temporal/polyfill";
2
2
  import "urlpattern-polyfill";
3
3
  globalThis.addEventListener = () => {};
4
4
  import { t as assertEquals } from "../assert_equals-Ew3jOFa3.mjs";
5
- import "../std__assert-Duiq_YC9.mjs";
5
+ import "../std__assert-BUOJXi-Z.mjs";
6
6
  import { n as digest, t as buildCollectionSynchronizationHeader } from "../collection-DI6YzYpd.mjs";
7
7
  import { test } from "@fedify/fixture";
8
8
  import { decodeHex } from "byte-encodings/hex";
@@ -3,17 +3,17 @@ import "urlpattern-polyfill";
3
3
  globalThis.addEventListener = () => {};
4
4
  import { n as createRequestContext, t as createInboxContext } from "../context-Juj6bdHC.mjs";
5
5
  import { t as assertEquals } from "../assert_equals-Ew3jOFa3.mjs";
6
- import "../std__assert-Duiq_YC9.mjs";
6
+ import "../std__assert-BUOJXi-Z.mjs";
7
7
  import { t as assertRejects } from "../assert_rejects-B-qJtC9Z.mjs";
8
8
  import { t as assert } from "../assert-BhQd8QHP.mjs";
9
- import { i as generateCryptoKeyPair } from "../key-CKKr8_gq.mjs";
10
- import { s as signRequest } from "../http-etl3aebt.mjs";
9
+ import { i as generateCryptoKeyPair } from "../key-1YdrFVdl.mjs";
10
+ import { s as signRequest } from "../http-Ba7807Bo.mjs";
11
11
  import { a as rsaPrivateKey3, c as rsaPublicKey3, s as rsaPublicKey2 } from "../keys-CCxRJhWa.mjs";
12
- import { a as compactJsonLd, f as signJsonLd } from "../ld-CL2DqChv.mjs";
13
- import { n as signObject } from "../proof-CnD5PujV.mjs";
12
+ import { a as compactJsonLd, f as signJsonLd } from "../ld-lZDwbdE9.mjs";
13
+ import { n as signObject } from "../proof-oOsaCl4z.mjs";
14
14
  import { t as MemoryKvStore } from "../kv-mI4Ix2EU.mjs";
15
- import { a as createFederation, c as handleCollection, d as handleObject, f as respondWithObject, l as handleCustomCollection, p as respondWithObjectIfAcceptable, s as handleActor, u as handleInbox } from "../middleware-DWhUcnwV.mjs";
16
- import { t as InboxListenerSet } from "../inbox-CiNFJlvq.mjs";
15
+ import { a as createFederation, c as handleCollection, d as handleObject, f as respondWithObject, l as handleCustomCollection, p as respondWithObjectIfAcceptable, s as handleActor, u as handleInbox } from "../middleware-By-XnBx8.mjs";
16
+ import { t as InboxListenerSet } from "../inbox-C18xUe71.mjs";
17
17
  import { createTestTracerProvider, mockDocumentLoader, test } from "@fedify/fixture";
18
18
  import { Create, CryptographicKey, Multikey, Note, Person } from "@fedify/vocab";
19
19
  //#region src/federation/handler.test.ts
@@ -2,11 +2,11 @@ import "@js-temporal/polyfill";
2
2
  import "urlpattern-polyfill";
3
3
  globalThis.addEventListener = () => {};
4
4
  import { t as assertEquals } from "../assert_equals-Ew3jOFa3.mjs";
5
- import "../std__assert-Duiq_YC9.mjs";
5
+ import "../std__assert-BUOJXi-Z.mjs";
6
6
  import { n as ed25519PrivateKey, r as ed25519PublicKey, t as ed25519Multikey } from "../keys-CCxRJhWa.mjs";
7
- import { n as signObject } from "../proof-CnD5PujV.mjs";
7
+ import { n as signObject } from "../proof-oOsaCl4z.mjs";
8
8
  import { t as MemoryKvStore } from "../kv-mI4Ix2EU.mjs";
9
- import { a as createFederation } from "../middleware-DWhUcnwV.mjs";
9
+ import { a as createFederation } from "../middleware-By-XnBx8.mjs";
10
10
  import { mockDocumentLoader, test } from "@fedify/fixture";
11
11
  import { Create, Follow, Person } from "@fedify/vocab";
12
12
  //#region src/federation/idempotency.test.ts
@@ -3,7 +3,7 @@ import "urlpattern-polyfill";
3
3
  globalThis.addEventListener = () => {};
4
4
  import { t as assertEquals } from "../assert_equals-Ew3jOFa3.mjs";
5
5
  import { t as assertThrows } from "../assert_throws-4NwKEy2q.mjs";
6
- import { t as InboxListenerSet } from "../inbox-CiNFJlvq.mjs";
6
+ import { t as InboxListenerSet } from "../inbox-C18xUe71.mjs";
7
7
  import { test } from "@fedify/fixture";
8
8
  import { Activity, Create, Invite, Offer, Update } from "@fedify/vocab";
9
9
  //#region src/federation/inbox.test.ts
@@ -2,7 +2,7 @@ import { Temporal } from "@js-temporal/polyfill";
2
2
  import "urlpattern-polyfill";
3
3
  globalThis.addEventListener = () => {};
4
4
  import { t as assertEquals } from "../assert_equals-Ew3jOFa3.mjs";
5
- import "../std__assert-Duiq_YC9.mjs";
5
+ import "../std__assert-BUOJXi-Z.mjs";
6
6
  import { t as MemoryKvStore } from "../kv-mI4Ix2EU.mjs";
7
7
  import { test } from "@fedify/fixture";
8
8
  //#region src/federation/kv.test.ts
@@ -4,19 +4,19 @@ globalThis.addEventListener = () => {};
4
4
  import { t as esm_default } from "../esm-DVILvP5e.mjs";
5
5
  import { n as RouterError } from "../router-CrMLXoOr.mjs";
6
6
  import { t as assertEquals } from "../assert_equals-Ew3jOFa3.mjs";
7
- import { n as assertStrictEquals } from "../std__assert-Duiq_YC9.mjs";
7
+ import { n as assertStrictEquals } from "../std__assert-BUOJXi-Z.mjs";
8
8
  import { n as assertFalse, t as assertRejects } from "../assert_rejects-B-qJtC9Z.mjs";
9
9
  import { n as assertInstanceOf, t as assert } from "../assert-BhQd8QHP.mjs";
10
10
  import { t as assertThrows } from "../assert_throws-4NwKEy2q.mjs";
11
11
  import { t as assertNotEquals } from "../assert_not_equals--wG9hV7u.mjs";
12
- import { l as verifyRequest, s as signRequest } from "../http-etl3aebt.mjs";
12
+ import { l as verifyRequest, s as signRequest } from "../http-Ba7807Bo.mjs";
13
13
  import { a as rsaPrivateKey3, c as rsaPublicKey3, i as rsaPrivateKey2, n as ed25519PrivateKey, r as ed25519PublicKey, s as rsaPublicKey2, t as ed25519Multikey } from "../keys-CCxRJhWa.mjs";
14
- import { t as getAuthenticatedDocumentLoader } from "../docloader-BC9om32k.mjs";
15
- import { a as compactJsonLd, f as signJsonLd, m as verifyJsonLd, s as detachSignature } from "../ld-CL2DqChv.mjs";
16
- import { t as doesActorOwnKey } from "../owner-DbrGyuAQ.mjs";
17
- import { n as signObject, r as verifyObject } from "../proof-CnD5PujV.mjs";
14
+ import { t as getAuthenticatedDocumentLoader } from "../docloader-Czq6jsdF.mjs";
15
+ import { a as compactJsonLd, f as signJsonLd, m as verifyJsonLd, s as detachSignature } from "../ld-lZDwbdE9.mjs";
16
+ import { t as doesActorOwnKey } from "../owner-D1HCbj2y.mjs";
17
+ import { n as signObject, r as verifyObject } from "../proof-oOsaCl4z.mjs";
18
18
  import { t as MemoryKvStore } from "../kv-mI4Ix2EU.mjs";
19
- import { a as createFederation, i as KvSpecDeterminer, n as FederationImpl, r as InboxContextImpl, t as ContextImpl } from "../middleware-DWhUcnwV.mjs";
19
+ import { a as createFederation, i as KvSpecDeterminer, n as FederationImpl, r as InboxContextImpl, t as ContextImpl } from "../middleware-By-XnBx8.mjs";
20
20
  import { mockDocumentLoader, test } from "@fedify/fixture";
21
21
  import * as vocab from "@fedify/vocab";
22
22
  import { Create, Offer, Person, getTypeId, lookupObject } from "@fedify/vocab";
@@ -2,7 +2,7 @@ const { Temporal } = require("@js-temporal/polyfill");
2
2
  const { URLPattern } = require("urlpattern-polyfill");
3
3
  Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
4
4
  require("../chunk-DDcVe30Y.cjs");
5
- const require_middleware = require("../middleware-OAHuntmm.cjs");
5
+ const require_middleware = require("../middleware-DAH4XiqU.cjs");
6
6
  let es_toolkit = require("es-toolkit");
7
7
  //#region src/federation/kv.ts
8
8
  /**
@@ -1,6 +1,6 @@
1
1
  import { Temporal } from "@js-temporal/polyfill";
2
2
  import { URLPattern } from "urlpattern-polyfill";
3
- import { a as createExponentialBackoffPolicy, c as buildCollectionSynchronizationHeader, d as Router, f as RouterError, i as SendActivityError, l as digest, o as respondWithObject, r as handleWebFinger, s as respondWithObjectIfAcceptable, t as createFederation, u as createFederationBuilder } from "../middleware-bs7TK_La.js";
3
+ import { a as createExponentialBackoffPolicy, c as buildCollectionSynchronizationHeader, d as Router, f as RouterError, i as SendActivityError, l as digest, o as respondWithObject, r as handleWebFinger, s as respondWithObjectIfAcceptable, t as createFederation, u as createFederationBuilder } from "../middleware-D2iI7G04.js";
4
4
  import { isEqual } from "es-toolkit";
5
5
  //#region src/federation/kv.ts
6
6
  /**
@@ -2,7 +2,7 @@ import { Temporal } from "@js-temporal/polyfill";
2
2
  import "urlpattern-polyfill";
3
3
  globalThis.addEventListener = () => {};
4
4
  import { t as assertEquals } from "../assert_equals-Ew3jOFa3.mjs";
5
- import { i as assertGreaterOrEqual, r as assertGreater } from "../std__assert-Duiq_YC9.mjs";
5
+ import { r as assertGreaterOrEqual } from "../std__assert-BUOJXi-Z.mjs";
6
6
  import { n as assertFalse } from "../assert_rejects-B-qJtC9Z.mjs";
7
7
  import { t as assert } from "../assert-BhQd8QHP.mjs";
8
8
  import { test } from "@fedify/fixture";
@@ -248,50 +248,105 @@ test("InProcessMessageQueue", async (t) => {
248
248
  const listening = mq.listen((message) => {
249
249
  messages.push(message);
250
250
  }, controller);
251
- await t.step("enqueue()", async () => {
252
- await mq.enqueue("Hello, world!");
253
- });
254
- await waitFor(() => messages.length > 0, 15e3);
255
- await t.step("listen()", () => {
256
- assertEquals(messages, ["Hello, world!"]);
257
- });
258
- let started = 0;
259
- await t.step("enqueue() with delay", async () => {
260
- started = Date.now();
261
- await mq.enqueue("Delayed message", { delay: Temporal.Duration.from({ seconds: 3 }) });
262
- assertEquals(messages, ["Hello, world!"]);
263
- });
264
- await waitFor(() => messages.length > 1, 15e3);
265
- await t.step("listen() with delay", () => {
266
- assertEquals(messages, ["Hello, world!", "Delayed message"]);
267
- assertGreater(Date.now() - started, 3e3);
268
- });
269
- while (messages.length > 0) messages.pop();
270
- await t.step("enqueueMany()", async () => {
271
- const testMessages = Array.from({ length: 5 }, (_, i) => `Batch message ${i}!`);
272
- await mq.enqueueMany(testMessages);
273
- });
274
- await waitFor(() => messages.length >= 5, 15e3);
275
- await t.step("listen() [multiple]", () => {
276
- assertEquals(messages.length, 5);
277
- for (let i = 0; i < 5; i++) assertEquals(messages[i], `Batch message ${i}!`);
278
- });
279
- while (messages.length > 0) messages.pop();
280
- started = 0;
281
- await t.step("enqueueMany() with delay", async () => {
282
- started = Date.now();
283
- const testMessages = Array.from({ length: 3 }, (_, i) => `Delayed batch ${i}!`);
284
- await mq.enqueueMany(testMessages, { delay: Temporal.Duration.from({ seconds: 2 }) });
285
- assertEquals(messages.length, 0);
251
+ try {
252
+ await t.step("enqueue()", async () => {
253
+ await mq.enqueue("Hello, world!");
254
+ });
255
+ await waitFor(() => messages.length > 0, 15e3);
256
+ await t.step("listen()", () => {
257
+ assertEquals(messages, ["Hello, world!"]);
258
+ });
259
+ await t.step("enqueue() with delay", async () => {
260
+ const { timers, enqueued } = captureTimers(() => mq.enqueue("Delayed message", { delay: Temporal.Duration.from({ seconds: 3 }) }));
261
+ await enqueued;
262
+ assertEquals(timers.length, 1);
263
+ assertEquals(timers[0].delay, 3e3);
264
+ await mq.enqueue("Single delay marker");
265
+ await waitFor(() => messages.includes("Single delay marker"), 15e3);
266
+ assertEquals(messages, ["Hello, world!", "Single delay marker"]);
267
+ timers[0].callback();
268
+ });
269
+ await waitFor(() => messages.length >= 3, 15e3);
270
+ await t.step("listen() with delay", () => {
271
+ assertEquals(messages, [
272
+ "Hello, world!",
273
+ "Single delay marker",
274
+ "Delayed message"
275
+ ]);
276
+ });
277
+ while (messages.length > 0) messages.pop();
278
+ await t.step("enqueueMany()", async () => {
279
+ const testMessages = Array.from({ length: 5 }, (_, i) => `Batch message ${i}!`);
280
+ await mq.enqueueMany(testMessages);
281
+ });
282
+ await waitFor(() => messages.length >= 5, 15e3);
283
+ await t.step("listen() [multiple]", () => {
284
+ assertEquals(messages.length, 5);
285
+ for (let i = 0; i < 5; i++) assertEquals(messages[i], `Batch message ${i}!`);
286
+ });
287
+ while (messages.length > 0) messages.pop();
288
+ await t.step("enqueueMany() with delay", async () => {
289
+ const testMessages = Array.from({ length: 3 }, (_, i) => `Delayed batch ${i}!`);
290
+ const { timers, enqueued } = captureTimers(() => mq.enqueueMany(testMessages, { delay: Temporal.Duration.from({ seconds: 2 }) }));
291
+ await enqueued;
292
+ assertEquals(timers.length, 1);
293
+ assertEquals(timers[0].delay, 2e3);
294
+ await mq.enqueue("Batch delay marker");
295
+ await waitFor(() => messages.includes("Batch delay marker"), 15e3);
296
+ assertEquals(messages, ["Batch delay marker"]);
297
+ timers[0].callback();
298
+ });
299
+ await waitFor(() => messages.length >= 4, 15e3);
300
+ await t.step("listen() [delayed multiple]", () => {
301
+ assertEquals(messages.length, 4);
302
+ assertEquals(messages[0], "Batch delay marker");
303
+ for (let i = 0; i < 3; i++) assertEquals(messages[i + 1], `Delayed batch ${i}!`);
304
+ });
305
+ } finally {
306
+ controller.abort();
307
+ await listening;
308
+ }
309
+ });
310
+ function captureTimers(enqueue) {
311
+ const timers = [];
312
+ const original = globalThis.setTimeout;
313
+ globalThis.setTimeout = ((callback, delay) => {
314
+ timers.push({
315
+ callback,
316
+ delay
317
+ });
318
+ return 0;
286
319
  });
287
- await waitFor(() => messages.length >= 3, 15e3);
288
- await t.step("listen() [delayed multiple]", () => {
289
- assertEquals(messages.length, 3);
290
- assertGreater(Date.now() - started, 2e3);
291
- for (let i = 0; i < 3; i++) assertEquals(messages[i], `Delayed batch ${i}!`);
320
+ try {
321
+ return {
322
+ timers,
323
+ enqueued: enqueue()
324
+ };
325
+ } finally {
326
+ globalThis.setTimeout = original;
327
+ }
328
+ }
329
+ test("InProcessMessageQueue real delay", async (t) => {
330
+ for (const batch of [false, true]) await t.step(batch ? "enqueueMany()" : "enqueue()", async () => {
331
+ const mq = new InProcessMessageQueue();
332
+ const messages = [];
333
+ const controller = new AbortController();
334
+ const listening = mq.listen((message) => {
335
+ messages.push(message);
336
+ }, controller);
337
+ try {
338
+ const delayed = batch ? ["Delayed 1", "Delayed 2"] : ["Delayed"];
339
+ const options = { delay: Temporal.Duration.from({ milliseconds: 100 }) };
340
+ if (batch) await mq.enqueueMany(delayed, options);
341
+ else await mq.enqueue(delayed[0], options);
342
+ await mq.enqueue("Immediate");
343
+ await waitFor(() => messages.length >= delayed.length + 1, 15e3);
344
+ assertEquals(messages, ["Immediate", ...delayed]);
345
+ } finally {
346
+ controller.abort();
347
+ await listening;
348
+ }
292
349
  });
293
- controller.abort();
294
- await listening;
295
350
  });
296
351
  test("InProcessMessageQueue orderingKey", async (t) => {
297
352
  const mq = new InProcessMessageQueue();
@@ -1,7 +1,7 @@
1
1
  import "@js-temporal/polyfill";
2
2
  import "urlpattern-polyfill";
3
3
  globalThis.addEventListener = () => {};
4
- import "../std__assert-Duiq_YC9.mjs";
4
+ import "../std__assert-BUOJXi-Z.mjs";
5
5
  import { n as assertFalse } from "../assert_rejects-B-qJtC9Z.mjs";
6
6
  import { t as assert } from "../assert-BhQd8QHP.mjs";
7
7
  import { t as acceptsJsonLd } from "../negotiation-TWEs6Cl8.mjs";
@@ -3,7 +3,7 @@ import "urlpattern-polyfill";
3
3
  globalThis.addEventListener = () => {};
4
4
  import { n as RouterError, t as Router } from "../router-CrMLXoOr.mjs";
5
5
  import { t as assertEquals } from "../assert_equals-Ew3jOFa3.mjs";
6
- import "../std__assert-Duiq_YC9.mjs";
6
+ import "../std__assert-BUOJXi-Z.mjs";
7
7
  import { n as assertFalse } from "../assert_rejects-B-qJtC9Z.mjs";
8
8
  import { t as assert } from "../assert-BhQd8QHP.mjs";
9
9
  import { t as assertThrows } from "../assert_throws-4NwKEy2q.mjs";
@@ -3,14 +3,14 @@ import "urlpattern-polyfill";
3
3
  globalThis.addEventListener = () => {};
4
4
  import { t as esm_default } from "../esm-DVILvP5e.mjs";
5
5
  import { t as assertEquals } from "../assert_equals-Ew3jOFa3.mjs";
6
- import "../std__assert-Duiq_YC9.mjs";
6
+ import "../std__assert-BUOJXi-Z.mjs";
7
7
  import { n as assertFalse, t as assertRejects } from "../assert_rejects-B-qJtC9Z.mjs";
8
8
  import { n as assertInstanceOf, t as assert } from "../assert-BhQd8QHP.mjs";
9
9
  import { t as assertNotEquals } from "../assert_not_equals--wG9hV7u.mjs";
10
- import { l as verifyRequest } from "../http-etl3aebt.mjs";
10
+ import { l as verifyRequest } from "../http-Ba7807Bo.mjs";
11
11
  import { i as rsaPrivateKey2, n as ed25519PrivateKey, s as rsaPublicKey2, t as ed25519Multikey } from "../keys-CCxRJhWa.mjs";
12
- import { t as doesActorOwnKey } from "../owner-DbrGyuAQ.mjs";
13
- import { n as extractInboxes, r as sendActivity, t as SendActivityError } from "../send-DC84LVnR.mjs";
12
+ import { t as doesActorOwnKey } from "../owner-D1HCbj2y.mjs";
13
+ import { n as extractInboxes, r as sendActivity, t as SendActivityError } from "../send-D2F0cCVr.mjs";
14
14
  import { createTestTracerProvider, mockDocumentLoader, test } from "@fedify/fixture";
15
15
  import { Activity, Application, Endpoints, Group, Person, Service } from "@fedify/vocab";
16
16
  import { FetchError, UrlError } from "@fedify/vocab-runtime";
@@ -1,10 +1,10 @@
1
1
  import "@js-temporal/polyfill";
2
2
  import "urlpattern-polyfill";
3
3
  globalThis.addEventListener = () => {};
4
- import "../std__assert-Duiq_YC9.mjs";
4
+ import "../std__assert-BUOJXi-Z.mjs";
5
5
  import { n as assertFalse } from "../assert_rejects-B-qJtC9Z.mjs";
6
6
  import { t as assert } from "../assert-BhQd8QHP.mjs";
7
- import { t as hasMalformedKnownTemporalLiteral } from "../temporal-CGIyJaQs.mjs";
7
+ import { t as hasMalformedKnownTemporalLiteral } from "../temporal-BTCyquNi.mjs";
8
8
  import { test } from "@fedify/fixture";
9
9
  //#region src/federation/temporal.test.ts
10
10
  test("hasMalformedKnownTemporalLiteral() detects expanded proof timestamps", async () => {
@@ -3,9 +3,9 @@ import "urlpattern-polyfill";
3
3
  globalThis.addEventListener = () => {};
4
4
  import { n as createRequestContext } from "../context-Juj6bdHC.mjs";
5
5
  import { t as assertEquals } from "../assert_equals-Ew3jOFa3.mjs";
6
- import "../std__assert-Duiq_YC9.mjs";
6
+ import "../std__assert-BUOJXi-Z.mjs";
7
7
  import { t as MemoryKvStore } from "../kv-mI4Ix2EU.mjs";
8
- import { a as createFederation, o as handleWebFinger } from "../middleware-DWhUcnwV.mjs";
8
+ import { a as createFederation, o as handleWebFinger } from "../middleware-By-XnBx8.mjs";
9
9
  import { test } from "@fedify/fixture";
10
10
  import { Image, Link, Person } from "@fedify/vocab";
11
11
  //#region src/federation/webfinger.test.ts
@@ -1,8 +1,8 @@
1
1
  import { Temporal } from "@js-temporal/polyfill";
2
2
  import "urlpattern-polyfill";
3
3
  globalThis.addEventListener = () => {};
4
- import { n as version, t as name } from "./deno-Ks4jPytK.mjs";
5
- import { o as validateCryptoKey, r as fetchKey } from "./key-CKKr8_gq.mjs";
4
+ import { n as version, t as name } from "./deno-CjMqmOHc.mjs";
5
+ import { o as validateCryptoKey, r as fetchKey } from "./key-1YdrFVdl.mjs";
6
6
  import { CryptographicKey } from "@fedify/vocab";
7
7
  import { SpanStatusCode, trace } from "@opentelemetry/api";
8
8
  import { FetchError } from "@fedify/vocab-runtime";
@@ -10,7 +10,7 @@ import { decodeBase64, encodeBase64 } from "byte-encodings/base64";
10
10
  import { Item, decodeDict, encodeItem } from "structured-field-values";
11
11
  //#region deno.json
12
12
  var name = "@fedify/fedify";
13
- var version = "2.0.29-dev.2068+bb645217";
13
+ var version = "2.0.29-dev.2107+5ab4c99b";
14
14
  //#endregion
15
15
  //#region src/sig/key.ts
16
16
  /**
@@ -11,7 +11,7 @@ let byte_encodings_base64 = require("byte-encodings/base64");
11
11
  let structured_field_values = require("structured-field-values");
12
12
  //#region deno.json
13
13
  var name = "@fedify/fedify";
14
- var version = "2.0.29-dev.2068+bb645217";
14
+ var version = "2.0.29-dev.2107+5ab4c99b";
15
15
  //#endregion
16
16
  //#region src/sig/key.ts
17
17
  /**
@@ -1,7 +1,7 @@
1
1
  import { Temporal } from "@js-temporal/polyfill";
2
2
  import "urlpattern-polyfill";
3
3
  globalThis.addEventListener = () => {};
4
- import { n as version, t as name } from "./deno-Ks4jPytK.mjs";
4
+ import { n as version, t as name } from "./deno-CjMqmOHc.mjs";
5
5
  import { Activity, getTypeId } from "@fedify/vocab";
6
6
  import { SpanKind, SpanStatusCode, context, propagation, trace } from "@opentelemetry/api";
7
7
  import { getLogger } from "@logtape/logtape";
@@ -1,7 +1,7 @@
1
1
  import "@js-temporal/polyfill";
2
2
  import "urlpattern-polyfill";
3
3
  globalThis.addEventListener = () => {};
4
- import { n as version, t as name } from "./deno-Ks4jPytK.mjs";
4
+ import { n as version, t as name } from "./deno-CjMqmOHc.mjs";
5
5
  import { CryptographicKey, Object as Object$1, isActor } from "@fedify/vocab";
6
6
  import { SpanKind, SpanStatusCode, trace } from "@opentelemetry/api";
7
7
  import { getDocumentLoader } from "@fedify/vocab-runtime";
@@ -1,6 +1,6 @@
1
1
  import { Temporal } from "@js-temporal/polyfill";
2
2
  import { URLPattern } from "urlpattern-polyfill";
3
- import { l as validateCryptoKey, t as doubleKnock } from "./http-CusH0a-W.js";
3
+ import { l as validateCryptoKey, t as doubleKnock } from "./http-D5vmrVLV.js";
4
4
  import { getLogger } from "@logtape/logtape";
5
5
  import { curry } from "es-toolkit";
6
6
  import { UrlError, createActivityPubRequest, getRemoteDocument, logRequest, preloadedContexts, validatePublicUrl } from "@fedify/vocab-runtime";
@@ -1,7 +1,7 @@
1
1
  const { Temporal } = require("@js-temporal/polyfill");
2
2
  const { URLPattern } = require("urlpattern-polyfill");
3
3
  require("./chunk-DDcVe30Y.cjs");
4
- const require_http = require("./http-fTCz9O58.cjs");
4
+ const require_http = require("./http-VNuWokJg.cjs");
5
5
  let _logtape_logtape = require("@logtape/logtape");
6
6
  let es_toolkit = require("es-toolkit");
7
7
  let _fedify_vocab_runtime = require("@fedify/vocab-runtime");
@@ -1,8 +1,8 @@
1
1
  import "@js-temporal/polyfill";
2
2
  import "urlpattern-polyfill";
3
3
  globalThis.addEventListener = () => {};
4
- import { n as version, t as name } from "./deno-Ks4jPytK.mjs";
5
- import { o as validateCryptoKey, r as fetchKey } from "./key-CKKr8_gq.mjs";
4
+ import { n as version, t as name } from "./deno-CjMqmOHc.mjs";
5
+ import { o as validateCryptoKey, r as fetchKey } from "./key-1YdrFVdl.mjs";
6
6
  import { Activity, CryptographicKey, Object as Object$1, getTypeId } from "@fedify/vocab";
7
7
  import { SpanStatusCode, trace } from "@opentelemetry/api";
8
8
  import { getDocumentLoader } from "@fedify/vocab-runtime";
@@ -1,4 +1,4 @@
1
1
  const { Temporal } = require("@js-temporal/polyfill");
2
2
  const { URLPattern } = require("urlpattern-polyfill");
3
- const require_middleware = require("./middleware-OAHuntmm.cjs");
3
+ const require_middleware = require("./middleware-DAH4XiqU.cjs");
4
4
  exports.FederationImpl = require_middleware.FederationImpl;
@@ -2,24 +2,24 @@ import { Temporal } from "@js-temporal/polyfill";
2
2
  import "urlpattern-polyfill";
3
3
  globalThis.addEventListener = () => {};
4
4
  import { n as RouterError } from "./router-CrMLXoOr.mjs";
5
- import { n as version, t as name } from "./deno-Ks4jPytK.mjs";
6
- import { a as importJwk, o as validateCryptoKey, t as exportJwk } from "./key-CKKr8_gq.mjs";
7
- import { l as verifyRequest } from "./http-etl3aebt.mjs";
8
- import { t as getAuthenticatedDocumentLoader } from "./docloader-BC9om32k.mjs";
5
+ import { n as version, t as name } from "./deno-CjMqmOHc.mjs";
6
+ import { a as importJwk, o as validateCryptoKey, t as exportJwk } from "./key-1YdrFVdl.mjs";
7
+ import { l as verifyRequest } from "./http-Ba7807Bo.mjs";
8
+ import { t as getAuthenticatedDocumentLoader } from "./docloader-Czq6jsdF.mjs";
9
9
  import { n as kvCache } from "./kv-cache-BrjuJue8.mjs";
10
- import { a as compactJsonLd, c as getNormalizationContextLoader, d as isInvalidUrlTypeError, f as signJsonLd, g as wrapContextLoaderForJsonLd, l as hasSignature, p as verifyCompactJsonLd, r as assertSafeJsonLd, s as detachSignature, t as InvalidContextReferenceError, u as isClearlyMalformedContextReference } from "./ld-CL2DqChv.mjs";
11
- import { n as getKeyOwner, t as doesActorOwnKey } from "./owner-DbrGyuAQ.mjs";
12
- import { n as signObject, r as verifyObject } from "./proof-CnD5PujV.mjs";
10
+ import { a as compactJsonLd, c as getNormalizationContextLoader, d as isInvalidUrlTypeError, f as signJsonLd, g as wrapContextLoaderForJsonLd, l as hasSignature, p as verifyCompactJsonLd, r as assertSafeJsonLd, s as detachSignature, t as InvalidContextReferenceError, u as isClearlyMalformedContextReference } from "./ld-lZDwbdE9.mjs";
11
+ import { n as getKeyOwner, t as doesActorOwnKey } from "./owner-D1HCbj2y.mjs";
12
+ import { n as signObject, r as verifyObject } from "./proof-oOsaCl4z.mjs";
13
13
  import { d as readBoundedText, l as BodyTooLargeError, t as getNodeInfo, u as MAX_BODY_SIZE } from "./client-BUqbea1d.mjs";
14
14
  import { t as nodeInfoToJson } from "./types-MNlFfxjv.mjs";
15
- import { n as routeActivity } from "./inbox-CiNFJlvq.mjs";
16
- import { t as FederationBuilderImpl } from "./builder-C6aY8W_Y.mjs";
15
+ import { n as routeActivity } from "./inbox-C18xUe71.mjs";
16
+ import { t as FederationBuilderImpl } from "./builder-CsI6ZXC9.mjs";
17
17
  import { t as buildCollectionSynchronizationHeader } from "./collection-DI6YzYpd.mjs";
18
18
  import { t as KvKeyCache } from "./keycache-D239uGT9.mjs";
19
19
  import { t as acceptsJsonLd } from "./negotiation-TWEs6Cl8.mjs";
20
- import { t as hasMalformedKnownTemporalLiteral } from "./temporal-CGIyJaQs.mjs";
20
+ import { t as hasMalformedKnownTemporalLiteral } from "./temporal-BTCyquNi.mjs";
21
21
  import { t as createExponentialBackoffPolicy } from "./retry-Ddbq3AcK.mjs";
22
- import { n as extractInboxes, r as sendActivity, t as SendActivityError } from "./send-DC84LVnR.mjs";
22
+ import { n as extractInboxes, r as sendActivity, t as SendActivityError } from "./send-D2F0cCVr.mjs";
23
23
  import { Activity, Collection, CollectionPage, CryptographicKey, Link, Multikey, Object as Object$1, OrderedCollection, OrderedCollectionPage, getTypeId, lookupObject, traverseCollection } from "@fedify/vocab";
24
24
  import { lookupWebFinger } from "@fedify/webfinger";
25
25
  import { SpanKind, SpanStatusCode, context, propagation, trace } from "@opentelemetry/api";
@@ -2,10 +2,10 @@ import { Temporal } from "@js-temporal/polyfill";
2
2
  import { URLPattern } from "urlpattern-polyfill";
3
3
  import { t as __exportAll } from "./chunk-CRNNMoPX.js";
4
4
  import { r as getDefaultActivityTransformers } from "./transformers-BGMIq1cs.js";
5
- import { c as importJwk, d as name, f as version, i as exportJwk, l as validateCryptoKey, r as verifyRequest, t as doubleKnock } from "./http-CusH0a-W.js";
5
+ import { c as importJwk, d as name, f as version, i as exportJwk, l as validateCryptoKey, r as verifyRequest, t as doubleKnock } from "./http-D5vmrVLV.js";
6
6
  import { a as MAX_BODY_SIZE, i as BodyTooLargeError, n as getNodeInfo, o as readBoundedText, t as nodeInfoToJson } from "./types-miAYfiGO.js";
7
- import { _ as signJsonLd, a as doesActorOwnKey, c as assertSafeJsonLd, f as detachSignature, g as isInvalidUrlTypeError, h as isClearlyMalformedContextReference, m as hasSignature, n as signObject, o as getKeyOwner, p as getNormalizationContextLoader, r as verifyObject, s as InvalidContextReferenceError, u as compactJsonLd, v as verifyCompactJsonLd, x as wrapContextLoaderForJsonLd } from "./proof-26Qxlvm_.js";
8
- import { n as getAuthenticatedDocumentLoader, t as kvCache } from "./kv-cache-Bcl0jbmu.js";
7
+ import { _ as signJsonLd, a as doesActorOwnKey, c as assertSafeJsonLd, f as detachSignature, g as isInvalidUrlTypeError, h as isClearlyMalformedContextReference, m as hasSignature, n as signObject, o as getKeyOwner, p as getNormalizationContextLoader, r as verifyObject, s as InvalidContextReferenceError, u as compactJsonLd, v as verifyCompactJsonLd, x as wrapContextLoaderForJsonLd } from "./proof-DZCZie--.js";
8
+ import { n as getAuthenticatedDocumentLoader, t as kvCache } from "./kv-cache-BIIdI_Cr.js";
9
9
  import { getLogger, withContext } from "@logtape/logtape";
10
10
  import { Activity, Collection, CollectionPage, CryptographicKey, Link, Multikey, Object as Object$1, OrderedCollection, OrderedCollectionPage, getTypeId, lookupObject, traverseCollection } from "@fedify/vocab";
11
11
  import { SpanKind, SpanStatusCode, context, propagation, trace } from "@opentelemetry/api";
@@ -2,10 +2,10 @@ const { Temporal } = require("@js-temporal/polyfill");
2
2
  const { URLPattern } = require("urlpattern-polyfill");
3
3
  const require_chunk = require("./chunk-DDcVe30Y.cjs");
4
4
  const require_transformers = require("./transformers-NeAONrAq.cjs");
5
- const require_http = require("./http-fTCz9O58.cjs");
5
+ const require_http = require("./http-VNuWokJg.cjs");
6
6
  const require_types = require("./types-DRPjmHVV.cjs");
7
- const require_proof = require("./proof-DFpWNtoe.cjs");
8
- const require_kv_cache = require("./kv-cache-CKd4oYie.cjs");
7
+ const require_proof = require("./proof-Ce-JBAuj.cjs");
8
+ const require_kv_cache = require("./kv-cache-DRelxPCd.cjs");
9
9
  let _logtape_logtape = require("@logtape/logtape");
10
10
  let _fedify_vocab = require("@fedify/vocab");
11
11
  let _opentelemetry_api = require("@opentelemetry/api");
@@ -335,7 +335,7 @@ var FederationBuilderImpl = class {
335
335
  this.collectionTypeIds = {};
336
336
  }
337
337
  async build(options) {
338
- const { FederationImpl } = await Promise.resolve().then(() => require("./middleware-CNcJt6nP.cjs"));
338
+ const { FederationImpl } = await Promise.resolve().then(() => require("./middleware-BN9TRImG.cjs"));
339
339
  const f = new FederationImpl(options);
340
340
  const trailingSlashInsensitiveValue = f.router.trailingSlashInsensitive;
341
341
  f.router = this.router.clone();
@@ -1,5 +1,5 @@
1
1
  import "@js-temporal/polyfill";
2
2
  import "urlpattern-polyfill";
3
3
  globalThis.addEventListener = () => {};
4
- import { n as FederationImpl } from "./middleware-DWhUcnwV.mjs";
4
+ import { n as FederationImpl } from "./middleware-By-XnBx8.mjs";
5
5
  export { FederationImpl };
package/dist/mod.cjs CHANGED
@@ -4,11 +4,11 @@ Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
4
4
  require("./chunk-DDcVe30Y.cjs");
5
5
  const require_transformers = require("./transformers-NeAONrAq.cjs");
6
6
  require("./compat/mod.cjs");
7
- const require_http = require("./http-fTCz9O58.cjs");
8
- const require_middleware = require("./middleware-OAHuntmm.cjs");
7
+ const require_http = require("./http-VNuWokJg.cjs");
8
+ const require_middleware = require("./middleware-DAH4XiqU.cjs");
9
9
  const require_types = require("./types-DRPjmHVV.cjs");
10
- const require_proof = require("./proof-DFpWNtoe.cjs");
11
- const require_kv_cache = require("./kv-cache-CKd4oYie.cjs");
10
+ const require_proof = require("./proof-Ce-JBAuj.cjs");
11
+ const require_kv_cache = require("./kv-cache-DRelxPCd.cjs");
12
12
  const require_federation_mod = require("./federation/mod.cjs");
13
13
  require("./nodeinfo/mod.cjs");
14
14
  require("./runtime/mod.cjs");
package/dist/mod.js CHANGED
@@ -3,11 +3,11 @@ import { URLPattern } from "urlpattern-polyfill";
3
3
  import "./chunk-CRNNMoPX.js";
4
4
  import { n as autoIdAssigner, r as getDefaultActivityTransformers, t as actorDehydrator } from "./transformers-BGMIq1cs.js";
5
5
  import "./compat/mod.js";
6
- import { c as importJwk, i as exportJwk, n as signRequest, o as fetchKey, r as verifyRequest, s as generateCryptoKeyPair } from "./http-CusH0a-W.js";
7
- import { a as createExponentialBackoffPolicy, c as buildCollectionSynchronizationHeader, d as Router, f as RouterError, i as SendActivityError, l as digest, o as respondWithObject, r as handleWebFinger, s as respondWithObjectIfAcceptable, t as createFederation, u as createFederationBuilder } from "./middleware-bs7TK_La.js";
6
+ import { c as importJwk, i as exportJwk, n as signRequest, o as fetchKey, r as verifyRequest, s as generateCryptoKeyPair } from "./http-D5vmrVLV.js";
7
+ import { a as createExponentialBackoffPolicy, c as buildCollectionSynchronizationHeader, d as Router, f as RouterError, i as SendActivityError, l as digest, o as respondWithObject, r as handleWebFinger, s as respondWithObjectIfAcceptable, t as createFederation, u as createFederationBuilder } from "./middleware-D2iI7G04.js";
8
8
  import { n as getNodeInfo, r as parseNodeInfo, t as nodeInfoToJson } from "./types-miAYfiGO.js";
9
- import { _ as signJsonLd, a as doesActorOwnKey, b as verifySignature, d as createSignature, f as detachSignature, i as verifyProof, l as attachSignature, n as signObject, o as getKeyOwner, r as verifyObject, t as createProof, y as verifyJsonLd } from "./proof-26Qxlvm_.js";
10
- import { n as getAuthenticatedDocumentLoader, t as kvCache } from "./kv-cache-Bcl0jbmu.js";
9
+ import { _ as signJsonLd, a as doesActorOwnKey, b as verifySignature, d as createSignature, f as detachSignature, i as verifyProof, l as attachSignature, n as signObject, o as getKeyOwner, r as verifyObject, t as createProof, y as verifyJsonLd } from "./proof-DZCZie--.js";
10
+ import { n as getAuthenticatedDocumentLoader, t as kvCache } from "./kv-cache-BIIdI_Cr.js";
11
11
  import { InProcessMessageQueue, MemoryKvStore, ParallelMessageQueue } from "./federation/mod.js";
12
12
  import "./nodeinfo/mod.js";
13
13
  import "./runtime/mod.js";
@@ -3,7 +3,7 @@ import "urlpattern-polyfill";
3
3
  globalThis.addEventListener = () => {};
4
4
  import { t as esm_default } from "../esm-DVILvP5e.mjs";
5
5
  import { t as assertEquals } from "../assert_equals-Ew3jOFa3.mjs";
6
- import "../std__assert-Duiq_YC9.mjs";
6
+ import "../std__assert-BUOJXi-Z.mjs";
7
7
  import { n as assertInstanceOf } from "../assert-BhQd8QHP.mjs";
8
8
  import { a as parseProtocol, c as parseUsage, i as parseOutboundService, n as parseInboundService, o as parseServices, r as parseNodeInfo, s as parseSoftware, t as getNodeInfo } from "../client-BUqbea1d.mjs";
9
9
  import { test } from "@fedify/fixture";
@@ -3,9 +3,9 @@ import "urlpattern-polyfill";
3
3
  globalThis.addEventListener = () => {};
4
4
  import { n as createRequestContext } from "../context-Juj6bdHC.mjs";
5
5
  import { t as assertEquals } from "../assert_equals-Ew3jOFa3.mjs";
6
- import "../std__assert-Duiq_YC9.mjs";
6
+ import "../std__assert-BUOJXi-Z.mjs";
7
7
  import { t as MemoryKvStore } from "../kv-mI4Ix2EU.mjs";
8
- import { a as createFederation, h as handleNodeInfoJrd, m as handleNodeInfo } from "../middleware-DWhUcnwV.mjs";
8
+ import { a as createFederation, h as handleNodeInfoJrd, m as handleNodeInfo } from "../middleware-By-XnBx8.mjs";
9
9
  import { test } from "@fedify/fixture";
10
10
  //#region src/nodeinfo/handler.test.ts
11
11
  test("handleNodeInfo()", async () => {
@@ -2,7 +2,7 @@ import "@js-temporal/polyfill";
2
2
  import "urlpattern-polyfill";
3
3
  globalThis.addEventListener = () => {};
4
4
  import { t as assertEquals } from "../assert_equals-Ew3jOFa3.mjs";
5
- import "../std__assert-Duiq_YC9.mjs";
5
+ import "../std__assert-BUOJXi-Z.mjs";
6
6
  import { t as assertThrows } from "../assert_throws-4NwKEy2q.mjs";
7
7
  import { t as nodeInfoToJson } from "../types-MNlFfxjv.mjs";
8
8
  import { test } from "@fedify/fixture";
@@ -2,7 +2,7 @@ import { Temporal } from "@js-temporal/polyfill";
2
2
  import "urlpattern-polyfill";
3
3
  globalThis.addEventListener = () => {};
4
4
  import { t as assertEquals } from "../assert_equals-Ew3jOFa3.mjs";
5
- import "../std__assert-Duiq_YC9.mjs";
5
+ import "../std__assert-BUOJXi-Z.mjs";
6
6
  import { t as MemoryKvStore } from "../kv-mI4Ix2EU.mjs";
7
7
  import { test } from "@fedify/fixture";
8
8
  import { SpanKind, SpanStatusCode, TraceFlags } from "@opentelemetry/api";
@@ -1,8 +1,8 @@
1
1
  import "@js-temporal/polyfill";
2
2
  import "urlpattern-polyfill";
3
3
  globalThis.addEventListener = () => {};
4
- import { n as version, t as name } from "./deno-Ks4jPytK.mjs";
5
- import { n as fetchActorDocument, s as verifyKeyOwnership, t as exportJwk } from "./key-CKKr8_gq.mjs";
4
+ import { n as version, t as name } from "./deno-CjMqmOHc.mjs";
5
+ import { n as fetchActorDocument, s as verifyKeyOwnership, t as exportJwk } from "./key-1YdrFVdl.mjs";
6
6
  import { CryptographicKey, Object as Object$1, isActor } from "@fedify/vocab";
7
7
  import { SpanKind, SpanStatusCode, trace } from "@opentelemetry/api";
8
8
  import { getDocumentLoader } from "@fedify/vocab-runtime";
@@ -1,7 +1,7 @@
1
1
  const { Temporal } = require("@js-temporal/polyfill");
2
2
  const { URLPattern } = require("urlpattern-polyfill");
3
3
  const require_chunk = require("./chunk-DDcVe30Y.cjs");
4
- const require_http = require("./http-fTCz9O58.cjs");
4
+ const require_http = require("./http-VNuWokJg.cjs");
5
5
  let _logtape_logtape = require("@logtape/logtape");
6
6
  let _fedify_vocab = require("@fedify/vocab");
7
7
  let _opentelemetry_api = require("@opentelemetry/api");
@@ -1,6 +1,6 @@
1
1
  import { Temporal } from "@js-temporal/polyfill";
2
2
  import { URLPattern } from "urlpattern-polyfill";
3
- import { a as fetchActorDocument, d as name, f as version, i as exportJwk, l as validateCryptoKey, o as fetchKey, u as verifyKeyOwnership } from "./http-CusH0a-W.js";
3
+ import { a as fetchActorDocument, d as name, f as version, i as exportJwk, l as validateCryptoKey, o as fetchKey, u as verifyKeyOwnership } from "./http-D5vmrVLV.js";
4
4
  import { getLogger } from "@logtape/logtape";
5
5
  import { Activity, CryptographicKey, DataIntegrityProof, Multikey, Object as Object$1, getTypeId, isActor } from "@fedify/vocab";
6
6
  import { SpanKind, SpanStatusCode, trace } from "@opentelemetry/api";
@@ -1,8 +1,8 @@
1
1
  import { Temporal } from "@js-temporal/polyfill";
2
2
  import "urlpattern-polyfill";
3
3
  globalThis.addEventListener = () => {};
4
- import { n as version, t as name } from "./deno-Ks4jPytK.mjs";
5
- import { o as validateCryptoKey, r as fetchKey } from "./key-CKKr8_gq.mjs";
4
+ import { n as version, t as name } from "./deno-CjMqmOHc.mjs";
5
+ import { o as validateCryptoKey, r as fetchKey } from "./key-1YdrFVdl.mjs";
6
6
  import { Activity, DataIntegrityProof, Multikey, getTypeId } from "@fedify/vocab";
7
7
  import { SpanStatusCode, trace } from "@opentelemetry/api";
8
8
  import { getLogger } from "@logtape/logtape";
@@ -1,8 +1,8 @@
1
1
  import "@js-temporal/polyfill";
2
2
  import "urlpattern-polyfill";
3
3
  globalThis.addEventListener = () => {};
4
- import { n as version, t as name } from "./deno-Ks4jPytK.mjs";
5
- import { n as doubleKnock } from "./http-etl3aebt.mjs";
4
+ import { n as version, t as name } from "./deno-CjMqmOHc.mjs";
5
+ import { n as doubleKnock } from "./http-Ba7807Bo.mjs";
6
6
  import { SpanKind, SpanStatusCode, trace } from "@opentelemetry/api";
7
7
  import { FetchError, UrlError, validatePublicUrl } from "@fedify/vocab-runtime";
8
8
  import { getLogger } from "@logtape/logtape";
@@ -3,12 +3,12 @@ import "urlpattern-polyfill";
3
3
  globalThis.addEventListener = () => {};
4
4
  import { t as esm_default } from "../esm-DVILvP5e.mjs";
5
5
  import { t as assertEquals } from "../assert_equals-Ew3jOFa3.mjs";
6
- import { a as assertExists, t as assertStringIncludes } from "../std__assert-Duiq_YC9.mjs";
6
+ import { i as assertExists, t as assertStringIncludes } from "../std__assert-BUOJXi-Z.mjs";
7
7
  import { n as assertFalse, t as assertRejects } from "../assert_rejects-B-qJtC9Z.mjs";
8
8
  import { t as assert } from "../assert-BhQd8QHP.mjs";
9
9
  import { t as assertThrows } from "../assert_throws-4NwKEy2q.mjs";
10
- import { t as exportJwk } from "../key-CKKr8_gq.mjs";
11
- import { a as parseRfc9421Signature, c as timingSafeEqual, i as formatRfc9421SignatureParameters, l as verifyRequest, n as doubleKnock, o as parseRfc9421SignatureInput, r as formatRfc9421Signature, s as signRequest, t as createRfc9421SignatureBase } from "../http-etl3aebt.mjs";
10
+ import { t as exportJwk } from "../key-1YdrFVdl.mjs";
11
+ import { a as parseRfc9421Signature, c as timingSafeEqual, i as formatRfc9421SignatureParameters, l as verifyRequest, n as doubleKnock, o as parseRfc9421SignatureInput, r as formatRfc9421Signature, s as signRequest, t as createRfc9421SignatureBase } from "../http-Ba7807Bo.mjs";
12
12
  import { i as rsaPrivateKey2, l as rsaPublicKey5, o as rsaPublicKey1, s as rsaPublicKey2 } from "../keys-CCxRJhWa.mjs";
13
13
  import { mockDocumentLoader, test } from "@fedify/fixture";
14
14
  import { FetchError, exportSpki } from "@fedify/vocab-runtime";
@@ -2,11 +2,11 @@ import "@js-temporal/polyfill";
2
2
  import "urlpattern-polyfill";
3
3
  globalThis.addEventListener = () => {};
4
4
  import { t as assertEquals } from "../assert_equals-Ew3jOFa3.mjs";
5
- import "../std__assert-Duiq_YC9.mjs";
5
+ import "../std__assert-BUOJXi-Z.mjs";
6
6
  import { t as assertRejects } from "../assert_rejects-B-qJtC9Z.mjs";
7
7
  import { t as assert } from "../assert-BhQd8QHP.mjs";
8
8
  import { t as assertThrows } from "../assert_throws-4NwKEy2q.mjs";
9
- import { a as importJwk, i as generateCryptoKeyPair, o as validateCryptoKey, r as fetchKey, t as exportJwk } from "../key-CKKr8_gq.mjs";
9
+ import { a as importJwk, i as generateCryptoKeyPair, o as validateCryptoKey, r as fetchKey, t as exportJwk } from "../key-1YdrFVdl.mjs";
10
10
  import { c as rsaPublicKey3, i as rsaPrivateKey2, o as rsaPublicKey1, s as rsaPublicKey2, t as ed25519Multikey } from "../keys-CCxRJhWa.mjs";
11
11
  import { mockDocumentLoader, test } from "@fedify/fixture";
12
12
  import { CryptographicKey, Multikey } from "@fedify/vocab";
@@ -5,9 +5,9 @@ import { t as assertEquals } from "../assert_equals-Ew3jOFa3.mjs";
5
5
  import { n as assertFalse, t as assertRejects } from "../assert_rejects-B-qJtC9Z.mjs";
6
6
  import { n as assertInstanceOf, t as assert } from "../assert-BhQd8QHP.mjs";
7
7
  import { t as assertThrows } from "../assert_throws-4NwKEy2q.mjs";
8
- import { i as generateCryptoKeyPair } from "../key-CKKr8_gq.mjs";
8
+ import { i as generateCryptoKeyPair } from "../key-1YdrFVdl.mjs";
9
9
  import { a as rsaPrivateKey3, c as rsaPublicKey3, i as rsaPrivateKey2, n as ed25519PrivateKey, s as rsaPublicKey2, t as ed25519Multikey } from "../keys-CCxRJhWa.mjs";
10
- import { a as compactJsonLd, d as isInvalidUrlTypeError, f as signJsonLd, h as verifySignature, i as attachSignature, m as verifyJsonLd, n as UnsafeJsonLdError, o as createSignature, s as detachSignature } from "../ld-CL2DqChv.mjs";
10
+ import { a as compactJsonLd, d as isInvalidUrlTypeError, f as signJsonLd, h as verifySignature, i as attachSignature, m as verifyJsonLd, n as UnsafeJsonLdError, o as createSignature, s as detachSignature } from "../ld-lZDwbdE9.mjs";
11
11
  import { mockDocumentLoader, test } from "@fedify/fixture";
12
12
  import { CryptographicKey } from "@fedify/vocab";
13
13
  import { encodeBase64 } from "byte-encodings/base64";
package/dist/sig/mod.cjs CHANGED
@@ -1,8 +1,8 @@
1
1
  const { Temporal } = require("@js-temporal/polyfill");
2
2
  const { URLPattern } = require("urlpattern-polyfill");
3
3
  Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
4
- const require_http = require("../http-fTCz9O58.cjs");
5
- const require_proof = require("../proof-DFpWNtoe.cjs");
4
+ const require_http = require("../http-VNuWokJg.cjs");
5
+ const require_proof = require("../proof-Ce-JBAuj.cjs");
6
6
  exports.attachSignature = require_proof.attachSignature;
7
7
  exports.createProof = require_proof.createProof;
8
8
  exports.createSignature = require_proof.createSignature;
package/dist/sig/mod.js CHANGED
@@ -1,5 +1,5 @@
1
1
  import { Temporal } from "@js-temporal/polyfill";
2
2
  import { URLPattern } from "urlpattern-polyfill";
3
- import { c as importJwk, i as exportJwk, n as signRequest, o as fetchKey, r as verifyRequest, s as generateCryptoKeyPair } from "../http-CusH0a-W.js";
4
- import { _ as signJsonLd, a as doesActorOwnKey, b as verifySignature, d as createSignature, f as detachSignature, i as verifyProof, l as attachSignature, n as signObject, o as getKeyOwner, r as verifyObject, t as createProof, y as verifyJsonLd } from "../proof-26Qxlvm_.js";
3
+ import { c as importJwk, i as exportJwk, n as signRequest, o as fetchKey, r as verifyRequest, s as generateCryptoKeyPair } from "../http-D5vmrVLV.js";
4
+ import { _ as signJsonLd, a as doesActorOwnKey, b as verifySignature, d as createSignature, f as detachSignature, i as verifyProof, l as attachSignature, n as signObject, o as getKeyOwner, r as verifyObject, t as createProof, y as verifyJsonLd } from "../proof-DZCZie--.js";
5
5
  export { attachSignature, createProof, createSignature, detachSignature, doesActorOwnKey, exportJwk, fetchKey, generateCryptoKeyPair, getKeyOwner, importJwk, signJsonLd, signObject, signRequest, verifyJsonLd, verifyObject, verifyProof, verifyRequest, verifySignature };
@@ -2,11 +2,11 @@ import "@js-temporal/polyfill";
2
2
  import "urlpattern-polyfill";
3
3
  globalThis.addEventListener = () => {};
4
4
  import { t as assertEquals } from "../assert_equals-Ew3jOFa3.mjs";
5
- import "../std__assert-Duiq_YC9.mjs";
5
+ import "../std__assert-BUOJXi-Z.mjs";
6
6
  import { n as assertFalse } from "../assert_rejects-B-qJtC9Z.mjs";
7
7
  import { t as assert } from "../assert-BhQd8QHP.mjs";
8
8
  import { o as rsaPublicKey1, s as rsaPublicKey2 } from "../keys-CCxRJhWa.mjs";
9
- import { n as getKeyOwner, t as doesActorOwnKey } from "../owner-DbrGyuAQ.mjs";
9
+ import { n as getKeyOwner, t as doesActorOwnKey } from "../owner-D1HCbj2y.mjs";
10
10
  import { createTestTracerProvider, mockDocumentLoader, test } from "@fedify/fixture";
11
11
  import { Create, CryptographicKey, lookupObject } from "@fedify/vocab";
12
12
  //#region src/sig/owner.test.ts
@@ -2,11 +2,11 @@ import { Temporal } from "@js-temporal/polyfill";
2
2
  import "urlpattern-polyfill";
3
3
  globalThis.addEventListener = () => {};
4
4
  import { t as assertEquals } from "../assert_equals-Ew3jOFa3.mjs";
5
- import "../std__assert-Duiq_YC9.mjs";
5
+ import "../std__assert-BUOJXi-Z.mjs";
6
6
  import { t as assertRejects } from "../assert_rejects-B-qJtC9Z.mjs";
7
7
  import { n as assertInstanceOf } from "../assert-BhQd8QHP.mjs";
8
8
  import { i as rsaPrivateKey2, n as ed25519PrivateKey, r as ed25519PublicKey, s as rsaPublicKey2, t as ed25519Multikey } from "../keys-CCxRJhWa.mjs";
9
- import { i as verifyProof, n as signObject, r as verifyObject, t as createProof } from "../proof-CnD5PujV.mjs";
9
+ import { i as verifyProof, n as signObject, r as verifyObject, t as createProof } from "../proof-oOsaCl4z.mjs";
10
10
  import { mockDocumentLoader, test } from "@fedify/fixture";
11
11
  import { Create, DataIntegrityProof, Multikey, Note, Place } from "@fedify/vocab";
12
12
  import { decodeMultibase, importMultibaseKey } from "@fedify/vocab-runtime";
@@ -52,31 +52,6 @@ import "./assert_throws-4NwKEy2q.mjs";
52
52
  throw new AssertionError(msg ?? `Expect ${actualString} >= ${expectedString}`);
53
53
  }
54
54
  //#endregion
55
- //#region ../../node_modules/.pnpm/@jsr+std__assert@0.226.0/node_modules/@jsr/std__assert/assert_greater.js
56
- /**
57
- * Make an assertion that `actual` is greater than `expected`.
58
- * If not then throw.
59
- *
60
- * @example Usage
61
- * ```ts no-eval
62
- * import { assertGreater } from "@std/assert/assert-greater";
63
- *
64
- * assertGreater(2, 1); // Doesn't throw
65
- * assertGreater(1, 1); // Throws
66
- * assertGreater(0, 1); // Throws
67
- * ```
68
- *
69
- * @typeParam T The type of the values to compare.
70
- * @param actual The actual value to compare.
71
- * @param expected The expected value to compare.
72
- * @param msg The optional message to display if the assertion fails.
73
- */ function assertGreater(actual, expected, msg) {
74
- if (actual > expected) return;
75
- const actualString = format(actual);
76
- const expectedString = format(expected);
77
- throw new AssertionError(msg ?? `Expect ${actualString} > ${expectedString}`);
78
- }
79
- //#endregion
80
55
  //#region ../../node_modules/.pnpm/@jsr+std__assert@0.226.0/node_modules/@jsr/std__assert/assert_strict_equals.js
81
56
  /**
82
57
  * Make an assertion that `actual` and `expected` are equal using
@@ -136,4 +111,4 @@ import "./assert_throws-4NwKEy2q.mjs";
136
111
  }
137
112
  }
138
113
  //#endregion
139
- export { assertExists as a, assertGreaterOrEqual as i, assertStrictEquals as n, assertGreater as r, assertStringIncludes as t };
114
+ export { assertExists as i, assertStrictEquals as n, assertGreaterOrEqual as r, assertStringIncludes as t };
@@ -1,7 +1,7 @@
1
1
  import { Temporal } from "@js-temporal/polyfill";
2
2
  import "urlpattern-polyfill";
3
3
  globalThis.addEventListener = () => {};
4
- import { c as getNormalizationContextLoader } from "./ld-CL2DqChv.mjs";
4
+ import { c as getNormalizationContextLoader } from "./ld-lZDwbdE9.mjs";
5
5
  import jsonld from "@fedify/vocab-runtime/jsonld";
6
6
  //#region src/federation/temporal.ts
7
7
  function isPlainObject(value) {
@@ -3,11 +3,11 @@ import "urlpattern-polyfill";
3
3
  globalThis.addEventListener = () => {};
4
4
  import { t as esm_default } from "../esm-DVILvP5e.mjs";
5
5
  import { t as assertEquals } from "../assert_equals-Ew3jOFa3.mjs";
6
- import "../std__assert-Duiq_YC9.mjs";
6
+ import "../std__assert-BUOJXi-Z.mjs";
7
7
  import { t as assertRejects } from "../assert_rejects-B-qJtC9Z.mjs";
8
- import { l as verifyRequest } from "../http-etl3aebt.mjs";
8
+ import { l as verifyRequest } from "../http-Ba7807Bo.mjs";
9
9
  import { i as rsaPrivateKey2 } from "../keys-CCxRJhWa.mjs";
10
- import { t as getAuthenticatedDocumentLoader } from "../docloader-BC9om32k.mjs";
10
+ import { t as getAuthenticatedDocumentLoader } from "../docloader-Czq6jsdF.mjs";
11
11
  import { mockDocumentLoader, test } from "@fedify/fixture";
12
12
  import { FetchError, UrlError } from "@fedify/vocab-runtime";
13
13
  import { configure, reset } from "@logtape/logtape";
@@ -1,6 +1,6 @@
1
1
  const { Temporal } = require("@js-temporal/polyfill");
2
2
  const { URLPattern } = require("urlpattern-polyfill");
3
3
  Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
4
- const require_kv_cache = require("../kv-cache-CKd4oYie.cjs");
4
+ const require_kv_cache = require("../kv-cache-DRelxPCd.cjs");
5
5
  exports.getAuthenticatedDocumentLoader = require_kv_cache.getAuthenticatedDocumentLoader;
6
6
  exports.kvCache = require_kv_cache.kvCache;
package/dist/utils/mod.js CHANGED
@@ -1,4 +1,4 @@
1
1
  import { Temporal } from "@js-temporal/polyfill";
2
2
  import { URLPattern } from "urlpattern-polyfill";
3
- import { n as getAuthenticatedDocumentLoader, t as kvCache } from "../kv-cache-Bcl0jbmu.js";
3
+ import { n as getAuthenticatedDocumentLoader, t as kvCache } from "../kv-cache-BIIdI_Cr.js";
4
4
  export { getAuthenticatedDocumentLoader, kvCache };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@fedify/fedify",
3
- "version": "2.0.29-dev.2068+bb645217",
3
+ "version": "2.0.29-dev.2107+5ab4c99b",
4
4
  "description": "An ActivityPub server framework",
5
5
  "keywords": [
6
6
  "ActivityPub",
@@ -144,9 +144,9 @@
144
144
  "uri-template-router": "^1.0.0",
145
145
  "url-template": "^3.1.1",
146
146
  "urlpattern-polyfill": "^10.1.0",
147
- "@fedify/vocab-runtime": "2.0.29-dev.2068+bb645217",
148
- "@fedify/webfinger": "2.0.29-dev.2068+bb645217",
149
- "@fedify/vocab": "2.0.29-dev.2068+bb645217"
147
+ "@fedify/vocab-runtime": "2.0.29-dev.2107+5ab4c99b",
148
+ "@fedify/vocab": "2.0.29-dev.2107+5ab4c99b",
149
+ "@fedify/webfinger": "2.0.29-dev.2107+5ab4c99b"
150
150
  },
151
151
  "devDependencies": {
152
152
  "@std/assert": "npm:@jsr/std__assert@^0.226.0",
@@ -158,8 +158,8 @@
158
158
  "tsx": "^4.19.4",
159
159
  "typescript": "^6.0.0",
160
160
  "wrangler": "^4.17.0",
161
- "@fedify/fixture": "2.0.0",
162
- "@fedify/vocab-tools": "^2.0.29-dev.2068+bb645217"
161
+ "@fedify/vocab-tools": "^2.0.29-dev.2107+5ab4c99b",
162
+ "@fedify/fixture": "2.0.0"
163
163
  },
164
164
  "scripts": {
165
165
  "build:self": "tsdown",