nlcurl 0.6.0 → 0.8.0

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 (354) hide show
  1. package/README.md +143 -140
  2. package/dist/cache/groups.d.ts +75 -0
  3. package/dist/cache/groups.d.ts.map +1 -0
  4. package/dist/cache/groups.js +118 -0
  5. package/dist/cache/groups.js.map +1 -0
  6. package/dist/cache/no-vary-search.d.ts +33 -0
  7. package/dist/cache/no-vary-search.d.ts.map +1 -0
  8. package/dist/cache/no-vary-search.js +148 -0
  9. package/dist/cache/no-vary-search.js.map +1 -0
  10. package/dist/cache/range.d.ts +120 -0
  11. package/dist/cache/range.d.ts.map +1 -0
  12. package/dist/cache/range.js +193 -0
  13. package/dist/cache/range.js.map +1 -0
  14. package/dist/cache/store.d.ts +111 -0
  15. package/dist/cache/store.d.ts.map +1 -0
  16. package/dist/cache/store.js +414 -0
  17. package/dist/cache/store.js.map +1 -0
  18. package/dist/cache/types.d.ts +69 -0
  19. package/dist/cache/types.d.ts.map +1 -0
  20. package/dist/cache/types.js +2 -0
  21. package/dist/cache/types.js.map +1 -0
  22. package/dist/cli/args.d.ts +4 -37
  23. package/dist/cli/args.d.ts.map +1 -1
  24. package/dist/cli/args.js +3 -4
  25. package/dist/cli/args.js.map +1 -1
  26. package/dist/cli/index.d.ts +0 -5
  27. package/dist/cli/index.d.ts.map +1 -1
  28. package/dist/cli/index.js +1 -6
  29. package/dist/cli/index.js.map +1 -1
  30. package/dist/cli/output.d.ts +14 -20
  31. package/dist/cli/output.d.ts.map +1 -1
  32. package/dist/cli/output.js +14 -20
  33. package/dist/cli/output.js.map +1 -1
  34. package/dist/cookies/jar.d.ts +33 -31
  35. package/dist/cookies/jar.d.ts.map +1 -1
  36. package/dist/cookies/jar.js +69 -33
  37. package/dist/cookies/jar.js.map +1 -1
  38. package/dist/cookies/parser.d.ts +14 -16
  39. package/dist/cookies/parser.d.ts.map +1 -1
  40. package/dist/cookies/parser.js +30 -13
  41. package/dist/cookies/parser.js.map +1 -1
  42. package/dist/cookies/psl-data.d.ts +1 -1
  43. package/dist/cookies/psl-data.js +1 -1
  44. package/dist/cookies/public-suffix.d.ts +5 -27
  45. package/dist/cookies/public-suffix.d.ts.map +1 -1
  46. package/dist/cookies/public-suffix.js +5 -37
  47. package/dist/cookies/public-suffix.js.map +1 -1
  48. package/dist/core/auth.d.ts +30 -0
  49. package/dist/core/auth.d.ts.map +1 -0
  50. package/dist/core/auth.js +34 -0
  51. package/dist/core/auth.js.map +1 -0
  52. package/dist/core/client.d.ts +28 -40
  53. package/dist/core/client.d.ts.map +1 -1
  54. package/dist/core/client.js +34 -41
  55. package/dist/core/client.js.map +1 -1
  56. package/dist/core/errors.d.ts +64 -88
  57. package/dist/core/errors.d.ts.map +1 -1
  58. package/dist/core/errors.js +64 -88
  59. package/dist/core/errors.js.map +1 -1
  60. package/dist/core/request.d.ts +63 -85
  61. package/dist/core/request.d.ts.map +1 -1
  62. package/dist/core/response.d.ts +64 -59
  63. package/dist/core/response.d.ts.map +1 -1
  64. package/dist/core/response.js +70 -52
  65. package/dist/core/response.js.map +1 -1
  66. package/dist/core/session.d.ts +81 -70
  67. package/dist/core/session.d.ts.map +1 -1
  68. package/dist/core/session.js +198 -71
  69. package/dist/core/session.js.map +1 -1
  70. package/dist/core/validation.d.ts +44 -42
  71. package/dist/core/validation.d.ts.map +1 -1
  72. package/dist/core/validation.js +47 -58
  73. package/dist/core/validation.js.map +1 -1
  74. package/dist/dns/cache.d.ts +59 -0
  75. package/dist/dns/cache.d.ts.map +1 -0
  76. package/dist/dns/cache.js +99 -0
  77. package/dist/dns/cache.js.map +1 -0
  78. package/dist/dns/codec.d.ts +39 -0
  79. package/dist/dns/codec.d.ts.map +1 -0
  80. package/dist/dns/codec.js +238 -0
  81. package/dist/dns/codec.js.map +1 -0
  82. package/dist/dns/doh-resolver.d.ts +38 -0
  83. package/dist/dns/doh-resolver.d.ts.map +1 -0
  84. package/dist/dns/doh-resolver.js +191 -0
  85. package/dist/dns/doh-resolver.js.map +1 -0
  86. package/dist/dns/dot-resolver.d.ts +89 -0
  87. package/dist/dns/dot-resolver.d.ts.map +1 -0
  88. package/dist/dns/dot-resolver.js +158 -0
  89. package/dist/dns/dot-resolver.js.map +1 -0
  90. package/dist/dns/https-rr.d.ts +40 -0
  91. package/dist/dns/https-rr.d.ts.map +1 -0
  92. package/dist/dns/https-rr.js +109 -0
  93. package/dist/dns/https-rr.js.map +1 -0
  94. package/dist/dns/types.d.ts +82 -0
  95. package/dist/dns/types.d.ts.map +1 -0
  96. package/dist/dns/types.js +23 -0
  97. package/dist/dns/types.js.map +1 -0
  98. package/dist/fingerprints/akamai.d.ts +3 -11
  99. package/dist/fingerprints/akamai.d.ts.map +1 -1
  100. package/dist/fingerprints/akamai.js +3 -11
  101. package/dist/fingerprints/akamai.js.map +1 -1
  102. package/dist/fingerprints/database.d.ts +6 -14
  103. package/dist/fingerprints/database.d.ts.map +1 -1
  104. package/dist/fingerprints/database.js +6 -14
  105. package/dist/fingerprints/database.js.map +1 -1
  106. package/dist/fingerprints/extensions.d.ts +56 -71
  107. package/dist/fingerprints/extensions.d.ts.map +1 -1
  108. package/dist/fingerprints/extensions.js +58 -71
  109. package/dist/fingerprints/extensions.js.map +1 -1
  110. package/dist/fingerprints/ja3.d.ts +12 -30
  111. package/dist/fingerprints/ja3.d.ts.map +1 -1
  112. package/dist/fingerprints/ja3.js +12 -30
  113. package/dist/fingerprints/ja3.js.map +1 -1
  114. package/dist/fingerprints/ja4.d.ts +18 -0
  115. package/dist/fingerprints/ja4.d.ts.map +1 -0
  116. package/dist/fingerprints/ja4.js +83 -0
  117. package/dist/fingerprints/ja4.js.map +1 -0
  118. package/dist/fingerprints/profiles/chrome.d.ts +18 -21
  119. package/dist/fingerprints/profiles/chrome.d.ts.map +1 -1
  120. package/dist/fingerprints/profiles/chrome.js +35 -31
  121. package/dist/fingerprints/profiles/chrome.js.map +1 -1
  122. package/dist/fingerprints/profiles/edge.d.ts +7 -10
  123. package/dist/fingerprints/profiles/edge.d.ts.map +1 -1
  124. package/dist/fingerprints/profiles/edge.js +7 -10
  125. package/dist/fingerprints/profiles/edge.js.map +1 -1
  126. package/dist/fingerprints/profiles/firefox.d.ts +8 -11
  127. package/dist/fingerprints/profiles/firefox.d.ts.map +1 -1
  128. package/dist/fingerprints/profiles/firefox.js +8 -11
  129. package/dist/fingerprints/profiles/firefox.js.map +1 -1
  130. package/dist/fingerprints/profiles/safari.d.ts +11 -14
  131. package/dist/fingerprints/profiles/safari.d.ts.map +1 -1
  132. package/dist/fingerprints/profiles/safari.js +11 -14
  133. package/dist/fingerprints/profiles/safari.js.map +1 -1
  134. package/dist/fingerprints/profiles/tor.d.ts +5 -8
  135. package/dist/fingerprints/profiles/tor.d.ts.map +1 -1
  136. package/dist/fingerprints/profiles/tor.js +5 -8
  137. package/dist/fingerprints/profiles/tor.js.map +1 -1
  138. package/dist/fingerprints/types.d.ts +42 -73
  139. package/dist/fingerprints/types.d.ts.map +1 -1
  140. package/dist/hsts/store.d.ts +39 -0
  141. package/dist/hsts/store.d.ts.map +1 -0
  142. package/dist/hsts/store.js +163 -0
  143. package/dist/hsts/store.js.map +1 -0
  144. package/dist/hsts/types.d.ts +24 -0
  145. package/dist/hsts/types.d.ts.map +1 -0
  146. package/dist/hsts/types.js +2 -0
  147. package/dist/hsts/types.js.map +1 -0
  148. package/dist/http/alt-svc.d.ts +67 -0
  149. package/dist/http/alt-svc.d.ts.map +1 -0
  150. package/dist/http/alt-svc.js +186 -0
  151. package/dist/http/alt-svc.js.map +1 -0
  152. package/dist/http/early-hints.d.ts +23 -0
  153. package/dist/http/early-hints.d.ts.map +1 -0
  154. package/dist/http/early-hints.js +33 -0
  155. package/dist/http/early-hints.js.map +1 -0
  156. package/dist/http/form-data.d.ts +17 -35
  157. package/dist/http/form-data.d.ts.map +1 -1
  158. package/dist/http/form-data.js +12 -34
  159. package/dist/http/form-data.js.map +1 -1
  160. package/dist/http/h1/client.d.ts +14 -26
  161. package/dist/http/h1/client.d.ts.map +1 -1
  162. package/dist/http/h1/client.js +29 -22
  163. package/dist/http/h1/client.js.map +1 -1
  164. package/dist/http/h1/encoder.d.ts +10 -17
  165. package/dist/http/h1/encoder.d.ts.map +1 -1
  166. package/dist/http/h1/encoder.js +10 -17
  167. package/dist/http/h1/encoder.js.map +1 -1
  168. package/dist/http/h1/parser.d.ts +22 -59
  169. package/dist/http/h1/parser.d.ts.map +1 -1
  170. package/dist/http/h1/parser.js +15 -47
  171. package/dist/http/h1/parser.js.map +1 -1
  172. package/dist/http/h2/client.d.ts +18 -59
  173. package/dist/http/h2/client.d.ts.map +1 -1
  174. package/dist/http/h2/client.js +29 -64
  175. package/dist/http/h2/client.js.map +1 -1
  176. package/dist/http/h2/frames.d.ts +53 -84
  177. package/dist/http/h2/frames.d.ts.map +1 -1
  178. package/dist/http/h2/frames.js +48 -76
  179. package/dist/http/h2/frames.js.map +1 -1
  180. package/dist/http/h2/hpack.d.ts +16 -35
  181. package/dist/http/h2/hpack.d.ts.map +1 -1
  182. package/dist/http/h2/hpack.js +16 -35
  183. package/dist/http/h2/hpack.js.map +1 -1
  184. package/dist/http/h3/detection.d.ts +15 -0
  185. package/dist/http/h3/detection.d.ts.map +1 -0
  186. package/dist/http/h3/detection.js +41 -0
  187. package/dist/http/h3/detection.js.map +1 -0
  188. package/dist/http/negotiator.d.ts +43 -33
  189. package/dist/http/negotiator.d.ts.map +1 -1
  190. package/dist/http/negotiator.js +99 -41
  191. package/dist/http/negotiator.js.map +1 -1
  192. package/dist/http/pool.d.ts +34 -64
  193. package/dist/http/pool.d.ts.map +1 -1
  194. package/dist/http/pool.js +22 -41
  195. package/dist/http/pool.js.map +1 -1
  196. package/dist/http/resumable-upload.d.ts +76 -0
  197. package/dist/http/resumable-upload.d.ts.map +1 -0
  198. package/dist/http/resumable-upload.js +104 -0
  199. package/dist/http/resumable-upload.js.map +1 -0
  200. package/dist/http/trailers.d.ts +29 -0
  201. package/dist/http/trailers.d.ts.map +1 -0
  202. package/dist/http/trailers.js +57 -0
  203. package/dist/http/trailers.js.map +1 -0
  204. package/dist/index.d.ts +36 -8
  205. package/dist/index.d.ts.map +1 -1
  206. package/dist/index.js +32 -1
  207. package/dist/index.js.map +1 -1
  208. package/dist/middleware/interceptor.d.ts +13 -32
  209. package/dist/middleware/interceptor.d.ts.map +1 -1
  210. package/dist/middleware/interceptor.js +11 -16
  211. package/dist/middleware/interceptor.js.map +1 -1
  212. package/dist/middleware/rate-limiter.d.ts +8 -17
  213. package/dist/middleware/rate-limiter.d.ts.map +1 -1
  214. package/dist/middleware/rate-limiter.js +15 -12
  215. package/dist/middleware/rate-limiter.js.map +1 -1
  216. package/dist/middleware/retry-after.d.ts +15 -0
  217. package/dist/middleware/retry-after.d.ts.map +1 -0
  218. package/dist/middleware/retry-after.js +36 -0
  219. package/dist/middleware/retry-after.js.map +1 -0
  220. package/dist/middleware/retry.d.ts +9 -18
  221. package/dist/middleware/retry.d.ts.map +1 -1
  222. package/dist/middleware/retry.js +12 -9
  223. package/dist/middleware/retry.js.map +1 -1
  224. package/dist/proxy/auth.d.ts +73 -0
  225. package/dist/proxy/auth.d.ts.map +1 -0
  226. package/dist/proxy/auth.js +128 -0
  227. package/dist/proxy/auth.js.map +1 -0
  228. package/dist/proxy/env-proxy.d.ts +11 -0
  229. package/dist/proxy/env-proxy.d.ts.map +1 -0
  230. package/dist/proxy/env-proxy.js +56 -0
  231. package/dist/proxy/env-proxy.js.map +1 -0
  232. package/dist/proxy/http-proxy.d.ts +13 -18
  233. package/dist/proxy/http-proxy.d.ts.map +1 -1
  234. package/dist/proxy/http-proxy.js +24 -14
  235. package/dist/proxy/http-proxy.js.map +1 -1
  236. package/dist/proxy/socks.d.ts +13 -20
  237. package/dist/proxy/socks.d.ts.map +1 -1
  238. package/dist/proxy/socks.js +6 -9
  239. package/dist/proxy/socks.js.map +1 -1
  240. package/dist/sse/parser.d.ts +47 -0
  241. package/dist/sse/parser.d.ts.map +1 -0
  242. package/dist/sse/parser.js +139 -0
  243. package/dist/sse/parser.js.map +1 -0
  244. package/dist/tls/constants.d.ts +15 -74
  245. package/dist/tls/constants.d.ts.map +1 -1
  246. package/dist/tls/constants.js +15 -74
  247. package/dist/tls/constants.js.map +1 -1
  248. package/dist/tls/ct.d.ts +78 -0
  249. package/dist/tls/ct.d.ts.map +1 -0
  250. package/dist/tls/ct.js +175 -0
  251. package/dist/tls/ct.js.map +1 -0
  252. package/dist/tls/early-data.d.ts +45 -0
  253. package/dist/tls/early-data.d.ts.map +1 -0
  254. package/dist/tls/early-data.js +46 -0
  255. package/dist/tls/early-data.js.map +1 -0
  256. package/dist/tls/ech.d.ts +130 -0
  257. package/dist/tls/ech.d.ts.map +1 -0
  258. package/dist/tls/ech.js +353 -0
  259. package/dist/tls/ech.js.map +1 -0
  260. package/dist/tls/keylog.d.ts +34 -0
  261. package/dist/tls/keylog.d.ts.map +1 -0
  262. package/dist/tls/keylog.js +64 -0
  263. package/dist/tls/keylog.js.map +1 -0
  264. package/dist/tls/node-engine.d.ts +15 -14
  265. package/dist/tls/node-engine.d.ts.map +1 -1
  266. package/dist/tls/node-engine.js +54 -14
  267. package/dist/tls/node-engine.js.map +1 -1
  268. package/dist/tls/ocsp.d.ts +55 -0
  269. package/dist/tls/ocsp.d.ts.map +1 -0
  270. package/dist/tls/ocsp.js +131 -0
  271. package/dist/tls/ocsp.js.map +1 -0
  272. package/dist/tls/pin-verification.d.ts +10 -0
  273. package/dist/tls/pin-verification.d.ts.map +1 -0
  274. package/dist/tls/pin-verification.js +28 -0
  275. package/dist/tls/pin-verification.js.map +1 -0
  276. package/dist/tls/session-cache.d.ts +58 -0
  277. package/dist/tls/session-cache.d.ts.map +1 -0
  278. package/dist/tls/session-cache.js +76 -0
  279. package/dist/tls/session-cache.js.map +1 -0
  280. package/dist/tls/stealth/client-hello.d.ts +34 -32
  281. package/dist/tls/stealth/client-hello.d.ts.map +1 -1
  282. package/dist/tls/stealth/client-hello.js +116 -11
  283. package/dist/tls/stealth/client-hello.js.map +1 -1
  284. package/dist/tls/stealth/engine.d.ts +5 -15
  285. package/dist/tls/stealth/engine.d.ts.map +1 -1
  286. package/dist/tls/stealth/engine.js +163 -47
  287. package/dist/tls/stealth/engine.js.map +1 -1
  288. package/dist/tls/stealth/handshake.d.ts +23 -32
  289. package/dist/tls/stealth/handshake.d.ts.map +1 -1
  290. package/dist/tls/stealth/handshake.js +112 -27
  291. package/dist/tls/stealth/handshake.js.map +1 -1
  292. package/dist/tls/stealth/key-schedule.d.ts +59 -86
  293. package/dist/tls/stealth/key-schedule.d.ts.map +1 -1
  294. package/dist/tls/stealth/key-schedule.js +46 -58
  295. package/dist/tls/stealth/key-schedule.js.map +1 -1
  296. package/dist/tls/stealth/record-layer.d.ts +52 -75
  297. package/dist/tls/stealth/record-layer.d.ts.map +1 -1
  298. package/dist/tls/stealth/record-layer.js +47 -63
  299. package/dist/tls/stealth/record-layer.js.map +1 -1
  300. package/dist/tls/stealth/tls12-handshake.d.ts +30 -0
  301. package/dist/tls/stealth/tls12-handshake.d.ts.map +1 -0
  302. package/dist/tls/stealth/tls12-handshake.js +470 -0
  303. package/dist/tls/stealth/tls12-handshake.js.map +1 -0
  304. package/dist/tls/types.d.ts +46 -48
  305. package/dist/tls/types.d.ts.map +1 -1
  306. package/dist/utils/buffer-reader.d.ts +26 -81
  307. package/dist/utils/buffer-reader.d.ts.map +1 -1
  308. package/dist/utils/buffer-reader.js +26 -81
  309. package/dist/utils/buffer-reader.js.map +1 -1
  310. package/dist/utils/buffer-writer.d.ts +30 -66
  311. package/dist/utils/buffer-writer.d.ts.map +1 -1
  312. package/dist/utils/buffer-writer.js +30 -66
  313. package/dist/utils/buffer-writer.js.map +1 -1
  314. package/dist/utils/compression.d.ts +18 -0
  315. package/dist/utils/compression.d.ts.map +1 -0
  316. package/dist/utils/compression.js +34 -0
  317. package/dist/utils/compression.js.map +1 -0
  318. package/dist/utils/dictionary-transport.d.ts +97 -0
  319. package/dist/utils/dictionary-transport.d.ts.map +1 -0
  320. package/dist/utils/dictionary-transport.js +171 -0
  321. package/dist/utils/dictionary-transport.js.map +1 -0
  322. package/dist/utils/encoding.d.ts +12 -28
  323. package/dist/utils/encoding.d.ts.map +1 -1
  324. package/dist/utils/encoding.js +77 -40
  325. package/dist/utils/encoding.js.map +1 -1
  326. package/dist/utils/happy-eyeballs.d.ts +20 -7
  327. package/dist/utils/happy-eyeballs.d.ts.map +1 -1
  328. package/dist/utils/happy-eyeballs.js +57 -25
  329. package/dist/utils/happy-eyeballs.js.map +1 -1
  330. package/dist/utils/logger.d.ts +54 -81
  331. package/dist/utils/logger.d.ts.map +1 -1
  332. package/dist/utils/logger.js +92 -64
  333. package/dist/utils/logger.js.map +1 -1
  334. package/dist/utils/tcp-fast-open.d.ts +30 -0
  335. package/dist/utils/tcp-fast-open.d.ts.map +1 -0
  336. package/dist/utils/tcp-fast-open.js +36 -0
  337. package/dist/utils/tcp-fast-open.js.map +1 -0
  338. package/dist/utils/url.d.ts +18 -25
  339. package/dist/utils/url.d.ts.map +1 -1
  340. package/dist/utils/url.js +18 -25
  341. package/dist/utils/url.js.map +1 -1
  342. package/dist/ws/client.d.ts +35 -52
  343. package/dist/ws/client.d.ts.map +1 -1
  344. package/dist/ws/client.js +92 -37
  345. package/dist/ws/client.js.map +1 -1
  346. package/dist/ws/frame.d.ts +27 -42
  347. package/dist/ws/frame.d.ts.map +1 -1
  348. package/dist/ws/frame.js +25 -37
  349. package/dist/ws/frame.js.map +1 -1
  350. package/dist/ws/permessage-deflate.d.ts +53 -0
  351. package/dist/ws/permessage-deflate.d.ts.map +1 -0
  352. package/dist/ws/permessage-deflate.js +140 -0
  353. package/dist/ws/permessage-deflate.js.map +1 -0
  354. package/package.json +62 -62
