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
@@ -1,8 +1,4 @@
1
- /**
2
- * HTTP/2 frame type identifiers as defined in RFC 7540 §11.2.
3
- *
4
- * @see {@link https://datatracker.ietf.org/doc/html/rfc7540#section-11.2}
5
- */
1
+ /** HTTP/2 frame type identifiers. */
6
2
  export declare const FrameType: {
7
3
  readonly DATA: 0;
8
4
  readonly HEADERS: 1;
@@ -15,11 +11,7 @@ export declare const FrameType: {
15
11
  readonly WINDOW_UPDATE: 8;
16
12
  readonly CONTINUATION: 9;
17
13
  };
18
- /**
19
- * HTTP/2 frame flag bit masks as defined in RFC 7540. Flags are frame-type
20
- * specific; e.g. `END_STREAM` is valid on DATA and HEADERS frames while `ACK`
21
- * shares the same value `0x1` but applies to SETTINGS and PING frames.
22
- */
14
+ /** HTTP/2 frame flag bitmasks. */
23
15
  export declare const Flags: {
24
16
  readonly END_STREAM: 1;
25
17
  readonly ACK: 1;
@@ -27,11 +19,7 @@ export declare const Flags: {
27
19
  readonly PADDED: 8;
28
20
  readonly PRIORITY: 32;
29
21
  };
30
- /**
31
- * HTTP/2 SETTINGS parameter identifiers as defined in RFC 7540 §6.5.2.
32
- *
33
- * @see {@link https://datatracker.ietf.org/doc/html/rfc7540#section-6.5.2}
34
- */
22
+ /** HTTP/2 SETTINGS parameter identifiers. */
35
23
  export declare const SettingsParam: {
36
24
  readonly HEADER_TABLE_SIZE: 1;
37
25
  readonly ENABLE_PUSH: 2;
@@ -40,127 +28,108 @@ export declare const SettingsParam: {
40
28
  readonly MAX_FRAME_SIZE: 5;
41
29
  readonly MAX_HEADER_LIST_SIZE: 6;
42
30
  };
43
- /**
44
- * Represents a decoded HTTP/2 frame.
45
- *
46
- * @typedef {Object} H2Frame
47
- * @property {number} type - Frame type identifier (see `FrameType`).
48
- * @property {number} flags - Frame flags bitmask (see `Flags`).
49
- * @property {number} streamId - Associated stream identifier (0 for connection-level frames).
50
- * @property {Buffer} payload - Raw frame payload (excludes the 9-byte header).
51
- */
31
+ /** Parsed HTTP/2 frame. */
52
32
  export interface H2Frame {
33
+ /** Frame type code. */
53
34
  type: number;
35
+ /** Frame flags bitmask. */
54
36
  flags: number;
37
+ /** Stream identifier. */
55
38
  streamId: number;
39
+ /** Frame payload data. */
56
40
  payload: Buffer;
57
41
  }
58
42
  /**
59
- * Attempts to parse one HTTP/2 frame starting at `offset` in `data`.
60
- * Returns `null` if insufficient bytes are available for a complete frame.
43
+ * Read a single HTTP/2 frame from a buffer.
61
44
  *
62
- * @param {Buffer} data - Input buffer potentially containing one or more frames.
63
- * @param {number} offset - Byte offset within `data` at which to start parsing.
64
- * @param {number} [maxFrameSize=16777215] - Maximum permitted payload length.
65
- * Frames whose length field exceeds this value cause a `FRAME_SIZE_ERROR`.
66
- * Callers should pass the peer's `SETTINGS_MAX_FRAME_SIZE` value here.
67
- * @returns {{ frame: H2Frame; bytesRead: number } | null} Parsed frame and total bytes consumed,
68
- * or `null` if more data is required.
69
- * @throws {Error} If the frame's length field exceeds `maxFrameSize`.
45
+ * @param {Buffer} data - Buffer to read from.
46
+ * @param {number} offset - Byte offset to start reading.
47
+ * @param {number} [maxFrameSize] - Maximum allowed frame payload size.
48
+ * @returns {{ frame: H2Frame; bytesRead: number } | null} Parsed frame and bytes consumed, or `null` if insufficient data.
70
49
  */
71
50
  export declare function readFrame(data: Buffer, offset: number, maxFrameSize?: number): {
72
51
  frame: H2Frame;
73
52
  bytesRead: number;
74
53
  } | null;
75
54
  /**
76
- * Serializes an HTTP/2 frame into a `Buffer` including the 9-byte frame header.
55
+ * Serialize an HTTP/2 frame to a wire-format buffer.
77
56
  *
78
57
  * @param {H2Frame} frame - Frame to serialize.
79
- * @returns {Buffer} Complete frame bytes ready to be written to a transport stream.
58
+ * @returns {Buffer} Wire-format buffer.
80
59
  */
81
60
  export declare function writeFrame(frame: H2Frame): Buffer;
82
61
  /**
83
- * Builds a SETTINGS frame optionally containing one or more settings parameters.
84
- * When `ack` is `true` the frame acknowledges a peer SETTINGS frame and the
85
- * `settings` array is ignored.
62
+ * Build an HTTP/2 SETTINGS frame.
86
63
  *
87
- * @param {Array<{id: number; value: number}>} settings - Settings parameters to send.
88
- * @param {boolean} [ack=false] - Whether to create a SETTINGS acknowledgement (empty payload + ACK flag).
89
- * @returns {Buffer} Encoded SETTINGS frame.
64
+ * @param {Array<{ id: number; value: number }>} settings - Setting id/value pairs.
65
+ * @param {boolean} [ack] - Whether this is a SETTINGS acknowledgment.
66
+ * @returns {Buffer} Serialized SETTINGS frame.
90
67
  */
91
68
  export declare function buildSettingsFrame(settings: Array<{
92
69
  id: number;
93
70
  value: number;
94
71
  }>, ack?: boolean): Buffer;
95
72
  /**
96
- * Builds a WINDOW_UPDATE frame that enlarges a flow-control window.
73
+ * Build an HTTP/2 WINDOW_UPDATE frame.
97
74
  *
98
- * @param {number} streamId - Stream to update (`0` for the connection-level window).
99
- * @param {number} increment - Number of octets to add to the flow-control window (1–2^31-1).
100
- * @returns {Buffer} Encoded WINDOW_UPDATE frame.
75
+ * @param {number} streamId - Target stream (0 for connection-level).
76
+ * @param {number} increment - Window size increment.
77
+ * @returns {Buffer} Serialized WINDOW_UPDATE frame.
101
78
  */
102
79
  export declare function buildWindowUpdateFrame(streamId: number, increment: number): Buffer;
103
80
  /**
104
- * Builds a HEADERS frame carrying an HPACK-encoded header block fragment.
81
+ * Build an HTTP/2 HEADERS frame.
105
82
  *
106
- * @param {number} streamId - Stream identifier.
107
- * @param {Buffer} headerBlock - HPACK-encoded header block.
108
- * @param {boolean} endStream - Whether to set the END_STREAM flag (no DATA frames follow).
109
- * @param {boolean} endHeaders - Whether to set the END_HEADERS flag (no CONTINUATION frames follow).
110
- * @returns {Buffer} Encoded HEADERS frame.
83
+ * @param {number} streamId - Target stream.
84
+ * @param {Buffer} headerBlock - HPACK-encoded header block.
85
+ * @param {boolean} endStream - Whether this completes the stream.
86
+ * @param {boolean} endHeaders - Whether the header block is complete.
87
+ * @returns {Buffer} Serialized HEADERS frame.
111
88
  */
112
89
  export declare function buildHeadersFrame(streamId: number, headerBlock: Buffer, endStream: boolean, endHeaders: boolean): Buffer;
113
90
  /**
114
- * Builds a DATA frame carrying application payload bytes for a stream.
91
+ * Build an HTTP/2 DATA frame.
115
92
  *
116
- * @param {number} streamId - Stream identifier.
117
- * @param {Buffer} data - Payload to send.
118
- * @param {boolean} endStream - Whether to set the END_STREAM flag (last DATA frame for this stream).
119
- * @returns {Buffer} Encoded DATA frame.
93
+ * @param {number} streamId - Target stream.
94
+ * @param {Buffer} data - Payload data.
95
+ * @param {boolean} endStream - Whether this completes the stream.
96
+ * @returns {Buffer} Serialized DATA frame.
120
97
  */
121
98
  export declare function buildDataFrame(streamId: number, data: Buffer, endStream: boolean): Buffer;
122
99
  /**
123
- * Builds a PRIORITY frame that advises the peer about the relative priority
124
- * and dependency tree position of a stream.
100
+ * Build an HTTP/2 PRIORITY frame.
125
101
  *
126
- * @param {number} streamId - Stream to set priority for.
127
- * @param {boolean} exclusive - Whether this stream is exclusive in the dependency tree.
128
- * @param {number} dependsOn - Parent stream identifier.
129
- * @param {number} weight - Stream weight (1–256 per RFC 7540; value stored as `weight - 1`).
130
- * @returns {Buffer} Encoded PRIORITY frame.
102
+ * @param {number} streamId - Target stream.
103
+ * @param {boolean} exclusive - Whether to use exclusive dependency.
104
+ * @param {number} dependsOn - Stream dependency.
105
+ * @param {number} weight - Priority weight (1–256).
106
+ * @returns {Buffer} Serialized PRIORITY frame.
131
107
  */
132
108
  export declare function buildPriorityFrame(streamId: number, exclusive: boolean, dependsOn: number, weight: number): Buffer;
133
109
  /**
134
- * Builds a GOAWAY frame notifying the peer that the connection is being
135
- * gracefully shut down.
110
+ * Build an HTTP/2 GOAWAY frame.
136
111
  *
137
- * @param {number} lastStreamId - Highest-numbered stream ID that was processed.
138
- * @param {number} errorCode - HTTP/2 error code (0 = NO_ERROR for graceful shutdown).
139
- * @returns {Buffer} Encoded GOAWAY frame.
112
+ * @param {number} lastStreamId - Last processed stream identifier.
113
+ * @param {number} errorCode - Error code.
114
+ * @returns {Buffer} Serialized GOAWAY frame.
140
115
  */
141
116
  export declare function buildGoawayFrame(lastStreamId: number, errorCode: number): Buffer;
142
117
  /**
143
- * Builds a PING frame used for measuring round-trip time or testing connectivity.
118
+ * Build an HTTP/2 PING frame.
144
119
  *
145
- * @param {Buffer} data - 8-byte opaque payload to echo back.
146
- * @param {boolean} [ack=false] - When `true`, sets the ACK flag (reply to a received PING).
147
- * @returns {Buffer} Encoded PING frame.
120
+ * @param {Buffer} data - 8-byte ping payload.
121
+ * @param {boolean} [ack] - Whether this is a PING acknowledgment.
122
+ * @returns {Buffer} Serialized PING frame.
148
123
  */
149
124
  export declare function buildPingFrame(data: Buffer, ack?: boolean): Buffer;
150
125
  /**
151
- * Builds a RST_STREAM frame that immediately terminates a stream.
126
+ * Build an HTTP/2 RST_STREAM frame.
152
127
  *
153
- * @param {number} streamId - Stream to reset.
154
- * @param {number} errorCode - HTTP/2 error code describing the reason for the reset.
155
- * @returns {Buffer} Encoded RST_STREAM frame.
128
+ * @param {number} streamId - Stream to reset.
129
+ * @param {number} errorCode - Error code.
130
+ * @returns {Buffer} Serialized RST_STREAM frame.
156
131
  */
157
132
  export declare function buildRstStreamFrame(streamId: number, errorCode: number): Buffer;
158
- /**
159
- * The HTTP/2 client connection preface as defined in RFC 7540 §3.5.
160
- * Must be the first bytes sent by a client after the transport connection is
161
- * established and before any SETTINGS frame.
162
- *
163
- * @see {@link https://datatracker.ietf.org/doc/html/rfc7540#section-3.5}
164
- */
133
+ /** HTTP/2 connection preface sent by the client. */
165
134
  export declare const H2_PREFACE: Buffer<ArrayBuffer>;
166
135
  //# sourceMappingURL=frames.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"frames.d.ts","sourceRoot":"","sources":["../../../src/http/h2/frames.ts"],"names":[],"mappings":"AAGA;;;;GAIG;AACH,eAAO,MAAM,SAAS;;;;;;;;;;;CAWZ,CAAC;AAEX;;;;GAIG;AACH,eAAO,MAAM,KAAK;;;;;;CAMR,CAAC;AAEX;;;;GAIG;AACH,eAAO,MAAM,aAAa;;;;;;;CAOhB,CAAC;AAEX;;;;;;;;GAQG;AACH,MAAM,WAAW,OAAO;IACtB,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;CACjB;AAKD;;;;;;;;;;;;GAYG;AACH,wBAAgB,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,YAAY,GAAE,MAAgC,GAAG;IAAE,KAAK,EAAE,OAAO,CAAC;IAAC,SAAS,EAAE,MAAM,CAAA;CAAE,GAAG,IAAI,CAqBpJ;AAED;;;;;GAKG;AACH,wBAAgB,UAAU,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,CAUjD;AAED;;;;;;;;GAQG;AACH,wBAAgB,kBAAkB,CAAC,QAAQ,EAAE,KAAK,CAAC;IAAE,EAAE,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,CAAC,EAAE,GAAG,UAAQ,GAAG,MAAM,CAoBtG;AAED;;;;;;GAMG;AACH,wBAAgB,sBAAsB,CAAC,QAAQ,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,MAAM,CASlF;AAED;;;;;;;;GAQG;AACH,wBAAgB,iBAAiB,CAAC,QAAQ,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,SAAS,EAAE,OAAO,EAAE,UAAU,EAAE,OAAO,GAAG,MAAM,CAUxH;AAED;;;;;;;GAOG;AACH,wBAAgB,cAAc,CAAC,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,OAAO,GAAG,MAAM,CASzF;AAED;;;;;;;;;GASG;AACH,wBAAgB,kBAAkB,CAAC,QAAQ,EAAE,MAAM,EAAE,SAAS,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,MAAM,CAYlH;AAED;;;;;;;GAOG;AACH,wBAAgB,gBAAgB,CAAC,YAAY,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,MAAM,CAUhF;AAED;;;;;;GAMG;AACH,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,UAAQ,GAAG,MAAM,CAShE;AAED;;;;;;GAMG;AACH,wBAAgB,mBAAmB,CAAC,QAAQ,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,MAAM,CAS/E;AAED;;;;;;GAMG;AACH,eAAO,MAAM,UAAU,qBAA2D,CAAC"}
1
+ {"version":3,"file":"frames.d.ts","sourceRoot":"","sources":["../../../src/http/h2/frames.ts"],"names":[],"mappings":"AAEA,qCAAqC;AACrC,eAAO,MAAM,SAAS;;;;;;;;;;;CAWZ,CAAC;AAEX,kCAAkC;AAClC,eAAO,MAAM,KAAK;;;;;;CAMR,CAAC;AAEX,6CAA6C;AAC7C,eAAO,MAAM,aAAa;;;;;;;CAOhB,CAAC;AAEX,2BAA2B;AAC3B,MAAM,WAAW,OAAO;IACtB,uBAAuB;IACvB,IAAI,EAAE,MAAM,CAAC;IACb,2BAA2B;IAC3B,KAAK,EAAE,MAAM,CAAC;IACd,yBAAyB;IACzB,QAAQ,EAAE,MAAM,CAAC;IACjB,0BAA0B;IAC1B,OAAO,EAAE,MAAM,CAAC;CACjB;AAID;;;;;;;GAOG;AACH,wBAAgB,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,YAAY,GAAE,MAAgC,GAAG;IAAE,KAAK,EAAE,OAAO,CAAC;IAAC,SAAS,EAAE,MAAM,CAAA;CAAE,GAAG,IAAI,CAqBpJ;AAED;;;;;GAKG;AACH,wBAAgB,UAAU,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,CAUjD;AAED;;;;;;GAMG;AACH,wBAAgB,kBAAkB,CAAC,QAAQ,EAAE,KAAK,CAAC;IAAE,EAAE,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,CAAC,EAAE,GAAG,UAAQ,GAAG,MAAM,CAoBtG;AAED;;;;;;GAMG;AACH,wBAAgB,sBAAsB,CAAC,QAAQ,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,MAAM,CASlF;AAED;;;;;;;;GAQG;AACH,wBAAgB,iBAAiB,CAAC,QAAQ,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,SAAS,EAAE,OAAO,EAAE,UAAU,EAAE,OAAO,GAAG,MAAM,CAUxH;AAED;;;;;;;GAOG;AACH,wBAAgB,cAAc,CAAC,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,OAAO,GAAG,MAAM,CASzF;AAED;;;;;;;;GAQG;AACH,wBAAgB,kBAAkB,CAAC,QAAQ,EAAE,MAAM,EAAE,SAAS,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,MAAM,CAYlH;AAED;;;;;;GAMG;AACH,wBAAgB,gBAAgB,CAAC,YAAY,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,MAAM,CAUhF;AAED;;;;;;GAMG;AACH,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,UAAQ,GAAG,MAAM,CAShE;AAED;;;;;;GAMG;AACH,wBAAgB,mBAAmB,CAAC,QAAQ,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,MAAM,CAS/E;AAED,oDAAoD;AACpD,eAAO,MAAM,UAAU,qBAA2D,CAAC"}
@@ -1,9 +1,5 @@
1
1
  import { BufferWriter } from "../../utils/buffer-writer.js";
2
- /**
3
- * HTTP/2 frame type identifiers as defined in RFC 7540 §11.2.
4
- *
5
- * @see {@link https://datatracker.ietf.org/doc/html/rfc7540#section-11.2}
6
- */
2
+ /** HTTP/2 frame type identifiers. */
7
3
  export const FrameType = {
8
4
  DATA: 0x0,
9
5
  HEADERS: 0x1,
@@ -16,11 +12,7 @@ export const FrameType = {
16
12
  WINDOW_UPDATE: 0x8,
17
13
  CONTINUATION: 0x9,
18
14
  };
19
- /**
20
- * HTTP/2 frame flag bit masks as defined in RFC 7540. Flags are frame-type
21
- * specific; e.g. `END_STREAM` is valid on DATA and HEADERS frames while `ACK`
22
- * shares the same value `0x1` but applies to SETTINGS and PING frames.
23
- */
15
+ /** HTTP/2 frame flag bitmasks. */
24
16
  export const Flags = {
25
17
  END_STREAM: 0x1,
26
18
  ACK: 0x1,
@@ -28,11 +20,7 @@ export const Flags = {
28
20
  PADDED: 0x8,
29
21
  PRIORITY: 0x20,
30
22
  };
31
- /**
32
- * HTTP/2 SETTINGS parameter identifiers as defined in RFC 7540 §6.5.2.
33
- *
34
- * @see {@link https://datatracker.ietf.org/doc/html/rfc7540#section-6.5.2}
35
- */
23
+ /** HTTP/2 SETTINGS parameter identifiers. */
36
24
  export const SettingsParam = {
37
25
  HEADER_TABLE_SIZE: 0x1,
38
26
  ENABLE_PUSH: 0x2,
@@ -41,20 +29,14 @@ export const SettingsParam = {
41
29
  MAX_FRAME_SIZE: 0x5,
42
30
  MAX_HEADER_LIST_SIZE: 0x6,
43
31
  };
44
- /** RFC 7540 §4.2: Maximum value for SETTINGS_MAX_FRAME_SIZE (2^24 - 1). */
45
32
  const PROTOCOL_MAX_FRAME_SIZE = 16_777_215;
46
33
  /**
47
- * Attempts to parse one HTTP/2 frame starting at `offset` in `data`.
48
- * Returns `null` if insufficient bytes are available for a complete frame.
34
+ * Read a single HTTP/2 frame from a buffer.
49
35
  *
50
- * @param {Buffer} data - Input buffer potentially containing one or more frames.
51
- * @param {number} offset - Byte offset within `data` at which to start parsing.
52
- * @param {number} [maxFrameSize=16777215] - Maximum permitted payload length.
53
- * Frames whose length field exceeds this value cause a `FRAME_SIZE_ERROR`.
54
- * Callers should pass the peer's `SETTINGS_MAX_FRAME_SIZE` value here.
55
- * @returns {{ frame: H2Frame; bytesRead: number } | null} Parsed frame and total bytes consumed,
56
- * or `null` if more data is required.
57
- * @throws {Error} If the frame's length field exceeds `maxFrameSize`.
36
+ * @param {Buffer} data - Buffer to read from.
37
+ * @param {number} offset - Byte offset to start reading.
38
+ * @param {number} [maxFrameSize] - Maximum allowed frame payload size.
39
+ * @returns {{ frame: H2Frame; bytesRead: number } | null} Parsed frame and bytes consumed, or `null` if insufficient data.
58
40
  */
59
41
  export function readFrame(data, offset, maxFrameSize = PROTOCOL_MAX_FRAME_SIZE) {
60
42
  if (data.length - offset < 9)
@@ -75,10 +57,10 @@ export function readFrame(data, offset, maxFrameSize = PROTOCOL_MAX_FRAME_SIZE)
75
57
  };
76
58
  }
77
59
  /**
78
- * Serializes an HTTP/2 frame into a `Buffer` including the 9-byte frame header.
60
+ * Serialize an HTTP/2 frame to a wire-format buffer.
79
61
  *
80
62
  * @param {H2Frame} frame - Frame to serialize.
81
- * @returns {Buffer} Complete frame bytes ready to be written to a transport stream.
63
+ * @returns {Buffer} Wire-format buffer.
82
64
  */
83
65
  export function writeFrame(frame) {
84
66
  const w = new BufferWriter(9 + frame.payload.length);
@@ -92,13 +74,11 @@ export function writeFrame(frame) {
92
74
  return w.toBuffer();
93
75
  }
94
76
  /**
95
- * Builds a SETTINGS frame optionally containing one or more settings parameters.
96
- * When `ack` is `true` the frame acknowledges a peer SETTINGS frame and the
97
- * `settings` array is ignored.
77
+ * Build an HTTP/2 SETTINGS frame.
98
78
  *
99
- * @param {Array<{id: number; value: number}>} settings - Settings parameters to send.
100
- * @param {boolean} [ack=false] - Whether to create a SETTINGS acknowledgement (empty payload + ACK flag).
101
- * @returns {Buffer} Encoded SETTINGS frame.
79
+ * @param {Array<{ id: number; value: number }>} settings - Setting id/value pairs.
80
+ * @param {boolean} [ack] - Whether this is a SETTINGS acknowledgment.
81
+ * @returns {Buffer} Serialized SETTINGS frame.
102
82
  */
103
83
  export function buildSettingsFrame(settings, ack = false) {
104
84
  if (ack) {
@@ -122,11 +102,11 @@ export function buildSettingsFrame(settings, ack = false) {
122
102
  });
123
103
  }
124
104
  /**
125
- * Builds a WINDOW_UPDATE frame that enlarges a flow-control window.
105
+ * Build an HTTP/2 WINDOW_UPDATE frame.
126
106
  *
127
- * @param {number} streamId - Stream to update (`0` for the connection-level window).
128
- * @param {number} increment - Number of octets to add to the flow-control window (1–2^31-1).
129
- * @returns {Buffer} Encoded WINDOW_UPDATE frame.
107
+ * @param {number} streamId - Target stream (0 for connection-level).
108
+ * @param {number} increment - Window size increment.
109
+ * @returns {Buffer} Serialized WINDOW_UPDATE frame.
130
110
  */
131
111
  export function buildWindowUpdateFrame(streamId, increment) {
132
112
  const w = new BufferWriter(4);
@@ -139,13 +119,13 @@ export function buildWindowUpdateFrame(streamId, increment) {
139
119
  });
140
120
  }
141
121
  /**
142
- * Builds a HEADERS frame carrying an HPACK-encoded header block fragment.
122
+ * Build an HTTP/2 HEADERS frame.
143
123
  *
144
- * @param {number} streamId - Stream identifier.
145
- * @param {Buffer} headerBlock - HPACK-encoded header block.
146
- * @param {boolean} endStream - Whether to set the END_STREAM flag (no DATA frames follow).
147
- * @param {boolean} endHeaders - Whether to set the END_HEADERS flag (no CONTINUATION frames follow).
148
- * @returns {Buffer} Encoded HEADERS frame.
124
+ * @param {number} streamId - Target stream.
125
+ * @param {Buffer} headerBlock - HPACK-encoded header block.
126
+ * @param {boolean} endStream - Whether this completes the stream.
127
+ * @param {boolean} endHeaders - Whether the header block is complete.
128
+ * @returns {Buffer} Serialized HEADERS frame.
149
129
  */
150
130
  export function buildHeadersFrame(streamId, headerBlock, endStream, endHeaders) {
151
131
  let flags = 0;
@@ -161,12 +141,12 @@ export function buildHeadersFrame(streamId, headerBlock, endStream, endHeaders)
161
141
  });
162
142
  }
163
143
  /**
164
- * Builds a DATA frame carrying application payload bytes for a stream.
144
+ * Build an HTTP/2 DATA frame.
165
145
  *
166
- * @param {number} streamId - Stream identifier.
167
- * @param {Buffer} data - Payload to send.
168
- * @param {boolean} endStream - Whether to set the END_STREAM flag (last DATA frame for this stream).
169
- * @returns {Buffer} Encoded DATA frame.
146
+ * @param {number} streamId - Target stream.
147
+ * @param {Buffer} data - Payload data.
148
+ * @param {boolean} endStream - Whether this completes the stream.
149
+ * @returns {Buffer} Serialized DATA frame.
170
150
  */
171
151
  export function buildDataFrame(streamId, data, endStream) {
172
152
  let flags = 0;
@@ -180,14 +160,13 @@ export function buildDataFrame(streamId, data, endStream) {
180
160
  });
181
161
  }
182
162
  /**
183
- * Builds a PRIORITY frame that advises the peer about the relative priority
184
- * and dependency tree position of a stream.
163
+ * Build an HTTP/2 PRIORITY frame.
185
164
  *
186
- * @param {number} streamId - Stream to set priority for.
187
- * @param {boolean} exclusive - Whether this stream is exclusive in the dependency tree.
188
- * @param {number} dependsOn - Parent stream identifier.
189
- * @param {number} weight - Stream weight (1–256 per RFC 7540; value stored as `weight - 1`).
190
- * @returns {Buffer} Encoded PRIORITY frame.
165
+ * @param {number} streamId - Target stream.
166
+ * @param {boolean} exclusive - Whether to use exclusive dependency.
167
+ * @param {number} dependsOn - Stream dependency.
168
+ * @param {number} weight - Priority weight (1–256).
169
+ * @returns {Buffer} Serialized PRIORITY frame.
191
170
  */
192
171
  export function buildPriorityFrame(streamId, exclusive, dependsOn, weight) {
193
172
  const w = new BufferWriter(5);
@@ -204,12 +183,11 @@ export function buildPriorityFrame(streamId, exclusive, dependsOn, weight) {
204
183
  });
205
184
  }
206
185
  /**
207
- * Builds a GOAWAY frame notifying the peer that the connection is being
208
- * gracefully shut down.
186
+ * Build an HTTP/2 GOAWAY frame.
209
187
  *
210
- * @param {number} lastStreamId - Highest-numbered stream ID that was processed.
211
- * @param {number} errorCode - HTTP/2 error code (0 = NO_ERROR for graceful shutdown).
212
- * @returns {Buffer} Encoded GOAWAY frame.
188
+ * @param {number} lastStreamId - Last processed stream identifier.
189
+ * @param {number} errorCode - Error code.
190
+ * @returns {Buffer} Serialized GOAWAY frame.
213
191
  */
214
192
  export function buildGoawayFrame(lastStreamId, errorCode) {
215
193
  const w = new BufferWriter(8);
@@ -223,11 +201,11 @@ export function buildGoawayFrame(lastStreamId, errorCode) {
223
201
  });
224
202
  }
