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
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
/** Supported proxy authentication scheme identifiers. */
|
|
2
|
+
export type ProxyAuthScheme = "basic" | "digest" | "negotiate" | "ntlm";
|
|
3
|
+
/** Credentials and scheme selection for proxy authentication. */
|
|
4
|
+
export interface ProxyAuthConfig {
|
|
5
|
+
/** Proxy account username. */
|
|
6
|
+
username: string;
|
|
7
|
+
/** Proxy account password. */
|
|
8
|
+
password: string;
|
|
9
|
+
/** Authentication scheme to use — defaults to `"basic"`. */
|
|
10
|
+
scheme?: ProxyAuthScheme;
|
|
11
|
+
}
|
|
12
|
+
/** Parsed parameters from an HTTP Digest authentication challenge. */
|
|
13
|
+
export interface DigestChallenge {
|
|
14
|
+
/** Protection realm name. */
|
|
15
|
+
realm: string;
|
|
16
|
+
/** Server-generated nonce value. */
|
|
17
|
+
nonce: string;
|
|
18
|
+
/** Quality-of-protection directive (e.g. `"auth"`). */
|
|
19
|
+
qop?: string;
|
|
20
|
+
/** Opaque value to be returned unchanged to the server. */
|
|
21
|
+
opaque?: string;
|
|
22
|
+
/** Hash algorithm name (e.g. `"MD5"`, `"SHA-256"`). */
|
|
23
|
+
algorithm?: string;
|
|
24
|
+
/** Whether the previous nonce has gone stale. */
|
|
25
|
+
stale?: boolean;
|
|
26
|
+
/** Space-delimited list of URIs defining the protection space. */
|
|
27
|
+
domain?: string;
|
|
28
|
+
}
|
|
29
|
+
/**
|
|
30
|
+
* Parse a `Proxy-Authenticate` response header into its scheme and raw challenge.
|
|
31
|
+
*
|
|
32
|
+
* @param {string} header - Raw header value.
|
|
33
|
+
* @returns {object|null} Parsed scheme and challenge string, or `null` if unrecognized.
|
|
34
|
+
*/
|
|
35
|
+
export declare function parseProxyAuthenticate(header: string): {
|
|
36
|
+
scheme: ProxyAuthScheme;
|
|
37
|
+
challenge: string;
|
|
38
|
+
} | null;
|
|
39
|
+
/**
|
|
40
|
+
* Parse a raw Digest challenge string into structured parameters.
|
|
41
|
+
*
|
|
42
|
+
* @param {string} challenge - The challenge portion after `Digest `.
|
|
43
|
+
* @returns {DigestChallenge|null} Parsed {@link DigestChallenge}, or `null` if required fields are missing.
|
|
44
|
+
*/
|
|
45
|
+
export declare function parseDigestChallenge(challenge: string): DigestChallenge | null;
|
|
46
|
+
/**
|
|
47
|
+
* Build an HTTP Digest `Proxy-Authorization` header value.
|
|
48
|
+
*
|
|
49
|
+
* @param {string} method - HTTP method (e.g. `"CONNECT"`).
|
|
50
|
+
* @param {string} uri - Request URI.
|
|
51
|
+
* @param {ProxyAuthConfig} auth - Proxy credentials.
|
|
52
|
+
* @param {DigestChallenge} challenge - Parsed digest challenge from the proxy.
|
|
53
|
+
* @returns {string} Fully-formed `Digest` authorization header value.
|
|
54
|
+
*/
|
|
55
|
+
export declare function buildDigestAuth(method: string, uri: string, auth: ProxyAuthConfig, challenge: DigestChallenge): string;
|
|
56
|
+
/**
|
|
57
|
+
* Build an HTTP Basic `Proxy-Authorization` header value.
|
|
58
|
+
*
|
|
59
|
+
* @param {ProxyAuthConfig} auth - Proxy credentials.
|
|
60
|
+
* @returns {string} Base64-encoded `Basic` authorization header value.
|
|
61
|
+
*/
|
|
62
|
+
export declare function buildBasicProxyAuth(auth: ProxyAuthConfig): string;
|
|
63
|
+
/**
|
|
64
|
+
* Build a `Proxy-Authorization` header for the configured scheme.
|
|
65
|
+
*
|
|
66
|
+
* @param {string} method - HTTP method.
|
|
67
|
+
* @param {string} uri - Request URI.
|
|
68
|
+
* @param {ProxyAuthConfig} auth - Proxy credentials and scheme preference.
|
|
69
|
+
* @param {string} [proxyAuthHeader] - Optional raw `Proxy-Authenticate` header for digest negotiation.
|
|
70
|
+
* @returns {string|null} Header value string, or `null` if the scheme cannot be satisfied.
|
|
71
|
+
*/
|
|
72
|
+
export declare function buildProxyAuthorization(method: string, uri: string, auth: ProxyAuthConfig, proxyAuthHeader?: string): string | null;
|
|
73
|
+
//# sourceMappingURL=auth.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"auth.d.ts","sourceRoot":"","sources":["../../src/proxy/auth.ts"],"names":[],"mappings":"AAEA,yDAAyD;AACzD,MAAM,MAAM,eAAe,GAAG,OAAO,GAAG,QAAQ,GAAG,WAAW,GAAG,MAAM,CAAC;AAExE,iEAAiE;AACjE,MAAM,WAAW,eAAe;IAC9B,8BAA8B;IAC9B,QAAQ,EAAE,MAAM,CAAC;IACjB,8BAA8B;IAC9B,QAAQ,EAAE,MAAM,CAAC;IACjB,4DAA4D;IAC5D,MAAM,CAAC,EAAE,eAAe,CAAC;CAC1B;AAED,sEAAsE;AACtE,MAAM,WAAW,eAAe;IAC9B,6BAA6B;IAC7B,KAAK,EAAE,MAAM,CAAC;IACd,oCAAoC;IACpC,KAAK,EAAE,MAAM,CAAC;IACd,uDAAuD;IACvD,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,2DAA2D;IAC3D,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,uDAAuD;IACvD,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,iDAAiD;IACjD,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,kEAAkE;IAClE,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED;;;;;GAKG;AACH,wBAAgB,sBAAsB,CAAC,MAAM,EAAE,MAAM,GAAG;IACtD,MAAM,EAAE,eAAe,CAAC;IACxB,SAAS,EAAE,MAAM,CAAC;CACnB,GAAG,IAAI,CAiBP;AAED;;;;;GAKG;AACH,wBAAgB,oBAAoB,CAAC,SAAS,EAAE,MAAM,GAAG,eAAe,GAAG,IAAI,CAoB9E;AAID;;;;;;;;GAQG;AACH,wBAAgB,eAAe,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,eAAe,EAAE,SAAS,EAAE,eAAe,GAAG,MAAM,CAgCtH;AAED;;;;;GAKG;AACH,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,eAAe,GAAG,MAAM,CAGjE;AAED;;;;;;;;GAQG;AACH,wBAAgB,uBAAuB,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,eAAe,EAAE,eAAe,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAmBnI"}
|
|
@@ -0,0 +1,128 @@
|
|
|
1
|
+
import { createHash, randomBytes } from "node:crypto";
|
|
2
|
+
/**
|
|
3
|
+
* Parse a `Proxy-Authenticate` response header into its scheme and raw challenge.
|
|
4
|
+
*
|
|
5
|
+
* @param {string} header - Raw header value.
|
|
6
|
+
* @returns {object|null} Parsed scheme and challenge string, or `null` if unrecognized.
|
|
7
|
+
*/
|
|
8
|
+
export function parseProxyAuthenticate(header) {
|
|
9
|
+
if (!header)
|
|
10
|
+
return null;
|
|
11
|
+
const lower = header.trimStart().toLowerCase();
|
|
12
|
+
if (lower.startsWith("digest ")) {
|
|
13
|
+
return { scheme: "digest", challenge: header.substring(7) };
|
|
14
|
+
}
|
|
15
|
+
if (lower.startsWith("negotiate")) {
|
|
16
|
+
return { scheme: "negotiate", challenge: header.substring(10).trim() };
|
|
17
|
+
}
|
|
18
|
+
if (lower.startsWith("ntlm")) {
|
|
19
|
+
return { scheme: "ntlm", challenge: header.substring(5).trim() };
|
|
20
|
+
}
|
|
21
|
+
if (lower.startsWith("basic ")) {
|
|
22
|
+
return { scheme: "basic", challenge: header.substring(6) };
|
|
23
|
+
}
|
|
24
|
+
return null;
|
|
25
|
+
}
|
|
26
|
+
/**
|
|
27
|
+
* Parse a raw Digest challenge string into structured parameters.
|
|
28
|
+
*
|
|
29
|
+
* @param {string} challenge - The challenge portion after `Digest `.
|
|
30
|
+
* @returns {DigestChallenge|null} Parsed {@link DigestChallenge}, or `null` if required fields are missing.
|
|
31
|
+
*/
|
|
32
|
+
export function parseDigestChallenge(challenge) {
|
|
33
|
+
const params = {};
|
|
34
|
+
const regex = /(\w+)=(?:"([^"]*)"|([\w.]+))/g;
|
|
35
|
+
let match;
|
|
36
|
+
while ((match = regex.exec(challenge)) !== null) {
|
|
37
|
+
params[match[1].toLowerCase()] = match[2] ?? match[3] ?? "";
|
|
38
|
+
}
|
|
39
|
+
if (!params["realm"] || !params["nonce"])
|
|
40
|
+
return null;
|
|
41
|
+
return {
|
|
42
|
+
realm: params["realm"],
|
|
43
|
+
nonce: params["nonce"],
|
|
44
|
+
qop: params["qop"],
|
|
45
|
+
opaque: params["opaque"],
|
|
46
|
+
algorithm: params["algorithm"],
|
|
47
|
+
stale: params["stale"]?.toLowerCase() === "true",
|
|
48
|
+
domain: params["domain"],
|
|
49
|
+
};
|
|
50
|
+
}
|
|
51
|
+
let nonceCount = 0;
|
|
52
|
+
/**
|
|
53
|
+
* Build an HTTP Digest `Proxy-Authorization` header value.
|
|
54
|
+
*
|
|
55
|
+
* @param {string} method - HTTP method (e.g. `"CONNECT"`).
|
|
56
|
+
* @param {string} uri - Request URI.
|
|
57
|
+
* @param {ProxyAuthConfig} auth - Proxy credentials.
|
|
58
|
+
* @param {DigestChallenge} challenge - Parsed digest challenge from the proxy.
|
|
59
|
+
* @returns {string} Fully-formed `Digest` authorization header value.
|
|
60
|
+
*/
|
|
61
|
+
export function buildDigestAuth(method, uri, auth, challenge) {
|
|
62
|
+
const algorithm = (challenge.algorithm ?? "MD5").toUpperCase();
|
|
63
|
+
const hashFn = algorithm === "SHA-256" ? "sha256" : "md5";
|
|
64
|
+
const ha1 = md(hashFn, `${auth.username}:${challenge.realm}:${auth.password}`);
|
|
65
|
+
const ha2 = md(hashFn, `${method}:${uri}`);
|
|
66
|
+
nonceCount++;
|
|
67
|
+
const nc = nonceCount.toString(16).padStart(8, "0");
|
|
68
|
+
const cnonce = randomBytes(16).toString("hex");
|
|
69
|
+
let response;
|
|
70
|
+
if (challenge.qop) {
|
|
71
|
+
const qop = challenge.qop.includes("auth") ? "auth" : challenge.qop;
|
|
72
|
+
response = md(hashFn, `${ha1}:${challenge.nonce}:${nc}:${cnonce}:${qop}:${ha2}`);
|
|
73
|
+
let header = `Digest username="${auth.username}", realm="${challenge.realm}", `;
|
|
74
|
+
header += `nonce="${challenge.nonce}", uri="${uri}", `;
|
|
75
|
+
header += `algorithm=${algorithm}, qop=${qop}, nc=${nc}, cnonce="${cnonce}", `;
|
|
76
|
+
header += `response="${response}"`;
|
|
77
|
+
if (challenge.opaque)
|
|
78
|
+
header += `, opaque="${challenge.opaque}"`;
|
|
79
|
+
return header;
|
|
80
|
+
}
|
|
81
|
+
response = md(hashFn, `${ha1}:${challenge.nonce}:${ha2}`);
|
|
82
|
+
let header = `Digest username="${auth.username}", realm="${challenge.realm}", `;
|
|
83
|
+
header += `nonce="${challenge.nonce}", uri="${uri}", `;
|
|
84
|
+
header += `algorithm=${algorithm}, response="${response}"`;
|
|
85
|
+
if (challenge.opaque)
|
|
86
|
+
header += `, opaque="${challenge.opaque}"`;
|
|
87
|
+
return header;
|
|
88
|
+
}
|
|
89
|
+
/**
|
|
90
|
+
* Build an HTTP Basic `Proxy-Authorization` header value.
|
|
91
|
+
*
|
|
92
|
+
* @param {ProxyAuthConfig} auth - Proxy credentials.
|
|
93
|
+
* @returns {string} Base64-encoded `Basic` authorization header value.
|
|
94
|
+
*/
|
|
95
|
+
export function buildBasicProxyAuth(auth) {
|
|
96
|
+
const encoded = Buffer.from(`${auth.username}:${auth.password}`).toString("base64");
|
|
97
|
+
return `Basic ${encoded}`;
|
|
98
|
+
}
|
|
99
|
+
/**
|
|
100
|
+
* Build a `Proxy-Authorization` header for the configured scheme.
|
|
101
|
+
*
|
|
102
|
+
* @param {string} method - HTTP method.
|
|
103
|
+
* @param {string} uri - Request URI.
|
|
104
|
+
* @param {ProxyAuthConfig} auth - Proxy credentials and scheme preference.
|
|
105
|
+
* @param {string} [proxyAuthHeader] - Optional raw `Proxy-Authenticate` header for digest negotiation.
|
|
106
|
+
* @returns {string|null} Header value string, or `null` if the scheme cannot be satisfied.
|
|
107
|
+
*/
|
|
108
|
+
export function buildProxyAuthorization(method, uri, auth, proxyAuthHeader) {
|
|
109
|
+
const scheme = auth.scheme ?? "basic";
|
|
110
|
+
if (scheme === "basic") {
|
|
111
|
+
return buildBasicProxyAuth(auth);
|
|
112
|
+
}
|
|
113
|
+
if (scheme === "digest" && proxyAuthHeader) {
|
|
114
|
+
const parsed = parseProxyAuthenticate(proxyAuthHeader);
|
|
115
|
+
if (parsed?.scheme === "digest") {
|
|
116
|
+
const challenge = parseDigestChallenge(parsed.challenge);
|
|
117
|
+
if (challenge) {
|
|
118
|
+
return buildDigestAuth(method, uri, auth, challenge);
|
|
119
|
+
}
|
|
120
|
+
}
|
|
121
|
+
return null;
|
|
122
|
+
}
|
|
123
|
+
return null;
|
|
124
|
+
}
|
|
125
|
+
function md(algorithm, data) {
|
|
126
|
+
return createHash(algorithm).update(data).digest("hex");
|
|
127
|
+
}
|
|
128
|
+
//# sourceMappingURL=auth.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"auth.js","sourceRoot":"","sources":["../../src/proxy/auth.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,21 +1,11 @@
|
|
|
1
1
|
/**
|
|
2
|
-
*
|
|
3
|
-
* (`HTTP_PROXY`, `HTTPS_PROXY`, `NO_PROXY` and their lowercase variants).
|
|
4
|
-
* Follows the same conventions as curl, got, axios, and undici.
|
|
5
|
-
*/
|
|
6
|
-
/**
|
|
7
|
-
* Resolves a proxy URL from environment variables for the given request URL.
|
|
8
|
-
* Returns `undefined` if no proxy should be used (either not configured or
|
|
9
|
-
* the host is in the `NO_PROXY` bypass list).
|
|
2
|
+
* Resolve a proxy URL from standard environment variables.
|
|
10
3
|
*
|
|
11
|
-
*
|
|
12
|
-
*
|
|
13
|
-
* 2. `https_proxy` / `HTTPS_PROXY` for HTTPS URLs.
|
|
14
|
-
* 3. `http_proxy` / `HTTP_PROXY` for HTTP URLs.
|
|
15
|
-
* 4. `all_proxy` / `ALL_PROXY` as a fallback for either protocol.
|
|
4
|
+
* Checks `NO_PROXY` / `no_proxy` first, then selects `HTTPS_PROXY` or
|
|
5
|
+
* `HTTP_PROXY` (and their lowercase variants) based on the URL scheme.
|
|
16
6
|
*
|
|
17
|
-
* @param {string} url -
|
|
18
|
-
* @returns {string
|
|
7
|
+
* @param {string} url - Absolute URL to resolve a proxy for.
|
|
8
|
+
* @returns {string|undefined} Proxy URL string, or `undefined` if none applies.
|
|
19
9
|
*/
|
|
20
10
|
export declare function resolveEnvProxy(url: string): string | undefined;
|
|
21
11
|
//# sourceMappingURL=env-proxy.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"env-proxy.d.ts","sourceRoot":"","sources":["../../src/proxy/env-proxy.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"env-proxy.d.ts","sourceRoot":"","sources":["../../src/proxy/env-proxy.ts"],"names":[],"mappings":"AAkBA;;;;;;;;GAQG;AACH,wBAAgB,eAAe,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CA2B/D"}
|
package/dist/proxy/env-proxy.js
CHANGED
|
@@ -1,16 +1,3 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Resolves proxy configuration from standard environment variables
|
|
3
|
-
* (`HTTP_PROXY`, `HTTPS_PROXY`, `NO_PROXY` and their lowercase variants).
|
|
4
|
-
* Follows the same conventions as curl, got, axios, and undici.
|
|
5
|
-
*/
|
|
6
|
-
/**
|
|
7
|
-
* Checks whether the given hostname should bypass the proxy according to the
|
|
8
|
-
* `NO_PROXY` / `no_proxy` environment variable.
|
|
9
|
-
*
|
|
10
|
-
* @param {string} hostname - The target hostname to check.
|
|
11
|
-
* @param {string} noProxy - Comma-separated list of hosts/domains/CIDRs to bypass.
|
|
12
|
-
* @returns {boolean} `true` if the hostname matches a bypass pattern.
|
|
13
|
-
*/
|
|
14
1
|
function matchesNoProxy(hostname, noProxy) {
|
|
15
2
|
if (noProxy === "*")
|
|
16
3
|
return true;
|
|
@@ -30,18 +17,13 @@ function matchesNoProxy(hostname, noProxy) {
|
|
|
30
17
|
return false;
|
|
31
18
|
}
|
|
32
19
|
/**
|
|
33
|
-
*
|
|
34
|
-
* Returns `undefined` if no proxy should be used (either not configured or
|
|
35
|
-
* the host is in the `NO_PROXY` bypass list).
|
|
20
|
+
* Resolve a proxy URL from standard environment variables.
|
|
36
21
|
*
|
|
37
|
-
*
|
|
38
|
-
*
|
|
39
|
-
* 2. `https_proxy` / `HTTPS_PROXY` for HTTPS URLs.
|
|
40
|
-
* 3. `http_proxy` / `HTTP_PROXY` for HTTP URLs.
|
|
41
|
-
* 4. `all_proxy` / `ALL_PROXY` as a fallback for either protocol.
|
|
22
|
+
* Checks `NO_PROXY` / `no_proxy` first, then selects `HTTPS_PROXY` or
|
|
23
|
+
* `HTTP_PROXY` (and their lowercase variants) based on the URL scheme.
|
|
42
24
|
*
|
|
43
|
-
* @param {string} url -
|
|
44
|
-
* @returns {string
|
|
25
|
+
* @param {string} url - Absolute URL to resolve a proxy for.
|
|
26
|
+
* @returns {string|undefined} Proxy URL string, or `undefined` if none applies.
|
|
45
27
|
*/
|
|
46
28
|
export function resolveEnvProxy(url) {
|
|
47
29
|
let parsed;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"env-proxy.js","sourceRoot":"","sources":["../../src/proxy/env-proxy.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"env-proxy.js","sourceRoot":"","sources":["../../src/proxy/env-proxy.ts"],"names":[],"mappings":"AAAA,SAAS,cAAc,CAAC,QAAgB,EAAE,OAAe;IACvD,IAAI,OAAO,KAAK,GAAG;QAAE,OAAO,IAAI,CAAC;IAEjC,MAAM,IAAI,GAAG,QAAQ,CAAC,WAAW,EAAE,CAAC;IACpC,MAAM,OAAO,GAAG,OAAO;SACpB,KAAK,CAAC,GAAG,CAAC;SACV,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;SAClC,MAAM,CAAC,OAAO,CAAC,CAAC;IAEnB,KAAK,MAAM,KAAK,IAAI,OAAO,EAAE,CAAC;QAC5B,IAAI,KAAK,KAAK,IAAI;YAAE,OAAO,IAAI,CAAC;QAChC,IAAI,KAAK,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,IAAI,KAAK,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;YAAE,OAAO,IAAI,CAAC;QAC5F,IAAI,IAAI,KAAK,KAAK,IAAI,IAAI,CAAC,QAAQ,CAAC,GAAG,GAAG,KAAK,CAAC;YAAE,OAAO,IAAI,CAAC;IAChE,CAAC;IAED,OAAO,KAAK,CAAC;AACf,CAAC;AAED;;;;;;;;GAQG;AACH,MAAM,UAAU,eAAe,CAAC,GAAW;IACzC,IAAI,MAAW,CAAC;IAChB,IAAI,CAAC;QACH,MAAM,GAAG,IAAI,GAAG,CAAC,GAAG,CAAC,CAAC;IACxB,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,MAAM,OAAO,GAAG,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC,IAAI,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC,IAAI,EAAE,CAAC;IACzE,IAAI,OAAO,IAAI,cAAc,CAAC,MAAM,CAAC,QAAQ,EAAE,OAAO,CAAC,EAAE,CAAC;QACxD,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,MAAM,OAAO,GAAG,MAAM,CAAC,QAAQ,KAAK,QAAQ,IAAI,MAAM,CAAC,QAAQ,KAAK,MAAM,CAAC;IAE3E,IAAI,OAAO,EAAE,CAAC;QACZ,MAAM,KAAK,GAAG,OAAO,CAAC,GAAG,CAAC,aAAa,CAAC,IAAI,OAAO,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC;QACvE,IAAI,KAAK;YAAE,OAAO,KAAK,CAAC;IAC1B,CAAC;SAAM,CAAC;QACN,MAAM,KAAK,GAAG,OAAO,CAAC,GAAG,CAAC,YAAY,CAAC,IAAI,OAAO,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;QACrE,IAAI,KAAK;YAAE,OAAO,KAAK,CAAC;IAC1B,CAAC;IAED,MAAM,QAAQ,GAAG,OAAO,CAAC,GAAG,CAAC,WAAW,CAAC,IAAI,OAAO,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;IACtE,IAAI,QAAQ;QAAE,OAAO,QAAQ,CAAC;IAE9B,OAAO,SAAS,CAAC;AACnB,CAAC"}
|
|
@@ -1,33 +1,26 @@
|
|
|
1
1
|
import * as net from "node:net";
|
|
2
|
-
/**
|
|
3
|
-
* Options for establishing a connection through an HTTP CONNECT proxy.
|
|
4
|
-
*
|
|
5
|
-
* @typedef {Object} HttpProxyOptions
|
|
6
|
-
* @property {string} host - Proxy server hostname or IP address.
|
|
7
|
-
* @property {number} port - Proxy server port.
|
|
8
|
-
* @property {string} [auth] - Proxy credentials in `username:password` format (used for Basic auth).
|
|
9
|
-
* @property {number} [timeout] - Connection timeout in milliseconds (default: 30 000).
|
|
10
|
-
* @property {4 | 6} [family] - IP address family to use when resolving the proxy host.
|
|
11
|
-
*/
|
|
2
|
+
/** Configuration for connecting through an HTTP CONNECT proxy. */
|
|
12
3
|
export interface HttpProxyOptions {
|
|
4
|
+
/** Proxy server hostname or IP address. */
|
|
13
5
|
host: string;
|
|
6
|
+
/** Proxy server port. */
|
|
14
7
|
port: number;
|
|
8
|
+
/** Optional `Proxy-Authorization` header value. */
|
|
15
9
|
auth?: string;
|
|
10
|
+
/** Connection timeout in milliseconds. */
|
|
16
11
|
timeout?: number;
|
|
12
|
+
/** IP address family to use (`4` or `6`). */
|
|
17
13
|
family?: 4 | 6;
|
|
18
|
-
/**
|
|
14
|
+
/** Connect to the proxy over TLS (HTTPS proxy). */
|
|
19
15
|
secure?: boolean;
|
|
20
16
|
}
|
|
21
17
|
/**
|
|
22
|
-
*
|
|
23
|
-
* `targetHost:targetPort`. Resolves with the raw socket once the tunnel is
|
|
24
|
-
* established.
|
|
18
|
+
* Establish a TCP tunnel through an HTTP CONNECT proxy.
|
|
25
19
|
*
|
|
26
|
-
* @param {HttpProxyOptions} proxy
|
|
27
|
-
* @param {string}
|
|
28
|
-
* @param {number}
|
|
29
|
-
* @returns {Promise<net.Socket>}
|
|
30
|
-
* @throws {ProxyError} If the connection times out or the proxy rejects the CONNECT request.
|
|
20
|
+
* @param {HttpProxyOptions} proxy - Proxy connection options.
|
|
21
|
+
* @param {string} targetHost - Destination hostname.
|
|
22
|
+
* @param {number} targetPort - Destination port.
|
|
23
|
+
* @returns {Promise<net.Socket>} Connected socket tunneled through the proxy.
|
|
31
24
|
*/
|
|
32
25
|
export declare function httpProxyConnect(proxy: HttpProxyOptions, targetHost: string, targetPort: number): Promise<net.Socket>;
|
|
33
26
|
//# sourceMappingURL=http-proxy.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"http-proxy.d.ts","sourceRoot":"","sources":["../../src/proxy/http-proxy.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,GAAG,MAAM,UAAU,CAAC;AAIhC
|
|
1
|
+
{"version":3,"file":"http-proxy.d.ts","sourceRoot":"","sources":["../../src/proxy/http-proxy.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,GAAG,MAAM,UAAU,CAAC;AAIhC,kEAAkE;AAClE,MAAM,WAAW,gBAAgB;IAC/B,2CAA2C;IAC3C,IAAI,EAAE,MAAM,CAAC;IACb,yBAAyB;IACzB,IAAI,EAAE,MAAM,CAAC;IACb,mDAAmD;IACnD,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,0CAA0C;IAC1C,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,6CAA6C;IAC7C,MAAM,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC;IACf,mDAAmD;IACnD,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB;AAED;;;;;;;GAOG;AACH,wBAAsB,gBAAgB,CAAC,KAAK,EAAE,gBAAgB,EAAE,UAAU,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,CA0G3H"}
|
package/dist/proxy/http-proxy.js
CHANGED
|
@@ -2,15 +2,12 @@ import * as net from "node:net";
|
|
|
2
2
|
import * as tls from "node:tls";
|
|
3
3
|
import { ProxyError } from "../core/errors.js";
|
|
4
4
|
/**
|
|
5
|
-
*
|
|
6
|
-
* `targetHost:targetPort`. Resolves with the raw socket once the tunnel is
|
|
7
|
-
* established.
|
|
5
|
+
* Establish a TCP tunnel through an HTTP CONNECT proxy.
|
|
8
6
|
*
|
|
9
|
-
* @param {HttpProxyOptions} proxy
|
|
10
|
-
* @param {string}
|
|
11
|
-
* @param {number}
|
|
12
|
-
* @returns {Promise<net.Socket>}
|
|
13
|
-
* @throws {ProxyError} If the connection times out or the proxy rejects the CONNECT request.
|
|
7
|
+
* @param {HttpProxyOptions} proxy - Proxy connection options.
|
|
8
|
+
* @param {string} targetHost - Destination hostname.
|
|
9
|
+
* @param {number} targetPort - Destination port.
|
|
10
|
+
* @returns {Promise<net.Socket>} Connected socket tunneled through the proxy.
|
|
14
11
|
*/
|
|
15
12
|
export async function httpProxyConnect(proxy, targetHost, targetPort) {
|
|
16
13
|
return new Promise((resolve, reject) => {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"http-proxy.js","sourceRoot":"","sources":["../../src/proxy/http-proxy.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,GAAG,MAAM,UAAU,CAAC;AAChC,OAAO,KAAK,GAAG,MAAM,UAAU,CAAC;AAChC,OAAO,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;
|
|
1
|
+
{"version":3,"file":"http-proxy.js","sourceRoot":"","sources":["../../src/proxy/http-proxy.ts"],"names":[],"mappings":"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"}
|
package/dist/proxy/socks.d.ts
CHANGED
|
@@ -1,35 +1,28 @@
|
|
|
1
1
|
import * as net from "node:net";
|
|
2
|
-
/**
|
|
3
|
-
* Options for establishing a connection through a SOCKS4 or SOCKS5 proxy.
|
|
4
|
-
*
|
|
5
|
-
* @typedef {Object} SocksProxyOptions
|
|
6
|
-
* @property {string} host - Proxy server hostname or IP address.
|
|
7
|
-
* @property {number} port - Proxy server port.
|
|
8
|
-
* @property {4 | 5} version - SOCKS protocol version.
|
|
9
|
-
* @property {string} [username] - Username for SOCKS5 username/password authentication.
|
|
10
|
-
* @property {string} [password] - Password for SOCKS5 username/password authentication.
|
|
11
|
-
* @property {number} [timeout] - Connection timeout in milliseconds.
|
|
12
|
-
* @property {4 | 6} [family] - IP address family used when resolving the proxy host.
|
|
13
|
-
*/
|
|
2
|
+
/** Configuration for connecting through a SOCKS proxy. */
|
|
14
3
|
export interface SocksProxyOptions {
|
|
4
|
+
/** Proxy server hostname or IP address. */
|
|
15
5
|
host: string;
|
|
6
|
+
/** Proxy server port. */
|
|
16
7
|
port: number;
|
|
8
|
+
/** SOCKS protocol version (`4` or `5`). */
|
|
17
9
|
version: 4 | 5;
|
|
10
|
+
/** Username for SOCKS5 authentication. */
|
|
18
11
|
username?: string;
|
|
12
|
+
/** Password for SOCKS5 authentication. */
|
|
19
13
|
password?: string;
|
|
14
|
+
/** Connection timeout in milliseconds. */
|
|
20
15
|
timeout?: number;
|
|
16
|
+
/** IP address family to use (`4` or `6`). */
|
|
21
17
|
family?: 4 | 6;
|
|
22
18
|
}
|
|
23
19
|
/**
|
|
24
|
-
*
|
|
25
|
-
* to `targetHost:targetPort`. Resolves with the raw socket once the tunnel is
|
|
26
|
-
* established.
|
|
20
|
+
* Establish a TCP connection through a SOCKS4 or SOCKS5 proxy.
|
|
27
21
|
*
|
|
28
|
-
* @param {SocksProxyOptions} proxy
|
|
29
|
-
* @param {string}
|
|
30
|
-
* @param {number}
|
|
31
|
-
* @returns {Promise<net.Socket>}
|
|
32
|
-
* @throws {ProxyError} If authentication fails or the proxy rejects the connection request.
|
|
22
|
+
* @param {SocksProxyOptions} proxy - SOCKS proxy options including version and optional credentials.
|
|
23
|
+
* @param {string} targetHost - Destination hostname.
|
|
24
|
+
* @param {number} targetPort - Destination port.
|
|
25
|
+
* @returns {Promise<net.Socket>} Connected socket tunneled through the SOCKS proxy.
|
|
33
26
|
*/
|
|
34
27
|
export declare function socksConnect(proxy: SocksProxyOptions, targetHost: string, targetPort: number): Promise<net.Socket>;
|
|
35
28
|
//# sourceMappingURL=socks.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"socks.d.ts","sourceRoot":"","sources":["../../src/proxy/socks.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,GAAG,MAAM,UAAU,CAAC;AAGhC
|
|
1
|
+
{"version":3,"file":"socks.d.ts","sourceRoot":"","sources":["../../src/proxy/socks.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,GAAG,MAAM,UAAU,CAAC;AAGhC,0DAA0D;AAC1D,MAAM,WAAW,iBAAiB;IAChC,2CAA2C;IAC3C,IAAI,EAAE,MAAM,CAAC;IACb,yBAAyB;IACzB,IAAI,EAAE,MAAM,CAAC;IACb,2CAA2C;IAC3C,OAAO,EAAE,CAAC,GAAG,CAAC,CAAC;IACf,0CAA0C;IAC1C,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,0CAA0C;IAC1C,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,0CAA0C;IAC1C,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,6CAA6C;IAC7C,MAAM,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC;CAChB;AAED;;;;;;;GAOG;AACH,wBAAsB,YAAY,CAAC,KAAK,EAAE,iBAAiB,EAAE,UAAU,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,CAcxH"}
|
package/dist/proxy/socks.js
CHANGED
|
@@ -1,15 +1,12 @@
|
|
|
1
1
|
import * as net from "node:net";
|
|
2
2
|
import { ProxyError } from "../core/errors.js";
|
|
3
3
|
/**
|
|
4
|
-
*
|
|
5
|
-
* to `targetHost:targetPort`. Resolves with the raw socket once the tunnel is
|
|
6
|
-
* established.
|
|
4
|
+
* Establish a TCP connection through a SOCKS4 or SOCKS5 proxy.
|
|
7
5
|
*
|
|
8
|
-
* @param {SocksProxyOptions} proxy
|
|
9
|
-
* @param {string}
|
|
10
|
-
* @param {number}
|
|
11
|
-
* @returns {Promise<net.Socket>}
|
|
12
|
-
* @throws {ProxyError} If authentication fails or the proxy rejects the connection request.
|
|
6
|
+
* @param {SocksProxyOptions} proxy - SOCKS proxy options including version and optional credentials.
|
|
7
|
+
* @param {string} targetHost - Destination hostname.
|
|
8
|
+
* @param {number} targetPort - Destination port.
|
|
9
|
+
* @returns {Promise<net.Socket>} Connected socket tunneled through the SOCKS proxy.
|
|
13
10
|
*/
|
|
14
11
|
export async function socksConnect(proxy, targetHost, targetPort) {
|
|
15
12
|
const socket = await tcpConnect(proxy.host, proxy.port, proxy.timeout, proxy.family);
|
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;
|
|
@@ -30,41 +18,30 @@ export declare class SSEParser {
|
|
|
30
18
|
private retry;
|
|
31
19
|
private readonly events;
|
|
32
20
|
/**
|
|
33
|
-
*
|
|
34
|
-
* a chunk of data is received. Complete events are buffered internally
|
|
35
|
-
* and retrieved via {@link pull}.
|
|
21
|
+
* Append raw text from the event stream and parse complete lines.
|
|
36
22
|
*
|
|
37
|
-
* @param {string} text -
|
|
23
|
+
* @param {string} text - Chunk of UTF-8 text from the response body.
|
|
38
24
|
*/
|
|
39
25
|
feed(text: string): void;
|
|
40
26
|
/**
|
|
41
|
-
*
|
|
42
|
-
* queue. Returns `null` when no complete events are available.
|
|
27
|
+
* Remove and return the next fully-parsed event from the queue.
|
|
43
28
|
*
|
|
44
|
-
* @returns {ServerSentEvent
|
|
29
|
+
* @returns {ServerSentEvent|null} The next {@link ServerSentEvent}, or `null` if the queue is empty.
|
|
45
30
|
*/
|
|
46
31
|
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
|
-
*/
|
|
32
|
+
/** Flush any remaining buffered data and dispatch a final event if present. */
|
|
51
33
|
flush(): void;
|
|
52
34
|
private processLine;
|
|
53
35
|
private dispatchEvent;
|
|
54
36
|
}
|
|
55
37
|
/**
|
|
56
|
-
*
|
|
57
|
-
* a `Readable` stream. Useful for consuming SSE responses from
|
|
58
|
-
* `NLcURLResponse.body` in streaming mode.
|
|
38
|
+
* Consume a readable stream as a Server-Sent Events source.
|
|
59
39
|
*
|
|
60
|
-
* @
|
|
61
|
-
*
|
|
40
|
+
* Yields individual {@link ServerSentEvent} objects as they are parsed
|
|
41
|
+
* from the stream in real time.
|
|
62
42
|
*
|
|
63
|
-
* @
|
|
64
|
-
*
|
|
65
|
-
* for await (const event of parseSSEStream(response.body!)) {
|
|
66
|
-
* console.log(event.event, event.data);
|
|
67
|
-
* }
|
|
43
|
+
* @param {Readable} stream - Readable stream carrying `text/event-stream` data.
|
|
44
|
+
* @returns {AsyncGenerator<ServerSentEvent>} Async generator of server-sent events.
|
|
68
45
|
*/
|
|
69
46
|
export declare function parseSSEStream(stream: Readable): AsyncGenerator<ServerSentEvent, void, undefined>;
|
|
70
47
|
//# 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;IAEhD;;;;OAIG;IACH,IAAI,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI;IAexB;;;;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"}
|