package/dist/index.d.ts CHANGED
@@ -1,26 +1,54 @@
1
- /**
2
- * Public API entry point for the NLcURL library. Re-exports all types, classes,
3
- * and functions that form the stable public surface of the package.
4
- *
5
- * @module nlcurl
6
- */
7
- export type { HttpMethod, NLcURLRequest, NLcURLSessionConfig, RequestBody, RequestTimings, RetryConfig, TimeoutConfig } from "./core/request.js";
1
+ export type { HttpMethod, NLcURLRequest, NLcURLSessionConfig, RequestBody, RequestTimings, RetryConfig, TimeoutConfig, ProgressEvent, ProgressCallback, ServerSentEvent } from "./core/request.js";
8
2
  export { NLcURLResponse } from "./core/response.js";
9
3
  export type { ResponseMeta } from "./core/response.js";
10
4
  export { NLcURLError, TLSError, HTTPError, TimeoutError, ProxyError, AbortError, ConnectionError, ProtocolError } from "./core/errors.js";
11
5
  export { NLcURLSession, type RequestOptions } from "./core/session.js";
12
6
  export { createSession, request, get, post, put, patch, del, head } from "./core/client.js";
7
+ export { buildAuthHeader, parseAuthenticateScheme, type AuthConfig } from "./core/auth.js";
13
8
  export { getProfile, listProfiles, DEFAULT_PROFILE } from "./fingerprints/database.js";
