nlcurl 0.7.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 +58 -36
- package/dist/cache/store.d.ts.map +1 -1
- package/dist/cache/store.js +58 -46
- package/dist/cache/store.js.map +1 -1
- package/dist/cache/types.d.ts +7 -39
- package/dist/cache/types.d.ts.map +1 -1
- 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 +30 -39
- package/dist/cookies/jar.d.ts.map +1 -1
- package/dist/cookies/jar.js +27 -37
- package/dist/cookies/jar.js.map +1 -1
- package/dist/cookies/parser.d.ts +13 -17
- package/dist/cookies/parser.d.ts.map +1 -1
- package/dist/cookies/parser.js +17 -14
- 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 +31 -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 +23 -111
- package/dist/core/request.d.ts.map +1 -1
- package/dist/core/response.d.ts +49 -66
- package/dist/core/response.d.ts.map +1 -1
- package/dist/core/response.js +45 -59
- package/dist/core/response.js.map +1 -1
- package/dist/core/session.d.ts +66 -78
- package/dist/core/session.d.ts.map +1 -1
- package/dist/core/session.js +105 -76
- package/dist/core/session.js.map +1 -1
- package/dist/core/validation.d.ts +44 -43
- package/dist/core/validation.d.ts.map +1 -1
- package/dist/core/validation.js +44 -56
- 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 +20 -18
- package/dist/dns/codec.d.ts.map +1 -1
- package/dist/dns/codec.js +20 -36
- package/dist/dns/codec.js.map +1 -1
- package/dist/dns/doh-resolver.d.ts +17 -31
- package/dist/dns/doh-resolver.d.ts.map +1 -1
- package/dist/dns/doh-resolver.js +46 -47
- package/dist/dns/doh-resolver.js.map +1 -1
- 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 +19 -30
- package/dist/dns/https-rr.d.ts.map +1 -1
- package/dist/dns/https-rr.js +22 -40
- package/dist/dns/https-rr.js.map +1 -1
- package/dist/dns/types.d.ts +31 -59
- package/dist/dns/types.d.ts.map +1 -1
- package/dist/dns/types.js +3 -14
- package/dist/dns/types.js.map +1 -1
- 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 +19 -21
- package/dist/hsts/store.d.ts.map +1 -1
- package/dist/hsts/store.js +20 -28
- package/dist/hsts/store.js.map +1 -1
- package/dist/hsts/types.d.ts +10 -14
- package/dist/hsts/types.d.ts.map +1 -1
- package/dist/http/alt-svc.d.ts +31 -49
- package/dist/http/alt-svc.d.ts.map +1 -1
- package/dist/http/alt-svc.js +21 -55
- package/dist/http/alt-svc.js.map +1 -1
- 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 +14 -23
- 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 +5 -7
- package/dist/http/h3/detection.d.ts.map +1 -1
- package/dist/http/h3/detection.js +5 -23
- package/dist/http/h3/detection.js.map +1 -1
- package/dist/http/negotiator.d.ts +25 -38
- package/dist/http/negotiator.d.ts.map +1 -1
- package/dist/http/negotiator.js +16 -28
- package/dist/http/negotiator.js.map +1 -1
- package/dist/http/pool.d.ts +32 -62
- 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 +21 -8
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +21 -2
- 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 +11 -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 +5 -15
- package/dist/proxy/env-proxy.d.ts.map +1 -1
- package/dist/proxy/env-proxy.js +5 -23
- package/dist/proxy/env-proxy.js.map +1 -1
- package/dist/proxy/http-proxy.d.ts +12 -19
- package/dist/proxy/http-proxy.d.ts.map +1 -1
- package/dist/proxy/http-proxy.js +5 -8
- 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 +5 -8
- package/dist/proxy/socks.js.map +1 -1
- package/dist/sse/parser.d.ts +14 -37
- package/dist/sse/parser.d.ts.map +1 -1
- package/dist/sse/parser.js +14 -28
- package/dist/sse/parser.js.map +1 -1
- 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 +68 -85
- package/dist/tls/ech.d.ts.map +1 -1
- package/dist/tls/ech.js +54 -102
- package/dist/tls/ech.js.map +1 -1
- 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 +10 -17
- package/dist/tls/node-engine.d.ts.map +1 -1
- package/dist/tls/node-engine.js +20 -18
- 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 +5 -4
- package/dist/tls/pin-verification.d.ts.map +1 -1
- package/dist/tls/pin-verification.js +5 -11
- package/dist/tls/pin-verification.js.map +1 -1
- package/dist/tls/session-cache.d.ts +27 -39
- package/dist/tls/session-cache.d.ts.map +1 -1
- package/dist/tls/session-cache.js +20 -24
- package/dist/tls/session-cache.js.map +1 -1
- package/dist/tls/stealth/client-hello.d.ts +25 -44
- package/dist/tls/stealth/client-hello.d.ts.map +1 -1
- package/dist/tls/stealth/client-hello.js +17 -28
- 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 +11 -17
- package/dist/tls/stealth/engine.js.map +1 -1
- package/dist/tls/stealth/handshake.d.ts +21 -31
- package/dist/tls/stealth/handshake.d.ts.map +1 -1
- package/dist/tls/stealth/handshake.js +15 -43
- 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 +16 -0
- package/dist/tls/stealth/tls12-handshake.d.ts.map +1 -1
- package/dist/tls/stealth/tls12-handshake.js +8 -0
- package/dist/tls/stealth/tls12-handshake.js.map +1 -1
- package/dist/tls/types.d.ts +42 -60
- 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 -30
- package/dist/utils/encoding.d.ts.map +1 -1
- package/dist/utils/encoding.js +15 -46
- package/dist/utils/encoding.js.map +1 -1
- package/dist/utils/happy-eyeballs.d.ts +18 -8
- package/dist/utils/happy-eyeballs.d.ts.map +1 -1
- package/dist/utils/happy-eyeballs.js +19 -27
- 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 +33 -53
- package/dist/ws/client.d.ts.map +1 -1
- package/dist/ws/client.js +29 -30
- package/dist/ws/client.js.map +1 -1
- package/dist/ws/frame.d.ts +24 -41
- package/dist/ws/frame.d.ts.map +1 -1
- package/dist/ws/frame.js +18 -33
- package/dist/ws/frame.js.map +1 -1
- package/dist/ws/permessage-deflate.d.ts +23 -28
- package/dist/ws/permessage-deflate.d.ts.map +1 -1
- package/dist/ws/permessage-deflate.js +18 -26
- package/dist/ws/permessage-deflate.js.map +1 -1
- package/package.json +62 -62
package/dist/utils/encoding.js
CHANGED
|
@@ -6,22 +6,9 @@ const inflateAsync = promisify(zlib.inflate);
|
|
|
6
6
|
const brotliDecompressAsync = promisify(zlib.brotliDecompress);
|
|
7
7
|
const _zstdFn = zlib["zstdDecompress"];
|
|
8
8
|
const zstdDecompressAsync = typeof _zstdFn === "function" ? promisify(_zstdFn) : null;
|
|
9
|
-
/**
|
|
10
|
-
* `true` when the current Node.js runtime provides native Zstandard
|
|
11
|
-
* decompression support (`zlib.zstdDecompress`). `false` on older Node.js
|
|
12
|
-
* versions that lack the API.
|
|
13
|
-
*/
|
|
9
|
+
/** Whether the current Node.js build supports zstd decompression. */
|
|
14
10
|
export const supportsZstd = zstdDecompressAsync !== null;
|
|
15
|
-
/**
|
|
16
|
-
* Maximum number of Content-Encoding layers permitted. Prevents
|
|
17
|
-
* decompression bomb attacks that nest many encoding layers to cause
|
|
18
|
-
* exponential memory/CPU usage. Matches undici's limit.
|
|
19
|
-
*/
|
|
20
11
|
const MAX_CONTENT_ENCODING_LAYERS = 5;
|
|
21
|
-
/**
|
|
22
|
-
* Parses a Content-Encoding header value into individual encoding tokens,
|
|
23
|
-
* filters out `identity`, and validates the layer count.
|
|
24
|
-
*/
|
|
25
12
|
function parseEncodings(contentEncoding) {
|
|
26
13
|
const encodings = contentEncoding
|
|
27
14
|
.split(",")
|
|
@@ -32,9 +19,6 @@ function parseEncodings(contentEncoding) {
|
|
|
32
19
|
}
|
|
33
20
|
return encodings;
|
|
34
21
|
}
|
|
35
|
-
/**
|
|
36
|
-
* Decompresses a single buffer using the specified encoding algorithm.
|
|
37
|
-
*/
|
|
38
22
|
async function decompressSingle(body, encoding) {
|
|
39
23
|
switch (encoding) {
|
|
40
24
|
case "gzip":
|
|
@@ -54,14 +38,11 @@ async function decompressSingle(body, encoding) {
|
|
|
54
38
|
}
|
|
55
39
|
}
|
|
56
40
|
/**
|
|
57
|
-
*
|
|
58
|
-
* Content-Encoding layers (e.g. `"gzip, br"`). Layers are applied in
|
|
59
|
-
* reverse order per RFC 9110 §8.4. Throws if the number of layers
|
|
60
|
-
* exceeds {@link MAX_CONTENT_ENCODING_LAYERS}.
|
|
41
|
+
* Decompress a response body according to `Content-Encoding` layers.
|
|
61
42
|
*
|
|
62
|
-
* @param {Buffer}
|
|
63
|
-
* @param {string | undefined} contentEncoding -
|
|
64
|
-
* @returns {Promise<Buffer>} Decompressed
|
|
43
|
+
* @param {Buffer} body - Compressed body bytes.
|
|
44
|
+
* @param {string | undefined} contentEncoding - Comma-separated encoding list.
|
|
45
|
+
* @returns {Promise<Buffer>} Decompressed buffer.
|
|
65
46
|
*/
|
|
66
47
|
export async function decompressBody(body, contentEncoding) {
|
|
67
48
|
if (!contentEncoding || body.length === 0)
|
|
@@ -75,9 +56,6 @@ export async function decompressBody(body, contentEncoding) {
|
|
|
75
56
|
}
|
|
76
57
|
return result;
|
|
77
58
|
}
|
|
78
|
-
/**
|
|
79
|
-
* Creates a decompressor Transform for a single encoding algorithm.
|
|
80
|
-
*/
|
|
81
59
|
function createSingleDecompressStream(encoding) {
|
|
82
60
|
switch (encoding) {
|
|
83
61
|
case "gzip":
|
|
@@ -99,14 +77,10 @@ function createSingleDecompressStream(encoding) {
|
|
|
99
77
|
}
|
|
100
78
|
}
|
|
101
79
|
/**
|
|
102
|
-
*
|
|
103
|
-
* using the algorithm(s) indicated by `contentEncoding`. Supports multiple
|
|
104
|
-
* comma-separated encodings (e.g. `"gzip, br"`). Returns `null` when no
|
|
105
|
-
* transform is needed. Throws if the number of encoding layers exceeds
|
|
106
|
-
* {@link MAX_CONTENT_ENCODING_LAYERS}.
|
|
80
|
+
* Create a streaming decompressor for the given `Content-Encoding`.
|
|
107
81
|
*
|
|
108
|
-
* @param {string | undefined} contentEncoding -
|
|
109
|
-
* @returns {Transform | null}
|
|
82
|
+
* @param {string | undefined} contentEncoding - Comma-separated encoding list.
|
|
83
|
+
* @returns {Transform | null} Transform stream, or `null` if no decompression is needed.
|
|
110
84
|
*/
|
|
111
85
|
export function createDecompressStream(contentEncoding) {
|
|
112
86
|
if (!contentEncoding)
|
|
@@ -138,29 +112,24 @@ export function createDecompressStream(contentEncoding) {
|
|
|
138
112
|
},
|
|
139
113
|
flush(callback) {
|
|
140
114
|
first.end();
|
|
141
|
-
last.once("end", () =>
|
|
115
|
+
last.once("end", () => {
|
|
116
|
+
callback();
|
|
117
|
+
});
|
|
142
118
|
},
|
|
143
119
|
});
|
|
144
120
|
last.on("data", (chunk) => compound.push(chunk));
|
|
145
121
|
last.on("error", (err) => compound.destroy(err));
|
|
146
122
|
return compound;
|
|
147
123
|
}
|
|
148
|
-
/**
|
|
149
|
-
* Returns the default `Accept-Encoding` header value supported by this
|
|
150
|
-
* Node.js runtime. Includes `zstd` when Zstandard is available.
|
|
151
|
-
*
|
|
152
|
-
* @returns {string} E.g. `"gzip, deflate, br, zstd"` or `"gzip, deflate, br"`.
|
|
153
|
-
*/
|
|
124
|
+
/** Return the default `Accept-Encoding` header value for this runtime. */
|
|
154
125
|
export function defaultAcceptEncoding() {
|
|
155
126
|
return supportsZstd ? "gzip, deflate, br, zstd" : "gzip, deflate, br";
|
|
156
127
|
}
|
|
157
128
|
/**
|
|
158
|
-
*
|
|
159
|
-
* current runtime does not support Zstandard decompression. Otherwise returns
|
|
160
|
-
* the value unchanged.
|
|
129
|
+
* Strip unsupported encodings (e.g. `zstd`) from an `Accept-Encoding` value.
|
|
161
130
|
*
|
|
162
|
-
* @param {string} value -
|
|
163
|
-
* @returns {string} Sanitized
|
|
131
|
+
* @param {string} value - Original `Accept-Encoding` header value.
|
|
132
|
+
* @returns {string} Sanitized header value.
|
|
164
133
|
*/
|
|
165
134
|
export function sanitizeAcceptEncoding(value) {
|
|
166
135
|
if (supportsZstd)
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"encoding.js","sourceRoot":"","sources":["../../src/utils/encoding.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,IAAI,MAAM,WAAW,CAAC;AAClC,OAAO,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AACtC,OAAO,EAAE,SAAS,
|
|
1
|
+
{"version":3,"file":"encoding.js","sourceRoot":"","sources":["../../src/utils/encoding.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,29 +1,39 @@
|
|
|
1
1
|
import * as net from "node:net";
|
|
2
2
|
import type { DoHResolver } from "../dns/doh-resolver.js";
|
|
3
|
+
/** Options for the Happy Eyeballs (RFC 8305) connection algorithm. */
|
|
3
4
|
export interface HappyEyeballsOptions {
|
|
5
|
+
/** Destination hostname or IP address. */
|
|
4
6
|
host: string;
|
|
7
|
+
/** Destination port. */
|
|
5
8
|
port: number;
|
|
9
|
+
/** Restrict connections to IPv4 (`4`) or IPv6 (`6`). */
|
|
6
10
|
family?: 4 | 6;
|
|
11
|
+
/** Overall connection timeout in milliseconds. */
|
|
7
12
|
timeout?: number;
|
|
13
|
+
/** Abort signal to cancel the connection attempt. */
|
|
8
14
|
signal?: AbortSignal;
|
|
9
|
-
/**
|
|
15
|
+
/** DNS-over-HTTPS resolver to use instead of system DNS. */
|
|
10
16
|
dohResolver?: DoHResolver;
|
|
11
17
|
}
|
|
18
|
+
/** Outcome of a Happy Eyeballs connection attempt. */
|
|
12
19
|
export interface HappyEyeballsResult {
|
|
20
|
+
/** Connected TCP socket. */
|
|
13
21
|
socket: net.Socket;
|
|
22
|
+
/** Resolved IP address that was connected to. */
|
|
14
23
|
address: string;
|
|
24
|
+
/** IP address family of the connected socket. */
|
|
15
25
|
family: number;
|
|
26
|
+
/** Time spent on DNS resolution in milliseconds. */
|
|
16
27
|
dnsTimeMs: number;
|
|
17
28
|
}
|
|
18
29
|
/**
|
|
19
|
-
*
|
|
30
|
+
* Connect to a host using the Happy Eyeballs algorithm (RFC 8305).
|
|
20
31
|
*
|
|
21
|
-
*
|
|
22
|
-
*
|
|
23
|
-
*
|
|
24
|
-
*
|
|
25
|
-
*
|
|
26
|
-
* 5. Returns the first socket that connects; destroys all others.
|
|
32
|
+
* Races IPv6 and IPv4 connection attempts with a staggered delay
|
|
33
|
+
* for fast fallback.
|
|
34
|
+
*
|
|
35
|
+
* @param {HappyEyeballsOptions} options - Connection options.
|
|
36
|
+
* @returns {Promise<HappyEyeballsResult>} Connected socket and connection metadata.
|
|
27
37
|
*/
|
|
28
38
|
export declare function happyEyeballsConnect(options: HappyEyeballsOptions): Promise<HappyEyeballsResult>;
|
|
29
39
|
//# sourceMappingURL=happy-eyeballs.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"happy-eyeballs.d.ts","sourceRoot":"","sources":["../../src/utils/happy-eyeballs.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,GAAG,MAAM,UAAU,CAAC;AAEhC,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;
|
|
1
|
+
{"version":3,"file":"happy-eyeballs.d.ts","sourceRoot":"","sources":["../../src/utils/happy-eyeballs.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,GAAG,MAAM,UAAU,CAAC;AAEhC,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AAW1D,sEAAsE;AACtE,MAAM,WAAW,oBAAoB;IACnC,0CAA0C;IAC1C,IAAI,EAAE,MAAM,CAAC;IACb,wBAAwB;IACxB,IAAI,EAAE,MAAM,CAAC;IACb,wDAAwD;IACxD,MAAM,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC;IACf,kDAAkD;IAClD,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,qDAAqD;IACrD,MAAM,CAAC,EAAE,WAAW,CAAC;IACrB,4DAA4D;IAC5D,WAAW,CAAC,EAAE,WAAW,CAAC;CAC3B;AAED,sDAAsD;AACtD,MAAM,WAAW,mBAAmB;IAClC,4BAA4B;IAC5B,MAAM,EAAE,GAAG,CAAC,MAAM,CAAC;IACnB,iDAAiD;IACjD,OAAO,EAAE,MAAM,CAAC;IAChB,iDAAiD;IACjD,MAAM,EAAE,MAAM,CAAC;IACf,oDAAoD;IACpD,SAAS,EAAE,MAAM,CAAC;CACnB;AAED;;;;;;;;GAQG;AACH,wBAAsB,oBAAoB,CAAC,OAAO,EAAE,oBAAoB,GAAG,OAAO,CAAC,mBAAmB,CAAC,CA6BtG"}
|
|
@@ -2,17 +2,15 @@ import * as net from "node:net";
|
|
|
2
2
|
import { lookup } from "node:dns/promises";
|
|
3
3
|
import { parseARecord, parseAAAARecord } from "../dns/codec.js";
|
|
4
4
|
import { RTYPE } from "../dns/types.js";
|
|
5
|
-
/** Connection Attempt Delay per RFC 8305 §5 — 250 ms. */
|
|
6
5
|
const ATTEMPT_DELAY_MS = 250;
|
|
7
6
|
/**
|
|
8
|
-
*
|
|
7
|
+
* Connect to a host using the Happy Eyeballs algorithm (RFC 8305).
|
|
9
8
|
*
|
|
10
|
-
*
|
|
11
|
-
*
|
|
12
|
-
*
|
|
13
|
-
*
|
|
14
|
-
*
|
|
15
|
-
* 5. Returns the first socket that connects; destroys all others.
|
|
9
|
+
* Races IPv6 and IPv4 connection attempts with a staggered delay
|
|
10
|
+
* for fast fallback.
|
|
11
|
+
*
|
|
12
|
+
* @param {HappyEyeballsOptions} options - Connection options.
|
|
13
|
+
* @returns {Promise<HappyEyeballsResult>} Connected socket and connection metadata.
|
|
16
14
|
*/
|
|
17
15
|
export async function happyEyeballsConnect(options) {
|
|
18
16
|
const { host, port, family, timeout, signal, dohResolver } = options;
|
|
@@ -39,10 +37,6 @@ export async function happyEyeballsConnect(options) {
|
|
|
39
37
|
const result = await raceTcpConnections(sorted, port, timeout, signal);
|
|
40
38
|
return { socket: result.socket, address: result.address, family: result.family, dnsTimeMs };
|
|
41
39
|
}
|
|
42
|
-
/**
|
|
43
|
-
* Interleave IPv6 and IPv4 addresses per RFC 8305 §4.
|
|
44
|
-
* The first address family returned by the resolver leads.
|
|
45
|
-
*/
|
|
46
40
|
function interleaveAddressFamilies(addresses) {
|
|
47
41
|
const ipv6 = [];
|
|
48
42
|
const ipv4 = [];
|
|
@@ -67,11 +61,6 @@ function interleaveAddressFamilies(addresses) {
|
|
|
67
61
|
}
|
|
68
62
|
return out;
|
|
69
63
|
}
|
|
70
|
-
/**
|
|
71
|
-
* Race TCP connections across the sorted address list.
|
|
72
|
-
* Each new attempt starts after ATTEMPT_DELAY_MS or immediately after
|
|
73
|
-
* the previous attempt fails — whichever comes first.
|
|
74
|
-
*/
|
|
75
64
|
function raceTcpConnections(addresses, port, timeout, signal) {
|
|
76
65
|
if (addresses.length === 1) {
|
|
77
66
|
return singleConnect(addresses[0], port, timeout, signal);
|
|
@@ -112,7 +101,7 @@ function raceTcpConnections(addresses, port, timeout, signal) {
|
|
|
112
101
|
if (errors.length >= sockets.length && attemptIndex >= addresses.length) {
|
|
113
102
|
settled = true;
|
|
114
103
|
cleanup();
|
|
115
|
-
reject(errors[0]);
|
|
104
|
+
reject(errors[0] ?? new Error("All connection attempts failed"));
|
|
116
105
|
return;
|
|
117
106
|
}
|
|
118
107
|
if (attemptIndex < addresses.length) {
|
|
@@ -127,7 +116,9 @@ function raceTcpConnections(addresses, port, timeout, signal) {
|
|
|
127
116
|
const entry = addresses[attemptIndex++];
|
|
128
117
|
const socket = net.createConnection({ host: entry.address, port, family: entry.family });
|
|
129
118
|
sockets.push(socket);
|
|
130
|
-
socket.once("connect", () =>
|
|
119
|
+
socket.once("connect", () => {
|
|
120
|
+
onSettled(socket, entry.address, entry.family);
|
|
121
|
+
});
|
|
131
122
|
socket.once("error", onAttemptError);
|
|
132
123
|
if (attemptIndex < addresses.length) {
|
|
133
124
|
delayTimer = setTimeout(startNextAttempt, ATTEMPT_DELAY_MS);
|
|
@@ -162,7 +153,6 @@ function raceTcpConnections(addresses, port, timeout, signal) {
|
|
|
162
153
|
startNextAttempt();
|
|
163
154
|
});
|
|
164
155
|
}
|
|
165
|
-
/** Direct single-address connect, used when there is only one candidate. */
|
|
166
156
|
function singleConnect(entry, port, timeout, signal) {
|
|
167
157
|
return new Promise((resolve, reject) => {
|
|
168
158
|
let settled = false;
|
|
@@ -199,17 +189,19 @@ function singleConnect(entry, port, timeout, signal) {
|
|
|
199
189
|
reject(new Error("Connection aborted"));
|
|
200
190
|
return;
|
|
201
191
|
}
|
|
202
|
-
abortHandler = () =>
|
|
192
|
+
abortHandler = () => {
|
|
193
|
+
finish(new Error("Connection aborted"));
|
|
194
|
+
};
|
|
203
195
|
signal.addEventListener("abort", abortHandler, { once: true });
|
|
204
196
|
}
|
|
205
|
-
socket.once("connect", () =>
|
|
206
|
-
|
|
197
|
+
socket.once("connect", () => {
|
|
198
|
+
finish();
|
|
199
|
+
});
|
|
200
|
+
socket.once("error", (err) => {
|
|
201
|
+
finish(err);
|
|
202
|
+
});
|
|
207
203
|
});
|
|
208
204
|
}
|
|
209
|
-
/**
|
|
210
|
-
* Resolves addresses using DoH (DNS-over-HTTPS) for encrypted DNS resolution.
|
|
211
|
-
* Falls back to system DNS if DoH fails.
|
|
212
|
-
*/
|
|
213
205
|
async function resolveWithDoH(resolver, host, family, signal) {
|
|
214
206
|
const results = [];
|
|
215
207
|
try {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"happy-eyeballs.js","sourceRoot":"","sources":["../../src/utils/happy-eyeballs.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,GAAG,MAAM,UAAU,CAAC;AAChC,OAAO,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAE3C,OAAO,EAAE,YAAY,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAChE,OAAO,EAAE,KAAK,EAAE,MAAM,iBAAiB,CAAC;AAOxC,
|
|
1
|
+
{"version":3,"file":"happy-eyeballs.js","sourceRoot":"","sources":["../../src/utils/happy-eyeballs.ts"],"names":[],"mappings":"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"}
|
package/dist/utils/logger.d.ts
CHANGED
|
@@ -1,124 +1,97 @@
|
|
|
1
|
-
/**
|
|
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
|
|
6
|
-
*/
|
|
1
|
+
/** Severity levels for log output. */
|
|
7
2
|
export type LogLevel = "debug" | "info" | "warn" | "error" | "silent";
|
|
8
|
-
/**
|
|
9
|
-
* Key-value metadata attached to every log entry produced by a child logger.
|
|
10
|
-
* Bindings are inherited from parent to child, allowing nested scoping.
|
|
11
|
-
*
|
|
12
|
-
* @typedef {Record<string, unknown>} LogBindings
|
|
13
|
-
*/
|
|
3
|
+
/** Structured key-value bindings attached to log messages. */
|
|
14
4
|
export type LogBindings = Record<string, unknown>;
|
|
15
|
-
/**
|
|
16
|
-
* Minimal logger interface consumed throughout the library. Implementations
|
|
17
|
-
* must provide four severity methods; all parameters follow `console.log`
|
|
18
|
-
* semantics (a primary message string followed by optional extra values).
|
|
19
|
-
*/
|
|
5
|
+
/** Minimal structured logging interface. */
|
|
20
6
|
export interface Logger {
|
|
21
|
-
/**
|
|
7
|
+
/** Emit a debug-level message. */
|
|
22
8
|
debug(message: string, ...args: unknown[]): void;
|
|
23
|
-
/**
|
|
9
|
+
/** Emit an info-level message. */
|
|
24
10
|
info(message: string, ...args: unknown[]): void;
|
|
25
|
-
/**
|
|
11
|
+
/** Emit a warning-level message. */
|
|
26
12
|
warn(message: string, ...args: unknown[]): void;
|
|
27
|
-
/**
|
|
13
|
+
/** Emit an error-level message. */
|
|
28
14
|
error(message: string, ...args: unknown[]): void;
|
|
29
15
|
}
|
|
30
|
-
/**
|
|
31
|
-
* Default {@link Logger} implementation that writes to `process.stderr`.
|
|
32
|
-
* Messages are prefixed with `[nlcurl:<level>]` and only emitted when the
|
|
33
|
-
* message severity meets or exceeds the configured `level`.
|
|
34
|
-
*
|
|
35
|
-
* Supports scoped child loggers via {@link ConsoleLogger.child}, which
|
|
36
|
-
* prepend a component tag to every message for easy filtering.
|
|
37
|
-
*/
|
|
16
|
+
/** Logger implementation that writes to `stderr` with level filtering. */
|
|
38
17
|
export declare class ConsoleLogger implements Logger {
|
|
39
18
|
private level;
|
|
40
19
|
private readonly prefix;
|
|
41
20
|
private readonly bindings;
|
|
42
21
|
/**
|
|
43
|
-
*
|
|
22
|
+
* Create a console logger.
|
|
44
23
|
*
|
|
45
|
-
* @param {LogLevel}
|
|
46
|
-
* @param {string}
|
|
47
|
-
* @param {LogBindings}
|
|
24
|
+
* @param {LogLevel} level - Minimum severity to output.
|
|
25
|
+
* @param {string} prefix - Namespace prefix for log lines.
|
|
26
|
+
* @param {LogBindings} bindings - Structured context fields.
|
|
48
27
|
*/
|
|
49
28
|
constructor(level?: LogLevel, prefix?: string, bindings?: LogBindings);
|
|
50
29
|
/**
|
|
51
|
-
*
|
|
52
|
-
* an additional component tag to every message. Bindings from the parent
|
|
53
|
-
* are merged with the child's bindings (child values win on conflict).
|
|
54
|
-
*
|
|
55
|
-
* @param {LogBindings} bindings - Additional metadata for the child scope.
|
|
56
|
-
* @returns {ConsoleLogger} A new scoped logger instance.
|
|
30
|
+
* Create a child logger with additional bindings.
|
|
57
31
|
*
|
|
58
|
-
* @
|
|
59
|
-
*
|
|
60
|
-
* const child = logger.child({ component: 'h2' });
|
|
61
|
-
* child.debug('stream opened', { streamId: 1 });
|
|
32
|
+
* @param {LogBindings} bindings - Extra structured context fields.
|
|
33
|
+
* @returns {ConsoleLogger} New child `ConsoleLogger`.
|
|
62
34
|
*/
|
|
63
35
|
child(bindings: LogBindings): ConsoleLogger;
|
|
64
36
|
/**
|
|
65
|
-
*
|
|
66
|
-
* logger instance.
|
|
37
|
+
* Change the minimum log level at runtime.
|
|
67
38
|
*
|
|
68
|
-
* @param {LogLevel} level - New
|
|
39
|
+
* @param {LogLevel} level - New severity threshold.
|
|
69
40
|
*/
|
|
70
41
|
setLevel(level: LogLevel): void;
|
|
71
|
-
/**
|
|
72
|
-
* Emits a debug-level message to `stderr` -- only written when the
|
|
73
|
-
* configured minimum level is `'debug'`.
|
|
74
|
-
*
|
|
75
|
-
* @param {string} message - Primary log message.
|
|
76
|
-
* @param {...unknown} args - Additional values appended after the message.
|
|
77
|
-
*/
|
|
42
|
+
/** Log a debug-level message. */
|
|
78
43
|
debug(message: string, ...args: unknown[]): void;
|
|
44
|
+
/** Log an info-level message. */
|
|
45
|
+
info(message: string, ...args: unknown[]): void;
|
|
46
|
+
/** Log a warning-level message. */
|
|
47
|
+
warn(message: string, ...args: unknown[]): void;
|
|
48
|
+
/** Log an error-level message. */
|
|
49
|
+
error(message: string, ...args: unknown[]): void;
|
|
50
|
+
private write;
|
|
51
|
+
private formatArgs;
|
|
52
|
+
private resolveLevel;
|
|
53
|
+
}
|
|
54
|
+
/** Singleton no-op logger that discards all messages. */
|
|
55
|
+
export declare const SILENT_LOGGER: Logger;
|
|
56
|
+
/** Logger implementation that writes structured JSON to `stderr` with level filtering. */
|
|
57
|
+
export declare class JsonLogger implements Logger {
|
|
58
|
+
private level;
|
|
59
|
+
private readonly service;
|
|
60
|
+
private readonly bindings;
|
|
79
61
|
/**
|
|
80
|
-
*
|
|
81
|
-
* configured minimum level is `'debug'` or `'info'`.
|
|
62
|
+
* Create a JSON logger.
|
|
82
63
|
*
|
|
83
|
-
* @param {
|
|
84
|
-
* @param {
|
|
64
|
+
* @param {LogLevel} level - Minimum severity to output.
|
|
65
|
+
* @param {string} service - Service name included in every log entry.
|
|
66
|
+
* @param {LogBindings} bindings - Structured context fields.
|
|
85
67
|
*/
|
|
86
|
-
|
|
68
|
+
constructor(level?: LogLevel, service?: string, bindings?: LogBindings);
|
|
87
69
|
/**
|
|
88
|
-
*
|
|
89
|
-
* configured minimum level is `'debug'`, `'info'`, or `'warn'`.
|
|
70
|
+
* Create a child JSON logger with additional bindings.
|
|
90
71
|
*
|
|
91
|
-
* @param {
|
|
92
|
-
* @
|
|
72
|
+
* @param {LogBindings} bindings - Extra structured context fields.
|
|
73
|
+
* @returns {JsonLogger} New child `JsonLogger`.
|
|
93
74
|
*/
|
|
94
|
-
|
|
75
|
+
child(bindings: LogBindings): JsonLogger;
|
|
95
76
|
/**
|
|
96
|
-
*
|
|
97
|
-
* configured minimum level is not `'silent'`.
|
|
77
|
+
* Change the minimum log level at runtime.
|
|
98
78
|
*
|
|
99
|
-
* @param {
|
|
100
|
-
* @param {...unknown} args - Additional values appended after the message.
|
|
79
|
+
* @param {LogLevel} level - New severity threshold.
|
|
101
80
|
*/
|
|
81
|
+
setLevel(level: LogLevel): void;
|
|
82
|
+
debug(message: string, ...args: unknown[]): void;
|
|
83
|
+
info(message: string, ...args: unknown[]): void;
|
|
84
|
+
warn(message: string, ...args: unknown[]): void;
|
|
102
85
|
error(message: string, ...args: unknown[]): void;
|
|
103
|
-
private
|
|
104
|
-
private formatArgs;
|
|
86
|
+
private emit;
|
|
105
87
|
private resolveLevel;
|
|
106
88
|
}
|
|
107
89
|
/**
|
|
108
|
-
*
|
|
109
|
-
* {@link setDefaultLogger} to silence the library entirely.
|
|
110
|
-
*/
|
|
111
|
-
export declare const SILENT_LOGGER: Logger;
|
|
112
|
-
/**
|
|
113
|
-
* Replaces the process-wide default logger used by all NLcURL internals.
|
|
90
|
+
* Set the process-wide default logger.
|
|
114
91
|
*
|
|
115
|
-
* @param {Logger} logger -
|
|
92
|
+
* @param {Logger} logger - Logger instance to use as the default.
|
|
116
93
|
*/
|
|
117
94
|
export declare function setDefaultLogger(logger: Logger): void;
|
|
118
|
-
/**
|
|
119
|
-
* Returns the currently active process-wide logger.
|
|
120
|
-
*
|
|
121
|
-
* @returns {Logger} The active logger instance.
|
|
122
|
-
*/
|
|
95
|
+
/** Return the current process-wide default logger. */
|
|
123
96
|
export declare function getDefaultLogger(): Logger;
|
|
124
97
|
//# sourceMappingURL=logger.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"logger.d.ts","sourceRoot":"","sources":["../../src/utils/logger.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"logger.d.ts","sourceRoot":"","sources":["../../src/utils/logger.ts"],"names":[],"mappings":"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"}
|