nlcurl 0.1.0 → 0.2.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 (197) hide show
  1. package/README.md +5 -13
  2. package/dist/cli/args.d.ts +37 -5
  3. package/dist/cli/args.d.ts.map +1 -1
  4. package/dist/cli/args.js +6 -17
  5. package/dist/cli/args.js.map +1 -1
  6. package/dist/cli/index.d.ts +3 -3
  7. package/dist/cli/index.js +25 -10
  8. package/dist/cli/index.js.map +1 -1
  9. package/dist/cli/output.d.ts +24 -7
  10. package/dist/cli/output.d.ts.map +1 -1
  11. package/dist/cli/output.js +24 -12
  12. package/dist/cli/output.js.map +1 -1
  13. package/dist/cookies/jar.d.ts +45 -13
  14. package/dist/cookies/jar.d.ts.map +1 -1
  15. package/dist/cookies/jar.js +88 -29
  16. package/dist/cookies/jar.js.map +1 -1
  17. package/dist/cookies/parser.d.ts +25 -3
  18. package/dist/cookies/parser.d.ts.map +1 -1
  19. package/dist/cookies/parser.js +12 -7
  20. package/dist/cookies/parser.js.map +1 -1
  21. package/dist/core/client.d.ts +49 -33
  22. package/dist/core/client.d.ts.map +1 -1
  23. package/dist/core/client.js +64 -38
  24. package/dist/core/client.js.map +1 -1
  25. package/dist/core/errors.d.ts +94 -6
  26. package/dist/core/errors.d.ts.map +1 -1
  27. package/dist/core/errors.js +95 -6
  28. package/dist/core/errors.js.map +1 -1
  29. package/dist/core/request.d.ts +96 -30
  30. package/dist/core/request.d.ts.map +1 -1
  31. package/dist/core/request.js +0 -3
  32. package/dist/core/request.js.map +1 -1
  33. package/dist/core/response.d.ts +92 -8
  34. package/dist/core/response.d.ts.map +1 -1
  35. package/dist/core/response.js +92 -7
  36. package/dist/core/response.js.map +1 -1
  37. package/dist/core/session.d.ts +109 -14
  38. package/dist/core/session.d.ts.map +1 -1
  39. package/dist/core/session.js +124 -46
  40. package/dist/core/session.js.map +1 -1
  41. package/dist/fingerprints/akamai.d.ts +11 -11
  42. package/dist/fingerprints/akamai.d.ts.map +1 -1
  43. package/dist/fingerprints/akamai.js +10 -14
  44. package/dist/fingerprints/akamai.js.map +1 -1
  45. package/dist/fingerprints/database.d.ts +14 -15
  46. package/dist/fingerprints/database.d.ts.map +1 -1
  47. package/dist/fingerprints/database.js +14 -19
  48. package/dist/fingerprints/database.js.map +1 -1
  49. package/dist/fingerprints/extensions.d.ts +121 -27
  50. package/dist/fingerprints/extensions.d.ts.map +1 -1
  51. package/dist/fingerprints/extensions.js +132 -49
  52. package/dist/fingerprints/extensions.js.map +1 -1
  53. package/dist/fingerprints/ja3.d.ts +34 -18
  54. package/dist/fingerprints/ja3.d.ts.map +1 -1
  55. package/dist/fingerprints/ja3.js +34 -18
  56. package/dist/fingerprints/ja3.js.map +1 -1
  57. package/dist/fingerprints/profiles/chrome.d.ts +21 -10
  58. package/dist/fingerprints/profiles/chrome.d.ts.map +1 -1
  59. package/dist/fingerprints/profiles/chrome.js +25 -22
  60. package/dist/fingerprints/profiles/chrome.js.map +1 -1
  61. package/dist/fingerprints/profiles/edge.d.ts +10 -7
  62. package/dist/fingerprints/profiles/edge.d.ts.map +1 -1
  63. package/dist/fingerprints/profiles/edge.js +10 -10
  64. package/dist/fingerprints/profiles/edge.js.map +1 -1
  65. package/dist/fingerprints/profiles/firefox.d.ts +11 -3
  66. package/dist/fingerprints/profiles/firefox.d.ts.map +1 -1
  67. package/dist/fingerprints/profiles/firefox.js +15 -14
  68. package/dist/fingerprints/profiles/firefox.js.map +1 -1
  69. package/dist/fingerprints/profiles/safari.d.ts +14 -3
  70. package/dist/fingerprints/profiles/safari.d.ts.map +1 -1
  71. package/dist/fingerprints/profiles/safari.js +16 -13
  72. package/dist/fingerprints/profiles/safari.js.map +1 -1
  73. package/dist/fingerprints/profiles/tor.d.ts +8 -7
  74. package/dist/fingerprints/profiles/tor.d.ts.map +1 -1
  75. package/dist/fingerprints/profiles/tor.js +8 -14
  76. package/dist/fingerprints/profiles/tor.js.map +1 -1
  77. package/dist/fingerprints/types.d.ts +70 -47
  78. package/dist/fingerprints/types.d.ts.map +1 -1
  79. package/dist/fingerprints/types.js +0 -7
  80. package/dist/fingerprints/types.js.map +1 -1
  81. package/dist/http/h1/client.d.ts +30 -9
  82. package/dist/http/h1/client.d.ts.map +1 -1
  83. package/dist/http/h1/client.js +152 -15
  84. package/dist/http/h1/client.js.map +1 -1
  85. package/dist/http/h1/encoder.d.ts +9 -6
  86. package/dist/http/h1/encoder.d.ts.map +1 -1
  87. package/dist/http/h1/encoder.js +8 -12
  88. package/dist/http/h1/encoder.js.map +1 -1
  89. package/dist/http/h1/parser.d.ts +68 -14
  90. package/dist/http/h1/parser.d.ts.map +1 -1
  91. package/dist/http/h1/parser.js +92 -37
  92. package/dist/http/h1/parser.js.map +1 -1
  93. package/dist/http/h2/client.d.ts +81 -14
  94. package/dist/http/h2/client.d.ts.map +1 -1
  95. package/dist/http/h2/client.js +465 -63
  96. package/dist/http/h2/client.js.map +1 -1
  97. package/dist/http/h2/frames.d.ts +103 -6
  98. package/dist/http/h2/frames.d.ts.map +1 -1
  99. package/dist/http/h2/frames.js +96 -17
  100. package/dist/http/h2/frames.js.map +1 -1
  101. package/dist/http/h2/hpack.d.ts +30 -5
  102. package/dist/http/h2/hpack.d.ts.map +1 -1
  103. package/dist/http/h2/hpack.js +39 -35
  104. package/dist/http/h2/hpack.js.map +1 -1
  105. package/dist/http/negotiator.d.ts +35 -12
  106. package/dist/http/negotiator.d.ts.map +1 -1
  107. package/dist/http/negotiator.js +89 -24
  108. package/dist/http/negotiator.js.map +1 -1
  109. package/dist/http/pool.d.ts +66 -17
  110. package/dist/http/pool.d.ts.map +1 -1
  111. package/dist/http/pool.js +47 -20
  112. package/dist/http/pool.js.map +1 -1
  113. package/dist/index.d.ts +2 -3
  114. package/dist/index.d.ts.map +1 -1
  115. package/dist/index.js +0 -13
  116. package/dist/index.js.map +1 -1
  117. package/dist/middleware/interceptor.d.ts +40 -8
  118. package/dist/middleware/interceptor.d.ts.map +1 -1
  119. package/dist/middleware/interceptor.js +28 -6
  120. package/dist/middleware/interceptor.js.map +1 -1
  121. package/dist/middleware/rate-limiter.d.ts +18 -5
  122. package/dist/middleware/rate-limiter.d.ts.map +1 -1
  123. package/dist/middleware/rate-limiter.js +12 -7
  124. package/dist/middleware/rate-limiter.js.map +1 -1
  125. package/dist/middleware/retry.d.ts +17 -5
  126. package/dist/middleware/retry.d.ts.map +1 -1
  127. package/dist/middleware/retry.js +13 -11
  128. package/dist/middleware/retry.js.map +1 -1
  129. package/dist/proxy/http-proxy.d.ts +17 -9
  130. package/dist/proxy/http-proxy.d.ts.map +1 -1
  131. package/dist/proxy/http-proxy.js +9 -13
  132. package/dist/proxy/http-proxy.js.map +1 -1
  133. package/dist/proxy/socks.d.ts +20 -9
  134. package/dist/proxy/socks.d.ts.map +1 -1
  135. package/dist/proxy/socks.js +20 -31
  136. package/dist/proxy/socks.js.map +1 -1
  137. package/dist/tls/constants.d.ts +74 -4
  138. package/dist/tls/constants.d.ts.map +1 -1
  139. package/dist/tls/constants.js +75 -21
  140. package/dist/tls/constants.js.map +1 -1
  141. package/dist/tls/node-engine.d.ts +17 -16
  142. package/dist/tls/node-engine.d.ts.map +1 -1
  143. package/dist/tls/node-engine.js +20 -27
  144. package/dist/tls/node-engine.js.map +1 -1
  145. package/dist/tls/stealth/client-hello.d.ts +32 -16
  146. package/dist/tls/stealth/client-hello.d.ts.map +1 -1
  147. package/dist/tls/stealth/client-hello.js +13 -37
  148. package/dist/tls/stealth/client-hello.js.map +1 -1
  149. package/dist/tls/stealth/engine.d.ts +18 -10
  150. package/dist/tls/stealth/engine.d.ts.map +1 -1
  151. package/dist/tls/stealth/engine.js +18 -24
  152. package/dist/tls/stealth/engine.js.map +1 -1
  153. package/dist/tls/stealth/handshake.d.ts +31 -17
  154. package/dist/tls/stealth/handshake.d.ts.map +1 -1
  155. package/dist/tls/stealth/handshake.js +173 -74
  156. package/dist/tls/stealth/handshake.js.map +1 -1
  157. package/dist/tls/stealth/key-schedule.d.ts +89 -32
  158. package/dist/tls/stealth/key-schedule.d.ts.map +1 -1
  159. package/dist/tls/stealth/key-schedule.js +62 -42
  160. package/dist/tls/stealth/key-schedule.js.map +1 -1
  161. package/dist/tls/stealth/record-layer.d.ts +76 -25
  162. package/dist/tls/stealth/record-layer.d.ts.map +1 -1
  163. package/dist/tls/stealth/record-layer.js +66 -36
  164. package/dist/tls/stealth/record-layer.js.map +1 -1
  165. package/dist/tls/types.d.ts +33 -25
  166. package/dist/tls/types.d.ts.map +1 -1
  167. package/dist/tls/types.js +0 -4
  168. package/dist/tls/types.js.map +1 -1
  169. package/dist/utils/buffer-reader.d.ts +99 -7
  170. package/dist/utils/buffer-reader.d.ts.map +1 -1
  171. package/dist/utils/buffer-reader.js +99 -7
  172. package/dist/utils/buffer-reader.js.map +1 -1
  173. package/dist/utils/buffer-writer.d.ts +99 -10
  174. package/dist/utils/buffer-writer.d.ts.map +1 -1
  175. package/dist/utils/buffer-writer.js +101 -12
  176. package/dist/utils/buffer-writer.js.map +1 -1
  177. package/dist/utils/encoding.d.ts +33 -8
  178. package/dist/utils/encoding.d.ts.map +1 -1
  179. package/dist/utils/encoding.js +58 -13
  180. package/dist/utils/encoding.js.map +1 -1
  181. package/dist/utils/logger.d.ts +61 -2
  182. package/dist/utils/logger.d.ts.map +1 -1
  183. package/dist/utils/logger.js +52 -4
  184. package/dist/utils/logger.js.map +1 -1
  185. package/dist/utils/url.d.ts +47 -7
  186. package/dist/utils/url.d.ts.map +1 -1
  187. package/dist/utils/url.js +47 -7
  188. package/dist/utils/url.js.map +1 -1
  189. package/dist/ws/client.d.ts +59 -15
  190. package/dist/ws/client.d.ts.map +1 -1
  191. package/dist/ws/client.js +34 -27
  192. package/dist/ws/client.js.map +1 -1
  193. package/dist/ws/frame.d.ts +43 -9
  194. package/dist/ws/frame.d.ts.map +1 -1
  195. package/dist/ws/frame.js +35 -19
  196. package/dist/ws/frame.js.map +1 -1
  197. package/package.json +2 -2