14
9
  export type { BrowserProfile, TLSProfile, H2Profile, HeaderProfile } from "./fingerprints/types.js";
15
10
  export type { RequestInterceptor, ResponseInterceptor } from "./middleware/interceptor.js";
16
11
  export type { RateLimitConfig } from "./middleware/rate-limiter.js";
12
+ export { parseRetryAfter, getRetryAfterMs } from "./middleware/retry-after.js";
17
13
  export type { Logger, LogLevel, LogBindings } from "./utils/logger.js";
18
- export { ConsoleLogger, SILENT_LOGGER, setDefaultLogger, getDefaultLogger } from "./utils/logger.js";
14
+ export { ConsoleLogger, JsonLogger, SILENT_LOGGER, setDefaultLogger, getDefaultLogger } from "./utils/logger.js";
19
15
  export { CookieJar } from "./cookies/jar.js";
20
16
  export { isPublicSuffix, getRegistrableDomain } from "./cookies/public-suffix.js";
21
17
  export { FormData, type FormFile, type FormValue } from "./http/form-data.js";
22
18
  export type { TLSOptions } from "./tls/types.js";
23
19
  export { WebSocketClient, type WebSocketOptions, type WebSocketEvents } from "./ws/client.js";
24
20
  export { ja3Hash, ja3String } from "./fingerprints/ja3.js";
21
+ export { ja4Fingerprint, ja4aSection } from "./fingerprints/ja4.js";
25
22
  export { akamaiFingerprint } from "./fingerprints/akamai.js";
23
+ export { TLSSessionCache, type SessionTicketEntry, type SessionCacheOptions } from "./tls/session-cache.js";
24
+ export { setKeylogFile, getKeylogFile } from "./tls/keylog.js";
25
+ export { resolveEnvProxy } from "./proxy/env-proxy.js";
26
+ export { SSEParser, parseSSEStream } from "./sse/parser.js";
27
+ export { PerMessageDeflate, type DeflateParams, buildDeflateOffer, parseDeflateResponse } from "./ws/permessage-deflate.js";
28
+ export { isQuicAvailable } from "./http/h3/detection.js";
29
+ export { CacheStore, parseCacheControl } from "./cache/store.js";
30
+ export type { CacheConfig, CacheMode, CacheDirectives, CacheEntry } from "./cache/types.js";
31
+ export { HSTSStore } from "./hsts/store.js";
32
+ export type { HSTSConfig, HSTSEntry, HSTSPreloadEntry } from "./hsts/types.js";
33
+ export { DoHResolver } from "./dns/doh-resolver.js";
34
+ export { DNSCache, type DNSCacheConfig, type DNSCacheEntry } from "./dns/cache.js";
35
+ export { HTTPSRRResolver, type HTTPSRRResult } from "./dns/https-rr.js";
36
+ export type { DoHConfig, DNSConfig, DNSRecord, SVCBRecord, ResolvedAddress } from "./dns/types.js";
37
+ export { RTYPE, SvcParamKey } from "./dns/types.js";
38
+ export { AltSvcStore, type AltSvcEntry } from "./http/alt-svc.js";
39
+ export { parseLinkHeader, type EarlyHint, type EarlyHintsCallback } from "./http/early-hints.js";
40
+ export { compressBody, shouldCompress, type RequestEncoding } from "./utils/compression.js";
41
+ export { parseECHConfigList, generateGreaseECH, parseECHRetryConfigs, shouldRetryECH, type ECHConfig, type ECHParameters, type ECHOptions } from "./tls/ech.js";
42
+ export { parseOCSPResponse, isOCSPValid, validateOCSPStapling, OCSPResponseStatus, OCSPCertStatus, type OCSPResult } from "./tls/ocsp.js";
43
+ export { parseSCTList, validateSCTs, extractSCTsFromSocket, SCTVersion, SCTHashAlgorithm, SCTSignatureAlgorithm, type SCT, type SCTValidationResult } from "./tls/ct.js";
44
+ export { canSendEarlyData, prepareEarlyData, checkEarlyDataAccepted, type EarlyDataConfig, type EarlyDataResult } from "./tls/early-data.js";
45
+ export { isValidTrailerField, serializeTrailers, parseTrailers, buildTrailerHeader } from "./http/trailers.js";
46
+ export { buildUploadCreationHeaders, buildUploadResumeHeaders, buildUploadOffsetHeaders, parseUploadOffset, isUploadComplete, splitIntoChunks, parseUploadUrl, type UploadSession, type ResumableUploadConfig } from "./http/resumable-upload.js";
47
+ export { RangeCache, parseContentRange, parseRangeHeader, type ContentRange, type RangeSegment, type RangeCacheEntry } from "./cache/range.js";
48
+ export { parseNoVarySearch, urlsMatchWithNoVarySearch, normalizeUrlForCache, type NoVarySearchDirective } from "./cache/no-vary-search.js";
49
+ export { CacheGroupStore, parseCacheGroups, type CacheGroup } from "./cache/groups.js";
50
+ export { DictionaryStore, parseUseAsDictionary, computeDictionaryHash, buildAvailableDictionaryHeader, buildDictionaryAcceptEncoding, type CompressionDictionary, type DictionaryConfig } from "./utils/dictionary-transport.js";
51
+ export { isTFOSupported, buildTFOSocketOptions, getTFOStatus, type TFOOptions } from "./utils/tcp-fast-open.js";
52
+ export { DoTResolver, DOT_SERVERS, type DoTConfig } from "./dns/dot-resolver.js";
53
+ export { parseProxyAuthenticate, parseDigestChallenge, buildDigestAuth, buildBasicProxyAuth, buildProxyAuthorization, type ProxyAuthConfig, type ProxyAuthScheme, type DigestChallenge } from "./proxy/auth.js";
26
54
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,YAAY,EAAE,UAAU,EAAE,aAAa,EAAE,mBAAmB,EAAE,WAAW,EAAE,cAAc,EAAE,WAAW,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAEjJ,OAAO,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AACpD,YAAY,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAEvD,OAAO,EAAE,WAAW,EAAE,QAAQ,EAAE,SAAS,EAAE,YAAY,EAAE,UAAU,EAAE,UAAU,EAAE,eAAe,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAE1I,OAAO,EAAE,aAAa,EAAE,KAAK,cAAc,EAAE,MAAM,mBAAmB,CAAC;AACvE,OAAO,EAAE,aAAa,EAAE,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAC;AAE5F,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAC;AAEvF,YAAY,EAAE,cAAc,EAAE,UAAU,EAAE,SAAS,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AAEpG,YAAY,EAAE,kBAAkB,EAAE,mBAAmB,EAAE,MAAM,6BAA6B,CAAC;AAE3F,YAAY,EAAE,eAAe,EAAE,MAAM,8BAA8B,CAAC;AAEpE,YAAY,EAAE,MAAM,EAAE,QAAQ,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AACvE,OAAO,EAAE,aAAa,EAAE,aAAa,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AAErG,OAAO,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAC7C,OAAO,EAAE,cAAc,EAAE,oBAAoB,EAAE,MAAM,4BAA4B,CAAC;AAElF,OAAO,EAAE,QAAQ,EAAE,KAAK,QAAQ,EAAE,KAAK,SAAS,EAAE,MAAM,qBAAqB,CAAC;AAE9E,YAAY,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAEjD,OAAO,EAAE,eAAe,EAAE,KAAK,gBAAgB,EAAE,KAAK,eAAe,EAAE,MAAM,gBAAgB,CAAC;AAE9F,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;AAC3D,OAAO,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
package/dist/index.js CHANGED
@@ -2,12 +2,43 @@ export { NLcURLResponse } from "./core/response.js";
2
2
  export { NLcURLError, TLSError, HTTPError, TimeoutError, ProxyError, AbortError, ConnectionError, ProtocolError } from "./core/errors.js";
