nlcurl 0.7.0 → 0.9.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 +149 -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 +75 -37
  15. package/dist/cache/store.d.ts.map +1 -1
  16. package/dist/cache/store.js +217 -85
  17. package/dist/cache/store.js.map +1 -1
  18. package/dist/cache/types.d.ts +10 -39
  19. package/dist/cache/types.d.ts.map +1 -1
  20. package/dist/cli/args.d.ts +4 -37
  21. package/dist/cli/args.d.ts.map +1 -1
  22. package/dist/cli/args.js +3 -4
  23. package/dist/cli/args.js.map +1 -1
  24. package/dist/cli/index.d.ts +0 -5
  25. package/dist/cli/index.d.ts.map +1 -1
  26. package/dist/cli/index.js +1 -6
  27. package/dist/cli/index.js.map +1 -1
  28. package/dist/cli/output.d.ts +14 -20
  29. package/dist/cli/output.d.ts.map +1 -1
  30. package/dist/cli/output.js +14 -20
  31. package/dist/cli/output.js.map +1 -1
  32. package/dist/cookies/jar.d.ts +41 -40
  33. package/dist/cookies/jar.d.ts.map +1 -1
  34. package/dist/cookies/jar.js +65 -42
  35. package/dist/cookies/jar.js.map +1 -1
  36. package/dist/cookies/parser.d.ts +13 -17
  37. package/dist/cookies/parser.d.ts.map +1 -1
  38. package/dist/cookies/parser.js +23 -15
  39. package/dist/cookies/parser.js.map +1 -1
  40. package/dist/cookies/psl-data.d.ts +1 -1
  41. package/dist/cookies/psl-data.js +1 -1
  42. package/dist/cookies/public-suffix.d.ts +5 -27
  43. package/dist/cookies/public-suffix.d.ts.map +1 -1
  44. package/dist/cookies/public-suffix.js +5 -37
  45. package/dist/cookies/public-suffix.js.map +1 -1
  46. package/dist/core/auth.d.ts +61 -0
  47. package/dist/core/auth.d.ts.map +1 -0
  48. package/dist/core/auth.js +159 -0
  49. package/dist/core/auth.js.map +1 -0
  50. package/dist/core/client.d.ts +28 -40
  51. package/dist/core/client.d.ts.map +1 -1
  52. package/dist/core/client.js +31 -41
  53. package/dist/core/client.js.map +1 -1
  54. package/dist/core/errors.d.ts +64 -88
  55. package/dist/core/errors.d.ts.map +1 -1
  56. package/dist/core/errors.js +64 -88
  57. package/dist/core/errors.js.map +1 -1
  58. package/dist/core/request.d.ts +33 -113
  59. package/dist/core/request.d.ts.map +1 -1
  60. package/dist/core/response.d.ts +49 -66
  61. package/dist/core/response.d.ts.map +1 -1
  62. package/dist/core/response.js +45 -59
  63. package/dist/core/response.js.map +1 -1
  64. package/dist/core/session.d.ts +66 -78
  65. package/dist/core/session.d.ts.map +1 -1
  66. package/dist/core/session.js +136 -77
  67. package/dist/core/session.js.map +1 -1
  68. package/dist/core/validation.d.ts +58 -43
  69. package/dist/core/validation.d.ts.map +1 -1
  70. package/dist/core/validation.js +141 -56
  71. package/dist/core/validation.js.map +1 -1
  72. package/dist/dns/cache.d.ts +65 -0
  73. package/dist/dns/cache.d.ts.map +1 -0
  74. package/dist/dns/cache.js +119 -0
  75. package/dist/dns/cache.js.map +1 -0
  76. package/dist/dns/codec.d.ts +29 -19
  77. package/dist/dns/codec.d.ts.map +1 -1
  78. package/dist/dns/codec.js +73 -39
  79. package/dist/dns/codec.js.map +1 -1
  80. package/dist/dns/doh-resolver.d.ts +17 -31
  81. package/dist/dns/doh-resolver.d.ts.map +1 -1
  82. package/dist/dns/doh-resolver.js +47 -48
  83. package/dist/dns/doh-resolver.js.map +1 -1
  84. package/dist/dns/dot-resolver.d.ts +89 -0
  85. package/dist/dns/dot-resolver.d.ts.map +1 -0
  86. package/dist/dns/dot-resolver.js +166 -0
  87. package/dist/dns/dot-resolver.js.map +1 -0
  88. package/dist/dns/https-rr.d.ts +19 -30
  89. package/dist/dns/https-rr.d.ts.map +1 -1
  90. package/dist/dns/https-rr.js +22 -40
  91. package/dist/dns/https-rr.js.map +1 -1
  92. package/dist/dns/types.d.ts +31 -59
  93. package/dist/dns/types.d.ts.map +1 -1
  94. package/dist/dns/types.js +3 -14
  95. package/dist/dns/types.js.map +1 -1
  96. package/dist/fingerprints/akamai.d.ts +3 -11
  97. package/dist/fingerprints/akamai.d.ts.map +1 -1
  98. package/dist/fingerprints/akamai.js +3 -11
  99. package/dist/fingerprints/akamai.js.map +1 -1
  100. package/dist/fingerprints/database.d.ts +6 -14
  101. package/dist/fingerprints/database.d.ts.map +1 -1
  102. package/dist/fingerprints/database.js +6 -14
  103. package/dist/fingerprints/database.js.map +1 -1
  104. package/dist/fingerprints/extensions.d.ts +56 -71
  105. package/dist/fingerprints/extensions.d.ts.map +1 -1
  106. package/dist/fingerprints/extensions.js +58 -71
  107. package/dist/fingerprints/extensions.js.map +1 -1
  108. package/dist/fingerprints/ja3.d.ts +12 -30
  109. package/dist/fingerprints/ja3.d.ts.map +1 -1
  110. package/dist/fingerprints/ja3.js +12 -30
  111. package/dist/fingerprints/ja3.js.map +1 -1
  112. package/dist/fingerprints/ja4.d.ts +18 -0
  113. package/dist/fingerprints/ja4.d.ts.map +1 -0
  114. package/dist/fingerprints/ja4.js +81 -0
  115. package/dist/fingerprints/ja4.js.map +1 -0
  116. package/dist/fingerprints/profiles/chrome.d.ts +18 -21
  117. package/dist/fingerprints/profiles/chrome.d.ts.map +1 -1
  118. package/dist/fingerprints/profiles/chrome.js +35 -31
  119. package/dist/fingerprints/profiles/chrome.js.map +1 -1
  120. package/dist/fingerprints/profiles/edge.d.ts +7 -10
  121. package/dist/fingerprints/profiles/edge.d.ts.map +1 -1
  122. package/dist/fingerprints/profiles/edge.js +7 -10
  123. package/dist/fingerprints/profiles/edge.js.map +1 -1
  124. package/dist/fingerprints/profiles/firefox.d.ts +8 -11
  125. package/dist/fingerprints/profiles/firefox.d.ts.map +1 -1
  126. package/dist/fingerprints/profiles/firefox.js +8 -11
  127. package/dist/fingerprints/profiles/firefox.js.map +1 -1
  128. package/dist/fingerprints/profiles/safari.d.ts +11 -14
  129. package/dist/fingerprints/profiles/safari.d.ts.map +1 -1
  130. package/dist/fingerprints/profiles/safari.js +11 -14
  131. package/dist/fingerprints/profiles/safari.js.map +1 -1
  132. package/dist/fingerprints/profiles/tor.d.ts +5 -8
  133. package/dist/fingerprints/profiles/tor.d.ts.map +1 -1
  134. package/dist/fingerprints/profiles/tor.js +5 -8
  135. package/dist/fingerprints/profiles/tor.js.map +1 -1
  136. package/dist/fingerprints/types.d.ts +42 -73
  137. package/dist/fingerprints/types.d.ts.map +1 -1
  138. package/dist/hsts/store.d.ts +19 -21
  139. package/dist/hsts/store.d.ts.map +1 -1
  140. package/dist/hsts/store.js +20 -28
  141. package/dist/hsts/store.js.map +1 -1
  142. package/dist/hsts/types.d.ts +10 -14
  143. package/dist/hsts/types.d.ts.map +1 -1
  144. package/dist/http/alt-svc.d.ts +27 -52
  145. package/dist/http/alt-svc.d.ts.map +1 -1
  146. package/dist/http/alt-svc.js +17 -67
  147. package/dist/http/alt-svc.js.map +1 -1
  148. package/dist/http/early-hints.d.ts +23 -0
  149. package/dist/http/early-hints.d.ts.map +1 -0
  150. package/dist/http/early-hints.js +33 -0
  151. package/dist/http/early-hints.js.map +1 -0
  152. package/dist/http/form-data.d.ts +17 -35
  153. package/dist/http/form-data.d.ts.map +1 -1
  154. package/dist/http/form-data.js +12 -34
  155. package/dist/http/form-data.js.map +1 -1
  156. package/dist/http/h1/client.d.ts +14 -26
  157. package/dist/http/h1/client.d.ts.map +1 -1
  158. package/dist/http/h1/client.js +14 -23
  159. package/dist/http/h1/client.js.map +1 -1
  160. package/dist/http/h1/encoder.d.ts +21 -17
  161. package/dist/http/h1/encoder.d.ts.map +1 -1
  162. package/dist/http/h1/encoder.js +56 -20
  163. package/dist/http/h1/encoder.js.map +1 -1
  164. package/dist/http/h1/parser.d.ts +23 -59
  165. package/dist/http/h1/parser.d.ts.map +1 -1
  166. package/dist/http/h1/parser.js +61 -55
  167. package/dist/http/h1/parser.js.map +1 -1
  168. package/dist/http/h2/client.d.ts +23 -59
  169. package/dist/http/h2/client.d.ts.map +1 -1
  170. package/dist/http/h2/client.js +107 -64
  171. package/dist/http/h2/client.js.map +1 -1
  172. package/dist/http/h2/frames.d.ts +53 -84
  173. package/dist/http/h2/frames.d.ts.map +1 -1
  174. package/dist/http/h2/frames.js +48 -76
  175. package/dist/http/h2/frames.js.map +1 -1
  176. package/dist/http/h2/hpack.d.ts +20 -36
  177. package/dist/http/h2/hpack.d.ts.map +1 -1
  178. package/dist/http/h2/hpack.js +41 -36
  179. package/dist/http/h2/hpack.js.map +1 -1
  180. package/dist/http/negotiator.d.ts +25 -38
  181. package/dist/http/negotiator.d.ts.map +1 -1
  182. package/dist/http/negotiator.js +17 -38
  183. package/dist/http/negotiator.js.map +1 -1
  184. package/dist/http/pool.d.ts +34 -64
  185. package/dist/http/pool.d.ts.map +1 -1
  186. package/dist/http/pool.js +22 -41
  187. package/dist/http/pool.js.map +1 -1
  188. package/dist/http/resumable-upload.d.ts +76 -0
  189. package/dist/http/resumable-upload.d.ts.map +1 -0
  190. package/dist/http/resumable-upload.js +104 -0
  191. package/dist/http/resumable-upload.js.map +1 -0
  192. package/dist/http/trailers.d.ts +29 -0
  193. package/dist/http/trailers.d.ts.map +1 -0
  194. package/dist/http/trailers.js +57 -0
  195. package/dist/http/trailers.js.map +1 -0
  196. package/dist/index.d.ts +24 -9
  197. package/dist/index.d.ts.map +1 -1
  198. package/dist/index.js +24 -3
  199. package/dist/index.js.map +1 -1
  200. package/dist/middleware/circuit-breaker.d.ts +44 -0
  201. package/dist/middleware/circuit-breaker.d.ts.map +1 -0
  202. package/dist/middleware/circuit-breaker.js +96 -0
  203. package/dist/middleware/circuit-breaker.js.map +1 -0
  204. package/dist/middleware/interceptor.d.ts +13 -32
  205. package/dist/middleware/interceptor.d.ts.map +1 -1
  206. package/dist/middleware/interceptor.js +11 -16
  207. package/dist/middleware/interceptor.js.map +1 -1
  208. package/dist/middleware/rate-limiter.d.ts +8 -17
  209. package/dist/middleware/rate-limiter.d.ts.map +1 -1
  210. package/dist/middleware/rate-limiter.js +11 -12
  211. package/dist/middleware/rate-limiter.js.map +1 -1
  212. package/dist/middleware/retry-after.d.ts +15 -0
  213. package/dist/middleware/retry-after.d.ts.map +1 -0
  214. package/dist/middleware/retry-after.js +36 -0
  215. package/dist/middleware/retry-after.js.map +1 -0
  216. package/dist/middleware/retry.d.ts +9 -18
  217. package/dist/middleware/retry.d.ts.map +1 -1
  218. package/dist/middleware/retry.js +12 -9
  219. package/dist/middleware/retry.js.map +1 -1
  220. package/dist/proxy/auth.d.ts +73 -0
  221. package/dist/proxy/auth.d.ts.map +1 -0
  222. package/dist/proxy/auth.js +129 -0
  223. package/dist/proxy/auth.js.map +1 -0
  224. package/dist/proxy/env-proxy.d.ts +5 -15
  225. package/dist/proxy/env-proxy.d.ts.map +1 -1
  226. package/dist/proxy/env-proxy.js +5 -23
  227. package/dist/proxy/env-proxy.js.map +1 -1
  228. package/dist/proxy/http-proxy.d.ts +12 -19
  229. package/dist/proxy/http-proxy.d.ts.map +1 -1
  230. package/dist/proxy/http-proxy.js +5 -8
  231. package/dist/proxy/http-proxy.js.map +1 -1
  232. package/dist/proxy/socks.d.ts +13 -20
  233. package/dist/proxy/socks.d.ts.map +1 -1
  234. package/dist/proxy/socks.js +8 -10
  235. package/dist/proxy/socks.js.map +1 -1
  236. package/dist/sse/parser.d.ts +16 -37
  237. package/dist/sse/parser.d.ts.map +1 -1
  238. package/dist/sse/parser.js +31 -28
  239. package/dist/sse/parser.js.map +1 -1
  240. package/dist/tls/constants.d.ts +21 -72
  241. package/dist/tls/constants.d.ts.map +1 -1
  242. package/dist/tls/constants.js +21 -72
  243. package/dist/tls/constants.js.map +1 -1
  244. package/dist/tls/ct.d.ts +78 -0
  245. package/dist/tls/ct.d.ts.map +1 -0
  246. package/dist/tls/ct.js +175 -0
  247. package/dist/tls/ct.js.map +1 -0
  248. package/dist/tls/early-data.d.ts +45 -0
  249. package/dist/tls/early-data.d.ts.map +1 -0
  250. package/dist/tls/early-data.js +46 -0
  251. package/dist/tls/early-data.js.map +1 -0
  252. package/dist/tls/ech.d.ts +68 -85
  253. package/dist/tls/ech.d.ts.map +1 -1
  254. package/dist/tls/ech.js +54 -102
  255. package/dist/tls/ech.js.map +1 -1
  256. package/dist/tls/keylog.d.ts +34 -0
  257. package/dist/tls/keylog.d.ts.map +1 -0
  258. package/dist/tls/keylog.js +64 -0
  259. package/dist/tls/keylog.js.map +1 -0
  260. package/dist/tls/node-engine.d.ts +10 -17
  261. package/dist/tls/node-engine.d.ts.map +1 -1
  262. package/dist/tls/node-engine.js +41 -18
  263. package/dist/tls/node-engine.js.map +1 -1
  264. package/dist/tls/ocsp.d.ts +55 -0
  265. package/dist/tls/ocsp.d.ts.map +1 -0
  266. package/dist/tls/ocsp.js +131 -0
  267. package/dist/tls/ocsp.js.map +1 -0
  268. package/dist/tls/pin-verification.d.ts +5 -4
  269. package/dist/tls/pin-verification.d.ts.map +1 -1
  270. package/dist/tls/pin-verification.js +5 -11
  271. package/dist/tls/pin-verification.js.map +1 -1
  272. package/dist/tls/session-cache.d.ts +27 -39
  273. package/dist/tls/session-cache.d.ts.map +1 -1
  274. package/dist/tls/session-cache.js +20 -24
  275. package/dist/tls/session-cache.js.map +1 -1
  276. package/dist/tls/stealth/client-hello.d.ts +26 -45
  277. package/dist/tls/stealth/client-hello.d.ts.map +1 -1
  278. package/dist/tls/stealth/client-hello.js +15 -31
  279. package/dist/tls/stealth/client-hello.js.map +1 -1
  280. package/dist/tls/stealth/engine.d.ts +10 -15
  281. package/dist/tls/stealth/engine.d.ts.map +1 -1
  282. package/dist/tls/stealth/engine.js +98 -18
  283. package/dist/tls/stealth/engine.js.map +1 -1
  284. package/dist/tls/stealth/handshake.d.ts +32 -31
  285. package/dist/tls/stealth/handshake.d.ts.map +1 -1
  286. package/dist/tls/stealth/handshake.js +74 -47
  287. package/dist/tls/stealth/handshake.js.map +1 -1
  288. package/dist/tls/stealth/key-schedule.d.ts +81 -86
  289. package/dist/tls/stealth/key-schedule.d.ts.map +1 -1
  290. package/dist/tls/stealth/key-schedule.js +70 -58
  291. package/dist/tls/stealth/key-schedule.js.map +1 -1
  292. package/dist/tls/stealth/record-layer.d.ts +52 -75
  293. package/dist/tls/stealth/record-layer.d.ts.map +1 -1
  294. package/dist/tls/stealth/record-layer.js +47 -63
  295. package/dist/tls/stealth/record-layer.js.map +1 -1
  296. package/dist/tls/stealth/tls12-handshake.d.ts +16 -0
  297. package/dist/tls/stealth/tls12-handshake.d.ts.map +1 -1
  298. package/dist/tls/stealth/tls12-handshake.js +10 -2
  299. package/dist/tls/stealth/tls12-handshake.js.map +1 -1
  300. package/dist/tls/types.d.ts +46 -60
  301. package/dist/tls/types.d.ts.map +1 -1
  302. package/dist/utils/buffer-reader.d.ts +26 -81
  303. package/dist/utils/buffer-reader.d.ts.map +1 -1
  304. package/dist/utils/buffer-reader.js +26 -81
  305. package/dist/utils/buffer-reader.js.map +1 -1
  306. package/dist/utils/buffer-writer.d.ts +30 -66
  307. package/dist/utils/buffer-writer.d.ts.map +1 -1
  308. package/dist/utils/buffer-writer.js +30 -66
  309. package/dist/utils/buffer-writer.js.map +1 -1
  310. package/dist/utils/compression.d.ts +18 -0
  311. package/dist/utils/compression.d.ts.map +1 -0
  312. package/dist/utils/compression.js +34 -0
  313. package/dist/utils/compression.js.map +1 -0
  314. package/dist/utils/dictionary-transport.d.ts +97 -0
  315. package/dist/utils/dictionary-transport.d.ts.map +1 -0
  316. package/dist/utils/dictionary-transport.js +171 -0
  317. package/dist/utils/dictionary-transport.js.map +1 -0
  318. package/dist/utils/encoding.d.ts +12 -30
  319. package/dist/utils/encoding.d.ts.map +1 -1
  320. package/dist/utils/encoding.js +15 -46
  321. package/dist/utils/encoding.js.map +1 -1
  322. package/dist/utils/happy-eyeballs.d.ts +18 -8
  323. package/dist/utils/happy-eyeballs.d.ts.map +1 -1
  324. package/dist/utils/happy-eyeballs.js +19 -27
  325. package/dist/utils/happy-eyeballs.js.map +1 -1
  326. package/dist/utils/logger.d.ts +54 -81
  327. package/dist/utils/logger.d.ts.map +1 -1
  328. package/dist/utils/logger.js +92 -64
  329. package/dist/utils/logger.js.map +1 -1
  330. package/dist/utils/tcp-fast-open.d.ts +30 -0
  331. package/dist/utils/tcp-fast-open.d.ts.map +1 -0
  332. package/dist/utils/tcp-fast-open.js +36 -0
  333. package/dist/utils/tcp-fast-open.js.map +1 -0
  334. package/dist/utils/url.d.ts +18 -25
  335. package/dist/utils/url.d.ts.map +1 -1
  336. package/dist/utils/url.js +18 -25
  337. package/dist/utils/url.js.map +1 -1
  338. package/dist/ws/client.d.ts +35 -53
  339. package/dist/ws/client.d.ts.map +1 -1
  340. package/dist/ws/client.js +96 -38
  341. package/dist/ws/client.js.map +1 -1
  342. package/dist/ws/frame.d.ts +24 -41
  343. package/dist/ws/frame.d.ts.map +1 -1
  344. package/dist/ws/frame.js +26 -33
  345. package/dist/ws/frame.js.map +1 -1
  346. package/dist/ws/permessage-deflate.d.ts +23 -28
  347. package/dist/ws/permessage-deflate.d.ts.map +1 -1
  348. package/dist/ws/permessage-deflate.js +18 -26
  349. package/dist/ws/permessage-deflate.js.map +1 -1
  350. package/package.json +2 -2
  351. package/dist/http/h3/detection.d.ts +0 -17
  352. package/dist/http/h3/detection.d.ts.map +0 -1
  353. package/dist/http/h3/detection.js +0 -59
  354. package/dist/http/h3/detection.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"client.js","sourceRoot":"","sources":["../../src/ws/client.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"client.js","sourceRoot":"","sources":["../../src/ws/client.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAI3C,OAAO,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AACtD,OAAO,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AAC5D,OAAO,EAAE,UAAU,EAAE,MAAM,6BAA6B,CAAC;AACzD,OAAO,EAAE,WAAW,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACjE,OAAO,EAAE,oBAAoB,EAAE,MAAM,uBAAuB,CAAC;AAC7D,OAAO,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,EAAE,oBAAoB,EAAE,gBAAgB,EAAuB,MAAM,YAAY,CAAC;AAC3H,OAAO,EAAE,iBAAiB,EAAE,oBAAoB,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AAuCrG,kFAAkF;AAClF,MAAM,iBAAiB,GAAG,IAAI,WAAW,CAAC,OAAO,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;AAEpE;;;GAGG;AACH,SAAS,gBAAgB,CAAC,GAAW;IACnC,IAAI,CAAC;QACH,OAAO,iBAAiB,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;IACvC,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC;AAED;;;GAGG;AACH,MAAM,OAAO,eAAgB,SAAQ,YAAY;IAC/C,0CAA0C;IACnC,KAAK,GAAmB,YAAY,CAAC;IAC5C,uDAAuD;IAChD,QAAQ,GAAG,EAAE,CAAC;IACrB,8BAA8B;IACd,GAAG,CAAS;IAEpB,MAAM,GAAkB,IAAI,CAAC;IAC7B,MAAM,GAAG,IAAI,WAAW,EAAE,CAAC;IAC3B,SAAS,GAAa,EAAE,CAAC;IACzB,cAAc,GAAW,MAAM,CAAC,IAAI,CAAC;IACrC,YAAY,GAAG,CAAC,CAAC;IACjB,MAAM,CAAU,iBAAiB,GAAG,EAAE,GAAG,IAAI,GAAG,IAAI,CAAC;IACrD,OAAO,GAA6B,IAAI,CAAC;IAEjD;;;;;OAKG;IACH,YAAY,GAAW,EAAE,UAA4B,EAAE;QACrD,KAAK,EAAE,CAAC;QACR,oBAAoB,CAAC,GAAG,CAAC,CAAC;QAC1B,IAAI,CAAC,GAAG,GAAG,GAAG,CAAC;QAEf,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE;YACvC,IAAI,CAAC,KAAK,GAAG,QAAQ,CAAC;YACtB,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC;QAC1B,CAAC,CAAC,CAAC;IACL,CAAC;IAED;;;;OAIG;IACH,QAAQ,CAAC,IAAY;QACnB,IAAI,CAAC,UAAU,EAAE,CAAC;QAClB,MAAM,OAAO,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;QAC1C,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;YACjB,IAAI,CAAC,OAAO;iBACT,QAAQ,CAAC,OAAO,CAAC;iBACjB,IAAI,CAAC,CAAC,UAAU,EAAE,EAAE;gBACnB,IAAI,CAAC,MAAO,CAAC,KAAK,CAAC,WAAW,CAAC,MAAM,CAAC,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC;YACvE,CAAC,CAAC;iBACD,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC,CAAC;QAC7C,CAAC;aAAM,CAAC;YACN,IAAI,CAAC,MAAO,CAAC,KAAK,CAAC,WAAW,CAAC,MAAM,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC,CAAC;QACxD,CAAC;IACH,CAAC;IAED;;;;OAIG;IACH,UAAU,CAAC,IAAY;QACrB,IAAI,CAAC,UAAU,EAAE,CAAC;QAClB,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;YACjB,IAAI,CAAC,OAAO;iBACT,QAAQ,CAAC,IAAI,CAAC;iBACd,IAAI,CAAC,CAAC,UAAU,EAAE,EAAE;gBACnB,IAAI,CAAC,MAAO,CAAC,KAAK,CAAC,WAAW,CAAC,MAAM,CAAC,MAAM,EAAE,UAAU,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC;YACzE,CAAC,CAAC;iBACD,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC,CAAC;QAC7C,CAAC;aAAM,CAAC;YACN,IAAI,CAAC,MAAO,CAAC,KAAK,CAAC,WAAW,CAAC,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC,CAAC;QACvD,CAAC;IACH,CAAC;IAED;;;;OAIG;IACH,IAAI,CAAC,OAAe,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;QACjC,IAAI,CAAC,UAAU,EAAE,CAAC;QAClB,IAAI,CAAC,MAAO,CAAC,KAAK,CAAC,WAAW,CAAC,MAAM,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC;IACrD,CAAC;IAED;;;;;OAKG;IACH,KAAK,CAAC,IAAI,GAAG,IAAI,EAAE,MAAM,GAAG,EAAE;QAC5B,IAAI,IAAI,CAAC,KAAK,KAAK,MAAM;YAAE,OAAO;QAClC,IAAI,CAAC,KAAK,GAAG,SAAS,CAAC;QAEvB,MAAM,SAAS,GAAG,MAAM,CAAC,IAAI,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;QAC9C,MAAM,OAAO,GAAG,MAAM,CAAC,WAAW,CAAC,CAAC,GAAG,SAAS,CAAC,MAAM,CAAC,CAAC;QACzD,OAAO,CAAC,aAAa,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;QAC/B,SAAS,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;QAE3B,IAAI,CAAC,MAAO,CAAC,KAAK,CAAC,WAAW,CAAC,MAAM,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC,CAAC;QACvD,IAAI,CAAC,OAAO,EAAE,KAAK,EAAE,CAAC;IACxB,CAAC;IAEO,UAAU;QAChB,IAAI,IAAI,CAAC,KAAK,KAAK,MAAM,EAAE,CAAC;YAC1B,MAAM,IAAI,WAAW,CAAC,uBAAuB,EAAE,iBAAiB,CAAC,CAAC;QACpE,CAAC;IACH,CAAC;IAEO,KAAK,CAAC,OAAO,CAAC,GAAW,EAAE,OAAyB;QAC1D,MAAM,MAAM,GAAG,IAAI,GAAG,CAAC,GAAG,CAAC,CAAC;QAC5B,MAAM,QAAQ,GAAG,MAAM,CAAC,QAAQ,KAAK,MAAM,CAAC;QAC5C,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;QAC3E,MAAM,IAAI,GAAG,MAAM,CAAC,QAAQ,CAAC;QAE7B,MAAM,OAAO,GAA+B,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,OAAO,CAAC,WAAW,CAAC,IAAI,SAAS,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;QAE7H,IAAI,SAAiB,CAAC;QAEtB,IAAI,QAAQ,EAAE,CAAC;YACb,MAAM,MAAM,GAAe,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,gBAAgB,EAAE,CAAC,CAAC,CAAC,IAAI,aAAa,EAAE,CAAC;YAE1F,MAAM,OAAO,GAAsB;gBACjC,IAAI;gBACJ,IAAI;gBACJ,UAAU,EAAE,IAAI;gBAChB,QAAQ,EAAE,OAAO,CAAC,QAAQ,IAAI,KAAK;gBACnC,aAAa,EAAE,CAAC,UAAU,CAAC;gBAC3B,OAAO,EAAE,OAAO,CAAC,OAAO;aACzB,CAAC;YAEF,MAAM,SAAS,GAAG,MAAM,MAAM,CAAC,OAAO,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;YACzD,SAAS,GAAG,SAA8B,CAAC;QAC7C,CAAC;aAAM,CAAC;YACN,MAAM,GAAG,GAAG,MAAM,MAAM,CAAC,UAAU,CAAC,CAAC;YACrC,SAAS,GAAG,MAAM,IAAI,OAAO,CAAS,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;gBACxD,MAAM,IAAI,GAAG,GAAG,CAAC,gBAAgB,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,EAAE,GAAG,EAAE;oBACrD,OAAO,CAAC,IAAI,CAAC,CAAC;gBAChB,CAAC,CAAC,CAAC;gBACH,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;gBAC3B,IAAI,OAAO,CAAC,OAAO,EAAE,CAAC;oBACpB,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,OAAO,EAAE,GAAG,EAAE;wBACpC,IAAI,CAAC,OAAO,EAAE,CAAC;wBACf,MAAM,CAAC,IAAI,eAAe,CAAC,gCAAgC,CAAC,CAAC,CAAC;oBAChE,CAAC,CAAC,CAAC;gBACL,CAAC;YACH,CAAC,CAAC,CAAC;QACL,CAAC;QAED,IAAI,CAAC,MAAM,GAAG,SAAS,CAAC;QAExB,MAAM,IAAI,CAAC,cAAc,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC;QAEtD,IAAI,CAAC,KAAK,GAAG,MAAM,CAAC;QACpB,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QAElB,SAAS,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,KAAa,EAAE,EAAE;YACrC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QACrB,CAAC,CAAC,CAAC;QACH,SAAS,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,GAAU,EAAE,EAAE;YACnC,IAAI,CAAC,KAAK,GAAG,QAAQ,CAAC;YACtB,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC;QAC1B,CAAC,CAAC,CAAC;QACH,SAAS,CAAC,EAAE,CAAC,OAAO,EAAE,GAAG,EAAE;YACzB,IAAI,IAAI,CAAC,KAAK,KAAK,QAAQ,EAAE,CAAC;gBAC5B,IAAI,CAAC,KAAK,GAAG,QAAQ,CAAC;gBACtB,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,EAAE,iBAAiB,CAAC,CAAC;YAC9C,CAAC;QACH,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,mBAAmB,EAAE,CAAC;IAC7B,CAAC;IAEO,cAAc,CAAC,MAAc,EAAE,GAAQ,EAAE,OAAyB;QACxE,OAAO,IAAI,OAAO,CAAO,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;YAC3C,MAAM,GAAG,GAAG,oBAAoB,EAAE,CAAC;YACnC,MAAM,IAAI,GAAG,CAAC,GAAG,CAAC,QAAQ,IAAI,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,MAAM,IAAI,EAAE,CAAC,CAAC;YAExD,IAAI,OAAO,GAAG,OAAO,IAAI,eAAe,CAAC;YACzC,OAAO,IAAI,SAAS,GAAG,CAAC,IAAI,MAAM,CAAC;YACnC,OAAO,IAAI,wBAAwB,CAAC;YACpC,OAAO,IAAI,yBAAyB,CAAC;YACrC,OAAO,IAAI,sBAAsB,GAAG,MAAM,CAAC;YAC3C,OAAO,IAAI,+BAA+B,CAAC;YAE3C,IAAI,OAAO,CAAC,SAAS,IAAI,OAAO,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBACtD,OAAO,IAAI,2BAA2B,OAAO,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC;YAC3E,CAAC;YAED,IAAI,OAAO,CAAC,QAAQ,EAAE,CAAC;gBACrB,OAAO,IAAI,6BAA6B,iBAAiB,EAAE,MAAM,CAAC;YACpE,CAAC;YAED,IAAI,OAAO,CAAC,OAAO,EAAE,CAAC;gBACpB,KAAK,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC;oBACrD,OAAO,IAAI,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC;gBAC9B,CAAC;YACH,CAAC;YAED,OAAO,IAAI,MAAM,CAAC;YAClB,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;YAEtB,IAAI,YAAY,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;YACnC,MAAM,cAAc,GAAG,gBAAgB,CAAC,GAAG,CAAC,CAAC;YAE7C,IAAI,YAAuD,CAAC;YAC5D,IAAI,OAAO,CAAC,OAAO,IAAI,OAAO,CAAC,OAAO,GAAG,CAAC,EAAE,CAAC;gBAC3C,YAAY,GAAG,UAAU,CAAC,GAAG,EAAE;oBAC7B,OAAO,EAAE,CAAC;oBACV,MAAM,CAAC,IAAI,WAAW,CAAC,6BAA6B,EAAE,gBAAgB,CAAC,CAAC,CAAC;gBAC3E,CAAC,EAAE,OAAO,CAAC,OAAO,CAAC,CAAC;YACtB,CAAC;YAED,MAAM,MAAM,GAAG,CAAC,KAAa,EAAE,EAAE;gBAC/B,YAAY,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,YAAY,EAAE,KAAK,CAAC,CAAC,CAAC;gBACpD,MAAM,IAAI,GAAG,YAAY,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;gBAC3C,MAAM,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;gBAC3C,IAAI,SAAS,KAAK,CAAC,CAAC,EAAE,CAAC;oBACrB,IAAI,YAAY,CAAC,MAAM,GAAG,KAAK,EAAE,CAAC;wBAChC,OAAO,EAAE,CAAC;wBACV,MAAM,CAAC,IAAI,WAAW,CAAC,sCAAsC,EAAE,gBAAgB,CAAC,CAAC,CAAC;oBACpF,CAAC;oBACD,OAAO;gBACT,CAAC;gBAED,OAAO,EAAE,CAAC;gBAEV,MAAM,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC;gBAC/C,MAAM,CAAC,UAAU,EAAE,GAAG,WAAW,CAAC,GAAG,SAAS,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;gBAE7D,IAAI,CAAC,UAAU,EAAE,CAAC;oBAChB,MAAM,CAAC,IAAI,WAAW,CAAC,wBAAwB,EAAE,gBAAgB,CAAC,CAAC,CAAC;oBACpE,OAAO;gBACT,CAAC;gBAED,MAAM,WAAW,GAAG,UAAU,CAAC,KAAK,CAAC,uBAAuB,CAAC,CAAC;gBAC9D,IAAI,CAAC,WAAW,IAAI,WAAW,CAAC,CAAC,CAAC,KAAK,KAAK,EAAE,CAAC;oBAC7C,MAAM,CAAC,IAAI,WAAW,CAAC,6BAA6B,UAAU,EAAE,EAAE,gBAAgB,CAAC,CAAC,CAAC;oBACrF,OAAO;gBACT,CAAC;gBAED,MAAM,OAAO,GAAG,IAAI,GAAG,EAAkB,CAAC;gBAC1C,KAAK,MAAM,IAAI,IAAI,WAAW,EAAE,CAAC;oBAC/B,MAAM,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;oBACnC,IAAI,QAAQ,GAAG,CAAC,EAAE,CAAC;wBACjB,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,EAAE,IAAI,CAAC,SAAS,CAAC,QAAQ,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;oBACrG,CAAC;gBACH,CAAC;gBAED,MAAM,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,sBAAsB,CAAC,CAAC;gBACnD,IAAI,MAAM,KAAK,cAAc,EAAE,CAAC;oBAC9B,MAAM,CAAC,IAAI,WAAW,CAAC,qCAAqC,EAAE,gBAAgB,CAAC,CAAC,CAAC;oBACjF,OAAO;gBACT,CAAC;gBAED,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAC,GAAG,CAAC,wBAAwB,CAAC,IAAI,EAAE,CAAC;gBAE5D,MAAM,SAAS,GAAG,OAAO,CAAC,GAAG,CAAC,0BAA0B,CAAC,CAAC;gBAC1D,IAAI,OAAO,CAAC,QAAQ,IAAI,SAAS,EAAE,CAAC;oBAClC,MAAM,aAAa,GAAG,oBAAoB,CAAC,SAAS,CAAC,CAAC;oBACtD,IAAI,aAAa,EAAE,CAAC;wBAClB,IAAI,CAAC,OAAO,GAAG,IAAI,iBAAiB,CAAC,aAAa,CAAC,CAAC;oBACtD,CAAC;gBACH,CAAC;gBAED,MAAM,SAAS,GAAG,YAAY,CAAC,QAAQ,CAAC,SAAS,GAAG,CAAC,CAAC,CAAC;gBACvD,IAAI,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;oBACzB,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;gBAC9B,CAAC;gBAED,OAAO,EAAE,CAAC;YACZ,CAAC,CAAC;YAEF,MAAM,OAAO,GAAG,CAAC,GAAU,EAAE,EAAE;gBAC7B,OAAO,EAAE,CAAC;gBACV,MAAM,CAAC,GAAG,CAAC,CAAC;YACd,CAAC,CAAC;YAEF,MAAM,OAAO,GAAG,GAAG,EAAE;gBACnB,IAAI,YAAY;oBAAE,YAAY,CAAC,YAAY,CAAC,CAAC;gBAC7C,MAAM,CAAC,cAAc,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;gBACtC,MAAM,CAAC,cAAc,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;YAC1C,CAAC,CAAC;YAEF,MAAM,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;YAC1B,MAAM,CAAC,EAAE,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;QAC9B,CAAC,CAAC,CAAC;IACL,CAAC;IAEO,MAAM,CAAC,KAAa;QAC1B,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACxB,IAAI,CAAC,mBAAmB,EAAE,CAAC;IAC7B,CAAC;IAEO,mBAAmB;QACzB,IAAI,KAA4B,CAAC;QACjC,OAAO,CAAC,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,KAAK,IAAI,CAAC,CAAC,KAAK,IAAI,EAAE,CAAC;YAClE,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;QAC1B,CAAC;IACH,CAAC;IAEO,WAAW,CAAC,KAAqB;QACvC,QAAQ,KAAK,CAAC,MAAM,EAAE,CAAC;YACrB,KAAK,MAAM,CAAC,IAAI,CAAC;YACjB,KAAK,MAAM,CAAC,MAAM;gBAChB,IAAI,KAAK,CAAC,GAAG,EAAE,CAAC;oBACd,MAAM,QAAQ,GAAG,KAAK,CAAC,MAAM,KAAK,MAAM,CAAC,MAAM,CAAC;oBAChD,IAAI,KAAK,CAAC,IAAI,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;wBAC/B,IAAI,CAAC,OAAO;6BACT,UAAU,CAAC,KAAK,CAAC,OAAO,CAAC;6BACzB,IAAI,CAAC,CAAC,YAAY,EAAE,EAAE;4BACrB,IAAI,QAAQ,EAAE,CAAC;gCACb,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,YAAY,EAAE,IAAI,CAAC,CAAC;4BAC3C,CAAC;iCAAM,CAAC;gCACN,MAAM,IAAI,GAAG,gBAAgB,CAAC,YAAY,CAAC,CAAC;gCAC5C,IAAI,IAAI,KAAK,IAAI,EAAE,CAAC;oCAClB,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,eAAe,CAAC,CAAC;oCAClC,OAAO;gCACT,CAAC;gCACD,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC;4BACpC,CAAC;wBACH,CAAC,CAAC;6BACD,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC,CAAC;oBAC7C,CAAC;yBAAM,CAAC;wBACN,IAAI,QAAQ,EAAE,CAAC;4BACb,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,KAAK,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;wBAC5C,CAAC;6BAAM,CAAC;4BACN,MAAM,IAAI,GAAG,gBAAgB,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;4BAC7C,IAAI,IAAI,KAAK,IAAI,EAAE,CAAC;gCAClB,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,eAAe,CAAC,CAAC;gCAClC,OAAO;4BACT,CAAC;4BACD,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC;wBACpC,CAAC;oBACH,CAAC;gBACH,CAAC;qBAAM,CAAC;oBACN,IAAI,CAAC,cAAc,GAAG,KAAK,CAAC,MAAM,CAAC;oBACnC,IAAI,CAAC,SAAS,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;oBACjC,IAAI,CAAC,YAAY,GAAG,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC;gBAC3C,CAAC;gBACD,MAAM;YAER,KAAK,MAAM,CAAC,YAAY;gBACtB,IAAI,CAAC,YAAY,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC;gBAC1C,IAAI,IAAI,CAAC,YAAY,GAAG,eAAe,CAAC,iBAAiB,EAAE,CAAC;oBAC1D,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,iBAAiB,CAAC,CAAC;oBACpC,OAAO;gBACT,CAAC;gBACD,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;gBACnC,IAAI,KAAK,CAAC,GAAG,EAAE,CAAC;oBACd,MAAM,SAAS,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;oBAChD,IAAI,CAAC,SAAS,GAAG,EAAE,CAAC;oBACpB,IAAI,CAAC,YAAY,GAAG,CAAC,CAAC;oBACtB,MAAM,QAAQ,GAAG,IAAI,CAAC,cAAc,KAAK,MAAM,CAAC,MAAM,CAAC;oBACvD,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;wBACjB,IAAI,CAAC,OAAO;6BACT,UAAU,CAAC,SAAS,CAAC;6BACrB,IAAI,CAAC,CAAC,YAAY,EAAE,EAAE;4BACrB,IAAI,QAAQ,EAAE,CAAC;gCACb,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,YAAY,EAAE,IAAI,CAAC,CAAC;4BAC3C,CAAC;iCAAM,CAAC;gCACN,MAAM,IAAI,GAAG,gBAAgB,CAAC,YAAY,CAAC,CAAC;gCAC5C,IAAI,IAAI,KAAK,IAAI,EAAE,CAAC;oCAClB,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,eAAe,CAAC,CAAC;oCAClC,OAAO;gCACT,CAAC;gCACD,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC;4BACpC,CAAC;wBACH,CAAC,CAAC;6BACD,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC,CAAC;oBAC7C,CAAC;yBAAM,CAAC;wBACN,IAAI,QAAQ,EAAE,CAAC;4BACb,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,SAAS,EAAE,IAAI,CAAC,CAAC;wBACxC,CAAC;6BAAM,CAAC;4BACN,MAAM,IAAI,GAAG,gBAAgB,CAAC,SAAS,CAAC,CAAC;4BACzC,IAAI,IAAI,KAAK,IAAI,EAAE,CAAC;gCAClB,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,eAAe,CAAC,CAAC;gCAClC,OAAO;4BACT,CAAC;4BACD,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC;wBACpC,CAAC;oBACH,CAAC;gBACH,CAAC;gBACD,MAAM;YAER,KAAK,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;gBAClB,IAAI,IAAI,GAAG,IAAI,CAAC;gBAChB,IAAI,MAAM,GAAG,EAAE,CAAC;gBAChB,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,IAAI,CAAC,EAAE,CAAC;oBAC9B,IAAI,GAAG,KAAK,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;oBACrC,MAAM,GAAG,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;gBACtD,CAAC;gBAED,IAAI,IAAI,CAAC,KAAK,KAAK,MAAM,EAAE,CAAC;oBAC1B,IAAI,CAAC,KAAK,GAAG,SAAS,CAAC;oBACvB,IAAI,CAAC,MAAO,CAAC,KAAK,CAAC,WAAW,CAAC,MAAM,CAAC,KAAK,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC;gBAC/D,CAAC;gBAED,IAAI,CAAC,KAAK,GAAG,QAAQ,CAAC;gBACtB,IAAI,CAAC,MAAM,EAAE,OAAO,EAAE,CAAC;gBACvB,IAAI,CAAC,OAAO,EAAE,KAAK,EAAE,CAAC;gBACtB,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC;gBACjC,MAAM;YACR,CAAC;YAED,KAAK,MAAM,CAAC,IAAI;gBACd,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC;gBACjC,IAAI,IAAI,CAAC,KAAK,KAAK,MAAM,EAAE,CAAC;oBAC1B,IAAI,CAAC,MAAO,CAAC,KAAK,CAAC,WAAW,CAAC,MAAM,CAAC,IAAI,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC;gBAC9D,CAAC;gBACD,MAAM;YAER,KAAK,MAAM,CAAC,IAAI;gBACd,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC;gBACjC,MAAM;QACV,CAAC;IACH,CAAC"}
@@ -1,8 +1,4 @@
1
- /**
2
- * WebSocket frame opcode values as defined in RFC 6455 §5.2.
3
- *
4
- * @enum {number}
5
- */
1
+ /** WebSocket frame opcodes as defined in RFC 6455 §11.8. */
6
2
  export declare const enum Opcode {
7
3
  CONTINUATION = 0,
8
4
  TEXT = 1,
@@ -11,70 +7,57 @@ export declare const enum Opcode {
11
7
  PING = 9,
12
8
  PONG = 10
13
9
  }
14
- /**
15
- * A parsed WebSocket frame.
16
- *
17
- * @typedef {Object} WebSocketFrame
18
- * @property {boolean} fin - Whether the FIN bit is set (final fragment).
19
- * @property {Opcode} opcode - Frame opcode.
20
- * @property {boolean} masked - Whether the payload is masked.
21
- * @property {Buffer} payload - Unmasked payload bytes.
22
- */
10
+ /** Decoded WebSocket frame header and payload. */
23
11
  export interface WebSocketFrame {
12
+ /** Whether this is the final fragment. */
24
13
  fin: boolean;
14
+ /** RSV1 bit — indicates per-message compression when negotiated. */
25
15
  rsv1: boolean;
16
+ /** Frame opcode. */
26
17
  opcode: Opcode;
18
+ /** Whether the payload is masked. */
27
19
  masked: boolean;
20
+ /** Frame payload data. */
28
21
  payload: Buffer;
29
22
  }
30
23
  /**
31
- * Encodes a WebSocket frame into a `Buffer` ready to be written to a socket.
32
- * The payload is masked by default using a cryptographically random 4-byte key
33
- * as required by RFC 6455 for client-to-server frames.
24
+ * Encode a WebSocket frame for transmission.
34
25
  *
35
- * @param {Opcode} opcode - Frame opcode.
36
- * @param {Buffer} payload - Frame payload.
37
- * @param {boolean} [mask=true] - Whether to mask the payload.
38
- * @returns {Buffer} Encoded frame bytes.
26
+ * @param {Opcode} opcode - Frame opcode.
27
+ * @param {Buffer} payload - Frame payload bytes.
28
+ * @param {boolean} mask - Apply a random masking key (default `true`).
29
+ * @param {boolean} rsv1 - Set the RSV1 bit for compressed frames.
30
+ * @returns {Buffer} Wire-format frame buffer.
39
31
  */
40
32
  export declare function encodeFrame(opcode: Opcode, payload: Buffer, mask?: boolean, rsv1?: boolean): Buffer;
41
- /**
42
- * Incremental WebSocket frame parser. Feed incoming data with
43
- * {@link FrameParser.push} and retrieve complete frames via
44
- * {@link FrameParser.pull}.
45
- */
33
+ /** Incremental parser that reassembles WebSocket frames from raw data. */
46
34
  export declare class FrameParser {
47
35
  private buffer;
48
36
  /**
49
- * Appends `data` to the internal buffer.
37
+ * Append incoming bytes to the internal buffer.
50
38
  *
51
- * @param {Buffer} data - Bytes received from the transport socket.
39
+ * @param {Buffer} data - Raw data received from the transport.
52
40
  */
53
41
  push(data: Buffer): void;
54
42
  /**
55
- * Attempts to parse and return one complete WebSocket frame from the
56
- * internal buffer. If a complete frame is available, it is removed from
57
- * the buffer and returned. Returns `null` when more data is needed.
43
+ * Attempt to decode the next complete frame from the buffer.
58
44
  *
59
- * @param {boolean} [allowRsv1=false] - When `true`, RSV1 is allowed (used by permessage-deflate).
60
- * @returns {WebSocketFrame | null} Parsed frame, or `null` if incomplete.
61
- * @throws {Error} If a frame payload exceeds the 128 MiB hard limit.
45
+ * @param {boolean} allowRsv1 - Permit the RSV1 bit for per-message deflate.
46
+ * @returns {WebSocketFrame | null} Decoded frame, or `null` if insufficient data.
62
47
  */
63
48
  pull(allowRsv1?: boolean): WebSocketFrame | null;
64
49
  }
65
50
  /**
66
- * Generates a cryptographically random WebSocket handshake key.
67
- * The key is 16 random bytes encoded as Base64, as required by RFC 6455 §4.1.
51
+ * Generate a random 16-byte Sec-WebSocket-Key encoded in base64.
68
52
  *
69
- * @returns {string} Base64-encoded 16-byte random key.
53
+ * @returns {string} Base64-encoded key for the upgrade handshake.
70
54
  */
71
55
  export declare function generateWebSocketKey(): string;
72
56
  /**
73
- * Computes the expected `Sec-WebSocket-Accept` header value for the given
74
- * `Sec-WebSocket-Key` using the algorithm defined in RFC 6455 §4.2.2.
57
+ * Compute the expected Sec-WebSocket-Accept value.
75
58
  *
76
- * @param {string} key - The `Sec-WebSocket-Key` value from the upgrade request.
77
- * @returns {string} Base64-encoded SHA-1 digest of the key concatenated with the GUID.
59
+ * @param {string} key - The Sec-WebSocket-Key sent by the client.
60
+ * @returns {string} Base64-encoded SHA-1 accept hash.
78
61
  */
79
62
  export declare function computeAcceptKey(key: string): string;
80
63
  //# sourceMappingURL=frame.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"frame.d.ts","sourceRoot":"","sources":["../../src/ws/frame.ts"],"names":[],"mappings":"AAEA;;;;GAIG;AACH,0BAAkB,MAAM;IACtB,YAAY,IAAM;IAClB,IAAI,IAAM;IACV,MAAM,IAAM;IACZ,KAAK,IAAM;IACX,IAAI,IAAM;IACV,IAAI,KAAM;CACX;AAED;;;;;;;;GAQG;AACH,MAAM,WAAW,cAAc;IAC7B,GAAG,EAAE,OAAO,CAAC;IACb,IAAI,EAAE,OAAO,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,OAAO,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;CACjB;AAED;;;;;;;;;GASG;AACH,wBAAgB,WAAW,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,IAAI,UAAO,EAAE,IAAI,UAAQ,GAAG,MAAM,CA8C9F;AAED;;;;GAIG;AACH,qBAAa,WAAW;IACtB,OAAO,CAAC,MAAM,CAAmB;IAEjC;;;;OAIG;IACH,IAAI,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI;IAIxB;;;;;;;;OAQG;IACH,IAAI,CAAC,SAAS,UAAQ,GAAG,cAAc,GAAG,IAAI;CAmD/C;AAED;;;;;GAKG;AACH,wBAAgB,oBAAoB,IAAI,MAAM,CAE7C;AAED;;;;;;GAMG;AACH,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAKpD"}
1
+ {"version":3,"file":"frame.d.ts","sourceRoot":"","sources":["../../src/ws/frame.ts"],"names":[],"mappings":"AAEA,4DAA4D;AAC5D,0BAAkB,MAAM;IACtB,YAAY,IAAM;IAClB,IAAI,IAAM;IACV,MAAM,IAAM;IACZ,KAAK,IAAM;IACX,IAAI,IAAM;IACV,IAAI,KAAM;CACX;AAED,kDAAkD;AAClD,MAAM,WAAW,cAAc;IAC7B,0CAA0C;IAC1C,GAAG,EAAE,OAAO,CAAC;IACb,oEAAoE;IACpE,IAAI,EAAE,OAAO,CAAC;IACd,oBAAoB;IACpB,MAAM,EAAE,MAAM,CAAC;IACf,qCAAqC;IACrC,MAAM,EAAE,OAAO,CAAC;IAChB,0BAA0B;IAC1B,OAAO,EAAE,MAAM,CAAC;CACjB;AAED;;;;;;;;GAQG;AACH,wBAAgB,WAAW,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,IAAI,UAAO,EAAE,IAAI,UAAQ,GAAG,MAAM,CAiD9F;AAED,0EAA0E;AAC1E,qBAAa,WAAW;IACtB,OAAO,CAAC,MAAM,CAAmB;IAEjC;;;;OAIG;IACH,IAAI,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI;IAIxB;;;;;OAKG;IACH,IAAI,CAAC,SAAS,UAAQ,GAAG,cAAc,GAAG,IAAI;CAuD/C;AAED;;;;GAIG;AACH,wBAAgB,oBAAoB,IAAI,MAAM,CAE7C;AAED;;;;;GAKG;AACH,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAKpD"}
package/dist/ws/frame.js CHANGED
@@ -1,9 +1,5 @@
1
1
  import * as crypto from "node:crypto";
2
- /**
3
- * WebSocket frame opcode values as defined in RFC 6455 §5.2.
4
- *
5
- * @enum {number}
6
- */
2
+ /** WebSocket frame opcodes as defined in RFC 6455 §11.8. */
7
3
  export var Opcode;
8
4
  (function (Opcode) {
9
5
  Opcode[Opcode["CONTINUATION"] = 0] = "CONTINUATION";
@@ -14,19 +10,20 @@ export var Opcode;
14
10
  Opcode[Opcode["PONG"] = 10] = "PONG";
15
11
  })(Opcode || (Opcode = {}));
16
12
  /**
17
- * Encodes a WebSocket frame into a `Buffer` ready to be written to a socket.
18
- * The payload is masked by default using a cryptographically random 4-byte key
19
- * as required by RFC 6455 for client-to-server frames.
13
+ * Encode a WebSocket frame for transmission.
20
14
  *
21
- * @param {Opcode} opcode - Frame opcode.
22
- * @param {Buffer} payload - Frame payload.
23
- * @param {boolean} [mask=true] - Whether to mask the payload.
24
- * @returns {Buffer} Encoded frame bytes.
15
+ * @param {Opcode} opcode - Frame opcode.
16
+ * @param {Buffer} payload - Frame payload bytes.
17
+ * @param {boolean} mask - Apply a random masking key (default `true`).
18
+ * @param {boolean} rsv1 - Set the RSV1 bit for compressed frames.
19
+ * @returns {Buffer} Wire-format frame buffer.
25
20
  */
26
21
  export function encodeFrame(opcode, payload, mask = true, rsv1 = false) {
22
+ if (opcode >= 0x8 && payload.length > 125) {
23
+ throw new Error("WebSocket control frame payload exceeds 125 bytes (RFC 6455 §5.5)");
24
+ }
27
25
  const payloadLen = payload.length;
28
26
  let headerLen = 2;
29
- let extendedPayloadOffset = 2;
30
27
  if (payloadLen > 65535) {
31
28
  headerLen += 8;
32
29
  }
@@ -67,29 +64,22 @@ export function encodeFrame(opcode, payload, mask = true, rsv1 = false) {
67
64
  }
68
65
  return frame;
69
66
  }
70
- /**
71
- * Incremental WebSocket frame parser. Feed incoming data with
72
- * {@link FrameParser.push} and retrieve complete frames via
73
- * {@link FrameParser.pull}.
74
- */
67
+ /** Incremental parser that reassembles WebSocket frames from raw data. */
75
68
  export class FrameParser {
76
69
  buffer = Buffer.alloc(0);
77
70
  /**
78
- * Appends `data` to the internal buffer.
71
+ * Append incoming bytes to the internal buffer.
79
72
  *
80
- * @param {Buffer} data - Bytes received from the transport socket.
73
+ * @param {Buffer} data - Raw data received from the transport.
81
74
  */
82
75
  push(data) {
83
76
  this.buffer = Buffer.concat([this.buffer, data]);
84
77
  }
85
78
  /**
86
- * Attempts to parse and return one complete WebSocket frame from the
87
- * internal buffer. If a complete frame is available, it is removed from
88
- * the buffer and returned. Returns `null` when more data is needed.
79
+ * Attempt to decode the next complete frame from the buffer.
89
80
  *
90
- * @param {boolean} [allowRsv1=false] - When `true`, RSV1 is allowed (used by permessage-deflate).
91
- * @returns {WebSocketFrame | null} Parsed frame, or `null` if incomplete.
92
- * @throws {Error} If a frame payload exceeds the 128 MiB hard limit.
81
+ * @param {boolean} allowRsv1 - Permit the RSV1 bit for per-message deflate.
82
+ * @returns {WebSocketFrame | null} Decoded frame, or `null` if insufficient data.
93
83
  */
94
84
  pull(allowRsv1 = false) {
95
85
  if (this.buffer.length < 2)
@@ -111,15 +101,20 @@ export class FrameParser {
111
101
  if (masked) {
112
102
  throw new Error("WebSocket frame from server is masked (RFC 6455 §5.1 violation)");
113
103
  }
104
+ const isControl = opcode >= 0x8;
114
105
  let payloadLen = byte1 & 0x7f;
115
106
  let offset = 2;
116
107
  if (payloadLen === 126) {
108
+ if (isControl)
109
+ throw new Error("WebSocket control frame payload exceeds 125 bytes");
117
110
  if (this.buffer.length < 4)
118
111
  return null;
119
112
  payloadLen = this.buffer.readUInt16BE(2);
120
113
  offset = 4;
121
114
  }
122
115
  else if (payloadLen === 127) {
116
+ if (isControl)
117
+ throw new Error("WebSocket control frame payload exceeds 125 bytes");
123
118
  if (this.buffer.length < 10)
124
119
  return null;
125
120
  const len64 = this.buffer.readBigUInt64BE(2);
@@ -138,20 +133,18 @@ export class FrameParser {
138
133
  }
139
134
  }
140
135
  /**
141
- * Generates a cryptographically random WebSocket handshake key.
142
- * The key is 16 random bytes encoded as Base64, as required by RFC 6455 §4.1.
136
+ * Generate a random 16-byte Sec-WebSocket-Key encoded in base64.
143
137
  *
144
- * @returns {string} Base64-encoded 16-byte random key.
138
+ * @returns {string} Base64-encoded key for the upgrade handshake.
145
139
  */
146
140
  export function generateWebSocketKey() {
147
141
  return crypto.randomBytes(16).toString("base64");
148
142
  }
149
143
  /**
150
- * Computes the expected `Sec-WebSocket-Accept` header value for the given
151
- * `Sec-WebSocket-Key` using the algorithm defined in RFC 6455 §4.2.2.
144
+ * Compute the expected Sec-WebSocket-Accept value.
152
145
  *
153
- * @param {string} key - The `Sec-WebSocket-Key` value from the upgrade request.
154
- * @returns {string} Base64-encoded SHA-1 digest of the key concatenated with the GUID.
146
+ * @param {string} key - The Sec-WebSocket-Key sent by the client.
147
+ * @returns {string} Base64-encoded SHA-1 accept hash.
155
148
  */
156
149
  export function computeAcceptKey(key) {
157
150
  return crypto
@@ -1 +1 @@
1
- {"version":3,"file":"frame.js","sourceRoot":"","sources":["../../src/ws/frame.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"frame.js","sourceRoot":"","sources":["../../src/ws/frame.ts"],"names":[],"mappings":"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"}
@@ -1,58 +1,53 @@
1
- /**
2
- * Negotiated permessage-deflate parameters.
3
- *
4
- * @typedef {Object} DeflateParams
5
- * @property {boolean} serverNoContextTakeover - Server resets deflate context per-message.
6
- * @property {boolean} clientNoContextTakeover - Client resets deflate context per-message.
7
- * @property {number} serverMaxWindowBits - Server max window bits (8–15).
8
- * @property {number} clientMaxWindowBits - Client max window bits (8–15).
9
- */
1
+ /** Negotiated per-message deflate parameters. */
10
2
  export interface DeflateParams {
3
+ /** Server will not reuse its LZ77 sliding window between messages. */
11
4
  serverNoContextTakeover: boolean;
5
+ /** Client will not reuse its LZ77 sliding window between messages. */
12
6
  clientNoContextTakeover: boolean;
7
+ /** Maximum window bits for the server's decompressor. */
13
8
  serverMaxWindowBits: number;
9
+ /** Maximum window bits for the client's compressor. */
14
10
  clientMaxWindowBits: number;
15
11
  }
16
12
  /**
17
- * Builds the `Sec-WebSocket-Extensions` header value for the client offer.
13
+ * Build a `Sec-WebSocket-Extensions` offer string for per-message deflate.
18
14
  *
19
- * @returns {string} Extension offer string.
15
+ * @returns {string} Extension offer suitable for the upgrade request.
20
16
  */
21
17
  export declare function buildDeflateOffer(): string;
22
18
  /**
23
- * Parses the server's `Sec-WebSocket-Extensions` response header to extract
24
- * the negotiated `permessage-deflate` parameters. Returns `null` when the
25
- * extension was not accepted by the server.
19
+ * Parse the server's `Sec-WebSocket-Extensions` response for deflate params.
26
20
  *
27
- * @param {string} header - The `Sec-WebSocket-Extensions` response header value.
28
- * @returns {DeflateParams | null} Negotiated parameters, or `null`.
21
+ * @param {string} header - Raw extension header value from the server.
22
+ * @returns {DeflateParams | null} Negotiated deflate parameters, or `null` if not accepted.
29
23
  */
30
24
  export declare function parseDeflateResponse(header: string): DeflateParams | null;
31
- /**
32
- * Manages per-message DEFLATE compression and decompression for a single
33
- * WebSocket connection. Maintains stateful zlib contexts unless
34
- * `no_context_takeover` was negotiated.
35
- */
25
+ /** Stateful per-message deflate compressor and decompressor (RFC 7692). */
36
26
  export declare class PerMessageDeflate {
37
27
  private readonly params;
38
28
  private inflateContext;
39
29
  private deflateContext;
30
+ /**
31
+ * Create a per-message deflate handler.
32
+ *
33
+ * @param {DeflateParams} params - Negotiated deflate parameters.
34
+ */
40
35
  constructor(params: DeflateParams);
41
36
  /**
42
- * Decompresses a received message payload.
37
+ * Decompress a compressed WebSocket payload.
43
38
  *
44
- * @param {Buffer} data - Compressed payload (without the DEFLATE flush tail).
45
- * @returns {Promise<Buffer>} Decompressed message data.
39
+ * @param {Buffer} data - Compressed frame payload.
40
+ * @returns {Promise<Buffer>} Decompressed data.
46
41
  */
47
42
  decompress(data: Buffer): Promise<Buffer>;
48
43
  /**
49
- * Compresses a message payload for sending.
44
+ * Compress a WebSocket payload before framing.
50
45
  *
51
- * @param {Buffer} data - Uncompressed message payload.
52
- * @returns {Promise<Buffer>} Compressed data (with DEFLATE flush tail stripped).
46
+ * @param {Buffer} data - Uncompressed payload.
47
+ * @returns {Promise<Buffer>} Compressed data with the deflate tail stripped.
53
48
  */
54
49
  compress(data: Buffer): Promise<Buffer>;
55
- /** Releases zlib resources. */
50
+ /** Release inflate and deflate contexts and free associated memory. */
56
51
  close(): void;
57
52
  }
58
53
  //# sourceMappingURL=permessage-deflate.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"permessage-deflate.d.ts","sourceRoot":"","sources":["../../src/ws/permessage-deflate.ts"],"names":[],"mappings":"AAWA;;;;;;;;GAQG;AACH,MAAM,WAAW,aAAa;IAC5B,uBAAuB,EAAE,OAAO,CAAC;IACjC,uBAAuB,EAAE,OAAO,CAAC;IACjC,mBAAmB,EAAE,MAAM,CAAC;IAC5B,mBAAmB,EAAE,MAAM,CAAC;CAC7B;AASD;;;;GAIG;AACH,wBAAgB,iBAAiB,IAAI,MAAM,CAE1C;AAED;;;;;;;GAOG;AACH,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,MAAM,GAAG,aAAa,GAAG,IAAI,CA8BzE;AAED;;;;GAIG;AACH,qBAAa,iBAAiB;IAC5B,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAgB;IACvC,OAAO,CAAC,cAAc,CAA6B;IACnD,OAAO,CAAC,cAAc,CAA6B;gBAEvC,MAAM,EAAE,aAAa;IAIjC;;;;;OAKG;IACH,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IA8BzC;;;;;OAKG;IACH,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAgCvC,+BAA+B;IAC/B,KAAK,IAAI,IAAI;CAMd"}
1
+ {"version":3,"file":"permessage-deflate.d.ts","sourceRoot":"","sources":["../../src/ws/permessage-deflate.ts"],"names":[],"mappings":"AAIA,iDAAiD;AACjD,MAAM,WAAW,aAAa;IAC5B,sEAAsE;IACtE,uBAAuB,EAAE,OAAO,CAAC;IACjC,sEAAsE;IACtE,uBAAuB,EAAE,OAAO,CAAC;IACjC,yDAAyD;IACzD,mBAAmB,EAAE,MAAM,CAAC;IAC5B,uDAAuD;IACvD,mBAAmB,EAAE,MAAM,CAAC;CAC7B;AASD;;;;GAIG;AACH,wBAAgB,iBAAiB,IAAI,MAAM,CAE1C;AAED;;;;;GAKG;AACH,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,MAAM,GAAG,aAAa,GAAG,IAAI,CA8BzE;AAED,2EAA2E;AAC3E,qBAAa,iBAAiB;IAC5B,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAgB;IACvC,OAAO,CAAC,cAAc,CAA6B;IACnD,OAAO,CAAC,cAAc,CAA6B;IAEnD;;;;OAIG;gBACS,MAAM,EAAE,aAAa;IAIjC;;;;;OAKG;IACH,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IA8BzC;;;;;OAKG;IACH,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAgCvC,uEAAuE;IACvE,KAAK,IAAI,IAAI;CAMd"}
@@ -1,11 +1,4 @@
1
- /**
2
- * WebSocket `permessage-deflate` extension (RFC 7692).
3
- *
4
- * Provides per-message DEFLATE compression for WebSocket frames. Negotiated
5
- * during the HTTP Upgrade handshake via the `Sec-WebSocket-Extensions` header.
6
- */
7
1
  import * as zlib from "node:zlib";
8
- /** The 4-byte DEFLATE flush trailer appended by RFC 7692 §7.2.1. */
9
2
  const DEFLATE_TAIL = Buffer.from([0x00, 0x00, 0xff, 0xff]);
10
3
  const DEFAULT_PARAMS = {
11
4
  serverNoContextTakeover: false,
@@ -14,20 +7,18 @@ const DEFAULT_PARAMS = {
14
7
  clientMaxWindowBits: 15,
15
8
  };
16
9
  /**
17
- * Builds the `Sec-WebSocket-Extensions` header value for the client offer.
10
+ * Build a `Sec-WebSocket-Extensions` offer string for per-message deflate.
18
11
  *
19
- * @returns {string} Extension offer string.
12
+ * @returns {string} Extension offer suitable for the upgrade request.
20
13
  */
21
14
  export function buildDeflateOffer() {
22
15
  return "permessage-deflate; client_max_window_bits";
23
16
  }
24
17
  /**
25
- * Parses the server's `Sec-WebSocket-Extensions` response header to extract
26
- * the negotiated `permessage-deflate` parameters. Returns `null` when the
27
- * extension was not accepted by the server.
18
+ * Parse the server's `Sec-WebSocket-Extensions` response for deflate params.
28
19
  *
29
- * @param {string} header - The `Sec-WebSocket-Extensions` response header value.
30
- * @returns {DeflateParams | null} Negotiated parameters, or `null`.
20
+ * @param {string} header - Raw extension header value from the server.
21
+ * @returns {DeflateParams | null} Negotiated deflate parameters, or `null` if not accepted.
31
22
  */
32
23
  export function parseDeflateResponse(header) {
33
24
  const extensions = header.split(",").map((s) => s.trim());
@@ -60,23 +51,24 @@ export function parseDeflateResponse(header) {
60
51
  }
61
52
  return null;
62
53
  }
63
- /**
64
- * Manages per-message DEFLATE compression and decompression for a single
65
- * WebSocket connection. Maintains stateful zlib contexts unless
66
- * `no_context_takeover` was negotiated.
67
- */
54
+ /** Stateful per-message deflate compressor and decompressor (RFC 7692). */
68
55
  export class PerMessageDeflate {
69
56
  params;
70
57
  inflateContext = null;
71
58
  deflateContext = null;
59
+ /**
60
+ * Create a per-message deflate handler.
61
+ *
62
+ * @param {DeflateParams} params - Negotiated deflate parameters.
63
+ */
72
64
  constructor(params) {
73
65
  this.params = params;
74
66
  }
75
67
  /**
76
- * Decompresses a received message payload.
68
+ * Decompress a compressed WebSocket payload.
77
69
  *
78
- * @param {Buffer} data - Compressed payload (without the DEFLATE flush tail).
79
- * @returns {Promise<Buffer>} Decompressed message data.
70
+ * @param {Buffer} data - Compressed frame payload.
71
+ * @returns {Promise<Buffer>} Decompressed data.
80
72
  */
81
73
  decompress(data) {
82
74
  return new Promise((resolve, reject) => {
@@ -104,10 +96,10 @@ export class PerMessageDeflate {
104
96
  });
105
97
  }
106
98
  /**
107
- * Compresses a message payload for sending.
99
+ * Compress a WebSocket payload before framing.
108
100
  *
109
- * @param {Buffer} data - Uncompressed message payload.
110
- * @returns {Promise<Buffer>} Compressed data (with DEFLATE flush tail stripped).
101
+ * @param {Buffer} data - Uncompressed payload.
102
+ * @returns {Promise<Buffer>} Compressed data with the deflate tail stripped.
111
103
  */
112
104
  compress(data) {
113
105
  return new Promise((resolve, reject) => {
@@ -137,7 +129,7 @@ export class PerMessageDeflate {
137
129
  });
138
130
  });
139
131
  }
140
- /** Releases zlib resources. */
132
+ /** Release inflate and deflate contexts and free associated memory. */
141
133
  close() {
142
134
  this.inflateContext?.close();
143
135
  this.deflateContext?.close();
@@ -1 +1 @@
1
- {"version":3,"file":"permessage-deflate.js","sourceRoot":"","sources":["../../src/ws/permessage-deflate.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"permessage-deflate.js","sourceRoot":"","sources":["../../src/ws/permessage-deflate.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "nlcurl",
3
- "version": "0.7.0",
4
- "updated": "2026.03.08.1440",
3
+ "version": "0.9.0",
4
+ "updated": "2026.03.09.1320",
5
5
  "description": "Next-level HTTP client with native TLS fingerprint impersonation. Pure TypeScript, zero dependencies.",
6
6
  "author": "devAlphaSystem",
7
7
  "license": "MIT",
@@ -1,17 +0,0 @@
1
- /**
2
- * Checks whether the current Node.js runtime has QUIC/HTTP3 support available.
3
- *
4
- * @returns {boolean} `true` if the runtime exposes a usable QUIC API.
5
- */
6
- export declare function isQuicAvailable(): boolean;
7
- /**
8
- * Throws a descriptive error when HTTP/3 is explicitly requested but not available.
9
- *
10
- * @throws {NLcURLError} Always, unless QUIC is available.
11
- */
12
- export declare function assertQuicAvailable(): void;
13
- /**
14
- * Resets the cached QUIC detection state. Used primarily for testing.
15
- */
16
- export declare function resetQuicDetection(): void;
17
- //# sourceMappingURL=detection.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"detection.d.ts","sourceRoot":"","sources":["../../../src/http/h3/detection.ts"],"names":[],"mappings":"AAoBA;;;;GAIG;AACH,wBAAgB,eAAe,IAAI,OAAO,CAkBzC;AAED;;;;GAIG;AACH,wBAAgB,mBAAmB,IAAI,IAAI,CAG1C;AAED;;GAEG;AACH,wBAAgB,kBAAkB,IAAI,IAAI,CAEzC"}
@@ -1,59 +0,0 @@
1
- /**
2
- * HTTP/3 (QUIC / RFC 9114) support module.
3
- *
4
- * Node.js does not currently expose a stable QUIC API. This module provides:
5
- * 1. Runtime detection of Node.js native QUIC support.
6
- * 2. Alt-Svc–based HTTP/3 discovery for upgrade from HTTP/2 or HTTP/1.1.
7
- * 3. A clear error when HTTP/3 is explicitly forced but unavailable.
8
- *
9
- * When the library discovers an Alt-Svc header advertising h3, it records the
10
- * alternative in the {@link AltSvcStore} so future requests to that origin can
11
- * attempt HTTP/3 when the runtime supports QUIC.
12
- *
13
- * When Node.js ships stable QUIC (behind `--experimental-quic` or natively),
14
- * this module will transparently use it.
15
- */
16
- import { NLcURLError } from "../../core/errors.js";
17
- /** Cached detection result to avoid repeated probes. */
18
- let _quicAvailable;
19
- /**
20
- * Checks whether the current Node.js runtime has QUIC/HTTP3 support available.
21
- *
22
- * @returns {boolean} `true` if the runtime exposes a usable QUIC API.
23
- */
24
- export function isQuicAvailable() {
25
- if (_quicAvailable !== undefined)
26
- return _quicAvailable;
27
- _quicAvailable = false;
28
- try {
29
- const quic = globalThis["__quic"];
30
- if (quic) {
31
- _quicAvailable = true;
32
- return true;
33
- }
34
- const net = require("node:net");
35
- if (typeof net.createQuicSocket === "function") {
36
- _quicAvailable = true;
37
- return true;
38
- }
39
- }
40
- catch { }
41
- return false;
42
- }
43
- /**
44
- * Throws a descriptive error when HTTP/3 is explicitly requested but not available.
45
- *
46
- * @throws {NLcURLError} Always, unless QUIC is available.
47
- */
48
- export function assertQuicAvailable() {
49
- if (isQuicAvailable())
50
- return;
51
- throw new NLcURLError("HTTP/3 (QUIC) is not available. Node.js does not currently provide a stable QUIC API. " + "Use httpVersion '1.1' or '2', or omit httpVersion to let the library negotiate automatically. " + "Alt-Svc discovery is active — when QUIC becomes available, HTTP/3 will be used automatically.", "ERR_H3_UNAVAILABLE");
52
- }
53
- /**
54
- * Resets the cached QUIC detection state. Used primarily for testing.
55
- */
56
- export function resetQuicDetection() {
57
- _quicAvailable = undefined;
58
- }
59
- //# sourceMappingURL=detection.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"detection.js","sourceRoot":"","sources":["../../../src/http/h3/detection.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AACH,OAAO,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AAEnD,wDAAwD;AACxD,IAAI,cAAmC,CAAC;AAExC;;;;GAIG;AACH,MAAM,UAAU,eAAe;IAC7B,IAAI,cAAc,KAAK,SAAS;QAAE,OAAO,cAAc,CAAC;IAExD,cAAc,GAAG,KAAK,CAAC;IACvB,IAAI,CAAC;QACH,MAAM,IAAI,GAAI,UAAsC,CAAC,QAAQ,CAAC,CAAC;QAC/D,IAAI,IAAI,EAAE,CAAC;YACT,cAAc,GAAG,IAAI,CAAC;YACtB,OAAO,IAAI,CAAC;QACd,CAAC;QAED,MAAM,GAAG,GAAG,OAAO,CAAC,UAAU,CAAC,CAAC;QAChC,IAAI,OAAO,GAAG,CAAC,gBAAgB,KAAK,UAAU,EAAE,CAAC;YAC/C,cAAc,GAAG,IAAI,CAAC;YACtB,OAAO,IAAI,CAAC;QACd,CAAC;IACH,CAAC;IAAC,MAAM,CAAC,CAAA,CAAC;IACV,OAAO,KAAK,CAAC;AACf,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,mBAAmB;IACjC,IAAI,eAAe,EAAE;QAAE,OAAO;IAC9B,MAAM,IAAI,WAAW,CAAC,wFAAwF,GAAG,gGAAgG,GAAG,+FAA+F,EAAE,oBAAoB,CAAC,CAAC;AAC7U,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,kBAAkB;IAChC,cAAc,GAAG,SAAS,CAAC;AAC7B,CAAC"}