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,122 +1,67 @@
1
- /**
2
- * Stateful cursor for reading typed values from a `Buffer` in big-endian byte
3
- * order. Advances an internal position pointer after every read so callers
4
- * don't need to track offsets manually.
5
- *
6
- * @example
7
- * const r = new BufferReader(buf);
8
- * const version = r.readUInt8();
9
- * const length = r.readUInt16();
10
- * const payload = r.readBytes(length);
11
- */
1
+ /** Sequential big-endian reader over a fixed-size buffer. */
12
2
  export declare class BufferReader {
13
3
  private _buf;
14
4
  private _pos;
15
5
  /**
16
- * Creates a new BufferReader.
6
+ * Create a reader over the given buffer.
17
7
  *
18
- * @param {Buffer} buf - Buffer to read from.
19
- * @param {number} [offset=0] - Initial cursor position.
8
+ * @param {Buffer} buf - Source buffer.
9
+ * @param {number} offset - Initial read position.
20
10
  */
21
11
  constructor(buf: Buffer, offset?: number);
22
- /** Current byte offset of the read cursor. */
12
+ /** Current read position within the buffer. */
23
13
  get position(): number;
24
- /** Number of bytes remaining after the current cursor position. */
14
+ /** Number of bytes remaining after the current position. */
25
15
  get remaining(): number;
26
- /** Total length of the underlying buffer. */
16
+ /** Total buffer length. */
27
17
  get length(): number;
28
- /** The underlying `Buffer` instance. */
18
+ /** Return the underlying buffer. */
29
19
  get buffer(): Buffer;
30
20
  /**
31
- * Returns the next `length` bytes without advancing the cursor.
21
+ * Preview bytes at the current position without advancing.
32
22
  *
33
- * @param {number} length - Number of bytes to peek at.
34
- * @returns {Buffer} A view into the underlying buffer (not a copy).
35
- * @throws {RangeError} If `length` bytes are not available.
23
+ * @param {number} length - Number of bytes to peek.
24
+ * @returns {Buffer} Buffer slice.
36
25
  */
37
26
  peek(length: number): Buffer;
38
- /**
39
- * Reads one unsigned 8-bit integer and advances the cursor by 1.
40
- *
41
- * @returns {number} Unsigned byte value (0–255).
42
- * @throws {RangeError} If fewer than 1 byte remains.
43
- */
27
+ /** Read a single unsigned 8-bit integer. */
44
28
  readUInt8(): number;
45
- /**
46
- * Reads one big-endian unsigned 16-bit integer and advances the cursor by 2.
47
- *
48
- * @returns {number} Unsigned 16-bit value (0–65 535).
49
- * @throws {RangeError} If fewer than 2 bytes remain.
50
- */
29
+ /** Read an unsigned 16-bit big-endian integer. */
51
30
  readUInt16(): number;
52
- /**
53
- * Reads one big-endian unsigned 24-bit integer and advances the cursor by 3.
54
- *
55
- * @returns {number} Unsigned 24-bit value (0–16 777 215).
56
- * @throws {RangeError} If fewer than 3 bytes remain.
57
- */
31
+ /** Read an unsigned 24-bit big-endian integer. */
58
32
  readUInt24(): number;
59
- /**
60
- * Reads one big-endian unsigned 32-bit integer and advances the cursor by 4.
61
- *
62
- * @returns {number} Unsigned 32-bit value (0–4 294 967 295).
63
- * @throws {RangeError} If fewer than 4 bytes remain.
64
- */
33
+ /** Read an unsigned 32-bit big-endian integer. */
65
34
  readUInt32(): number;
66
35
  /**
67
- * Reads `length` bytes into a new `Buffer` and advances the cursor.
36
+ * Read a fixed number of bytes and advance the position.
68
37
  *
69
38
  * @param {number} length - Number of bytes to read.
70
- * @returns {Buffer} Copy of the requested bytes.
71
- * @throws {RangeError} If `length` bytes are not available.
39
+ * @returns {Buffer} Copied buffer slice.
72
40
  */
73
41
  readBytes(length: number): Buffer;
74
- /**
75
- * Reads a length-prefixed byte vector where the length is encoded as a
76
- * one-byte (8-bit) unsigned integer immediately preceding the data.
77
- *
78
- * @returns {Buffer} The vector payload bytes.
79
- * @throws {RangeError} If insufficient bytes remain.
80
- */
42
+ /** Read a length-prefixed vector with a 1-byte length prefix. */
81
43
  readVector8(): Buffer;
82
- /**
83
- * Reads a length-prefixed byte vector where the length is encoded as a
84
- * big-endian two-byte (16-bit) unsigned integer immediately preceding the data.
85
- *
86
- * @returns {Buffer} The vector payload bytes.
87
- * @throws {RangeError} If insufficient bytes remain.
88
- */
44
+ /** Read a length-prefixed vector with a 2-byte big-endian length prefix. */
89
45
  readVector16(): Buffer;
90
- /**
91
- * Reads a length-prefixed byte vector where the length is encoded as a
92
- * big-endian three-byte (24-bit) unsigned integer immediately preceding the data.
93
- *
94
- * @returns {Buffer} The vector payload bytes.
95
- * @throws {RangeError} If insufficient bytes remain.
96
- */
46
+ /** Read a length-prefixed vector with a 3-byte big-endian length prefix. */
97
47
  readVector24(): Buffer;
98
48
  /**
99
- * Advances the cursor by `length` bytes without returning the data.
49
+ * Advance the read position without returning data.
100
50
  *
101
51
  * @param {number} length - Number of bytes to skip.
102
- * @throws {RangeError} If `length` bytes are not available.
103
52
  */
104
53
  skip(length: number): void;
105
54
  /**
106
- * Moves the cursor to an absolute byte position within the buffer.
55
+ * Set the read position to an absolute offset.
107
56
  *
108
- * @param {number} position - Target byte offset (0 to `length` inclusive).
109
- * @throws {RangeError} If `position` is negative or beyond the buffer length.
57
+ * @param {number} position - Target position.
110
58
  */
111
59
  seek(position: number): void;
112
60
  /**
113
- * Reads `length` bytes from the current position and returns a new
114
- * `BufferReader` positioned at offset 0 within that sub-slice. The parent
115
- * cursor advances by `length` bytes.
61
+ * Create a sub-reader covering the next `length` bytes and advance.
116
62
  *
117
- * @param {number} length - Byte count to slice into the sub-reader.
118
- * @returns {BufferReader} Reader over the requested sub-slice.
119
- * @throws {RangeError} If `length` bytes are not available.
63
+ * @param {number} length - Number of bytes for the sub-reader.
64
+ * @returns {BufferReader} New `BufferReader` over the sub-range.
120
65
  */
121
66
  subReader(length: number): BufferReader;
122
67
  private assertAvailable;
@@ -1 +1 @@
1
- {"version":3,"file":"buffer-reader.d.ts","sourceRoot":"","sources":["../../src/utils/buffer-reader.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AACH,qBAAa,YAAY;IACvB,OAAO,CAAC,IAAI,CAAS;IACrB,OAAO,CAAC,IAAI,CAAS;IAErB;;;;;OAKG;gBACS,GAAG,EAAE,MAAM,EAAE,MAAM,GAAE,MAAU;IAK3C,8CAA8C;IAC9C,IAAI,QAAQ,IAAI,MAAM,CAErB;IAED,mEAAmE;IACnE,IAAI,SAAS,IAAI,MAAM,CAEtB;IAED,6CAA6C;IAC7C,IAAI,MAAM,IAAI,MAAM,CAEnB;IAED,wCAAwC;IACxC,IAAI,MAAM,IAAI,MAAM,CAEnB;IAED;;;;;;OAMG;IACH,IAAI,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM;IAK5B;;;;;OAKG;IACH,SAAS,IAAI,MAAM;IAOnB;;;;;OAKG;IACH,UAAU,IAAI,MAAM;IAOpB;;;;;OAKG;IACH,UAAU,IAAI,MAAM;IASpB;;;;;OAKG;IACH,UAAU,IAAI,MAAM;IAOpB;;;;;;OAMG;IACH,SAAS,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM;IAOjC;;;;;;OAMG;IACH,WAAW,IAAI,MAAM;IAKrB;;;;;;OAMG;IACH,YAAY,IAAI,MAAM;IAKtB;;;;;;OAMG;IACH,YAAY,IAAI,MAAM;IAKtB;;;;;OAKG;IACH,IAAI,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI;IAK1B;;;;;OAKG;IACH,IAAI,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI;IAO5B;;;;;;;;OAQG;IACH,SAAS,CAAC,MAAM,EAAE,MAAM,GAAG,YAAY;IAOvC,OAAO,CAAC,eAAe;CAKxB"}
1
+ {"version":3,"file":"buffer-reader.d.ts","sourceRoot":"","sources":["../../src/utils/buffer-reader.ts"],"names":[],"mappings":"AAAA,6DAA6D;AAC7D,qBAAa,YAAY;IACvB,OAAO,CAAC,IAAI,CAAS;IACrB,OAAO,CAAC,IAAI,CAAS;IAErB;;;;;OAKG;gBACS,GAAG,EAAE,MAAM,EAAE,MAAM,GAAE,MAAU;IAK3C,+CAA+C;IAC/C,IAAI,QAAQ,IAAI,MAAM,CAErB;IAED,4DAA4D;IAC5D,IAAI,SAAS,IAAI,MAAM,CAEtB;IAED,2BAA2B;IAC3B,IAAI,MAAM,IAAI,MAAM,CAEnB;IAED,oCAAoC;IACpC,IAAI,MAAM,IAAI,MAAM,CAEnB;IAED;;;;;OAKG;IACH,IAAI,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM;IAK5B,4CAA4C;IAC5C,SAAS,IAAI,MAAM;IAOnB,kDAAkD;IAClD,UAAU,IAAI,MAAM;IAOpB,kDAAkD;IAClD,UAAU,IAAI,MAAM;IASpB,kDAAkD;IAClD,UAAU,IAAI,MAAM;IAOpB;;;;;OAKG;IACH,SAAS,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM;IAOjC,iEAAiE;IACjE,WAAW,IAAI,MAAM;IAKrB,4EAA4E;IAC5E,YAAY,IAAI,MAAM;IAKtB,4EAA4E;IAC5E,YAAY,IAAI,MAAM;IAKtB;;;;OAIG;IACH,IAAI,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI;IAK1B;;;;OAIG;IACH,IAAI,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI;IAO5B;;;;;OAKG;IACH,SAAS,CAAC,MAAM,EAAE,MAAM,GAAG,YAAY;IAOvC,OAAO,CAAC,eAAe;CAKxB"}
@@ -1,84 +1,58 @@
1
- /**
2
- * Stateful cursor for reading typed values from a `Buffer` in big-endian byte
3
- * order. Advances an internal position pointer after every read so callers
4
- * don't need to track offsets manually.
5
- *
6
- * @example
7
- * const r = new BufferReader(buf);
8
- * const version = r.readUInt8();
9
- * const length = r.readUInt16();
10
- * const payload = r.readBytes(length);
11
- */
1
+ /** Sequential big-endian reader over a fixed-size buffer. */
12
2
  export class BufferReader {
13
3
  _buf;
14
4
  _pos;
15
5
  /**
16
- * Creates a new BufferReader.
6
+ * Create a reader over the given buffer.
17
7
  *
18
- * @param {Buffer} buf - Buffer to read from.
19
- * @param {number} [offset=0] - Initial cursor position.
8
+ * @param {Buffer} buf - Source buffer.
9
+ * @param {number} offset - Initial read position.
20
10
  */
21
11
  constructor(buf, offset = 0) {
22
12
  this._buf = buf;
23
13
  this._pos = offset;
24
14
  }
25
- /** Current byte offset of the read cursor. */
15
+ /** Current read position within the buffer. */
26
16
  get position() {
27
17
  return this._pos;
28
18
  }
29
- /** Number of bytes remaining after the current cursor position. */
19
+ /** Number of bytes remaining after the current position. */
30
20
  get remaining() {
31
21
  return this._buf.length - this._pos;
32
22
  }
33
- /** Total length of the underlying buffer. */
23
+ /** Total buffer length. */
34
24
  get length() {
35
25
  return this._buf.length;
36
26
  }
37
- /** The underlying `Buffer` instance. */
27
+ /** Return the underlying buffer. */
38
28
  get buffer() {
39
29
  return this._buf;
40
30
  }
41
31
  /**
42
- * Returns the next `length` bytes without advancing the cursor.
32
+ * Preview bytes at the current position without advancing.
43
33
  *
44
- * @param {number} length - Number of bytes to peek at.
45
- * @returns {Buffer} A view into the underlying buffer (not a copy).
46
- * @throws {RangeError} If `length` bytes are not available.
34
+ * @param {number} length - Number of bytes to peek.
35
+ * @returns {Buffer} Buffer slice.
47
36
  */
48
37
  peek(length) {
49
38
  this.assertAvailable(length);
50
39
  return this._buf.subarray(this._pos, this._pos + length);
51
40
  }
52
- /**
53
- * Reads one unsigned 8-bit integer and advances the cursor by 1.
54
- *
55
- * @returns {number} Unsigned byte value (0–255).
56
- * @throws {RangeError} If fewer than 1 byte remains.
57
- */
41
+ /** Read a single unsigned 8-bit integer. */
58
42
  readUInt8() {
59
43
  this.assertAvailable(1);
60
44
  const v = this._buf[this._pos];
61
45
  this._pos += 1;
62
46
  return v;
63
47
  }
64
- /**
65
- * Reads one big-endian unsigned 16-bit integer and advances the cursor by 2.
66
- *
67
- * @returns {number} Unsigned 16-bit value (0–65 535).
68
- * @throws {RangeError} If fewer than 2 bytes remain.
69
- */
48
+ /** Read an unsigned 16-bit big-endian integer. */
70
49
  readUInt16() {
71
50
  this.assertAvailable(2);
72
51
  const v = this._buf.readUInt16BE(this._pos);
73
52
  this._pos += 2;
74
53
  return v;
75
54
  }
76
- /**
77
- * Reads one big-endian unsigned 24-bit integer and advances the cursor by 3.
78
- *
79
- * @returns {number} Unsigned 24-bit value (0–16 777 215).
80
- * @throws {RangeError} If fewer than 3 bytes remain.
81
- */
55
+ /** Read an unsigned 24-bit big-endian integer. */
82
56
  readUInt24() {
83
57
  this.assertAvailable(3);
84
58
  const b0 = this._buf[this._pos];
@@ -87,12 +61,7 @@ export class BufferReader {
87
61
  this._pos += 3;
88
62
  return (b0 << 16) | (b1 << 8) | b2;
89
63
  }
90
- /**
91
- * Reads one big-endian unsigned 32-bit integer and advances the cursor by 4.
92
- *
93
- * @returns {number} Unsigned 32-bit value (0–4 294 967 295).
94
- * @throws {RangeError} If fewer than 4 bytes remain.
95
- */
64
+ /** Read an unsigned 32-bit big-endian integer. */
96
65
  readUInt32() {
97
66
  this.assertAvailable(4);
98
67
  const v = this._buf.readUInt32BE(this._pos);
@@ -100,11 +69,10 @@ export class BufferReader {
100
69
  return v;
101
70
  }
102
71
  /**
103
- * Reads `length` bytes into a new `Buffer` and advances the cursor.
72
+ * Read a fixed number of bytes and advance the position.
104
73
  *
105
74
  * @param {number} length - Number of bytes to read.
106
- * @returns {Buffer} Copy of the requested bytes.
107
- * @throws {RangeError} If `length` bytes are not available.
75
+ * @returns {Buffer} Copied buffer slice.
108
76
  */
109
77
  readBytes(length) {
110
78
  this.assertAvailable(length);
@@ -112,54 +80,34 @@ export class BufferReader {
112
80
  this._pos += length;
113
81
  return slice;
114
82
  }
115
- /**
116
- * Reads a length-prefixed byte vector where the length is encoded as a
117
- * one-byte (8-bit) unsigned integer immediately preceding the data.
118
- *
119
- * @returns {Buffer} The vector payload bytes.
120
- * @throws {RangeError} If insufficient bytes remain.
121
- */
83
+ /** Read a length-prefixed vector with a 1-byte length prefix. */
122
84
  readVector8() {
123
85
  const len = this.readUInt8();
124
86
  return this.readBytes(len);
125
87
  }
126
- /**
127
- * Reads a length-prefixed byte vector where the length is encoded as a
128
- * big-endian two-byte (16-bit) unsigned integer immediately preceding the data.
129
- *
130
- * @returns {Buffer} The vector payload bytes.
131
- * @throws {RangeError} If insufficient bytes remain.
132
- */
88
+ /** Read a length-prefixed vector with a 2-byte big-endian length prefix. */
133
89
  readVector16() {
134
90
  const len = this.readUInt16();
135
91
  return this.readBytes(len);
136
92
  }
137
- /**
138
- * Reads a length-prefixed byte vector where the length is encoded as a
139
- * big-endian three-byte (24-bit) unsigned integer immediately preceding the data.
140
- *
141
- * @returns {Buffer} The vector payload bytes.
142
- * @throws {RangeError} If insufficient bytes remain.
143
- */
93
+ /** Read a length-prefixed vector with a 3-byte big-endian length prefix. */
144
94
  readVector24() {
145
95
  const len = this.readUInt24();
146
96
  return this.readBytes(len);
147
97
  }
148
98
  /**
149
- * Advances the cursor by `length` bytes without returning the data.
99
+ * Advance the read position without returning data.
150
100
  *
151
101
  * @param {number} length - Number of bytes to skip.
152
- * @throws {RangeError} If `length` bytes are not available.
153
102
  */
154
103
  skip(length) {
155
104
  this.assertAvailable(length);
156
105
  this._pos += length;
157
106
  }
158
107
  /**
159
- * Moves the cursor to an absolute byte position within the buffer.
108
+ * Set the read position to an absolute offset.
160
109
  *
161
- * @param {number} position - Target byte offset (0 to `length` inclusive).
162
- * @throws {RangeError} If `position` is negative or beyond the buffer length.
110
+ * @param {number} position - Target position.
163
111
  */
164
112
  seek(position) {
165
113
  if (position < 0 || position > this._buf.length) {
@@ -168,13 +116,10 @@ export class BufferReader {
168
116
  this._pos = position;
169
117
  }
170
118
  /**
171
- * Reads `length` bytes from the current position and returns a new
172
- * `BufferReader` positioned at offset 0 within that sub-slice. The parent
173
- * cursor advances by `length` bytes.
119
+ * Create a sub-reader covering the next `length` bytes and advance.
174
120
  *
175
- * @param {number} length - Byte count to slice into the sub-reader.
176
- * @returns {BufferReader} Reader over the requested sub-slice.
177
- * @throws {RangeError} If `length` bytes are not available.
121
+ * @param {number} length - Number of bytes for the sub-reader.
122
+ * @returns {BufferReader} New `BufferReader` over the sub-range.
178
123
  */
179
124
  subReader(length) {
180
125
  this.assertAvailable(length);
@@ -1 +1 @@
1
- {"version":3,"file":"buffer-reader.js","sourceRoot":"","sources":["../../src/utils/buffer-reader.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"buffer-reader.js","sourceRoot":"","sources":["../../src/utils/buffer-reader.ts"],"names":[],"mappings":"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"}
@@ -1,122 +1,86 @@
1
- /**
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();
12
- */
1
+ /** Auto-growing big-endian buffer builder. */
13
2
  export declare class BufferWriter {
14
3
  private _buf;
15
4
  private _pos;
16
5
  /**
17
- * Creates a new BufferWriter with an optional initial capacity.
6
+ * Create a writer with the given initial capacity.
18
7
  *
19
- * @param {number} [capacity=1024] - Initial internal buffer capacity in bytes.
8
+ * @param {number} [capacity] - Initial buffer allocation in bytes.
20
9
  */
21
10
  constructor(capacity?: number);
22
- /** Current write position (equals the number of bytes written so far). */
11
+ /** Current write position (identical to the number of bytes written). */
23
12
  get position(): number;
24
- /** Number of bytes that have been written (alias for {@link BufferWriter.position}). */
13
+ /** Number of bytes written so far. */
25
14
  get length(): number;
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
- */
15
+ /** Copy the written region into a new buffer and return it. */
33
16
  toBuffer(): Buffer;
34
17
  /**
35
- * Writes one unsigned byte and advances the write position by 1.
18
+ * Write an unsigned 8-bit integer.
36
19
  *
37
- * @param {number} value - Byte value (only the lowest 8 bits are used).
38
- * @returns {this} This instance for chaining.
20
+ * @param {number} value - Value to write.
39
21
  */
40
22
  writeUInt8(value: number): this;
41
23
  /**
42
- * Writes one big-endian unsigned 16-bit integer and advances the write position by 2.
24
+ * Write an unsigned 16-bit big-endian integer.
43
25
  *
44
- * @param {number} value - 16-bit value to write.
45
- * @returns {this} This instance for chaining.
26
+ * @param {number} value - Value to write.
46
27
  */
47
28
  writeUInt16(value: number): this;
48
29
  /**
49
- * Writes one big-endian unsigned 24-bit integer and advances the write position by 3.
30
+ * Write an unsigned 24-bit big-endian integer.
50
31
  *
51
- * @param {number} value - 24-bit value to write.
52
- * @returns {this} This instance for chaining.
32
+ * @param {number} value - Value to write.
53
33
  */
54
34
  writeUInt24(value: number): this;
55
35
  /**
56
- * Writes one big-endian unsigned 32-bit integer and advances the write position by 4.
36
+ * Write an unsigned 32-bit big-endian integer.
57
37
  *
58
- * @param {number} value - 32-bit value to write.
59
- * @returns {this} This instance for chaining.
38
+ * @param {number} value - Value to write.
60
39
  */
61
40
  writeUInt32(value: number): this;
62
41
  /**
63
- * Appends raw bytes from `data` and advances the write position accordingly.
42
+ * Write raw bytes into the buffer.
64
43
  *
65
- * @param {Buffer | Uint8Array} data - Data to write.
66
- * @returns {this} This instance for chaining.
44
+ * @param {Buffer | Uint8Array} data - Bytes to append.
67
45
  */
68
46
  writeBytes(data: Buffer | Uint8Array): this;
69
47
  /**
70
- * Writes a length-prefixed byte vector using an 8-bit length prefix.
71
- * Equivalent to `writeUInt8(data.length)` followed by `writeBytes(data)`.
48
+ * Write a length-prefixed vector with a 1-byte length prefix.
72
49
  *
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.
50
+ * @param {Buffer | Uint8Array} data - Data to write.
76
51
  */
77
52
  writeVector8(data: Buffer | Uint8Array): this;
78
53
  /**
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)`.
54
+ * Write a length-prefixed vector with a 2-byte big-endian length prefix.
81
55
  *
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.
56
+ * @param {Buffer | Uint8Array} data - Data to write.
85
57
  */
86
58
  writeVector16(data: Buffer | Uint8Array): this;
87
59
  /**
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)`.
60
+ * Write a length-prefixed vector with a 3-byte big-endian length prefix.
90
61
  *
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.
62
+ * @param {Buffer | Uint8Array} data - Data to write.
94
63
  */
95
64
  writeVector24(data: Buffer | Uint8Array): this;
96
65
  /**
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}.
66
+ * Reserve space and return its offset for later patching.
101
67
  *
102
68
  * @param {number} size - Number of bytes to reserve.
103
- * @returns {number} Byte offset of the start of the reserved region.
69
+ * @returns {number} Starting offset of the reserved region.
104
70
  */
105
71
  reserve(size: number): number;
106
72
  /**
107
- * Overwrites a previously reserved 16-bit slot with `value` in big-endian byte order.
108
- * Does not advance the write cursor.
73
+ * Overwrite a previously reserved 16-bit value.
109
74
  *
110
- * @param {number} offset - Byte offset returned by {@link BufferWriter.reserve}.
111
- * @param {number} value - 16-bit value to patch in.
75
+ * @param {number} offset - Byte offset to patch.
76
+ * @param {number} value - New 16-bit value.
112
77
  */
113
78
  patchUInt16(offset: number, value: number): void;
114
79
  /**
115
- * Overwrites a previously reserved 24-bit slot with `value` in big-endian byte order.
116
- * Does not advance the write cursor.
80
+ * Overwrite a previously reserved 24-bit value.
117
81
  *
118
- * @param {number} offset - Byte offset returned by {@link BufferWriter.reserve}.
119
- * @param {number} value - 24-bit value to patch in.
82
+ * @param {number} offset - Byte offset to patch.
83
+ * @param {number} value - New 24-bit value.
120
84
  */
121
85
  patchUInt24(offset: number, value: number): void;
122
86
  private ensureCapacity;
@@ -1 +1 @@
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;CAevB"}
1
+ {"version":3,"file":"buffer-writer.d.ts","sourceRoot":"","sources":["../../src/utils/buffer-writer.ts"],"names":[],"mappings":"AAIA,8CAA8C;AAC9C,qBAAa,YAAY;IACvB,OAAO,CAAC,IAAI,CAAS;IACrB,OAAO,CAAC,IAAI,CAAS;IAErB;;;;OAIG;gBACS,QAAQ,GAAE,MAAyB;IAK/C,yEAAyE;IACzE,IAAI,QAAQ,IAAI,MAAM,CAErB;IAED,sCAAsC;IACtC,IAAI,MAAM,IAAI,MAAM,CAEnB;IAED,+DAA+D;IAC/D,QAAQ,IAAI,MAAM;IAIlB;;;;OAIG;IACH,UAAU,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IAO/B;;;;OAIG;IACH,WAAW,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IAOhC;;;;OAIG;IACH,WAAW,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IAShC;;;;OAIG;IACH,WAAW,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IAOhC;;;;OAIG;IACH,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,UAAU,GAAG,IAAI;IAW3C;;;;OAIG;IACH,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG,UAAU,GAAG,IAAI;IAS7C;;;;OAIG;IACH,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,UAAU,GAAG,IAAI;IAS9C;;;;OAIG;IACH,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,UAAU,GAAG,IAAI;IAS9C;;;;;OAKG;IACH,OAAO,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM;IAO7B;;;;;OAKG;IACH,WAAW,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI;IAIhD;;;;;OAKG;IACH,WAAW,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI;IAMhD,OAAO,CAAC,cAAc;CAevB"}