nlcurl 0.6.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 +111 -0
- package/dist/cache/store.d.ts.map +1 -0
- package/dist/cache/store.js +414 -0
- package/dist/cache/store.js.map +1 -0
- package/dist/cache/types.d.ts +69 -0
- package/dist/cache/types.d.ts.map +1 -0
- package/dist/cache/types.js +2 -0
- package/dist/cache/types.js.map +1 -0
- 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 +33 -31
- package/dist/cookies/jar.d.ts.map +1 -1
- package/dist/cookies/jar.js +69 -33
- package/dist/cookies/jar.js.map +1 -1
- package/dist/cookies/parser.d.ts +14 -16
- package/dist/cookies/parser.d.ts.map +1 -1
- package/dist/cookies/parser.js +30 -13
- 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 +34 -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 +63 -85
- package/dist/core/request.d.ts.map +1 -1
- package/dist/core/response.d.ts +64 -59
- package/dist/core/response.d.ts.map +1 -1
- package/dist/core/response.js +70 -52
- package/dist/core/response.js.map +1 -1
- package/dist/core/session.d.ts +81 -70
- package/dist/core/session.d.ts.map +1 -1
- package/dist/core/session.js +198 -71
- package/dist/core/session.js.map +1 -1
- package/dist/core/validation.d.ts +44 -42
- package/dist/core/validation.d.ts.map +1 -1
- package/dist/core/validation.js +47 -58
- 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 +39 -0
- package/dist/dns/codec.d.ts.map +1 -0
- package/dist/dns/codec.js +238 -0
- package/dist/dns/codec.js.map +1 -0
- package/dist/dns/doh-resolver.d.ts +38 -0
- package/dist/dns/doh-resolver.d.ts.map +1 -0
- package/dist/dns/doh-resolver.js +191 -0
- package/dist/dns/doh-resolver.js.map +1 -0
- 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 +40 -0
- package/dist/dns/https-rr.d.ts.map +1 -0
- package/dist/dns/https-rr.js +109 -0
- package/dist/dns/https-rr.js.map +1 -0
- package/dist/dns/types.d.ts +82 -0
- package/dist/dns/types.d.ts.map +1 -0
- package/dist/dns/types.js +23 -0
- package/dist/dns/types.js.map +1 -0
- 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 +39 -0
- package/dist/hsts/store.d.ts.map +1 -0
- package/dist/hsts/store.js +163 -0
- package/dist/hsts/store.js.map +1 -0
- package/dist/hsts/types.d.ts +24 -0
- package/dist/hsts/types.d.ts.map +1 -0
- package/dist/hsts/types.js +2 -0
- package/dist/hsts/types.js.map +1 -0
- package/dist/http/alt-svc.d.ts +67 -0
- package/dist/http/alt-svc.d.ts.map +1 -0
- package/dist/http/alt-svc.js +186 -0
- package/dist/http/alt-svc.js.map +1 -0
- 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 +29 -22
- 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 +15 -0
- package/dist/http/h3/detection.d.ts.map +1 -0
- package/dist/http/h3/detection.js +41 -0
- package/dist/http/h3/detection.js.map +1 -0
- package/dist/http/negotiator.d.ts +43 -33
- package/dist/http/negotiator.d.ts.map +1 -1
- package/dist/http/negotiator.js +99 -41
- 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 +36 -8
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +32 -1
- 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 +15 -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 +11 -0
- package/dist/proxy/env-proxy.d.ts.map +1 -0
- package/dist/proxy/env-proxy.js +56 -0
- package/dist/proxy/env-proxy.js.map +1 -0
- package/dist/proxy/http-proxy.d.ts +13 -18
- package/dist/proxy/http-proxy.d.ts.map +1 -1
- package/dist/proxy/http-proxy.js +24 -14
- 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 +6 -9
- package/dist/proxy/socks.js.map +1 -1
- package/dist/sse/parser.d.ts +47 -0
- package/dist/sse/parser.d.ts.map +1 -0
- package/dist/sse/parser.js +139 -0
- package/dist/sse/parser.js.map +1 -0
- 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 +130 -0
- package/dist/tls/ech.d.ts.map +1 -0
- package/dist/tls/ech.js +353 -0
- package/dist/tls/ech.js.map +1 -0
- 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 +15 -14
- package/dist/tls/node-engine.d.ts.map +1 -1
- package/dist/tls/node-engine.js +54 -14
- 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 +10 -0
- package/dist/tls/pin-verification.d.ts.map +1 -0
- package/dist/tls/pin-verification.js +28 -0
- package/dist/tls/pin-verification.js.map +1 -0
- package/dist/tls/session-cache.d.ts +58 -0
- package/dist/tls/session-cache.d.ts.map +1 -0
- package/dist/tls/session-cache.js +76 -0
- package/dist/tls/session-cache.js.map +1 -0
- package/dist/tls/stealth/client-hello.d.ts +34 -32
- package/dist/tls/stealth/client-hello.d.ts.map +1 -1
- package/dist/tls/stealth/client-hello.js +116 -11
- 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 +163 -47
- package/dist/tls/stealth/engine.js.map +1 -1
- package/dist/tls/stealth/handshake.d.ts +23 -32
- package/dist/tls/stealth/handshake.d.ts.map +1 -1
- package/dist/tls/stealth/handshake.js +112 -27
- 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 +30 -0
- package/dist/tls/stealth/tls12-handshake.d.ts.map +1 -0
- package/dist/tls/stealth/tls12-handshake.js +470 -0
- package/dist/tls/stealth/tls12-handshake.js.map +1 -0
- package/dist/tls/types.d.ts +46 -48
- 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 -28
- package/dist/utils/encoding.d.ts.map +1 -1
- package/dist/utils/encoding.js +77 -40
- package/dist/utils/encoding.js.map +1 -1
- package/dist/utils/happy-eyeballs.d.ts +20 -7
- package/dist/utils/happy-eyeballs.d.ts.map +1 -1
- package/dist/utils/happy-eyeballs.js +57 -25
- 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 -52
- package/dist/ws/client.d.ts.map +1 -1
- package/dist/ws/client.js +92 -37
- package/dist/ws/client.js.map +1 -1
- package/dist/ws/frame.d.ts +27 -42
- package/dist/ws/frame.d.ts.map +1 -1
- package/dist/ws/frame.js +25 -37
- package/dist/ws/frame.js.map +1 -1
- package/dist/ws/permessage-deflate.d.ts +53 -0
- package/dist/ws/permessage-deflate.d.ts.map +1 -0
- package/dist/ws/permessage-deflate.js +140 -0
- package/dist/ws/permessage-deflate.js.map +1 -0
- package/package.json +62 -62
package/dist/cli/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/cli/index.ts"],"names":[],"mappings":";
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/cli/index.ts"],"names":[],"mappings":";AAEA,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;AAC5C,OAAO,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AAC9C,OAAO,EAAE,YAAY,EAAE,MAAM,6BAA6B,CAAC;AAG3D,KAAK,UAAU,IAAI;IACjB,MAAM,IAAI,GAAG,SAAS,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;IAErC,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC;QACd,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,SAAS,EAAE,GAAG,IAAI,CAAC,CAAC;QACzC,OAAO;IACT,CAAC;IAED,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;QACjB,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,YAAY,CAAC,IAAI,GAAG,CAAC,oBAAoB,EAAE,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC;QAChG,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,UAAU,GAAG,CAAC,OAAO,IAAI,CAAC,CAAC;QAChD,OAAO;IACT,CAAC;IAED,IAAI,IAAI,CAAC,YAAY,EAAE,CAAC;QACtB,MAAM,QAAQ,GAAG,YAAY,EAAE,CAAC;QAChC,KAAK,MAAM,IAAI,IAAI,QAAQ,EAAE,CAAC;YAC5B,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,GAAG,IAAI,CAAC,CAAC;QACpC,CAAC;QACD,OAAO;IACT,CAAC;IAED,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC;QACd,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,kDAAkD,CAAC,CAAC;QACzE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAED,IAAI,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC;IACnB,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,SAAS,CAAC,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,UAAU,CAAC,EAAE,CAAC;QAC9D,GAAG,GAAG,UAAU,GAAG,GAAG,CAAC;IACzB,CAAC;IAED,MAAM,OAAO,GAA2B,EAAE,CAAC;IAC3C,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;QACxC,OAAO,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;IACvB,CAAC;IAED,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;QACnB,OAAO,CAAC,YAAY,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC;IACzC,CAAC;IAED,IAAI,IAAI,CAAC,UAAU,IAAI,CAAC,OAAO,CAAC,iBAAiB,CAAC,EAAE,CAAC;QACnD,OAAO,CAAC,iBAAiB,CAAC,GAAG,mBAAmB,CAAC;IACnD,CAAC;IAED,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;QACjB,OAAO,CAAC,QAAQ,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC;IACnC,CAAC;IAED,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,OAAO,IAAI,SAAS,CAAC;IAEpD,MAAM,GAAG,GAAkB;QACzB,GAAG;QACH,MAAM,EAAE,IAAI,CAAC,MAAoB;QACjC,OAAO,EAAE,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS;QAC9D,IAAI;QACJ,WAAW,EAAE,IAAI,CAAC,WAAW,IAAI,SAAS;QAC1C,GAAG,EAAE,IAAI,CAAC,GAAG,IAAI,SAAS;QAC1B,MAAM,EAAE,IAAI,CAAC,MAAM,IAAI,SAAS;QAChC,OAAO,EAAE,IAAI,CAAC,OAAO,IAAI,SAAS;QAClC,KAAK,EAAE,IAAI,CAAC,KAAK,IAAI,SAAS;QAC9B,QAAQ,EAAE,IAAI,CAAC,QAAQ,IAAI,SAAS;QACpC,eAAe,EAAE,IAAI,CAAC,eAAe;QACrC,YAAY,EAAE,IAAI,CAAC,YAAY;QAC/B,OAAO,EAAE,IAAI,CAAC,OAAO;QACrB,WAAW,EAAG,IAAI,CAAC,WAA2B,IAAI,SAAS;KAC5D,CAAC;IAEF,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;QACnB,MAAM,CAAC,IAAI,EAAE,IAAI,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QAC/C,IAAI,IAAI,IAAI,IAAI,EAAE,CAAC;YACjB,GAAG,CAAC,SAAS,GAAG,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;QAC/B,CAAC;IACH,CAAC;IAED,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;QACjB,MAAM,UAAU,GAAG,oBAAoB,CAAC,GAAG,CAAC,MAAM,IAAI,KAAK,EAAE,GAAG,EAAE,OAAO,CAAC,CAAC;QAC3E,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,UAAU,GAAG,IAAI,CAAC,CAAC;IAC1C,CAAC;IAED,IAAI,CAAC;QACH,IAAI,SAAgC,CAAC;QAErC,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;YACnB,SAAS,GAAG,IAAI,SAAS,EAAE,CAAC;YAC5B,IAAI,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC;gBAClC,MAAM,OAAO,GAAG,EAAE,CAAC,YAAY,CAAC,IAAI,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC;gBACxD,SAAS,CAAC,kBAAkB,CAAC,OAAO,CAAC,CAAC;YACxC,CAAC;QACH,CAAC;QAED,IAAI,SAAS,EAAE,CAAC;YACd,MAAM,UAAU,GAAG,SAAS,CAAC,eAAe,CAAC,IAAI,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;YAC3D,IAAI,UAAU,EAAE,CAAC;gBACf,GAAG,CAAC,OAAO,GAAG,GAAG,CAAC,OAAO,IAAI,EAAE,CAAC;gBAChC,MAAM,QAAQ,GAAG,GAAG,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;gBACvC,GAAG,CAAC,OAAO,CAAC,QAAQ,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC,GAAG,QAAQ,KAAK,UAAU,EAAE,CAAC,CAAC,CAAC,UAAU,CAAC;YAC/E,CAAC;QACH,CAAC;QAED,MAAM,QAAQ,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC,CAAC;QAEpC,IAAI,SAAS,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;YAChC,MAAM,OAAO,GAAG,IAAI,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;YACtC,SAAS,CAAC,UAAU,CAAC,QAAQ,CAAC,OAAO,EAAE,OAAO,EAAE,QAAQ,CAAC,UAAU,CAAC,CAAC;YACrE,EAAE,CAAC,aAAa,CAAC,IAAI,CAAC,SAAS,EAAE,SAAS,CAAC,gBAAgB,EAAE,CAAC,CAAC;QACjE,CAAC;QAED,MAAM,MAAM,GAAG,YAAY,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;QAE5C,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;YAChB,EAAE,CAAC,aAAa,CAAC,IAAI,CAAC,MAAM,EAAE,QAAQ,CAAC,OAAO,CAAC,CAAC;YAChD,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC;gBACjB,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,cAAc,IAAI,CAAC,MAAM,IAAI,CAAC,CAAC;YACtD,CAAC;QACH,CAAC;aAAM,CAAC;YACN,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;YAC7B,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;gBAChD,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;YAC7B,CAAC;QACH,CAAC;QAED,IAAI,CAAC,QAAQ,CAAC,EAAE,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC;YACjC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACnB,CAAC;IACH,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC;YACjB,MAAM,OAAO,GAAG,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;YACjE,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,WAAW,OAAO,IAAI,CAAC,CAAC;QAC/C,CAAC;QACD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;AACH,CAAC;AAED,KAAK,IAAI,EAAE,CAAC"}
|
package/dist/cli/output.d.ts
CHANGED
|
@@ -1,39 +1,33 @@
|
|
|
1
1
|
import { NLcURLResponse } from "../core/response.js";
|
|
2
2
|
import type { ParsedArgs } from "./args.js";
|
|
3
3
|
/**
|
|
4
|
-
* Formats
|
|
5
|
-
* Includes headers when `args.include` or `args.verbose` is `true`. Returns
|
|
6
|
-
* only headers (no body) when `args.head` is `true`.
|
|
4
|
+
* Formats a complete CLI output string from a response and parsed arguments.
|
|
7
5
|
*
|
|
8
|
-
* @param {NLcURLResponse} response - The
|
|
9
|
-
* @param {ParsedArgs}
|
|
10
|
-
* @returns {string}
|
|
6
|
+
* @param {NLcURLResponse} response - The HTTP response.
|
|
7
|
+
* @param {ParsedArgs} args - The parsed CLI arguments.
|
|
8
|
+
* @returns {string} The formatted output string.
|
|
11
9
|
*/
|
|
12
10
|
export declare function formatOutput(response: NLcURLResponse, args: ParsedArgs): string;
|
|
13
11
|
/**
|
|
14
|
-
* Formats
|
|
15
|
-
* `-i` / `--include` output.
|
|
12
|
+
* Formats response status line and headers as a human-readable string.
|
|
16
13
|
*
|
|
17
|
-
* @param {NLcURLResponse} response - The response
|
|
18
|
-
* @returns {string}
|
|
14
|
+
* @param {NLcURLResponse} response - The HTTP response.
|
|
15
|
+
* @returns {string} The formatted headers string.
|
|
19
16
|
*/
|
|
20
17
|
export declare function formatResponseHeaders(response: NLcURLResponse): string;
|
|
21
18
|
/**
|
|
22
|
-
* Formats a verbose
|
|
23
|
-
* output. Each line is prefixed with `> ` and includes the request line,
|
|
24
|
-
* `Host` header, and all other headers.
|
|
19
|
+
* Formats a verbose request output showing the outgoing method, path, and headers.
|
|
25
20
|
*
|
|
26
|
-
* @param {string}
|
|
27
|
-
* @param {string}
|
|
28
|
-
* @param {Record<string, string>}
|
|
29
|
-
* @returns {string}
|
|
21
|
+
* @param {string} method - The HTTP method.
|
|
22
|
+
* @param {string} url - The full request URL.
|
|
23
|
+
* @param {Record<string, string>} headers - The request headers.
|
|
24
|
+
* @returns {string} The formatted verbose request string.
|
|
30
25
|
*/
|
|
31
26
|
export declare function formatVerboseRequest(method: string, url: string, headers: Record<string, string>): string;
|
|
32
27
|
/**
|
|
33
|
-
* Returns the
|
|
34
|
-
* their usage.
|
|
28
|
+
* Returns the CLI help text describing all available options.
|
|
35
29
|
*
|
|
36
|
-
* @returns {string}
|
|
30
|
+
* @returns {string} The help text.
|
|
37
31
|
*/
|
|
38
32
|
export declare function printHelp(): string;
|
|
39
33
|
//# 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":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AACrD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;AAE5C
|
|
1
|
+
{"version":3,"file":"output.d.ts","sourceRoot":"","sources":["../../src/cli/output.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AACrD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;AAE5C;;;;;;GAMG;AACH,wBAAgB,YAAY,CAAC,QAAQ,EAAE,cAAc,EAAE,IAAI,EAAE,UAAU,GAAG,MAAM,CAgB/E;AAED;;;;;GAKG;AACH,wBAAgB,qBAAqB,CAAC,QAAQ,EAAE,cAAc,GAAG,MAAM,CAUtE;AAED;;;;;;;GAOG;AACH,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,MAAM,CAazG;AAED;;;;GAIG;AACH,wBAAgB,SAAS,IAAI,MAAM,CAmDlC"}
|
package/dist/cli/output.js
CHANGED
|
@@ -1,11 +1,9 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* Formats
|
|
3
|
-
* Includes headers when `args.include` or `args.verbose` is `true`. Returns
|
|
4
|
-
* only headers (no body) when `args.head` is `true`.
|
|
2
|
+
* Formats a complete CLI output string from a response and parsed arguments.
|
|
5
3
|
*
|
|
6
|
-
* @param {NLcURLResponse} response - The
|
|
7
|
-
* @param {ParsedArgs}
|
|
8
|
-
* @returns {string}
|
|
4
|
+
* @param {NLcURLResponse} response - The HTTP response.
|
|
5
|
+
* @param {ParsedArgs} args - The parsed CLI arguments.
|
|
6
|
+
* @returns {string} The formatted output string.
|
|
9
7
|
*/
|
|
10
8
|
export function formatOutput(response, args) {
|
|
11
9
|
const parts = [];
|
|
@@ -21,11 +19,10 @@ export function formatOutput(response, args) {
|
|
|
21
19
|
return parts.join("\n");
|
|
22
20
|
}
|
|
23
21
|
/**
|
|
24
|
-
* Formats
|
|
25
|
-
* `-i` / `--include` output.
|
|
22
|
+
* Formats response status line and headers as a human-readable string.
|
|
26
23
|
*
|
|
27
|
-
* @param {NLcURLResponse} response - The response
|
|
28
|
-
* @returns {string}
|
|
24
|
+
* @param {NLcURLResponse} response - The HTTP response.
|
|
25
|
+
* @returns {string} The formatted headers string.
|
|
29
26
|
*/
|
|
30
27
|
export function formatResponseHeaders(response) {
|
|
31
28
|
const lines = [];
|
|
@@ -36,14 +33,12 @@ export function formatResponseHeaders(response) {
|
|
|
36
33
|
return lines.join("\n");
|
|
37
34
|
}
|
|
38
35
|
/**
|
|
39
|
-
* Formats a verbose
|
|
40
|
-
* output. Each line is prefixed with `> ` and includes the request line,
|
|
41
|
-
* `Host` header, and all other headers.
|
|
36
|
+
* Formats a verbose request output showing the outgoing method, path, and headers.
|
|
42
37
|
*
|
|
43
|
-
* @param {string}
|
|
44
|
-
* @param {string}
|
|
45
|
-
* @param {Record<string, string>}
|
|
46
|
-
* @returns {string}
|
|
38
|
+
* @param {string} method - The HTTP method.
|
|
39
|
+
* @param {string} url - The full request URL.
|
|
40
|
+
* @param {Record<string, string>} headers - The request headers.
|
|
41
|
+
* @returns {string} The formatted verbose request string.
|
|
47
42
|
*/
|
|
48
43
|
export function formatVerboseRequest(method, url, headers) {
|
|
49
44
|
const parsed = new URL(url);
|
|
@@ -57,10 +52,9 @@ export function formatVerboseRequest(method, url, headers) {
|
|
|
57
52
|
return lines.join("\n");
|
|
58
53
|
}
|
|
59
54
|
/**
|
|
60
|
-
* Returns the
|
|
61
|
-
* their usage.
|
|
55
|
+
* Returns the CLI help text describing all available options.
|
|
62
56
|
*
|
|
63
|
-
* @returns {string}
|
|
57
|
+
* @returns {string} The help text.
|
|
64
58
|
*/
|
|
65
59
|
export function printHelp() {
|
|
66
60
|
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":"AAGA
|
|
1
|
+
{"version":3,"file":"output.js","sourceRoot":"","sources":["../../src/cli/output.ts"],"names":[],"mappings":"AAGA;;;;;;GAMG;AACH,MAAM,UAAU,YAAY,CAAC,QAAwB,EAAE,IAAgB;IACrE,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;;;;;GAKG;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;;;;;;;GAOG;AACH,MAAM,UAAU,oBAAoB,CAAC,MAAc,EAAE,GAAW,EAAE,OAA+B;IAC/F,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;;;;GAIG;AACH,MAAM,UAAU,SAAS;IACvB,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+EAiDsE,CAAC;AAChF,CAAC"}
|
package/dist/cookies/jar.d.ts
CHANGED
|
@@ -1,38 +1,42 @@
|
|
|
1
1
|
import { type Cookie } from "./parser.js";
|
|
2
|
+
/**
|
|
3
|
+
* Configuration options for the cookie jar.
|
|
4
|
+
*/
|
|
2
5
|
export interface CookieJarOptions {
|
|
3
|
-
/** Maximum total cookies across all domains (default: 3000). */
|
|
4
6
|
maxCookies?: number;
|
|
5
|
-
/** Maximum cookies per domain (default: 180, matching Chrome). */
|
|
6
7
|
maxCookiesPerDomain?: number;
|
|
7
8
|
}
|
|
8
9
|
/**
|
|
9
|
-
*
|
|
10
|
-
*
|
|
11
|
-
*
|
|
10
|
+
* Manages HTTP cookies across requests, enforcing RFC 6265 semantics including
|
|
11
|
+
* domain scoping, path matching, __Host- / __Secure- prefix validation, and
|
|
12
|
+
* SameSite defaults.
|
|
13
|
+
*
|
|
14
|
+
* @class
|
|
12
15
|
*/
|
|
13
16
|
export declare class CookieJar {
|
|
14
17
|
private cookies;
|
|
15
18
|
private readonly maxCookies;
|
|
16
19
|
private readonly maxCookiesPerDomain;
|
|
20
|
+
private accessCounter;
|
|
21
|
+
/**
|
|
22
|
+
* Creates a new CookieJar.
|
|
23
|
+
*
|
|
24
|
+
* @param {CookieJarOptions} [options] - Jar capacity limits.
|
|
25
|
+
*/
|
|
17
26
|
constructor(options?: CookieJarOptions);
|
|
18
27
|
/**
|
|
19
|
-
*
|
|
20
|
-
* available to handle multiple `Set-Cookie` entries) and stores any valid
|
|
21
|
-
* cookies scoped to the request URL.
|
|
28
|
+
* Extracts and stores cookies from Set-Cookie response headers.
|
|
22
29
|
*
|
|
23
|
-
* @param {Record<string, string>}
|
|
24
|
-
* @param {URL}
|
|
25
|
-
* @param {Array<[string, string]>}
|
|
30
|
+
* @param {Record<string, string>} headers - The response headers.
|
|
31
|
+
* @param {URL} requestUrl - The URL that produced the response.
|
|
32
|
+
* @param {Array<[string, string]>} [rawHeaders] - Raw header pairs for duplicate Set-Cookie handling.
|
|
26
33
|
*/
|
|
27
34
|
setCookies(headers: Record<string, string>, requestUrl: URL, rawHeaders?: Array<[string, string]>): void;
|
|
28
35
|
/**
|
|
29
|
-
* Builds
|
|
30
|
-
* Cookies are sorted by longest path prefix first, then by creation time.
|
|
31
|
-
* Expired cookies are excluded automatically.
|
|
36
|
+
* Builds a Cookie header value for the given URL.
|
|
32
37
|
*
|
|
33
|
-
* @param {URL} url - The URL
|
|
34
|
-
* @returns {string}
|
|
35
|
-
* or an empty string if no cookies match.
|
|
38
|
+
* @param {URL} url - The target URL.
|
|
39
|
+
* @returns {string} The serialized cookie string, or an empty string if no cookies match.
|
|
36
40
|
*/
|
|
37
41
|
getCookieHeader(url: URL): string;
|
|
38
42
|
/**
|
|
@@ -40,40 +44,38 @@ export declare class CookieJar {
|
|
|
40
44
|
*/
|
|
41
45
|
clear(): void;
|
|
42
46
|
/**
|
|
43
|
-
* Removes all cookies
|
|
47
|
+
* Removes all cookies for a specific domain.
|
|
44
48
|
*
|
|
45
|
-
* @param {string} domain -
|
|
49
|
+
* @param {string} domain - The domain whose cookies should be removed.
|
|
46
50
|
*/
|
|
47
51
|
clearDomain(domain: string): void;
|
|
48
52
|
/**
|
|
49
|
-
* Returns a read-only
|
|
50
|
-
* including any that may already be expired.
|
|
53
|
+
* Returns a read-only view of all stored cookies.
|
|
51
54
|
*
|
|
52
|
-
* @returns {ReadonlyArray<Cookie>} All
|
|
55
|
+
* @returns {ReadonlyArray<Cookie>} All cookies in the jar.
|
|
53
56
|
*/
|
|
54
57
|
all(): ReadonlyArray<Cookie>;
|
|
55
58
|
/**
|
|
56
|
-
* Returns the
|
|
59
|
+
* Returns the number of cookies stored in the jar.
|
|
57
60
|
*
|
|
58
|
-
* @returns {number}
|
|
61
|
+
* @returns {number} The cookie count.
|
|
59
62
|
*/
|
|
60
63
|
get size(): number;
|
|
61
64
|
/**
|
|
62
|
-
* Serializes all cookies to Netscape cookie file format.
|
|
63
|
-
* saved to disk and reloaded via {@link CookieJar.loadNetscapeString}.
|
|
65
|
+
* Serializes all cookies to Netscape cookie file format.
|
|
64
66
|
*
|
|
65
|
-
* @returns {string}
|
|
67
|
+
* @returns {string} The cookie file content.
|
|
66
68
|
*/
|
|
67
69
|
toNetscapeString(): string;
|
|
68
70
|
/**
|
|
69
|
-
*
|
|
70
|
-
* `#` or blank lines are ignored. Cookies with invalid formats are skipped.
|
|
71
|
-
* Imported cookies are merged with any existing cookies in the jar.
|
|
71
|
+
* Loads cookies from a Netscape cookie file format string.
|
|
72
72
|
*
|
|
73
|
-
* @param {string} content -
|
|
73
|
+
* @param {string} content - The cookie file content.
|
|
74
74
|
*/
|
|
75
75
|
loadNetscapeString(content: string): void;
|
|
76
76
|
private store;
|
|
77
|
+
private evictLRUForDomain;
|
|
78
|
+
private evictGlobalLRU;
|
|
77
79
|
private matches;
|
|
78
80
|
private domainMatches;
|
|
79
81
|
private pathMatches;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"jar.d.ts","sourceRoot":"","sources":["../../src/cookies/jar.ts"],"names":[],"mappings":"AAAA,OAAO,EAAoC,KAAK,MAAM,EAAE,MAAM,aAAa,CAAC;AAK5E,MAAM,WAAW,gBAAgB;IAC/B,
|
|
1
|
+
{"version":3,"file":"jar.d.ts","sourceRoot":"","sources":["../../src/cookies/jar.ts"],"names":[],"mappings":"AAAA,OAAO,EAAoC,KAAK,MAAM,EAAE,MAAM,aAAa,CAAC;AAK5E;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,mBAAmB,CAAC,EAAE,MAAM,CAAC;CAC9B;AAED;;;;;;GAMG;AACH,qBAAa,SAAS;IACpB,OAAO,CAAC,OAAO,CAAgB;IAC/B,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAS;IACpC,OAAO,CAAC,QAAQ,CAAC,mBAAmB,CAAS;IAC7C,OAAO,CAAC,aAAa,CAAK;IAE1B;;;;OAIG;gBACS,OAAO,CAAC,EAAE,gBAAgB;IAKtC;;;;;;OAMG;IACH,UAAU,CAAC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,UAAU,EAAE,GAAG,EAAE,UAAU,CAAC,EAAE,KAAK,CAAC,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,GAAG,IAAI;IAWxG;;;;;OAKG;IACH,eAAe,CAAC,GAAG,EAAE,GAAG,GAAG,MAAM;IAiBjC;;OAEG;IACH,KAAK,IAAI,IAAI;IAIb;;;;OAIG;IACH,WAAW,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI;IAIjC;;;;OAIG;IACH,GAAG,IAAI,aAAa,CAAC,MAAM,CAAC;IAI5B;;;;OAIG;IACH,IAAI,IAAI,IAAI,MAAM,CAEjB;IAED;;;;OAIG;IACH,gBAAgB,IAAI,MAAM;IAmB1B;;;;OAIG;IACH,kBAAkB,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI;IA2BzC,OAAO,CAAC,KAAK;IAuBb,OAAO,CAAC,iBAAiB;IAazB,OAAO,CAAC,cAAc;IAsBtB,OAAO,CAAC,OAAO;IAgBf,OAAO,CAAC,aAAa;IAKrB,OAAO,CAAC,WAAW;IASnB,OAAO,CAAC,sBAAsB;CAY/B"}
|
package/dist/cookies/jar.js
CHANGED
|
@@ -2,26 +2,32 @@ import { parseSetCookie, serializeCookies } from "./parser.js";
|
|
|
2
2
|
const DEFAULT_MAX_COOKIES = 3000;
|
|
3
3
|
const DEFAULT_MAX_COOKIES_PER_DOMAIN = 180;
|
|
4
4
|
/**
|
|
5
|
-
*
|
|
6
|
-
*
|
|
7
|
-
*
|
|
5
|
+
* Manages HTTP cookies across requests, enforcing RFC 6265 semantics including
|
|
6
|
+
* domain scoping, path matching, __Host- / __Secure- prefix validation, and
|
|
7
|
+
* SameSite defaults.
|
|
8
|
+
*
|
|
9
|
+
* @class
|
|
8
10
|
*/
|
|
9
11
|
export class CookieJar {
|
|
10
12
|
cookies = [];
|
|
11
13
|
maxCookies;
|
|
12
14
|
maxCookiesPerDomain;
|
|
15
|
+
accessCounter = 0;
|
|
16
|
+
/**
|
|
17
|
+
* Creates a new CookieJar.
|
|
18
|
+
*
|
|
19
|
+
* @param {CookieJarOptions} [options] - Jar capacity limits.
|
|
20
|
+
*/
|
|
13
21
|
constructor(options) {
|
|
14
22
|
this.maxCookies = options?.maxCookies ?? DEFAULT_MAX_COOKIES;
|
|
15
23
|
this.maxCookiesPerDomain = options?.maxCookiesPerDomain ?? DEFAULT_MAX_COOKIES_PER_DOMAIN;
|
|
16
24
|
}
|
|
17
25
|
/**
|
|
18
|
-
*
|
|
19
|
-
* available to handle multiple `Set-Cookie` entries) and stores any valid
|
|
20
|
-
* cookies scoped to the request URL.
|
|
26
|
+
* Extracts and stores cookies from Set-Cookie response headers.
|
|
21
27
|
*
|
|
22
|
-
* @param {Record<string, string>}
|
|
23
|
-
* @param {URL}
|
|
24
|
-
* @param {Array<[string, string]>}
|
|
28
|
+
* @param {Record<string, string>} headers - The response headers.
|
|
29
|
+
* @param {URL} requestUrl - The URL that produced the response.
|
|
30
|
+
* @param {Array<[string, string]>} [rawHeaders] - Raw header pairs for duplicate Set-Cookie handling.
|
|
25
31
|
*/
|
|
26
32
|
setCookies(headers, requestUrl, rawHeaders) {
|
|
27
33
|
const setCookieValues = this.extractSetCookieValues(headers, rawHeaders);
|
|
@@ -33,19 +39,19 @@ export class CookieJar {
|
|
|
33
39
|
}
|
|
34
40
|
}
|
|
35
41
|
/**
|
|
36
|
-
* Builds
|
|
37
|
-
* Cookies are sorted by longest path prefix first, then by creation time.
|
|
38
|
-
* Expired cookies are excluded automatically.
|
|
42
|
+
* Builds a Cookie header value for the given URL.
|
|
39
43
|
*
|
|
40
|
-
* @param {URL} url - The URL
|
|
41
|
-
* @returns {string}
|
|
42
|
-
* or an empty string if no cookies match.
|
|
44
|
+
* @param {URL} url - The target URL.
|
|
45
|
+
* @returns {string} The serialized cookie string, or an empty string if no cookies match.
|
|
43
46
|
*/
|
|
44
47
|
getCookieHeader(url) {
|
|
45
48
|
const now = Date.now();
|
|
46
49
|
const matching = this.cookies.filter((c) => this.matches(c, url, now));
|
|
47
50
|
if (matching.length === 0)
|
|
48
51
|
return "";
|
|
52
|
+
for (const c of matching) {
|
|
53
|
+
c.lastAccessedAt = ++this.accessCounter;
|
|
54
|
+
}
|
|
49
55
|
matching.sort((a, b) => {
|
|
50
56
|
if (a.path.length !== b.path.length)
|
|
51
57
|
return b.path.length - a.path.length;
|
|
@@ -60,35 +66,33 @@ export class CookieJar {
|
|
|
60
66
|
this.cookies = [];
|
|
61
67
|
}
|
|
62
68
|
/**
|
|
63
|
-
* Removes all cookies
|
|
69
|
+
* Removes all cookies for a specific domain.
|
|
64
70
|
*
|
|
65
|
-
* @param {string} domain -
|
|
71
|
+
* @param {string} domain - The domain whose cookies should be removed.
|
|
66
72
|
*/
|
|
67
73
|
clearDomain(domain) {
|
|
68
74
|
this.cookies = this.cookies.filter((c) => c.domain !== domain.toLowerCase());
|
|
69
75
|
}
|
|
70
76
|
/**
|
|
71
|
-
* Returns a read-only
|
|
72
|
-
* including any that may already be expired.
|
|
77
|
+
* Returns a read-only view of all stored cookies.
|
|
73
78
|
*
|
|
74
|
-
* @returns {ReadonlyArray<Cookie>} All
|
|
79
|
+
* @returns {ReadonlyArray<Cookie>} All cookies in the jar.
|
|
75
80
|
*/
|
|
76
81
|
all() {
|
|
77
82
|
return this.cookies;
|
|
78
83
|
}
|
|
79
84
|
/**
|
|
80
|
-
* Returns the
|
|
85
|
+
* Returns the number of cookies stored in the jar.
|
|
81
86
|
*
|
|
82
|
-
* @returns {number}
|
|
87
|
+
* @returns {number} The cookie count.
|
|
83
88
|
*/
|
|
84
89
|
get size() {
|
|
85
90
|
return this.cookies.length;
|
|
86
91
|
}
|
|
87
92
|
/**
|
|
88
|
-
* Serializes all cookies to Netscape cookie file format.
|
|
89
|
-
* saved to disk and reloaded via {@link CookieJar.loadNetscapeString}.
|
|
93
|
+
* Serializes all cookies to Netscape cookie file format.
|
|
90
94
|
*
|
|
91
|
-
* @returns {string}
|
|
95
|
+
* @returns {string} The cookie file content.
|
|
92
96
|
*/
|
|
93
97
|
toNetscapeString() {
|
|
94
98
|
const lines = ["# Netscape HTTP Cookie File"];
|
|
@@ -110,11 +114,9 @@ export class CookieJar {
|
|
|
110
114
|
return lines.join("\n") + "\n";
|
|
111
115
|
}
|
|
112
116
|
/**
|
|
113
|
-
*
|
|
114
|
-
* `#` or blank lines are ignored. Cookies with invalid formats are skipped.
|
|
115
|
-
* Imported cookies are merged with any existing cookies in the jar.
|
|
117
|
+
* Loads cookies from a Netscape cookie file format string.
|
|
116
118
|
*
|
|
117
|
-
* @param {string} content -
|
|
119
|
+
* @param {string} content - The cookie file content.
|
|
118
120
|
*/
|
|
119
121
|
loadNetscapeString(content) {
|
|
120
122
|
for (const line of content.split("\n")) {
|
|
@@ -135,6 +137,7 @@ export class CookieJar {
|
|
|
135
137
|
httpOnly: httpOnlyField === "TRUE",
|
|
136
138
|
sameSite: undefined,
|
|
137
139
|
createdAt: Date.now(),
|
|
140
|
+
lastAccessedAt: Date.now(),
|
|
138
141
|
};
|
|
139
142
|
const expiresNum = parseInt(expires, 10);
|
|
140
143
|
if (expiresNum > 0) {
|
|
@@ -150,21 +153,54 @@ export class CookieJar {
|
|
|
150
153
|
}
|
|
151
154
|
const idx = this.cookies.findIndex((c) => c.name === cookie.name && c.domain === cookie.domain && c.path === cookie.path);
|
|
152
155
|
if (idx >= 0) {
|
|
156
|
+
cookie.lastAccessedAt = this.cookies[idx].lastAccessedAt;
|
|
153
157
|
this.cookies[idx] = cookie;
|
|
154
158
|
}
|
|
155
159
|
else {
|
|
160
|
+
cookie.lastAccessedAt = ++this.accessCounter;
|
|
156
161
|
const domainCount = this.cookies.filter((c) => c.domain === cookie.domain).length;
|
|
157
162
|
if (domainCount >= this.maxCookiesPerDomain) {
|
|
158
|
-
|
|
159
|
-
if (oldest >= 0)
|
|
160
|
-
this.cookies.splice(oldest, 1);
|
|
163
|
+
this.evictLRUForDomain(cookie.domain);
|
|
161
164
|
}
|
|
162
165
|
if (this.cookies.length >= this.maxCookies) {
|
|
163
|
-
this.
|
|
166
|
+
this.evictGlobalLRU();
|
|
164
167
|
}
|
|
165
168
|
this.cookies.push(cookie);
|
|
166
169
|
}
|
|
167
170
|
}
|
|
171
|
+
evictLRUForDomain(domain) {
|
|
172
|
+
let lruIdx = -1;
|
|
173
|
+
let lruTime = Infinity;
|
|
174
|
+
for (let i = 0; i < this.cookies.length; i++) {
|
|
175
|
+
const c = this.cookies[i];
|
|
176
|
+
if (c.domain === domain && c.lastAccessedAt < lruTime) {
|
|
177
|
+
lruTime = c.lastAccessedAt;
|
|
178
|
+
lruIdx = i;
|
|
179
|
+
}
|
|
180
|
+
}
|
|
181
|
+
if (lruIdx >= 0)
|
|
182
|
+
this.cookies.splice(lruIdx, 1);
|
|
183
|
+
}
|
|
184
|
+
evictGlobalLRU() {
|
|
185
|
+
const domainCounts = new Map();
|
|
186
|
+
for (const c of this.cookies) {
|
|
187
|
+
domainCounts.set(c.domain, (domainCounts.get(c.domain) ?? 0) + 1);
|
|
188
|
+
}
|
|
189
|
+
let fatDomain = "";
|
|
190
|
+
let fatCount = 0;
|
|
191
|
+
for (const [d, count] of domainCounts) {
|
|
192
|
+
if (count > fatCount) {
|
|
193
|
+
fatCount = count;
|
|
194
|
+
fatDomain = d;
|
|
195
|
+
}
|
|
196
|
+
}
|
|
197
|
+
if (fatDomain) {
|
|
198
|
+
this.evictLRUForDomain(fatDomain);
|
|
199
|
+
}
|
|
200
|
+
else if (this.cookies.length > 0) {
|
|
201
|
+
this.cookies.shift();
|
|
202
|
+
}
|
|
203
|
+
}
|
|
168
204
|
matches(cookie, url, now) {
|
|
169
205
|
if (cookie.maxAge !== undefined) {
|
|
170
206
|
if (now > cookie.createdAt + cookie.maxAge * 1000)
|
package/dist/cookies/jar.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"jar.js","sourceRoot":"","sources":["../../src/cookies/jar.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,gBAAgB,EAAe,MAAM,aAAa,CAAC;AAE5E,MAAM,mBAAmB,GAAG,IAAI,CAAC;AACjC,MAAM,8BAA8B,GAAG,GAAG,CAAC;
|
|
1
|
+
{"version":3,"file":"jar.js","sourceRoot":"","sources":["../../src/cookies/jar.ts"],"names":[],"mappings":"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"}
|
package/dist/cookies/parser.d.ts
CHANGED
|
@@ -1,17 +1,5 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* Represents a parsed HTTP cookie
|
|
3
|
-
*
|
|
4
|
-
* @typedef {Object} Cookie
|
|
5
|
-
* @property {string} name - Cookie name.
|
|
6
|
-
* @property {string} value - Cookie value.
|
|
7
|
-
* @property {string} domain - Effective domain (without leading dot).
|
|
8
|
-
* @property {string} path - Cookie path scope.
|
|
9
|
-
* @property {Date} [expires] - Absolute expiry date (from the `Expires` attribute).
|
|
10
|
-
* @property {number} [maxAge] - Relative lifetime in seconds (from the `Max-Age` attribute).
|
|
11
|
-
* @property {boolean} secure - Whether the cookie is restricted to HTTPS.
|
|
12
|
-
* @property {boolean} httpOnly - Whether the cookie is inaccessible to client-side scripts.
|
|
13
|
-
* @property {'strict' | 'lax' | 'none'} [sameSite] - SameSite policy.
|
|
14
|
-
* @property {number} createdAt - Unix timestamp (ms) when the cookie was created.
|
|
2
|
+
* Represents a parsed HTTP cookie with all standard attributes.
|
|
15
3
|
*/
|
|
16
4
|
export interface Cookie {
|
|
17
5
|
name: string;
|
|
@@ -23,14 +11,24 @@ export interface Cookie {
|
|
|
23
11
|
secure: boolean;
|
|
24
12
|
httpOnly: boolean;
|
|
25
13
|
sameSite?: "strict" | "lax" | "none";
|
|
14
|
+
partitioned?: boolean;
|
|
26
15
|
createdAt: number;
|
|
16
|
+
lastAccessedAt: number;
|
|
27
17
|
}
|
|
18
|
+
/**
|
|
19
|
+
* Parses a Set-Cookie response header into a Cookie object, enforcing
|
|
20
|
+
* __Host- / __Secure- prefix rules, public suffix rejection, and SameSite defaults.
|
|
21
|
+
*
|
|
22
|
+
* @param {string} header - The raw Set-Cookie header value.
|
|
23
|
+
* @param {URL} requestUrl - The URL of the originating request.
|
|
24
|
+
* @returns {Cookie|null} The parsed cookie, or `null` if validation fails.
|
|
25
|
+
*/
|
|
28
26
|
export declare function parseSetCookie(header: string, requestUrl: URL): Cookie | null;
|
|
29
27
|
/**
|
|
30
|
-
* Serializes an array of cookies into
|
|
28
|
+
* Serializes an array of cookies into a Cookie header value string.
|
|
31
29
|
*
|
|
32
|
-
* @param {Cookie[]} cookies -
|
|
33
|
-
* @returns {string}
|
|
30
|
+
* @param {Cookie[]} cookies - The cookies to serialize.
|
|
31
|
+
* @returns {string} The serialized "name=value; name=value" string.
|
|
34
32
|
*/
|
|
35
33
|
export declare function serializeCookies(cookies: Cookie[]): string;
|
|
36
34
|
//# sourceMappingURL=parser.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"parser.d.ts","sourceRoot":"","sources":["../../src/cookies/parser.ts"],"names":[],"mappings":"AAEA
|
|
1
|
+
{"version":3,"file":"parser.d.ts","sourceRoot":"","sources":["../../src/cookies/parser.ts"],"names":[],"mappings":"AAEA;;GAEG;AACH,MAAM,WAAW,MAAM;IACrB,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,CAAC,EAAE,IAAI,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,OAAO,CAAC;IAChB,QAAQ,EAAE,OAAO,CAAC;IAClB,QAAQ,CAAC,EAAE,QAAQ,GAAG,KAAK,GAAG,MAAM,CAAC;IACrC,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,SAAS,EAAE,MAAM,CAAC;IAClB,cAAc,EAAE,MAAM,CAAC;CACxB;AAcD;;;;;;;GAOG;AACH,wBAAgB,cAAc,CAAC,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,GAAG,GAAG,MAAM,GAAG,IAAI,CA8G7E;AASD;;;;;GAKG;AACH,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,MAAM,CAE1D"}
|