@fedify/fedify 2.0.0-dev.1726 → 2.0.0-dev.1750

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 (194) hide show
  1. package/README.md +3 -0
  2. package/dist/{actor-menZmmiI.js → actor-CMgHXjhs.js} +189 -677
  3. package/dist/{actor-dO7jHa6A.js → actor-CRS7Dbo1.js} +1 -1
  4. package/dist/{actor-T6RyhRgk.d.ts → actor-DqFajh9s.d.ts} +2 -2
  5. package/dist/{actor-Bn2RCpws.cjs → actor-JG822JBi.cjs} +921 -1451
  6. package/dist/{actor-D6K058Tb.d.cts → actor-f2NtjyCg.d.cts} +2 -2
  7. package/dist/{assert_rejects-DiIiJbZn.js → assert_rejects-Ce45JcFg.js} +1 -1
  8. package/dist/{assert_is_error-BPGph1Jx.js → assert_throws-BNXdRGWP.js} +31 -1
  9. package/dist/{builder-CGF1vv7G.js → builder-D44QzfuD.js} +3 -4
  10. package/dist/{client-CegPX0Rn.d.cts → client-94iWEfQa.d.cts} +1 -1
  11. package/dist/{client-bgSdkFa2.d.ts → client-BsGzbnV-.d.ts} +1 -1
  12. package/dist/{client-BfzV3u96.js → client-pY7-3icS.js} +1 -1
  13. package/dist/compat/mod.d.cts +11 -12
  14. package/dist/compat/mod.d.ts +11 -12
  15. package/dist/compat/transformers.test.js +20 -20
  16. package/dist/{context-B1X8-X33.d.ts → context-DG0huGW-.d.ts} +25 -55
  17. package/dist/{context-DYCJXr7J.d.cts → context-DJ8aSy2Q.d.cts} +25 -55
  18. package/dist/{authdocloader-DevmXsTo.js → docloader-BvlqkI1M.js} +17 -8
  19. package/dist/{esm-BODOj_Oi.js → esm-BZMLn6gu.js} +11 -11
  20. package/dist/federation/builder.test.js +8 -10
  21. package/dist/federation/collection.test.js +7 -9
  22. package/dist/federation/handler.test.js +25 -26
  23. package/dist/federation/idempotency.test.js +25 -26
  24. package/dist/federation/inbox.test.js +4 -6
  25. package/dist/federation/keycache.test.js +3 -4
  26. package/dist/federation/kv.test.js +6 -8
  27. package/dist/federation/middleware.test.js +26 -27
  28. package/dist/federation/mod.cjs +9 -11
  29. package/dist/federation/mod.d.cts +11 -12
  30. package/dist/federation/mod.d.ts +11 -12
  31. package/dist/federation/mod.js +9 -11
  32. package/dist/federation/mq.test.js +8 -10
  33. package/dist/federation/negotiation.test.js +7 -9
  34. package/dist/federation/retry.test.js +4 -5
  35. package/dist/federation/router.test.js +6 -8
  36. package/dist/federation/send.test.js +13 -15
  37. package/dist/{http-gHyCrTrX.js → http-BPsXiq3Y.js} +256 -6
  38. package/dist/{http-D6Uj2x2y.d.ts → http-BbO0ejuk.d.ts} +2 -2
  39. package/dist/{http-BmbMWfmh.cjs → http-CPqfuthT.cjs} +289 -9
  40. package/dist/{http-Danw_xTY.js → http-DIsJckI7.js} +2 -2
  41. package/dist/{http-D-e6AFwR.d.cts → http-M8k5mKc0.d.cts} +2 -2
  42. package/dist/{inbox-Blp5F74G.js → inbox-24__vIeD.js} +1 -1
  43. package/dist/{key-CIIkeide.js → key-CcqQC_vj.js} +3 -2
  44. package/dist/{keycache-Covv8lvK.js → keycache-BUF-P0-V.js} +1 -1
  45. package/dist/{keys-DZ1bqhJz.js → keys-DSikT9wk.js} +2 -1
  46. package/dist/kv-cache-CBOkGH5t.js +121 -0
  47. package/dist/kv-cache-gyMh96Y-.cjs +133 -0
  48. package/dist/kv-cache-z0lgwFi_.js +93 -0
  49. package/dist/{ld-C7KL1MK2.js → ld-C5wht8V2.js} +3 -2
  50. package/dist/lookup-BE8ZMmug.js +261 -0
  51. package/dist/{type-D_8QzkEn.js → lookup-CxJLpHHf.js} +503 -5327
  52. package/dist/lookup-Doq5XdGY.cjs +273 -0
  53. package/dist/{middleware-HKKY6sAX.js → middleware-BImvTjdU.js} +18 -17
  54. package/dist/middleware-BsLmqSNx.cjs +15 -0
  55. package/dist/middleware-CdFqipch.js +15 -0
  56. package/dist/{middleware-C60xXvWx.cjs → middleware-ClcQM1de.cjs} +30 -31
  57. package/dist/{middleware-DXOZ6_ST.js → middleware-D5NFjhOL.js} +10 -11
  58. package/dist/middleware-ZZJaIUDZ.js +26 -0
  59. package/dist/{mod-BhUKmBJD.d.ts → mod-B2iOw50L.d.ts} +3 -3
  60. package/dist/mod-BYynOiJG.d.ts +109 -0
  61. package/dist/{mod-DlU8ISoa.d.ts → mod-BlVovdcy.d.ts} +2 -2
  62. package/dist/{mod-DcKxhFQ8.d.ts → mod-BoHnwOCs.d.ts} +2 -2
  63. package/dist/{mod-CxkWO3Mg.d.cts → mod-BxRCHTz-.d.cts} +2 -2
  64. package/dist/{mod-jQ4OODsl.d.cts → mod-C58MZ7Wx.d.cts} +1 -1
  65. package/dist/{mod-twdvV2hR.d.cts → mod-DJcZDvjA.d.cts} +2 -2
  66. package/dist/{mod-Djzcw2ry.d.cts → mod-DgdBYYa0.d.cts} +3 -3
  67. package/dist/{mod-DBzN0aCM.d.ts → mod-Ds0mpFZU.d.ts} +1 -1
  68. package/dist/mod-VastcQsk.d.cts +107 -0
  69. package/dist/mod.cjs +19 -32
  70. package/dist/mod.d.cts +15 -16
  71. package/dist/mod.d.ts +16 -17
  72. package/dist/mod.js +14 -16
  73. package/dist/nodeinfo/client.test.js +8 -10
  74. package/dist/nodeinfo/handler.test.js +24 -25
  75. package/dist/nodeinfo/mod.cjs +2 -3
  76. package/dist/nodeinfo/mod.d.cts +2 -4
  77. package/dist/nodeinfo/mod.d.ts +2 -4
  78. package/dist/nodeinfo/mod.js +2 -3
  79. package/dist/nodeinfo/types.test.js +7 -9
  80. package/dist/{owner-BN_tO3cY.d.cts → owner-B4HbyP8s.d.cts} +3 -3
  81. package/dist/{owner-COcyel6J.js → owner-DIa5WpbP.js} +3 -2
  82. package/dist/{owner-hd9lvQcP.d.ts → owner-kQRGVXG1.d.ts} +3 -3
  83. package/dist/{proof-Cpk853lc.js → proof-CCzhKDDB.js} +2 -2
  84. package/dist/{proof-D6pbnNx2.js → proof-D0ak0hhc.js} +5 -4
  85. package/dist/{proof-CMJcrQoM.cjs → proof-DTKtjEh_.cjs} +17 -16
  86. package/dist/{send-C7A7_big.js → send-BWfkS2zO.js} +2 -2
  87. package/dist/sig/http.test.js +12 -13
  88. package/dist/sig/key.test.js +9 -11
  89. package/dist/sig/ld.test.js +8 -10
  90. package/dist/sig/mod.cjs +9 -11
  91. package/dist/sig/mod.d.cts +5 -7
  92. package/dist/sig/mod.d.ts +5 -7
  93. package/dist/sig/mod.js +5 -7
  94. package/dist/sig/owner.test.js +10 -12
  95. package/dist/sig/proof.test.js +13 -14
  96. package/dist/testing/docloader.test.js +6 -8
  97. package/dist/testing/mod.d.ts +16 -131
  98. package/dist/testing/mod.js +2 -3
  99. package/dist/{testing-e8Kpb1uV.js → testing-BHLtJbQx.js} +1 -2
  100. package/dist/{types-Db4ukgX8.js → types-BtUjyi5y.js} +1 -1
  101. package/dist/{types-LjTL4QMx.cjs → types-CWgzGaqk.cjs} +3 -3
  102. package/dist/{runtime/authdocloader.test.js → utils/docloader.test.js} +14 -15
  103. package/dist/utils/kv-cache.test.js +209 -0
  104. package/dist/utils/mod.cjs +12 -0
  105. package/dist/utils/mod.d.cts +5 -0
  106. package/dist/utils/mod.d.ts +7 -0
  107. package/dist/utils/mod.js +11 -0
  108. package/dist/vocab/actor.test.js +8 -10
  109. package/dist/vocab/lookup.test.js +7 -9
  110. package/dist/vocab/mod.cjs +3 -4
  111. package/dist/vocab/mod.d.cts +3 -5
  112. package/dist/vocab/mod.d.ts +3 -5
  113. package/dist/vocab/mod.js +3 -4
  114. package/dist/vocab/type.test.js +2 -3
  115. package/dist/vocab/vocab.test.js +9 -10
  116. package/dist/{vocab-BI0Ak5lL.d.ts → vocab-BCWe1Ih5.d.ts} +2 -21
  117. package/dist/{vocab-DLHpZwOW.cjs → vocab-C3ZbIV8S.cjs} +5 -5
  118. package/dist/{vocab-Dw1-yVGg.d.cts → vocab-CeDBzu-f.d.cts} +2 -21
  119. package/dist/{vocab-CJHF7Q71.js → vocab-CjheaIIe.js} +3 -3
  120. package/dist/webfinger/handler.test.js +24 -25
  121. package/dist/webfinger/lookup.test.js +7 -9
  122. package/dist/webfinger/mod.cjs +2 -3
  123. package/dist/webfinger/mod.d.cts +1 -3
  124. package/dist/webfinger/mod.d.ts +1 -3
  125. package/dist/webfinger/mod.js +2 -3
  126. package/dist/x/cfworkers.d.cts +2 -2
  127. package/dist/x/cfworkers.d.ts +2 -2
  128. package/dist/x/cfworkers.test.js +6 -8
  129. package/dist/x/hono.d.cts +10 -11
  130. package/dist/x/hono.d.ts +10 -11
  131. package/dist/x/sveltekit.d.cts +10 -11
  132. package/dist/x/sveltekit.d.ts +10 -11
  133. package/package.json +15 -14
  134. package/dist/assert_throws-BOO88avQ.js +0 -39
  135. package/dist/authdocloader-CEqdZdT7.cjs +0 -58
  136. package/dist/authdocloader-CZsCIRLV.js +0 -52
  137. package/dist/docloader-Buh0Ah9G.cjs +0 -4861
  138. package/dist/docloader-CxWcuWqQ.d.ts +0 -221
  139. package/dist/docloader-D-MrRyHl.d.cts +0 -219
  140. package/dist/docloader-DOmINJ1U.js +0 -4795
  141. package/dist/key-B2cp5-JF.js +0 -10
  142. package/dist/key-BR1W25rw.cjs +0 -290
  143. package/dist/key-BnjofJ4e.js +0 -260
  144. package/dist/key-DhflzsBJ.cjs +0 -10
  145. package/dist/key-WES6wszI.js +0 -10
  146. package/dist/lookup-CDOxr8vw.cjs +0 -137
  147. package/dist/lookup-D8tCnUj2.js +0 -131
  148. package/dist/lookup-VSVPBU3J.js +0 -331
  149. package/dist/middleware-9KSLASn7.js +0 -17
  150. package/dist/middleware-CH0PNtaj.cjs +0 -17
  151. package/dist/middleware-CrzCnpdt.js +0 -26
  152. package/dist/mod-CerN_Sza.d.ts +0 -104
  153. package/dist/mod-Cj1tHXBR.d.cts +0 -102
  154. package/dist/runtime/docloader.test.js +0 -522
  155. package/dist/runtime/key.test.d.ts +0 -3
  156. package/dist/runtime/key.test.js +0 -103
  157. package/dist/runtime/langstr.test.d.ts +0 -3
  158. package/dist/runtime/langstr.test.js +0 -39
  159. package/dist/runtime/link.test.d.ts +0 -3
  160. package/dist/runtime/link.test.js +0 -61
  161. package/dist/runtime/mod.cjs +0 -25
  162. package/dist/runtime/mod.d.cts +0 -6
  163. package/dist/runtime/mod.d.ts +0 -8
  164. package/dist/runtime/mod.js +0 -13
  165. package/dist/runtime/multibase/multibase.test.d.ts +0 -3
  166. package/dist/runtime/multibase/multibase.test.js +0 -358
  167. package/dist/runtime/url.test.d.ts +0 -3
  168. package/dist/runtime/url.test.js +0 -45
  169. /package/dist/{assert_not_equals-f3m3epl3.js → assert_not_equals-C80BG-_5.js} +0 -0
  170. /package/dist/{collection-CcnIw1qY.js → collection-BzWsN9pB.js} +0 -0
  171. /package/dist/{denokv-Bv33Xxea.js → denokv-CCssOzMJ.js} +0 -0
  172. /package/dist/{federation-H2_En3j5.cjs → federation-CRpdnOMS.cjs} +0 -0
  173. /package/dist/{federation-D1U8YY9t.js → federation-jcR8-ZxP.js} +0 -0
  174. /package/dist/{kv-C7sopW2E.d.ts → kv-BKNZ-Tb-.d.ts} +0 -0
  175. /package/dist/{kv-63Cil1MD.d.cts → kv-Bxr0Q87_.d.cts} +0 -0
  176. /package/dist/{mod-FZd39qVq.d.cts → mod-B-hUPT2N.d.cts} +0 -0
  177. /package/dist/{mod-1pDWKvUL.d.ts → mod-CVgZgliM.d.ts} +0 -0
  178. /package/dist/{mod-g0xFzAP9.d.ts → mod-xIj-IT58.d.ts} +0 -0
  179. /package/dist/{mq-CRGm1e_F.d.ts → mq-CUKlBw08.d.ts} +0 -0
  180. /package/dist/{mq-B7R1Q-M5.d.cts → mq-DcJPkXD5.d.cts} +0 -0
  181. /package/dist/{negotiation-5NPJL6zp.js → negotiation-C4nFufNk.js} +0 -0
  182. /package/dist/{nodeinfo-DfycQ8Wf.js → nodeinfo-BnthBobC.js} +0 -0
  183. /package/dist/{nodeinfo-Co9lJrWl.cjs → nodeinfo-CdN0rEnZ.cjs} +0 -0
  184. /package/dist/{retry-D4GJ670a.js → retry-CfF8Gn4d.js} +0 -0
  185. /package/dist/{runtime-DPYEDf-o.js → sig-C34-oHBl.js} +0 -0
  186. /package/dist/{runtime-C58AJWSv.cjs → sig-YYj5tCnr.cjs} +0 -0
  187. /package/dist/{std__assert-X-_kMxKM.js → std__assert-DWivtrGR.js} +0 -0
  188. /package/dist/{types-BSuWJsOm.js → types-C2XVl6gj.js} +0 -0
  189. /package/dist/{runtime → utils}/docloader.test.d.ts +0 -0
  190. /package/dist/{runtime/authdocloader.test.d.ts → utils/kv-cache.test.d.ts} +0 -0
  191. /package/dist/{sig-Cj3tk-ig.js → utils-D-Va7aXC.js} +0 -0
  192. /package/dist/{sig-ByHXzqUi.cjs → utils-DyRU1gdZ.cjs} +0 -0
  193. /package/dist/{webfinger-De_bU0iE.js → webfinger-C72Y8lrh.js} +0 -0
  194. /package/dist/{webfinger-BjOEdFPs.cjs → webfinger-vAtLmxOF.cjs} +0 -0
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@fedify/fedify",
3
- "version": "2.0.0-dev.1726+99d0d861",
3
+ "version": "2.0.0-dev.1750+6dbfd010",
4
4
  "description": "An ActivityPub server framework",