225
203
  /**
226
- * Builds a PING frame used for measuring round-trip time or testing connectivity.
204
+ * Build an HTTP/2 PING frame.
227
205
  *
228
- * @param {Buffer} data - 8-byte opaque payload to echo back.
229
- * @param {boolean} [ack=false] - When `true`, sets the ACK flag (reply to a received PING).
230
- * @returns {Buffer} Encoded PING frame.
206
+ * @param {Buffer} data - 8-byte ping payload.
207
+ * @param {boolean} [ack] - Whether this is a PING acknowledgment.
208
+ * @returns {Buffer} Serialized PING frame.
231
209
  */
232
210
  export function buildPingFrame(data, ack = false) {
233
211
  const payload = Buffer.alloc(8);
@@ -240,11 +218,11 @@ export function buildPingFrame(data, ack = false) {
240
218
  });
241
219
  }
242
220
  /**
243
- * Builds a RST_STREAM frame that immediately terminates a stream.
221
+ * Build an HTTP/2 RST_STREAM frame.
244
222
  *
245
- * @param {number} streamId - Stream to reset.
246
- * @param {number} errorCode - HTTP/2 error code describing the reason for the reset.
247
- * @returns {Buffer} Encoded RST_STREAM frame.
223
+ * @param {number} streamId - Stream to reset.
224
+ * @param {number} errorCode - Error code.
225
+ * @returns {Buffer} Serialized RST_STREAM frame.
248
226
  */
