@fedify/fedify 2.2.0-dev.606 → 2.2.0-dev.610

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 (53) hide show
  1. package/dist/{builder-CELIfoB4.js → builder-Bkqx5fo0.js} +3 -3
  2. package/dist/compat/transformers.test.js +11 -11
  3. package/dist/{deno-BOsDbqu7.js → deno-CMcbjYDs.js} +1 -1
  4. package/dist/{docloader-BcEPmNUR.js → docloader-ORTT1bPi.js} +4 -3
  5. package/dist/federation/builder.test.js +3 -3
  6. package/dist/federation/handler.test.js +11 -11
  7. package/dist/federation/idempotency.test.js +11 -11
  8. package/dist/federation/inbox.test.js +2 -2
  9. package/dist/federation/middleware.test.js +11 -11
  10. package/dist/federation/mod.cjs +4 -4
  11. package/dist/federation/mod.js +4 -4
  12. package/dist/federation/send.test.js +5 -5
  13. package/dist/federation/webfinger.test.js +11 -11
  14. package/dist/{http-BVFyeQBR.cjs → http-BDf1pBmE.cjs} +18 -6
  15. package/dist/{http-Cfw-SN_z.js → http-By9CCocC.js} +19 -6
  16. package/dist/{http-tl74Wmu6.js → http-DLQMXj_1.js} +18 -6
  17. package/dist/{inbox-Z8XmcoSP.js → inbox-CTJeEur6.js} +1 -1
  18. package/dist/{key-CZwef9_o.js → key-OaS_196P.js} +1 -1
  19. package/dist/{kv-cache-BHtrhC_A.js → kv-cache-COnBmjEC.js} +3 -2
  20. package/dist/{kv-cache-CeTLZBik.cjs → kv-cache-DG491NbS.cjs} +3 -2
  21. package/dist/{ld-BqCzzscX.js → ld-5udwE1JY.js} +2 -2
  22. package/dist/{middleware-Dw4qprvi.js → middleware-3FSu2a2W.js} +5 -5
  23. package/dist/{middleware-lJSoi8yV.js → middleware-BzcyJjau.js} +4 -4
  24. package/dist/{middleware-D0hhdxhW.cjs → middleware-CFuio6Y_.cjs} +5 -5
  25. package/dist/{middleware-C35-lW8-.js → middleware-DRWIaDqh.js} +10 -10
  26. package/dist/{middleware-DwgaVw-g.js → middleware-HlNnBIDX.js} +11 -11
  27. package/dist/middleware-i-8IYJwY.cjs +12 -0
  28. package/dist/{mod-Cs2dYEwI.d.ts → mod-DCbh1JQ5.d.ts} +1 -0
  29. package/dist/{mod-Bx9jcLB8.d.cts → mod-jfnweK2w.d.cts} +1 -0
  30. package/dist/mod.cjs +4 -4
  31. package/dist/mod.d.cts +1 -1
  32. package/dist/mod.d.ts +1 -1
  33. package/dist/mod.js +4 -4
  34. package/dist/nodeinfo/handler.test.js +11 -11
  35. package/dist/{owner-Bx4dZ83W.js → owner-DuRG_QYg.js} +1 -1
  36. package/dist/{proof-Fy5Gl4Ca.js → proof-DFffIwhK.js} +2 -2
  37. package/dist/{proof-CeR_dKsx.js → proof-DG0_Hm4d.js} +2 -2
  38. package/dist/{proof-BYXeAOLF.cjs → proof-WJjJMjvC.cjs} +2 -2
  39. package/dist/{send-CGZHxQYq.js → send-CJAMZwWu.js} +2 -2
  40. package/dist/sig/http.test.js +66 -3
  41. package/dist/sig/key.test.js +2 -2
  42. package/dist/sig/ld.test.js +3 -3
  43. package/dist/sig/mod.cjs +2 -2
  44. package/dist/sig/mod.js +2 -2
  45. package/dist/sig/owner.test.js +3 -3
  46. package/dist/sig/proof.test.js +3 -3
  47. package/dist/utils/docloader.test.js +20 -4
  48. package/dist/utils/mod.cjs +2 -2
  49. package/dist/utils/mod.d.cts +1 -1
  50. package/dist/utils/mod.d.ts +1 -1
  51. package/dist/utils/mod.js +2 -2
  52. package/package.json +5 -5
  53. package/dist/middleware-BdQCsXP6.cjs +0 -12
@@ -3,10 +3,10 @@
3
3
  import { URLPattern } from "urlpattern-polyfill";
4
4
 
5
5
  import { getDefaultActivityTransformers } from "./transformers-C3FLHUd6.js";
6
- import { deno_default, doubleKnock, exportJwk, formatAcceptSignature, importJwk, parseRfc9421SignatureInput, validateCryptoKey, verifyRequest, verifyRequestDetailed } from "./http-tl74Wmu6.js";
7
- import { detachSignature, doesActorOwnKey, getKeyOwner, hasSignature, signJsonLd, signObject, verifyJsonLd, verifyObject } from "./proof-CeR_dKsx.js";
6
+ import { deno_default, doubleKnock, exportJwk, formatAcceptSignature, importJwk, parseRfc9421SignatureInput, validateCryptoKey, verifyRequest, verifyRequestDetailed } from "./http-DLQMXj_1.js";
7
+ import { detachSignature, doesActorOwnKey, getKeyOwner, hasSignature, signJsonLd, signObject, verifyJsonLd, verifyObject } from "./proof-DG0_Hm4d.js";
8
8
  import { getNodeInfo, nodeInfoToJson } from "./types-C93Ob9cU.js";
9
- import { getAuthenticatedDocumentLoader, kvCache } from "./kv-cache-BHtrhC_A.js";
9
+ import { getAuthenticatedDocumentLoader, kvCache } from "./kv-cache-COnBmjEC.js";
10
10
  import { getLogger, withContext } from "@logtape/logtape";
