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
@@ -0,0 +1,73 @@
1
+ /** Supported proxy authentication scheme identifiers. */
2
+ export type ProxyAuthScheme = "basic" | "digest" | "negotiate" | "ntlm";
3
+ /** Credentials and scheme selection for proxy authentication. */
4
+ export interface ProxyAuthConfig {
5
+ /** Proxy account username. */
6
+ username: string;
7
+ /** Proxy account password. */
8
+ password: string;
9
+ /** Authentication scheme to use — defaults to `"basic"`. */
10
+ scheme?: ProxyAuthScheme;
11
+ }
12
+ /** Parsed parameters from an HTTP Digest authentication challenge. */
13
+ export interface DigestChallenge {
14
+ /** Protection realm name. */
15
+ realm: string;
16
+ /** Server-generated nonce value. */
17
+ nonce: string;
18
+ /** Quality-of-protection directive (e.g. `"auth"`). */
19
+ qop?: string;
20
+ /** Opaque value to be returned unchanged to the server. */
21
+ opaque?: string;
22
+ /** Hash algorithm name (e.g. `"MD5"`, `"SHA-256"`). */
23
+ algorithm?: string;
24
+ /** Whether the previous nonce has gone stale. */
25
+ stale?: boolean;
26
+ /** Space-delimited list of URIs defining the protection space. */
27
+ domain?: string;
28
+ }
29
+ /**
30
+ * Parse a `Proxy-Authenticate` response header into its scheme and raw challenge.
31
+ *
32
+ * @param {string} header - Raw header value.
33
+ * @returns {object|null} Parsed scheme and challenge string, or `null` if unrecognized.
34
+ */
35
+ export declare function parseProxyAuthenticate(header: string): {
36
+ scheme: ProxyAuthScheme;
37
+ challenge: string;
38
+ } | null;
39
+ /**
40
+ * Parse a raw Digest challenge string into structured parameters.
41
+ *
42
+ * @param {string} challenge - The challenge portion after `Digest `.
43
+ * @returns {DigestChallenge|null} Parsed {@link DigestChallenge}, or `null` if required fields are missing.
44
+ */
45
+ export declare function parseDigestChallenge(challenge: string): DigestChallenge | null;
46
+ /**
47
+ * Build an HTTP Digest `Proxy-Authorization` header value.
48
+ *
49
+ * @param {string} method - HTTP method (e.g. `"CONNECT"`).
50
+ * @param {string} uri - Request URI.
51
+ * @param {ProxyAuthConfig} auth - Proxy credentials.
52
+ * @param {DigestChallenge} challenge - Parsed digest challenge from the proxy.
53
+ * @returns {string} Fully-formed `Digest` authorization header value.
54
+ */
55
+ export declare function buildDigestAuth(method: string, uri: string, auth: ProxyAuthConfig, challenge: DigestChallenge): string;
56
+ /**
57
+ * Build an HTTP Basic `Proxy-Authorization` header value.
58
+ *
59
+ * @param {ProxyAuthConfig} auth - Proxy credentials.
60
+ * @returns {string} Base64-encoded `Basic` authorization header value.
61
+ */
62
+ export declare function buildBasicProxyAuth(auth: ProxyAuthConfig): string;
63
+ /**
64
+ * Build a `Proxy-Authorization` header for the configured scheme.
65
+ *
66
+ * @param {string} method - HTTP method.
67
+ * @param {string} uri - Request URI.
68
+ * @param {ProxyAuthConfig} auth - Proxy credentials and scheme preference.
69
+ * @param {string} [proxyAuthHeader] - Optional raw `Proxy-Authenticate` header for digest negotiation.
70
+ * @returns {string|null} Header value string, or `null` if the scheme cannot be satisfied.
71
+ */
72
+ export declare function buildProxyAuthorization(method: string, uri: string, auth: ProxyAuthConfig, proxyAuthHeader?: string): string | null;
73
+ //# sourceMappingURL=auth.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"auth.d.ts","sourceRoot":"","sources":["../../src/proxy/auth.ts"],"names":[],"mappings":"AAEA,yDAAyD;AACzD,MAAM,MAAM,eAAe,GAAG,OAAO,GAAG,QAAQ,GAAG,WAAW,GAAG,MAAM,CAAC;AAExE,iEAAiE;AACjE,MAAM,WAAW,eAAe;IAC9B,8BAA8B;IAC9B,QAAQ,EAAE,MAAM,CAAC;IACjB,8BAA8B;IAC9B,QAAQ,EAAE,MAAM,CAAC;IACjB,4DAA4D;IAC5D,MAAM,CAAC,EAAE,eAAe,CAAC;CAC1B;AAED,sEAAsE;AACtE,MAAM,WAAW,eAAe;IAC9B,6BAA6B;IAC7B,KAAK,EAAE,MAAM,CAAC;IACd,oCAAoC;IACpC,KAAK,EAAE,MAAM,CAAC;IACd,uDAAuD;IACvD,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,2DAA2D;IAC3D,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,uDAAuD;IACvD,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,iDAAiD;IACjD,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,kEAAkE;IAClE,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED;;;;;GAKG;AACH,wBAAgB,sBAAsB,CAAC,MAAM,EAAE,MAAM,GAAG;IACtD,MAAM,EAAE,eAAe,CAAC;IACxB,SAAS,EAAE,MAAM,CAAC;CACnB,GAAG,IAAI,CAiBP;AAED;;;;;GAKG;AACH,wBAAgB,oBAAoB,CAAC,SAAS,EAAE,MAAM,GAAG,eAAe,GAAG,IAAI,CAoB9E;AAID;;;;;;;;GAQG;AACH,wBAAgB,eAAe,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,eAAe,EAAE,SAAS,EAAE,eAAe,GAAG,MAAM,CAgCtH;AAED;;;;;GAKG;AACH,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,eAAe,GAAG,MAAM,CAGjE;AAED;;;;;;;;GAQG;AACH,wBAAgB,uBAAuB,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,eAAe,EAAE,eAAe,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAmBnI"}
@@ -0,0 +1,128 @@
1
+ import { createHash, randomBytes } from "node:crypto";
2
+ /**
3
+ * Parse a `Proxy-Authenticate` response header into its scheme and raw challenge.
4
+ *
5
+ * @param {string} header - Raw header value.
6
+ * @returns {object|null} Parsed scheme and challenge string, or `null` if unrecognized.
7
+ */
8
+ export function parseProxyAuthenticate(header) {
9
+ if (!header)
10
+ return null;
11
+ const lower = header.trimStart().toLowerCase();
12
+ if (lower.startsWith("digest ")) {
13
+ return { scheme: "digest", challenge: header.substring(7) };
14
+ }
15
+ if (lower.startsWith("negotiate")) {
16
+ return { scheme: "negotiate", challenge: header.substring(10).trim() };
17
+ }
18
+ if (lower.startsWith("ntlm")) {
19
+ return { scheme: "ntlm", challenge: header.substring(5).trim() };
20
+ }
21
+ if (lower.startsWith("basic ")) {
22
+ return { scheme: "basic", challenge: header.substring(6) };
23
+ }
24
+ return null;
25
+ }
26
+ /**
27
+ * Parse a raw Digest challenge string into structured parameters.
28
+ *
29
+ * @param {string} challenge - The challenge portion after `Digest `.
30
+ * @returns {DigestChallenge|null} Parsed {@link DigestChallenge}, or `null` if required fields are missing.
31
+ */
32
+ export function parseDigestChallenge(challenge) {
33
+ const params = {};
34
+ const regex = /(\w+)=(?:"([^"]*)"|([\w.]+))/g;
35
+ let match;
36
+ while ((match = regex.exec(challenge)) !== null) {
37
+ params[match[1].toLowerCase()] = match[2] ?? match[3] ?? "";
38
+ }
39
+ if (!params["realm"] || !params["nonce"])
40
+ return null;
41
+ return {
42
+ realm: params["realm"],
43
+ nonce: params["nonce"],
44
+ qop: params["qop"],
45
+ opaque: params["opaque"],
46
+ algorithm: params["algorithm"],
47
+ stale: params["stale"]?.toLowerCase() === "true",
48
+ domain: params["domain"],
49
+ };
50
+ }
51
+ let nonceCount = 0;
52
+ /**
53
+ * Build an HTTP Digest `Proxy-Authorization` header value.
54
+ *
55
+ * @param {string} method - HTTP method (e.g. `"CONNECT"`).
56
+ * @param {string} uri - Request URI.
57
+ * @param {ProxyAuthConfig} auth - Proxy credentials.
58
+ * @param {DigestChallenge} challenge - Parsed digest challenge from the proxy.
59
+ * @returns {string} Fully-formed `Digest` authorization header value.
60
+ */
61
+ export function buildDigestAuth(method, uri, auth, challenge) {
62
+ const algorithm = (challenge.algorithm ?? "MD5").toUpperCase();
63
+ const hashFn = algorithm === "SHA-256" ? "sha256" : "md5";
64
+ const ha1 = md(hashFn, `${auth.username}:${challenge.realm}:${auth.password}`);
65
+ const ha2 = md(hashFn, `${method}:${uri}`);
66
+ nonceCount++;
67
+ const nc = nonceCount.toString(16).padStart(8, "0");
68
+ const cnonce = randomBytes(16).toString("hex");
69
+ let response;
70
+ if (challenge.qop) {
71
+ const qop = challenge.qop.includes("auth") ? "auth" : challenge.qop;
72
+ response = md(hashFn, `${ha1}:${challenge.nonce}:${nc}:${cnonce}:${qop}:${ha2}`);
73
+ let header = `Digest username="${auth.username}", realm="${challenge.realm}", `;
74
+ header += `nonce="${challenge.nonce}", uri="${uri}", `;
75
+ header += `algorithm=${algorithm}, qop=${qop}, nc=${nc}, cnonce="${cnonce}", `;
76
+ header += `response="${response}"`;
77
+ if (challenge.opaque)
78
+ header += `, opaque="${challenge.opaque}"`;
79
+ return header;
80
+ }
81
+ response = md(hashFn, `${ha1}:${challenge.nonce}:${ha2}`);
82
+ let header = `Digest username="${auth.username}", realm="${challenge.realm}", `;
83
+ header += `nonce="${challenge.nonce}", uri="${uri}", `;
84
+ header += `algorithm=${algorithm}, response="${response}"`;
85
+ if (challenge.opaque)
86
+ header += `, opaque="${challenge.opaque}"`;
87
+ return header;
88
+ }
89
+ /**
90
+ * Build an HTTP Basic `Proxy-Authorization` header value.
91
+ *
92
+ * @param {ProxyAuthConfig} auth - Proxy credentials.
93
+ * @returns {string} Base64-encoded `Basic` authorization header value.
94
+ */
95
+ export function buildBasicProxyAuth(auth) {
96
+ const encoded = Buffer.from(`${auth.username}:${auth.password}`).toString("base64");
97
+ return `Basic ${encoded}`;
98
+ }
99
+ /**
100
+ * Build a `Proxy-Authorization` header for the configured scheme.
101
+ *
102
+ * @param {string} method - HTTP method.
103
+ * @param {string} uri - Request URI.
104
+ * @param {ProxyAuthConfig} auth - Proxy credentials and scheme preference.
105
+ * @param {string} [proxyAuthHeader] - Optional raw `Proxy-Authenticate` header for digest negotiation.
106
+ * @returns {string|null} Header value string, or `null` if the scheme cannot be satisfied.
107
+ */
108
+ export function buildProxyAuthorization(method, uri, auth, proxyAuthHeader) {
109
+ const scheme = auth.scheme ?? "basic";
110
+ if (scheme === "basic") {
111
+ return buildBasicProxyAuth(auth);
112
+ }
113
+ if (scheme === "digest" && proxyAuthHeader) {
114
+ const parsed = parseProxyAuthenticate(proxyAuthHeader);
115
+ if (parsed?.scheme === "digest") {
116
+ const challenge = parseDigestChallenge(parsed.challenge);
117
+ if (challenge) {
118
+ return buildDigestAuth(method, uri, auth, challenge);
119
+ }
120
+ }
121
+ return null;
122
+ }
123
+ return null;
124
+ }
125
+ function md(algorithm, data) {
126
+ return createHash(algorithm).update(data).digest("hex");
127
+ }
128
+ //# sourceMappingURL=auth.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"auth.js","sourceRoot":"","sources":["../../src/proxy/auth.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,11 @@
1
+ /**
2
+ * Resolve a proxy URL from standard environment variables.
3
+ *
4
+ * Checks `NO_PROXY` / `no_proxy` first, then selects `HTTPS_PROXY` or
5
+ * `HTTP_PROXY` (and their lowercase variants) based on the URL scheme.
6
+ *
7
+ * @param {string} url - Absolute URL to resolve a proxy for.
8
+ * @returns {string|undefined} Proxy URL string, or `undefined` if none applies.
9
+ */
10
+ export declare function resolveEnvProxy(url: string): string | undefined;
11
+ //# sourceMappingURL=env-proxy.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"env-proxy.d.ts","sourceRoot":"","sources":["../../src/proxy/env-proxy.ts"],"names":[],"mappings":"AAkBA;;;;;;;;GAQG;AACH,wBAAgB,eAAe,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CA2B/D"}
@@ -0,0 +1,56 @@
1
+ function matchesNoProxy(hostname, noProxy) {
2
+ if (noProxy === "*")
3
+ return true;
4
+ const host = hostname.toLowerCase();
5
+ const entries = noProxy
6
+ .split(",")
7
+ .map((e) => e.trim().toLowerCase())
8
+ .filter(Boolean);
9
+ for (const entry of entries) {
10
+ if (entry === host)
11
+ return true;
12
+ if (entry.startsWith(".") && (host.endsWith(entry) || host === entry.slice(1)))
13
+ return true;
14
+ if (host === entry || host.endsWith("." + entry))
15
+ return true;
16
+ }
17
+ return false;
18
+ }
19
+ /**
20
+ * Resolve a proxy URL from standard environment variables.
21
+ *
22
+ * Checks `NO_PROXY` / `no_proxy` first, then selects `HTTPS_PROXY` or
23
+ * `HTTP_PROXY` (and their lowercase variants) based on the URL scheme.
24
+ *
25
+ * @param {string} url - Absolute URL to resolve a proxy for.
26
+ * @returns {string|undefined} Proxy URL string, or `undefined` if none applies.
27
+ */
28
+ export function resolveEnvProxy(url) {
29
+ let parsed;
30
+ try {
31
+ parsed = new URL(url);
32
+ }
33
+ catch {
34
+ return undefined;
35
+ }
36
+ const noProxy = process.env["no_proxy"] ?? process.env["NO_PROXY"] ?? "";
37
+ if (noProxy && matchesNoProxy(parsed.hostname, noProxy)) {
38
+ return undefined;
39
+ }
40
+ const isHttps = parsed.protocol === "https:" || parsed.protocol === "wss:";
41
+ if (isHttps) {
42
+ const proxy = process.env["https_proxy"] ?? process.env["HTTPS_PROXY"];
43
+ if (proxy)
44
+ return proxy;
45
+ }
46
+ else {
47
+ const proxy = process.env["http_proxy"] ?? process.env["HTTP_PROXY"];
48
+ if (proxy)
49
+ return proxy;
50
+ }
51
+ const allProxy = process.env["all_proxy"] ?? process.env["ALL_PROXY"];
52
+ if (allProxy)
53
+ return allProxy;
54
+ return undefined;
55
+ }
56
+ //# sourceMappingURL=env-proxy.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"env-proxy.js","sourceRoot":"","sources":["../../src/proxy/env-proxy.ts"],"names":[],"mappings":"AAAA,SAAS,cAAc,CAAC,QAAgB,EAAE,OAAe;IACvD,IAAI,OAAO,KAAK,GAAG;QAAE,OAAO,IAAI,CAAC;IAEjC,MAAM,IAAI,GAAG,QAAQ,CAAC,WAAW,EAAE,CAAC;IACpC,MAAM,OAAO,GAAG,OAAO;SACpB,KAAK,CAAC,GAAG,CAAC;SACV,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;SAClC,MAAM,CAAC,OAAO,CAAC,CAAC;IAEnB,KAAK,MAAM,KAAK,IAAI,OAAO,EAAE,CAAC;QAC5B,IAAI,KAAK,KAAK,IAAI;YAAE,OAAO,IAAI,CAAC;QAChC,IAAI,KAAK,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,IAAI,KAAK,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;YAAE,OAAO,IAAI,CAAC;QAC5F,IAAI,IAAI,KAAK,KAAK,IAAI,IAAI,CAAC,QAAQ,CAAC,GAAG,GAAG,KAAK,CAAC;YAAE,OAAO,IAAI,CAAC;IAChE,CAAC;IAED,OAAO,KAAK,CAAC;AACf,CAAC;AAED;;;;;;;;GAQG;AACH,MAAM,UAAU,eAAe,CAAC,GAAW;IACzC,IAAI,MAAW,CAAC;IAChB,IAAI,CAAC;QACH,MAAM,GAAG,IAAI,GAAG,CAAC,GAAG,CAAC,CAAC;IACxB,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,MAAM,OAAO,GAAG,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC,IAAI,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC,IAAI,EAAE,CAAC;IACzE,IAAI,OAAO,IAAI,cAAc,CAAC,MAAM,CAAC,QAAQ,EAAE,OAAO,CAAC,EAAE,CAAC;QACxD,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,MAAM,OAAO,GAAG,MAAM,CAAC,QAAQ,KAAK,QAAQ,IAAI,MAAM,CAAC,QAAQ,KAAK,MAAM,CAAC;IAE3E,IAAI,OAAO,EAAE,CAAC;QACZ,MAAM,KAAK,GAAG,OAAO,CAAC,GAAG,CAAC,aAAa,CAAC,IAAI,OAAO,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC;QACvE,IAAI,KAAK;YAAE,OAAO,KAAK,CAAC;IAC1B,CAAC;SAAM,CAAC;QACN,MAAM,KAAK,GAAG,OAAO,CAAC,GAAG,CAAC,YAAY,CAAC,IAAI,OAAO,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;QACrE,IAAI,KAAK;YAAE,OAAO,KAAK,CAAC;IAC1B,CAAC;IAED,MAAM,QAAQ,GAAG,OAAO,CAAC,GAAG,CAAC,WAAW,CAAC,IAAI,OAAO,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;IACtE,IAAI,QAAQ;QAAE,OAAO,QAAQ,CAAC;IAE9B,OAAO,SAAS,CAAC;AACnB,CAAC"}
@@ -1,31 +1,26 @@
1
1
  import * as net from "node:net";