@@ -1 +1 @@
1
- {"version":3,"file":"buffer-reader.js","sourceRoot":"","sources":["../../src/utils/buffer-reader.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,MAAM,OAAO,YAAY;IACf,IAAI,CAAS;IACb,IAAI,CAAS;IAErB,YAAY,GAAW,EAAE,SAAiB,CAAC;QACzC,IAAI,CAAC,IAAI,GAAG,GAAG,CAAC;QAChB,IAAI,CAAC,IAAI,GAAG,MAAM,CAAC;IACrB,CAAC;IAED,IAAI,QAAQ;QACV,OAAO,IAAI,CAAC,IAAI,CAAC;IACnB,CAAC;IAED,IAAI,SAAS;QACX,OAAO,IAAI,CAAC,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC;IACtC,CAAC;IAED,IAAI,MAAM;QACR,OAAO,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC;IAC1B,CAAC;IAED,IAAI,MAAM;QACR,OAAO,IAAI,CAAC,IAAI,CAAC;IACnB,CAAC;IAED,IAAI,CAAC,MAAc;QACjB,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC;QAC7B,OAAO,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,GAAG,MAAM,CAAC,CAAC;IAC3D,CAAC;IAED,SAAS;QACP,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC;QACxB,MAAM,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAE,CAAC;QAChC,IAAI,CAAC,IAAI,IAAI,CAAC,CAAC;QACf,OAAO,CAAC,CAAC;IACX,CAAC;IAED,UAAU;QACR,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC;QACxB,MAAM,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC5C,IAAI,CAAC,IAAI,IAAI,CAAC,CAAC;QACf,OAAO,CAAC,CAAC;IACX,CAAC;IAED,UAAU;QACR,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC;QACxB,MAAM,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAE,CAAC;QACjC,MAAM,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,GAAG,CAAC,CAAE,CAAC;QACrC,MAAM,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,GAAG,CAAC,CAAE,CAAC;QACrC,IAAI,CAAC,IAAI,IAAI,CAAC,CAAC;QACf,OAAO,CAAC,EAAE,IAAI,EAAE,CAAC,GAAG,CAAC,EAAE,IAAI,CAAC,CAAC,GAAG,EAAE,CAAC;IACrC,CAAC;IAED,UAAU;QACR,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC;QACxB,MAAM,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC5C,IAAI,CAAC,IAAI,IAAI,CAAC,CAAC;QACf,OAAO,CAAC,CAAC;IACX,CAAC;IAED,SAAS,CAAC,MAAc;QACtB,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC;QAC7B,MAAM,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,GAAG,MAAM,CAAC,CAAC,CAAC;QAC7E,IAAI,CAAC,IAAI,IAAI,MAAM,CAAC;QACpB,OAAO,KAAK,CAAC;IACf,CAAC;IAED,8DAA8D;IAC9D,WAAW;QACT,MAAM,GAAG,GAAG,IAAI,CAAC,SAAS,EAAE,CAAC;QAC7B,OAAO,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;IAC7B,CAAC;IAED,8DAA8D;IAC9D,YAAY;QACV,MAAM,GAAG,GAAG,IAAI,CAAC,UAAU,EAAE,CAAC;QAC9B,OAAO,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;IAC7B,CAAC;IAED,8DAA8D;IAC9D,YAAY;QACV,MAAM,GAAG,GAAG,IAAI,CAAC,UAAU,EAAE,CAAC;QAC9B,OAAO,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;IAC7B,CAAC;IAED,IAAI,CAAC,MAAc;QACjB,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC;QAC7B,IAAI,CAAC,IAAI,IAAI,MAAM,CAAC;IACtB,CAAC;IAED,IAAI,CAAC,QAAgB;QACnB,IAAI,QAAQ,GAAG,CAAC,IAAI,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC;YAChD,MAAM,IAAI,UAAU,CAAC,iBAAiB,QAAQ,sBAAsB,IAAI,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC;QAC3F,CAAC;QACD,IAAI,CAAC,IAAI,GAAG,QAAQ,CAAC;IACvB,CAAC;IAED,wEAAwE;IACxE,SAAS,CAAC,MAAc;QACtB,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC;QAC7B,MAAM,GAAG,GAAG,IAAI,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,GAAG,MAAM,CAAC,CAAC,CAAC;QAChF,IAAI,CAAC,IAAI,IAAI,MAAM,CAAC;QACpB,OAAO,GAAG,CAAC;IACb,CAAC;IAEO,eAAe,CAAC,CAAS;QAC/B,IAAI,IAAI,CAAC,IAAI,GAAG,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC;YACrC,MAAM,IAAI,UAAU,CAClB,0BAA0B,CAAC,oBAAoB,IAAI,CAAC,IAAI,UAAU,IAAI,CAAC,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,IAAI,YAAY,CAC3G,CAAC;QACJ,CAAC;IACH,CAAC;CACF"}
1
+ {"version":3,"file":"buffer-reader.js","sourceRoot":"","sources":["../../src/utils/buffer-reader.ts"],"names":[],"mappings":"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"}
@@ -1,34 +1,123 @@
1
1
  /**
2
- * Binary writer for constructing TLS records, HTTP/2 frames, and other
3
- * network protocol structures. All multi-byte integers are written in
4
- * network byte order (big-endian) unless stated otherwise.
2
+ * Growable binary buffer writer that serializes typed values in big-endian byte
3
+ * order. The internal buffer doubles in capacity as needed. Call
4
+ * {@link BufferWriter.toBuffer} to obtain the written bytes as a new `Buffer`.
5
+ *
6
+ * @example
7
+ * const w = new BufferWriter();
8
+ * w.writeUInt8(0x16);
9
+ * w.writeUInt16(0x0303);
10
+ * w.writeVector16(data);
11
+ * return w.toBuffer();
5
12
  */
6
13
  export declare class BufferWriter {
7
14
  private _buf;
8
15
  private _pos;
16
+ /**
17
+ * Creates a new BufferWriter with an optional initial capacity.
18
+ *
19
+ * @param {number} [capacity=1024] - Initial internal buffer capacity in bytes.
20
+ */
9
21
  constructor(capacity?: number);
22
+ /** Current write position (equals the number of bytes written so far). */
10
23
  get position(): number;
24
+ /** Number of bytes that have been written (alias for {@link BufferWriter.position}). */
11
25
  get length(): number;
12
- /** Return a copy of the written portion. */
26
+ /**
27
+ * Returns a copy of the written bytes as a new `Buffer`. The returned buffer
28
+ * contains only the bytes that have been written, regardless of the internal
29
+ * capacity.
30
+ *
31
+ * @returns {Buffer} Copy of all written data.
32
+ */
13
33
  toBuffer(): Buffer;
34
+ /**
35
+ * Writes one unsigned byte and advances the write position by 1.
36
+ *
37
+ * @param {number} value - Byte value (only the lowest 8 bits are used).
38
+ * @returns {this} This instance for chaining.
39
+ */
14
40
  writeUInt8(value: number): this;
41
+ /**
42
+ * Writes one big-endian unsigned 16-bit integer and advances the write position by 2.
43
+ *
44
+ * @param {number} value - 16-bit value to write.
45
+ * @returns {this} This instance for chaining.
46
+ */
15
47
  writeUInt16(value: number): this;
48
+ /**
49
+ * Writes one big-endian unsigned 24-bit integer and advances the write position by 3.
50
+ *
51
+ * @param {number} value - 24-bit value to write.
52
+ * @returns {this} This instance for chaining.
53
+ */
16
54
  writeUInt24(value: number): this;
55
+ /**
56
+ * Writes one big-endian unsigned 32-bit integer and advances the write position by 4.
57
+ *
58
+ * @param {number} value - 32-bit value to write.
59
+ * @returns {this} This instance for chaining.
60
+ */
17
61
  writeUInt32(value: number): this;
62
+ /**
63
+ * Appends raw bytes from `data` and advances the write position accordingly.
64
+ *
65
+ * @param {Buffer | Uint8Array} data - Data to write.
66
+ * @returns {this} This instance for chaining.
67
+ */
18
68
  writeBytes(data: Buffer | Uint8Array): this;
19
- /** Write a length-prefixed vector with 1-byte length field. */
69
+ /**
70
+ * Writes a length-prefixed byte vector using an 8-bit length prefix.
71
+ * Equivalent to `writeUInt8(data.length)` followed by `writeBytes(data)`.
72
+ *
73
+ * @param {Buffer | Uint8Array} data - Data to write (must be ≤ 255 bytes).
74
+ * @returns {this} This instance for chaining.
75
+ * @throws {RangeError} If `data.length` exceeds 255.
76
+ */
20
77
  writeVector8(data: Buffer | Uint8Array): this;
21
- /** Write a length-prefixed vector with 2-byte length field. */
78
+ /**
79
+ * Writes a length-prefixed byte vector using a big-endian 16-bit length prefix.
80
+ * Equivalent to `writeUInt16(data.length)` followed by `writeBytes(data)`.
81
+ *
82
+ * @param {Buffer | Uint8Array} data - Data to write (must be ≤ 65 535 bytes).
83
+ * @returns {this} This instance for chaining.
84
+ * @throws {RangeError} If `data.length` exceeds 65 535.
85
+ */
22
86
  writeVector16(data: Buffer | Uint8Array): this;
23
- /** Write a length-prefixed vector with 3-byte length field. */
87
+ /**
88
+ * Writes a length-prefixed byte vector using a big-endian 24-bit length prefix.
89
+ * Equivalent to `writeUInt24(data.length)` followed by `writeBytes(data)`.
90
+ *
91
+ * @param {Buffer | Uint8Array} data - Data to write (must be ≤ 16 777 215 bytes).
92
+ * @returns {this} This instance for chaining.
93
+ * @throws {RangeError} If `data.length` exceeds 16 777 215.
94
+ */
24
95
  writeVector24(data: Buffer | Uint8Array): this;
25
96
  /**
26
- * Reserve space and return the offset. The caller must fill the
27
- * reserved bytes before calling toBuffer().
97
+ * Reserves `size` bytes at the current position without writing any data,
98
+ * advances the cursor, and returns the byte offset of the reserved region.
99
+ * Use this to write a length prefix, then later patch it with
100
+ * {@link BufferWriter.patchUInt16} or {@link BufferWriter.patchUInt24}.
101
+ *
102
+ * @param {number} size - Number of bytes to reserve.
103
+ * @returns {number} Byte offset of the start of the reserved region.
28
104
  */
29
105
  reserve(size: number): number;
30
- /** Overwrite bytes at a specific offset (for back-patching lengths). */
106
+ /**
107
+ * Overwrites a previously reserved 16-bit slot with `value` in big-endian byte order.
108
+ * Does not advance the write cursor.
109
+ *
110
+ * @param {number} offset - Byte offset returned by {@link BufferWriter.reserve}.
111
+ * @param {number} value - 16-bit value to patch in.
112
+ */
31
113
  patchUInt16(offset: number, value: number): void;
114
+ /**
115
+ * Overwrites a previously reserved 24-bit slot with `value` in big-endian byte order.
116
+ * Does not advance the write cursor.
117
+ *
118
+ * @param {number} offset - Byte offset returned by {@link BufferWriter.reserve}.
119
+ * @param {number} value - 24-bit value to patch in.
120
+ */
32
121
  patchUInt24(offset: number, value: number): void;
33
122
  private ensureCapacity;
34
123
  }
@@ -1 +1 @@
1
- {"version":3,"file":"buffer-writer.d.ts","sourceRoot":"","sources":["../../src/utils/buffer-writer.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAKH,qBAAa,YAAY;IACvB,OAAO,CAAC,IAAI,CAAS;IACrB,OAAO,CAAC,IAAI,CAAS;gBAET,QAAQ,GAAE,MAAyB;IAK/C,IAAI,QAAQ,IAAI,MAAM,CAErB;IAED,IAAI,MAAM,IAAI,MAAM,CAEnB;IAED,4CAA4C;IAC5C,QAAQ,IAAI,MAAM;IAIlB,UAAU,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IAO/B,WAAW,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IAOhC,WAAW,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IAShC,WAAW,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IAOhC,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,UAAU,GAAG,IAAI;IAW3C,+DAA+D;IAC/D,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG,UAAU,GAAG,IAAI;IAS7C,+DAA+D;IAC/D,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,UAAU,GAAG,IAAI;IAS9C,+DAA+D;IAC/D,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,UAAU,GAAG,IAAI;IAS9C;;;OAGG;IACH,OAAO,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM;IAO7B,wEAAwE;IACxE,WAAW,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI;IAIhD,WAAW,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI;IAMhD,OAAO,CAAC,cAAc;CAWvB"}
1
+ {"version":3,"file":"buffer-writer.d.ts","sourceRoot":"","sources":["../../src/utils/buffer-writer.ts"],"names":[],"mappings":"AAIA;;;;;;;;;;;GAWG;AACH,qBAAa,YAAY;IACvB,OAAO,CAAC,IAAI,CAAS;IACrB,OAAO,CAAC,IAAI,CAAS;IAErB;;;;OAIG;gBACS,QAAQ,GAAE,MAAyB;IAK/C,0EAA0E;IAC1E,IAAI,QAAQ,IAAI,MAAM,CAErB;IAED,wFAAwF;IACxF,IAAI,MAAM,IAAI,MAAM,CAEnB;IAED;;;;;;OAMG;IACH,QAAQ,IAAI,MAAM;IAIlB;;;;;OAKG;IACH,UAAU,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IAO/B;;;;;OAKG;IACH,WAAW,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IAOhC;;;;;OAKG;IACH,WAAW,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IAShC;;;;;OAKG;IACH,WAAW,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IAOhC;;;;;OAKG;IACH,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,UAAU,GAAG,IAAI;IAW3C;;;;;;;OAOG;IACH,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG,UAAU,GAAG,IAAI;IAS7C;;;;;;;OAOG;IACH,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,UAAU,GAAG,IAAI;IAS9C;;;;;;;OAOG;IACH,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,UAAU,GAAG,IAAI;IAS9C;;;;;;;;OAQG;IACH,OAAO,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM;IAO7B;;;;;;OAMG;IACH,WAAW,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI;IAIhD;;;;;;OAMG;IACH,WAAW,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI;IAMhD,OAAO,CAAC,cAAc;CAWvB"}
@@ -1,39 +1,77 @@
1
- /**
2
- * Binary writer for constructing TLS records, HTTP/2 frames, and other
3
- * network protocol structures. All multi-byte integers are written in
4
- * network byte order (big-endian) unless stated otherwise.
5
- */
6
1
  const INITIAL_CAPACITY = 1024;
7
2
  const GROWTH_FACTOR = 2;
3
+ /**
4
+ * Growable binary buffer writer that serializes typed values in big-endian byte
5
+ * order. The internal buffer doubles in capacity as needed. Call
6
+ * {@link BufferWriter.toBuffer} to obtain the written bytes as a new `Buffer`.
7
+ *
8
+ * @example
9
+ * const w = new BufferWriter();
10
+ * w.writeUInt8(0x16);
11
+ * w.writeUInt16(0x0303);
12
+ * w.writeVector16(data);
13
+ * return w.toBuffer();
14
+ */
8
15
  export class BufferWriter {
9
16
  _buf;
10
17
  _pos;
18
+ /**
19
+ * Creates a new BufferWriter with an optional initial capacity.
20
+ *
21
+ * @param {number} [capacity=1024] - Initial internal buffer capacity in bytes.
22
+ */
11
23
  constructor(capacity = INITIAL_CAPACITY) {
12
24
  this._buf = Buffer.allocUnsafe(capacity);
13
25
  this._pos = 0;
14
26
  }
27
+ /** Current write position (equals the number of bytes written so far). */
15
28
  get position() {
16
29
  return this._pos;
17
30
  }
31
+ /** Number of bytes that have been written (alias for {@link BufferWriter.position}). */
18
32
  get length() {
19
33
  return this._pos;
20
34
  }
21
- /** Return a copy of the written portion. */
35
+ /**
36
+ * Returns a copy of the written bytes as a new `Buffer`. The returned buffer
37
+ * contains only the bytes that have been written, regardless of the internal
38
+ * capacity.
39
+ *
40
+ * @returns {Buffer} Copy of all written data.
41
+ */
22
42
  toBuffer() {
23
43
  return Buffer.from(this._buf.subarray(0, this._pos));
24
44
  }
45
+ /**
46
+ * Writes one unsigned byte and advances the write position by 1.
47
+ *
48
+ * @param {number} value - Byte value (only the lowest 8 bits are used).
49
+ * @returns {this} This instance for chaining.
50
+ */
25
51
  writeUInt8(value) {
26
52
  this.ensureCapacity(1);
27
53
  this._buf[this._pos] = value & 0xff;
28
54
  this._pos += 1;
29
55
  return this;
30
56
  }
57
+ /**
58
+ * Writes one big-endian unsigned 16-bit integer and advances the write position by 2.
59
+ *
60
+ * @param {number} value - 16-bit value to write.
61
+ * @returns {this} This instance for chaining.
62
+ */
31
63
  writeUInt16(value) {
32
64
  this.ensureCapacity(2);
33
65
  this._buf.writeUInt16BE(value, this._pos);
34
66
  this._pos += 2;
35
67
  return this;
36
68
  }
69
+ /**
70
+ * Writes one big-endian unsigned 24-bit integer and advances the write position by 3.
71
+ *
72
+ * @param {number} value - 24-bit value to write.
73
+ * @returns {this} This instance for chaining.
74
+ */
37
75
  writeUInt24(value) {
38
76
  this.ensureCapacity(3);
39
77
  this._buf[this._pos] = (value >>> 16) & 0xff;
@@ -42,12 +80,24 @@ export class BufferWriter {
42
80
  this._pos += 3;
43
81
  return this;
44
82
  }
83
+ /**
84
+ * Writes one big-endian unsigned 32-bit integer and advances the write position by 4.
85
+ *
86
+ * @param {number} value - 32-bit value to write.
87
+ * @returns {this} This instance for chaining.
88
+ */
45
89
  writeUInt32(value) {
46
90
  this.ensureCapacity(4);
47
91
  this._buf.writeUInt32BE(value, this._pos);
48
92
  this._pos += 4;
49
93
  return this;
50
94
  }
95
+ /**
96
+ * Appends raw bytes from `data` and advances the write position accordingly.
97
+ *
98
+ * @param {Buffer | Uint8Array} data - Data to write.
99
+ * @returns {this} This instance for chaining.
100
+ */
51
101
  writeBytes(data) {
52
102
  this.ensureCapacity(data.length);
53
103
  if (data instanceof Buffer) {
@@ -59,7 +109,14 @@ export class BufferWriter {
59
109
  this._pos += data.length;
60
110
  return this;
61
111
  }
62
- /** Write a length-prefixed vector with 1-byte length field. */
112
+ /**
113
+ * Writes a length-prefixed byte vector using an 8-bit length prefix.
114
+ * Equivalent to `writeUInt8(data.length)` followed by `writeBytes(data)`.
115
+ *
116
+ * @param {Buffer | Uint8Array} data - Data to write (must be ≤ 255 bytes).
117
+ * @returns {this} This instance for chaining.
118
+ * @throws {RangeError} If `data.length` exceeds 255.
119
+ */
63
120
  writeVector8(data) {
64
121
  if (data.length > 0xff) {
65
122
  throw new RangeError(`Vector8 overflow: ${data.length} > 255`);
@@ -68,7 +125,14 @@ export class BufferWriter {
68
125
  this.writeBytes(data);
69
126
  return this;
70
127
  }
71
- /** Write a length-prefixed vector with 2-byte length field. */
128
+ /**
129
+ * Writes a length-prefixed byte vector using a big-endian 16-bit length prefix.
130
+ * Equivalent to `writeUInt16(data.length)` followed by `writeBytes(data)`.
131
+ *
132
+ * @param {Buffer | Uint8Array} data - Data to write (must be ≤ 65 535 bytes).
133
+ * @returns {this} This instance for chaining.
134
+ * @throws {RangeError} If `data.length` exceeds 65 535.
135
+ */
72
136
  writeVector16(data) {
73
137
  if (data.length > 0xffff) {
74
138
  throw new RangeError(`Vector16 overflow: ${data.length} > 65535`);
@@ -77,7 +141,14 @@ export class BufferWriter {
77
141
  this.writeBytes(data);
78
142
  return this;
79
143
  }
80
- /** Write a length-prefixed vector with 3-byte length field. */
144
+ /**
145
+ * Writes a length-prefixed byte vector using a big-endian 24-bit length prefix.
146
+ * Equivalent to `writeUInt24(data.length)` followed by `writeBytes(data)`.
147
+ *
148
+ * @param {Buffer | Uint8Array} data - Data to write (must be ≤ 16 777 215 bytes).
149
+ * @returns {this} This instance for chaining.
150
+ * @throws {RangeError} If `data.length` exceeds 16 777 215.
151
+ */
81
152
  writeVector24(data) {
82
153
  if (data.length > 0xffffff) {
83
154
  throw new RangeError(`Vector24 overflow: ${data.length} > 16777215`);
@@ -87,8 +158,13 @@ export class BufferWriter {
87
158
  return this;
88
159
  }
89
160
  /**
90
- * Reserve space and return the offset. The caller must fill the
91
- * reserved bytes before calling toBuffer().
161
+ * Reserves `size` bytes at the current position without writing any data,
162
+ * advances the cursor, and returns the byte offset of the reserved region.
163
+ * Use this to write a length prefix, then later patch it with
164
+ * {@link BufferWriter.patchUInt16} or {@link BufferWriter.patchUInt24}.
165
+ *
166
+ * @param {number} size - Number of bytes to reserve.
167
+ * @returns {number} Byte offset of the start of the reserved region.
92
168
  */
93
169
  reserve(size) {
94
170
  this.ensureCapacity(size);
@@ -96,10 +172,23 @@ export class BufferWriter {
96
172
  this._pos += size;
97
173
  return offset;
98
174
  }
99
- /** Overwrite bytes at a specific offset (for back-patching lengths). */
175
+ /**
176
+ * Overwrites a previously reserved 16-bit slot with `value` in big-endian byte order.
177
+ * Does not advance the write cursor.
178
+ *
179
+ * @param {number} offset - Byte offset returned by {@link BufferWriter.reserve}.
180
+ * @param {number} value - 16-bit value to patch in.
181
+ */
100
182
  patchUInt16(offset, value) {
101
183
  this._buf.writeUInt16BE(value, offset);
102
184
  }
185
+ /**
186
+ * Overwrites a previously reserved 24-bit slot with `value` in big-endian byte order.
187
+ * Does not advance the write cursor.
188
+ *
189
+ * @param {number} offset - Byte offset returned by {@link BufferWriter.reserve}.
190
+ * @param {number} value - 24-bit value to patch in.
191
+ */
103
192
  patchUInt24(offset, value) {
104
193
  this._buf[offset] = (value >>> 16) & 0xff;
105
194
  this._buf[offset + 1] = (value >>> 8) & 0xff;
@@ -1 +1 @@
1
- {"version":3,"file":"buffer-writer.js","sourceRoot":"","sources":["../../src/utils/buffer-writer.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"buffer-writer.js","sourceRoot":"","sources":["../../src/utils/buffer-writer.ts"],"names":[],"mappings":"AACA,MAAM,gBAAgB,GAAG,IAAI,CAAC;AAC9B,MAAM,aAAa,GAAG,CAAC,CAAC;AAExB;;;;;;;;;;;GAWG;AACH,MAAM,OAAO,YAAY;IACf,IAAI,CAAS;IACb,IAAI,CAAS;IAErB;;;;OAIG;IACH,YAAY,WAAmB,gBAAgB;QAC7C,IAAI,CAAC,IAAI,GAAG,MAAM,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;QACzC,IAAI,CAAC,IAAI,GAAG,CAAC,CAAC;IAChB,CAAC;IAED,0EAA0E;IAC1E,IAAI,QAAQ;QACV,OAAO,IAAI,CAAC,IAAI,CAAC;IACnB,CAAC;IAED,wFAAwF;IACxF,IAAI,MAAM;QACR,OAAO,IAAI,CAAC,IAAI,CAAC;IACnB,CAAC;IAED;;;;;;OAMG;IACH,QAAQ;QACN,OAAO,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;IACvD,CAAC;IAED;;;;;OAKG;IACH,UAAU,CAAC,KAAa;QACtB,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC;QACvB,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,KAAK,GAAG,IAAI,CAAC;QACpC,IAAI,CAAC,IAAI,IAAI,CAAC,CAAC;QACf,OAAO,IAAI,CAAC;IACd,CAAC;IAED;;;;;OAKG;IACH,WAAW,CAAC,KAAa;QACvB,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC;QACvB,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,KAAK,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;QAC1C,IAAI,CAAC,IAAI,IAAI,CAAC,CAAC;QACf,OAAO,IAAI,CAAC;IACd,CAAC;IAED;;;;;OAKG;IACH,WAAW,CAAC,KAAa;QACvB,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC;QACvB,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,KAAK,EAAE,CAAC,GAAG,IAAI,CAAC;QAC7C,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,GAAG,CAAC,CAAC,GAAG,CAAC,KAAK,KAAK,CAAC,CAAC,GAAG,IAAI,CAAC;QAChD,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,GAAG,CAAC,CAAC,GAAG,KAAK,GAAG,IAAI,CAAC;QACxC,IAAI,CAAC,IAAI,IAAI,CAAC,CAAC;QACf,OAAO,IAAI,CAAC;IACd,CAAC;IAED;;;;;OAKG;IACH,WAAW,CAAC,KAAa;QACvB,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC;QACvB,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,KAAK,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;QAC1C,IAAI,CAAC,IAAI,IAAI,CAAC,CAAC;QACf,OAAO,IAAI,CAAC;IACd,CAAC;IAED;;;;;OAKG;IACH,UAAU,CAAC,IAAyB;QAClC,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QACjC,IAAI,IAAI,YAAY,MAAM,EAAE,CAAC;YAC3B,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;QAClC,CAAC;aAAM,CAAC;YACN,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;QACjC,CAAC;QACD,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,MAAM,CAAC;QACzB,OAAO,IAAI,CAAC;IACd,CAAC;IAED;;;;;;;OAOG;IACH,YAAY,CAAC,IAAyB;QACpC,IAAI,IAAI,CAAC,MAAM,GAAG,IAAI,EAAE,CAAC;YACvB,MAAM,IAAI,UAAU,CAAC,qBAAqB,IAAI,CAAC,MAAM,QAAQ,CAAC,CAAC;QACjE,CAAC;QACD,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QAC7B,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;QACtB,OAAO,IAAI,CAAC;IACd,CAAC;IAED;;;;;;;OAOG;IACH,aAAa,CAAC,IAAyB;QACrC,IAAI,IAAI,CAAC,MAAM,GAAG,MAAM,EAAE,CAAC;YACzB,MAAM,IAAI,UAAU,CAAC,sBAAsB,IAAI,CAAC,MAAM,UAAU,CAAC,CAAC;QACpE,CAAC;QACD,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QAC9B,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;QACtB,OAAO,IAAI,CAAC;IACd,CAAC;IAED;;;;;;;OAOG;IACH,aAAa,CAAC,IAAyB;QACrC,IAAI,IAAI,CAAC,MAAM,GAAG,QAAQ,EAAE,CAAC;YAC3B,MAAM,IAAI,UAAU,CAAC,sBAAsB,IAAI,CAAC,MAAM,aAAa,CAAC,CAAC;QACvE,CAAC;QACD,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QAC9B,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;QACtB,OAAO,IAAI,CAAC;IACd,CAAC;IAED;;;;;;;;OAQG;IACH,OAAO,CAAC,IAAY;QAClB,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC;QAC1B,MAAM,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC;QACzB,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC;QAClB,OAAO,MAAM,CAAC;IAChB,CAAC;IAED;;;;;;OAMG;IACH,WAAW,CAAC,MAAc,EAAE,KAAa;QACvC,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;IACzC,CAAC;IAED;;;;;;OAMG;IACH,WAAW,CAAC,MAAc,EAAE,KAAa;QACvC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,KAAK,EAAE,CAAC,GAAG,IAAI,CAAC;QAC1C,IAAI,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,GAAG,CAAC,KAAK,KAAK,CAAC,CAAC,GAAG,IAAI,CAAC;QAC7C,IAAI,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,GAAG,KAAK,GAAG,IAAI,CAAC;IACvC,CAAC;IAEO,cAAc,CAAC,MAAc;QACnC,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,GAAG,MAAM,CAAC;QACpC,IAAI,QAAQ,IAAI,IAAI,CAAC,IAAI,CAAC,MAAM;YAAE,OAAO;QACzC,IAAI,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC;QAC9B,OAAO,MAAM,GAAG,QAAQ,EAAE,CAAC;YACzB,MAAM,IAAI,aAAa,CAAC;QAC1B,CAAC;QACD,MAAM,MAAM,GAAG,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;QAC1C,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;QACxC,IAAI,CAAC,IAAI,GAAG,MAAM,CAAC;IACrB,CAAC;CACF"}
@@ -1,19 +1,44 @@
1
+ import { Transform } from 'node:stream';
1
2
  /**
2
- * Content-Encoding decompression using only node:zlib.
3
- * Supports gzip, deflate, brotli, and zstd (Node 22+).
3
+ * `true` when the current Node.js runtime provides native Zstandard
4
+ * decompression support (`zlib.zstdDecompress`). `false` on older Node.js
5
+ * versions that lack the API.
4
6
  */
5
- /** Whether this Node.js runtime can decompress zstd content. */
6
7
  export declare const supportsZstd: boolean;
7
8
  /**
8
- * Decompress a response body according to the Content-Encoding header.
9
- * Returns the original buffer if the encoding is not recognised or empty.
9
+ * Decompresses a response body buffer using the algorithm indicated by
10
+ * `contentEncoding`. Supports `gzip`, `x-gzip`, `deflate`, `br` (Brotli),
11
+ * `zstd` (when available), and `identity`. Unrecognized encodings are
12
+ * returned as-is.
13
+ *
14
+ * @param {Buffer} body - Raw compressed body bytes.
15
+ * @param {string | undefined} contentEncoding - Value of the `Content-Encoding` header.
16
+ * @returns {Promise<Buffer>} Decompressed body bytes.
10
17
  */
11
18
  export declare function decompressBody(body: Buffer, contentEncoding: string | undefined): Promise<Buffer>;
12
- /** Return the canonical Accept-Encoding value for browser impersonation. */
19
+ /**
20
+ * Creates a Node.js `Transform` stream that decompresses data on-the-fly
21
+ * using the algorithm indicated by `contentEncoding`. Returns `null` when
22
+ * no transform is needed (unknown or `identity` encoding).
23
+ *
24
+ * @param {string | undefined} contentEncoding - Value of the `Content-Encoding` header.
25
+ * @returns {Transform | null} Decompressor stream, or `null` if no decompression is required.
26
+ */
27
+ export declare function createDecompressStream(contentEncoding: string | undefined): Transform | null;
28
+ /**
29
+ * Returns the default `Accept-Encoding` header value supported by this
30
+ * Node.js runtime. Includes `zstd` when Zstandard is available.
31
+ *
32
+ * @returns {string} E.g. `"gzip, deflate, br, zstd"` or `"gzip, deflate, br"`.
33
+ */
13
34
  export declare function defaultAcceptEncoding(): string;
14
35
  /**
15
- * Strip unsupported encodings (e.g. zstd on Node < 22) from an
16
- * accept-encoding header value so servers never send what we can't decode.
36
+ * Filters `zstd` from a caller-supplied `Accept-Encoding` value when the
37
+ * current runtime does not support Zstandard decompression. Otherwise returns
38
+ * the value unchanged.
39
+ *
40
+ * @param {string} value - Caller-supplied `Accept-Encoding` header value.
41
+ * @returns {string} Sanitized encoding list compatible with the runtime.
17
42
  */
18
43
  export declare function sanitizeAcceptEncoding(value: string): string;
19
44
  //# sourceMappingURL=encoding.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"encoding.d.ts","sourceRoot":"","sources":["../../src/utils/encoding.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAgBH,gEAAgE;AAChE,eAAO,MAAM,YAAY,EAAE,OAAsC,CAAC;AAElE;;;GAGG;AACH,wBAAsB,cAAc,CAClC,IAAI,EAAE,MAAM,EACZ,eAAe,EAAE,MAAM,GAAG,SAAS,GAClC,OAAO,CAAC,MAAM,CAAC,CA8BjB;AAED,4EAA4E;AAC5E,wBAAgB,qBAAqB,IAAI,MAAM,CAE9C;AAED;;;GAGG;AACH,wBAAgB,sBAAsB,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAO5D"}
1
+ {"version":3,"file":"encoding.d.ts","sourceRoot":"","sources":["../../src/utils/encoding.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,SAAS,EAAiB,MAAM,aAAa,CAAC;AAYvD;;;;GAIG;AACH,eAAO,MAAM,YAAY,EAAE,OAAsC,CAAC;AAElE;;;;;;;;;GASG;AACH,wBAAsB,cAAc,CAClC,IAAI,EAAE,MAAM,EACZ,eAAe,EAAE,MAAM,GAAG,SAAS,GAClC,OAAO,CAAC,MAAM,CAAC,CA4BjB;AAED;;;;;;;GAOG;AACH,wBAAgB,sBAAsB,CACpC,eAAe,EAAE,MAAM,GAAG,SAAS,GAClC,SAAS,GAAG,IAAI,CA8BlB;AAED;;;;;GAKG;AACH,wBAAgB,qBAAqB,IAAI,MAAM,CAE9C;AAED;;;;;;;GAOG;AACH,wBAAgB,sBAAsB,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAO5D"}
@@ -1,22 +1,27 @@
1
- /**
2
- * Content-Encoding decompression using only node:zlib.
3
- * Supports gzip, deflate, brotli, and zstd (Node 22+).
4
- */
5
1
  import * as zlib from 'node:zlib';
6
2
  import { promisify } from 'node:util';
7
3
  const gunzipAsync = promisify(zlib.gunzip);
8
4
  const inflateAsync = promisify(zlib.inflate);
9
5
  const brotliDecompressAsync = promisify(zlib.brotliDecompress);
10
- // zstd is natively supported in Node 22+ via node:zlib
11
6
  const _zstdFn = zlib['zstdDecompress'];
12
7
  const zstdDecompressAsync = typeof _zstdFn === 'function'
13
8
  ? promisify(_zstdFn)
14
9
  : null;
15
- /** Whether this Node.js runtime can decompress zstd content. */
10
+ /**
11
+ * `true` when the current Node.js runtime provides native Zstandard
12
+ * decompression support (`zlib.zstdDecompress`). `false` on older Node.js
13
+ * versions that lack the API.
14
+ */
16
15
  export const supportsZstd = zstdDecompressAsync !== null;
17
16
  /**
18
- * Decompress a response body according to the Content-Encoding header.
19
- * Returns the original buffer if the encoding is not recognised or empty.
17
+ * Decompresses a response body buffer using the algorithm indicated by
18
+ * `contentEncoding`. Supports `gzip`, `x-gzip`, `deflate`, `br` (Brotli),
19
+ * `zstd` (when available), and `identity`. Unrecognized encodings are
20
+ * returned as-is.
21
+ *
22
+ * @param {Buffer} body - Raw compressed body bytes.
23
+ * @param {string | undefined} contentEncoding - Value of the `Content-Encoding` header.
24
+ * @returns {Promise<Buffer>} Decompressed body bytes.
20
25
  */
21
26
  export async function decompressBody(body, contentEncoding) {
22
27
  if (!contentEncoding || body.length === 0)
@@ -34,22 +39,62 @@ export async function decompressBody(body, contentEncoding) {
34
39
  if (zstdDecompressAsync) {
35
40
  return zstdDecompressAsync(body);
36
41
  }
37
- // Node < 22: zstd not available natively, return raw bytes.
38
42
  return body;
39
43
  case 'identity':
40
44
  return body;
41
45
  default:
42
- // Unknown encoding -- return as-is rather than throwing.
43
46
  return body;
44
47
  }
45
48
  }
46
- /** Return the canonical Accept-Encoding value for browser impersonation. */
49
+ /**
50
+ * Creates a Node.js `Transform` stream that decompresses data on-the-fly
51
+ * using the algorithm indicated by `contentEncoding`. Returns `null` when
52
+ * no transform is needed (unknown or `identity` encoding).
53
+ *
54
+ * @param {string | undefined} contentEncoding - Value of the `Content-Encoding` header.
55
+ * @returns {Transform | null} Decompressor stream, or `null` if no decompression is required.
56
+ */
57
+ export function createDecompressStream(contentEncoding) {
58
+ if (!contentEncoding)
59
+ return null;
60
+ const encoding = contentEncoding.trim().toLowerCase();
61
+ switch (encoding) {
62
+ case 'gzip':
63
+ case 'x-gzip':
64
+ return zlib.createGunzip();
65
+ case 'deflate':
66
+ return zlib.createInflate();
67
+ case 'br':
68
+ return zlib.createBrotliDecompress();
69
+ case 'zstd': {
70
+ const factory = zlib['createZstdDecompress'];
71
+ if (typeof factory === 'function') {
72
+ return factory();
73
+ }
74
+ return null;
75
+ }
76
+ case 'identity':
77
+ return null;
78
+ default:
79
+ return null;
80
+ }
81
+ }
82
+ /**
83
+ * Returns the default `Accept-Encoding` header value supported by this
84
+ * Node.js runtime. Includes `zstd` when Zstandard is available.
85
+ *
86
+ * @returns {string} E.g. `"gzip, deflate, br, zstd"` or `"gzip, deflate, br"`.
87
+ */
47
88
  export function defaultAcceptEncoding() {
48
89
  return supportsZstd ? 'gzip, deflate, br, zstd' : 'gzip, deflate, br';
49
90
  }
50
91
  /**
51
- * Strip unsupported encodings (e.g. zstd on Node < 22) from an
52
- * accept-encoding header value so servers never send what we can't decode.
92
+ * Filters `zstd` from a caller-supplied `Accept-Encoding` value when the
93
+ * current runtime does not support Zstandard decompression. Otherwise returns
94
+ * the value unchanged.
95
+ *
96
+ * @param {string} value - Caller-supplied `Accept-Encoding` header value.
97
+ * @returns {string} Sanitized encoding list compatible with the runtime.
53
98
  */
54
99
  export function sanitizeAcceptEncoding(value) {
55
100
  if (supportsZstd)
@@ -1 +1 @@
1
- {"version":3,"file":"encoding.js","sourceRoot":"","sources":["../../src/utils/encoding.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,IAAI,MAAM,WAAW,CAAC;AAClC,OAAO,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AAEtC,MAAM,WAAW,GAAG,SAAS,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;AAC3C,MAAM,YAAY,GAAG,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;AAC7C,MAAM,qBAAqB,GAAG,SAAS,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;AAE/D,uDAAuD;AACvD,MAAM,OAAO,GAAI,IAAgC,CAAC,gBAAgB,CAAC,CAAC;AACpE,MAAM,mBAAmB,GACvB,OAAO,OAAO,KAAK,UAAU;IAC3B,CAAC,CAAE,SAAS,CAAC,OAA0C,CAAiD;IACxG,CAAC,CAAC,IAAI,CAAC;AAEX,gEAAgE;AAChE,MAAM,CAAC,MAAM,YAAY,GAAY,mBAAmB,KAAK,IAAI,CAAC;AAElE;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,cAAc,CAClC,IAAY,EACZ,eAAmC;IAEnC,IAAI,CAAC,eAAe,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,IAAI,CAAC;IAEvD,MAAM,QAAQ,GAAG,eAAe,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;IAEtD,QAAQ,QAAQ,EAAE,CAAC;QACjB,KAAK,MAAM,CAAC;QACZ,KAAK,QAAQ;YACX,OAAO,WAAW,CAAC,IAAI,CAAoB,CAAC;QAE9C,KAAK,SAAS;YACZ,OAAO,YAAY,CAAC,IAAI,CAAoB,CAAC;QAE/C,KAAK,IAAI;YACP,OAAO,qBAAqB,CAAC,IAAI,CAAoB,CAAC;QAExD,KAAK,MAAM;YACT,IAAI,mBAAmB,EAAE,CAAC;gBACxB,OAAO,mBAAmB,CAAC,IAAI,CAAC,CAAC;YACnC,CAAC;YACD,4DAA4D;YAC5D,OAAO,IAAI,CAAC;QAEd,KAAK,UAAU;YACb,OAAO,IAAI,CAAC;QAEd;YACE,yDAAyD;YACzD,OAAO,IAAI,CAAC;IAChB,CAAC;AACH,CAAC;AAED,4EAA4E;AAC5E,MAAM,UAAU,qBAAqB;IACnC,OAAO,YAAY,CAAC,CAAC,CAAC,yBAAyB,CAAC,CAAC,CAAC,mBAAmB,CAAC;AACxE,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,sBAAsB,CAAC,KAAa;IAClD,IAAI,YAAY;QAAE,OAAO,KAAK,CAAC;IAC/B,OAAO,KAAK;SACT,KAAK,CAAC,GAAG,CAAC;SACV,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;SAClB,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;SAClC,IAAI,CAAC,IAAI,CAAC,CAAC;AAChB,CAAC"}
1
+ {"version":3,"file":"encoding.js","sourceRoot":"","sources":["../../src/utils/encoding.ts"],"names":[],"mappings":"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"}
@@ -1,24 +1,83 @@
1
1
  /**
2
- * Structured logger with configurable verbosity.
2
+ * Minimum severity level for log emission. Messages below this level are
3
+ * suppressed. `'silent'` disables all output.
4
+ *
5
+ * @typedef {'debug' | 'info' | 'warn' | 'error' | 'silent'} LogLevel
3
6
  */
4
7
  export type LogLevel = 'debug' | 'info' | 'warn' | 'error' | 'silent';
8
+ /**
9
+ * Minimal logger interface consumed throughout the library. Implementations
10
+ * must provide four severity methods; all parameters follow `console.log`
11
+ * semantics (a primary message string followed by optional extra values).
12
+ */
5
13
  export interface Logger {
6
14
  debug(message: string, ...args: unknown[]): void;
7
15
  info(message: string, ...args: unknown[]): void;
8
16
  warn(message: string, ...args: unknown[]): void;
9
17
  error(message: string, ...args: unknown[]): void;
10
18
  }
19
+ /**
20
+ * Default {@link Logger} implementation that writes to `process.stderr`.
21
+ * Messages are prefixed with `[nlcurl:<level>]` and only emitted when the
22
+ * message severity meets or exceeds the configured `level`.
23
+ */
11
24
  export declare class ConsoleLogger implements Logger {
12
25
  private level;
26
+ /**
27
+ * Creates a new ConsoleLogger.
28
+ *
29
+ * @param {LogLevel} [level='warn'] - Minimum severity level to emit.
30
+ */
13
31
  constructor(level?: LogLevel);
32
+ /**
33
+ * Emits a debug-level message to `stderr` — only written when the
34
+ * configured minimum level is `'debug'`.
35
+ *
36
+ * @param {string} message - Primary log message.
37
+ * @param {...unknown} args - Additional values appended after the message.
38
+ */
14
39
  debug(message: string, ...args: unknown[]): void;
40
+ /**
41
+ * Emits an info-level message to `stderr` — only written when the
42
+ * configured minimum level is `'debug'` or `'info'`.
43
+ *
44
+ * @param {string} message - Primary log message.
45
+ * @param {...unknown} args - Additional values appended after the message.
46
+ */
15
47
  info(message: string, ...args: unknown[]): void;
48
+ /**
49
+ * Emits a warn-level message to `stderr` — only written when the
50
+ * configured minimum level is `'debug'`, `'info'`, or `'warn'`.
51
+ *
52
+ * @param {string} message - Primary log message.
53
+ * @param {...unknown} args - Additional values appended after the message.
54
+ */
16
55
  warn(message: string, ...args: unknown[]): void;
56
+ /**
57
+ * Emits an error-level message to `stderr` — only written when the
58
+ * configured minimum level is not `'silent'`.
59
+ *
60
+ * @param {string} message - Primary log message.
61
+ * @param {...unknown} args - Additional values appended after the message.
62
+ */
17
63
  error(message: string, ...args: unknown[]): void;
18
64
  private formatArgs;
19
65
  }
20
- /** Silent logger that discards all output. */
66
+ /**
67
+ * A no-op {@link Logger} that discards all messages. Assign this via
68
+ * {@link setDefaultLogger} to silence the library entirely.
69
+ */
21
70
  export declare const SILENT_LOGGER: Logger;
71
+ /**
72
+ * Replaces the process-wide default logger used by all NLcURL internals.
73
+ *
74
+ * @param {Logger} logger - New logger instance to install.
75
+ */
22
76
  export declare function setDefaultLogger(logger: Logger): void;
77
+ /**
78
+ * Returns the currently active process-wide logger.
79
+ *
80
+ * @returns {Logger} The active logger instance.
81
+ */
23
82
  export declare function getDefaultLogger(): Logger;
24
83
  //# sourceMappingURL=logger.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"logger.d.ts","sourceRoot":"","sources":["../../src/utils/logger.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,MAAM,MAAM,QAAQ,GAAG,OAAO,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,QAAQ,CAAC;AAUtE,MAAM,WAAW,MAAM;IACrB,KAAK,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,IAAI,EAAE,OAAO,EAAE,GAAG,IAAI,CAAC;IACjD,IAAI,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,IAAI,EAAE,OAAO,EAAE,GAAG,IAAI,CAAC;IAChD,IAAI,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,IAAI,EAAE,OAAO,EAAE,GAAG,IAAI,CAAC;IAChD,KAAK,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,IAAI,EAAE,OAAO,EAAE,GAAG,IAAI,CAAC;CAClD;AAED,qBAAa,aAAc,YAAW,MAAM;IAC1C,OAAO,CAAC,KAAK,CAAS;gBAEV,KAAK,GAAE,QAAiB;IAIpC,KAAK,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,IAAI,EAAE,OAAO,EAAE,GAAG,IAAI;IAMhD,IAAI,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,IAAI,EAAE,OAAO,EAAE,GAAG,IAAI;IAM/C,IAAI,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,IAAI,EAAE,OAAO,EAAE,GAAG,IAAI;IAM/C,KAAK,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,IAAI,EAAE,OAAO,EAAE,GAAG,IAAI;IAMhD,OAAO,CAAC,UAAU;CAInB;AAED,8CAA8C;AAC9C,eAAO,MAAM,aAAa,EAAE,MAK3B,CAAC;AAIF,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAErD;AAED,wBAAgB,gBAAgB,IAAI,MAAM,CAEzC"}
1
+ {"version":3,"file":"logger.d.ts","sourceRoot":"","sources":["../../src/utils/logger.ts"],"names":[],"mappings":"AACA;;;;;GAKG;AACH,MAAM,MAAM,QAAQ,GAAG,OAAO,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,QAAQ,CAAC;AAUtE;;;;GAIG;AACH,MAAM,WAAW,MAAM;IACrB,KAAK,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,IAAI,EAAE,OAAO,EAAE,GAAG,IAAI,CAAC;IACjD,IAAI,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,IAAI,EAAE,OAAO,EAAE,GAAG,IAAI,CAAC;IAChD,IAAI,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,IAAI,EAAE,OAAO,EAAE,GAAG,IAAI,CAAC;IAChD,KAAK,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,IAAI,EAAE,OAAO,EAAE,GAAG,IAAI,CAAC;CAClD;AAED;;;;GAIG;AACH,qBAAa,aAAc,YAAW,MAAM;IAC1C,OAAO,CAAC,KAAK,CAAS;IAEtB;;;;OAIG;gBACS,KAAK,GAAE,QAAiB;IAIpC;;;;;;OAMG;IACH,KAAK,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,IAAI,EAAE,OAAO,EAAE,GAAG,IAAI;IAMhD;;;;;;OAMG;IACH,IAAI,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,IAAI,EAAE,OAAO,EAAE,GAAG,IAAI;IAM/C;;;;;;OAMG;IACH,IAAI,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,IAAI,EAAE,OAAO,EAAE,GAAG,IAAI;IAM/C;;;;;;OAMG;IACH,KAAK,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,IAAI,EAAE,OAAO,EAAE,GAAG,IAAI;IAMhD,OAAO,CAAC,UAAU;CAInB;AAED;;;GAGG;AACH,eAAO,MAAM,aAAa,EAAE,MAK3B,CAAC;AAIF;;;;GAIG;AACH,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAErD;AAED;;;;GAIG;AACH,wBAAgB,gBAAgB,IAAI,MAAM,CAEzC"}