249
227
  export function buildRstStreamFrame(streamId, errorCode) {
250
228
  const w = new BufferWriter(4);
@@ -256,12 +234,6 @@ export function buildRstStreamFrame(streamId, errorCode) {
256
234
  payload: w.toBuffer(),
257
235
  });
258
236
  }
259
- /**
260
- * The HTTP/2 client connection preface as defined in RFC 7540 §3.5.
261
- * Must be the first bytes sent by a client after the transport connection is
262
- * established and before any SETTINGS frame.
263
- *
264
- * @see {@link https://datatracker.ietf.org/doc/html/rfc7540#section-3.5}
265
- */
237
+ /** HTTP/2 connection preface sent by the client. */
266
238
  export const H2_PREFACE = Buffer.from("PRI * HTTP/2.0\r\n\r\nSM\r\n\r\n", "ascii");
267
239
  //# sourceMappingURL=frames.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"frames.js","sourceRoot":"","sources":["../../../src/http/h2/frames.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"frames.js","sourceRoot":"","sources":["../../../src/http/h2/frames.ts"],"names":[],"mappings":"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"}
@@ -1,67 +1,48 @@
1
- /**
2
- * HPACK header compression encoder (RFC 7541). Maintains a dynamic header
3
- * table and encodes header lists into compact HPACK binary format using
4
- * Huffman coding and indexed representations.
5
- *
6
- * @see {@link https://datatracker.ietf.org/doc/html/rfc7541}
7
- */
1
+ /** HPACK header compression encoder for HTTP/2. */
8
2
  export declare class HPACKEncoder {
9
3
  private dynamicTable;
10
4
  private staticIndex;
11
5
  private staticFullIndex;
12
6
  /**
13
- * Creates a new HPACKEncoder with the given initial dynamic table size.
7
+ * Create a new HPACK encoder.
14
8
  *
15
- * @param {number} [tableSize=4096] - Maximum size of the HPACK dynamic header table in bytes.
9
+ * @param {number} [tableSize] - Maximum dynamic table size in bytes.
16
10
  */
17
11
  constructor(tableSize?: number);
18
12
  /**
19
- * Encodes an ordered header list into an HPACK binary block ready to be
20
- * placed in an HTTP/2 HEADERS or PUSH_PROMISE frame payload.
13
+ * Encode headers into an HPACK header block.
21
14
  *
22
- * @param {Array<[string, string]>} headers - Header name-value pairs to encode.
23
- * @returns {Buffer} HPACK-encoded header block fragment.
15
+ * @param {Array<[string, string]>} headers - Header name/value pairs to encode.
16
+ * @returns {Buffer} Compressed header block buffer.
24
17
  */
25
18
  encode(headers: Array<[string, string]>): Buffer;
26
19
  /**
27
- * Updates the encoder's dynamic table maximum size — call this whenever a
28
- * `SETTINGS_HEADER_TABLE_SIZE` value is received from the remote peer so
29
- * that subsequent {@link encode} calls respect the new limit.
20
+ * Update the dynamic table maximum size.
30
21
  *
31
- * @param {number} newSize - New maximum dynamic table size in bytes.
22
+ * @param {number} newSize - New maximum size in bytes.
32
23
  */
33
24
  updateTableSize(newSize: number): void;
34
25
  }