2
- /**
3
- * Options for establishing a connection through an HTTP CONNECT proxy.
4
- *
5
- * @typedef {Object} HttpProxyOptions
6
- * @property {string} host - Proxy server hostname or IP address.
7
- * @property {number} port - Proxy server port.
8
- * @property {string} [auth] - Proxy credentials in `username:password` format (used for Basic auth).
9
- * @property {number} [timeout] - Connection timeout in milliseconds (default: 30 000).
10
- * @property {4 | 6} [family] - IP address family to use when resolving the proxy host.
11
- */
2
+ /** Configuration for connecting through an HTTP CONNECT proxy. */
12
3
  export interface HttpProxyOptions {
4
+ /** Proxy server hostname or IP address. */
13
5
  host: string;
6
+ /** Proxy server port. */
14
7
  port: number;
8
+ /** Optional `Proxy-Authorization` header value. */
15
9
  auth?: string;
10
+ /** Connection timeout in milliseconds. */
16
11
  timeout?: number;
12
+ /** IP address family to use (`4` or `6`). */
17
13
  family?: 4 | 6;
14
+ /** Connect to the proxy over TLS (HTTPS proxy). */
15
+ secure?: boolean;
18
16
  }
19
17
  /**
20
- * Opens a TCP connection to an HTTP CONNECT proxy and tunnels through it to
21
- * `targetHost:targetPort`. Resolves with the raw socket once the tunnel is
22
- * established.
18
+ * Establish a TCP tunnel through an HTTP CONNECT proxy.
23
19
  *
24
- * @param {HttpProxyOptions} proxy - Proxy server connection details.
25
- * @param {string} targetHost - Destination hostname or IP to tunnel to.
26
- * @param {number} targetPort - Destination port to tunnel to.
27
- * @returns {Promise<net.Socket>} Plain TCP socket connected through the proxy tunnel.
28
- * @throws {ProxyError} If the connection times out or the proxy rejects the CONNECT request.
20
+ * @param {HttpProxyOptions} proxy - Proxy connection options.
21
+ * @param {string} targetHost - Destination hostname.
22
+ * @param {number} targetPort - Destination port.
23
+ * @returns {Promise<net.Socket>} Connected socket tunneled through the proxy.
29
24
  */
