nlcurl 0.7.0 → 0.9.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 +149 -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 +75 -37
- package/dist/cache/store.d.ts.map +1 -1
- package/dist/cache/store.js +217 -85
- package/dist/cache/store.js.map +1 -1
- package/dist/cache/types.d.ts +10 -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 +41 -40
- package/dist/cookies/jar.d.ts.map +1 -1
- package/dist/cookies/jar.js +65 -42
- 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 +23 -15
- 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 +61 -0
- package/dist/core/auth.d.ts.map +1 -0
- package/dist/core/auth.js +159 -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 +33 -113
- 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 +136 -77
- package/dist/core/session.js.map +1 -1
- package/dist/core/validation.d.ts +58 -43
- package/dist/core/validation.d.ts.map +1 -1
- package/dist/core/validation.js +141 -56
- package/dist/core/validation.js.map +1 -1
- package/dist/dns/cache.d.ts +65 -0
- package/dist/dns/cache.d.ts.map +1 -0
- package/dist/dns/cache.js +119 -0
- package/dist/dns/cache.js.map +1 -0
- package/dist/dns/codec.d.ts +29 -19
- package/dist/dns/codec.d.ts.map +1 -1
- package/dist/dns/codec.js +73 -39
- 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 +47 -48
- 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 +166 -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 +81 -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 +27 -52
- package/dist/http/alt-svc.d.ts.map +1 -1
- package/dist/http/alt-svc.js +17 -67
- 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 +21 -17
- package/dist/http/h1/encoder.d.ts.map +1 -1
- package/dist/http/h1/encoder.js +56 -20
- package/dist/http/h1/encoder.js.map +1 -1
- package/dist/http/h1/parser.d.ts +23 -59
- package/dist/http/h1/parser.d.ts.map +1 -1
- package/dist/http/h1/parser.js +61 -55
- package/dist/http/h1/parser.js.map +1 -1
- package/dist/http/h2/client.d.ts +23 -59
- package/dist/http/h2/client.d.ts.map +1 -1
- package/dist/http/h2/client.js +107 -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 +20 -36
- package/dist/http/h2/hpack.d.ts.map +1 -1
- package/dist/http/h2/hpack.js +41 -36
- package/dist/http/h2/hpack.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 +17 -38
- 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 +24 -9
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +24 -3
- package/dist/index.js.map +1 -1
- package/dist/middleware/circuit-breaker.d.ts +44 -0
- package/dist/middleware/circuit-breaker.d.ts.map +1 -0
- package/dist/middleware/circuit-breaker.js +96 -0
- package/dist/middleware/circuit-breaker.js.map +1 -0
- 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 +129 -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 +8 -10
- package/dist/proxy/socks.js.map +1 -1
- package/dist/sse/parser.d.ts +16 -37
- package/dist/sse/parser.d.ts.map +1 -1
- package/dist/sse/parser.js +31 -28
- package/dist/sse/parser.js.map +1 -1
- package/dist/tls/constants.d.ts +21 -72
- package/dist/tls/constants.d.ts.map +1 -1
- package/dist/tls/constants.js +21 -72
- 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 +41 -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 +26 -45
- package/dist/tls/stealth/client-hello.d.ts.map +1 -1
- package/dist/tls/stealth/client-hello.js +15 -31
- package/dist/tls/stealth/client-hello.js.map +1 -1
- package/dist/tls/stealth/engine.d.ts +10 -15
- package/dist/tls/stealth/engine.d.ts.map +1 -1
- package/dist/tls/stealth/engine.js +98 -18
- package/dist/tls/stealth/engine.js.map +1 -1
- package/dist/tls/stealth/handshake.d.ts +32 -31
- package/dist/tls/stealth/handshake.d.ts.map +1 -1
- package/dist/tls/stealth/handshake.js +74 -47
- package/dist/tls/stealth/handshake.js.map +1 -1
- package/dist/tls/stealth/key-schedule.d.ts +81 -86
- package/dist/tls/stealth/key-schedule.d.ts.map +1 -1
- package/dist/tls/stealth/key-schedule.js +70 -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 +10 -2
- package/dist/tls/stealth/tls12-handshake.js.map +1 -1
- package/dist/tls/types.d.ts +46 -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 +35 -53
- package/dist/ws/client.d.ts.map +1 -1
- package/dist/ws/client.js +96 -38
- 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 +26 -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 +2 -2
- package/dist/http/h3/detection.d.ts +0 -17
- package/dist/http/h3/detection.d.ts.map +0 -1
- package/dist/http/h3/detection.js +0 -59
- package/dist/http/h3/detection.js.map +0 -1
package/dist/proxy/socks.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"socks.js","sourceRoot":"","sources":["../../src/proxy/socks.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,GAAG,MAAM,UAAU,CAAC;AAChC,OAAO,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;
|
|
1
|
+
{"version":3,"file":"socks.js","sourceRoot":"","sources":["../../src/proxy/socks.ts"],"names":[],"mappings":"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"}
|
package/dist/sse/parser.d.ts
CHANGED
|
@@ -1,26 +1,14 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Server-Sent Events (SSE) parser following the W3C EventSource specification.
|
|
3
|
-
*
|
|
4
|
-
* Provides both a streaming `SSEParser` class for incremental parsing and a
|
|
5
|
-
* convenience `parseSSEStream()` async generator for consuming a `Readable`
|
|
6
|
-
* stream of SSE events.
|
|
7
|
-
*
|
|
8
|
-
* @see https://html.spec.whatwg.org/multipage/server-sent-events.html#event-stream-interpretation
|
|
9
|
-
*/
|
|
10
1
|
import type { Readable } from "node:stream";
|
|
11
2
|
import type { ServerSentEvent } from "../core/request.js";
|
|
12
3
|
/**
|
|
13
|
-
* Incremental
|
|
14
|
-
* and retrieve complete events via {@link SSEParser.pull}.
|
|
4
|
+
* Incremental parser for the Server-Sent Events stream format.
|
|
15
5
|
*
|
|
16
|
-
*
|
|
17
|
-
*
|
|
18
|
-
*
|
|
6
|
+
* Feed chunks of text with {@link feed}, then pull discrete events
|
|
7
|
+
* with {@link pull}. Call {@link flush} after the stream closes to
|
|
8
|
+
* emit any buffered partial event.
|
|
19
9
|
*/
|
|
20
10
|
export declare class SSEParser {
|
|
21
|
-
/** Maximum allowed length for a single buffered line (64 KB). */
|
|
22
11
|
private static readonly MAX_LINE_LENGTH;
|
|
23
|
-
/** Maximum allowed total size of accumulated data lines per event (1 MB). */
|
|
24
12
|
private static readonly MAX_EVENT_SIZE;
|
|
25
13
|
private buffer;
|
|
26
14
|
private eventType;
|
|
@@ -29,42 +17,33 @@ export declare class SSEParser {
|
|
|
29
17
|
private lastEventId;
|
|
30
18
|
private retry;
|
|
31
19
|
private readonly events;
|
|
20
|
+
private bomStripped;
|
|
21
|
+
private pendingCR;
|
|
32
22
|
/**
|
|
33
|
-
*
|
|
34
|
-
* a chunk of data is received. Complete events are buffered internally
|
|
35
|
-
* and retrieved via {@link pull}.
|
|
23
|
+
* Append raw text from the event stream and parse complete lines.
|
|
36
24
|
*
|
|
37
|
-
* @param {string} text -
|
|
25
|
+
* @param {string} text - Chunk of UTF-8 text from the response body.
|
|
38
26
|
*/
|
|
39
27
|
feed(text: string): void;
|
|
40
28
|
/**
|
|
41
|
-
*
|
|
42
|
-
* queue. Returns `null` when no complete events are available.
|
|
29
|
+
* Remove and return the next fully-parsed event from the queue.
|
|
43
30
|
*
|
|
44
|
-
* @returns {ServerSentEvent
|
|
31
|
+
* @returns {ServerSentEvent|null} The next {@link ServerSentEvent}, or `null` if the queue is empty.
|
|
45
32
|
*/
|
|
46
33
|
pull(): ServerSentEvent | null;
|
|
47
|
-
/**
|
|
48
|
-
* Flushes the parser, processing any remaining incomplete buffer as if
|
|
49
|
-
* the stream ended. Call after the stream closes to emit any pending event.
|
|
50
|
-
*/
|
|
34
|
+
/** Flush any remaining buffered data and dispatch a final event if present. */
|
|
51
35
|
flush(): void;
|
|
52
36
|
private processLine;
|
|
53
37
|
private dispatchEvent;
|
|
54
38
|
}
|
|
55
39
|
/**
|
|
56
|
-
*
|
|
57
|
-
* a `Readable` stream. Useful for consuming SSE responses from
|
|
58
|
-
* `NLcURLResponse.body` in streaming mode.
|
|
40
|
+
* Consume a readable stream as a Server-Sent Events source.
|
|
59
41
|
*
|
|
60
|
-
* @
|
|
61
|
-
*
|
|
42
|
+
* Yields individual {@link ServerSentEvent} objects as they are parsed
|
|
43
|
+
* from the stream in real time.
|
|
62
44
|
*
|
|
63
|
-
* @
|
|
64
|
-
*
|
|
65
|
-
* for await (const event of parseSSEStream(response.body!)) {
|
|
66
|
-
* console.log(event.event, event.data);
|
|
67
|
-
* }
|
|
45
|
+
* @param {Readable} stream - Readable stream carrying `text/event-stream` data.
|
|
46
|
+
* @returns {AsyncGenerator<ServerSentEvent>} Async generator of server-sent events.
|
|
68
47
|
*/
|
|
69
48
|
export declare function parseSSEStream(stream: Readable): AsyncGenerator<ServerSentEvent, void, undefined>;
|
|
70
49
|
//# sourceMappingURL=parser.d.ts.map
|
package/dist/sse/parser.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"parser.d.ts","sourceRoot":"","sources":["../../src/sse/parser.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"parser.d.ts","sourceRoot":"","sources":["../../src/sse/parser.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAE1D;;;;;;GAMG;AACH,qBAAa,SAAS;IACpB,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,eAAe,CAAU;IACjD,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,cAAc,CAAa;IAEnD,OAAO,CAAC,MAAM,CAAM;IACpB,OAAO,CAAC,SAAS,CAAM;IACvB,OAAO,CAAC,SAAS,CAAgB;IACjC,OAAO,CAAC,QAAQ,CAAK;IACrB,OAAO,CAAC,WAAW,CAAM;IACzB,OAAO,CAAC,KAAK,CAAiC;IAC9C,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAyB;IAChD,OAAO,CAAC,WAAW,CAAS;IAC5B,OAAO,CAAC,SAAS,CAAS;IAE1B;;;;OAIG;IACH,IAAI,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI;IAiCxB;;;;OAIG;IACH,IAAI,IAAI,eAAe,GAAG,IAAI;IAI9B,+EAA+E;IAC/E,KAAK,IAAI,IAAI;IAQb,OAAO,CAAC,WAAW;IAiDnB,OAAO,CAAC,aAAa;CAmBtB;AAED;;;;;;;;GAQG;AACH,wBAAuB,cAAc,CAAC,MAAM,EAAE,QAAQ,GAAG,cAAc,CAAC,eAAe,EAAE,IAAI,EAAE,SAAS,CAAC,CAiBxG"}
|
package/dist/sse/parser.js
CHANGED
|
@@ -1,15 +1,12 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* Incremental
|
|
3
|
-
* and retrieve complete events via {@link SSEParser.pull}.
|
|
2
|
+
* Incremental parser for the Server-Sent Events stream format.
|
|
4
3
|
*
|
|
5
|
-
*
|
|
6
|
-
*
|
|
7
|
-
*
|
|
4
|
+
* Feed chunks of text with {@link feed}, then pull discrete events
|
|
5
|
+
* with {@link pull}. Call {@link flush} after the stream closes to
|
|
6
|
+
* emit any buffered partial event.
|
|
8
7
|
*/
|
|
9
8
|
export class SSEParser {
|
|
10
|
-
/** Maximum allowed length for a single buffered line (64 KB). */
|
|
11
9
|
static MAX_LINE_LENGTH = 65_536;
|
|
12
|
-
/** Maximum allowed total size of accumulated data lines per event (1 MB). */
|
|
13
10
|
static MAX_EVENT_SIZE = 1_048_576;
|
|
14
11
|
buffer = "";
|
|
15
12
|
eventType = "";
|
|
@@ -18,14 +15,29 @@ export class SSEParser {
|
|
|
18
15
|
lastEventId = "";
|
|
19
16
|
retry = undefined;
|
|
20
17
|
events = [];
|
|
18
|
+
bomStripped = false;
|
|
19
|
+
pendingCR = false;
|
|
21
20
|
/**
|
|
22
|
-
*
|
|
23
|
-
* a chunk of data is received. Complete events are buffered internally
|
|
24
|
-
* and retrieved via {@link pull}.
|
|
21
|
+
* Append raw text from the event stream and parse complete lines.
|
|
25
22
|
*
|
|
26
|
-
* @param {string} text -
|
|
23
|
+
* @param {string} text - Chunk of UTF-8 text from the response body.
|
|
27
24
|
*/
|
|
28
25
|
feed(text) {
|
|
26
|
+
if (!this.bomStripped) {
|
|
27
|
+
this.bomStripped = true;
|
|
28
|
+
if (text.length > 0 && text.charCodeAt(0) === 0xfeff) {
|
|
29
|
+
text = text.substring(1);
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
if (this.pendingCR) {
|
|
33
|
+
this.pendingCR = false;
|
|
34
|
+
if (text.length > 0 && text[0] === "\n") {
|
|
35
|
+
text = text.substring(1);
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
if (text.length > 0 && text[text.length - 1] === "\r") {
|
|
39
|
+
this.pendingCR = true;
|
|
40
|
+
}
|
|
29
41
|
this.buffer += text;
|
|
30
42
|
if (this.buffer.length > SSEParser.MAX_LINE_LENGTH) {
|
|
31
43
|
throw new Error(`SSE line exceeds maximum length of ${SSEParser.MAX_LINE_LENGTH} bytes`);
|
|
@@ -37,18 +49,14 @@ export class SSEParser {
|
|
|
37
49
|
}
|
|
38
50
|
}
|
|
39
51
|
/**
|
|
40
|
-
*
|
|
41
|
-
* queue. Returns `null` when no complete events are available.
|
|
52
|
+
* Remove and return the next fully-parsed event from the queue.
|
|
42
53
|
*
|
|
43
|
-
* @returns {ServerSentEvent
|
|
54
|
+
* @returns {ServerSentEvent|null} The next {@link ServerSentEvent}, or `null` if the queue is empty.
|
|
44
55
|
*/
|
|
45
56
|
pull() {
|
|
46
57
|
return this.events.shift() ?? null;
|
|
47
58
|
}
|
|
48
|
-
/**
|
|
49
|
-
* Flushes the parser, processing any remaining incomplete buffer as if
|
|
50
|
-
* the stream ended. Call after the stream closes to emit any pending event.
|
|
51
|
-
*/
|
|
59
|
+
/** Flush any remaining buffered data and dispatch a final event if present. */
|
|
52
60
|
flush() {
|
|
53
61
|
if (this.buffer.length > 0) {
|
|
54
62
|
this.processLine(this.buffer);
|
|
@@ -121,18 +129,13 @@ export class SSEParser {
|
|
|
121
129
|
}
|
|
122
130
|
}
|
|
123
131
|
/**
|
|
124
|
-
*
|
|
125
|
-
* a `Readable` stream. Useful for consuming SSE responses from
|
|
126
|
-
* `NLcURLResponse.body` in streaming mode.
|
|
132
|
+
* Consume a readable stream as a Server-Sent Events source.
|
|
127
133
|
*
|
|
128
|
-
* @
|
|
129
|
-
*
|
|
134
|
+
* Yields individual {@link ServerSentEvent} objects as they are parsed
|
|
135
|
+
* from the stream in real time.
|
|
130
136
|
*
|
|
131
|
-
* @
|
|
132
|
-
*
|
|
133
|
-
* for await (const event of parseSSEStream(response.body!)) {
|
|
134
|
-
* console.log(event.event, event.data);
|
|
135
|
-
* }
|
|
137
|
+
* @param {Readable} stream - Readable stream carrying `text/event-stream` data.
|
|
138
|
+
* @returns {AsyncGenerator<ServerSentEvent>} Async generator of server-sent events.
|
|
136
139
|
*/
|
|
137
140
|
export async function* parseSSEStream(stream) {
|
|
138
141
|
const parser = new SSEParser();
|
package/dist/sse/parser.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"parser.js","sourceRoot":"","sources":["../../src/sse/parser.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"parser.js","sourceRoot":"","sources":["../../src/sse/parser.ts"],"names":[],"mappings":"AAGA;;;;;;GAMG;AACH,MAAM,OAAO,SAAS;IACZ,MAAM,CAAU,eAAe,GAAG,MAAM,CAAC;IACzC,MAAM,CAAU,cAAc,GAAG,SAAS,CAAC;IAE3C,MAAM,GAAG,EAAE,CAAC;IACZ,SAAS,GAAG,EAAE,CAAC;IACf,SAAS,GAAa,EAAE,CAAC;IACzB,QAAQ,GAAG,CAAC,CAAC;IACb,WAAW,GAAG,EAAE,CAAC;IACjB,KAAK,GAAuB,SAAS,CAAC;IAC7B,MAAM,GAAsB,EAAE,CAAC;IACxC,WAAW,GAAG,KAAK,CAAC;IACpB,SAAS,GAAG,KAAK,CAAC;IAE1B;;;;OAIG;IACH,IAAI,CAAC,IAAY;QACf,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC;YACtB,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;YACxB,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,IAAI,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,KAAK,MAAM,EAAE,CAAC;gBACrD,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;YAC3B,CAAC;QACH,CAAC;QAED,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;YACnB,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;YACvB,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,KAAK,IAAI,EAAE,CAAC;gBACxC,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;YAC3B,CAAC;QACH,CAAC;QAED,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,KAAK,IAAI,EAAE,CAAC;YACtD,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;QACxB,CAAC;QAED,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC;QAEpB,IAAI,IAAI,CAAC,MAAM,CAAC,MAAM,GAAG,SAAS,CAAC,eAAe,EAAE,CAAC;YACnD,MAAM,IAAI,KAAK,CAAC,sCAAsC,SAAS,CAAC,eAAe,QAAQ,CAAC,CAAC;QAC3F,CAAC;QAED,MAAM,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC;QAC9C,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC,GAAG,EAAG,CAAC;QAE3B,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;YACzB,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;QACzB,CAAC;IACH,CAAC;IAED;;;;OAIG;IACH,IAAI;QACF,OAAO,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,IAAI,IAAI,CAAC;IACrC,CAAC;IAED,+EAA+E;IAC/E,KAAK;QACH,IAAI,IAAI,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC3B,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;YAC9B,IAAI,CAAC,MAAM,GAAG,EAAE,CAAC;QACnB,CAAC;QACD,IAAI,CAAC,aAAa,EAAE,CAAC;IACvB,CAAC;IAEO,WAAW,CAAC,IAAY;QAC9B,IAAI,IAAI,KAAK,EAAE,EAAE,CAAC;YAChB,IAAI,CAAC,aAAa,EAAE,CAAC;YACrB,OAAO;QACT,CAAC;QAED,IAAI,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC;YAAE,OAAO;QAEjC,MAAM,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;QACnC,IAAI,KAAa,CAAC;QAClB,IAAI,KAAa,CAAC;QAElB,IAAI,QAAQ,KAAK,CAAC,CAAC,EAAE,CAAC;YACpB,KAAK,GAAG,IAAI,CAAC;YACb,KAAK,GAAG,EAAE,CAAC;QACb,CAAC;aAAM,CAAC;YACN,KAAK,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC;YACpC,KAAK,GAAG,IAAI,CAAC,SAAS,CAAC,QAAQ,GAAG,CAAC,CAAC,CAAC;YACrC,IAAI,KAAK,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;gBAC1B,KAAK,GAAG,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;YAC7B,CAAC;QACH,CAAC;QAED,QAAQ,KAAK,EAAE,CAAC;YACd,KAAK,OAAO;gBACV,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;gBACvB,MAAM;YACR,KAAK,MAAM;gBACT,IAAI,CAAC,QAAQ,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC;gBAClC,IAAI,IAAI,CAAC,QAAQ,GAAG,SAAS,CAAC,cAAc,EAAE,CAAC;oBAC7C,MAAM,IAAI,KAAK,CAAC,0CAA0C,SAAS,CAAC,cAAc,QAAQ,CAAC,CAAC;gBAC9F,CAAC;gBACD,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;gBAC3B,MAAM;YACR,KAAK,IAAI;gBACP,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;oBAC1B,IAAI,CAAC,WAAW,GAAG,KAAK,CAAC;gBAC3B,CAAC;gBACD,MAAM;YACR,KAAK,OAAO,CAAC,CAAC,CAAC;gBACb,MAAM,MAAM,GAAG,QAAQ,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;gBACnC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,MAAM,IAAI,CAAC,IAAI,MAAM,CAAC,MAAM,CAAC,KAAK,KAAK,CAAC,IAAI,EAAE,EAAE,CAAC;oBAC5E,IAAI,CAAC,KAAK,GAAG,MAAM,CAAC;gBACtB,CAAC;gBACD,MAAM;YACR,CAAC;QACH,CAAC;IACH,CAAC;IAEO,aAAa;QACnB,IAAI,IAAI,CAAC,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAChC,IAAI,CAAC,SAAS,GAAG,EAAE,CAAC;YACpB,OAAO;QACT,CAAC;QAED,MAAM,KAAK,GAAoB;YAC7B,KAAK,EAAE,IAAI,CAAC,SAAS,IAAI,SAAS;YAClC,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC;YAC/B,EAAE,EAAE,IAAI,CAAC,WAAW;YACpB,KAAK,EAAE,IAAI,CAAC,KAAK;SAClB,CAAC;QAEF,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACxB,IAAI,CAAC,SAAS,GAAG,EAAE,CAAC;QACpB,IAAI,CAAC,QAAQ,GAAG,CAAC,CAAC;QAClB,IAAI,CAAC,SAAS,GAAG,EAAE,CAAC;QACpB,IAAI,CAAC,KAAK,GAAG,SAAS,CAAC;IACzB,CAAC;;AAGH;;;;;;;;GAQG;AACH,MAAM,CAAC,KAAK,SAAS,CAAC,CAAC,cAAc,CAAC,MAAgB;IACpD,MAAM,MAAM,GAAG,IAAI,SAAS,EAAE,CAAC;IAE/B,IAAI,KAAK,EAAE,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;QACjC,MAAM,IAAI,GAAG,OAAO,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAE,KAAgB,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;QACpF,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAClB,IAAI,KAA6B,CAAC;QAClC,OAAO,CAAC,KAAK,GAAG,MAAM,CAAC,IAAI,EAAE,CAAC,KAAK,IAAI,EAAE,CAAC;YACxC,MAAM,KAAK,CAAC;QACd,CAAC;IACH,CAAC;IAED,MAAM,CAAC,KAAK,EAAE,CAAC;IACf,IAAI,KAA6B,CAAC;IAClC,OAAO,CAAC,KAAK,GAAG,MAAM,CAAC,IAAI,EAAE,CAAC,KAAK,IAAI,EAAE,CAAC;QACxC,MAAM,KAAK,CAAC;IACd,CAAC;AACH,CAAC"}
|
package/dist/tls/constants.d.ts
CHANGED
|
@@ -1,31 +1,18 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* TLS record content type codes (RFC 8446 §5.1).
|
|
3
|
-
*
|
|
4
|
-
* @enum {number}
|
|
5
|
-
*/
|
|
1
|
+
/** TLS record content type identifiers. */
|
|
6
2
|
export declare const RecordType: {
|
|
7
3
|
readonly CHANGE_CIPHER_SPEC: 20;
|
|
8
4
|
readonly ALERT: 21;
|
|
9
5
|
readonly HANDSHAKE: 22;
|
|
10
6
|
readonly APPLICATION_DATA: 23;
|
|
11
7
|
};
|
|
12
|
-
/**
|
|
13
|
-
* TLS protocol version codes as used in the record layer and handshake
|
|
14
|
-
* (RFC 8446 Appendix B.3.1).
|
|
15
|
-
*
|
|
16
|
-
* @enum {number}
|
|
17
|
-
*/
|
|
8
|
+
/** TLS protocol version numbers. */
|
|
18
9
|
export declare const ProtocolVersion: {
|
|
19
10
|
readonly TLS_1_0: 769;
|
|
20
11
|
readonly TLS_1_1: 770;
|
|
21
12
|
readonly TLS_1_2: 771;
|
|
22
13
|
readonly TLS_1_3: 772;
|
|
23
14
|
};
|
|
24
|
-
/**
|
|
25
|
-
* TLS handshake message type codes (RFC 8446 ¥4).
|
|
26
|
-
*
|
|
27
|
-
* @enum {number}
|
|
28
|
-
*/
|
|
15
|
+
/** TLS handshake message type identifiers. */
|
|
29
16
|
export declare const HandshakeType: {
|
|
30
17
|
readonly CLIENT_HELLO: 1;
|
|
31
18
|
readonly SERVER_HELLO: 2;
|
|
@@ -39,12 +26,7 @@ export declare const HandshakeType: {
|
|
|
39
26
|
readonly KEY_UPDATE: 24;
|
|
40
27
|
readonly MESSAGE_HASH: 254;
|
|
41
28
|
};
|
|
42
|
-
/**
|
|
43
|
-
* IANA TLS cipher suite codes supported by the stealth engine and used to
|
|
44
|
-
* construct JA3 fingerprints (RFC 8446, RFC 5246).
|
|
45
|
-
*
|
|
46
|
-
* @enum {number}
|
|
47
|
-
*/
|
|
29
|
+
/** TLS cipher suite numeric identifiers. */
|
|
48
30
|
export declare const CipherSuite: {
|
|
49
31
|
readonly TLS_AES_128_GCM_SHA256: 4865;
|
|
50
32
|
readonly TLS_AES_256_GCM_SHA384: 4866;
|
|
@@ -64,11 +46,7 @@ export declare const CipherSuite: {
|
|
|
64
46
|
readonly TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA: 49161;
|
|
65
47
|
readonly TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA: 49162;
|
|
66
48
|
};
|
|
67
|
-
/**
|
|
68
|
-
* IANA TLS extension type codes (RFC 8446 Appendix B.3.1 and related RFCs).
|
|
69
|
-
*
|
|
70
|
-
* @enum {number}
|
|
71
|
-
*/
|
|
49
|
+
/** TLS extension type numeric identifiers. */
|
|
72
50
|
export declare const ExtensionType: {
|
|
73
51
|
readonly SERVER_NAME: 0;
|
|
74
52
|
readonly EC_POINT_FORMATS: 11;
|
|
@@ -95,12 +73,7 @@ export declare const ExtensionType: {
|
|
|
95
73
|
readonly ENCRYPTED_CLIENT_HELLO: 65037;
|
|
96
74
|
readonly POST_HANDSHAKE_AUTH: 49;
|
|
97
75
|
};
|
|
98
|
-
/**
|
|
99
|
-
* IANA named group codes for elliptic curves and finite-field DH groups
|
|
100
|
-
* used in TLS key exchange (RFC 8422, RFC 7748).
|
|
101
|
-
*
|
|
102
|
-
* @enum {number}
|
|
103
|
-
*/
|
|
76
|
+
/** TLS supported named groups (curves and key exchange). */
|
|
104
77
|
export declare const NamedGroup: {
|
|
105
78
|
readonly X25519: 29;
|
|
106
79
|
readonly SECP256R1: 23;
|
|
@@ -112,12 +85,7 @@ export declare const NamedGroup: {
|
|
|
112
85
|
readonly X25519_KYBER768: 25497;
|
|
113
86
|
readonly X25519_MLKEM768: 17800;
|
|
114
87
|
};
|
|
115
|
-
/**
|
|
116
|
-
* IANA TLS signature scheme codes used in the `signature_algorithms` extension
|
|
117
|
-
* and in `CertificateVerify` messages (RFC 8446 Appendix B.3.1.3).
|
|
118
|
-
*
|
|
119
|
-
* @enum {number}
|
|
120
|
-
*/
|
|
88
|
+
/** TLS signature scheme identifiers. */
|
|
121
89
|
export declare const SignatureScheme: {
|
|
122
90
|
readonly ECDSA_SECP256R1_SHA256: 1027;
|
|
123
91
|
readonly ECDSA_SECP384R1_SHA384: 1283;
|
|
@@ -136,58 +104,39 @@ export declare const SignatureScheme: {
|
|
|
136
104
|
readonly RSA_PKCS1_SHA1: 513;
|
|
137
105
|
readonly ECDSA_SHA1: 515;
|
|
138
106
|
};
|
|
139
|
-
/**
|
|
140
|
-
* EC point format codes used in the `ec_point_formats` TLS extension
|
|
141
|
-
* (RFC 8422 §5.1.2). Only `UNCOMPRESSED` (`0`) is used in practice.
|
|
142
|
-
*
|
|
143
|
-
* @enum {number}
|
|
144
|
-
*/
|
|
107
|
+
/** Elliptic curve point format identifiers. */
|
|
145
108
|
export declare const ECPointFormat: {
|
|
146
109
|
readonly UNCOMPRESSED: 0;
|
|
147
110
|
};
|
|
148
111
|
/**
|
|
149
|
-
*
|
|
150
|
-
* (
|
|
151
|
-
*
|
|
152
|
-
*
|
|
112
|
+
* Recommended safe default cipher suites for non-impersonation use.
|
|
113
|
+
* Excludes CBC mode ciphers (vulnerable to padding oracle attacks)
|
|
114
|
+
* and RSA-only key exchange (no forward secrecy).
|
|
115
|
+
* CBC ciphers are retained in the CipherSuite enum above solely for
|
|
116
|
+
* browser fingerprint impersonation profiles.
|
|
153
117
|
*/
|
|
118
|
+
export declare const SAFE_DEFAULT_CIPHERS: readonly number[];
|
|
119
|
+
/** Pre-shared key exchange mode identifiers. */
|
|
154
120
|
export declare const PskKeyExchangeMode: {
|
|
155
121
|
readonly PSK_KE: 0;
|
|
156
122
|
readonly PSK_DHE_KE: 1;
|
|
157
123
|
};
|
|
158
|
-
/**
|
|
159
|
-
* Certificate compression algorithm codes used in the `compress_certificate`
|
|
160
|
-
* extension (RFC 8879).
|
|
161
|
-
*
|
|
162
|
-
* @enum {number}
|
|
163
|
-
*/
|
|
124
|
+
/** Certificate compression algorithm identifiers. */
|
|
164
125
|
export declare const CertCompressAlg: {
|
|
165
126
|
readonly ZLIB: 1;
|
|
166
127
|
readonly BROTLI: 2;
|
|
167
128
|
readonly ZSTD: 3;
|
|
168
129
|
};
|
|
169
|
-
/**
|
|
170
|
-
* The 16 GREASE values defined in RFC 8701. These are injected into cipher
|
|
171
|
-
* suite lists, extension type lists, and named group lists to encourage
|
|
172
|
-
* servers to be tolerant of unknown values.
|
|
173
|
-
*
|
|
174
|
-
* @type {readonly number[]}
|
|
175
|
-
*/
|
|
130
|
+
/** Standard GREASE (Generate Random Extensions And Sustain Extensibility) values. */
|
|
176
131
|
export declare const GREASE_VALUES: readonly number[];
|
|
177
132
|
/**
|
|
178
|
-
*
|
|
179
|
-
* the 16 GREASE values defined in RFC 8701.
|
|
133
|
+
* Select a deterministic GREASE value from a seed.
|
|
180
134
|
*
|
|
181
|
-
* @param {number} seed -
|
|
182
|
-
* @returns {number}
|
|
135
|
+
* @param {number} seed - Numeric seed for index selection.
|
|
136
|
+
* @returns {number} GREASE value from the standard set.
|
|
183
137
|
*/
|
|
184
138
|
export declare function greaseValue(seed: number): number;
|
|
185
|
-
/**
|
|
186
|
-
* TLS alert description codes (RFC 8446 Appendix B.2). Used to interpret
|
|
187
|
-
* alert records received from the server during or after the handshake.
|
|
188
|
-
*
|
|
189
|
-
* @enum {number}
|
|
190
|
-
*/
|
|
139
|
+
/** TLS alert description codes. */
|
|
191
140
|
export declare const AlertDescription: {
|
|
192
141
|
readonly CLOSE_NOTIFY: 0;
|
|
193
142
|
readonly UNEXPECTED_MESSAGE: 10;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../src/tls/constants.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../src/tls/constants.ts"],"names":[],"mappings":"AAAA,2CAA2C;AAC3C,eAAO,MAAM,UAAU;;;;;CAKb,CAAC;AAEX,oCAAoC;AACpC,eAAO,MAAM,eAAe;;;;;CAKlB,CAAC;AAEX,8CAA8C;AAC9C,eAAO,MAAM,aAAa;;;;;;;;;;;;CAYhB,CAAC;AAEX,4CAA4C;AAC5C,eAAO,MAAM,WAAW;;;;;;;;;;;;;;;;;;CAoBd,CAAC;AAEX,8CAA8C;AAC9C,eAAO,MAAM,aAAa;;;;;;;;;;;;;;;;;;;;;;;;;CAyBhB,CAAC;AAEX,4DAA4D;AAC5D,eAAO,MAAM,UAAU;;;;;;;;;;CAUb,CAAC;AAEX,wCAAwC;AACxC,eAAO,MAAM,eAAe;;;;;;;;;;;;;;;;;CAiBlB,CAAC;AAEX,+CAA+C;AAC/C,eAAO,MAAM,aAAa;;CAEhB,CAAC;AAEX;;;;;;GAMG;AACH,eAAO,MAAM,oBAAoB,EAAE,SAAS,MAAM,EAAoc,CAAC;AAEvf,gDAAgD;AAChD,eAAO,MAAM,kBAAkB;;;CAGrB,CAAC;AAEX,qDAAqD;AACrD,eAAO,MAAM,eAAe;;;;CAIlB,CAAC;AAEX,qFAAqF;AACrF,eAAO,MAAM,aAAa,EAAE,SAAS,MAAM,EAAqI,CAAC;AAEjL;;;;;GAKG;AACH,wBAAgB,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAEhD;AAED,mCAAmC;AACnC,eAAO,MAAM,gBAAgB;;;;;;;;;;;;;;;;;;;;CAoBnB,CAAC"}
|
package/dist/tls/constants.js
CHANGED
|
@@ -1,31 +1,18 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* TLS record content type codes (RFC 8446 §5.1).
|
|
3
|
-
*
|
|
4
|
-
* @enum {number}
|
|
5
|
-
*/
|
|
1
|
+
/** TLS record content type identifiers. */
|
|
6
2
|
export const RecordType = {
|
|
7
3
|
CHANGE_CIPHER_SPEC: 20,
|
|
8
4
|
ALERT: 21,
|
|
9
5
|
HANDSHAKE: 22,
|
|
10
6
|
APPLICATION_DATA: 23,
|
|
11
7
|
};
|
|
12
|
-
/**
|
|
13
|
-
* TLS protocol version codes as used in the record layer and handshake
|
|
14
|
-
* (RFC 8446 Appendix B.3.1).
|
|
15
|
-
*
|
|
16
|
-
* @enum {number}
|
|
17
|
-
*/
|
|
8
|
+
/** TLS protocol version numbers. */
|
|
18
9
|
export const ProtocolVersion = {
|
|
19
10
|
TLS_1_0: 0x0301,
|
|
20
11
|
TLS_1_1: 0x0302,
|
|
21
12
|
TLS_1_2: 0x0303,
|
|
22
13
|
TLS_1_3: 0x0304,
|
|
23
14
|
};
|
|
24
|
-
/**
|
|
25
|
-
* TLS handshake message type codes (RFC 8446 ¥4).
|
|
26
|
-
*
|
|
27
|
-
* @enum {number}
|
|
28
|
-
*/
|
|
15
|
+
/** TLS handshake message type identifiers. */
|
|
29
16
|
export const HandshakeType = {
|
|
30
17
|
CLIENT_HELLO: 1,
|
|
31
18
|
SERVER_HELLO: 2,
|
|
@@ -39,12 +26,7 @@ export const HandshakeType = {
|
|
|
39
26
|
KEY_UPDATE: 24,
|
|
40
27
|
MESSAGE_HASH: 254,
|
|
41
28
|
};
|
|
42
|
-
/**
|
|
43
|
-
* IANA TLS cipher suite codes supported by the stealth engine and used to
|
|
44
|
-
* construct JA3 fingerprints (RFC 8446, RFC 5246).
|
|
45
|
-
*
|
|
46
|
-
* @enum {number}
|
|
47
|
-
*/
|
|
29
|
+
/** TLS cipher suite numeric identifiers. */
|
|
48
30
|
export const CipherSuite = {
|
|
49
31
|
TLS_AES_128_GCM_SHA256: 0x1301,
|
|
50
32
|
TLS_AES_256_GCM_SHA384: 0x1302,
|
|
@@ -64,11 +46,7 @@ export const CipherSuite = {
|
|
|
64
46
|
TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA: 0xc009,
|
|
65
47
|
TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA: 0xc00a,
|
|
66
48
|
};
|
|
67
|
-
/**
|
|
68
|
-
* IANA TLS extension type codes (RFC 8446 Appendix B.3.1 and related RFCs).
|
|
69
|
-
*
|
|
70
|
-
* @enum {number}
|
|
71
|
-
*/
|
|
49
|
+
/** TLS extension type numeric identifiers. */
|
|
72
50
|
export const ExtensionType = {
|
|
73
51
|
SERVER_NAME: 0x0000,
|
|
74
52
|
EC_POINT_FORMATS: 0x000b,
|
|
@@ -95,12 +73,7 @@ export const ExtensionType = {
|
|
|
95
73
|
ENCRYPTED_CLIENT_HELLO: 0xfe0d,
|
|
96
74
|
POST_HANDSHAKE_AUTH: 0x0031,
|
|
97
75
|
};
|
|
98
|
-
/**
|
|
99
|
-
* IANA named group codes for elliptic curves and finite-field DH groups
|
|
100
|
-
* used in TLS key exchange (RFC 8422, RFC 7748).
|
|
101
|
-
*
|
|
102
|
-
* @enum {number}
|
|
103
|
-
*/
|
|
76
|
+
/** TLS supported named groups (curves and key exchange). */
|
|
104
77
|
export const NamedGroup = {
|
|
105
78
|
X25519: 0x001d,
|
|
106
79
|
SECP256R1: 0x0017,
|
|
@@ -112,12 +85,7 @@ export const NamedGroup = {
|
|
|
112
85
|
X25519_KYBER768: 0x6399,
|
|
113
86
|
X25519_MLKEM768: 0x4588,
|
|
114
87
|
};
|
|
115
|
-
/**
|
|
116
|
-
* IANA TLS signature scheme codes used in the `signature_algorithms` extension
|
|
117
|
-
* and in `CertificateVerify` messages (RFC 8446 Appendix B.3.1.3).
|
|
118
|
-
*
|
|
119
|
-
* @enum {number}
|
|
120
|
-
*/
|
|
88
|
+
/** TLS signature scheme identifiers. */
|
|
121
89
|
export const SignatureScheme = {
|
|
122
90
|
ECDSA_SECP256R1_SHA256: 0x0403,
|
|
123
91
|
ECDSA_SECP384R1_SHA384: 0x0503,
|
|
@@ -136,60 +104,41 @@ export const SignatureScheme = {
|
|
|
136
104
|
RSA_PKCS1_SHA1: 0x0201,
|
|
137
105
|
ECDSA_SHA1: 0x0203,
|
|
138
106
|
};
|
|
139
|
-
/**
|
|
140
|
-
* EC point format codes used in the `ec_point_formats` TLS extension
|
|
141
|
-
* (RFC 8422 §5.1.2). Only `UNCOMPRESSED` (`0`) is used in practice.
|
|
142
|
-
*
|
|
143
|
-
* @enum {number}
|
|
144
|
-
*/
|
|
107
|
+
/** Elliptic curve point format identifiers. */
|
|
145
108
|
export const ECPointFormat = {
|
|
146
109
|
UNCOMPRESSED: 0,
|
|
147
110
|
};
|
|
148
111
|
/**
|
|
149
|
-
*
|
|
150
|
-
* (
|
|
151
|
-
*
|
|
152
|
-
*
|
|
112
|
+
* Recommended safe default cipher suites for non-impersonation use.
|
|
113
|
+
* Excludes CBC mode ciphers (vulnerable to padding oracle attacks)
|
|
114
|
+
* and RSA-only key exchange (no forward secrecy).
|
|
115
|
+
* CBC ciphers are retained in the CipherSuite enum above solely for
|
|
116
|
+
* browser fingerprint impersonation profiles.
|
|
153
117
|
*/
|
|
118
|
+
export const SAFE_DEFAULT_CIPHERS = [CipherSuite.TLS_AES_128_GCM_SHA256, CipherSuite.TLS_AES_256_GCM_SHA384, CipherSuite.TLS_CHACHA20_POLY1305_SHA256, CipherSuite.TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256, CipherSuite.TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256, CipherSuite.TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384, CipherSuite.TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384, CipherSuite.TLS_ECDHE_ECDSA_WITH_CHACHA20_POLY1305_SHA256, CipherSuite.TLS_ECDHE_RSA_WITH_CHACHA20_POLY1305_SHA256];
|
|
119
|
+
/** Pre-shared key exchange mode identifiers. */
|
|
154
120
|
export const PskKeyExchangeMode = {
|
|
155
121
|
PSK_KE: 0,
|
|
156
122
|
PSK_DHE_KE: 1,
|
|
157
123
|
};
|
|
158
|
-
/**
|
|
159
|
-
* Certificate compression algorithm codes used in the `compress_certificate`
|
|
160
|
-
* extension (RFC 8879).
|
|
161
|
-
*
|
|
162
|
-
* @enum {number}
|
|
163
|
-
*/
|
|
124
|
+
/** Certificate compression algorithm identifiers. */
|
|
164
125
|
export const CertCompressAlg = {
|
|
165
126
|
ZLIB: 1,
|
|
166
127
|
BROTLI: 2,
|
|
167
128
|
ZSTD: 3,
|
|
168
129
|
};
|
|
169
|
-
/**
|
|
170
|
-
* The 16 GREASE values defined in RFC 8701. These are injected into cipher
|
|
171
|
-
* suite lists, extension type lists, and named group lists to encourage
|
|
172
|
-
* servers to be tolerant of unknown values.
|
|
173
|
-
*
|
|
174
|
-
* @type {readonly number[]}
|
|
175
|
-
*/
|
|
130
|
+
/** Standard GREASE (Generate Random Extensions And Sustain Extensibility) values. */
|
|
176
131
|
export const GREASE_VALUES = [0x0a0a, 0x1a1a, 0x2a2a, 0x3a3a, 0x4a4a, 0x5a5a, 0x6a6a, 0x7a7a, 0x8a8a, 0x9a9a, 0xaaaa, 0xbaba, 0xcaca, 0xdada, 0xeaea, 0xfafa];
|
|
177
132
|
/**
|
|
178
|
-
*
|
|
179
|
-
* the 16 GREASE values defined in RFC 8701.
|
|
133
|
+
* Select a deterministic GREASE value from a seed.
|
|
180
134
|
*
|
|
181
|
-
* @param {number} seed -
|
|
182
|
-
* @returns {number}
|
|
135
|
+
* @param {number} seed - Numeric seed for index selection.
|
|
136
|
+
* @returns {number} GREASE value from the standard set.
|
|
183
137
|
*/
|
|
184
138
|
export function greaseValue(seed) {
|
|
185
139
|
return GREASE_VALUES[seed % GREASE_VALUES.length];
|
|
186
140
|
}
|
|
187
|
-
/**
|
|
188
|
-
* TLS alert description codes (RFC 8446 Appendix B.2). Used to interpret
|
|
189
|
-
* alert records received from the server during or after the handshake.
|
|
190
|
-
*
|
|
191
|
-
* @enum {number}
|
|
192
|
-
*/
|
|
141
|
+
/** TLS alert description codes. */
|
|
193
142
|
export const AlertDescription = {
|
|
194
143
|
CLOSE_NOTIFY: 0,
|
|
195
144
|
UNEXPECTED_MESSAGE: 10,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"constants.js","sourceRoot":"","sources":["../../src/tls/constants.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"constants.js","sourceRoot":"","sources":["../../src/tls/constants.ts"],"names":[],"mappings":"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"}
|