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.
- package/README.md +143 -140
- package/dist/cache/groups.d.ts +75 -0
- package/dist/cache/groups.d.ts.map +1 -0
- package/dist/cache/groups.js +118 -0
- package/dist/cache/groups.js.map +1 -0
- package/dist/cache/no-vary-search.d.ts +33 -0
- package/dist/cache/no-vary-search.d.ts.map +1 -0
- package/dist/cache/no-vary-search.js +148 -0
- package/dist/cache/no-vary-search.js.map +1 -0
- package/dist/cache/range.d.ts +120 -0
- package/dist/cache/range.d.ts.map +1 -0
- package/dist/cache/range.js +193 -0
- package/dist/cache/range.js.map +1 -0
- package/dist/cache/store.d.ts +111 -0
- package/dist/cache/store.d.ts.map +1 -0
- package/dist/cache/store.js +414 -0
- package/dist/cache/store.js.map +1 -0
- package/dist/cache/types.d.ts +69 -0
- package/dist/cache/types.d.ts.map +1 -0
- package/dist/cache/types.js +2 -0
- package/dist/cache/types.js.map +1 -0
- package/dist/cli/args.d.ts +4 -37
- package/dist/cli/args.d.ts.map +1 -1
- package/dist/cli/args.js +3 -4
- package/dist/cli/args.js.map +1 -1
- package/dist/cli/index.d.ts +0 -5
- package/dist/cli/index.d.ts.map +1 -1
- package/dist/cli/index.js +1 -6
- package/dist/cli/index.js.map +1 -1
- package/dist/cli/output.d.ts +14 -20
- package/dist/cli/output.d.ts.map +1 -1
- package/dist/cli/output.js +14 -20
- package/dist/cli/output.js.map +1 -1
- package/dist/cookies/jar.d.ts +33 -31
- package/dist/cookies/jar.d.ts.map +1 -1
- package/dist/cookies/jar.js +69 -33
- package/dist/cookies/jar.js.map +1 -1
- package/dist/cookies/parser.d.ts +14 -16
- package/dist/cookies/parser.d.ts.map +1 -1
- package/dist/cookies/parser.js +30 -13
- package/dist/cookies/parser.js.map +1 -1
- package/dist/cookies/psl-data.d.ts +1 -1
- package/dist/cookies/psl-data.js +1 -1
- package/dist/cookies/public-suffix.d.ts +5 -27
- package/dist/cookies/public-suffix.d.ts.map +1 -1
- package/dist/cookies/public-suffix.js +5 -37
- package/dist/cookies/public-suffix.js.map +1 -1
- package/dist/core/auth.d.ts +30 -0
- package/dist/core/auth.d.ts.map +1 -0
- package/dist/core/auth.js +34 -0
- package/dist/core/auth.js.map +1 -0
- package/dist/core/client.d.ts +28 -40
- package/dist/core/client.d.ts.map +1 -1
- package/dist/core/client.js +34 -41
- package/dist/core/client.js.map +1 -1
- package/dist/core/errors.d.ts +64 -88
- package/dist/core/errors.d.ts.map +1 -1
- package/dist/core/errors.js +64 -88
- package/dist/core/errors.js.map +1 -1
- package/dist/core/request.d.ts +63 -85
- package/dist/core/request.d.ts.map +1 -1
- package/dist/core/response.d.ts +64 -59
- package/dist/core/response.d.ts.map +1 -1
- package/dist/core/response.js +70 -52
- package/dist/core/response.js.map +1 -1
- package/dist/core/session.d.ts +81 -70
- package/dist/core/session.d.ts.map +1 -1
- package/dist/core/session.js +198 -71
- package/dist/core/session.js.map +1 -1
- package/dist/core/validation.d.ts +44 -42
- package/dist/core/validation.d.ts.map +1 -1
- package/dist/core/validation.js +47 -58
- package/dist/core/validation.js.map +1 -1
- package/dist/dns/cache.d.ts +59 -0
- package/dist/dns/cache.d.ts.map +1 -0
- package/dist/dns/cache.js +99 -0
- package/dist/dns/cache.js.map +1 -0
- package/dist/dns/codec.d.ts +39 -0
- package/dist/dns/codec.d.ts.map +1 -0
- package/dist/dns/codec.js +238 -0
- package/dist/dns/codec.js.map +1 -0
- package/dist/dns/doh-resolver.d.ts +38 -0
- package/dist/dns/doh-resolver.d.ts.map +1 -0
- package/dist/dns/doh-resolver.js +191 -0
- package/dist/dns/doh-resolver.js.map +1 -0
- package/dist/dns/dot-resolver.d.ts +89 -0
- package/dist/dns/dot-resolver.d.ts.map +1 -0
- package/dist/dns/dot-resolver.js +158 -0
- package/dist/dns/dot-resolver.js.map +1 -0
- package/dist/dns/https-rr.d.ts +40 -0
- package/dist/dns/https-rr.d.ts.map +1 -0
- package/dist/dns/https-rr.js +109 -0
- package/dist/dns/https-rr.js.map +1 -0
- package/dist/dns/types.d.ts +82 -0
- package/dist/dns/types.d.ts.map +1 -0
- package/dist/dns/types.js +23 -0
- package/dist/dns/types.js.map +1 -0
- package/dist/fingerprints/akamai.d.ts +3 -11
- package/dist/fingerprints/akamai.d.ts.map +1 -1
- package/dist/fingerprints/akamai.js +3 -11
- package/dist/fingerprints/akamai.js.map +1 -1
- package/dist/fingerprints/database.d.ts +6 -14
- package/dist/fingerprints/database.d.ts.map +1 -1
- package/dist/fingerprints/database.js +6 -14
- package/dist/fingerprints/database.js.map +1 -1
- package/dist/fingerprints/extensions.d.ts +56 -71
- package/dist/fingerprints/extensions.d.ts.map +1 -1
- package/dist/fingerprints/extensions.js +58 -71
- package/dist/fingerprints/extensions.js.map +1 -1
- package/dist/fingerprints/ja3.d.ts +12 -30
- package/dist/fingerprints/ja3.d.ts.map +1 -1
- package/dist/fingerprints/ja3.js +12 -30
- package/dist/fingerprints/ja3.js.map +1 -1
- package/dist/fingerprints/ja4.d.ts +18 -0
- package/dist/fingerprints/ja4.d.ts.map +1 -0
- package/dist/fingerprints/ja4.js +83 -0
- package/dist/fingerprints/ja4.js.map +1 -0
- package/dist/fingerprints/profiles/chrome.d.ts +18 -21
- package/dist/fingerprints/profiles/chrome.d.ts.map +1 -1
- package/dist/fingerprints/profiles/chrome.js +35 -31
- package/dist/fingerprints/profiles/chrome.js.map +1 -1
- package/dist/fingerprints/profiles/edge.d.ts +7 -10
- package/dist/fingerprints/profiles/edge.d.ts.map +1 -1
- package/dist/fingerprints/profiles/edge.js +7 -10
- package/dist/fingerprints/profiles/edge.js.map +1 -1
- package/dist/fingerprints/profiles/firefox.d.ts +8 -11
- package/dist/fingerprints/profiles/firefox.d.ts.map +1 -1
- package/dist/fingerprints/profiles/firefox.js +8 -11
- package/dist/fingerprints/profiles/firefox.js.map +1 -1
- package/dist/fingerprints/profiles/safari.d.ts +11 -14
- package/dist/fingerprints/profiles/safari.d.ts.map +1 -1
- package/dist/fingerprints/profiles/safari.js +11 -14
- package/dist/fingerprints/profiles/safari.js.map +1 -1
- package/dist/fingerprints/profiles/tor.d.ts +5 -8
- package/dist/fingerprints/profiles/tor.d.ts.map +1 -1
- package/dist/fingerprints/profiles/tor.js +5 -8
- package/dist/fingerprints/profiles/tor.js.map +1 -1
- package/dist/fingerprints/types.d.ts +42 -73
- package/dist/fingerprints/types.d.ts.map +1 -1
- package/dist/hsts/store.d.ts +39 -0
- package/dist/hsts/store.d.ts.map +1 -0
- package/dist/hsts/store.js +163 -0
- package/dist/hsts/store.js.map +1 -0
- package/dist/hsts/types.d.ts +24 -0
- package/dist/hsts/types.d.ts.map +1 -0
- package/dist/hsts/types.js +2 -0
- package/dist/hsts/types.js.map +1 -0
- package/dist/http/alt-svc.d.ts +67 -0
- package/dist/http/alt-svc.d.ts.map +1 -0
- package/dist/http/alt-svc.js +186 -0
- package/dist/http/alt-svc.js.map +1 -0
- package/dist/http/early-hints.d.ts +23 -0
- package/dist/http/early-hints.d.ts.map +1 -0
- package/dist/http/early-hints.js +33 -0
- package/dist/http/early-hints.js.map +1 -0
- package/dist/http/form-data.d.ts +17 -35
- package/dist/http/form-data.d.ts.map +1 -1
- package/dist/http/form-data.js +12 -34
- package/dist/http/form-data.js.map +1 -1
- package/dist/http/h1/client.d.ts +14 -26
- package/dist/http/h1/client.d.ts.map +1 -1
- package/dist/http/h1/client.js +29 -22
- package/dist/http/h1/client.js.map +1 -1
- package/dist/http/h1/encoder.d.ts +10 -17
- package/dist/http/h1/encoder.d.ts.map +1 -1
- package/dist/http/h1/encoder.js +10 -17
- package/dist/http/h1/encoder.js.map +1 -1
- package/dist/http/h1/parser.d.ts +22 -59
- package/dist/http/h1/parser.d.ts.map +1 -1
- package/dist/http/h1/parser.js +15 -47
- package/dist/http/h1/parser.js.map +1 -1
- package/dist/http/h2/client.d.ts +18 -59
- package/dist/http/h2/client.d.ts.map +1 -1
- package/dist/http/h2/client.js +29 -64
- package/dist/http/h2/client.js.map +1 -1
- package/dist/http/h2/frames.d.ts +53 -84
- package/dist/http/h2/frames.d.ts.map +1 -1
- package/dist/http/h2/frames.js +48 -76
- package/dist/http/h2/frames.js.map +1 -1
- package/dist/http/h2/hpack.d.ts +16 -35
- package/dist/http/h2/hpack.d.ts.map +1 -1
- package/dist/http/h2/hpack.js +16 -35
- package/dist/http/h2/hpack.js.map +1 -1
- package/dist/http/h3/detection.d.ts +15 -0
- package/dist/http/h3/detection.d.ts.map +1 -0
- package/dist/http/h3/detection.js +41 -0
- package/dist/http/h3/detection.js.map +1 -0
- package/dist/http/negotiator.d.ts +43 -33
- package/dist/http/negotiator.d.ts.map +1 -1
- package/dist/http/negotiator.js +99 -41
- package/dist/http/negotiator.js.map +1 -1
- package/dist/http/pool.d.ts +34 -64
- package/dist/http/pool.d.ts.map +1 -1
- package/dist/http/pool.js +22 -41
- package/dist/http/pool.js.map +1 -1
- package/dist/http/resumable-upload.d.ts +76 -0
- package/dist/http/resumable-upload.d.ts.map +1 -0
- package/dist/http/resumable-upload.js +104 -0
- package/dist/http/resumable-upload.js.map +1 -0
- package/dist/http/trailers.d.ts +29 -0
- package/dist/http/trailers.d.ts.map +1 -0
- package/dist/http/trailers.js +57 -0
- package/dist/http/trailers.js.map +1 -0
- package/dist/index.d.ts +36 -8
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +32 -1
- package/dist/index.js.map +1 -1
- package/dist/middleware/interceptor.d.ts +13 -32
- package/dist/middleware/interceptor.d.ts.map +1 -1
- package/dist/middleware/interceptor.js +11 -16
- package/dist/middleware/interceptor.js.map +1 -1
- package/dist/middleware/rate-limiter.d.ts +8 -17
- package/dist/middleware/rate-limiter.d.ts.map +1 -1
- package/dist/middleware/rate-limiter.js +15 -12
- package/dist/middleware/rate-limiter.js.map +1 -1
- package/dist/middleware/retry-after.d.ts +15 -0
- package/dist/middleware/retry-after.d.ts.map +1 -0
- package/dist/middleware/retry-after.js +36 -0
- package/dist/middleware/retry-after.js.map +1 -0
- package/dist/middleware/retry.d.ts +9 -18
- package/dist/middleware/retry.d.ts.map +1 -1
- package/dist/middleware/retry.js +12 -9
- package/dist/middleware/retry.js.map +1 -1
- package/dist/proxy/auth.d.ts +73 -0
- package/dist/proxy/auth.d.ts.map +1 -0
- package/dist/proxy/auth.js +128 -0
- package/dist/proxy/auth.js.map +1 -0
- package/dist/proxy/env-proxy.d.ts +11 -0
- package/dist/proxy/env-proxy.d.ts.map +1 -0
- package/dist/proxy/env-proxy.js +56 -0
- package/dist/proxy/env-proxy.js.map +1 -0
- package/dist/proxy/http-proxy.d.ts +13 -18
- package/dist/proxy/http-proxy.d.ts.map +1 -1
- package/dist/proxy/http-proxy.js +24 -14
- package/dist/proxy/http-proxy.js.map +1 -1
- package/dist/proxy/socks.d.ts +13 -20
- package/dist/proxy/socks.d.ts.map +1 -1
- package/dist/proxy/socks.js +6 -9
- package/dist/proxy/socks.js.map +1 -1
- package/dist/sse/parser.d.ts +47 -0
- package/dist/sse/parser.d.ts.map +1 -0
- package/dist/sse/parser.js +139 -0
- package/dist/sse/parser.js.map +1 -0
- package/dist/tls/constants.d.ts +15 -74
- package/dist/tls/constants.d.ts.map +1 -1
- package/dist/tls/constants.js +15 -74
- package/dist/tls/constants.js.map +1 -1
- package/dist/tls/ct.d.ts +78 -0
- package/dist/tls/ct.d.ts.map +1 -0
- package/dist/tls/ct.js +175 -0
- package/dist/tls/ct.js.map +1 -0
- package/dist/tls/early-data.d.ts +45 -0
- package/dist/tls/early-data.d.ts.map +1 -0
- package/dist/tls/early-data.js +46 -0
- package/dist/tls/early-data.js.map +1 -0
- package/dist/tls/ech.d.ts +130 -0
- package/dist/tls/ech.d.ts.map +1 -0
- package/dist/tls/ech.js +353 -0
- package/dist/tls/ech.js.map +1 -0
- package/dist/tls/keylog.d.ts +34 -0
- package/dist/tls/keylog.d.ts.map +1 -0
- package/dist/tls/keylog.js +64 -0
- package/dist/tls/keylog.js.map +1 -0
- package/dist/tls/node-engine.d.ts +15 -14
- package/dist/tls/node-engine.d.ts.map +1 -1
- package/dist/tls/node-engine.js +54 -14
- package/dist/tls/node-engine.js.map +1 -1
- package/dist/tls/ocsp.d.ts +55 -0
- package/dist/tls/ocsp.d.ts.map +1 -0
- package/dist/tls/ocsp.js +131 -0
- package/dist/tls/ocsp.js.map +1 -0
- package/dist/tls/pin-verification.d.ts +10 -0
- package/dist/tls/pin-verification.d.ts.map +1 -0
- package/dist/tls/pin-verification.js +28 -0
- package/dist/tls/pin-verification.js.map +1 -0
- package/dist/tls/session-cache.d.ts +58 -0
- package/dist/tls/session-cache.d.ts.map +1 -0
- package/dist/tls/session-cache.js +76 -0
- package/dist/tls/session-cache.js.map +1 -0
- package/dist/tls/stealth/client-hello.d.ts +34 -32
- package/dist/tls/stealth/client-hello.d.ts.map +1 -1
- package/dist/tls/stealth/client-hello.js +116 -11
- package/dist/tls/stealth/client-hello.js.map +1 -1
- package/dist/tls/stealth/engine.d.ts +5 -15
- package/dist/tls/stealth/engine.d.ts.map +1 -1
- package/dist/tls/stealth/engine.js +163 -47
- package/dist/tls/stealth/engine.js.map +1 -1
- package/dist/tls/stealth/handshake.d.ts +23 -32
- package/dist/tls/stealth/handshake.d.ts.map +1 -1
- package/dist/tls/stealth/handshake.js +112 -27
- package/dist/tls/stealth/handshake.js.map +1 -1
- package/dist/tls/stealth/key-schedule.d.ts +59 -86
- package/dist/tls/stealth/key-schedule.d.ts.map +1 -1
- package/dist/tls/stealth/key-schedule.js +46 -58
- package/dist/tls/stealth/key-schedule.js.map +1 -1
- package/dist/tls/stealth/record-layer.d.ts +52 -75
- package/dist/tls/stealth/record-layer.d.ts.map +1 -1
- package/dist/tls/stealth/record-layer.js +47 -63
- package/dist/tls/stealth/record-layer.js.map +1 -1
- package/dist/tls/stealth/tls12-handshake.d.ts +30 -0
- package/dist/tls/stealth/tls12-handshake.d.ts.map +1 -0
- package/dist/tls/stealth/tls12-handshake.js +470 -0
- package/dist/tls/stealth/tls12-handshake.js.map +1 -0
- package/dist/tls/types.d.ts +46 -48
- package/dist/tls/types.d.ts.map +1 -1
- package/dist/utils/buffer-reader.d.ts +26 -81
- package/dist/utils/buffer-reader.d.ts.map +1 -1
- package/dist/utils/buffer-reader.js +26 -81
- package/dist/utils/buffer-reader.js.map +1 -1
- package/dist/utils/buffer-writer.d.ts +30 -66
- package/dist/utils/buffer-writer.d.ts.map +1 -1
- package/dist/utils/buffer-writer.js +30 -66
- package/dist/utils/buffer-writer.js.map +1 -1
- package/dist/utils/compression.d.ts +18 -0
- package/dist/utils/compression.d.ts.map +1 -0
- package/dist/utils/compression.js +34 -0
- package/dist/utils/compression.js.map +1 -0
- package/dist/utils/dictionary-transport.d.ts +97 -0
- package/dist/utils/dictionary-transport.d.ts.map +1 -0
- package/dist/utils/dictionary-transport.js +171 -0
- package/dist/utils/dictionary-transport.js.map +1 -0
- package/dist/utils/encoding.d.ts +12 -28
- package/dist/utils/encoding.d.ts.map +1 -1
- package/dist/utils/encoding.js +77 -40
- package/dist/utils/encoding.js.map +1 -1
- package/dist/utils/happy-eyeballs.d.ts +20 -7
- package/dist/utils/happy-eyeballs.d.ts.map +1 -1
- package/dist/utils/happy-eyeballs.js +57 -25
- package/dist/utils/happy-eyeballs.js.map +1 -1
- package/dist/utils/logger.d.ts +54 -81
- package/dist/utils/logger.d.ts.map +1 -1
- package/dist/utils/logger.js +92 -64
- package/dist/utils/logger.js.map +1 -1
- package/dist/utils/tcp-fast-open.d.ts +30 -0
- package/dist/utils/tcp-fast-open.d.ts.map +1 -0
- package/dist/utils/tcp-fast-open.js +36 -0
- package/dist/utils/tcp-fast-open.js.map +1 -0
- package/dist/utils/url.d.ts +18 -25
- package/dist/utils/url.d.ts.map +1 -1
- package/dist/utils/url.js +18 -25
- package/dist/utils/url.js.map +1 -1
- package/dist/ws/client.d.ts +35 -52
- package/dist/ws/client.d.ts.map +1 -1
- package/dist/ws/client.js +92 -37
- package/dist/ws/client.js.map +1 -1
- package/dist/ws/frame.d.ts +27 -42
- package/dist/ws/frame.d.ts.map +1 -1
- package/dist/ws/frame.js +25 -37
- package/dist/ws/frame.js.map +1 -1
- package/dist/ws/permessage-deflate.d.ts +53 -0
- package/dist/ws/permessage-deflate.d.ts.map +1 -0
- package/dist/ws/permessage-deflate.js +140 -0
- package/dist/ws/permessage-deflate.js.map +1 -0
- 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
|
-
*
|
|
6
|
+
* Create a reader over the given buffer.
|
|
17
7
|
*
|
|
18
|
-
* @param {Buffer} buf
|
|
19
|
-
* @param {number}
|
|
8
|
+
* @param {Buffer} buf - Source buffer.
|
|
9
|
+
* @param {number} offset - Initial read position.
|
|
20
10
|
*/
|
|
21
11
|
constructor(buf: Buffer, offset?: number);
|
|
22
|
-
/** Current
|
|
12
|
+
/** Current read position within the buffer. */
|
|
23
13
|
get position(): number;
|
|
24
|
-
/** Number of bytes remaining after the current
|
|
14
|
+
/** Number of bytes remaining after the current position. */
|
|
25
15
|
get remaining(): number;
|
|
26
|
-
/** Total length
|
|
16
|
+
/** Total buffer length. */
|
|
27
17
|
get length(): number;
|
|
28
|
-
/**
|
|
18
|
+
/** Return the underlying buffer. */
|
|
29
19
|
get buffer(): Buffer;
|
|
30
20
|
/**
|
|
31
|
-
*
|
|
21
|
+
* Preview bytes at the current position without advancing.
|
|
32
22
|
*
|
|
33
|
-
* @param {number} length - Number of bytes to peek
|
|
34
|
-
* @returns {Buffer}
|
|
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
|
-
*
|
|
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}
|
|
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
|
-
*
|
|
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
|
-
*
|
|
55
|
+
* Set the read position to an absolute offset.
|
|
107
56
|
*
|
|
108
|
-
* @param {number} position - Target
|
|
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
|
-
*
|
|
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 -
|
|
118
|
-
* @returns {BufferReader}
|
|
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
|
|
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
|
-
*
|
|
6
|
+
* Create a reader over the given buffer.
|
|
17
7
|
*
|
|
18
|
-
* @param {Buffer} buf
|
|
19
|
-
* @param {number}
|
|
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
|
|
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
|
|
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
|
|
23
|
+
/** Total buffer length. */
|
|
34
24
|
get length() {
|
|
35
25
|
return this._buf.length;
|
|
36
26
|
}
|
|
37
|
-
/**
|
|
27
|
+
/** Return the underlying buffer. */
|
|
38
28
|
get buffer() {
|
|
39
29
|
return this._buf;
|
|
40
30
|
}
|
|
41
31
|
/**
|
|
42
|
-
*
|
|
32
|
+
* Preview bytes at the current position without advancing.
|
|
43
33
|
*
|
|
44
|
-
* @param {number} length - Number of bytes to peek
|
|
45
|
-
* @returns {Buffer}
|
|
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
|
-
*
|
|
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}
|
|
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
|
-
*
|
|
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
|
-
*
|
|
108
|
+
* Set the read position to an absolute offset.
|
|
160
109
|
*
|
|
161
|
-
* @param {number} position - Target
|
|
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
|
-
*
|
|
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 -
|
|
176
|
-
* @returns {BufferReader}
|
|
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":"AAAA
|
|
1
|
+
{"version":3,"file":"buffer-reader.js","sourceRoot":"","sources":["../../src/utils/buffer-reader.ts"],"names":[],"mappings":"AAAA,6DAA6D;AAC7D,MAAM,OAAO,YAAY;IACf,IAAI,CAAS;IACb,IAAI,CAAS;IAErB;;;;;OAKG;IACH,YAAY,GAAW,EAAE,SAAiB,CAAC;QACzC,IAAI,CAAC,IAAI,GAAG,GAAG,CAAC;QAChB,IAAI,CAAC,IAAI,GAAG,MAAM,CAAC;IACrB,CAAC;IAED,+CAA+C;IAC/C,IAAI,QAAQ;QACV,OAAO,IAAI,CAAC,IAAI,CAAC;IACnB,CAAC;IAED,4DAA4D;IAC5D,IAAI,SAAS;QACX,OAAO,IAAI,CAAC,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC;IACtC,CAAC;IAED,2BAA2B;IAC3B,IAAI,MAAM;QACR,OAAO,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC;IAC1B,CAAC;IAED,oCAAoC;IACpC,IAAI,MAAM;QACR,OAAO,IAAI,CAAC,IAAI,CAAC;IACnB,CAAC;IAED;;;;;OAKG;IACH,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,4CAA4C;IAC5C,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,kDAAkD;IAClD,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,kDAAkD;IAClD,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,kDAAkD;IAClD,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;;;;;OAKG;IACH,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,iEAAiE;IACjE,WAAW;QACT,MAAM,GAAG,GAAG,IAAI,CAAC,SAAS,EAAE,CAAC;QAC7B,OAAO,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;IAC7B,CAAC;IAED,4EAA4E;IAC5E,YAAY;QACV,MAAM,GAAG,GAAG,IAAI,CAAC,UAAU,EAAE,CAAC;QAC9B,OAAO,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;IAC7B,CAAC;IAED,4EAA4E;IAC5E,YAAY;QACV,MAAM,GAAG,GAAG,IAAI,CAAC,UAAU,EAAE,CAAC;QAC9B,OAAO,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;IAC7B,CAAC;IAED;;;;OAIG;IACH,IAAI,CAAC,MAAc;QACjB,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC;QAC7B,IAAI,CAAC,IAAI,IAAI,MAAM,CAAC;IACtB,CAAC;IAED;;;;OAIG;IACH,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;;;;;OAKG;IACH,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,CAAC,0BAA0B,CAAC,oBAAoB,IAAI,CAAC,IAAI,UAAU,IAAI,CAAC,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,IAAI,YAAY,CAAC,CAAC;QACnI,CAAC;IACH,CAAC;CACF"}
|
|
@@ -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
|
-
*
|
|
6
|
+
* Create a writer with the given initial capacity.
|
|
18
7
|
*
|
|
19
|
-
* @param {number} [capacity
|
|
8
|
+
* @param {number} [capacity] - Initial buffer allocation in bytes.
|
|
20
9
|
*/
|
|
21
10
|
constructor(capacity?: number);
|
|
22
|
-
/** Current write position (
|
|
11
|
+
/** Current write position (identical to the number of bytes written). */
|
|
23
12
|
get position(): number;
|
|
24
|
-
/** Number of bytes
|
|
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
|
-
*
|
|
18
|
+
* Write an unsigned 8-bit integer.
|
|
36
19
|
*
|
|
37
|
-
* @param {number} value -
|
|
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
|
-
*
|
|
24
|
+
* Write an unsigned 16-bit big-endian integer.
|
|
43
25
|
*
|
|
44
|
-
* @param {number} value -
|
|
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
|
-
*
|
|
30
|
+
* Write an unsigned 24-bit big-endian integer.
|
|
50
31
|
*
|
|
51
|
-
* @param {number} value -
|
|
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
|
-
*
|
|
36
|
+
* Write an unsigned 32-bit big-endian integer.
|
|
57
37
|
*
|
|
58
|
-
* @param {number} value -
|
|
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
|
-
*
|
|
42
|
+
* Write raw bytes into the buffer.
|
|
64
43
|
*
|
|
65
|
-
* @param {Buffer | Uint8Array} data -
|
|
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
|
-
*
|
|
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
|
|
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
|
-
*
|
|
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
|
|
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
|
-
*
|
|
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
|
|
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
|
-
*
|
|
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}
|
|
69
|
+
* @returns {number} Starting offset of the reserved region.
|
|
104
70
|
*/
|
|
105
71
|
reserve(size: number): number;
|
|
106
72
|
/**
|
|
107
|
-
*
|
|
108
|
-
* Does not advance the write cursor.
|
|
73
|
+
* Overwrite a previously reserved 16-bit value.
|
|
109
74
|
*
|
|
110
|
-
* @param {number} offset - Byte offset
|
|
111
|
-
* @param {number} value
|
|
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
|
-
*
|
|
116
|
-
* Does not advance the write cursor.
|
|
80
|
+
* Overwrite a previously reserved 24-bit value.
|
|
117
81
|
*
|
|
118
|
-
* @param {number} offset - Byte offset
|
|
119
|
-
* @param {number} value
|
|
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
|
|
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"}
|