@fedify/fedify 2.1.12 → 2.1.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 (89) hide show
  1. package/dist/{builder-D9hlyCx5.mjs → builder-BII9kySt.mjs} +3 -3
  2. package/dist/{chunk-nlSIicah.js → chunk-CRNNMoPX.js} +2 -2
  3. package/dist/{client-z-8dc-e1.d.cts → client-CAM_bQXx.d.cts} +1 -0
  4. package/dist/{client-AtlibPOU.d.ts → client-CSddvgWN.d.ts} +1 -2
  5. package/dist/compat/mod.d.cts +2 -1
  6. package/dist/compat/mod.d.ts +2 -3
  7. package/dist/compat/mod.js +3 -3
  8. package/dist/compat/transformers.test.mjs +1 -1
  9. package/dist/{context-C0fssarc.d.ts → context-BUEOz39K.d.cts} +6 -7
  10. package/dist/{context-LmrZPwti.d.cts → context-CqlKdpQu.d.ts} +6 -5
  11. package/dist/{deno-Ddb3P7G7.mjs → deno-DsYpa8eE.mjs} +1 -1
  12. package/dist/{docloader-CK8tewt1.mjs → docloader-SiTy_uEf.mjs} +2 -2
  13. package/dist/federation/builder.test.mjs +1 -1
  14. package/dist/federation/handler.test.mjs +3 -3
  15. package/dist/federation/idempotency.test.mjs +2 -2
  16. package/dist/federation/inbox.test.mjs +1 -1
  17. package/dist/federation/middleware.test.mjs +6 -6
  18. package/dist/federation/mod.cjs +1 -1
  19. package/dist/federation/mod.d.cts +4 -3
  20. package/dist/federation/mod.d.ts +4 -5
  21. package/dist/federation/mod.js +2 -2
  22. package/dist/federation/send.test.mjs +3 -3
  23. package/dist/federation/webfinger.test.mjs +1 -1
  24. package/dist/{http-CrGuipxe.d.cts → http-BDZeS5om.d.ts} +2 -1
  25. package/dist/{http-qKyJKSnF.js → http-BhNk2Qd4.js} +58 -10
  26. package/dist/{http-aQzN9Ayi.d.ts → http-C87EWkO0.d.cts} +2 -3
  27. package/dist/{http-CmDErAnD.cjs → http-LasosqSl.cjs} +57 -9
  28. package/dist/{http-DRDpStn2.mjs → http-sMWapA1W.mjs} +58 -10
  29. package/dist/{inbox-DTuPJEma.mjs → inbox-Fz4Sd_YF.mjs} +1 -1
  30. package/dist/{key-WSedbAA-.mjs → key-BTwUWGeQ.mjs} +1 -1
  31. package/dist/{kv-CbLNp3zQ.d.cts → kv-D6hNiMTK.d.ts} +1 -0
  32. package/dist/{kv-cache-DNNRFY8u.js → kv-cache-DD4J1hjd.js} +2 -2
  33. package/dist/{kv-cache-B01V7s3h.mjs → kv-cache-FsT1ljhs.mjs} +1 -1
  34. package/dist/{kv-cache-9cdQDeT0.cjs → kv-cache-P8ilpPhX.cjs} +2 -2
  35. package/dist/{kv-GFYnFoOl.d.ts → kv-gJ8LYbxX.d.cts} +1 -3
  36. package/dist/{ld-OBpaLfHR.mjs → ld--_e4kYb3.mjs} +2 -2
  37. package/dist/{middleware-UThUK30x.js → middleware-BmExpfep.js} +7 -7
  38. package/dist/{middleware-DDsnRvFC.mjs → middleware-BwUi2CSK.mjs} +11 -11
  39. package/dist/{middleware-C2c1rlmE.mjs → middleware-CgSiHODB.mjs} +1 -1
  40. package/dist/{middleware-8P6Z15Wq.cjs → middleware-DSO3rlFW.cjs} +1 -1
  41. package/dist/{middleware-DFcgN1cH.cjs → middleware-DtWhE0Tg.cjs} +4 -4
  42. package/dist/{mod-CnwZoDzx.d.ts → mod-2wk2xVOZ.d.cts} +2 -3
  43. package/dist/{mod-B505FZBC.d.cts → mod-BTWFtZwa.d.ts} +4 -3
  44. package/dist/{mod-DoJBjjnO.d.cts → mod-CjiK2zrW.d.ts} +3 -2
  45. package/dist/{mod-DvxszxXC.d.ts → mod-D5YlzzP3.d.cts} +3 -4
  46. package/dist/{mod-Cgpc49fA.d.cts → mod-VlzkKTxt.d.ts} +2 -1
  47. package/dist/{mod-D7PAuO6k.d.ts → mod-dxOnKp2Y.d.cts} +4 -5
  48. package/dist/mod.cjs +4 -4
  49. package/dist/mod.d.cts +9 -8
  50. package/dist/mod.d.ts +9 -10
  51. package/dist/mod.js +9 -9
  52. package/dist/nodeinfo/handler.test.mjs +1 -1
  53. package/dist/nodeinfo/mod.d.cts +2 -1
  54. package/dist/nodeinfo/mod.d.ts +2 -3
  55. package/dist/nodeinfo/mod.js +3 -3
  56. package/dist/otel/mod.d.cts +2 -1
  57. package/dist/otel/mod.d.ts +2 -3
  58. package/dist/otel/mod.js +2 -2
  59. package/dist/{owner-CptqhsOy.d.cts → owner-CnngXDNJ.d.ts} +2 -1
  60. package/dist/{owner-74ARJ5TL.d.ts → owner-DEvZuyOE.d.cts} +2 -3
  61. package/dist/{owner-BceqCVOs.mjs → owner-DHom_kgS.mjs} +2 -2
  62. package/dist/{proof-4NUQlbQV.js → proof-BGeouI6o.js} +2 -2
  63. package/dist/{proof-BojC8L94.mjs → proof-CXFgG-c1.mjs} +2 -2
  64. package/dist/{proof-kuTIVfyZ.cjs → proof-vA6FYR0I.cjs} +1 -1
  65. package/dist/runtime/mod.d.cts +1 -0
  66. package/dist/runtime/mod.d.ts +1 -2
  67. package/dist/runtime/mod.js +3 -3
  68. package/dist/{send-Buz5Gy8x.mjs → send-CPt5iQJ5.mjs} +2 -2
  69. package/dist/sig/http.test.mjs +120 -2
  70. package/dist/sig/key.test.mjs +1 -1
  71. package/dist/sig/ld.test.mjs +2 -2
  72. package/dist/sig/mod.cjs +2 -2
  73. package/dist/sig/mod.d.cts +4 -3
  74. package/dist/sig/mod.d.ts +4 -5
  75. package/dist/sig/mod.js +4 -4
  76. package/dist/sig/owner.test.mjs +1 -1
  77. package/dist/sig/proof.test.mjs +1 -1
  78. package/dist/{transformers-ve6e2xcg.js → transformers-BGMIq1cs.js} +2 -2
  79. package/dist/{types-hvL8ElAs.js → types-CAY3OdLq.js} +2 -2
  80. package/dist/utils/docloader.test.mjs +2 -2
  81. package/dist/utils/kv-cache.test.mjs +1 -1
  82. package/dist/utils/mod.cjs +1 -1
  83. package/dist/utils/mod.d.cts +2 -1
  84. package/dist/utils/mod.d.ts +2 -3
  85. package/dist/utils/mod.js +3 -3
  86. package/dist/vocab/mod.d.cts +1 -0
  87. package/dist/vocab/mod.d.ts +1 -2
  88. package/dist/vocab/mod.js +2 -2
  89. package/package.json +6 -6