3
3
  export { NLcURLSession } from "./core/session.js";
4
4
  export { createSession, request, get, post, put, patch, del, head } from "./core/client.js";
5
+ export { buildAuthHeader, parseAuthenticateScheme } from "./core/auth.js";
5
6
  export { getProfile, listProfiles, DEFAULT_PROFILE } from "./fingerprints/database.js";
6
- export { ConsoleLogger, SILENT_LOGGER, setDefaultLogger, getDefaultLogger } from "./utils/logger.js";
7
+ export { parseRetryAfter, getRetryAfterMs } from "./middleware/retry-after.js";
8
+ export { ConsoleLogger, JsonLogger, SILENT_LOGGER, setDefaultLogger, getDefaultLogger } from "./utils/logger.js";
7
9
  export { CookieJar } from "./cookies/jar.js";
8
10
  export { isPublicSuffix, getRegistrableDomain } from "./cookies/public-suffix.js";
9
11
  export { FormData } from "./http/form-data.js";
10
12
  export { WebSocketClient } from "./ws/client.js";
11
13
  export { ja3Hash, ja3String } from "./fingerprints/ja3.js";
14
+ export { ja4Fingerprint, ja4aSection } from "./fingerprints/ja4.js";
12
15
  export { akamaiFingerprint } from "./fingerprints/akamai.js";
16
+ export { TLSSessionCache } from "./tls/session-cache.js";
17
+ export { setKeylogFile, getKeylogFile } from "./tls/keylog.js";
18
+ export { resolveEnvProxy } from "./proxy/env-proxy.js";
19
+ export { SSEParser, parseSSEStream } from "./sse/parser.js";
20
+ export { PerMessageDeflate, buildDeflateOffer, parseDeflateResponse } from "./ws/permessage-deflate.js";
21
+ export { isQuicAvailable } from "./http/h3/detection.js";
22
+ export { CacheStore, parseCacheControl } from "./cache/store.js";
23
+ export { HSTSStore } from "./hsts/store.js";
24
+ export { DoHResolver } from "./dns/doh-resolver.js";
25
+ export { DNSCache } from "./dns/cache.js";
26
+ export { HTTPSRRResolver } from "./dns/https-rr.js";
27
+ export { RTYPE, SvcParamKey } from "./dns/types.js";
28
+ export { AltSvcStore } from "./http/alt-svc.js";
29
+ export { parseLinkHeader } from "./http/early-hints.js";
30
+ export { compressBody, shouldCompress } from "./utils/compression.js";
31
+ export { parseECHConfigList, generateGreaseECH, parseECHRetryConfigs, shouldRetryECH } from "./tls/ech.js";
32
+ export { parseOCSPResponse, isOCSPValid, validateOCSPStapling, OCSPResponseStatus, OCSPCertStatus } from "./tls/ocsp.js";
33
+ export { parseSCTList, validateSCTs, extractSCTsFromSocket, SCTVersion, SCTHashAlgorithm, SCTSignatureAlgorithm } from "./tls/ct.js";
34
+ export { canSendEarlyData, prepareEarlyData, checkEarlyDataAccepted } from "./tls/early-data.js";
35
+ export { isValidTrailerField, serializeTrailers, parseTrailers, buildTrailerHeader } from "./http/trailers.js";
36
+ export { buildUploadCreationHeaders, buildUploadResumeHeaders, buildUploadOffsetHeaders, parseUploadOffset, isUploadComplete, splitIntoChunks, parseUploadUrl } from "./http/resumable-upload.js";
37
+ export { RangeCache, parseContentRange, parseRangeHeader } from "./cache/range.js";
38
+ export { parseNoVarySearch, urlsMatchWithNoVarySearch, normalizeUrlForCache } from "./cache/no-vary-search.js";
39
+ export { CacheGroupStore, parseCacheGroups } from "./cache/groups.js";
40
+ export { DictionaryStore, parseUseAsDictionary, computeDictionaryHash, buildAvailableDictionaryHeader, buildDictionaryAcceptEncoding } from "./utils/dictionary-transport.js";
41
+ export { isTFOSupported, buildTFOSocketOptions, getTFOStatus } from "./utils/tcp-fast-open.js";
42
+ export { DoTResolver, DOT_SERVERS } from "./dns/dot-resolver.js";
43
+ export { parseProxyAuthenticate, parseDigestChallenge, buildDigestAuth, buildBasicProxyAuth, buildProxyAuthorization } from "./proxy/auth.js";
13
44
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAQA,OAAO,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAGpD,OAAO,EAAE,WAAW,EAAE,QAAQ,EAAE,SAAS,EAAE,YAAY,EAAE,UAAU,EAAE,UAAU,EAAE,eAAe,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAE1I,OAAO,EAAE,aAAa,EAAuB,MAAM,mBAAmB,CAAC;AACvE,OAAO,EAAE,aAAa,EAAE,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAC;AAE5F,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAC;AASvF,OAAO,EAAE,aAAa,EAAE,aAAa,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AAErG,OAAO,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAC7C,OAAO,EAAE,cAAc,EAAE,oBAAoB,EAAE,MAAM,4BAA4B,CAAC;AAElF,OAAO,EAAE,QAAQ,EAAiC,MAAM,qBAAqB,CAAC;AAI9E,OAAO,EAAE,eAAe,EAA+C,MAAM,gBAAgB,CAAC;AAE9F,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;AAC3D,OAAO,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAGpD,OAAO,EAAE,WAAW,EAAE,QAAQ,EAAE,SAAS,EAAE,YAAY,EAAE,UAAU,EAAE,UAAU,EAAE,eAAe,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAE1I,OAAO,EAAE,aAAa,EAAuB,MAAM,mBAAmB,CAAC;AACvE,OAAO,EAAE,aAAa,EAAE,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAC;AAE5F,OAAO,EAAE,eAAe,EAAE,uBAAuB,EAAmB,MAAM,gBAAgB,CAAC;AAE3F,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAC;AAQvF,OAAO,EAAE,eAAe,EAAE,eAAe,EAAE,MAAM,6BAA6B,CAAC;AAG/E,OAAO,EAAE,aAAa,EAAE,UAAU,EAAE,aAAa,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AAEjH,OAAO,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAC7C,OAAO,EAAE,cAAc,EAAE,oBAAoB,EAAE,MAAM,4BAA4B,CAAC;AAElF,OAAO,EAAE,QAAQ,EAAiC,MAAM,qBAAqB,CAAC;AAI9E,OAAO,EAAE,eAAe,EAA+C,MAAM,gBAAgB,CAAC;AAE9F,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;AAC3D,OAAO,EAAE,cAAc,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AACpE,OAAO,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAE7D,OAAO,EAAE,eAAe,EAAqD,MAAM,wBAAwB,CAAC;AAE5G,OAAO,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAE/D,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAEvD,OAAO,EAAE,SAAS,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AAE5D,OAAO,EAAE,iBAAiB,EAAsB,iBAAiB,EAAE,oBAAoB,EAAE,MAAM,4BAA4B,CAAC;AAE5H,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAEzD,OAAO,EAAE,UAAU,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AAGjE,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAG5C,OAAO,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AACpD,OAAO,EAAE,QAAQ,EAA2C,MAAM,gBAAgB,CAAC;AACnF,OAAO,EAAE,eAAe,EAAsB,MAAM,mBAAmB,CAAC;AAExE,OAAO,EAAE,KAAK,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAEpD,OAAO,EAAE,WAAW,EAAoB,MAAM,mBAAmB,CAAC;AAElE,OAAO,EAAE,eAAe,EAA2C,MAAM,uBAAuB,CAAC;AAEjG,OAAO,EAAE,YAAY,EAAE,cAAc,EAAwB,MAAM,wBAAwB,CAAC;AAE5F,OAAO,EAAE,kBAAkB,EAAE,iBAAiB,EAAE,oBAAoB,EAAE,cAAc,EAAuD,MAAM,cAAc,CAAC;AAEhK,OAAO,EAAE,iBAAiB,EAAE,WAAW,EAAE,oBAAoB,EAAE,kBAAkB,EAAE,cAAc,EAAmB,MAAM,eAAe,CAAC;AAE1I,OAAO,EAAE,YAAY,EAAE,YAAY,EAAE,qBAAqB,EAAE,UAAU,EAAE,gBAAgB,EAAE,qBAAqB,EAAsC,MAAM,aAAa,CAAC;AAEzK,OAAO,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,sBAAsB,EAA8C,MAAM,qBAAqB,CAAC;AAE7I,OAAO,EAAE,mBAAmB,EAAE,iBAAiB,EAAE,aAAa,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AAE/G,OAAO,EAAE,0BAA0B,EAAE,wBAAwB,EAAE,wBAAwB,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,eAAe,EAAE,cAAc,EAAkD,MAAM,4BAA4B,CAAC;AAElP,OAAO,EAAE,UAAU,EAAE,iBAAiB,EAAE,gBAAgB,EAA8D,MAAM,kBAAkB,CAAC;AAE/I,OAAO,EAAE,iBAAiB,EAAE,yBAAyB,EAAE,oBAAoB,EAA8B,MAAM,2BAA2B,CAAC;AAE3I,OAAO,EAAE,eAAe,EAAE,gBAAgB,EAAmB,MAAM,mBAAmB,CAAC;AAEvF,OAAO,EAAE,eAAe,EAAE,oBAAoB,EAAE,qBAAqB,EAAE,8BAA8B,EAAE,6BAA6B,EAAqD,MAAM,iCAAiC,CAAC;AAEjO,OAAO,EAAE,cAAc,EAAE,qBAAqB,EAAE,YAAY,EAAmB,MAAM,0BAA0B,CAAC;AAEhH,OAAO,EAAE,WAAW,EAAE,WAAW,EAAkB,MAAM,uBAAuB,CAAC;AAEjF,OAAO,EAAE,sBAAsB,EAAE,oBAAoB,EAAE,eAAe,EAAE,mBAAmB,EAAE,uBAAuB,EAAoE,MAAM,iBAAiB,CAAC"}
@@ -1,58 +1,39 @@
1
1
  import type { NLcURLRequest } from "../core/request.js";