35
- /**
36
- * HPACK header decompression decoder (RFC 7541). Maintains a synchronized
37
- * dynamic header table and decodes HPACK binary blocks received in
38
- * HTTP/2 HEADERS and PUSH_PROMISE frames.
39
- *
40
- * @see {@link https://datatracker.ietf.org/doc/html/rfc7541}
41
- */
26
+ /** HPACK header compression decoder for HTTP/2. */
42
27
  export declare class HPACKDecoder {
43
28
  private dynamicTable;
44
29
  /**
45
- * Creates a new HPACKDecoder with the given initial dynamic table size.
30
+ * Create a new HPACK decoder.
46
31
  *
47
- * @param {number} [tableSize=4096] - Maximum size of the HPACK dynamic header table in bytes.
32
+ * @param {number} [tableSize] - Maximum dynamic table size in bytes.
48
33
  */
49
34
  constructor(tableSize?: number);
50
35
  /**
51
- * Updates the maximum size of the decoder's dynamic table. Called when a
52
- * SETTINGS_HEADER_TABLE_SIZE frame is received from the server.
36
+ * Update the dynamic table maximum size.
53
37
  *
54
- * @param {number} maxSize - New maximum table size in bytes.
38
+ * @param {number} maxSize - New maximum size in bytes.
55
39
  */
56
40
  setMaxTableSize(maxSize: number): void;
57
41
  /**
58
- * Decodes an HPACK-encoded header block fragment into an ordered list of
59
- * name-value pairs. Updates the internal dynamic table as required by the
60
- * HPACK state machine.
42
+ * Decode an HPACK header block into header pairs.
61
43
  *
62
- * @param {Buffer} data - HPACK-encoded header block fragment from a HEADERS or PUSH_PROMISE frame.
63
- * @returns {Array<[string, string]>} Decoded header name-value pairs in transmission order.
64
- * @throws {Error} If the encoded data references an invalid table index.
44
+ * @param {Buffer} data - HPACK encoded data.
45
+ * @returns {Array<[string, string]>} Decoded header name/value pairs.
65
46
  */
66
47
  decode(data: Buffer): Array<[string, string]>;
67
48
  private getEntry;
@@ -1 +1 @@
1
- {"version":3,"file":"hpack.d.ts","sourceRoot":"","sources":["../../../src/http/h2/hpack.ts"],"names":[],"mappings":"AAqKA;;;;;;GAMG;AACH,qBAAa,YAAY;IACvB,OAAO,CAAC,YAAY,CAAe;IACnC,OAAO,CAAC,WAAW,CAAsB;IACzC,OAAO,CAAC,eAAe,CAAsB;IAE7C;;;;OAIG;gBACS,SAAS,GAAE,MAAa;IAiBpC;;;;;;OAMG;IACH,MAAM,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,GAAG,MAAM;IA6BhD;;;;;;OAMG;IACH,eAAe,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI;CAGvC;AAED;;;;;;GAMG;AACH,qBAAa,YAAY;IACvB,OAAO,CAAC,YAAY,CAAe;IAEnC;;;;OAIG;gBACS,SAAS,GAAE,MAAa;IAIpC;;;;;OAKG;IACH,eAAe,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI;IAItC;;;;;;;;OAQG;IACH,MAAM,CAAC,IAAI,EAAE,MAAM,GAAG,KAAK,CAAC,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAyD7C,OAAO,CAAC,QAAQ;CAcjB"}
1
+ {"version":3,"file":"hpack.d.ts","sourceRoot":"","sources":["../../../src/http/h2/hpack.ts"],"names":[],"mappings":"AAqKA,mDAAmD;AACnD,qBAAa,YAAY;IACvB,OAAO,CAAC,YAAY,CAAe;IACnC,OAAO,CAAC,WAAW,CAAsB;IACzC,OAAO,CAAC,eAAe,CAAsB;IAE7C;;;;OAIG;gBACS,SAAS,GAAE,MAAa;IAiBpC;;;;;OAKG;IACH,MAAM,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,GAAG,MAAM;IA6BhD;;;;OAIG;IACH,eAAe,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI;CAGvC;AAED,mDAAmD;AACnD,qBAAa,YAAY;IACvB,OAAO,CAAC,YAAY,CAAe;IAEnC;;;;OAIG;gBACS,SAAS,GAAE,MAAa;IAIpC;;;;OAIG;IACH,eAAe,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI;IAItC;;;;;OAKG;IACH,MAAM,CAAC,IAAI,EAAE,MAAM,GAAG,KAAK,CAAC,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAyD7C,OAAO,CAAC,QAAQ;CAcjB"}