@@ -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-Ddb3P7G7.mjs";
5
- import { n as fetchKey, o as validateCryptoKey } from "./key-WSedbAA-.mjs";
4
+ import { n as version, t as name } from "./deno-DsYpa8eE.mjs";
5
+ import { n as fetchKey, o as validateCryptoKey } from "./key-BTwUWGeQ.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,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-CmDErAnD.cjs");
4
+ const require_http = require("./http-LasosqSl.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,3 +1,4 @@
1
+ /// <reference lib="esnext.temporal" />
1
2
  export * from "@fedify/vocab-runtime";
2
3
 
3
4
  //#region \0rolldown/runtime.js
@@ -1,3 +1,2 @@
1
- import { Temporal } from "@js-temporal/polyfill";
2
- import { URLPattern } from "urlpattern-polyfill";
1
+ /// <reference lib="esnext.temporal" />
3
2
  export * from "@fedify/vocab-runtime";
@@ -1,4 +1,4 @@
1
- import "@js-temporal/polyfill";
2
- import "urlpattern-polyfill";
3
- import "../chunk-nlSIicah.js";
1
+ import { Temporal } from "@js-temporal/polyfill";
2
+ import { URLPattern } from "urlpattern-polyfill";
3
+ import "../chunk-CRNNMoPX.js";
4
4
  export * from "@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-Ddb3P7G7.mjs";
5
- import { n as doubleKnock } from "./http-DRDpStn2.mjs";
4
+ import { n as version, t as name } from "./deno-DsYpa8eE.mjs";
5
+ import { n as doubleKnock } from "./http-sMWapA1W.mjs";
6
6
  import { SpanKind, SpanStatusCode, trace } from "@opentelemetry/api";
7
7
  import { getLogger } from "@logtape/logtape";
8
8
  //#region src/federation/send.ts
@@ -7,8 +7,8 @@ import { a as assertExists, t as assertStringIncludes } from "../std__assert-Dui
7
7
  import { n as assertFalse, t as assertRejects } from "../assert_rejects-B-qJtC9Z.mjs";
8
8
  import { t as assertThrows } from "../assert_throws-4NwKEy2q.mjs";
9
9
  import { t as assert } from "../assert-ddO5KLpe.mjs";
10
- import { t as exportJwk } from "../key-WSedbAA-.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, u as verifyRequestDetailed } from "../http-DRDpStn2.mjs";
10
+ import { t as exportJwk } from "../key-BTwUWGeQ.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, u as verifyRequestDetailed } from "../http-sMWapA1W.mjs";
12
12
  import { i as rsaPrivateKey2, l as rsaPublicKey5, o as rsaPublicKey1, s as rsaPublicKey2 } from "../keys-BAK-tUlf.mjs";
13
13
  import { createTestTracerProvider, mockDocumentLoader, test } from "@fedify/fixture";
14
14
  import { FetchError, exportSpki } from "@fedify/vocab-runtime";
@@ -959,6 +959,124 @@ test("doubleKnock() detects redirect loops", async () => {
959
959
  assertEquals(requestCount, 2);
960
960
  esm_default.hardReset();
961
961
  });
962
+ test("doubleKnock() retries idempotent request transport errors", async () => {
963
+ esm_default.spyGlobal();
964
+ try {
965
+ let requestCount = 0;
966
+ esm_default.get("https://example.com/flaky-document", () => {
967
+ requestCount++;
968
+ if (requestCount === 1) throw new TypeError("temporary DNS failure");
969
+ return new Response("Success", { status: 200 });
970
+ });
971
+ const response = await doubleKnock(new Request("https://example.com/flaky-document"), {
972
+ keyId: rsaPublicKey2.id,
973
+ privateKey: rsaPrivateKey2
974
+ });
975
+ assertEquals(response.status, 200);
976
+ assertEquals(await response.text(), "Success");
977
+ assertEquals(requestCount, 2);
978
+ } finally {
979
+ esm_default.hardReset();
980
+ }
981
+ });
982
+ test("doubleKnock() wraps repeated transport errors", async () => {
983
+ esm_default.spyGlobal();
984
+ try {
985
+ let requestCount = 0;
986
+ const failure = /* @__PURE__ */ new TypeError("DNS lookup failed");
987
+ esm_default.get("https://example.com/unreachable-document", () => {
988
+ requestCount++;
989
+ throw failure;
990
+ });
991
+ const request = new Request("https://example.com/unreachable-document");
992
+ const error = await assertRejects(() => doubleKnock(request, {
993
+ keyId: rsaPublicKey2.id,
994
+ privateKey: rsaPrivateKey2
995
+ }), FetchError, "DNS lookup failed");
996
+ assertEquals(error.url.href, "https://example.com/unreachable-document");
997
+ assertEquals(error.cause, failure);
998
+ assertEquals(requestCount, 2);
999
+ } finally {
1000
+ esm_default.hardReset();
1001
+ }
1002
+ });
1003
+ test("doubleKnock() does not retry non-idempotent transport errors", async () => {
1004
+ esm_default.spyGlobal();
1005
+ try {
1006
+ let requestCount = 0;
1007
+ const failure = /* @__PURE__ */ new TypeError("connection reset");
1008
+ esm_default.post("https://example.com/flaky-inbox", () => {
1009
+ requestCount++;
1010
+ throw failure;
1011
+ });
1012
+ const request = new Request("https://example.com/flaky-inbox", {
1013
+ method: "POST",
1014
+ body: "Test activity content",
1015
+ headers: { "Content-Type": "application/activity+json" }
1016
+ });
1017
+ const error = await assertRejects(() => doubleKnock(request, {
1018
+ keyId: rsaPublicKey2.id,
1019
+ privateKey: rsaPrivateKey2
1020
+ }), FetchError, "connection reset");
1021
+ assertEquals(error.url.href, "https://example.com/flaky-inbox");
1022
+ assertEquals(error.cause, failure);
1023
+ assertEquals(requestCount, 1);
1024
+ } finally {
1025
+ esm_default.hardReset();
1026
+ }
1027
+ });
1028
+ test("doubleKnock() preserves Request signal abort reasons", async () => {
1029
+ const controller = new AbortController();
1030
+ const abortReason = "request aborted";
1031
+ controller.abort(abortReason);
1032
+ const request = new Request("https://example.com/request-abort", { signal: controller.signal });
1033
+ assertEquals(await assertRejects(() => doubleKnock(request, {
1034
+ keyId: rsaPublicKey2.id,
1035
+ privateKey: rsaPrivateKey2
1036
+ })), abortReason);
1037
+ });
1038
+ test("doubleKnock() preserves Request signal aborts during retry delay", async () => {
1039
+ esm_default.spyGlobal();
1040
+ try {
1041
+ let requestCount = 0;
1042
+ const controller = new AbortController();
1043
+ const abortReason = "retry aborted";
1044
+ esm_default.get("https://example.com/aborted-retry", () => {
1045
+ requestCount++;
1046
+ setTimeout(() => controller.abort(abortReason));
1047
+ throw new TypeError("temporary DNS failure");
1048
+ });
1049
+ const request = new Request("https://example.com/aborted-retry", { signal: controller.signal });
1050
+ assertEquals(await assertRejects(() => doubleKnock(request, {
1051
+ keyId: rsaPublicKey2.id,
1052
+ privateKey: rsaPrivateKey2
1053
+ })), abortReason);
1054
+ assertEquals(requestCount, 1);
1055
+ } finally {
1056
+ esm_default.hardReset();
1057
+ }
1058
+ });
1059
+ test("doubleKnock() prefers Request aborts over transport errors", async () => {
1060
+ esm_default.spyGlobal();
1061
+ try {
1062
+ let requestCount = 0;
1063
+ const controller = new AbortController();
1064
+ const abortReason = "transport aborted";
1065
+ esm_default.get("https://example.com/abort-with-transport-error", () => {
1066
+ requestCount++;
1067
+ controller.abort(abortReason);
1068
+ throw new TypeError("temporary DNS failure");
1069
+ });
1070
+ const request = new Request("https://example.com/abort-with-transport-error", { signal: controller.signal });
1071
+ assertEquals(await assertRejects(() => doubleKnock(request, {
1072
+ keyId: rsaPublicKey2.id,
1073
+ privateKey: rsaPrivateKey2
1074
+ })), abortReason);
1075
+ assertEquals(requestCount, 1);
1076
+ } finally {
1077
+ esm_default.hardReset();
1078
+ }
1079
+ });
962
1080
  test("doubleKnock() async specDeterminer test", async () => {
963
1081
  esm_default.spyGlobal();
964
1082
  let requestCount = 0;
@@ -5,7 +5,7 @@ import { t as assertEquals } from "../assert_equals-Ew3jOFa3.mjs";
5
5
  import "../std__assert-Duiq_YC9.mjs";
6
6
  import { t as assertRejects } from "../assert_rejects-B-qJtC9Z.mjs";
7
7
  import { t as assertThrows } from "../assert_throws-4NwKEy2q.mjs";
8
- import { a as importJwk, i as generateCryptoKeyPair, n as fetchKey, o as validateCryptoKey, r as fetchKeyDetailed, t as exportJwk } from "../key-WSedbAA-.mjs";
8
+ import { a as importJwk, i as generateCryptoKeyPair, n as fetchKey, o as validateCryptoKey, r as fetchKeyDetailed, t as exportJwk } from "../key-BTwUWGeQ.mjs";
9
9
  import { c as rsaPublicKey3, i as rsaPrivateKey2, o as rsaPublicKey1, s as rsaPublicKey2, t as ed25519Multikey } from "../keys-BAK-tUlf.mjs";
10
10
  import { createTestTracerProvider, mockDocumentLoader, test } from "@fedify/fixture";
11
11
  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 { t as assertThrows } from "../assert_throws-4NwKEy2q.mjs";
7
7
  import { t as assert } from "../assert-ddO5KLpe.mjs";
8
- import { i as generateCryptoKeyPair } from "../key-WSedbAA-.mjs";
8
+ import { i as generateCryptoKeyPair } from "../key-BTwUWGeQ.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 signJsonLd, n as createSignature, o as verifyJsonLd, r as detachSignature, s as verifySignature, t as attachSignature } from "../ld-OBpaLfHR.mjs";
10
+ import { a as signJsonLd, n as createSignature, o as verifyJsonLd, r as detachSignature, s as verifySignature, t as attachSignature } from "../ld--_e4kYb3.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-CmDErAnD.cjs");
5
- const require_proof = require("../proof-kuTIVfyZ.cjs");
4
+ const require_http = require("../http-LasosqSl.cjs");
5
+ const require_proof = require("../proof-vA6FYR0I.cjs");
6
6
  exports.attachSignature = require_proof.attachSignature;
7
7
  exports.createProof = require_proof.createProof;
8
8
  exports.createSignature = require_proof.createSignature;
@@ -1,4 +1,5 @@
1
- import { C as exportJwk, D as importJwk, E as generateCryptoKeyPair, S as KeyCache, T as fetchKeyDetailed, _ as validateAcceptSignature, a as VerifyRequestDetailedResult, b as FetchKeyOptions, c as signRequest, d as AcceptSignatureMember, f as AcceptSignatureParameters, g as parseAcceptSignature, h as fulfillAcceptSignature, i as SignRequestOptions, l as verifyRequest, m as formatAcceptSignature, n as HttpMessageSignaturesSpecDeterminer, o as VerifyRequestFailureReason, p as FulfillAcceptSignatureResult, r as Rfc9421SignRequestOptions, s as VerifyRequestOptions, t as HttpMessageSignaturesSpec, u as verifyRequestDetailed, v as FetchKeyDetailedResult, w as fetchKey, x as FetchKeyResult, y as FetchKeyErrorResult } from "../http-CrGuipxe.cjs";
2
- import { i as getKeyOwner, n as GetKeyOwnerOptions, r as doesActorOwnKey, t as DoesActorOwnKeyOptions } from "../owner-CptqhsOy.cjs";
3
- import { _ as verifyJsonLd, a as createProof, c as verifyProof, d as VerifyJsonLdOptions, f as VerifySignatureOptions, g as signJsonLd, h as detachSignature, i as VerifyProofOptions, l as CreateSignatureOptions, m as createSignature, n as SignObjectOptions, o as signObject, p as attachSignature, r as VerifyObjectOptions, s as verifyObject, t as CreateProofOptions, u as SignJsonLdOptions, v as verifySignature } from "../mod-DoJBjjnO.cjs";
1
+ /// <reference lib="esnext.temporal" />
2
+ import { C as exportJwk, D as importJwk, E as generateCryptoKeyPair, S as KeyCache, T as fetchKeyDetailed, _ as validateAcceptSignature, a as VerifyRequestDetailedResult, b as FetchKeyOptions, c as signRequest, d as AcceptSignatureMember, f as AcceptSignatureParameters, g as parseAcceptSignature, h as fulfillAcceptSignature, i as SignRequestOptions, l as verifyRequest, m as formatAcceptSignature, n as HttpMessageSignaturesSpecDeterminer, o as VerifyRequestFailureReason, p as FulfillAcceptSignatureResult, r as Rfc9421SignRequestOptions, s as VerifyRequestOptions, t as HttpMessageSignaturesSpec, u as verifyRequestDetailed, v as FetchKeyDetailedResult, w as fetchKey, x as FetchKeyResult, y as FetchKeyErrorResult } from "../http-C87EWkO0.cjs";
3
+ import { i as getKeyOwner, n as GetKeyOwnerOptions, r as doesActorOwnKey, t as DoesActorOwnKeyOptions } from "../owner-DEvZuyOE.cjs";
4
+ import { _ as verifyJsonLd, a as createProof, c as verifyProof, d as VerifyJsonLdOptions, f as VerifySignatureOptions, g as signJsonLd, h as detachSignature, i as VerifyProofOptions, l as CreateSignatureOptions, m as createSignature, n as SignObjectOptions, o as signObject, p as attachSignature, r as VerifyObjectOptions, s as verifyObject, t as CreateProofOptions, u as SignJsonLdOptions, v as verifySignature } from "../mod-D5YlzzP3.cjs";
4
5
  export { AcceptSignatureMember, AcceptSignatureParameters, CreateProofOptions, CreateSignatureOptions, DoesActorOwnKeyOptions, FetchKeyDetailedResult, FetchKeyErrorResult, FetchKeyOptions, FetchKeyResult, FulfillAcceptSignatureResult, GetKeyOwnerOptions, HttpMessageSignaturesSpec, HttpMessageSignaturesSpecDeterminer, KeyCache, Rfc9421SignRequestOptions, SignJsonLdOptions, SignObjectOptions, SignRequestOptions, VerifyJsonLdOptions, VerifyObjectOptions, VerifyProofOptions, VerifyRequestDetailedResult, VerifyRequestFailureReason, VerifyRequestOptions, VerifySignatureOptions, attachSignature, createProof, createSignature, detachSignature, doesActorOwnKey, exportJwk, fetchKey, fetchKeyDetailed, formatAcceptSignature, fulfillAcceptSignature, generateCryptoKeyPair, getKeyOwner, importJwk, parseAcceptSignature, signJsonLd, signObject, signRequest, validateAcceptSignature, verifyJsonLd, verifyObject, verifyProof, verifyRequest, verifyRequestDetailed, verifySignature };
package/dist/sig/mod.d.ts CHANGED
@@ -1,6 +1,5 @@
1
- import { Temporal } from "@js-temporal/polyfill";
2
- import { URLPattern } from "urlpattern-polyfill";
3
- import { C as exportJwk, D as importJwk, E as generateCryptoKeyPair, S as KeyCache, T as fetchKeyDetailed, _ as validateAcceptSignature, a as VerifyRequestDetailedResult, b as FetchKeyOptions, c as signRequest, d as AcceptSignatureMember, f as AcceptSignatureParameters, g as parseAcceptSignature, h as fulfillAcceptSignature, i as SignRequestOptions, l as verifyRequest, m as formatAcceptSignature, n as HttpMessageSignaturesSpecDeterminer, o as VerifyRequestFailureReason, p as FulfillAcceptSignatureResult, r as Rfc9421SignRequestOptions, s as VerifyRequestOptions, t as HttpMessageSignaturesSpec, u as verifyRequestDetailed, v as FetchKeyDetailedResult, w as fetchKey, x as FetchKeyResult, y as FetchKeyErrorResult } from "../http-aQzN9Ayi.js";
4
- import { i as getKeyOwner, n as GetKeyOwnerOptions, r as doesActorOwnKey, t as DoesActorOwnKeyOptions } from "../owner-74ARJ5TL.js";
5
- import { _ as verifyJsonLd, a as createProof, c as verifyProof, d as VerifyJsonLdOptions, f as VerifySignatureOptions, g as signJsonLd, h as detachSignature, i as VerifyProofOptions, l as CreateSignatureOptions, m as createSignature, n as SignObjectOptions, o as signObject, p as attachSignature, r as VerifyObjectOptions, s as verifyObject, t as CreateProofOptions, u as SignJsonLdOptions, v as verifySignature } from "../mod-DvxszxXC.js";
1
+ /// <reference lib="esnext.temporal" />
2
+ import { C as exportJwk, D as importJwk, E as generateCryptoKeyPair, S as KeyCache, T as fetchKeyDetailed, _ as validateAcceptSignature, a as VerifyRequestDetailedResult, b as FetchKeyOptions, c as signRequest, d as AcceptSignatureMember, f as AcceptSignatureParameters, g as parseAcceptSignature, h as fulfillAcceptSignature, i as SignRequestOptions, l as verifyRequest, m as formatAcceptSignature, n as HttpMessageSignaturesSpecDeterminer, o as VerifyRequestFailureReason, p as FulfillAcceptSignatureResult, r as Rfc9421SignRequestOptions, s as VerifyRequestOptions, t as HttpMessageSignaturesSpec, u as verifyRequestDetailed, v as FetchKeyDetailedResult, w as fetchKey, x as FetchKeyResult, y as FetchKeyErrorResult } from "../http-BDZeS5om.js";
3
+ import { i as getKeyOwner, n as GetKeyOwnerOptions, r as doesActorOwnKey, t as DoesActorOwnKeyOptions } from "../owner-CnngXDNJ.js";
4
+ import { _ as verifyJsonLd, a as createProof, c as verifyProof, d as VerifyJsonLdOptions, f as VerifySignatureOptions, g as signJsonLd, h as detachSignature, i as VerifyProofOptions, l as CreateSignatureOptions, m as createSignature, n as SignObjectOptions, o as signObject, p as attachSignature, r as VerifyObjectOptions, s as verifyObject, t as CreateProofOptions, u as SignJsonLdOptions, v as verifySignature } from "../mod-CjiK2zrW.js";
6
5
  export { AcceptSignatureMember, AcceptSignatureParameters, CreateProofOptions, CreateSignatureOptions, DoesActorOwnKeyOptions, FetchKeyDetailedResult, FetchKeyErrorResult, FetchKeyOptions, FetchKeyResult, FulfillAcceptSignatureResult, GetKeyOwnerOptions, HttpMessageSignaturesSpec, HttpMessageSignaturesSpecDeterminer, KeyCache, Rfc9421SignRequestOptions, SignJsonLdOptions, SignObjectOptions, SignRequestOptions, VerifyJsonLdOptions, VerifyObjectOptions, VerifyProofOptions, VerifyRequestDetailedResult, VerifyRequestFailureReason, VerifyRequestOptions, VerifySignatureOptions, attachSignature, createProof, createSignature, detachSignature, doesActorOwnKey, exportJwk, fetchKey, fetchKeyDetailed, formatAcceptSignature, fulfillAcceptSignature, generateCryptoKeyPair, getKeyOwner, importJwk, parseAcceptSignature, signJsonLd, signObject, signRequest, validateAcceptSignature, verifyJsonLd, verifyObject, verifyProof, verifyRequest, verifyRequestDetailed, verifySignature };
package/dist/sig/mod.js CHANGED
@@ -1,5 +1,5 @@
1
- import "@js-temporal/polyfill";
2
- import "urlpattern-polyfill";
3
- import { a as verifyRequestDetailed, c as fetchKeyDetailed, f as formatAcceptSignature, h as validateAcceptSignature, i as verifyRequest, l as generateCryptoKeyPair, m as parseAcceptSignature, o as exportJwk, p as fulfillAcceptSignature, r as signRequest, s as fetchKey, u as importJwk } from "../http-qKyJKSnF.js";
4
- import { a as doesActorOwnKey, c as createSignature, d as signJsonLd, f as verifyJsonLd, i as verifyProof, l as detachSignature, n as signObject, o as getKeyOwner, p as verifySignature, r as verifyObject, s as attachSignature, t as createProof } from "../proof-4NUQlbQV.js";
1
+ import { Temporal } from "@js-temporal/polyfill";
2
+ import { URLPattern } from "urlpattern-polyfill";
3
+ import { a as verifyRequestDetailed, c as fetchKeyDetailed, f as formatAcceptSignature, h as validateAcceptSignature, i as verifyRequest, l as generateCryptoKeyPair, m as parseAcceptSignature, o as exportJwk, p as fulfillAcceptSignature, r as signRequest, s as fetchKey, u as importJwk } from "../http-BhNk2Qd4.js";
4
+ import { a as doesActorOwnKey, c as createSignature, d as signJsonLd, f as verifyJsonLd, i as verifyProof, l as detachSignature, n as signObject, o as getKeyOwner, p as verifySignature, r as verifyObject, s as attachSignature, t as createProof } from "../proof-BGeouI6o.js";
5
5
  export { attachSignature, createProof, createSignature, detachSignature, doesActorOwnKey, exportJwk, fetchKey, fetchKeyDetailed, formatAcceptSignature, fulfillAcceptSignature, generateCryptoKeyPair, getKeyOwner, importJwk, parseAcceptSignature, signJsonLd, signObject, signRequest, validateAcceptSignature, verifyJsonLd, verifyObject, verifyProof, verifyRequest, verifyRequestDetailed, verifySignature };
@@ -6,7 +6,7 @@ import "../std__assert-Duiq_YC9.mjs";
6
6
  import { n as assertFalse } from "../assert_rejects-B-qJtC9Z.mjs";
7
7
  import { t as assert } from "../assert-ddO5KLpe.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-BceqCVOs.mjs";
9
+ import { n as getKeyOwner, t as doesActorOwnKey } from "../owner-DHom_kgS.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
@@ -6,7 +6,7 @@ import "../std__assert-Duiq_YC9.mjs";
6
6
  import { t as assertRejects } from "../assert_rejects-B-qJtC9Z.mjs";
7
7
  import { t as assertInstanceOf } from "../assert_instance_of-C4Ri6VuN.mjs";
8
8
  import { i as rsaPrivateKey2, n as ed25519PrivateKey, r as ed25519PublicKey, s as rsaPublicKey2, t as ed25519Multikey } from "../keys-BAK-tUlf.mjs";
9
- import { i as verifyProof, n as signObject, r as verifyObject, t as createProof } from "../proof-BojC8L94.mjs";
9
+ import { i as verifyProof, n as signObject, r as verifyObject, t as createProof } from "../proof-CXFgG-c1.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";
@@ -1,5 +1,5 @@
1
- import "@js-temporal/polyfill";
2
- import "urlpattern-polyfill";
1
+ import { Temporal } from "@js-temporal/polyfill";
2
+ import { URLPattern } from "urlpattern-polyfill";
3
3
  import { getLogger } from "@logtape/logtape";
4
4
  //#region src/compat/transformers.ts
5
5
  const logger = getLogger([
@@ -1,5 +1,5 @@
1
- import "@js-temporal/polyfill";
2
- import "urlpattern-polyfill";
1
+ import { Temporal } from "@js-temporal/polyfill";
2
+ import { URLPattern } from "urlpattern-polyfill";
3
3
  import { getLogger } from "@logtape/logtape";
4
4
  import { getUserAgent } from "@fedify/vocab-runtime";
5
5
  //#region src/nodeinfo/client.ts
@@ -5,9 +5,9 @@ import { t as esm_default } from "../esm-DVILvP5e.mjs";
5
5
  import { t as assertEquals } from "../assert_equals-Ew3jOFa3.mjs";
6
6
  import "../std__assert-Duiq_YC9.mjs";
7
7
  import { t as assertRejects } from "../assert_rejects-B-qJtC9Z.mjs";
8
- import { l as verifyRequest } from "../http-DRDpStn2.mjs";
8
+ import { l as verifyRequest } from "../http-sMWapA1W.mjs";
9
9
  import { i as rsaPrivateKey2 } from "../keys-BAK-tUlf.mjs";
10
- import { t as getAuthenticatedDocumentLoader } from "../docloader-CK8tewt1.mjs";
10
+ import { t as getAuthenticatedDocumentLoader } from "../docloader-SiTy_uEf.mjs";
11
11
  import { mockDocumentLoader, test } from "@fedify/fixture";
12
12
  import { UrlError } from "@fedify/vocab-runtime";
13
13
  //#region src/utils/docloader.test.ts
@@ -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-B01V7s3h.mjs";
4
+ import { n as kvCache, t as MockKvStore } from "../kv-cache-FsT1ljhs.mjs";
5
5
  import { mockDocumentLoader, test } from "@fedify/fixture";
6
6
  import { deepStrictEqual, throws } from "node:assert";
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-9cdQDeT0.cjs");
4
+ const require_kv_cache = require("../kv-cache-P8ilpPhX.cjs");
5
5
  exports.getAuthenticatedDocumentLoader = require_kv_cache.getAuthenticatedDocumentLoader;
6
6
  exports.kvCache = require_kv_cache.kvCache;
@@ -1,2 +1,3 @@
1
- import { n as getAuthenticatedDocumentLoader, t as kvCache } from "../mod-B505FZBC.cjs";
1
+ /// <reference lib="esnext.temporal" />
2
+ import { n as getAuthenticatedDocumentLoader, t as kvCache } from "../mod-dxOnKp2Y.cjs";
2
3
  export { getAuthenticatedDocumentLoader, kvCache };
@@ -1,4 +1,3 @@
1
- import { Temporal } from "@js-temporal/polyfill";
2
- import { URLPattern } from "urlpattern-polyfill";
3
- import { n as getAuthenticatedDocumentLoader, t as kvCache } from "../mod-D7PAuO6k.js";
1
+ /// <reference lib="esnext.temporal" />
2
+ import { n as getAuthenticatedDocumentLoader, t as kvCache } from "../mod-BTWFtZwa.js";
4
3
  export { getAuthenticatedDocumentLoader, kvCache };
package/dist/utils/mod.js CHANGED
@@ -1,4 +1,4 @@
1
- import "@js-temporal/polyfill";
2
- import "urlpattern-polyfill";
3
- import { n as getAuthenticatedDocumentLoader, t as kvCache } from "../kv-cache-DNNRFY8u.js";
1
+ import { Temporal } from "@js-temporal/polyfill";
2
+ import { URLPattern } from "urlpattern-polyfill";
3
+ import { n as getAuthenticatedDocumentLoader, t as kvCache } from "../kv-cache-DD4J1hjd.js";
4
4
  export { getAuthenticatedDocumentLoader, kvCache };
@@ -1 +1,2 @@
1
+ /// <reference lib="esnext.temporal" />
1
2
  export * from "@fedify/vocab";
@@ -1,3 +1,2 @@
1
- import { Temporal } from "@js-temporal/polyfill";
2
- import { URLPattern } from "urlpattern-polyfill";
1
+ /// <reference lib="esnext.temporal" />
3
2
  export * from "@fedify/vocab";
package/dist/vocab/mod.js CHANGED
@@ -1,3 +1,3 @@
1
- import "@js-temporal/polyfill";
2
- import "urlpattern-polyfill";
1
+ import { Temporal } from "@js-temporal/polyfill";
2
+ import { URLPattern } from "urlpattern-polyfill";
3
3
  export * from "@fedify/vocab";
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@fedify/fedify",
3
- "version": "2.1.12",
3
+ "version": "2.1.13",
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.1.12",
148
- "@fedify/webfinger": "2.1.12",
149
- "@fedify/vocab": "2.1.12"
147
+ "@fedify/vocab-runtime": "2.1.13",
148
+ "@fedify/vocab": "2.1.13",
149
+ "@fedify/webfinger": "2.1.13"
150
150
  },
151
151
  "devDependencies": {
152
152
  "@std/assert": "npm:@jsr/std__assert@^0.226.0",
@@ -156,10 +156,10 @@
156
156
  "miniflare": "^4.20250523.0",
157
157
  "tsdown": "^0.21.6",
158
158
  "tsx": "^4.19.4",
159
- "typescript": "^5.9.2",
159
+ "typescript": "^6.0.0",
160
160
  "wrangler": "^4.17.0",
161
161
  "@fedify/fixture": "2.0.0",
162
- "@fedify/vocab-tools": "^2.1.12"
162
+ "@fedify/vocab-tools": "^2.1.13"
163
163
  },
164
164
  "scripts": {
165
165
  "build:self": "tsdown",