@fedify/fedify 2.3.12-dev.2365 → 2.3.13

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 (68) hide show
  1. package/dist/{assert_rejects-DN60FHPX.mjs → assert_rejects-D1HYAik3.mjs} +2 -20
  2. package/dist/{assert_throws-BOkhLGYc.mjs → assert_throws-BbSMEFKo.mjs} +19 -1
  3. package/dist/{builder-BOLaWLNy.mjs → builder-BagNDcQw.mjs} +2 -2
  4. package/dist/compat/transformers.test.mjs +2 -2
  5. package/dist/{deno-DSS6EkPl.mjs → deno-XpcjbHwj.mjs} +1 -1
  6. package/dist/{docloader-Ds5k4A6d.mjs → docloader-QDpF5t9M.mjs} +4 -2
  7. package/dist/federation/builder.test.mjs +3 -3
  8. package/dist/federation/circuit-breaker.test.mjs +3 -3
  9. package/dist/federation/collection.test.mjs +1 -1
  10. package/dist/federation/handler.test.mjs +262 -9
  11. package/dist/federation/idempotency.test.mjs +3 -3
  12. package/dist/federation/inbox.test.mjs +25 -1
  13. package/dist/federation/keycache.test.mjs +1 -1
  14. package/dist/federation/kv.test.mjs +1 -1
  15. package/dist/federation/metrics.test.mjs +3 -3
  16. package/dist/federation/middleware.test.mjs +177 -15
  17. package/dist/federation/mod.cjs +1 -1
  18. package/dist/federation/mod.js +1 -1
  19. package/dist/federation/mq.test.mjs +4 -3
  20. package/dist/federation/negotiation.test.mjs +4 -4
  21. package/dist/federation/retry.test.mjs +1 -1
  22. package/dist/federation/router.test.mjs +3 -4
  23. package/dist/federation/send.test.mjs +7 -6
  24. package/dist/federation/temporal.test.mjs +4 -4
  25. package/dist/federation/webfinger.test.mjs +2 -2
  26. package/dist/{http-D9h6mQdq.mjs → http-BRrpIDS1.mjs} +3 -3
  27. package/dist/{http-DdaLQHim.cjs → http-DwPnG87d.cjs} +109 -11
  28. package/dist/{http-LMsqGo8j.js → http-GHVGCeb5.js} +110 -12
  29. package/dist/inbox-BzOuCPLY.mjs +180 -0
  30. package/dist/{key-vnmAGZ3_.mjs → key-PdEu1lDF.mjs} +111 -13
  31. package/dist/{kv-cache-Dz7_SbVI.js → kv-cache-BmqdF048.js} +3 -1
  32. package/dist/{kv-cache-CQuscHxa.mjs → kv-cache-Clx3SwMp.mjs} +1 -1
  33. package/dist/{kv-cache-ClCz-B0L.cjs → kv-cache-poF6Tqnz.cjs} +3 -1
  34. package/dist/{ld-BRqKkOSf.mjs → ld-D6UlzNnG.mjs} +3 -3
  35. package/dist/{metrics-Z0UkrR_1.mjs → metrics-62qolVUY.mjs} +1 -1
  36. package/dist/{middleware-C_kPmXE6.mjs → middleware-C3Q3CoR8.mjs} +1 -1
  37. package/dist/{middleware-RTcKhytV.mjs → middleware-CfbFdEO-.mjs} +96 -194
  38. package/dist/{middleware-DanzltB1.cjs → middleware-DkrXqZO_.cjs} +106 -34
  39. package/dist/{middleware-B-CIN962.js → middleware-xw9fBZoB.js} +106 -34
  40. package/dist/mod.cjs +4 -4
  41. package/dist/mod.js +4 -4
  42. package/dist/nodeinfo/client.test.mjs +2 -2
  43. package/dist/nodeinfo/handler.test.mjs +2 -2
  44. package/dist/nodeinfo/types.test.mjs +2 -2
  45. package/dist/otel/exporter.test.mjs +1 -1
  46. package/dist/{owner-B0rmuoQB.mjs → owner-DWnLg-vk.mjs} +2 -2
  47. package/dist/{proof-Bau45ZUZ.js → proof-CUSzBztF.js} +1 -1
  48. package/dist/{proof-CKczQTG0.cjs → proof-DF6CU-SU.cjs} +1 -1
  49. package/dist/{proof-B7mAFVed.mjs → proof-mf6h7n4_.mjs} +3 -3
  50. package/dist/{send-BFukz_kE.mjs → send-LJUzNpVF.mjs} +3 -3
  51. package/dist/sig/http.test.mjs +6 -6
  52. package/dist/sig/key.test.mjs +213 -7
  53. package/dist/sig/ld.test.mjs +5 -5
  54. package/dist/sig/mod.cjs +2 -2
  55. package/dist/sig/mod.js +2 -2
  56. package/dist/sig/owner.test.mjs +4 -4
  57. package/dist/sig/proof.test.mjs +5 -4
  58. package/dist/{std__assert-BvGuO4xO.mjs → std__assert-BjJn2daJ.mjs} +2 -2
  59. package/dist/{temporal-n6j0MNF9.mjs → temporal-_3yIqdvy.mjs} +1 -1
  60. package/dist/utils/docloader.test.mjs +114 -39
  61. package/dist/utils/kv-cache.test.mjs +1 -1
  62. package/dist/utils/mod.cjs +1 -1
  63. package/dist/utils/mod.js +1 -1
  64. package/package.json +7 -7
  65. /package/dist/{assert-jSdZMYam.mjs → assert-CEO06XCw.mjs} +0 -0
  66. /package/dist/{circuit-breaker-test-utils-Dm5MM6l9.mjs → circuit-breaker-test-utils-CAdwjgMi.mjs} +0 -0
  67. /package/dist/{negotiation-CDW-_gUU.mjs → negotiation-DDstyBvc.mjs} +0 -0
  68. /package/dist/{retry-_VvV0h9f.mjs → retry-CXg_MBI-.mjs} +0 -0