30
25
  export declare function httpProxyConnect(proxy: HttpProxyOptions, targetHost: string, targetPort: number): Promise<net.Socket>;
31
26
  //# sourceMappingURL=http-proxy.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"http-proxy.d.ts","sourceRoot":"","sources":["../../src/proxy/http-proxy.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,GAAG,MAAM,UAAU,CAAC;AAGhC;;;;;;;;;GASG;AACH,MAAM,WAAW,gBAAgB;IAC/B,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,MAAM,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC;CAChB;AAED;;;;;;;;;;GAUG;AACH,wBAAsB,gBAAgB,CAAC,KAAK,EAAE,gBAAgB,EAAE,UAAU,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,CA8F3H"}
1
+ {"version":3,"file":"http-proxy.d.ts","sourceRoot":"","sources":["../../src/proxy/http-proxy.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,GAAG,MAAM,UAAU,CAAC;AAIhC,kEAAkE;AAClE,MAAM,WAAW,gBAAgB;IAC/B,2CAA2C;IAC3C,IAAI,EAAE,MAAM,CAAC;IACb,yBAAyB;IACzB,IAAI,EAAE,MAAM,CAAC;IACb,mDAAmD;IACnD,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,0CAA0C;IAC1C,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,6CAA6C;IAC7C,MAAM,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC;IACf,mDAAmD;IACnD,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB;AAED;;;;;;;GAOG;AACH,wBAAsB,gBAAgB,CAAC,KAAK,EAAE,gBAAgB,EAAE,UAAU,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,CA0G3H"}
@@ -1,24 +1,34 @@
1
1
  import * as net from "node:net";
2
+ import * as tls from "node:tls";
2
3
  import { ProxyError } from "../core/errors.js";
3
4
  /**
4
- * Opens a TCP connection to an HTTP CONNECT proxy and tunnels through it to
5
- * `targetHost:targetPort`. Resolves with the raw socket once the tunnel is
6
- * established.
5
+ * Establish a TCP tunnel through an HTTP CONNECT proxy.
7
6
  *
8
- * @param {HttpProxyOptions} proxy - Proxy server connection details.
9
- * @param {string} targetHost - Destination hostname or IP to tunnel to.
10
- * @param {number} targetPort - Destination port to tunnel to.
11
- * @returns {Promise<net.Socket>} Plain TCP socket connected through the proxy tunnel.
12
- * @throws {ProxyError} If the connection times out or the proxy rejects the CONNECT request.
7
+ * @param {HttpProxyOptions} proxy - Proxy connection options.
8
+ * @param {string} targetHost - Destination hostname.
9
+ * @param {number} targetPort - Destination port.
10
+ * @returns {Promise<net.Socket>} Connected socket tunneled through the proxy.
13
11
  */
14
12
  export async function httpProxyConnect(proxy, targetHost, targetPort) {
15
13
  return new Promise((resolve, reject) => {
16
14
  let settled = false;
17
- const socket = net.createConnection({
18
- host: proxy.host,
19
- port: proxy.port,
20
- family: proxy.family,
21
- });
15
+ let socket;
16
+ if (proxy.secure) {
17
+ const tlsOpts = {
18
+ host: proxy.host,
19
+ port: proxy.port,
20
+ rejectUnauthorized: true,
21
+ ...(proxy.family ? { family: proxy.family } : {}),
22
+ };
23
+ socket = tls.connect(tlsOpts);
24
+ }
25
+ else {
26
+ socket = net.createConnection({
27
+ host: proxy.host,
28
+ port: proxy.port,
29
+ family: proxy.family,
30
+ });
31
+ }
22
32
  const timeoutMs = proxy.timeout ?? 30_000;
23
33
  let timer;
24
34
  if (timeoutMs > 0) {
@@ -30,7 +40,7 @@ export async function httpProxyConnect(proxy, targetHost, targetPort) {
30
40
  }
31
41
  }, timeoutMs);
32
42
  }
33
- socket.once("connect", () => {
43
+ socket.once(proxy.secure ? "secureConnect" : "connect", () => {
34
44
  let connectReq = `CONNECT ${targetHost}:${targetPort} HTTP/1.1\r\n`;
35
45
  connectReq += `Host: ${targetHost}:${targetPort}\r\n`;
36
46
  if (proxy.auth) {
@@ -1 +1 @@
1
- {"version":3,"file":"http-proxy.js","sourceRoot":"","sources":["../../src/proxy/http-proxy.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"http-proxy.js","sourceRoot":"","sources":["../../src/proxy/http-proxy.ts"],"names":[],"mappings":"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"}
@@ -1,35 +1,28 @@
1
1
  import * as net from "node:net";
2
- /**
3
- * Options for establishing a connection through a SOCKS4 or SOCKS5 proxy.
4
- *
5
- * @typedef {Object} SocksProxyOptions
6
- * @property {string} host - Proxy server hostname or IP address.
7
- * @property {number} port - Proxy server port.
8
- * @property {4 | 5} version - SOCKS protocol version.
9
- * @property {string} [username] - Username for SOCKS5 username/password authentication.
10
- * @property {string} [password] - Password for SOCKS5 username/password authentication.
11
- * @property {number} [timeout] - Connection timeout in milliseconds.
12
- * @property {4 | 6} [family] - IP address family used when resolving the proxy host.
13
- */
2
+ /** Configuration for connecting through a SOCKS proxy. */
14
3
  export interface SocksProxyOptions {
4
+ /** Proxy server hostname or IP address. */
15
5
  host: string;
6
+ /** Proxy server port. */
16
7
  port: number;
8
+ /** SOCKS protocol version (`4` or `5`). */
17
9
  version: 4 | 5;
10
+ /** Username for SOCKS5 authentication. */
18
11
  username?: string;
12
+ /** Password for SOCKS5 authentication. */
19
13
  password?: string;
14
+ /** Connection timeout in milliseconds. */
20
15
  timeout?: number;
16
+ /** IP address family to use (`4` or `6`). */
21
17
  family?: 4 | 6;
22
18
  }
23
19
  /**
24
- * Opens a TCP connection to a SOCKS4 or SOCKS5 proxy and negotiates a tunnel
25
- * to `targetHost:targetPort`. Resolves with the raw socket once the tunnel is
26
- * established.
20
+ * Establish a TCP connection through a SOCKS4 or SOCKS5 proxy.
27
21
  *
28
- * @param {SocksProxyOptions} proxy - Proxy server connection details.
29
- * @param {string} targetHost - Destination hostname.
30
- * @param {number} targetPort - Destination port.
31
- * @returns {Promise<net.Socket>} Plain TCP socket connected through the SOCKS tunnel.
32
- * @throws {ProxyError} If authentication fails or the proxy rejects the connection request.
22
+ * @param {SocksProxyOptions} proxy - SOCKS proxy options including version and optional credentials.
23
+ * @param {string} targetHost - Destination hostname.
24
+ * @param {number} targetPort - Destination port.
25
+ * @returns {Promise<net.Socket>} Connected socket tunneled through the SOCKS proxy.
33
26
  */
34
27
  export declare function socksConnect(proxy: SocksProxyOptions, targetHost: string, targetPort: number): Promise<net.Socket>;
35
28
  //# sourceMappingURL=socks.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"socks.d.ts","sourceRoot":"","sources":["../../src/proxy/socks.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,GAAG,MAAM,UAAU,CAAC;AAGhC;;;;;;;;;;;GAWG;AACH,MAAM,WAAW,iBAAiB;IAChC,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,CAAC,GAAG,CAAC,CAAC;IACf,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,MAAM,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC;CAChB;AAED;;;;;;;;;;GAUG;AACH,wBAAsB,YAAY,CAAC,KAAK,EAAE,iBAAiB,EAAE,UAAU,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,CAcxH"}
1
+ {"version":3,"file":"socks.d.ts","sourceRoot":"","sources":["../../src/proxy/socks.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,GAAG,MAAM,UAAU,CAAC;AAGhC,0DAA0D;AAC1D,MAAM,WAAW,iBAAiB;IAChC,2CAA2C;IAC3C,IAAI,EAAE,MAAM,CAAC;IACb,yBAAyB;IACzB,IAAI,EAAE,MAAM,CAAC;IACb,2CAA2C;IAC3C,OAAO,EAAE,CAAC,GAAG,CAAC,CAAC;IACf,0CAA0C;IAC1C,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,0CAA0C;IAC1C,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,0CAA0C;IAC1C,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,6CAA6C;IAC7C,MAAM,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC;CAChB;AAED;;;;;;;GAOG;AACH,wBAAsB,YAAY,CAAC,KAAK,EAAE,iBAAiB,EAAE,UAAU,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,CAcxH"}
@@ -1,15 +1,12 @@
1
1
  import * as net from "node:net";
2
2
  import { ProxyError } from "../core/errors.js";
3
3
  /**
4
- * Opens a TCP connection to a SOCKS4 or SOCKS5 proxy and negotiates a tunnel
5
- * to `targetHost:targetPort`. Resolves with the raw socket once the tunnel is
6
- * established.
4
+ * Establish a TCP connection through a SOCKS4 or SOCKS5 proxy.
7
5
  *
8
- * @param {SocksProxyOptions} proxy - Proxy server connection details.
9
- * @param {string} targetHost - Destination hostname.
10
- * @param {number} targetPort - Destination port.
11
- * @returns {Promise<net.Socket>} Plain TCP socket connected through the SOCKS tunnel.
12
- * @throws {ProxyError} If authentication fails or the proxy rejects the connection request.
6
+ * @param {SocksProxyOptions} proxy - SOCKS proxy options including version and optional credentials.
7
+ * @param {string} targetHost - Destination hostname.
8
+ * @param {number} targetPort - Destination port.
9
+ * @returns {Promise<net.Socket>} Connected socket tunneled through the SOCKS proxy.
13
10
  */
14
11
  export async function socksConnect(proxy, targetHost, targetPort) {
15
12
  const socket = await tcpConnect(proxy.host, proxy.port, proxy.timeout, proxy.family);
@@ -53,7 +50,7 @@ async function socks5Handshake(socket, proxy, host, port) {
53
50
  pass.copy(authReq, 3 + user.length);
54
51
  await socketWrite(socket, authReq);
55
52
  const authResult = await socketRead(socket, 2);
56
- if (authResult[1] !== 0x00) {
53
+ if (authResult.length < 2 || authResult[1] !== 0x00) {
57
54
  throw new ProxyError("SOCKS5 authentication failed");
58
55
  }
59
56
  }
@@ -1 +1 @@
1
- {"version":3,"file":"socks.js","sourceRoot":"","sources":["../../src/proxy/socks.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"socks.js","sourceRoot":"","sources":["../../src/proxy/socks.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,47 @@
1
+ import type { Readable } from "node:stream";
2
+ import type { ServerSentEvent } from "../core/request.js";
3
+ /**
4
+ * Incremental parser for the Server-Sent Events stream format.
5
+ *
6
+ * Feed chunks of text with {@link feed}, then pull discrete events
7
+ * with {@link pull}. Call {@link flush} after the stream closes to
8
+ * emit any buffered partial event.
9
+ */
10
+ export declare class SSEParser {
11
+ private static readonly MAX_LINE_LENGTH;
12
+ private static readonly MAX_EVENT_SIZE;
13
+ private buffer;
14
+ private eventType;
15
+ private dataLines;
16
+ private dataSize;
17
+ private lastEventId;
18
+ private retry;
19
+ private readonly events;
20
+ /**
21
+ * Append raw text from the event stream and parse complete lines.
22
+ *
23
+ * @param {string} text - Chunk of UTF-8 text from the response body.
24
+ */
25
+ feed(text: string): void;
26
+ /**
27
+ * Remove and return the next fully-parsed event from the queue.
28
+ *
29
+ * @returns {ServerSentEvent|null} The next {@link ServerSentEvent}, or `null` if the queue is empty.
30
+ */
31
+ pull(): ServerSentEvent | null;
32
+ /** Flush any remaining buffered data and dispatch a final event if present. */
33
+ flush(): void;
34
+ private processLine;
35
+ private dispatchEvent;
36
+ }
37
+ /**
38
+ * Consume a readable stream as a Server-Sent Events source.
39
+ *
40
+ * Yields individual {@link ServerSentEvent} objects as they are parsed
41
+ * from the stream in real time.
42
+ *
43
+ * @param {Readable} stream - Readable stream carrying `text/event-stream` data.
44
+ * @returns {AsyncGenerator<ServerSentEvent>} Async generator of server-sent events.
45
+ */
46
+ export declare function parseSSEStream(stream: Readable): AsyncGenerator<ServerSentEvent, void, undefined>;
47
+ //# sourceMappingURL=parser.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"parser.d.ts","sourceRoot":"","sources":["../../src/sse/parser.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAE1D;;;;;;GAMG;AACH,qBAAa,SAAS;IACpB,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,eAAe,CAAU;IACjD,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,cAAc,CAAa;IAEnD,OAAO,CAAC,MAAM,CAAM;IACpB,OAAO,CAAC,SAAS,CAAM;IACvB,OAAO,CAAC,SAAS,CAAgB;IACjC,OAAO,CAAC,QAAQ,CAAK;IACrB,OAAO,CAAC,WAAW,CAAM;IACzB,OAAO,CAAC,KAAK,CAAiC;IAC9C,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAyB;IAEhD;;;;OAIG;IACH,IAAI,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI;IAexB;;;;OAIG;IACH,IAAI,IAAI,eAAe,GAAG,IAAI;IAI9B,+EAA+E;IAC/E,KAAK,IAAI,IAAI;IAQb,OAAO,CAAC,WAAW;IAiDnB,OAAO,CAAC,aAAa;CAmBtB;AAED;;;;;;;;GAQG;AACH,wBAAuB,cAAc,CAAC,MAAM,EAAE,QAAQ,GAAG,cAAc,CAAC,eAAe,EAAE,IAAI,EAAE,SAAS,CAAC,CAiBxG"}