2
2
  import { NLcURLResponse } from "../core/response.js";
3
- /**
4
- * A function that inspects and optionally transforms an outgoing request before
5
- * it is sent. May be synchronous or asynchronous.
6
- *
7
- * @callback RequestInterceptor
8
- * @param {NLcURLRequest} request - The outgoing request descriptor.
9
- * @returns {NLcURLRequest | Promise<NLcURLRequest>} The (potentially modified) request.
10
- */
3
+ /** Function that transforms a request before it is sent. */
11
4
  export type RequestInterceptor = (request: NLcURLRequest) => NLcURLRequest | Promise<NLcURLRequest>;
12
- /**
13
- * A function that inspects and optionally transforms an incoming response before
14
- * it is returned to the caller. May be synchronous or asynchronous.
15
- *
16
- * @callback ResponseInterceptor
17
- * @param {NLcURLResponse} response - The received response.
18
- * @returns {NLcURLResponse | Promise<NLcURLResponse>} The (potentially modified) response.
19
- */
5
+ /** Function that transforms a response after it is received. */
20
6
  export type ResponseInterceptor = (response: NLcURLResponse) => NLcURLResponse | Promise<NLcURLResponse>;
21
- /**
22
- * Maintains ordered lists of request and response interceptors and applies
23
- * them sequentially. Interceptors are invoked in the order they were added.
24
- */
7
+ /** Ordered chain of request and response interceptors. */
25
8
  export declare class InterceptorChain {
26
9
  private readonly requestInterceptors;
27
10
  private readonly responseInterceptors;
28
11
  /**
29
- * Registers a request interceptor. Interceptors are applied in registration order.
12
+ * Register a request interceptor.
30
13
  *
31
- * @param {RequestInterceptor} fn - Interceptor function to add.
14
+ * @param {RequestInterceptor} fn - Interceptor function.
32
15
  * @returns {this} This instance for chaining.
33
16
  */
34
17
  addRequestInterceptor(fn: RequestInterceptor): this;
35
18
  /**
36
- * Registers a response interceptor. Interceptors are applied in registration order.
19
+ * Register a response interceptor.
37
20
  *
38
- * @param {ResponseInterceptor} fn - Interceptor function to add.
21
+ * @param {ResponseInterceptor} fn - Interceptor function.
39
22
  * @returns {this} This instance for chaining.
40
23
  */
41
24
  addResponseInterceptor(fn: ResponseInterceptor): this;
42
25
  /**
43
- * Passes `request` through all registered request interceptors in order and
44
- * returns the final transformed request.
26
+ * Run all request interceptors in order.
45
27
  *
46
- * @param {NLcURLRequest} request - Originating request descriptor.
47
- * @returns {Promise<NLcURLRequest>} The request after all interceptors have run.
28
+ * @param {NLcURLRequest} request - Original request.
29
+ * @returns {Promise<NLcURLRequest>} Transformed request.
48
30
  */
49
31
  processRequest(request: NLcURLRequest): Promise<NLcURLRequest>;
50
32
  /**
51
- * Passes `response` through all registered response interceptors in order and
52
- * returns the final transformed response.
33
+ * Run all response interceptors in order.
53
34
  *
54
- * @param {NLcURLResponse} response - Received response.
55
- * @returns {Promise<NLcURLResponse>} The response after all interceptors have run.
35
+ * @param {NLcURLResponse} response - Original response.
36
+ * @returns {Promise<NLcURLResponse>} Transformed response.
56
37
  */
57
38
  processResponse(response: NLcURLResponse): Promise<NLcURLResponse>;
58
39
  }