5
5
  "keywords": [
6
6
  "ActivityPub",
@@ -78,16 +78,6 @@
78
78
  "require": "./dist/nodeinfo/mod.cjs",
79
79
  "default": "./dist/nodeinfo/mod.js"
80
80
  },
81
- "./runtime": {
82
- "types": {
83
- "import": "./dist/runtime/mod.d.ts",
84
- "require": "./dist/runtime/mod.d.cts",
85
- "default": "./dist/runtime/mod.d.ts"
86
- },
87
- "import": "./dist/runtime/mod.js",
88
- "require": "./dist/runtime/mod.cjs",
89
- "default": "./dist/runtime/mod.js"
90
- },
91
81
  "./sig": {
92
82
  "types": {
93
83
  "import": "./dist/sig/mod.d.ts",
@@ -98,6 +88,16 @@
98
88
  "require": "./dist/sig/mod.cjs",
99
89
  "default": "./dist/sig/mod.js"
100
90
  },
91
+ "./utils": {
92
+ "types": {
93
+ "import": "./dist/utils/mod.d.ts",
94
+ "require": "./dist/utils/mod.d.cts",
95
+ "default": "./dist/utils/mod.d.ts"
96
+ },
97
+ "import": "./dist/utils/mod.js",
98
+ "require": "./dist/utils/mod.cjs",
99
+ "default": "./dist/utils/mod.js"
100
+ },
101
101
  "./vocab": {
102
102
  "types": {
103
103
  "import": "./dist/vocab/mod.d.ts",
@@ -166,7 +166,8 @@
166
166
  "structured-field-values": "^2.0.4",
167
167
  "uri-template-router": "^0.0.17",
168
168
  "url-template": "^3.1.1",
169
- "urlpattern-polyfill": "^10.1.0"
169
+ "urlpattern-polyfill": "^10.1.0",
170
+ "@fedify/vocab-runtime": "2.0.0-dev.1750+6dbfd010"
170
171
  },
171
172
  "devDependencies": {
172
173
  "@cloudflare/workers-types": "^4.20250529.0",
@@ -176,7 +177,7 @@
176
177
  "@std/yaml": "npm:@jsr/std__yaml@^1.0.6",
177
178
  "@types/node": "^24.2.1",
178
179
  "fast-check": "^3.22.0",
179
- "fetch-mock": "^12.5.2",
180
+ "fetch-mock": "^12.5.4",
180
181
  "miniflare": "^4.20250523.0",
181
182
  "tsdown": "^0.12.9",
182
183
  "tsx": "^4.19.4",
@@ -187,7 +188,7 @@
187
188
  "build": "deno task codegen && tsdown",
188
189
  "prepublish": "deno task codegen && tsdown",
189
190
  "test": "deno task codegen && tsdown && cd dist/ && node --test",
190
- "test:bun": "deno task codegen && tsdown && cd dist/ && bun test --timeout 60000",
191
+ "test:bun": "deno task codegen && deno task pnpm:build-vocab && tsdown && cd dist/ && bun test --timeout 60000",
191
192
  "test:cfworkers": "deno task codegen && wrangler deploy --dry-run --outdir src/cfworkers && node --import=tsx src/cfworkers/client.ts"
192
193
  }
193
194
  }
@@ -1,39 +0,0 @@
1
-
2
- import { Temporal } from "@js-temporal/polyfill";
3
- import { URLPattern } from "urlpattern-polyfill";
4
- globalThis.addEventListener = () => {};
5
-
6
- import { AssertionError } from "./assert_equals-DSbWqCm3.js";
7
- import { assertIsError } from "./assert_is_error-BPGph1Jx.js";
8
-
9
- //#region ../../node_modules/.pnpm/@jsr+std__assert@0.226.0/node_modules/@jsr/std__assert/assert_throws.js
10
- function assertThrows(fn, errorClassOrMsg, msgIncludesOrMsg, msg) {
11
- let ErrorClass = void 0;
12
- let msgIncludes = void 0;
13
- let err;
14
- if (typeof errorClassOrMsg !== "string") if (errorClassOrMsg === void 0 || errorClassOrMsg?.prototype instanceof Error || errorClassOrMsg?.prototype === Error.prototype) {
15
- ErrorClass = errorClassOrMsg;
16
- msgIncludes = msgIncludesOrMsg;
17
- } else msg = msgIncludesOrMsg;
18
- else msg = errorClassOrMsg;
19
- let doesThrow = false;
20
- const msgSuffix = msg ? `: ${msg}` : ".";
21
- try {
22
- fn();
23
- } catch (error) {
24
- if (ErrorClass) {
25
- if (error instanceof Error === false) throw new AssertionError(`A non-Error object was thrown${msgSuffix}`);
26
- assertIsError(error, ErrorClass, msgIncludes, msg);
27
- }
28
- err = error;
29
- doesThrow = true;
30
- }
31
- if (!doesThrow) {
32
- msg = `Expected function to throw${msgSuffix}`;
33
- throw new AssertionError(msg);
34
- }
35
- return err;
36
- }
37
-
38
- //#endregion
39
- export { assertThrows };
@@ -1,58 +0,0 @@
1
-
2
- const { Temporal } = require("@js-temporal/polyfill");
3
- const { URLPattern } = require("urlpattern-polyfill");
4
-
5
- const require_chunk = require('./chunk-DqRYRqnO.cjs');
6
- const require_docloader = require('./docloader-Buh0Ah9G.cjs');
7
- const require_key = require('./key-BR1W25rw.cjs');
8
- const require_http = require('./http-BmbMWfmh.cjs');
9
- const __logtape_logtape = require_chunk.__toESM(require("@logtape/logtape"));
10
-
11
- //#region src/runtime/authdocloader.ts
12
- const logger = (0, __logtape_logtape.getLogger)([
13
- "fedify",
14
- "runtime",
15
- "docloader"
16
- ]);
17
- /**
18
- * Gets an authenticated {@link DocumentLoader} for the given identity.
19
- * Note that an authenticated document loader intentionally does not cache
20
- * the fetched documents.
21
- * @param identity The identity to get the document loader for.
22
- * The actor's key pair.
23
- * @param options The options for the document loader.
24
- * @returns The authenticated document loader.
25
- * @throws {TypeError} If the key is invalid or unsupported.
26
- * @since 0.4.0
27
- */
28
- function getAuthenticatedDocumentLoader(identity, { allowPrivateAddress, userAgent, specDeterminer, tracerProvider } = {}) {
29
- require_key.validateCryptoKey(identity.privateKey);
30
- async function load(url, options) {
31
- if (!allowPrivateAddress) try {
32
- await require_docloader.validatePublicUrl(url);
33
- } catch (error) {
34
- if (error instanceof require_docloader.UrlError) logger.error("Disallowed private URL: {url}", {
35
- url,
36
- error
37
- });
38
- throw error;
39
- }
40
- const originalRequest = require_docloader.createRequest(url, { userAgent });
41
- const response = await require_http.doubleKnock(originalRequest, identity, {
42
- specDeterminer,
43
- log: require_docloader.logRequest,
44
- tracerProvider,
45
- signal: options?.signal
46
- });
47
- return require_docloader.getRemoteDocument(url, response, load);
48
- }
49
- return load;
50
- }
51
-
52
- //#endregion
53
- Object.defineProperty(exports, 'getAuthenticatedDocumentLoader', {
54
- enumerable: true,
55
- get: function () {
56
- return getAuthenticatedDocumentLoader;
57
- }
58
- });
@@ -1,52 +0,0 @@
1
-
2
- import { Temporal } from "@js-temporal/polyfill";
3
- import { URLPattern } from "urlpattern-polyfill";
4
-
5
- import { UrlError, createRequest, getRemoteDocument, logRequest, validatePublicUrl } from "./docloader-DOmINJ1U.js";
6
- import { validateCryptoKey } from "./key-BnjofJ4e.js";
7
- import { doubleKnock } from "./http-gHyCrTrX.js";
8
- import { getLogger } from "@logtape/logtape";
9
-
10
- //#region src/runtime/authdocloader.ts
11
- const logger = getLogger([
12
- "fedify",
13
- "runtime",
14
- "docloader"
15
- ]);
16
- /**
17
- * Gets an authenticated {@link DocumentLoader} for the given identity.
18
- * Note that an authenticated document loader intentionally does not cache
19
- * the fetched documents.
20
- * @param identity The identity to get the document loader for.
21
- * The actor's key pair.
22
- * @param options The options for the document loader.
23
- * @returns The authenticated document loader.
24
- * @throws {TypeError} If the key is invalid or unsupported.
25
- * @since 0.4.0
26
- */
27
- function getAuthenticatedDocumentLoader(identity, { allowPrivateAddress, userAgent, specDeterminer, tracerProvider } = {}) {
28
- validateCryptoKey(identity.privateKey);
29
- async function load(url, options) {
30
- if (!allowPrivateAddress) try {
31
- await validatePublicUrl(url);
32
- } catch (error) {
33
- if (error instanceof UrlError) logger.error("Disallowed private URL: {url}", {
34
- url,
35
- error
36
- });
37
- throw error;
38
- }
39
- const originalRequest = createRequest(url, { userAgent });
40
- const response = await doubleKnock(originalRequest, identity, {
41
- specDeterminer,
42
- log: logRequest,
43
- tracerProvider,
44
- signal: options?.signal
45
- });
46
- return getRemoteDocument(url, response, load);
47
- }
48
- return load;
49
- }
50
-
51
- //#endregion
52
- export { getAuthenticatedDocumentLoader };