11
11
  import { Activity, Collection, CollectionPage, CryptographicKey, Link, Multikey, Object as Object$1, OrderedCollection, OrderedCollectionPage, getTypeId, lookupObject, traverseCollection } from "@fedify/vocab";
12
12
  import { SpanKind, SpanStatusCode, context, propagation, trace } from "@opentelemetry/api";
@@ -14,8 +14,8 @@ import { cloneDeep, uniq } from "es-toolkit";
14
14
  import { Router } from "uri-template-router";
15
15
  import { parseTemplate } from "url-template";
16
16
  import { encodeHex } from "byte-encodings/hex";
17
- import { ATTR_HTTP_REQUEST_HEADER, ATTR_HTTP_REQUEST_METHOD, ATTR_HTTP_RESPONSE_HEADER, ATTR_HTTP_RESPONSE_STATUS_CODE, ATTR_URL_FULL } from "@opentelemetry/semantic-conventions";
18
17
  import { FetchError, getDocumentLoader } from "@fedify/vocab-runtime";
18
+ import { ATTR_HTTP_REQUEST_HEADER, ATTR_HTTP_REQUEST_METHOD, ATTR_HTTP_RESPONSE_HEADER, ATTR_HTTP_RESPONSE_STATUS_CODE, ATTR_URL_FULL } from "@opentelemetry/semantic-conventions";
19
19
  import { lookupWebFinger } from "@fedify/webfinger";
20
20
  import { domainToASCII } from "node:url";
21
21
 
@@ -339,7 +339,7 @@ var FederationBuilderImpl = class {
339
339
  this.collectionTypeIds = {};
340
340
  }