@@ -2,12 +2,12 @@ import "@js-temporal/polyfill";
2
2
  import "urlpattern-polyfill";
3
3
  globalThis.addEventListener = () => {};
4
4
  import { t as assertEquals } from "../assert_equals-C-ZRDbaf.mjs";
5
- import { n as assertGreaterOrEqual, r as assertFalse, t as assertRejects } from "../assert_rejects-DN60FHPX.mjs";
6
- import { n as assertInstanceOf, t as assert } from "../assert-jSdZMYam.mjs";
7
- import { t as assertThrows } from "../assert_throws-BOkhLGYc.mjs";
8
- import { a as generateCryptoKeyPair } from "../key-vnmAGZ3_.mjs";
5
+ import { r as assertFalse, t as assertThrows } from "../assert_throws-BbSMEFKo.mjs";
6
+ import { n as assertGreaterOrEqual, t as assertRejects } from "../assert_rejects-D1HYAik3.mjs";
7
+ import { n as assertInstanceOf, t as assert } from "../assert-CEO06XCw.mjs";
8
+ import { a as generateCryptoKeyPair } from "../key-PdEu1lDF.mjs";
9
9
  import { a as rsaPrivateKey3, c as rsaPublicKey3, i as rsaPrivateKey2, n as ed25519PrivateKey, s as rsaPublicKey2, t as ed25519Multikey } from "../keys-BAK-tUlf.mjs";
10
- import { a as compactJsonLd, f as isInvalidUrlTypeError, g as verifySignature, h as verifyJsonLd, i as attachSignature, n as UnsafeJsonLdError, o as createSignature, p as signJsonLd, s as detachSignature, u as hasSignatureLike } from "../ld-BRqKkOSf.mjs";
10
+ import { a as compactJsonLd, f as isInvalidUrlTypeError, g as verifySignature, h as verifyJsonLd, i as attachSignature, n as UnsafeJsonLdError, o as createSignature, p as signJsonLd, s as detachSignature, u as hasSignatureLike } from "../ld-D6UlzNnG.mjs";
11
11
  import { CryptographicKey } from "@fedify/vocab";
