nlcurl 0.1.0 → 0.3.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 +5 -13
- package/dist/cli/args.d.ts +37 -5
- package/dist/cli/args.d.ts.map +1 -1
- package/dist/cli/args.js +6 -17
- package/dist/cli/args.js.map +1 -1
- package/dist/cli/index.d.ts +3 -3
- package/dist/cli/index.js +25 -10
- package/dist/cli/index.js.map +1 -1
- package/dist/cli/output.d.ts +24 -7
- package/dist/cli/output.d.ts.map +1 -1
- package/dist/cli/output.js +24 -12
- package/dist/cli/output.js.map +1 -1
- package/dist/cookies/jar.d.ts +45 -13
- package/dist/cookies/jar.d.ts.map +1 -1
- package/dist/cookies/jar.js +88 -29
- package/dist/cookies/jar.js.map +1 -1
- package/dist/cookies/parser.d.ts +25 -3
- package/dist/cookies/parser.d.ts.map +1 -1
- package/dist/cookies/parser.js +12 -7
- package/dist/cookies/parser.js.map +1 -1
- package/dist/core/client.d.ts +49 -33
- package/dist/core/client.d.ts.map +1 -1
- package/dist/core/client.js +65 -38
- package/dist/core/client.js.map +1 -1
- package/dist/core/errors.d.ts +94 -6
- package/dist/core/errors.d.ts.map +1 -1
- package/dist/core/errors.js +95 -6
- package/dist/core/errors.js.map +1 -1
- package/dist/core/request.d.ts +99 -32
- package/dist/core/request.d.ts.map +1 -1
- package/dist/core/request.js +0 -3
- package/dist/core/request.js.map +1 -1
- package/dist/core/response.d.ts +92 -8
- package/dist/core/response.d.ts.map +1 -1
- package/dist/core/response.js +92 -7
- package/dist/core/response.js.map +1 -1
- package/dist/core/session.d.ts +109 -14
- package/dist/core/session.d.ts.map +1 -1
- package/dist/core/session.js +143 -49
- package/dist/core/session.js.map +1 -1
- package/dist/fingerprints/akamai.d.ts +11 -11
- package/dist/fingerprints/akamai.d.ts.map +1 -1
- package/dist/fingerprints/akamai.js +10 -14
- package/dist/fingerprints/akamai.js.map +1 -1
- package/dist/fingerprints/database.d.ts +14 -15
- package/dist/fingerprints/database.d.ts.map +1 -1
- package/dist/fingerprints/database.js +14 -19
- package/dist/fingerprints/database.js.map +1 -1
- package/dist/fingerprints/extensions.d.ts +121 -27
- package/dist/fingerprints/extensions.d.ts.map +1 -1
- package/dist/fingerprints/extensions.js +132 -49
- package/dist/fingerprints/extensions.js.map +1 -1
- package/dist/fingerprints/ja3.d.ts +34 -18
- package/dist/fingerprints/ja3.d.ts.map +1 -1
- package/dist/fingerprints/ja3.js +34 -18
- package/dist/fingerprints/ja3.js.map +1 -1
- package/dist/fingerprints/profiles/chrome.d.ts +21 -10
- package/dist/fingerprints/profiles/chrome.d.ts.map +1 -1
- package/dist/fingerprints/profiles/chrome.js +25 -22
- package/dist/fingerprints/profiles/chrome.js.map +1 -1
- package/dist/fingerprints/profiles/edge.d.ts +10 -7
- package/dist/fingerprints/profiles/edge.d.ts.map +1 -1
- package/dist/fingerprints/profiles/edge.js +10 -10
- package/dist/fingerprints/profiles/edge.js.map +1 -1
- package/dist/fingerprints/profiles/firefox.d.ts +11 -3
- package/dist/fingerprints/profiles/firefox.d.ts.map +1 -1
- package/dist/fingerprints/profiles/firefox.js +15 -14
- package/dist/fingerprints/profiles/firefox.js.map +1 -1
- package/dist/fingerprints/profiles/safari.d.ts +14 -3
- package/dist/fingerprints/profiles/safari.d.ts.map +1 -1
- package/dist/fingerprints/profiles/safari.js +16 -13
- package/dist/fingerprints/profiles/safari.js.map +1 -1
- package/dist/fingerprints/profiles/tor.d.ts +8 -7
- package/dist/fingerprints/profiles/tor.d.ts.map +1 -1
- package/dist/fingerprints/profiles/tor.js +8 -14
- package/dist/fingerprints/profiles/tor.js.map +1 -1
- package/dist/fingerprints/types.d.ts +70 -47
- package/dist/fingerprints/types.d.ts.map +1 -1
- package/dist/fingerprints/types.js +0 -7
- package/dist/fingerprints/types.js.map +1 -1
- package/dist/http/h1/client.d.ts +30 -9
- package/dist/http/h1/client.d.ts.map +1 -1
- package/dist/http/h1/client.js +153 -20
- package/dist/http/h1/client.js.map +1 -1
- package/dist/http/h1/encoder.d.ts +9 -6
- package/dist/http/h1/encoder.d.ts.map +1 -1
- package/dist/http/h1/encoder.js +14 -13
- package/dist/http/h1/encoder.js.map +1 -1
- package/dist/http/h1/parser.d.ts +68 -14
- package/dist/http/h1/parser.d.ts.map +1 -1
- package/dist/http/h1/parser.js +92 -37
- package/dist/http/h1/parser.js.map +1 -1
- package/dist/http/h2/client.d.ts +87 -14
- package/dist/http/h2/client.d.ts.map +1 -1
- package/dist/http/h2/client.js +496 -74
- package/dist/http/h2/client.js.map +1 -1
- package/dist/http/h2/frames.d.ts +103 -6
- package/dist/http/h2/frames.d.ts.map +1 -1
- package/dist/http/h2/frames.js +96 -17
- package/dist/http/h2/frames.js.map +1 -1
- package/dist/http/h2/hpack.d.ts +40 -5
- package/dist/http/h2/hpack.d.ts.map +1 -1
- package/dist/http/h2/hpack.js +50 -36
- package/dist/http/h2/hpack.js.map +1 -1
- package/dist/http/negotiator.d.ts +36 -12
- package/dist/http/negotiator.d.ts.map +1 -1
- package/dist/http/negotiator.js +96 -24
- package/dist/http/negotiator.js.map +1 -1
- package/dist/http/pool.d.ts +66 -17
- package/dist/http/pool.d.ts.map +1 -1
- package/dist/http/pool.js +47 -20
- package/dist/http/pool.js.map +1 -1
- package/dist/index.d.ts +2 -3
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +0 -13
- package/dist/index.js.map +1 -1
- package/dist/middleware/interceptor.d.ts +40 -8
- package/dist/middleware/interceptor.d.ts.map +1 -1
- package/dist/middleware/interceptor.js +28 -6
- package/dist/middleware/interceptor.js.map +1 -1
- package/dist/middleware/rate-limiter.d.ts +18 -5
- package/dist/middleware/rate-limiter.d.ts.map +1 -1
- package/dist/middleware/rate-limiter.js +12 -7
- package/dist/middleware/rate-limiter.js.map +1 -1
- package/dist/middleware/retry.d.ts +17 -5
- package/dist/middleware/retry.d.ts.map +1 -1
- package/dist/middleware/retry.js +13 -11
- package/dist/middleware/retry.js.map +1 -1
- package/dist/proxy/http-proxy.d.ts +17 -9
- package/dist/proxy/http-proxy.d.ts.map +1 -1
- package/dist/proxy/http-proxy.js +9 -13
- package/dist/proxy/http-proxy.js.map +1 -1
- package/dist/proxy/socks.d.ts +20 -9
- package/dist/proxy/socks.d.ts.map +1 -1
- package/dist/proxy/socks.js +20 -31
- package/dist/proxy/socks.js.map +1 -1
- package/dist/tls/constants.d.ts +74 -4
- package/dist/tls/constants.d.ts.map +1 -1
- package/dist/tls/constants.js +75 -21
- package/dist/tls/constants.js.map +1 -1
- package/dist/tls/node-engine.d.ts +17 -16
- package/dist/tls/node-engine.d.ts.map +1 -1
- package/dist/tls/node-engine.js +20 -27
- package/dist/tls/node-engine.js.map +1 -1
- package/dist/tls/stealth/client-hello.d.ts +32 -16
- package/dist/tls/stealth/client-hello.d.ts.map +1 -1
- package/dist/tls/stealth/client-hello.js +13 -37
- package/dist/tls/stealth/client-hello.js.map +1 -1
- package/dist/tls/stealth/engine.d.ts +18 -10
- package/dist/tls/stealth/engine.d.ts.map +1 -1
- package/dist/tls/stealth/engine.js +55 -40
- package/dist/tls/stealth/engine.js.map +1 -1
- package/dist/tls/stealth/handshake.d.ts +31 -17
- package/dist/tls/stealth/handshake.d.ts.map +1 -1
- package/dist/tls/stealth/handshake.js +173 -74
- package/dist/tls/stealth/handshake.js.map +1 -1
- package/dist/tls/stealth/key-schedule.d.ts +90 -32
- package/dist/tls/stealth/key-schedule.d.ts.map +1 -1
- package/dist/tls/stealth/key-schedule.js +80 -46
- package/dist/tls/stealth/key-schedule.js.map +1 -1
- package/dist/tls/stealth/record-layer.d.ts +76 -25
- package/dist/tls/stealth/record-layer.d.ts.map +1 -1
- package/dist/tls/stealth/record-layer.js +66 -36
- package/dist/tls/stealth/record-layer.js.map +1 -1
- package/dist/tls/types.d.ts +33 -25
- package/dist/tls/types.d.ts.map +1 -1
- package/dist/tls/types.js +0 -4
- package/dist/tls/types.js.map +1 -1
- package/dist/utils/buffer-reader.d.ts +99 -7
- package/dist/utils/buffer-reader.d.ts.map +1 -1
- package/dist/utils/buffer-reader.js +99 -7
- package/dist/utils/buffer-reader.js.map +1 -1
- package/dist/utils/buffer-writer.d.ts +99 -10
- package/dist/utils/buffer-writer.d.ts.map +1 -1
- package/dist/utils/buffer-writer.js +101 -12
- package/dist/utils/buffer-writer.js.map +1 -1
- package/dist/utils/encoding.d.ts +33 -8
- package/dist/utils/encoding.d.ts.map +1 -1
- package/dist/utils/encoding.js +58 -13
- package/dist/utils/encoding.js.map +1 -1
- package/dist/utils/logger.d.ts +61 -2
- package/dist/utils/logger.d.ts.map +1 -1
- package/dist/utils/logger.js +52 -4
- package/dist/utils/logger.js.map +1 -1
- package/dist/utils/url.d.ts +47 -7
- package/dist/utils/url.d.ts.map +1 -1
- package/dist/utils/url.js +47 -7
- package/dist/utils/url.js.map +1 -1
- package/dist/ws/client.d.ts +60 -15
- package/dist/ws/client.d.ts.map +1 -1
- package/dist/ws/client.js +38 -27
- package/dist/ws/client.js.map +1 -1
- package/dist/ws/frame.d.ts +43 -9
- package/dist/ws/frame.d.ts.map +1 -1
- package/dist/ws/frame.js +35 -19
- package/dist/ws/frame.js.map +1 -1
- package/package.json +4 -4
package/README.md
CHANGED
|
@@ -8,10 +8,13 @@ NLcURL provides session-based and one-shot HTTP APIs, browser profile impersonat
|
|
|
8
8
|
|
|
9
9
|
- Zero runtime dependencies
|
|
10
10
|
- Session API with connection pooling
|
|
11
|
-
- HTTP/1.1 and HTTP/2 (ALPN negotiated)
|
|
11
|
+
- HTTP/1.1 and HTTP/2 (ALPN negotiated) with RFC 9113 flow control
|
|
12
12
|
- Browser profile impersonation (Chrome, Firefox, Safari, Edge, Tor)
|
|
13
13
|
- Optional custom JA3 and Akamai H2 fingerprint values in request model
|
|
14
|
-
- Cookie jar with RFC 6265-like behavior
|
|
14
|
+
- Cookie jar with RFC 6265-like behavior; `Set-Cookie` headers preserved individually via `getAll()`
|
|
15
|
+
- Streaming response support (`stream: true`) with automatic decompression
|
|
16
|
+
- Configurable DNS family (`dnsFamily: 4 | 6`) for IPv4/IPv6 control
|
|
17
|
+
- Automatic retry on H2 RST_STREAM protocol errors (codes 1, 2, 7, 11)
|
|
15
18
|
- CLI (`nlcurl`) for scripted and interactive use
|
|
16
19
|
- WebSocket client with optional impersonated TLS handshake
|
|
17
20
|
|
|
@@ -146,17 +149,6 @@ Additional commands:
|
|
|
146
149
|
- `docs/CONFIGURATION.md`: request/session/CLI configuration
|
|
147
150
|
- `docs/ONBOARDING.md`: contributor onboarding guide
|
|
148
151
|
|
|
149
|
-
## Current Scope and Known Gaps
|
|
150
|
-
|
|
151
|
-
The project contains several lower-level modules that are present and tested in isolation but not fully integrated into the high-level request path yet.
|
|
152
|
-
|
|
153
|
-
- Proxy modules exist (`src/proxy/http-proxy.ts`, `src/proxy/socks.ts`), but `request.proxy` and `request.proxyAuth` are not currently applied by the protocol negotiator.
|
|
154
|
-
- Retry middleware helper exists (`src/middleware/retry.ts`), but session/client request execution does not currently invoke it.
|
|
155
|
-
- CLI `--cookie-jar` flag is parsed but not currently persisted to a cookie-jar file.
|
|
156
|
-
- `RequestTimings` fields are present in responses, but only partial timing data is currently populated by transport layers.
|
|
157
|
-
|
|
158
|
-
These behaviors are documented intentionally to prevent ambiguity in production integration.
|
|
159
|
-
|
|
160
152
|
## License
|
|
161
153
|
|
|
162
154
|
MIT. See `LICENSE`.
|
package/dist/cli/args.d.ts
CHANGED
|
@@ -1,9 +1,37 @@
|
|
|
1
1
|
/**
|
|
2
|
-
*
|
|
2
|
+
* The result of parsing a `nlcurl` command-line invocation. Every flag has a
|
|
3
|
+
* default value so the object is always fully defined; only fields affected by
|
|
4
|
+
* the user's arguments differ from the defaults.
|
|
3
5
|
*
|
|
4
|
-
*
|
|
5
|
-
*
|
|
6
|
-
*
|
|
6
|
+
* @typedef {Object} ParsedArgs
|
|
7
|
+
* @property {string} url - Request URL.
|
|
8
|
+
* @property {string} method - HTTP method (default: `"GET"`).
|
|
9
|
+
* @property {Array<[string,string]>} headers - Request headers in `[name, value]` pairs.
|
|
10
|
+
* @property {string | null} data - Request body string (`-d` / `--data`).
|
|
11
|
+
* @property {string | null} dataRaw - Raw request body string (`--data-raw`).
|
|
12
|
+
* @property {string | null} output - File path to write the response body to.
|
|
13
|
+
* @property {string | null} impersonate - Browser profile name for fingerprint impersonation.
|
|
14
|
+
* @property {string | null} ja3 - Custom JA3 fingerprint string.
|
|
15
|
+
* @property {string | null} akamai - Custom Akamai HTTP/2 fingerprint string.
|
|
16
|
+
* @property {boolean} stealth - Use stealth TLS engine.
|
|
17
|
+
* @property {string | null} proxy - Proxy URL.
|
|
18
|
+
* @property {string | null} proxyAuth - Proxy credentials (`user:password`).
|
|
19
|
+
* @property {boolean} insecure - Skip TLS certificate verification.
|
|
20
|
+
* @property {boolean} followRedirects - Follow HTTP redirects (default: `true`).
|
|
21
|
+
* @property {number} maxRedirects - Maximum number of redirects to follow.
|
|
22
|
+
* @property {number} timeout - Request timeout in milliseconds.
|
|
23
|
+
* @property {string | null} httpVersion - Force HTTP version (`"1.1"` or `"2"`).
|
|
24
|
+
* @property {boolean} verbose - Print verbose request/response details.
|
|
25
|
+
* @property {boolean} silent - Suppress all non-critical output.
|
|
26
|
+
* @property {boolean} compressed - Request and accept compressed responses.
|
|
27
|
+
* @property {boolean} head - Send a HEAD request.
|
|
28
|
+
* @property {boolean} include - Include response headers in output.
|
|
29
|
+
* @property {boolean} listProfiles - Print available browser profiles and exit.
|
|
30
|
+
* @property {boolean} help - Print help text and exit.
|
|
31
|
+
* @property {boolean} version - Print version string and exit.
|
|
32
|
+
* @property {string | null} cookies - Cookie string to send with the request.
|
|
33
|
+
* @property {string | null} cookieJar - Path to a Netscape-format cookie jar file.
|
|
34
|
+
* @property {string | null} userAgent - Override the User-Agent header.
|
|
7
35
|
*/
|
|
8
36
|
export interface ParsedArgs {
|
|
9
37
|
url: string;
|
|
@@ -36,7 +64,11 @@ export interface ParsedArgs {
|
|
|
36
64
|
userAgent: string | null;
|
|
37
65
|
}
|
|
38
66
|
/**
|
|
39
|
-
*
|
|
67
|
+
* Parses `nlcurl` command-line arguments from `argv` into a structured
|
|
68
|
+
* `ParsedArgs` object. Unknown flags are silently ignored.
|
|
69
|
+
*
|
|
70
|
+
* @param {string[]} argv - Raw process argument vector (typically `process.argv`).
|
|
71
|
+
* @returns {ParsedArgs} Parsed argument object with defaults applied for omitted flags.
|
|
40
72
|
*/
|
|
41
73
|
export declare function parseArgs(argv: string[]): ParsedArgs;
|
|
42
74
|
//# sourceMappingURL=args.d.ts.map
|
package/dist/cli/args.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"args.d.ts","sourceRoot":"","sources":["../../src/cli/args.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"args.d.ts","sourceRoot":"","sources":["../../src/cli/args.ts"],"names":[],"mappings":"AACA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAkCG;AACH,MAAM,WAAW,UAAU;IACzB,GAAG,EAAE,MAAM,CAAC;IACZ,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,KAAK,CAAC,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;IACjC,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IACpB,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,GAAG,EAAE,MAAM,GAAG,IAAI,CAAC;IACnB,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,OAAO,EAAE,OAAO,CAAC;IACjB,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,QAAQ,EAAE,OAAO,CAAC;IAClB,eAAe,EAAE,OAAO,CAAC;IACzB,YAAY,EAAE,MAAM,CAAC;IACrB,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,OAAO,EAAE,OAAO,CAAC;IACjB,MAAM,EAAE,OAAO,CAAC;IAChB,UAAU,EAAE,OAAO,CAAC;IACpB,IAAI,EAAE,OAAO,CAAC;IACd,OAAO,EAAE,OAAO,CAAC;IACjB,YAAY,EAAE,OAAO,CAAC;IACtB,IAAI,EAAE,OAAO,CAAC;IACd,OAAO,EAAE,OAAO,CAAC;IACjB,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;CAC1B;AAiCD;;;;;;GAMG;AACH,wBAAgB,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,UAAU,CA+KpD"}
|
package/dist/cli/args.js
CHANGED
|
@@ -1,10 +1,3 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* CLI argument parser.
|
|
3
|
-
*
|
|
4
|
-
* A zero-dependency argv parser tailored for nlcurl flags.
|
|
5
|
-
* Supports long flags (--flag value, --flag=value), short flags (-X GET),
|
|
6
|
-
* and boolean toggles (-k, --insecure).
|
|
7
|
-
*/
|
|
8
1
|
const DEFAULTS = {
|
|
9
2
|
url: '',
|
|
10
3
|
method: 'GET',
|
|
@@ -36,15 +29,18 @@ const DEFAULTS = {
|
|
|
36
29
|
userAgent: null,
|
|
37
30
|
};
|
|
38
31
|
/**
|
|
39
|
-
*
|
|
32
|
+
* Parses `nlcurl` command-line arguments from `argv` into a structured
|
|
33
|
+
* `ParsedArgs` object. Unknown flags are silently ignored.
|
|
34
|
+
*
|
|
35
|
+
* @param {string[]} argv - Raw process argument vector (typically `process.argv`).
|
|
36
|
+
* @returns {ParsedArgs} Parsed argument object with defaults applied for omitted flags.
|
|
40
37
|
*/
|
|
41
38
|
export function parseArgs(argv) {
|
|
42
39
|
const result = { ...DEFAULTS, headers: [] };
|
|
43
|
-
const args = argv.slice(2);
|
|
40
|
+
const args = argv.slice(2);
|
|
44
41
|
let i = 0;
|
|
45
42
|
while (i < args.length) {
|
|
46
43
|
const arg = args[i];
|
|
47
|
-
// Handle --flag=value syntax
|
|
48
44
|
if (arg.startsWith('--') && arg.includes('=')) {
|
|
49
45
|
const eqIdx = arg.indexOf('=');
|
|
50
46
|
const flag = arg.substring(0, eqIdx);
|
|
@@ -54,7 +50,6 @@ export function parseArgs(argv) {
|
|
|
54
50
|
continue;
|
|
55
51
|
}
|
|
56
52
|
switch (arg) {
|
|
57
|
-
// ---- Request configuration ----
|
|
58
53
|
case '-X':
|
|
59
54
|
case '--request':
|
|
60
55
|
result.method = requireNext(args, ++i, arg).toUpperCase();
|
|
@@ -87,7 +82,6 @@ export function parseArgs(argv) {
|
|
|
87
82
|
case '--user-agent':
|
|
88
83
|
result.userAgent = requireNext(args, ++i, arg);
|
|
89
84
|
break;
|
|
90
|
-
// ---- Output ----
|
|
91
85
|
case '-o':
|
|
92
86
|
case '--output':
|
|
93
87
|
result.output = requireNext(args, ++i, arg);
|
|
@@ -112,7 +106,6 @@ export function parseArgs(argv) {
|
|
|
112
106
|
case '--compressed':
|
|
113
107
|
result.compressed = true;
|
|
114
108
|
break;
|
|
115
|
-
// ---- Impersonation ----
|
|
116
109
|
case '--impersonate':
|
|
117
110
|
result.impersonate = requireNext(args, ++i, arg);
|
|
118
111
|
break;
|
|
@@ -128,7 +121,6 @@ export function parseArgs(argv) {
|
|
|
128
121
|
case '--list-profiles':
|
|
129
122
|
result.listProfiles = true;
|
|
130
123
|
break;
|
|
131
|
-
// ---- Connection ----
|
|
132
124
|
case '-x':
|
|
133
125
|
case '--proxy':
|
|
134
126
|
result.proxy = requireNext(args, ++i, arg);
|
|
@@ -161,7 +153,6 @@ export function parseArgs(argv) {
|
|
|
161
153
|
case '--http2':
|
|
162
154
|
result.httpVersion = '2';
|
|
163
155
|
break;
|
|
164
|
-
// ---- Cookies ----
|
|
165
156
|
case '-b':
|
|
166
157
|
case '--cookie':
|
|
167
158
|
result.cookies = requireNext(args, ++i, arg);
|
|
@@ -170,7 +161,6 @@ export function parseArgs(argv) {
|
|
|
170
161
|
case '--cookie-jar':
|
|
171
162
|
result.cookieJar = requireNext(args, ++i, arg);
|
|
172
163
|
break;
|
|
173
|
-
// ---- Meta ----
|
|
174
164
|
case '-h':
|
|
175
165
|
case '--help':
|
|
176
166
|
result.help = true;
|
|
@@ -180,7 +170,6 @@ export function parseArgs(argv) {
|
|
|
180
170
|
result.version = true;
|
|
181
171
|
break;
|
|
182
172
|
default:
|
|
183
|
-
// Positional argument (URL)
|
|
184
173
|
if (!arg.startsWith('-') && !result.url) {
|
|
185
174
|
result.url = arg;
|
|
186
175
|
}
|
package/dist/cli/args.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"args.js","sourceRoot":"","sources":["../../src/cli/args.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"args.js","sourceRoot":"","sources":["../../src/cli/args.ts"],"names":[],"mappings":"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"}
|
package/dist/cli/index.d.ts
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
/**
|
|
3
|
-
*
|
|
4
|
-
*
|
|
5
|
-
*
|
|
3
|
+
* CLI entry point for the `nlcurl` command. Parses process arguments via
|
|
4
|
+
* {@link parseArgs}, executes the requested HTTP operation using
|
|
5
|
+
* {@link NLcURLSession}, and writes the response to stdout or a file.
|
|
6
6
|
*/
|
|
7
7
|
export {};
|
|
8
8
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/cli/index.js
CHANGED
|
@@ -1,18 +1,18 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
/**
|
|
3
|
-
*
|
|
4
|
-
*
|
|
5
|
-
*
|
|
3
|
+
* CLI entry point for the `nlcurl` command. Parses process arguments via
|
|
4
|
+
* {@link parseArgs}, executes the requested HTTP operation using
|
|
5
|
+
* {@link NLcURLSession}, and writes the response to stdout or a file.
|
|
6
6
|
*/
|
|
7
7
|
import * as fs from 'node:fs';
|
|
8
8
|
import * as process from 'node:process';
|
|
9
9
|
import { parseArgs } from './args.js';
|
|
10
10
|
import { formatOutput, formatVerboseRequest, printHelp } from './output.js';
|
|
11
11
|
import { request } from '../core/client.js';
|
|
12
|
+
import { CookieJar } from '../cookies/jar.js';
|
|
12
13
|
import { listProfiles } from '../fingerprints/database.js';
|
|
13
14
|
async function main() {
|
|
14
15
|
const args = parseArgs(process.argv);
|
|
15
|
-
// ---- Meta commands ----
|
|
16
16
|
if (args.help) {
|
|
17
17
|
process.stdout.write(printHelp() + '\n');
|
|
18
18
|
return;
|
|
@@ -29,17 +29,14 @@ async function main() {
|
|
|
29
29
|
}
|
|
30
30
|
return;
|
|
31
31
|
}
|
|
32
|
-
// ---- Validate URL ----
|
|
33
32
|
if (!args.url) {
|
|
34
33
|
process.stderr.write('Error: No URL specified. Use --help for usage.\n');
|
|
35
34
|
process.exit(1);
|
|
36
35
|
}
|
|
37
|
-
// Prepend https:// if no scheme is given
|
|
38
36
|
let url = args.url;
|
|
39
37
|
if (!url.startsWith('http://') && !url.startsWith('https://')) {
|
|
40
38
|
url = 'https://' + url;
|
|
41
39
|
}
|
|
42
|
-
// ---- Build request ----
|
|
43
40
|
const headers = {};
|
|
44
41
|
for (const [key, value] of args.headers) {
|
|
45
42
|
headers[key] = value;
|
|
@@ -76,14 +73,33 @@ async function main() {
|
|
|
76
73
|
req.proxyAuth = [user, pass];
|
|
77
74
|
}
|
|
78
75
|
}
|
|
79
|
-
// ---- Verbose request output ----
|
|
80
76
|
if (args.verbose) {
|
|
81
77
|
const verboseReq = formatVerboseRequest(req.method ?? 'GET', url, headers);
|
|
82
78
|
process.stderr.write(verboseReq + '\n');
|
|
83
79
|
}
|
|
84
|
-
// ---- Execute request ----
|
|
85
80
|
try {
|
|
81
|
+
let cookieJar;
|
|
82
|
+
if (args.cookieJar) {
|
|
83
|
+
cookieJar = new CookieJar();
|
|
84
|
+
if (fs.existsSync(args.cookieJar)) {
|
|
85
|
+
const content = fs.readFileSync(args.cookieJar, 'utf8');
|
|
86
|
+
cookieJar.loadNetscapeString(content);
|
|
87
|
+
}
|
|
88
|
+
}
|
|
89
|
+
if (cookieJar) {
|
|
90
|
+
const jarCookies = cookieJar.getCookieHeader(new URL(url));
|
|
91
|
+
if (jarCookies) {
|
|
92
|
+
req.headers = req.headers ?? {};
|
|
93
|
+
const existing = req.headers['cookie'];
|
|
94
|
+
req.headers['cookie'] = existing ? `${existing}; ${jarCookies}` : jarCookies;
|
|
95
|
+
}
|
|
96
|
+
}
|
|
86
97
|
const response = await request(req);
|
|
98
|
+
if (cookieJar && args.cookieJar) {
|
|
99
|
+
const respUrl = new URL(response.url);
|
|
100
|
+
cookieJar.setCookies(response.headers, respUrl, response.rawHeaders);
|
|
101
|
+
fs.writeFileSync(args.cookieJar, cookieJar.toNetscapeString());
|
|
102
|
+
}
|
|
87
103
|
const output = formatOutput(response, args);
|
|
88
104
|
if (args.output) {
|
|
89
105
|
fs.writeFileSync(args.output, response.rawBody);
|
|
@@ -93,7 +109,6 @@ async function main() {
|
|
|
93
109
|
}
|
|
94
110
|
else {
|
|
95
111
|
process.stdout.write(output);
|
|
96
|
-
// Add trailing newline if body doesn't end with one
|
|
97
112
|
if (output.length > 0 && !output.endsWith('\n')) {
|
|
98
113
|
process.stdout.write('\n');
|
|
99
114
|
}
|
package/dist/cli/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/cli/index.ts"],"names":[],"mappings":";AACA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,MAAM,SAAS,CAAC;AAC9B,OAAO,KAAK,OAAO,MAAM,cAAc,CAAC;AACxC,OAAO,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AACtC,OAAO,EAAE,YAAY,EAAE,oBAAoB,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAC5E,OAAO,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAC;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/cli/index.ts"],"names":[],"mappings":"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"}
|
package/dist/cli/output.d.ts
CHANGED
|
@@ -1,22 +1,39 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* CLI output formatting.
|
|
3
|
-
*/
|
|
4
1
|
import { NLcURLResponse } from '../core/response.js';
|
|
5
2
|
import type { ParsedArgs } from './args.js';
|
|
6
3
|
/**
|
|
7
|
-
*
|
|
4
|
+
* Formats the response body (and optionally headers) as a string for CLI output.
|
|
5
|
+
* Includes headers when `args.include` or `args.verbose` is `true`. Returns
|
|
6
|
+
* only headers (no body) when `args.head` is `true`.
|
|
7
|
+
*
|
|
8
|
+
* @param {NLcURLResponse} response - The received response.
|
|
9
|
+
* @param {ParsedArgs} args - Parsed CLI arguments controlling output format.
|
|
10
|
+
* @returns {string} Formatted output string ready to print.
|
|
8
11
|
*/
|
|
9
12
|
export declare function formatOutput(response: NLcURLResponse, args: ParsedArgs): string;
|
|
10
13
|
/**
|
|
11
|
-
*
|
|
14
|
+
* Formats the response status line and headers in the style used by curl's
|
|
15
|
+
* `-i` / `--include` output.
|
|
16
|
+
*
|
|
17
|
+
* @param {NLcURLResponse} response - The response whose headers to format.
|
|
18
|
+
* @returns {string} Multi-line string of the form `HTTP/x.x STATUS\nHeader: value\n...`.
|
|
12
19
|
*/
|
|
13
20
|
export declare function formatResponseHeaders(response: NLcURLResponse): string;
|
|
14
21
|
/**
|
|
15
|
-
*
|
|
22
|
+
* Formats a verbose outgoing request summary in the style used by curl's `-v`
|
|
23
|
+
* output. Each line is prefixed with `> ` and includes the request line,
|
|
24
|
+
* `Host` header, and all other headers.
|
|
25
|
+
*
|
|
26
|
+
* @param {string} method - HTTP method.
|
|
27
|
+
* @param {string} url - Request URL.
|
|
28
|
+
* @param {Record<string, string>} headers - Request headers.
|
|
29
|
+
* @returns {string} Verbose request summary string.
|
|
16
30
|
*/
|
|
17
31
|
export declare function formatVerboseRequest(method: string, url: string, headers: Record<string, string>): string;
|
|
18
32
|
/**
|
|
19
|
-
*
|
|
33
|
+
* Returns the complete help text describing all supported CLI flags and
|
|
34
|
+
* their usage.
|
|
35
|
+
*
|
|
36
|
+
* @returns {string} Help text suitable for printing to stdout.
|
|
20
37
|
*/
|
|
21
38
|
export declare function printHelp(): string;
|
|
22
39
|
//# sourceMappingURL=output.d.ts.map
|
package/dist/cli/output.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"output.d.ts","sourceRoot":"","sources":["../../src/cli/output.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"output.d.ts","sourceRoot":"","sources":["../../src/cli/output.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AACrD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;AAE5C;;;;;;;;GAQG;AACH,wBAAgB,YAAY,CAC1B,QAAQ,EAAE,cAAc,EACxB,IAAI,EAAE,UAAU,GACf,MAAM,CAgBR;AAED;;;;;;GAMG;AACH,wBAAgB,qBAAqB,CAAC,QAAQ,EAAE,cAAc,GAAG,MAAM,CAUtE;AAED;;;;;;;;;GASG;AACH,wBAAgB,oBAAoB,CAClC,MAAM,EAAE,MAAM,EACd,GAAG,EAAE,MAAM,EACX,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAC9B,MAAM,CAaR;AAED;;;;;GAKG;AACH,wBAAgB,SAAS,IAAI,MAAM,CAmDlC"}
|
package/dist/cli/output.js
CHANGED
|
@@ -1,40 +1,49 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* CLI output
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
*
|
|
2
|
+
* Formats the response body (and optionally headers) as a string for CLI output.
|
|
3
|
+
* Includes headers when `args.include` or `args.verbose` is `true`. Returns
|
|
4
|
+
* only headers (no body) when `args.head` is `true`.
|
|
5
|
+
*
|
|
6
|
+
* @param {NLcURLResponse} response - The received response.
|
|
7
|
+
* @param {ParsedArgs} args - Parsed CLI arguments controlling output format.
|
|
8
|
+
* @returns {string} Formatted output string ready to print.
|
|
6
9
|
*/
|
|
7
10
|
export function formatOutput(response, args) {
|
|
8
11
|
const parts = [];
|
|
9
|
-
// Include response headers (-i / --include)
|
|
10
12
|
if (args.include || args.verbose) {
|
|
11
13
|
parts.push(formatResponseHeaders(response));
|
|
12
14
|
parts.push('');
|
|
13
15
|
}
|
|
14
|
-
// HEAD request: no body
|
|
15
16
|
if (args.head) {
|
|
16
17
|
return parts.join('\n');
|
|
17
18
|
}
|
|
18
|
-
// Body
|
|
19
19
|
const body = response.text();
|
|
20
20
|
parts.push(body);
|
|
21
21
|
return parts.join('\n');
|
|
22
22
|
}
|
|
23
23
|
/**
|
|
24
|
-
*
|
|
24
|
+
* Formats the response status line and headers in the style used by curl's
|
|
25
|
+
* `-i` / `--include` output.
|
|
26
|
+
*
|
|
27
|
+
* @param {NLcURLResponse} response - The response whose headers to format.
|
|
28
|
+
* @returns {string} Multi-line string of the form `HTTP/x.x STATUS\nHeader: value\n...`.
|
|
25
29
|
*/
|
|
26
30
|
export function formatResponseHeaders(response) {
|
|
27
31
|
const lines = [];
|
|
28
|
-
// Status line
|
|
29
32
|
lines.push(`HTTP/${response.httpVersion} ${response.status} ${response.statusText}`);
|
|
30
|
-
// Headers
|
|
31
33
|
for (const [key, value] of Object.entries(response.headers)) {
|
|
32
34
|
lines.push(`${key}: ${value}`);
|
|
33
35
|
}
|
|
34
36
|
return lines.join('\n');
|
|
35
37
|
}
|
|
36
38
|
/**
|
|
37
|
-
*
|
|
39
|
+
* Formats a verbose outgoing request summary in the style used by curl's `-v`
|
|
40
|
+
* output. Each line is prefixed with `> ` and includes the request line,
|
|
41
|
+
* `Host` header, and all other headers.
|
|
42
|
+
*
|
|
43
|
+
* @param {string} method - HTTP method.
|
|
44
|
+
* @param {string} url - Request URL.
|
|
45
|
+
* @param {Record<string, string>} headers - Request headers.
|
|
46
|
+
* @returns {string} Verbose request summary string.
|
|
38
47
|
*/
|
|
39
48
|
export function formatVerboseRequest(method, url, headers) {
|
|
40
49
|
const parsed = new URL(url);
|
|
@@ -48,7 +57,10 @@ export function formatVerboseRequest(method, url, headers) {
|
|
|
48
57
|
return lines.join('\n');
|
|
49
58
|
}
|
|
50
59
|
/**
|
|
51
|
-
*
|
|
60
|
+
* Returns the complete help text describing all supported CLI flags and
|
|
61
|
+
* their usage.
|
|
62
|
+
*
|
|
63
|
+
* @returns {string} Help text suitable for printing to stdout.
|
|
52
64
|
*/
|
|
53
65
|
export function printHelp() {
|
|
54
66
|
return `nlcurl -- HTTP client with browser fingerprint impersonation
|
package/dist/cli/output.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"output.js","sourceRoot":"","sources":["../../src/cli/output.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"output.js","sourceRoot":"","sources":["../../src/cli/output.ts"],"names":[],"mappings":"AAIA;;;;;;;;GAQG;AACH,MAAM,UAAU,YAAY,CAC1B,QAAwB,EACxB,IAAgB;IAEhB,MAAM,KAAK,GAAa,EAAE,CAAC;IAE3B,IAAI,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;QACjC,KAAK,CAAC,IAAI,CAAC,qBAAqB,CAAC,QAAQ,CAAC,CAAC,CAAC;QAC5C,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACjB,CAAC;IAED,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC;QACd,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC1B,CAAC;IAED,MAAM,IAAI,GAAG,QAAQ,CAAC,IAAI,EAAE,CAAC;IAC7B,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAEjB,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC1B,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,qBAAqB,CAAC,QAAwB;IAC5D,MAAM,KAAK,GAAa,EAAE,CAAC;IAE3B,KAAK,CAAC,IAAI,CAAC,QAAQ,QAAQ,CAAC,WAAW,IAAI,QAAQ,CAAC,MAAM,IAAI,QAAQ,CAAC,UAAU,EAAE,CAAC,CAAC;IAErF,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC;QAC5D,KAAK,CAAC,IAAI,CAAC,GAAG,GAAG,KAAK,KAAK,EAAE,CAAC,CAAC;IACjC,CAAC;IAED,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC1B,CAAC;AAED;;;;;;;;;GASG;AACH,MAAM,UAAU,oBAAoB,CAClC,MAAc,EACd,GAAW,EACX,OAA+B;IAE/B,MAAM,MAAM,GAAG,IAAI,GAAG,CAAC,GAAG,CAAC,CAAC;IAC5B,MAAM,KAAK,GAAa,EAAE,CAAC;IAE3B,KAAK,CAAC,IAAI,CAAC,KAAK,MAAM,IAAI,MAAM,CAAC,QAAQ,GAAG,MAAM,CAAC,MAAM,WAAW,CAAC,CAAC;IACtE,KAAK,CAAC,IAAI,CAAC,WAAW,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC;IAErC,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC;QACnD,KAAK,CAAC,IAAI,CAAC,KAAK,GAAG,KAAK,KAAK,EAAE,CAAC,CAAC;IACnC,CAAC;IAED,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAChB,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC1B,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,SAAS;IACvB,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+EAiDsE,CAAC;AAChF,CAAC"}
|
package/dist/cookies/jar.d.ts
CHANGED
|
@@ -1,37 +1,69 @@
|
|
|
1
|
+
import { type Cookie } from './parser.js';
|
|
1
2
|
/**
|
|
2
|
-
*
|
|
3
|
-
*
|
|
4
|
-
*
|
|
5
|
-
* and expiration handling.
|
|
3
|
+
* In-memory cookie store implementing RFC 6265 semantics. Manages cookie
|
|
4
|
+
* scoping by domain and path, enforces per-domain and global cookie limits,
|
|
5
|
+
* and supports Netscape cookie file import/export for persistence.
|
|
6
6
|
*/
|
|
7
|
-
import { type Cookie } from './parser.js';
|
|
8
7
|
export declare class CookieJar {
|
|
9
8
|
private cookies;
|
|
10
9
|
/**
|
|
11
|
-
*
|
|
10
|
+
* Parses all `Set-Cookie` values from `headers` (or from `rawHeaders` when
|
|
11
|
+
* available to handle multiple `Set-Cookie` entries) and stores any valid
|
|
12
|
+
* cookies scoped to the request URL.
|
|
12
13
|
*
|
|
13
|
-
*
|
|
14
|
-
*
|
|
14
|
+
* @param {Record<string, string>} headers - Normalized response headers.
|
|
15
|
+
* @param {URL} requestUrl - URL of the originating request (used for domain scoping).
|
|
16
|
+
* @param {Array<[string, string]>} [rawHeaders] - Original header pairs, allowing multiple `set-cookie` entries.
|
|
15
17
|
*/
|
|
16
18
|
setCookies(headers: Record<string, string>, requestUrl: URL, rawHeaders?: Array<[string, string]>): void;
|
|
17
19
|
/**
|
|
18
|
-
*
|
|
19
|
-
*
|
|
20
|
+
* Builds the `Cookie` request header value for cookies that match `url`.
|
|
21
|
+
* Cookies are sorted by longest path prefix first, then by creation time.
|
|
22
|
+
* Expired cookies are excluded automatically.
|
|
23
|
+
*
|
|
24
|
+
* @param {URL} url - The URL of the outgoing request.
|
|
25
|
+
* @returns {string} Serialized cookie string suitable for the `Cookie` header,
|
|
26
|
+
* or an empty string if no cookies match.
|
|
20
27
|
*/
|
|
21
28
|
getCookieHeader(url: URL): string;
|
|
22
29
|
/**
|
|
23
|
-
*
|
|
30
|
+
* Removes all cookies from the jar.
|
|
24
31
|
*/
|
|
25
32
|
clear(): void;
|
|
26
33
|
/**
|
|
27
|
-
*
|
|
34
|
+
* Removes all cookies whose domain matches `domain` (case-insensitive).
|
|
35
|
+
*
|
|
36
|
+
* @param {string} domain - Domain string to clear (e.g. `"example.com"`).
|
|
28
37
|
*/
|
|
29
38
|
clearDomain(domain: string): void;
|
|
30
39
|
/**
|
|
31
|
-
*
|
|
40
|
+
* Returns a read-only snapshot of all cookies currently in the jar,
|
|
41
|
+
* including any that may already be expired.
|
|
42
|
+
*
|
|
43
|
+
* @returns {ReadonlyArray<Cookie>} All stored cookies.
|
|
32
44
|
*/
|
|
33
45
|
all(): ReadonlyArray<Cookie>;
|
|
46
|
+
/**
|
|
47
|
+
* Returns the total number of cookies currently in the jar.
|
|
48
|
+
*
|
|
49
|
+
* @returns {number} Cookie count.
|
|
50
|
+
*/
|
|
34
51
|
get size(): number;
|
|
52
|
+
/**
|
|
53
|
+
* Serializes all cookies to Netscape cookie file format. The output can be
|
|
54
|
+
* saved to disk and reloaded via {@link CookieJar.loadNetscapeString}.
|
|
55
|
+
*
|
|
56
|
+
* @returns {string} Netscape-format cookie file content (newline-terminated).
|
|
57
|
+
*/
|
|
58
|
+
toNetscapeString(): string;
|
|
59
|
+
/**
|
|
60
|
+
* Imports cookies from a Netscape cookie file string. Lines beginning with
|
|
61
|
+
* `#` or blank lines are ignored. Cookies with invalid formats are skipped.
|
|
62
|
+
* Imported cookies are merged with any existing cookies in the jar.
|
|
63
|
+
*
|
|
64
|
+
* @param {string} content - Netscape cookie file content.
|
|
65
|
+
*/
|
|
66
|
+
loadNetscapeString(content: string): void;
|
|
35
67
|
private store;
|
|
36
68
|
private matches;
|
|
37
69
|
private domainMatches;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"jar.d.ts","sourceRoot":"","sources":["../../src/cookies/jar.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"jar.d.ts","sourceRoot":"","sources":["../../src/cookies/jar.ts"],"names":[],"mappings":"AACA,OAAO,EAAoC,KAAK,MAAM,EAAE,MAAM,aAAa,CAAC;AAK5E;;;;GAIG;AACH,qBAAa,SAAS;IACpB,OAAO,CAAC,OAAO,CAAgB;IAE/B;;;;;;;;OAQG;IACH,UAAU,CACR,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,EAC/B,UAAU,EAAE,GAAG,EACf,UAAU,CAAC,EAAE,KAAK,CAAC,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,GACnC,IAAI;IAWP;;;;;;;;OAQG;IACH,eAAe,CAAC,GAAG,EAAE,GAAG,GAAG,MAAM;IAajC;;OAEG;IACH,KAAK,IAAI,IAAI;IAIb;;;;OAIG;IACH,WAAW,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI;IAIjC;;;;;OAKG;IACH,GAAG,IAAI,aAAa,CAAC,MAAM,CAAC;IAI5B;;;;OAIG;IACH,IAAI,IAAI,IAAI,MAAM,CAEjB;IAED;;;;;OAKG;IACH,gBAAgB,IAAI,MAAM;IAkB1B;;;;;;OAMG;IACH,kBAAkB,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI;IAyBzC,OAAO,CAAC,KAAK;IA0Bb,OAAO,CAAC,OAAO;IAgBf,OAAO,CAAC,aAAa;IAKrB,OAAO,CAAC,WAAW;IASnB,OAAO,CAAC,sBAAsB;CAiB/B"}
|