@@ -1 +1 @@
1
- {"version":3,"file":"interceptor.d.ts","sourceRoot":"","sources":["../../src/middleware/interceptor.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACxD,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAErD;;;;;;;GAOG;AACH,MAAM,MAAM,kBAAkB,GAAG,CAAC,OAAO,EAAE,aAAa,KAAK,aAAa,GAAG,OAAO,CAAC,aAAa,CAAC,CAAC;AAEpG;;;;;;;GAOG;AACH,MAAM,MAAM,mBAAmB,GAAG,CAAC,QAAQ,EAAE,cAAc,KAAK,cAAc,GAAG,OAAO,CAAC,cAAc,CAAC,CAAC;AAEzG;;;GAGG;AACH,qBAAa,gBAAgB;IAC3B,OAAO,CAAC,QAAQ,CAAC,mBAAmB,CAA4B;IAChE,OAAO,CAAC,QAAQ,CAAC,oBAAoB,CAA6B;IAElE;;;;;OAKG;IACH,qBAAqB,CAAC,EAAE,EAAE,kBAAkB,GAAG,IAAI;IAKnD;;;;;OAKG;IACH,sBAAsB,CAAC,EAAE,EAAE,mBAAmB,GAAG,IAAI;IAKrD;;;;;;OAMG;IACG,cAAc,CAAC,OAAO,EAAE,aAAa,GAAG,OAAO,CAAC,aAAa,CAAC;IAQpE;;;;;;OAMG;IACG,eAAe,CAAC,QAAQ,EAAE,cAAc,GAAG,OAAO,CAAC,cAAc,CAAC;CAOzE"}
1
+ {"version":3,"file":"interceptor.d.ts","sourceRoot":"","sources":["../../src/middleware/interceptor.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACxD,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAErD,4DAA4D;AAC5D,MAAM,MAAM,kBAAkB,GAAG,CAAC,OAAO,EAAE,aAAa,KAAK,aAAa,GAAG,OAAO,CAAC,aAAa,CAAC,CAAC;AAEpG,gEAAgE;AAChE,MAAM,MAAM,mBAAmB,GAAG,CAAC,QAAQ,EAAE,cAAc,KAAK,cAAc,GAAG,OAAO,CAAC,cAAc,CAAC,CAAC;AAEzG,0DAA0D;AAC1D,qBAAa,gBAAgB;IAC3B,OAAO,CAAC,QAAQ,CAAC,mBAAmB,CAA4B;IAChE,OAAO,CAAC,QAAQ,CAAC,oBAAoB,CAA6B;IAElE;;;;;OAKG;IACH,qBAAqB,CAAC,EAAE,EAAE,kBAAkB,GAAG,IAAI;IAKnD;;;;;OAKG;IACH,sBAAsB,CAAC,EAAE,EAAE,mBAAmB,GAAG,IAAI;IAKrD;;;;;OAKG;IACG,cAAc,CAAC,OAAO,EAAE,aAAa,GAAG,OAAO,CAAC,aAAa,CAAC;IAQpE;;;;;OAKG;IACG,eAAe,CAAC,QAAQ,EAAE,cAAc,GAAG,OAAO,CAAC,cAAc,CAAC;CAOzE"}
@@ -1,14 +1,11 @@
1
- /**
2
- * Maintains ordered lists of request and response interceptors and applies
3
- * them sequentially. Interceptors are invoked in the order they were added.
4
- */
1
+ /** Ordered chain of request and response interceptors. */
5
2
  export class InterceptorChain {
6
3
  requestInterceptors = [];
7
4
  responseInterceptors = [];
8
5
  /**
9
- * Registers a request interceptor. Interceptors are applied in registration order.
6
+ * Register a request interceptor.
10
7
  *
11
- * @param {RequestInterceptor} fn - Interceptor function to add.
8
+ * @param {RequestInterceptor} fn - Interceptor function.
12
9
  * @returns {this} This instance for chaining.
13
10
  */
14
11
  addRequestInterceptor(fn) {
@@ -16,9 +13,9 @@ export class InterceptorChain {
16
13
  return this;
17
14
  }
18
15
  /**
19
- * Registers a response interceptor. Interceptors are applied in registration order.
16
+ * Register a response interceptor.
20
17
  *
21
- * @param {ResponseInterceptor} fn - Interceptor function to add.
18
+ * @param {ResponseInterceptor} fn - Interceptor function.
22
19
  * @returns {this} This instance for chaining.
23
20
  */
24
21
  addResponseInterceptor(fn) {
@@ -26,11 +23,10 @@ export class InterceptorChain {
26
23
  return this;
27
24
  }
28
25
  /**
29
- * Passes `request` through all registered request interceptors in order and
30
- * returns the final transformed request.
26
+ * Run all request interceptors in order.
31
27
  *
32
- * @param {NLcURLRequest} request - Originating request descriptor.
33
- * @returns {Promise<NLcURLRequest>} The request after all interceptors have run.
28
+ * @param {NLcURLRequest} request - Original request.
29
+ * @returns {Promise<NLcURLRequest>} Transformed request.
34
30
  */
35
31
  async processRequest(request) {
36
32
  let req = request;
@@ -40,11 +36,10 @@ export class InterceptorChain {
40
36
  return req;
41
37
  }
42
38
  /**
43
- * Passes `response` through all registered response interceptors in order and
44
- * returns the final transformed response.
39
+ * Run all response interceptors in order.
45
40
  *
46
- * @param {NLcURLResponse} response - Received response.
47
- * @returns {Promise<NLcURLResponse>} The response after all interceptors have run.
41
+ * @param {NLcURLResponse} response - Original response.
42
+ * @returns {Promise<NLcURLResponse>} Transformed response.
48
43
  */
49
44
  async processResponse(response) {
50
45
  let resp = response;
@@ -1 +1 @@
1
- {"version":3,"file":"interceptor.js","sourceRoot":"","sources":["../../src/middleware/interceptor.ts"],"names":[],"mappings":"AAuBA;;;GAGG;AACH,MAAM,OAAO,gBAAgB;IACV,mBAAmB,GAAyB,EAAE,CAAC;IAC/C,oBAAoB,GAA0B,EAAE,CAAC;IAElE;;;;;OAKG;IACH,qBAAqB,CAAC,EAAsB;QAC1C,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QAClC,OAAO,IAAI,CAAC;IACd,CAAC;IAED;;;;;OAKG;IACH,sBAAsB,CAAC,EAAuB;QAC5C,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACnC,OAAO,IAAI,CAAC;IACd,CAAC;IAED;;;;;;OAMG;IACH,KAAK,CAAC,cAAc,CAAC,OAAsB;QACzC,IAAI,GAAG,GAAG,OAAO,CAAC;QAClB,KAAK,MAAM,EAAE,IAAI,IAAI,CAAC,mBAAmB,EAAE,CAAC;YAC1C,GAAG,GAAG,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC;QACtB,CAAC;QACD,OAAO,GAAG,CAAC;IACb,CAAC;IAED;;;;;;OAMG;IACH,KAAK,CAAC,eAAe,CAAC,QAAwB;QAC5C,IAAI,IAAI,GAAG,QAAQ,CAAC;QACpB,KAAK,MAAM,EAAE,IAAI,IAAI,CAAC,oBAAoB,EAAE,CAAC;YAC3C,IAAI,GAAG,MAAM,EAAE,CAAC,IAAI,CAAC,CAAC;QACxB,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC;CACF"}
1
+ {"version":3,"file":"interceptor.js","sourceRoot":"","sources":["../../src/middleware/interceptor.ts"],"names":[],"mappings":"AASA,0DAA0D;AAC1D,MAAM,OAAO,gBAAgB;IACV,mBAAmB,GAAyB,EAAE,CAAC;IAC/C,oBAAoB,GAA0B,EAAE,CAAC;IAElE;;;;;OAKG;IACH,qBAAqB,CAAC,EAAsB;QAC1C,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QAClC,OAAO,IAAI,CAAC;IACd,CAAC;IAED;;;;;OAKG;IACH,sBAAsB,CAAC,EAAuB;QAC5C,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACnC,OAAO,IAAI,CAAC;IACd,CAAC;IAED;;;;;OAKG;IACH,KAAK,CAAC,cAAc,CAAC,OAAsB;QACzC,IAAI,GAAG,GAAG,OAAO,CAAC;QAClB,KAAK,MAAM,EAAE,IAAI,IAAI,CAAC,mBAAmB,EAAE,CAAC;YAC1C,GAAG,GAAG,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC;QACtB,CAAC;QACD,OAAO,GAAG,CAAC;IACb,CAAC;IAED;;;;;OAKG;IACH,KAAK,CAAC,eAAe,CAAC,QAAwB;QAC5C,IAAI,IAAI,GAAG,QAAQ,CAAC;QACpB,KAAK,MAAM,EAAE,IAAI,IAAI,CAAC,oBAAoB,EAAE,CAAC;YAC3C,IAAI,GAAG,MAAM,EAAE,CAAC,IAAI,CAAC,CAAC;QACxB,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC;CACF"}
@@ -1,19 +1,11 @@
1
- /**
2
- * Configuration options for a token-bucket rate limiter.
3
- *
4
- * @typedef {Object} RateLimitConfig
5
- * @property {number} maxRequests - Maximum number of requests allowed per `windowMs` interval.
6
- * @property {number} windowMs - Duration of the rate-limiting window in milliseconds.
7
- */
1
+ /** Configuration for the token-bucket rate limiter. */
8
2
  export interface RateLimitConfig {
3
+ /** Maximum number of requests allowed per window. */
9
4
  maxRequests: number;
5
+ /** Window duration in milliseconds. */
10
6
  windowMs: number;
11
7
  }
12
- /**
13
- * Token-bucket rate limiter. Callers must call {@link RateLimiter.acquire} and
14
- * await the returned promise before sending each request. Requests that would
15
- * exceed the configured rate are queued and granted once the window refills.
16
- */
8
+ /** Token-bucket rate limiter for outgoing requests. */
17
9
  export declare class RateLimiter {
18
10
  private readonly maxRequests;
19
11
  private readonly windowMs;
@@ -21,16 +13,15 @@ export declare class RateLimiter {
21
13
  private lastRefill;
22
14
  private waitQueue;
23
15
  /**
24
- * Creates a new RateLimiter.
16
+ * Create a new rate limiter.
25
17
  *
26
- * @param {RateLimitConfig} config - Rate-limit parameters.
18
+ * @param {RateLimitConfig} config - Rate limit configuration.
27
19
  */
28
20
  constructor(config: RateLimitConfig);
29
21
  /**
30
- * Acquires a rate-limit token. Resolves immediately when a token is
31
- * available, or waits until the current window refills.
22
+ * Acquire a token, waiting if the rate limit has been reached.
32
23
  *
33
- * @returns {Promise<void>} Resolves once a token has been granted to the caller.
24
+ * @returns {Promise<void>} Promise that resolves when a token is available.
34
25
  */
35
26
  acquire(): Promise<void>;
36
27
  private drain;
@@ -1 +1 @@
1
- {"version":3,"file":"rate-limiter.d.ts","sourceRoot":"","sources":["../../src/middleware/rate-limiter.ts"],"names":[],"mappings":"AAEA;;;;;;GAMG;AACH,MAAM,WAAW,eAAe;IAC9B,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED;;;;GAIG;AACH,qBAAa,WAAW;IACtB,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAS;IACrC,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAS;IAClC,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,UAAU,CAAS;IAC3B,OAAO,CAAC,SAAS,CAAyB;IAE1C;;;;OAIG;gBACS,MAAM,EAAE,eAAe;IAQnC;;;;;OAKG;IACG,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;IAgB9B,OAAO,CAAC,KAAK;IAeb,OAAO,CAAC,MAAM;CAQf"}
1
+ {"version":3,"file":"rate-limiter.d.ts","sourceRoot":"","sources":["../../src/middleware/rate-limiter.ts"],"names":[],"mappings":"AAEA,uDAAuD;AACvD,MAAM,WAAW,eAAe;IAC9B,qDAAqD;IACrD,WAAW,EAAE,MAAM,CAAC;IACpB,uCAAuC;IACvC,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,uDAAuD;AACvD,qBAAa,WAAW;IACtB,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAS;IACrC,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAS;IAClC,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,UAAU,CAAS;IAC3B,OAAO,CAAC,SAAS,CAAyB;IAE1C;;;;OAIG;gBACS,MAAM,EAAE,eAAe;IAQnC;;;;OAIG;IACG,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;IAkB9B,OAAO,CAAC,KAAK;IAiBb,OAAO,CAAC,MAAM;CAYf"}
@@ -1,9 +1,5 @@
1
1
  import { validateRateLimitConfig } from "../core/validation.js";
2
- /**
3
- * Token-bucket rate limiter. Callers must call {@link RateLimiter.acquire} and
4
- * await the returned promise before sending each request. Requests that would
5
- * exceed the configured rate are queued and granted once the window refills.
6
- */
2
+ /** Token-bucket rate limiter for outgoing requests. */
7
3
  export class RateLimiter {
8
4
  maxRequests;
9
5
  windowMs;
@@ -11,9 +7,9 @@ export class RateLimiter {
11
7
  lastRefill;
12
8
  waitQueue = [];
13
9
  /**
14
- * Creates a new RateLimiter.
10
+ * Create a new rate limiter.
15
11
  *
16
- * @param {RateLimitConfig} config - Rate-limit parameters.
12
+ * @param {RateLimitConfig} config - Rate limit configuration.
17
13
  */
18
14
  constructor(config) {
19
15
  validateRateLimitConfig(config);
@@ -23,10 +19,9 @@ export class RateLimiter {
23
19
  this.lastRefill = Date.now();
24
20
  }
25
21
  /**
26
- * Acquires a rate-limit token. Resolves immediately when a token is
27
- * available, or waits until the current window refills.
22
+ * Acquire a token, waiting if the rate limit has been reached.
28
23
  *
29
- * @returns {Promise<void>} Resolves once a token has been granted to the caller.
24
+ * @returns {Promise<void>} Promise that resolves when a token is available.
30
25
  */
31
26
  async acquire() {
32
27
  this.refill();
@@ -38,7 +33,9 @@ export class RateLimiter {
38
33
  this.waitQueue.push(resolve);
39
34
  const elapsed = Date.now() - this.lastRefill;
40
35
  const waitMs = Math.max(1, this.windowMs - elapsed);
41
- setTimeout(() => this.drain(), waitMs);
36
+ setTimeout(() => {
37
+ this.drain();
38
+ }, waitMs);
42
39
  });
43
40
  }
44
41
  drain() {
@@ -51,12 +48,18 @@ export class RateLimiter {
51
48
  if (this.waitQueue.length > 0) {
52
49
  const elapsed = Date.now() - this.lastRefill;
53
50
  const waitMs = Math.max(1, this.windowMs - elapsed);
54
- setTimeout(() => this.drain(), waitMs);
51
+ setTimeout(() => {
52
+ this.drain();
53
+ }, waitMs);
55
54
  }
56
55
  }
57
56
  refill() {
58
57
  const now = Date.now();
59
58
  const elapsed = now - this.lastRefill;
59
+ if (elapsed < 0) {
60
+ this.lastRefill = now;
61
+ return;
62
+ }
60
63
  if (elapsed >= this.windowMs) {
61
64
  this.tokens = this.maxRequests;
62
65
  this.lastRefill = now;
@@ -1 +1 @@
1
- {"version":3,"file":"rate-limiter.js","sourceRoot":"","sources":["../../src/middleware/rate-limiter.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,uBAAuB,EAAE,MAAM,uBAAuB,CAAC;AAchE;;;;GAIG;AACH,MAAM,OAAO,WAAW;IACL,WAAW,CAAS;IACpB,QAAQ,CAAS;IAC1B,MAAM,CAAS;IACf,UAAU,CAAS;IACnB,SAAS,GAAsB,EAAE,CAAC;IAE1C;;;;OAIG;IACH,YAAY,MAAuB;QACjC,uBAAuB,CAAC,MAA4C,CAAC,CAAC;QACtE,IAAI,CAAC,WAAW,GAAG,MAAM,CAAC,WAAW,CAAC;QACtC,IAAI,CAAC,QAAQ,GAAG,MAAM,CAAC,QAAQ,CAAC;QAChC,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC,WAAW,CAAC;QACjC,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;IAC/B,CAAC;IAED;;;;;OAKG;IACH,KAAK,CAAC,OAAO;QACX,IAAI,CAAC,MAAM,EAAE,CAAC;QAEd,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACpB,IAAI,CAAC,MAAM,EAAE,CAAC;YACd,OAAO;QACT,CAAC;QAED,MAAM,IAAI,OAAO,CAAO,CAAC,OAAO,EAAE,EAAE;YAClC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;YAC7B,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,UAAU,CAAC;YAC7C,MAAM,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAC,CAAC;YACpD,UAAU,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,KAAK,EAAE,EAAE,MAAM,CAAC,CAAC;QACzC,CAAC,CAAC,CAAC;IACL,CAAC;IAEO,KAAK;QACX,IAAI,CAAC,MAAM,EAAE,CAAC;QACd,OAAO,IAAI,CAAC,MAAM,GAAG,CAAC,IAAI,IAAI,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACpD,IAAI,CAAC,MAAM,EAAE,CAAC;YACd,MAAM,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,EAAG,CAAC;YACrC,IAAI,EAAE,CAAC;QACT,CAAC;QAED,IAAI,IAAI,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC9B,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,UAAU,CAAC;YAC7C,MAAM,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAC,CAAC;YACpD,UAAU,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,KAAK,EAAE,EAAE,MAAM,CAAC,CAAC;QACzC,CAAC;IACH,CAAC;IAEO,MAAM;QACZ,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QACvB,MAAM,OAAO,GAAG,GAAG,GAAG,IAAI,CAAC,UAAU,CAAC;QACtC,IAAI,OAAO,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;YAC7B,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,WAAW,CAAC;YAC/B,IAAI,CAAC,UAAU,GAAG,GAAG,CAAC;QACxB,CAAC;IACH,CAAC;CACF"}
1
+ {"version":3,"file":"rate-limiter.js","sourceRoot":"","sources":["../../src/middleware/rate-limiter.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,uBAAuB,EAAE,MAAM,uBAAuB,CAAC;AAUhE,uDAAuD;AACvD,MAAM,OAAO,WAAW;IACL,WAAW,CAAS;IACpB,QAAQ,CAAS;IAC1B,MAAM,CAAS;IACf,UAAU,CAAS;IACnB,SAAS,GAAsB,EAAE,CAAC;IAE1C;;;;OAIG;IACH,YAAY,MAAuB;QACjC,uBAAuB,CAAC,MAA4C,CAAC,CAAC;QACtE,IAAI,CAAC,WAAW,GAAG,MAAM,CAAC,WAAW,CAAC;QACtC,IAAI,CAAC,QAAQ,GAAG,MAAM,CAAC,QAAQ,CAAC;QAChC,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC,WAAW,CAAC;QACjC,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;IAC/B,CAAC;IAED;;;;OAIG;IACH,KAAK,CAAC,OAAO;QACX,IAAI,CAAC,MAAM,EAAE,CAAC;QAEd,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACpB,IAAI,CAAC,MAAM,EAAE,CAAC;YACd,OAAO;QACT,CAAC;QAED,MAAM,IAAI,OAAO,CAAO,CAAC,OAAO,EAAE,EAAE;YAClC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;YAC7B,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,UAAU,CAAC;YAC7C,MAAM,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAC,CAAC;YACpD,UAAU,CAAC,GAAG,EAAE;gBACd,IAAI,CAAC,KAAK,EAAE,CAAC;YACf,CAAC,EAAE,MAAM,CAAC,CAAC;QACb,CAAC,CAAC,CAAC;IACL,CAAC;IAEO,KAAK;QACX,IAAI,CAAC,MAAM,EAAE,CAAC;QACd,OAAO,IAAI,CAAC,MAAM,GAAG,CAAC,IAAI,IAAI,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACpD,IAAI,CAAC,MAAM,EAAE,CAAC;YACd,MAAM,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,EAAG,CAAC;YACrC,IAAI,EAAE,CAAC;QACT,CAAC;QAED,IAAI,IAAI,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC9B,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,UAAU,CAAC;YAC7C,MAAM,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAC,CAAC;YACpD,UAAU,CAAC,GAAG,EAAE;gBACd,IAAI,CAAC,KAAK,EAAE,CAAC;YACf,CAAC,EAAE,MAAM,CAAC,CAAC;QACb,CAAC;IACH,CAAC;IAEO,MAAM;QACZ,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QACvB,MAAM,OAAO,GAAG,GAAG,GAAG,IAAI,CAAC,UAAU,CAAC;QACtC,IAAI,OAAO,GAAG,CAAC,EAAE,CAAC;YAChB,IAAI,CAAC,UAAU,GAAG,GAAG,CAAC;YACtB,OAAO;QACT,CAAC;QACD,IAAI,OAAO,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;YAC7B,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,WAAW,CAAC;YAC/B,IAAI,CAAC,UAAU,GAAG,GAAG,CAAC;QACxB,CAAC;IACH,CAAC;CACF"}
@@ -0,0 +1,15 @@
1
+ /**
2
+ * Parse a Retry-After header value into milliseconds.
3
+ *
4
+ * @param {string} value - Raw Retry-After header (seconds or HTTP date).
5
+ * @returns {number|undefined} Delay in milliseconds, or `undefined` if unparseable.
6
+ */
7
+ export declare function parseRetryAfter(value: string): number | undefined;
8
+ /**
9
+ * Extract the retry delay from response headers.
10
+ *
11
+ * @param {Record<string, string>} headers - Response headers.
12
+ * @returns {number|undefined} Delay in milliseconds, or `undefined` if no Retry-After header.
13
+ */
14
+ export declare function getRetryAfterMs(headers: Record<string, string>): number | undefined;
15
+ //# sourceMappingURL=retry-after.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"retry-after.d.ts","sourceRoot":"","sources":["../../src/middleware/retry-after.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,wBAAgB,eAAe,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAmBjE;AAED;;;;;GAKG;AACH,wBAAgB,eAAe,CAAC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,MAAM,GAAG,SAAS,CAInF"}
@@ -0,0 +1,36 @@
1
+ /**
2
+ * Parse a Retry-After header value into milliseconds.
3
+ *
4
+ * @param {string} value - Raw Retry-After header (seconds or HTTP date).
5
+ * @returns {number|undefined} Delay in milliseconds, or `undefined` if unparseable.
6
+ */
7
+ export function parseRetryAfter(value) {
8
+ if (!value)
9
+ return undefined;
10
+ const trimmed = value.trim();
11
+ if (/^\d+$/.test(trimmed)) {
12
+ const seconds = parseInt(trimmed, 10);
13
+ if (Number.isFinite(seconds) && seconds >= 0) {
14
+ return seconds * 1000;
15
+ }
16
+ }
17
+ const date = new Date(trimmed);
18
+ if (!Number.isNaN(date.getTime())) {
19
+ const delayMs = date.getTime() - Date.now();
20
+ return Math.max(0, delayMs);
21
+ }
22
+ return undefined;
23
+ }
24
+ /**
25
+ * Extract the retry delay from response headers.
26
+ *
27
+ * @param {Record<string, string>} headers - Response headers.
28
+ * @returns {number|undefined} Delay in milliseconds, or `undefined` if no Retry-After header.
29
+ */
30
+ export function getRetryAfterMs(headers) {
31
+ const value = headers["retry-after"];
32
+ if (!value)
33
+ return undefined;
34
+ return parseRetryAfter(value);
35
+ }
36
+ //# sourceMappingURL=retry-after.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"retry-after.js","sourceRoot":"","sources":["../../src/middleware/retry-after.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,MAAM,UAAU,eAAe,CAAC,KAAa;IAC3C,IAAI,CAAC,KAAK;QAAE,OAAO,SAAS,CAAC;IAE7B,MAAM,OAAO,GAAG,KAAK,CAAC,IAAI,EAAE,CAAC;IAE7B,IAAI,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC;QAC1B,MAAM,OAAO,GAAG,QAAQ,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;QACtC,IAAI,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,OAAO,IAAI,CAAC,EAAE,CAAC;YAC7C,OAAO,OAAO,GAAG,IAAI,CAAC;QACxB,CAAC;IACH,CAAC;IAED,MAAM,IAAI,GAAG,IAAI,IAAI,CAAC,OAAO,CAAC,CAAC;IAC/B,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,EAAE,CAAC;QAClC,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,EAAE,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QAC5C,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC;IAC9B,CAAC;IAED,OAAO,SAAS,CAAC;AACnB,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,eAAe,CAAC,OAA+B;IAC7D,MAAM,KAAK,GAAG,OAAO,CAAC,aAAa,CAAC,CAAC;IACrC,IAAI,CAAC,KAAK;QAAE,OAAO,SAAS,CAAC;IAC7B,OAAO,eAAe,CAAC,KAAK,CAAC,CAAC;AAChC,CAAC"}
@@ -1,31 +1,22 @@
1
1
  import type { RetryConfig } from "../core/request.js";
2
2
  import { NLcURLResponse } from "../core/response.js";
3
3
  import { type Logger } from "../utils/logger.js";
4
- /**
5
- * Carries context about the current retry attempt that is passed to the
6
- * `execute` callback on each invocation.
7
- *
8
- * @typedef {Object} RetryContext
9
- * @property {number} attempt - Zero-based attempt index (0 = first try).
10
- * @property {Error} [lastError] - The error thrown by the previous attempt, if any.
11
- * @property {NLcURLResponse} [lastResponse] - The response from the previous attempt, if any.
12
- */
4
+ /** Context passed to each retry attempt. */
13
5
  export interface RetryContext {
6
+ /** Current attempt number (1-based). */
14
7
  attempt: number;
8
+ /** Error from the previous attempt, if any. */
15
9
  lastError?: Error;
10
+ /** Response from the previous attempt, if any. */
16
11
  lastResponse?: NLcURLResponse;
17
12
  }
18
13
  /**
19
- * Executes `execute` up to `config.count + 1` times with configurable
20
- * back-off and jitter between attempts. Transparent to `AbortError` -- those
21
- * propagate immediately without retry.
14
+ * Execute a request function with configurable retry logic.
22
15
  *
23
- * @param {RetryConfig | undefined} config - Retry parameters; `undefined` uses library defaults.
24
- * @param {(ctx: RetryContext) => Promise<NLcURLResponse>} execute - The operation to attempt.
25
- * @param {Logger} [logger] - Optional logger for retry diagnostics.
26
- * @returns {Promise<NLcURLResponse>} The first successful response.
27
- * @throws {AbortError} Immediately if the operation is aborted.
28
- * @throws {Error} Re-throws the last error if all attempts are exhausted.
16
+ * @param {RetryConfig|undefined} config - Retry configuration.
17
+ * @param {(ctx: RetryContext) => Promise<NLcURLResponse>} execute - Function that performs the request attempt.
18
+ * @param {Logger} [logger] - Optional logger for retry events.
19
+ * @returns {Promise<NLcURLResponse>} Final HTTP response after all retries.
29
20
  */
30
21
  export declare function withRetry(config: RetryConfig | undefined, execute: (ctx: RetryContext) => Promise<NLcURLResponse>, logger?: Logger): Promise<NLcURLResponse>;
31
22
  //# sourceMappingURL=retry.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"retry.d.ts","sourceRoot":"","sources":["../../src/middleware/retry.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACtD,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAErD,OAAO,EAAE,KAAK,MAAM,EAAoB,MAAM,oBAAoB,CAAC;AAInE;;;;;;;;GAQG;AACH,MAAM,WAAW,YAAY;IAC3B,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,CAAC,EAAE,KAAK,CAAC;IAClB,YAAY,CAAC,EAAE,cAAc,CAAC;CAC/B;AASD;;;;;;;;;;;GAWG;AACH,wBAAsB,SAAS,CAAC,MAAM,EAAE,WAAW,GAAG,SAAS,EAAE,OAAO,EAAE,CAAC,GAAG,EAAE,YAAY,KAAK,OAAO,CAAC,cAAc,CAAC,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,CAAC,CA4ClK"}
1
+ {"version":3,"file":"retry.d.ts","sourceRoot":"","sources":["../../src/middleware/retry.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACtD,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAErD,OAAO,EAAE,KAAK,MAAM,EAAoB,MAAM,oBAAoB,CAAC;AAKnE,4CAA4C;AAC5C,MAAM,WAAW,YAAY;IAC3B,wCAAwC;IACxC,OAAO,EAAE,MAAM,CAAC;IAChB,+CAA+C;IAC/C,SAAS,CAAC,EAAE,KAAK,CAAC;IAClB,kDAAkD;IAClD,YAAY,CAAC,EAAE,cAAc,CAAC;CAC/B;AASD;;;;;;;GAOG;AACH,wBAAsB,SAAS,CAAC,MAAM,EAAE,WAAW,GAAG,SAAS,EAAE,OAAO,EAAE,CAAC,GAAG,EAAE,YAAY,KAAK,OAAO,CAAC,cAAc,CAAC,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,CAAC,CAkDlK"}
@@ -1,5 +1,6 @@
1
1
  import { AbortError, TLSError, TimeoutError, ConnectionError, ProtocolError } from "../core/errors.js";
2
2
  import { getDefaultLogger } from "../utils/logger.js";
3
+ import { getRetryAfterMs } from "./retry-after.js";
3
4
  const RETRYABLE_H2_ERROR_CODES = new Set([1, 2, 7, 8, 11, 13]);
4
5
  function shouldRetryDefault(error, statusCode) {
5
6
  if (error instanceof ConnectionError || error instanceof TimeoutError || error instanceof TLSError)
@@ -11,16 +12,12 @@ function shouldRetryDefault(error, statusCode) {
11
12
  return false;
12
13
  }
13
14
  /**
14
- * Executes `execute` up to `config.count + 1` times with configurable
15
- * back-off and jitter between attempts. Transparent to `AbortError` -- those
16
- * propagate immediately without retry.
15
+ * Execute a request function with configurable retry logic.
17
16
  *
18
- * @param {RetryConfig | undefined} config - Retry parameters; `undefined` uses library defaults.
19
- * @param {(ctx: RetryContext) => Promise<NLcURLResponse>} execute - The operation to attempt.
20
- * @param {Logger} [logger] - Optional logger for retry diagnostics.
21
- * @returns {Promise<NLcURLResponse>} The first successful response.
22
- * @throws {AbortError} Immediately if the operation is aborted.
23
- * @throws {Error} Re-throws the last error if all attempts are exhausted.
17
+ * @param {RetryConfig|undefined} config - Retry configuration.
18
+ * @param {(ctx: RetryContext) => Promise<NLcURLResponse>} execute - Function that performs the request attempt.
19
+ * @param {Logger} [logger] - Optional logger for retry events.
20
+ * @returns {Promise<NLcURLResponse>} Final HTTP response after all retries.
24
21
  */
25
22
  export async function withRetry(config, execute, logger) {
26
23
  const log = logger ?? getDefaultLogger();
@@ -42,6 +39,12 @@ export async function withRetry(config, execute, logger) {
42
39
  try {
43
40
  const response = await execute({ attempt, lastError, lastResponse });
44
41
  if (attempt < count && retryOn(null, response.status)) {
42
+ const retryAfterMs = getRetryAfterMs(response.headers);
43
+ if (retryAfterMs !== undefined && retryAfterMs > 0) {
44
+ const cappedDelay = Math.min(retryAfterMs, 300_000);
45
+ log.debug(`retry respecting Retry-After: ${Math.round(cappedDelay)}ms`);
46
+ await sleep(cappedDelay);
47
+ }
45
48
  lastResponse = response;
46
49
  continue;
47
50
  }
@@ -1 +1 @@
1
- {"version":3,"file":"retry.js","sourceRoot":"","sources":["../../src/middleware/retry.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"retry.js","sourceRoot":"","sources":["../../src/middleware/retry.ts"],"names":[],"mappings":"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"}