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/core/session.js
CHANGED
|
@@ -8,20 +8,18 @@ import { withRetry } from "../middleware/retry.js";
|
|
|
8
8
|
import { getProfile } from "../fingerprints/database.js";
|
|
9
9
|
import { resolveURL, appendParams } from "../utils/url.js";
|
|
10
10
|
import { getDefaultLogger } from "../utils/logger.js";
|
|
11
|
-
import { validateSessionConfig, validateRequest, validateRateLimitConfig, validateHeaderName, validateHeaderValue } from "./validation.js";
|
|
11
|
+
import { validateSessionConfig, validateRequest, validateRateLimitConfig, validateHeaderName, validateHeaderValue, validateUrlSafety } from "./validation.js";
|
|
12
12
|
import { resolveEnvProxy } from "../proxy/env-proxy.js";
|
|
13
13
|
import { CacheStore } from "../cache/store.js";
|
|
14
14
|
import { HSTSStore } from "../hsts/store.js";
|
|
15
|
+
import { buildAuthHeader } from "./auth.js";
|
|
16
|
+
import { compressBody, shouldCompress } from "../utils/compression.js";
|
|
15
17
|
const MAX_REDIRECTS = 20;
|
|
16
18
|
/**
|
|
17
|
-
*
|
|
18
|
-
*
|
|
19
|
-
* many requests to the same origin, or when you need shared cookie state.
|
|
19
|
+
* Manages a persistent HTTP session with connection pooling, cookie storage,
|
|
20
|
+
* caching, HSTS enforcement, interceptors, rate limiting, and retry logic.
|
|
20
21
|
*
|
|
21
|
-
* @
|
|
22
|
-
* const session = new NLcURLSession({ impersonate: 'chrome136' });
|
|
23
|
-
* const response = await session.get('https://example.com');
|
|
24
|
-
* session.close();
|
|
22
|
+
* @class
|
|
25
23
|
*/
|
|
26
24
|
export class NLcURLSession {
|
|
27
25
|
config;
|
|
@@ -34,9 +32,10 @@ export class NLcURLSession {
|
|
|
34
32
|
hstsStore;
|
|
35
33
|
closed = false;
|
|
36
34
|
/**
|
|
37
|
-
* Creates a new
|
|
35
|
+
* Creates a new session with the given configuration.
|
|
38
36
|
*
|
|
39
|
-
* @param {NLcURLSessionConfig} [config={}] - Session-level defaults
|
|
37
|
+
* @param {NLcURLSessionConfig} [config={}] - Session-level defaults and feature toggles.
|
|
38
|
+
* @throws {NLcURLError} If configuration values are invalid.
|
|
40
39
|
*/
|
|
41
40
|
constructor(config = {}) {
|
|
42
41
|
validateSessionConfig(config);
|
|
@@ -70,36 +69,31 @@ export class NLcURLSession {
|
|
|
70
69
|
}
|
|
71
70
|
}
|
|
72
71
|
/**
|
|
73
|
-
* Registers a request interceptor
|
|
74
|
-
* before each request is dispatched. The interceptor may return a modified
|
|
75
|
-
* request object or a `Promise` that resolves to one.
|
|
72
|
+
* Registers a request interceptor invoked before each outgoing request.
|
|
76
73
|
*
|
|
77
|
-
* @param {RequestInterceptor} fn - The interceptor function
|
|
78
|
-
* @returns {this} The session instance
|
|
74
|
+
* @param {RequestInterceptor} fn - The interceptor function.
|
|
75
|
+
* @returns {this} The session instance for chaining.
|
|
79
76
|
*/
|
|
80
77
|
onRequest(fn) {
|
|
81
78
|
this.interceptors.addRequestInterceptor(fn);
|
|
82
79
|
return this;
|
|
83
80
|
}
|
|
84
81
|
/**
|
|
85
|
-
* Registers a response interceptor
|
|
86
|
-
* after each response is received. The interceptor may return a modified
|
|
87
|
-
* response object or a `Promise` that resolves to one.
|
|
82
|
+
* Registers a response interceptor invoked after each incoming response.
|
|
88
83
|
*
|
|
89
|
-
* @param {ResponseInterceptor} fn - The interceptor function
|
|
90
|
-
* @returns {this} The session instance
|
|
84
|
+
* @param {ResponseInterceptor} fn - The interceptor function.
|
|
85
|
+
* @returns {this} The session instance for chaining.
|
|
91
86
|
*/
|
|
92
87
|
onResponse(fn) {
|
|
93
88
|
this.interceptors.addResponseInterceptor(fn);
|
|
94
89
|
return this;
|
|
95
90
|
}
|
|
96
91
|
/**
|
|
97
|
-
*
|
|
98
|
-
* Requests that exceed the configured rate will wait until a token becomes
|
|
99
|
-
* available before proceeding.
|
|
92
|
+
* Configures a token-bucket rate limiter for this session.
|
|
100
93
|
*
|
|
101
|
-
* @param {RateLimitConfig} config - Rate limit parameters
|
|
102
|
-
* @returns {this} The session instance
|
|
94
|
+
* @param {RateLimitConfig} config - Rate limit parameters.
|
|
95
|
+
* @returns {this} The session instance for chaining.
|
|
96
|
+
* @throws {NLcURLError} If the rate limit config is invalid.
|
|
103
97
|
*/
|
|
104
98
|
setRateLimit(config) {
|
|
105
99
|
validateRateLimitConfig(config);
|
|
@@ -107,103 +101,138 @@ export class NLcURLSession {
|
|
|
107
101
|
return this;
|
|
108
102
|
}
|
|
109
103
|
/**
|
|
110
|
-
*
|
|
104
|
+
* Sends an HTTP GET request.
|
|
111
105
|
*
|
|
112
|
-
* @param {string}
|
|
113
|
-
* @param {RequestOptions}
|
|
106
|
+
* @param {string} url - The target URL.
|
|
107
|
+
* @param {RequestOptions} [options] - Additional request options.
|
|
114
108
|
* @returns {Promise<NLcURLResponse>} Resolves with the server response.
|
|
115
109
|
*/
|
|
116
110
|
get(url, options) {
|
|
117
111
|
return this.request({ ...options, url, method: "GET" });
|
|
118
112
|
}
|
|
119
113
|
/**
|
|
120
|
-
*
|
|
114
|
+
* Sends an HTTP POST request.
|
|
121
115
|
*
|
|
122
|
-
* @param {string}
|
|
123
|
-
* @param {RequestBody}
|
|
124
|
-
* @param {RequestOptions} [options] -
|
|
116
|
+
* @param {string} url - The target URL.
|
|
117
|
+
* @param {RequestBody} [body] - The request body.
|
|
118
|
+
* @param {RequestOptions} [options] - Additional request options.
|
|
125
119
|
* @returns {Promise<NLcURLResponse>} Resolves with the server response.
|
|
126
120
|
*/
|
|
127
121
|
post(url, body, options) {
|
|
128
122
|
return this.request({ ...options, url, method: "POST", body });
|
|
129
123
|
}
|
|
130
124
|
/**
|
|
131
|
-
*
|
|
125
|
+
* Sends an HTTP PUT request.
|
|
132
126
|
*
|
|
133
|
-
* @param {string}
|
|
134
|
-
* @param {RequestBody}
|
|
135
|
-
* @param {RequestOptions} [options] -
|
|
127
|
+
* @param {string} url - The target URL.
|
|
128
|
+
* @param {RequestBody} [body] - The request body.
|
|
129
|
+
* @param {RequestOptions} [options] - Additional request options.
|
|
136
130
|
* @returns {Promise<NLcURLResponse>} Resolves with the server response.
|
|
137
131
|
*/
|
|
138
132
|
put(url, body, options) {
|
|
139
133
|
return this.request({ ...options, url, method: "PUT", body });
|
|
140
134
|
}
|
|
141
135
|
/**
|
|
142
|
-
*
|
|
136
|
+
* Sends an HTTP PATCH request.
|
|
143
137
|
*
|
|
144
|
-
* @param {string}
|
|
145
|
-
* @param {RequestBody}
|
|
146
|
-
* @param {RequestOptions} [options] -
|
|
138
|
+
* @param {string} url - The target URL.
|
|
139
|
+
* @param {RequestBody} [body] - The request body.
|
|
140
|
+
* @param {RequestOptions} [options] - Additional request options.
|
|
147
141
|
* @returns {Promise<NLcURLResponse>} Resolves with the server response.
|
|
148
142
|
*/
|
|
149
143
|
patch(url, body, options) {
|
|
150
144
|
return this.request({ ...options, url, method: "PATCH", body });
|
|
151
145
|
}
|
|
152
146
|
/**
|
|
153
|
-
*
|
|
147
|
+
* Sends an HTTP DELETE request.
|
|
154
148
|
*
|
|
155
|
-
* @param {string}
|
|
156
|
-
* @param {RequestOptions} [options] -
|
|
149
|
+
* @param {string} url - The target URL.
|
|
150
|
+
* @param {RequestOptions} [options] - Additional request options.
|
|
157
151
|
* @returns {Promise<NLcURLResponse>} Resolves with the server response.
|
|
158
152
|
*/
|
|
159
153
|
delete(url, options) {
|
|
160
154
|
return this.request({ ...options, url, method: "DELETE" });
|
|
161
155
|
}
|
|
162
156
|
/**
|
|
163
|
-
*
|
|
157
|
+
* Sends an HTTP HEAD request.
|
|
164
158
|
*
|
|
165
|
-
* @param {string}
|
|
166
|
-
* @param {RequestOptions} [options] -
|
|
159
|
+
* @param {string} url - The target URL.
|
|
160
|
+
* @param {RequestOptions} [options] - Additional request options.
|
|
167
161
|
* @returns {Promise<NLcURLResponse>} Resolves with the server response.
|
|
168
162
|
*/
|
|
169
163
|
head(url, options) {
|
|
170
164
|
return this.request({ ...options, url, method: "HEAD" });
|
|
171
165
|
}
|
|
172
166
|
/**
|
|
173
|
-
*
|
|
167
|
+
* Sends an HTTP OPTIONS request.
|
|
174
168
|
*
|
|
175
|
-
* @param {string}
|
|
176
|
-
* @param {RequestOptions} [options] -
|
|
169
|
+
* @param {string} url - The target URL.
|
|
170
|
+
* @param {RequestOptions} [options] - Additional request options.
|
|
177
171
|
* @returns {Promise<NLcURLResponse>} Resolves with the server response.
|
|
178
172
|
*/
|
|
179
173
|
options(url, options) {
|
|
180
174
|
return this.request({ ...options, url, method: "OPTIONS" });
|
|
181
175
|
}
|
|
182
176
|
/**
|
|
183
|
-
*
|
|
184
|
-
* interceptors, redirect following, cookie management, and response
|
|
185
|
-
* interceptors in sequence.
|
|
177
|
+
* Sends an HTTP QUERY request (RFC 9110).
|
|
186
178
|
*
|
|
187
|
-
* @param {
|
|
188
|
-
* @
|
|
189
|
-
* @
|
|
190
|
-
* @
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
179
|
+
* @param {string} url - The target URL.
|
|
180
|
+
* @param {RequestBody} [body] - The query body.
|
|
181
|
+
* @param {RequestOptions} [options] - Additional request options.
|
|
182
|
+
* @returns {Promise<NLcURLResponse>} Resolves with the server response.
|
|
183
|
+
*/
|
|
184
|
+
query(url, body, options) {
|
|
185
|
+
return this.request({ ...options, url, method: "QUERY", body });
|
|
186
|
+
}
|
|
187
|
+
/**
|
|
188
|
+
* Sends an HTTP request with full session features including caching,
|
|
189
|
+
* HSTS upgrade, cookie handling, compression, retry, and interceptors.
|
|
190
|
+
*
|
|
191
|
+
* @param {NLcURLRequest} input - The complete request descriptor.
|
|
192
|
+
* @returns {Promise<NLcURLResponse>} Resolves with the server response.
|
|
193
|
+
* @throws {NLcURLError} If the session is closed.
|
|
194
|
+
* @throws {HTTPError} If `throwOnError` is enabled and the response is non-2xx.
|
|
196
195
|
*/
|
|
197
196
|
async request(input) {
|
|
198
197
|
if (this.closed) {
|
|
199
198
|
throw new NLcURLError("Session is closed", "ERR_SESSION_CLOSED");
|
|
200
199
|
}
|
|
201
200
|
validateRequest(input);
|
|
201
|
+
const blockPrivateIPs = input.blockPrivateIPs ?? this.config.blockPrivateIPs;
|
|
202
|
+
const blockDangerousPorts = input.blockDangerousPorts ?? this.config.blockDangerousPorts;
|
|
203
|
+
if (blockPrivateIPs || blockDangerousPorts) {
|
|
204
|
+
validateUrlSafety(input.url, {
|
|
205
|
+
allowPrivateIPs: !blockPrivateIPs,
|
|
206
|
+
allowDangerousPorts: !blockDangerousPorts,
|
|
207
|
+
});
|
|
208
|
+
}
|
|
202
209
|
if (this.rateLimiter) {
|
|
203
210
|
await this.rateLimiter.acquire();
|
|
204
211
|
}
|
|
205
212
|
let req = this.mergeDefaults(input);
|
|
206
213
|
req = await this.interceptors.processRequest(req);
|
|
214
|
+
const compressionEncoding = req.compressBody ?? this.config.compressBody;
|
|
215
|
+
if (compressionEncoding && req.body) {
|
|
216
|
+
let bodyBuf = null;
|
|
217
|
+
if (Buffer.isBuffer(req.body)) {
|
|
218
|
+
bodyBuf = req.body;
|
|
219
|
+
}
|
|
220
|
+
else if (typeof req.body === "string") {
|
|
221
|
+
bodyBuf = Buffer.from(req.body, "utf-8");
|
|
222
|
+
}
|
|
223
|
+
if (bodyBuf && shouldCompress(bodyBuf.length)) {
|
|
224
|
+
const compressed = await compressBody(bodyBuf, compressionEncoding);
|
|
225
|
+
const headers = { ...req.headers };
|
|
226
|
+
headers["content-encoding"] = compressionEncoding === "br" ? "br" : compressionEncoding;
|
|
227
|
+
headers["content-length"] = String(compressed.length);
|
|
228
|
+
req = { ...req, body: compressed, headers };
|
|
229
|
+
}
|
|
230
|
+
}
|
|
231
|
+
if (req.methodOverride === "QUERY") {
|
|
232
|
+
const headers = { ...req.headers };
|
|
233
|
+
headers["x-http-method-override"] = "QUERY";
|
|
234
|
+
req = { ...req, method: "POST", headers };
|
|
235
|
+
}
|
|
207
236
|
const profile = this.resolveProfile(req);
|
|
208
237
|
const negotiatorOptions = {
|
|
209
238
|
stealth: req.stealth,
|
|
@@ -255,6 +284,19 @@ export class NLcURLSession {
|
|
|
255
284
|
else {
|
|
256
285
|
response = await this.executeWithRedirects(req, negotiatorOptions);
|
|
257
286
|
}
|
|
287
|
+
const authConfig = req.auth ?? this.config.auth;
|
|
288
|
+
if (response.status === 401 && authConfig?.type === "digest" && response.headers["www-authenticate"]) {
|
|
289
|
+
const authHeader = buildAuthHeader(authConfig, {
|
|
290
|
+
method: req.method ?? "GET",
|
|
291
|
+
url: req.url,
|
|
292
|
+
wwwAuthenticate: response.headers["www-authenticate"],
|
|
293
|
+
headers: req.headers,
|
|
294
|
+
});
|
|
295
|
+
if (authHeader) {
|
|
296
|
+
const retryReq = { ...req, headers: { ...req.headers, authorization: authHeader } };
|
|
297
|
+
response = await this.executeWithRedirects(retryReq, negotiatorOptions);
|
|
298
|
+
}
|
|
299
|
+
}
|
|
258
300
|
if (response.timings) {
|
|
259
301
|
response.timings.total = Date.now() - totalStart;
|
|
260
302
|
}
|
|
@@ -285,43 +327,39 @@ export class NLcURLSession {
|
|
|
285
327
|
return response;
|
|
286
328
|
}
|
|
287
329
|
/**
|
|
288
|
-
* Returns the
|
|
289
|
-
* cookie management was disabled via `cookieJar: false`.
|
|
330
|
+
* Returns the session's cookie jar, or `null` if cookies are disabled.
|
|
290
331
|
*
|
|
291
|
-
* @returns {CookieJar|null} The
|
|
332
|
+
* @returns {CookieJar|null} The cookie jar instance.
|
|
292
333
|
*/
|
|
293
334
|
getCookies() {
|
|
294
335
|
return this.cookieJar;
|
|
295
336
|
}
|
|
296
337
|
/**
|
|
297
|
-
* Returns the
|
|
298
|
-
* caching was not enabled.
|
|
338
|
+
* Returns the session's cache store, or `null` if caching is disabled.
|
|
299
339
|
*
|
|
300
|
-
* @returns {CacheStore|null} The cache store
|
|
340
|
+
* @returns {CacheStore|null} The cache store instance.
|
|
301
341
|
*/
|
|
302
342
|
getCache() {
|
|
303
343
|
return this.cacheStore;
|
|
304
344
|
}
|
|
305
345
|
/**
|
|
306
|
-
* Returns the
|
|
307
|
-
* HSTS was not enabled.
|
|
346
|
+
* Returns the session's HSTS store, or `null` if HSTS is disabled.
|
|
308
347
|
*
|
|
309
|
-
* @returns {HSTSStore|null} The HSTS store
|
|
348
|
+
* @returns {HSTSStore|null} The HSTS store instance.
|
|
310
349
|
*/
|
|
311
350
|
getHSTS() {
|
|
312
351
|
return this.hstsStore;
|
|
313
352
|
}
|
|
314
353
|
/**
|
|
315
|
-
* Returns the Alt-Svc store
|
|
316
|
-
*
|
|
354
|
+
* Returns the session's Alt-Svc store for HTTP alternative service lookups.
|
|
355
|
+
*
|
|
356
|
+
* @returns {import("../http/alt-svc.js").AltSvcStore} The Alt-Svc store instance.
|
|
317
357
|
*/
|
|
318
358
|
getAltSvc() {
|
|
319
359
|
return this.negotiator.altSvcStore;
|
|
320
360
|
}
|
|
321
361
|
/**
|
|
322
|
-
* Closes the session
|
|
323
|
-
* method, issuing further requests will throw an `NLcURLError` with code
|
|
324
|
-
* `ERR_SESSION_CLOSED`. Subsequent calls are no-ops.
|
|
362
|
+
* Closes the session and releases all pooled connections.
|
|
325
363
|
*/
|
|
326
364
|
close() {
|
|
327
365
|
if (this.closed)
|
|
@@ -362,6 +400,20 @@ export class NLcURLSession {
|
|
|
362
400
|
if (input.range && !headers["range"]) {
|
|
363
401
|
headers["range"] = input.range;
|
|
364
402
|
}
|
|
403
|
+
const authConfig = input.auth ?? cfg.auth;
|
|
404
|
+
if (authConfig && !headers["authorization"]) {
|
|
405
|
+
const authHeader = buildAuthHeader(authConfig, {
|
|
406
|
+
method: input.method ?? "GET",
|
|
407
|
+
url,
|
|
408
|
+
headers,
|
|
409
|
+
});
|
|
410
|
+
if (authHeader) {
|
|
411
|
+
headers["authorization"] = authHeader;
|
|
412
|
+
}
|
|
413
|
+
}
|
|
414
|
+
if (input.expect100Continue && input.body && !headers["expect"]) {
|
|
415
|
+
headers["expect"] = "100-continue";
|
|
416
|
+
}
|
|
365
417
|
if (this.cookieJar) {
|
|
366
418
|
const parsedUrl = new URL(url);
|
|
367
419
|
const cookieHeader = this.cookieJar.getCookieHeader(parsedUrl);
|
|
@@ -408,6 +460,7 @@ export class NLcURLSession {
|
|
|
408
460
|
let redirectCount = 0;
|
|
409
461
|
const maxRedirects = req.maxRedirects ?? MAX_REDIRECTS;
|
|
410
462
|
const shouldFollow = req.followRedirects ?? true;
|
|
463
|
+
const visitedUrls = new Set([req.url]);
|
|
411
464
|
while (true) {
|
|
412
465
|
if (currentReq.signal?.aborted) {
|
|
413
466
|
throw new AbortError();
|
|
@@ -416,14 +469,16 @@ export class NLcURLSession {
|
|
|
416
469
|
if (currentReq.signal) {
|
|
417
470
|
const sig = currentReq.signal;
|
|
418
471
|
response = await new Promise((resolve, reject) => {
|
|
419
|
-
const onAbort = () =>
|
|
472
|
+
const onAbort = () => {
|
|
473
|
+
reject(new AbortError());
|
|
474
|
+
};
|
|
420
475
|
sig.addEventListener("abort", onAbort, { once: true });
|
|
421
476
|
this.negotiator.send(currentReq, options).then((res) => {
|
|
422
477
|
sig.removeEventListener("abort", onAbort);
|
|
423
478
|
resolve(res);
|
|
424
479
|
}, (err) => {
|
|
425
480
|
sig.removeEventListener("abort", onAbort);
|
|
426
|
-
reject(err);
|
|
481
|
+
reject(err instanceof Error ? err : new NLcURLError(String(err), "ERR_UNKNOWN"));
|
|
427
482
|
});
|
|
428
483
|
});
|
|
429
484
|
}
|
|
@@ -470,6 +525,10 @@ export class NLcURLSession {
|
|
|
470
525
|
throw err;
|
|
471
526
|
throw new NLcURLError(`Invalid redirect URL: ${location}`, "ERR_INVALID_REDIRECT");
|
|
472
527
|
}
|
|
528
|
+
if (visitedUrls.has(redirectUrl)) {
|
|
529
|
+
throw new NLcURLError(`Redirect loop detected: ${redirectUrl}`, "ERR_REDIRECT_LOOP");
|
|
530
|
+
}
|
|
531
|
+
visitedUrls.add(redirectUrl);
|
|
473
532
|
if (this.cookieJar) {
|
|
474
533
|
const url = new URL(response.url);
|
|
475
534
|
this.cookieJar.setCookies(response.headers, url, response.rawHeaders);
|
package/dist/core/session.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"session.js","sourceRoot":"","sources":["../../src/core/session.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"session.js","sourceRoot":"","sources":["../../src/core/session.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,107 +1,122 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* Validates a
|
|
3
|
-
*
|
|
2
|
+
* Validates a URL for SSRF safety: checks port blocklist, private IP ranges,
|
|
3
|
+
* and URL length. Call this before making outbound requests.
|
|
4
|
+
*
|
|
5
|
+
* @param {string} url - The URL to validate.
|
|
6
|
+
* @param {object} [options] - Validation options.
|
|
7
|
+
* @param {boolean} [options.allowPrivateIPs] - Skip private IP checks (default: false).
|
|
8
|
+
* @param {boolean} [options.allowDangerousPorts] - Skip port blocklist (default: false).
|
|
9
|
+
* @throws {NLcURLError} If the URL targets a dangerous port or private IP.
|
|
10
|
+
*/
|
|
11
|
+
export declare function validateUrlSafety(url: string, options?: {
|
|
12
|
+
allowPrivateIPs?: boolean;
|
|
13
|
+
allowDangerousPorts?: boolean;
|
|
14
|
+
}): void;
|
|
15
|
+
/**
|
|
16
|
+
* Validates that a header name conforms to RFC 7230 token syntax.
|
|
17
|
+
*
|
|
18
|
+
* @param {string} name - The header name to validate.
|
|
19
|
+
* @throws {NLcURLError} If the name contains invalid characters.
|
|
4
20
|
*/
|
|
5
21
|
export declare function validateHeaderName(name: string): void;
|
|
6
22
|
/**
|
|
7
|
-
* Validates a
|
|
8
|
-
*
|
|
9
|
-
*
|
|
23
|
+
* Validates that a header value does not contain forbidden control characters.
|
|
24
|
+
*
|
|
25
|
+
* @param {string} name - The header name (used in the error message).
|
|
26
|
+
* @param {string} value - The header value to validate.
|
|
27
|
+
* @throws {NLcURLError} If the value contains CR, LF, NUL, or other forbidden characters.
|
|
10
28
|
*/
|
|
11
29
|
export declare function validateHeaderValue(name: string, value: string): void;
|
|
12
30
|
/**
|
|
13
|
-
* Asserts that
|
|
31
|
+
* Asserts that the value is a non-empty string.
|
|
14
32
|
*
|
|
15
33
|
* @param {unknown} value - The value to check.
|
|
16
|
-
* @param {string}
|
|
34
|
+
* @param {string} label - A human-readable label for error messages.
|
|
17
35
|
* @throws {NLcURLError} If the value is not a non-empty string.
|
|
18
36
|
*/
|
|
19
37
|
export declare function assertNonEmptyString(value: unknown, label: string): asserts value is string;
|
|
20
38
|
/**
|
|
21
|
-
* Asserts that
|
|
39
|
+
* Asserts that the value is a positive finite number.
|
|
22
40
|
*
|
|
23
41
|
* @param {unknown} value - The value to check.
|
|
24
|
-
* @param {string}
|
|
42
|
+
* @param {string} label - A human-readable label for error messages.
|
|
25
43
|
* @throws {NLcURLError} If the value is not a positive finite number.
|
|
26
44
|
*/
|
|
27
45
|
export declare function assertPositiveNumber(value: unknown, label: string): asserts value is number;
|
|
28
46
|
/**
|
|
29
|
-
* Asserts that
|
|
47
|
+
* Asserts that the value is a non-negative integer.
|
|
30
48
|
*
|
|
31
49
|
* @param {unknown} value - The value to check.
|
|
32
|
-
* @param {string}
|
|
50
|
+
* @param {string} label - A human-readable label for error messages.
|
|
33
51
|
* @throws {NLcURLError} If the value is not a non-negative integer.
|
|
34
52
|
*/
|
|
35
53
|
export declare function assertNonNegativeInt(value: unknown, label: string): asserts value is number;
|
|
36
54
|
/**
|
|
37
|
-
* Asserts that
|
|
55
|
+
* Asserts that the value belongs to a predefined set of allowed values.
|
|
38
56
|
*
|
|
39
|
-
* @
|
|
40
|
-
* @param {
|
|
41
|
-
* @param {
|
|
57
|
+
* @template T
|
|
58
|
+
* @param {unknown} value - The value to check.
|
|
59
|
+
* @param {Set<T>} allowed - The set of allowed values.
|
|
60
|
+
* @param {string} label - A human-readable label for error messages.
|
|
42
61
|
* @throws {NLcURLError} If the value is not in the allowed set.
|
|
43
62
|
*/
|
|
44
63
|
export declare function assertEnum<T>(value: unknown, allowed: Set<T>, label: string): asserts value is T;
|
|
45
64
|
/**
|
|
46
|
-
* Asserts that
|
|
47
|
-
* class instance other than `Object`).
|
|
65
|
+
* Asserts that the value is a plain object (not null, not an array).
|
|
48
66
|
*
|
|
49
67
|
* @param {unknown} value - The value to check.
|
|
50
|
-
* @param {string}
|
|
68
|
+
* @param {string} label - A human-readable label for error messages.
|
|
51
69
|
* @throws {NLcURLError} If the value is not a plain object.
|
|
52
70
|
*/
|
|
53
71
|
export declare function assertPlainObject(value: unknown, label: string): asserts value is Record<string, unknown>;
|
|
54
72
|
/**
|
|
55
|
-
* Validates
|
|
73
|
+
* Validates that a URL string is well-formed and uses one of the allowed schemes.
|
|
56
74
|
*
|
|
57
|
-
* @param {string}
|
|
58
|
-
* @param {Set<string>} [allowedSchemes] - Permitted
|
|
59
|
-
* @throws {NLcURLError} If the URL is invalid or uses
|
|
75
|
+
* @param {string} url - The URL to validate.
|
|
76
|
+
* @param {Set<string>} [allowedSchemes] - Permitted URL schemes. Defaults to `http:` and `https:`.
|
|
77
|
+
* @throws {NLcURLError} If the URL is invalid or uses a disallowed scheme.
|
|
60
78
|
*/
|
|
61
79
|
export declare function validateUrl(url: string, allowedSchemes?: Set<string>): void;
|
|
62
80
|
/**
|
|
63
|
-
* Validates
|
|
64
|
-
* finite number when present.
|
|
81
|
+
* Validates a timeout value, accepting either a positive number or a TimeoutConfig object.
|
|
65
82
|
*
|
|
66
|
-
* @param {unknown} timeout -
|
|
67
|
-
* @throws {NLcURLError} If
|
|
83
|
+
* @param {unknown} timeout - The timeout value to validate.
|
|
84
|
+
* @throws {NLcURLError} If the timeout is not a valid number or TimeoutConfig.
|
|
68
85
|
*/
|
|
69
86
|
export declare function validateTimeout(timeout: unknown): void;
|
|
70
87
|
/**
|
|
71
|
-
* Validates all
|
|
72
|
-
* Called at the entry of every public request function before any processing.
|
|
88
|
+
* Validates all fields of a request descriptor.
|
|
73
89
|
*
|
|
74
|
-
* @param {Record<string, unknown>} input - The
|
|
75
|
-
* @throws {NLcURLError} If any field
|
|
90
|
+
* @param {Record<string, unknown>} input - The request fields to validate.
|
|
91
|
+
* @throws {NLcURLError} If any field value is invalid.
|
|
76
92
|
*/
|
|
77
93
|
export declare function validateRequest(input: Record<string, unknown>): void;
|
|
78
94
|
/**
|
|
79
|
-
* Validates
|
|
80
|
-
* {@link NLcURLSession} constructor.
|
|
95
|
+
* Validates all fields of a session configuration object.
|
|
81
96
|
*
|
|
82
|
-
* @param {Record<string, unknown>} config - The
|
|
83
|
-
* @throws {NLcURLError} If any field
|
|
97
|
+
* @param {Record<string, unknown>} config - The session config fields to validate.
|
|
98
|
+
* @throws {NLcURLError} If any field value is invalid.
|
|
84
99
|
*/
|
|
85
100
|
export declare function validateSessionConfig(config: Record<string, unknown>): void;
|
|
86
101
|
/**
|
|
87
|
-
* Validates
|
|
102
|
+
* Validates retry configuration fields.
|
|
88
103
|
*
|
|
89
|
-
* @param {Record<string, unknown>} config - The
|
|
90
|
-
* @throws {NLcURLError} If any
|
|
104
|
+
* @param {Record<string, unknown>} config - The retry config fields to validate.
|
|
105
|
+
* @throws {NLcURLError} If any field value is invalid.
|
|
91
106
|
*/
|
|
92
107
|
export declare function validateRetryConfig(config: Record<string, unknown>): void;
|
|
93
108
|
/**
|
|
94
|
-
* Validates rate limit configuration.
|
|
109
|
+
* Validates rate limit configuration fields.
|
|
95
110
|
*
|
|
96
|
-
* @param {Record<string, unknown>} config - The
|
|
97
|
-
* @throws {NLcURLError} If
|
|
111
|
+
* @param {Record<string, unknown>} config - The rate limit config fields to validate.
|
|
112
|
+
* @throws {NLcURLError} If maxRequests or windowMs is invalid.
|
|
98
113
|
*/
|
|
99
114
|
export declare function validateRateLimitConfig(config: Record<string, unknown>): void;
|
|
100
115
|
/**
|
|
101
|
-
* Validates a
|
|
116
|
+
* Validates that a URL uses the `ws:` or `wss:` scheme for WebSocket connections.
|
|
102
117
|
*
|
|
103
|
-
* @param {string} url - The
|
|
104
|
-
* @throws {NLcURLError} If the URL is invalid or uses a non-WebSocket
|
|
118
|
+
* @param {string} url - The URL to validate.
|
|
119
|
+
* @throws {NLcURLError} If the URL is invalid or uses a non-WebSocket scheme.
|
|
105
120
|
*/
|
|
106
121
|
export declare function validateWebSocketUrl(url: string): void;
|
|
107
122
|
//# sourceMappingURL=validation.d.ts.map
|