12
12
  import { createTestMeterProvider, mockDocumentLoader, test } from "@fedify/fixture";
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-DdaLQHim.cjs");
5
- const require_proof = require("../proof-CKczQTG0.cjs");
4
+ const require_http = require("../http-DwPnG87d.cjs");
5
+ const require_proof = require("../proof-DF6CU-SU.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 { F as validateAcceptSignature, M as formatAcceptSignature, N as fulfillAcceptSignature, P as parseAcceptSignature, a as verifyRequestDetailed, c as fetchKey, d as importJwk, i as verifyRequest, l as fetchKeyDetailed, o as exportJwk, r as signRequest, u as generateCryptoKeyPair } from "../http-LMsqGo8j.js";
4
- import { C as verifySignature, S as verifyJsonLd, _ as hasSignatureLike, a as verifyProof, b as signJsonLd, c as getKeyOwner, d as attachSignature, i as verifyObject, m as detachSignature, n as hasProofLike, p as createSignature, r as signObject, s as doesActorOwnKey, t as createProof } from "../proof-Bau45ZUZ.js";
3
+ import { F as validateAcceptSignature, M as formatAcceptSignature, N as fulfillAcceptSignature, P as parseAcceptSignature, a as verifyRequestDetailed, c as fetchKey, d as importJwk, i as verifyRequest, l as fetchKeyDetailed, o as exportJwk, r as signRequest, u as generateCryptoKeyPair } from "../http-GHVGCeb5.js";
4
+ import { C as verifySignature, S as verifyJsonLd, _ as hasSignatureLike, a as verifyProof, b as signJsonLd, c as getKeyOwner, d as attachSignature, i as verifyObject, m as detachSignature, n as hasProofLike, p as createSignature, r as signObject, s as doesActorOwnKey, t as createProof } from "../proof-CUSzBztF.js";
5
5
  export { attachSignature, createProof, createSignature, detachSignature, doesActorOwnKey, exportJwk, fetchKey, fetchKeyDetailed, formatAcceptSignature, fulfillAcceptSignature, generateCryptoKeyPair, getKeyOwner, hasProofLike, hasSignatureLike, importJwk, parseAcceptSignature, signJsonLd, signObject, signRequest, validateAcceptSignature, verifyJsonLd, verifyObject, verifyProof, verifyRequest, verifyRequestDetailed, 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-C-ZRDbaf.mjs";
5
- import "../std__assert-BvGuO4xO.mjs";
6
- import { r as assertFalse } from "../assert_rejects-DN60FHPX.mjs";
7
- import { t as assert } from "../assert-jSdZMYam.mjs";
5
+ import "../std__assert-BjJn2daJ.mjs";
6
+ import { r as assertFalse } from "../assert_throws-BbSMEFKo.mjs";
7
+ import { t as assert } from "../assert-CEO06XCw.mjs";
8
8
  import { o as rsaPublicKey1, s as rsaPublicKey2 } from "../keys-BAK-tUlf.mjs";
9
- import { n as getKeyOwner, t as doesActorOwnKey } from "../owner-B0rmuoQB.mjs";
9
+ import { n as getKeyOwner, t as doesActorOwnKey } from "../owner-DWnLg-vk.mjs";
10
10
  import { Create, CryptographicKey, lookupObject } from "@fedify/vocab";
11
11
  import { createTestTracerProvider, mockDocumentLoader, test } from "@fedify/fixture";
12
12
  //#region src/sig/owner.test.ts
@@ -2,12 +2,13 @@ import { Temporal } from "@js-temporal/polyfill";
2
2
  import "urlpattern-polyfill";
3
3
  globalThis.addEventListener = () => {};
4
4
  import { t as assertEquals } from "../assert_equals-C-ZRDbaf.mjs";
5
- import "../std__assert-BvGuO4xO.mjs";
6
- import { n as assertGreaterOrEqual, r as assertFalse, t as assertRejects } from "../assert_rejects-DN60FHPX.mjs";
7
- import { n as assertInstanceOf, t as assert } from "../assert-jSdZMYam.mjs";
5
+ import "../std__assert-BjJn2daJ.mjs";
6
+ import { r as assertFalse } from "../assert_throws-BbSMEFKo.mjs";
7
+ import { n as assertGreaterOrEqual, t as assertRejects } from "../assert_rejects-D1HYAik3.mjs";
8
+ import { n as assertInstanceOf, t as assert } from "../assert-CEO06XCw.mjs";
8
9
  import { i as rsaPrivateKey2, n as ed25519PrivateKey, r as ed25519PublicKey, s as rsaPublicKey2, t as ed25519Multikey } from "../keys-BAK-tUlf.mjs";
9
10
  import { r as normalizeOutgoingActivityJsonLd } from "../outgoing-jsonld-D4iTv7uM.mjs";
10
- import { a as verifyProof, i as verifyObject, n as hasProofLike, r as signObject, t as createProof } from "../proof-B7mAFVed.mjs";
11
+ import { a as verifyProof, i as verifyObject, n as hasProofLike, r as signObject, t as createProof } from "../proof-mf6h7n4_.mjs";
11
12
  import { Create, DataIntegrityProof, Document, Multikey, Note, PUBLIC_COLLECTION, Place } from "@fedify/vocab";
12
13
  import { createTestMeterProvider, mockDocumentLoader, test } from "@fedify/fixture";
13
14
  import { decodeMultibase, importMultibaseKey } from "@fedify/vocab-runtime";
@@ -2,8 +2,8 @@ import "@js-temporal/polyfill";
2
2
  import "urlpattern-polyfill";
3
3
  globalThis.addEventListener = () => {};
4
4
  import { l as AssertionError } from "./assert_equals-C-ZRDbaf.mjs";
5
- import "./assert_rejects-DN60FHPX.mjs";
6
- import "./assert_throws-BOkhLGYc.mjs";
5
+ import "./assert_throws-BbSMEFKo.mjs";
6
+ import "./assert_rejects-D1HYAik3.mjs";
7
7
  import "./assert_strict_equals-XEgZAlrj.mjs";
8
8
  //#region ../../node_modules/.pnpm/@jsr+std__assert@0.226.0/node_modules/@jsr/std__assert/assert_exists.js
9
9
  /**
@@ -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-BRqKkOSf.mjs";
4
+ import { c as getNormalizationContextLoader } from "./ld-D6UlzNnG.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-vrlUxr60.mjs";
5
5
  import { t as assertEquals } from "../assert_equals-C-ZRDbaf.mjs";
6
- import "../std__assert-BvGuO4xO.mjs";
7
- import { t as assertRejects } from "../assert_rejects-DN60FHPX.mjs";
8
- import { l as verifyRequest } from "../http-D9h6mQdq.mjs";
6
+ import "../std__assert-BjJn2daJ.mjs";
7
+ import { t as assertRejects } from "../assert_rejects-D1HYAik3.mjs";
8
+ import { l as verifyRequest } from "../http-BRrpIDS1.mjs";
9
9
  import { i as rsaPrivateKey2 } from "../keys-BAK-tUlf.mjs";
10
- import { t as getAuthenticatedDocumentLoader } from "../docloader-Ds5k4A6d.mjs";
10
+ import { t as getAuthenticatedDocumentLoader } from "../docloader-QDpF5t9M.mjs";
11
11
  import { configure, reset } from "@logtape/logtape";
12
12
  import { mockDocumentLoader, test } from "@fedify/fixture";
13
13
  import { FetchError, UrlError } from "@fedify/vocab-runtime";
@@ -99,45 +99,50 @@ test("getAuthenticatedDocumentLoader() validates redirects", async (t) => {
99
99
  });
100
100
  esm_default.hardReset();
101
101
  });
102
- test("getAuthenticatedDocumentLoader() cancellation", {
103
- sanitizeResources: false,
104
- sanitizeOps: false
105
- }, async (t) => {
102
+ test("getAuthenticatedDocumentLoader() cancellation", async (t) => {
106
103
  esm_default.spyGlobal();
107
- await t.step("document loader cancellation", async () => {
108
- esm_default.get("https://example.com/slow-object", () => new Promise((resolve) => {
109
- setTimeout(() => {
110
- resolve({
111
- status: 200,
112
- headers: { "Content-Type": "application/activity+json" },
113
- body: {
114
- "@context": "https://www.w3.org/ns/activitystreams",
115
- type: "Note",
116
- content: "Slow response"
117
- }
104
+ try {
105
+ await t.step("document loader cancellation", async () => {
106
+ let responseTimer;
107
+ try {
108
+ esm_default.get("https://example.com/slow-object", () => new Promise((resolve) => {
109
+ responseTimer = setTimeout(() => {
110
+ resolve({
111
+ status: 200,
112
+ headers: { "Content-Type": "application/activity+json" },
113
+ body: {
114
+ "@context": "https://www.w3.org/ns/activitystreams",
115
+ type: "Note",
116
+ content: "Slow response"
117
+ }
118
+ });
119
+ }, 1e3);
120
+ }));
121
+ const loader = getAuthenticatedDocumentLoader({
122
+ keyId: new URL("https://example.com/key2"),
123
+ privateKey: rsaPrivateKey2
118
124
  });
119
- }, 1e3);
120
- }));
121
- const loader = getAuthenticatedDocumentLoader({
122
- keyId: new URL("https://example.com/key2"),
123
- privateKey: rsaPrivateKey2
125
+ const controller = new AbortController();
126
+ const promise = loader("https://example.com/slow-object", { signal: controller.signal });
127
+ controller.abort();
128
+ await assertRejects(() => promise, Error);
129
+ await assertRejects(() => loader("https://example.com/object", { signal: controller.signal }), Error);
130
+ } finally {
131
+ clearTimeout(responseTimer);
132
+ }
124
133
  });
125
- const controller = new AbortController();
126
- const promise = loader("https://example.com/slow-object", { signal: controller.signal });
127
- controller.abort();
128
- await assertRejects(() => promise, Error);
129
- await assertRejects(() => loader("https://example.com/object", { signal: controller.signal }), Error);
130
- });
131
- await t.step("immediate cancellation", async () => {
132
- const loader = getAuthenticatedDocumentLoader({
133
- keyId: new URL("https://example.com/key2"),
134
- privateKey: rsaPrivateKey2
134
+ await t.step("immediate cancellation", async () => {
135
+ const loader = getAuthenticatedDocumentLoader({
136
+ keyId: new URL("https://example.com/key2"),
137
+ privateKey: rsaPrivateKey2
138
+ });
139
+ const controller = new AbortController();
140
+ controller.abort();
141
+ await assertRejects(() => loader("https://example.com/object", { signal: controller.signal }), Error);
135
142
  });
136
- const controller = new AbortController();
137
- controller.abort();
138
- await assertRejects(() => loader("https://example.com/object", { signal: controller.signal }), Error);
139
- });
140
- esm_default.hardReset();
143
+ } finally {
144
+ esm_default.hardReset();
145
+ }
141
146
  });
142
147
  test("getAuthenticatedDocumentLoader() bounds JSON after redirects", async () => {
143
148
  esm_default.mockGlobal();
@@ -456,5 +461,75 @@ test("getAuthenticatedDocumentLoader() rejects cancellation before fetching", as
456
461
  esm_default.hardReset();
457
462
  }
458
463
  });
464
+ const unsupportedUrls = [
465
+ "ftp://example.com/collection",
466
+ "file:///collection",
467
+ `data:application/ld+json,${encodeURIComponent(JSON.stringify({ id: "https://example.com/data" }))}`
468
+ ];
469
+ function isUnsupportedProtocolError(error, url) {
470
+ return error instanceof UrlError && error.message === `Unsupported protocol: ${new URL(url).protocol}` && error.reason === "disallowed";
471
+ }
472
+ async function withFetchStub(respond, callback) {
473
+ const fetched = [];
474
+ const originalFetch = globalThis.fetch;
475
+ globalThis.fetch = ((input, init) => {
476
+ const request = input instanceof Request && init == null ? input : new Request(input, init);
477
+ fetched.push(request);
478
+ return Promise.resolve(respond(request));
479
+ });
480
+ try {
481
+ await callback(fetched);
482
+ } finally {
483
+ globalThis.fetch = originalFetch;
484
+ }
485
+ }
486
+ for (const url of unsupportedUrls) {
487
+ const scheme = new URL(url).protocol;
488
+ const loader = getAuthenticatedDocumentLoader({
489
+ keyId: new URL("https://example.com/key2"),
490
+ privateKey: rsaPrivateKey2
491
+ }, { allowPrivateAddress: true });
492
+ test(`getAuthenticatedDocumentLoader() rejects ${scheme} URLs with private addresses allowed before fetching`, async () => {
493
+ await withFetchStub(() => Response.json({}), async (fetched) => {
494
+ await rejects(loader(url), (e) => isUnsupportedProtocolError(e, url));
495
+ deepStrictEqual(fetched, []);
496
+ });
497
+ });
498
+ test(`getAuthenticatedDocumentLoader() rejects redirects to ${scheme} URLs with private addresses allowed`, async () => {
499
+ const start = "https://example.com/redirect-to-unsupported";
500
+ await withFetchStub(() => Response.redirect(url, 302), async (fetched) => {
501
+ await rejects(loader(start), (e) => isUnsupportedProtocolError(e, url));
502
+ deepStrictEqual(fetched.map((r) => r.url), [start]);
503
+ });
504
+ });
505
+ for (const firstSpec of ["rfc9421", "draft-cavage-http-signatures-12"]) test(`getAuthenticatedDocumentLoader() rejects redirects to ${scheme} URLs after signature fallback from ${firstSpec}`, async () => {
506
+ const start = "https://example.com/fallback-redirect-to-unsupported";
507
+ const fallbackLoader = getAuthenticatedDocumentLoader({
508
+ keyId: new URL("https://example.com/key2"),
509
+ privateKey: rsaPrivateKey2
510
+ }, {
511
+ allowPrivateAddress: true,
512
+ specDeterminer: {
513
+ determineSpec: () => firstSpec,
514
+ rememberSpec: () => {}
515
+ }
516
+ });
517
+ await withFetchStub((request) => request.headers.has("Signature-Input") === (firstSpec === "rfc9421") ? new Response("Unauthorized", { status: 401 }) : Response.redirect(url, 302), async (fetched) => {
518
+ await rejects(fallbackLoader(start), (e) => isUnsupportedProtocolError(e, url));
519
+ deepStrictEqual(fetched.map((r) => r.url), [start, start]);
520
+ deepStrictEqual(fetched.map((r) => r.headers.has("Signature-Input")), [firstSpec === "rfc9421", firstSpec !== "rfc9421"]);
521
+ });
522
+ });
523
+ for (const html of [false, true]) test(`getAuthenticatedDocumentLoader() rejects ${html ? "HTML" : "Link header"} alternates to ${scheme} URLs with private addresses allowed`, async () => {
524
+ const start = "https://example.com/alternate-to-unsupported";
525
+ await withFetchStub(() => html ? new Response(`<link rel="alternate" type="application/activity+json" href="${url}">`, { headers: { "Content-Type": "text/html" } }) : new Response("", { headers: {
526
+ "Content-Type": "text/plain",
527
+ Link: `<${url}>; rel="alternate"; type="application/activity+json"`
528
+ } }), async (fetched) => {
529
+ await rejects(loader(start), (e) => isUnsupportedProtocolError(e, url));
530
+ deepStrictEqual(fetched.map((r) => r.url), [start]);
531
+ });
532
+ });
533
+ }
459
534
  //#endregion
460
535
  export {};
@@ -1,7 +1,7 @@
1
1
  import { Temporal } from "@js-temporal/polyfill";
2
2
  import { URLPattern } from "urlpattern-polyfill";
3
3
  globalThis.addEventListener = () => {};
4
- import { n as kvCache, t as MockKvStore } from "../kv-cache-CQuscHxa.mjs";
4
+ import { n as kvCache, t as MockKvStore } from "../kv-cache-Clx3SwMp.mjs";
5
5
  import { deepStrictEqual, throws } from "node:assert";
6
6
  import { createTestMeterProvider, mockDocumentLoader, test } from "@fedify/fixture";
7
7
  import { preloadedContexts } from "@fedify/vocab-runtime";
@@ -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-ClCz-B0L.cjs");
4
+ const require_kv_cache = require("../kv-cache-poF6Tqnz.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-Dz7_SbVI.js";
3
+ import { n as getAuthenticatedDocumentLoader, t as kvCache } from "../kv-cache-BmqdF048.js";
4
4
  export { getAuthenticatedDocumentLoader, kvCache };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@fedify/fedify",
3
- "version": "2.3.12-dev.2365+89254121",
3
+ "version": "2.3.13",
4
4
  "description": "An ActivityPub server framework",
5
5
  "keywords": [
6
6
  "ActivityPub",
@@ -152,10 +152,10 @@
152
152
  "jsonld": "^9.0.0",
153
153
  "structured-field-values": "^2.0.4",
154
154
  "urlpattern-polyfill": "^10.1.0",
155
- "@fedify/vocab-runtime": "2.3.12-dev.2365+89254121",
156
- "@fedify/vocab": "2.3.12-dev.2365+89254121",
157
- "@fedify/uri-template": "2.3.12-dev.2365+89254121",
158
- "@fedify/webfinger": "2.3.12-dev.2365+89254121"
155
+ "@fedify/uri-template": "2.3.13",
156
+ "@fedify/vocab": "2.3.13",
157
+ "@fedify/vocab-runtime": "2.3.13",
158
+ "@fedify/webfinger": "2.3.13"
159
159
  },
160
160
  "devDependencies": {
161
161
  "@std/assert": "npm:@jsr/std__assert@^0.226.0",
@@ -167,8 +167,8 @@
167
167
  "tsx": "^4.21.0",
168
168
  "typescript": "^6.0.0",
169
169
  "wrangler": "^4.17.0",
170
- "@fedify/vocab-tools": "^2.3.12-dev.2365+89254121",
171
- "@fedify/fixture": "2.0.0"
170
+ "@fedify/fixture": "2.0.0",
171
+ "@fedify/vocab-tools": "^2.3.13"
172
172
  },
173
173
  "scripts": {
174
174
  "build:self": "tsdown",
File without changes