341
341
  async build(options) {
342
- const { FederationImpl: FederationImpl$1 } = await import("./middleware-lJSoi8yV.js");
342
+ const { FederationImpl: FederationImpl$1 } = await import("./middleware-BzcyJjau.js");
343
343
  const f = new FederationImpl$1(options);
344
344
  const trailingSlashInsensitiveValue = f.router.trailingSlashInsensitive;
345
345
  f.router = this.router.clone();
@@ -3,10 +3,10 @@
3
3
  import { URLPattern } from "urlpattern-polyfill";
4
4
 
5
5
  import "./transformers-C3FLHUd6.js";
6
- import "./http-tl74Wmu6.js";
7
- import { ContextImpl, FederationImpl, InboxContextImpl, KvSpecDeterminer, createFederation } from "./middleware-Dw4qprvi.js";
8
- import "./proof-CeR_dKsx.js";
6
+ import "./http-DLQMXj_1.js";
7
+ import { ContextImpl, FederationImpl, InboxContextImpl, KvSpecDeterminer, createFederation } from "./middleware-3FSu2a2W.js";
8
+ import "./proof-DG0_Hm4d.js";
9
9
  import "./types-C93Ob9cU.js";
10
- import "./kv-cache-BHtrhC_A.js";
10
+ import "./kv-cache-COnBmjEC.js";
11
11
 
12
12
  export { FederationImpl };
@@ -4,10 +4,10 @@
4
4
 
5
5
  const require_chunk = require('./chunk-CGaQZ11T.cjs');
6
6
  const require_transformers = require('./transformers-3g8GZwkZ.cjs');
7
- const require_http = require('./http-BVFyeQBR.cjs');
8
- const require_proof = require('./proof-BYXeAOLF.cjs');
7
+ const require_http = require('./http-BDf1pBmE.cjs');
8
+ const require_proof = require('./proof-WJjJMjvC.cjs');
9
9
  const require_types = require('./types-Cd_hszr_.cjs');
10
- const require_kv_cache = require('./kv-cache-CeTLZBik.cjs');
10
+ const require_kv_cache = require('./kv-cache-DG491NbS.cjs');
11
11
  const __logtape_logtape = require_chunk.__toESM(require("@logtape/logtape"));
12
12
  const __fedify_vocab = require_chunk.__toESM(require("@fedify/vocab"));
13
13
  const __opentelemetry_api = require_chunk.__toESM(require("@opentelemetry/api"));
@@ -15,8 +15,8 @@ const es_toolkit = require_chunk.__toESM(require("es-toolkit"));
15
15
  const uri_template_router = require_chunk.__toESM(require("uri-template-router"));
16
16
  const url_template = require_chunk.__toESM(require("url-template"));
17
17
  const byte_encodings_hex = require_chunk.__toESM(require("byte-encodings/hex"));
18
- const __opentelemetry_semantic_conventions = require_chunk.__toESM(require("@opentelemetry/semantic-conventions"));
19
18
  const __fedify_vocab_runtime = require_chunk.__toESM(require("@fedify/vocab-runtime"));
19
+ const __opentelemetry_semantic_conventions = require_chunk.__toESM(require("@opentelemetry/semantic-conventions"));
20
20
  const __fedify_webfinger = require_chunk.__toESM(require("@fedify/webfinger"));
21
21
  const node_url = require_chunk.__toESM(require("node:url"));
22
22
 
@@ -340,7 +340,7 @@ var FederationBuilderImpl = class {
340
340
  this.collectionTypeIds = {};
341
341
  }
342
342
  async build(options) {
343
- const { FederationImpl: FederationImpl$1 } = await Promise.resolve().then(() => require("./middleware-BdQCsXP6.cjs"));
343
+ const { FederationImpl: FederationImpl$1 } = await Promise.resolve().then(() => require("./middleware-i-8IYJwY.cjs"));
344
344
  const f = new FederationImpl$1(options);
345
345
  const trailingSlashInsensitiveValue = f.router.trailingSlashInsensitive;
346
346
  f.router = this.router.clone();
@@ -3,25 +3,25 @@
3
3
  import { URLPattern } from "urlpattern-polyfill";
4
4
  globalThis.addEventListener = () => {};
5
5
 
6
- import { deno_default } from "./deno-BOsDbqu7.js";
6
+ import { deno_default } from "./deno-CMcbjYDs.js";
7
7
  import { getNodeInfo } from "./client-CoCIaTNO.js";
8
8
  import { RouterError } from "./router-D9eI0s4b.js";
9
9
  import { nodeInfoToJson } from "./types-CPz01LGH.js";
10
10
  import { formatAcceptSignature } from "./accept-D7sAxyNa.js";
11
- import { exportJwk, importJwk, validateCryptoKey } from "./key-CZwef9_o.js";
12
- import { parseRfc9421SignatureInput, verifyRequest, verifyRequestDetailed } from "./http-Cfw-SN_z.js";
13
- import { detachSignature, hasSignature, signJsonLd, verifyJsonLd } from "./ld-BqCzzscX.js";
14
- import { doesActorOwnKey, getKeyOwner } from "./owner-Bx4dZ83W.js";
15
- import { signObject, verifyObject } from "./proof-Fy5Gl4Ca.js";
16
- import { getAuthenticatedDocumentLoader } from "./docloader-BcEPmNUR.js";
11
+ import { exportJwk, importJwk, validateCryptoKey } from "./key-OaS_196P.js";
12
+ import { parseRfc9421SignatureInput, verifyRequest, verifyRequestDetailed } from "./http-By9CCocC.js";
13
+ import { detachSignature, hasSignature, signJsonLd, verifyJsonLd } from "./ld-5udwE1JY.js";
14
+ import { doesActorOwnKey, getKeyOwner } from "./owner-DuRG_QYg.js";
15
+ import { signObject, verifyObject } from "./proof-DFffIwhK.js";
16
+ import { getAuthenticatedDocumentLoader } from "./docloader-ORTT1bPi.js";
17
17
  import { kvCache } from "./kv-cache-Bw2F2ABq.js";
18
- import { routeActivity } from "./inbox-Z8XmcoSP.js";
19
- import { FederationBuilderImpl } from "./builder-CELIfoB4.js";
18
+ import { routeActivity } from "./inbox-CTJeEur6.js";
19
+ import { FederationBuilderImpl } from "./builder-Bkqx5fo0.js";
20
20
  import { buildCollectionSynchronizationHeader } from "./collection-CSzG2j1P.js";
21
21
  import { KvKeyCache } from "./keycache-CpGWAUbj.js";
22
22
  import { acceptsJsonLd } from "./negotiation-BlAuS_nr.js";
23
23
  import { createExponentialBackoffPolicy } from "./retry-mqLf4b-R.js";
24
- import { SendActivityError, extractInboxes, sendActivity } from "./send-CGZHxQYq.js";
24
+ import { SendActivityError, extractInboxes, sendActivity } from "./send-CJAMZwWu.js";
25
25
  import { Activity, Collection, CollectionPage, CryptographicKey, Link, Multikey, Object as Object$1, OrderedCollection, OrderedCollectionPage, getTypeId, lookupObject, traverseCollection } from "@fedify/vocab";
26
26
  import { uniq } from "es-toolkit";
27
27
  import { FetchError, getDocumentLoader } from "@fedify/vocab-runtime";
@@ -3,25 +3,25 @@
3
3
  import { URLPattern } from "urlpattern-polyfill";
4
4
  globalThis.addEventListener = () => {};
5
5
 
6
- import "./deno-BOsDbqu7.js";
7
- import { ContextImpl, FederationImpl, InboxContextImpl, KvSpecDeterminer, createFederation } from "./middleware-C35-lW8-.js";
6
+ import "./deno-CMcbjYDs.js";
7
+ import { ContextImpl, FederationImpl, InboxContextImpl, KvSpecDeterminer, createFederation } from "./middleware-DRWIaDqh.js";
8
8
  import "./client-CoCIaTNO.js";
9
9
  import "./router-D9eI0s4b.js";
10
10
  import "./types-CPz01LGH.js";
11
11
  import "./accept-D7sAxyNa.js";
12
- import "./key-CZwef9_o.js";
13
- import "./http-Cfw-SN_z.js";
14
- import "./ld-BqCzzscX.js";
15
- import "./owner-Bx4dZ83W.js";
16
- import "./proof-Fy5Gl4Ca.js";
17
- import "./docloader-BcEPmNUR.js";
12
+ import "./key-OaS_196P.js";
13
+ import "./http-By9CCocC.js";
14
+ import "./ld-5udwE1JY.js";
15
+ import "./owner-DuRG_QYg.js";
16
+ import "./proof-DFffIwhK.js";
17
+ import "./docloader-ORTT1bPi.js";
18
18
  import "./kv-cache-Bw2F2ABq.js";
19
- import "./inbox-Z8XmcoSP.js";
20
- import "./builder-CELIfoB4.js";
19
+ import "./inbox-CTJeEur6.js";
20
+ import "./builder-Bkqx5fo0.js";
21
21
  import "./collection-CSzG2j1P.js";
22
22
  import "./keycache-CpGWAUbj.js";
23
23
  import "./negotiation-BlAuS_nr.js";
24
24
  import "./retry-mqLf4b-R.js";
25
- import "./send-CGZHxQYq.js";
25
+ import "./send-CJAMZwWu.js";
26
26
 
27
27
  export { FederationImpl };
@@ -0,0 +1,12 @@
1
+
2
+ const { Temporal } = require("@js-temporal/polyfill");
3
+ const { URLPattern } = require("urlpattern-polyfill");
4
+
5
+ require('./transformers-3g8GZwkZ.cjs');
6
+ require('./http-BDf1pBmE.cjs');
7
+ const require_middleware = require('./middleware-CFuio6Y_.cjs');
8
+ require('./proof-WJjJMjvC.cjs');
9
+ require('./types-Cd_hszr_.cjs');
10
+ require('./kv-cache-DG491NbS.cjs');
11
+
12
+ exports.FederationImpl = require_middleware.FederationImpl;
@@ -43,6 +43,7 @@ declare function getAuthenticatedDocumentLoader(identity: {
43
43
  privateKey: CryptoKey;
44
44
  }, {
45
45
  allowPrivateAddress,
46
+ maxRedirection,
46
47
  userAgent,
47
48
  specDeterminer,
48
49
  tracerProvider
@@ -41,6 +41,7 @@ declare function getAuthenticatedDocumentLoader(identity: {
41
41
  privateKey: CryptoKey;
42
42
  }, {
43
43
  allowPrivateAddress,
44
+ maxRedirection,
44
45
  userAgent,
45
46
  specDeterminer,
46
47
  tracerProvider
package/dist/mod.cjs CHANGED
@@ -5,12 +5,12 @@
5
5
  const require_chunk = require('./chunk-CGaQZ11T.cjs');
6
6
  const require_transformers = require('./transformers-3g8GZwkZ.cjs');
7
7
  require('./compat-DmDDELst.cjs');
8
- const require_http = require('./http-BVFyeQBR.cjs');
9
- const require_middleware = require('./middleware-D0hhdxhW.cjs');
10
- const require_proof = require('./proof-BYXeAOLF.cjs');
8
+ const require_http = require('./http-BDf1pBmE.cjs');
9
+ const require_middleware = require('./middleware-CFuio6Y_.cjs');
10
+ const require_proof = require('./proof-WJjJMjvC.cjs');
11
11
  const require_federation = require('./federation-Bp3HI26G.cjs');
12
12
  const require_types = require('./types-Cd_hszr_.cjs');
13
- const require_kv_cache = require('./kv-cache-CeTLZBik.cjs');
13
+ const require_kv_cache = require('./kv-cache-DG491NbS.cjs');
14
14
  require('./nodeinfo-DuMYTpbZ.cjs');
15
15
  const require_runtime = require('./runtime-c2Njxsry.cjs');
16
16
  require('./sig-vX39WyWI.cjs');
package/dist/mod.d.cts CHANGED
@@ -8,7 +8,7 @@ import { actorDehydrator, autoIdAssigner, getDefaultActivityTransformers } from
8
8
  import { WebFingerHandlerParameters, handleWebFinger } from "./mod-em2Il1eD.cjs";
9
9
  import "./mod-gq_Xfdz8.cjs";
10
10
  import { CreateProofOptions, CreateSignatureOptions, SignJsonLdOptions, SignObjectOptions, VerifyJsonLdOptions, VerifyObjectOptions, VerifyProofOptions, VerifySignatureOptions, attachSignature, createProof, createSignature, detachSignature, signJsonLd, signObject, verifyJsonLd, verifyObject, verifyProof, verifySignature } from "./mod-Coe7KEgX.cjs";
11
- import { getAuthenticatedDocumentLoader, kvCache } from "./mod-Bx9jcLB8.cjs";
11
+ import { getAuthenticatedDocumentLoader, kvCache } from "./mod-jfnweK2w.cjs";
12
12
 
13
13
  //#region src/mod.d.ts
14
14
  declare namespace mod_d_exports$1 {
package/dist/mod.d.ts CHANGED
@@ -11,7 +11,7 @@ import { WebFingerHandlerParameters, handleWebFinger } from "./mod-D6MdymW7.js";
11
11
  import "./mod-AGjRfPjT.js";
12
12
  import { mod_d_exports } from "./mod-D6HodEq7.js";
13
13
  import { CreateProofOptions, CreateSignatureOptions, SignJsonLdOptions, SignObjectOptions, VerifyJsonLdOptions, VerifyObjectOptions, VerifyProofOptions, VerifySignatureOptions, attachSignature, createProof, createSignature, detachSignature, signJsonLd, signObject, verifyJsonLd, verifyObject, verifyProof, verifySignature } from "./mod-D6dOd--H.js";
14
- import { getAuthenticatedDocumentLoader, kvCache } from "./mod-Cs2dYEwI.js";
14
+ import { getAuthenticatedDocumentLoader, kvCache } from "./mod-DCbh1JQ5.js";
15
15
 
16
16
  //#region src/mod.d.ts
17
17
  declare namespace mod_d_exports$1 {
package/dist/mod.js CHANGED
@@ -5,12 +5,12 @@
5
5
  import { __export, __reExport } from "./chunk-DJNbSFdH.js";
6
6
  import { actorDehydrator, autoIdAssigner, getDefaultActivityTransformers } from "./transformers-C3FLHUd6.js";
7
7
  import "./compat-Bb4NuTUO.js";
8
- import { exportJwk, fetchKey, fetchKeyDetailed, formatAcceptSignature, fulfillAcceptSignature, generateCryptoKeyPair, importJwk, parseAcceptSignature, signRequest, validateAcceptSignature, verifyRequest, verifyRequestDetailed } from "./http-tl74Wmu6.js";
9
- import { Router, RouterError, SendActivityError, buildCollectionSynchronizationHeader, createExponentialBackoffPolicy, createFederation, createFederationBuilder, digest, handleWebFinger, respondWithObject, respondWithObjectIfAcceptable } from "./middleware-Dw4qprvi.js";
10
- import { attachSignature, createProof, createSignature, detachSignature, doesActorOwnKey, getKeyOwner, signJsonLd, signObject, verifyJsonLd, verifyObject, verifyProof, verifySignature } from "./proof-CeR_dKsx.js";
8
+ import { exportJwk, fetchKey, fetchKeyDetailed, formatAcceptSignature, fulfillAcceptSignature, generateCryptoKeyPair, importJwk, parseAcceptSignature, signRequest, validateAcceptSignature, verifyRequest, verifyRequestDetailed } from "./http-DLQMXj_1.js";
9
+ import { Router, RouterError, SendActivityError, buildCollectionSynchronizationHeader, createExponentialBackoffPolicy, createFederation, createFederationBuilder, digest, handleWebFinger, respondWithObject, respondWithObjectIfAcceptable } from "./middleware-3FSu2a2W.js";
10
+ import { attachSignature, createProof, createSignature, detachSignature, doesActorOwnKey, getKeyOwner, signJsonLd, signObject, verifyJsonLd, verifyObject, verifyProof, verifySignature } from "./proof-DG0_Hm4d.js";
11
11
  import { InProcessMessageQueue, MemoryKvStore, ParallelMessageQueue } from "./federation-DaMfqRm4.js";
12
12
  import { getNodeInfo, nodeInfoToJson, parseNodeInfo } from "./types-C93Ob9cU.js";
13
- import { getAuthenticatedDocumentLoader, kvCache } from "./kv-cache-BHtrhC_A.js";
13
+ import { getAuthenticatedDocumentLoader, kvCache } from "./kv-cache-COnBmjEC.js";
14
14
  import "./nodeinfo-DoESQxq5.js";
15
15
  import { runtime_exports } from "./runtime-poamPCMb.js";
16
16
  import "./sig-BNhspNOf.js";
@@ -7,26 +7,26 @@ import { assertEquals } from "../assert_equals-DSbWqCm3.js";
7
7
  import "../assert-MZs1qjMx.js";
8
8
  import "../assert_instance_of-DHz7EHNU.js";
9
9
  import { MemoryKvStore } from "../kv-QzKcOQgP.js";
10
- import "../deno-BOsDbqu7.js";
11
- import { createFederation, handleNodeInfo, handleNodeInfoJrd } from "../middleware-C35-lW8-.js";
10
+ import "../deno-CMcbjYDs.js";
11
+ import { createFederation, handleNodeInfo, handleNodeInfoJrd } from "../middleware-DRWIaDqh.js";
12
12
  import "../client-CoCIaTNO.js";
13
13
  import "../router-D9eI0s4b.js";
14
14
  import "../types-CPz01LGH.js";
15
15
  import "../accept-D7sAxyNa.js";
16
- import "../key-CZwef9_o.js";
17
- import "../http-Cfw-SN_z.js";
18
- import "../ld-BqCzzscX.js";
19
- import "../owner-Bx4dZ83W.js";
20
- import "../proof-Fy5Gl4Ca.js";
21
- import "../docloader-BcEPmNUR.js";
16
+ import "../key-OaS_196P.js";
17
+ import "../http-By9CCocC.js";
18
+ import "../ld-5udwE1JY.js";
19
+ import "../owner-DuRG_QYg.js";
20
+ import "../proof-DFffIwhK.js";
21
+ import "../docloader-ORTT1bPi.js";
22
22
  import "../kv-cache-Bw2F2ABq.js";
23
- import "../inbox-Z8XmcoSP.js";
24
- import "../builder-CELIfoB4.js";
23
+ import "../inbox-CTJeEur6.js";
24
+ import "../builder-Bkqx5fo0.js";
25
25
  import "../collection-CSzG2j1P.js";
26
26
  import "../keycache-CpGWAUbj.js";
27
27
  import "../negotiation-BlAuS_nr.js";
28
28
  import "../retry-mqLf4b-R.js";
29
- import "../send-CGZHxQYq.js";
29
+ import "../send-CJAMZwWu.js";
30
30
  import "../std__assert-X-_kMxKM.js";
31
31
  import "../assert_rejects-0h7I2Esa.js";
32
32
  import "../assert_throws-rjdMBf31.js";
@@ -3,7 +3,7 @@
3
3
  import { URLPattern } from "urlpattern-polyfill";
4
4
  globalThis.addEventListener = () => {};
5
5
 
6
- import { deno_default } from "./deno-BOsDbqu7.js";
6
+ import { deno_default } from "./deno-CMcbjYDs.js";
7
7
  import { CryptographicKey, Object as Object$1, isActor } from "@fedify/vocab";
8
8
  import { getDocumentLoader } from "@fedify/vocab-runtime";
9
9
  import { SpanKind, SpanStatusCode, trace } from "@opentelemetry/api";
@@ -3,8 +3,8 @@
3
3
  import { URLPattern } from "urlpattern-polyfill";
4
4
  globalThis.addEventListener = () => {};
5
5
 
6
- import { deno_default } from "./deno-BOsDbqu7.js";
7
- import { fetchKey, validateCryptoKey } from "./key-CZwef9_o.js";
6
+ import { deno_default } from "./deno-CMcbjYDs.js";
7
+ import { fetchKey, validateCryptoKey } from "./key-OaS_196P.js";
8
8
  import { Activity, DataIntegrityProof, Multikey, getTypeId } from "@fedify/vocab";
9
9
  import { getLogger } from "@logtape/logtape";
10
10
  import { SpanStatusCode, trace } from "@opentelemetry/api";
@@ -2,13 +2,13 @@
2
2
  import { Temporal } from "@js-temporal/polyfill";
3
3
  import { URLPattern } from "urlpattern-polyfill";
4
4
 
5
- import { deno_default, fetchKey, validateCryptoKey } from "./http-tl74Wmu6.js";
5
+ import { deno_default, fetchKey, validateCryptoKey } from "./http-DLQMXj_1.js";
6
6
  import { getLogger } from "@logtape/logtape";
7
7
  import { Activity, CryptographicKey, DataIntegrityProof, Multikey, Object as Object$1, getTypeId, isActor } from "@fedify/vocab";
8
8
  import { SpanKind, SpanStatusCode, trace } from "@opentelemetry/api";
9
9
  import { encodeHex } from "byte-encodings/hex";
10
- import { decodeBase64, encodeBase64 } from "byte-encodings/base64";
11
10
  import { getDocumentLoader } from "@fedify/vocab-runtime";
11
+ import { decodeBase64, encodeBase64 } from "byte-encodings/base64";
12
12
  import jsonld from "@fedify/vocab-runtime/jsonld";
13
13
  import serialize from "json-canon";
14
14
 
@@ -3,13 +3,13 @@
3
3
  const { URLPattern } = require("urlpattern-polyfill");
4
4
 
5
5
  const require_chunk = require('./chunk-CGaQZ11T.cjs');
6
- const require_http = require('./http-BVFyeQBR.cjs');
6
+ const require_http = require('./http-BDf1pBmE.cjs');
7
7
  const __logtape_logtape = require_chunk.__toESM(require("@logtape/logtape"));
8
8
  const __fedify_vocab = require_chunk.__toESM(require("@fedify/vocab"));
9
9
  const __opentelemetry_api = require_chunk.__toESM(require("@opentelemetry/api"));
10
10
  const byte_encodings_hex = require_chunk.__toESM(require("byte-encodings/hex"));
11
- const byte_encodings_base64 = require_chunk.__toESM(require("byte-encodings/base64"));
12
11
  const __fedify_vocab_runtime = require_chunk.__toESM(require("@fedify/vocab-runtime"));
12
+ const byte_encodings_base64 = require_chunk.__toESM(require("byte-encodings/base64"));
13
13
  const __fedify_vocab_runtime_jsonld = require_chunk.__toESM(require("@fedify/vocab-runtime/jsonld"));
14
14
  const json_canon = require_chunk.__toESM(require("json-canon"));
15
15
 
@@ -3,8 +3,8 @@
3
3
  import { URLPattern } from "urlpattern-polyfill";
4
4
  globalThis.addEventListener = () => {};
5
5
 
6
- import { deno_default } from "./deno-BOsDbqu7.js";
7
- import { doubleKnock } from "./http-Cfw-SN_z.js";
6
+ import { deno_default } from "./deno-CMcbjYDs.js";
7
+ import { doubleKnock } from "./http-By9CCocC.js";
8
8
  import { getLogger } from "@logtape/logtape";
9
9
  import { SpanKind, SpanStatusCode, trace } from "@opentelemetry/api";
10
10
 
@@ -7,10 +7,10 @@ import { esm_default } from "../esm-nLm00z9V.js";
7
7
  import { assertEquals } from "../assert_equals-DSbWqCm3.js";
8
8
  import { assert } from "../assert-MZs1qjMx.js";
9
9
  import "../assert_instance_of-DHz7EHNU.js";
10
- import "../deno-BOsDbqu7.js";
10
+ import "../deno-CMcbjYDs.js";
11
11
  import "../accept-D7sAxyNa.js";
12
- import { exportJwk } from "../key-CZwef9_o.js";
13
- import { createRfc9421SignatureBase, doubleKnock, formatRfc9421Signature, formatRfc9421SignatureParameters, parseRfc9421Signature, parseRfc9421SignatureInput, signRequest, timingSafeEqual, verifyRequest, verifyRequestDetailed } from "../http-Cfw-SN_z.js";
12
+ import { exportJwk } from "../key-OaS_196P.js";
13
+ import { createRfc9421SignatureBase, doubleKnock, formatRfc9421Signature, formatRfc9421SignatureParameters, parseRfc9421Signature, parseRfc9421SignatureInput, signRequest, timingSafeEqual, verifyRequest, verifyRequestDetailed } from "../http-By9CCocC.js";
14
14
  import { assertExists, assertStringIncludes } from "../std__assert-X-_kMxKM.js";
15
15
  import { assertFalse, assertRejects } from "../assert_rejects-0h7I2Esa.js";
16
16
  import { assertThrows } from "../assert_throws-rjdMBf31.js";
@@ -981,6 +981,69 @@ test("doubleKnock() complex redirect chain test", async () => {
981
981
  for (const loggedReq of logs) assert(loggedReq.headers.has("Signature-Input") || loggedReq.headers.has("Signature"), "Each request should be signed with either RFC 9421 or draft-cavage");
982
982
  esm_default.hardReset();
983
983
  });
984
+ test("doubleKnock() throws on too many redirects", async () => {
985
+ esm_default.spyGlobal();
986
+ let requestCount = 0;
987
+ esm_default.post("begin:https://example.com/too-many-redirects/", (cl) => {
988
+ requestCount++;
989
+ const index = Number(cl.url.split("/").at(-1));
990
+ return Response.redirect(`https://example.com/too-many-redirects/${index + 1}`, 302);
991
+ });
992
+ const request = new Request("https://example.com/too-many-redirects/0", {
993
+ method: "POST",
994
+ body: "Redirect loop",
995
+ headers: { "Content-Type": "text/plain" }
996
+ });
997
+ await assertRejects(() => doubleKnock(request, {
998
+ keyId: rsaPublicKey2.id,
999
+ privateKey: rsaPrivateKey2
1000
+ }), Error, "Too many redirections");
1001
+ assertEquals(requestCount, 21);
1002
+ esm_default.hardReset();
1003
+ });
1004
+ test("doubleKnock() respects maxRedirection option", async () => {
1005
+ esm_default.spyGlobal();
1006
+ let requestCount = 0;
1007
+ esm_default.post("begin:https://example.com/custom-too-many-redirects/", (cl) => {
1008
+ requestCount++;
1009
+ const index = Number(cl.url.split("/").at(-1));
1010
+ return Response.redirect(`https://example.com/custom-too-many-redirects/${index + 1}`, 302);
1011
+ });
1012
+ const request = new Request("https://example.com/custom-too-many-redirects/0", {
1013
+ method: "POST",
1014
+ body: "Redirect loop",
1015
+ headers: { "Content-Type": "text/plain" }
1016
+ });
1017
+ await assertRejects(() => doubleKnock(request, {
1018
+ keyId: rsaPublicKey2.id,
1019
+ privateKey: rsaPrivateKey2
1020
+ }, { maxRedirection: 1 }), Error, "Too many redirections");
1021
+ assertEquals(requestCount, 2);
1022
+ esm_default.hardReset();
1023
+ });
1024
+ test("doubleKnock() detects redirect loops", async () => {
1025
+ esm_default.spyGlobal();
1026
+ let requestCount = 0;
1027
+ esm_default.post("https://example.com/redirect-loop-a", () => {
1028
+ requestCount++;
1029
+ return Response.redirect("https://example.com/redirect-loop-b", 302);
1030
+ });
1031
+ esm_default.post("https://example.com/redirect-loop-b", () => {
1032
+ requestCount++;
1033
+ return Response.redirect("https://example.com/redirect-loop-a", 302);
1034
+ });
1035
+ const request = new Request("https://example.com/redirect-loop-a", {
1036
+ method: "POST",
1037
+ body: "Redirect loop",
1038
+ headers: { "Content-Type": "text/plain" }
1039
+ });
1040
+ await assertRejects(() => doubleKnock(request, {
1041
+ keyId: rsaPublicKey2.id,
1042
+ privateKey: rsaPrivateKey2
1043
+ }), Error, "Redirect loop detected");
1044
+ assertEquals(requestCount, 2);
1045
+ esm_default.hardReset();
1046
+ });
984
1047
  test("doubleKnock() async specDeterminer test", async () => {
985
1048
  esm_default.spyGlobal();
986
1049
  let requestCount = 0;
@@ -6,8 +6,8 @@
6
6
  import { assertEquals } from "../assert_equals-DSbWqCm3.js";
7
7
  import "../assert-MZs1qjMx.js";
8
8
  import "../assert_instance_of-DHz7EHNU.js";
9
- import "../deno-BOsDbqu7.js";
10
- import { exportJwk, fetchKey, fetchKeyDetailed, generateCryptoKeyPair, importJwk, validateCryptoKey } from "../key-CZwef9_o.js";
9
+ import "../deno-CMcbjYDs.js";
10
+ import { exportJwk, fetchKey, fetchKeyDetailed, generateCryptoKeyPair, importJwk, validateCryptoKey } from "../key-OaS_196P.js";
11
11
  import "../std__assert-X-_kMxKM.js";
12
12
  import { assertRejects } from "../assert_rejects-0h7I2Esa.js";
13
13
  import { assertThrows } from "../assert_throws-rjdMBf31.js";
@@ -5,9 +5,9 @@
5
5
 
6
6
  import { assertEquals } from "../assert_equals-DSbWqCm3.js";
7
7
  import { assert } from "../assert-MZs1qjMx.js";
8
- import "../deno-BOsDbqu7.js";
9
- import { generateCryptoKeyPair } from "../key-CZwef9_o.js";
10
- import { attachSignature, createSignature, detachSignature, signJsonLd, verifyJsonLd, verifySignature } from "../ld-BqCzzscX.js";
8
+ import "../deno-CMcbjYDs.js";
9
+ import { generateCryptoKeyPair } from "../key-OaS_196P.js";
10
+ import { attachSignature, createSignature, detachSignature, signJsonLd, verifyJsonLd, verifySignature } from "../ld-5udwE1JY.js";
11
11
  import { assertFalse, assertRejects } from "../assert_rejects-0h7I2Esa.js";
12
12
  import { assertThrows } from "../assert_throws-rjdMBf31.js";
13
13
  import { ed25519Multikey, ed25519PrivateKey, rsaPrivateKey2, rsaPrivateKey3, rsaPublicKey2, rsaPublicKey3 } from "../keys-BFve7QQv.js";
package/dist/sig/mod.cjs CHANGED
@@ -2,8 +2,8 @@
2
2
  const { Temporal } = require("@js-temporal/polyfill");
3
3
  const { URLPattern } = require("urlpattern-polyfill");
4
4
 
5
- const require_http = require('../http-BVFyeQBR.cjs');
6
- const require_proof = require('../proof-BYXeAOLF.cjs');
5
+ const require_http = require('../http-BDf1pBmE.cjs');
6
+ const require_proof = require('../proof-WJjJMjvC.cjs');
7
7
  require('../sig-vX39WyWI.cjs');
8
8
 
9
9
  exports.attachSignature = require_proof.attachSignature;
package/dist/sig/mod.js CHANGED
@@ -2,8 +2,8 @@
2
2
  import { Temporal } from "@js-temporal/polyfill";
3
3
  import { URLPattern } from "urlpattern-polyfill";
4
4
 
5
- import { exportJwk, fetchKey, fetchKeyDetailed, formatAcceptSignature, fulfillAcceptSignature, generateCryptoKeyPair, importJwk, parseAcceptSignature, signRequest, validateAcceptSignature, verifyRequest, verifyRequestDetailed } from "../http-tl74Wmu6.js";
6
- import { attachSignature, createProof, createSignature, detachSignature, doesActorOwnKey, getKeyOwner, signJsonLd, signObject, verifyJsonLd, verifyObject, verifyProof, verifySignature } from "../proof-CeR_dKsx.js";
5
+ import { exportJwk, fetchKey, fetchKeyDetailed, formatAcceptSignature, fulfillAcceptSignature, generateCryptoKeyPair, importJwk, parseAcceptSignature, signRequest, validateAcceptSignature, verifyRequest, verifyRequestDetailed } from "../http-DLQMXj_1.js";
6
+ import { attachSignature, createProof, createSignature, detachSignature, doesActorOwnKey, getKeyOwner, signJsonLd, signObject, verifyJsonLd, verifyObject, verifyProof, verifySignature } from "../proof-DG0_Hm4d.js";
7
7
  import "../sig-BNhspNOf.js";
8
8
 
9
9
  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,9 +6,9 @@
6
6
  import { assertEquals } from "../assert_equals-DSbWqCm3.js";
7
7
  import { assert } from "../assert-MZs1qjMx.js";
8
8
  import "../assert_instance_of-DHz7EHNU.js";
9
- import "../deno-BOsDbqu7.js";
10
- import "../key-CZwef9_o.js";
11
- import { doesActorOwnKey, getKeyOwner } from "../owner-Bx4dZ83W.js";
9
+ import "../deno-CMcbjYDs.js";
10
+ import "../key-OaS_196P.js";
11
+ import { doesActorOwnKey, getKeyOwner } from "../owner-DuRG_QYg.js";
12
12
  import "../std__assert-X-_kMxKM.js";
13
13
  import { assertFalse } from "../assert_rejects-0h7I2Esa.js";
14
14
  import "../assert_throws-rjdMBf31.js";
@@ -6,9 +6,9 @@
6
6
  import { assertEquals } from "../assert_equals-DSbWqCm3.js";
7
7
  import "../assert-MZs1qjMx.js";
8
8
  import { assertInstanceOf } from "../assert_instance_of-DHz7EHNU.js";
9
- import "../deno-BOsDbqu7.js";
10
- import "../key-CZwef9_o.js";
11
- import { createProof, signObject, verifyObject, verifyProof } from "../proof-Fy5Gl4Ca.js";
9
+ import "../deno-CMcbjYDs.js";
10
+ import "../key-OaS_196P.js";
11
+ import { createProof, signObject, verifyObject, verifyProof } from "../proof-DFffIwhK.js";
12
12
  import "../std__assert-X-_kMxKM.js";
13
13
  import { assertRejects } from "../assert_rejects-0h7I2Esa.js";
14
14
  import "../assert_throws-rjdMBf31.js";
@@ -7,11 +7,11 @@ import { esm_default } from "../esm-nLm00z9V.js";
7
7
  import { assertEquals } from "../assert_equals-DSbWqCm3.js";
8
8
  import "../assert-MZs1qjMx.js";
9
9
  import "../assert_instance_of-DHz7EHNU.js";
10
- import "../deno-BOsDbqu7.js";
10
+ import "../deno-CMcbjYDs.js";
11
11
  import "../accept-D7sAxyNa.js";
12
- import "../key-CZwef9_o.js";
13
- import { verifyRequest } from "../http-Cfw-SN_z.js";
14
- import { getAuthenticatedDocumentLoader } from "../docloader-BcEPmNUR.js";
12
+ import "../key-OaS_196P.js";
13
+ import { verifyRequest } from "../http-By9CCocC.js";
14
+ import { getAuthenticatedDocumentLoader } from "../docloader-ORTT1bPi.js";
15
15
  import "../std__assert-X-_kMxKM.js";
16
16
  import { assertRejects } from "../assert_rejects-0h7I2Esa.js";
17
17
  import "../assert_throws-rjdMBf31.js";
@@ -57,6 +57,22 @@ test("getAuthenticatedDocumentLoader()", async (t) => {
57
57
  });
58
58
  assertRejects(() => loader("http://localhost"), UrlError);
59
59
  });
60
+ await t.step("custom max redirection", async () => {
61
+ esm_default.spyGlobal();
62
+ let requestCount = 0;
63
+ esm_default.get("begin:https://example.com/custom-too-many-redirects/", (cl) => {
64
+ requestCount++;
65
+ const index = Number(cl.url.split("/").at(-1));
66
+ return Response.redirect(`https://example.com/custom-too-many-redirects/${index + 1}`, 302);
67
+ });
68
+ const loader = getAuthenticatedDocumentLoader({
69
+ keyId: new URL("https://example.com/key2"),
70
+ privateKey: rsaPrivateKey2
71
+ }, { maxRedirection: 1 });
72
+ await assertRejects(() => loader("https://example.com/custom-too-many-redirects/0"), Error, "Too many redirections");
73
+ assertEquals(requestCount, 2);
74
+ esm_default.hardReset();
75
+ });
60
76
  });
61
77
  test("getAuthenticatedDocumentLoader() cancellation", {
62
78
  sanitizeResources: false,
@@ -2,8 +2,8 @@
2
2
  const { Temporal } = require("@js-temporal/polyfill");
3
3
  const { URLPattern } = require("urlpattern-polyfill");
4
4
 
5
- require('../http-BVFyeQBR.cjs');
6
- const require_kv_cache = require('../kv-cache-CeTLZBik.cjs');
5
+ require('../http-BDf1pBmE.cjs');
6
+ const require_kv_cache = require('../kv-cache-DG491NbS.cjs');
7
7
  require('../utils-BQ9KqEK9.cjs');
8
8
 
9
9
  exports.getAuthenticatedDocumentLoader = require_kv_cache.getAuthenticatedDocumentLoader;
@@ -1,4 +1,4 @@
1
1
  import "../http-BudnHZE2.cjs";
2
2
  import "../kv-BL4nlICN.cjs";
3
- import { getAuthenticatedDocumentLoader, kvCache } from "../mod-Bx9jcLB8.cjs";
3
+ import { getAuthenticatedDocumentLoader, kvCache } from "../mod-jfnweK2w.cjs";
4
4
  export { getAuthenticatedDocumentLoader, kvCache };
@@ -2,5 +2,5 @@ import { Temporal } from "@js-temporal/polyfill";
2
2
  import { URLPattern } from "urlpattern-polyfill";
3
3
  import "../http-Dax_FIBo.js";
4
4
  import "../kv-DXEUEP6z.js";
5
- import { getAuthenticatedDocumentLoader, kvCache } from "../mod-Cs2dYEwI.js";
5
+ import { getAuthenticatedDocumentLoader, kvCache } from "../mod-DCbh1JQ5.js";
6
6
  export { getAuthenticatedDocumentLoader, kvCache };
package/dist/utils/mod.js CHANGED
@@ -2,8 +2,8 @@
2
2
  import { Temporal } from "@js-temporal/polyfill";
3
3
  import { URLPattern } from "urlpattern-polyfill";
4
4
 
5
- import "../http-tl74Wmu6.js";
6
- import { getAuthenticatedDocumentLoader, kvCache } from "../kv-cache-BHtrhC_A.js";
5
+ import "../http-DLQMXj_1.js";
6
+ import { getAuthenticatedDocumentLoader, kvCache } from "../kv-cache-COnBmjEC.js";
7
7
  import "../utils-Dn5OPdSW.js";
8
8
 
9
9
  export { getAuthenticatedDocumentLoader, kvCache };