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
|
@@ -1,48 +1,30 @@
|
|
|
1
1
|
import type { TLSProfile } from "./types.js";
|
|
2
2
|
/**
|
|
3
|
-
*
|
|
4
|
-
* comma-separated tuple of `version`, cipher codes, extension type codes,
|
|
5
|
-
* supported-group codes, and EC point format codes, all encoded as
|
|
6
|
-
* dash-separated decimal lists (GREASE values filtered out).
|
|
3
|
+
* Generate a JA3 fingerprint string from a TLS profile.
|
|
7
4
|
*
|
|
8
|
-
* @param {TLSProfile} profile -
|
|
9
|
-
* @returns {string}
|
|
10
|
-
*
|
|
11
|
-
* @example
|
|
12
|
-
* const str = ja3String(chromeLatest.tls);
|
|
13
|
-
* // => "771,4865-4866-...,0-23-...,29-23-24,0"
|
|
5
|
+
* @param {TLSProfile} profile - TLS profile to fingerprint.
|
|
6
|
+
* @returns {string} Comma-separated JA3 string of version, ciphers, extensions, groups, and point formats.
|
|
14
7
|
*/
|
|
15
8
|
export declare function ja3String(profile: TLSProfile): string;
|
|
16
9
|
/**
|
|
17
|
-
*
|
|
18
|
-
* The resulting 32-character hex digest is the canonical JA3 fingerprint
|
|
19
|
-
* used in network monitoring and fingerprinting detection.
|
|
20
|
-
*
|
|
21
|
-
* @param {TLSProfile} profile - The TLS profile to fingerprint.
|
|
22
|
-
* @returns {string} The 32-character lowercase hex JA3 MD5 hash.
|
|
10
|
+
* Compute the MD5 hash of the JA3 fingerprint string.
|
|
23
11
|
*
|
|
24
|
-
* @
|
|
25
|
-
*
|
|
26
|
-
* // => "cd08e31494f9531f560d64c695473da9"
|
|
12
|
+
* @param {TLSProfile} profile - TLS profile to fingerprint.
|
|
13
|
+
* @returns {string} Hex-encoded MD5 digest.
|
|
27
14
|
*/
|
|
28
15
|
export declare function ja3Hash(profile: TLSProfile): string;
|
|
29
16
|
/**
|
|
30
|
-
*
|
|
31
|
-
* {@link ja3String}, all numeric lists are sorted before joining, which
|
|
32
|
-
* makes the fingerprint order-independent and useful for comparing profiles
|
|
33
|
-
* that advertise the same capabilities in different orders.
|
|
17
|
+
* Generate a normalized JA3 fingerprint string with sorted components.
|
|
34
18
|
*
|
|
35
|
-
* @param {TLSProfile} profile -
|
|
36
|
-
* @returns {string}
|
|
19
|
+
* @param {TLSProfile} profile - TLS profile to fingerprint.
|
|
20
|
+
* @returns {string} Comma-separated JA3n string with sorted ciphers, extensions, and groups.
|
|
37
21
|
*/
|
|
38
22
|
export declare function ja3nString(profile: TLSProfile): string;
|
|
39
23
|
/**
|
|
40
|
-
*
|
|
41
|
-
* profile. JA3N hashes are order-independent, making them suitable for
|
|
42
|
-
* grouping profiles by capability set regardless of advertisement order.
|
|
24
|
+
* Compute the MD5 hash of the normalized JA3 fingerprint string.
|
|
43
25
|
*
|
|
44
|
-
* @param {TLSProfile} profile -
|
|
45
|
-
* @returns {string}
|
|
26
|
+
* @param {TLSProfile} profile - TLS profile to fingerprint.
|
|
27
|
+
* @returns {string} Hex-encoded MD5 digest.
|
|
46
28
|
*/
|
|
47
29
|
export declare function ja3nHash(profile: TLSProfile): string;
|
|
48
30
|
//# sourceMappingURL=ja3.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ja3.d.ts","sourceRoot":"","sources":["../../src/fingerprints/ja3.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAY7C
|
|
1
|
+
{"version":3,"file":"ja3.d.ts","sourceRoot":"","sources":["../../src/fingerprints/ja3.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAY7C;;;;;GAKG;AACH,wBAAgB,SAAS,CAAC,OAAO,EAAE,UAAU,GAAG,MAAM,CAQrD;AAED;;;;;GAKG;AACH,wBAAgB,OAAO,CAAC,OAAO,EAAE,UAAU,GAAG,MAAM,CAEnD;AAED;;;;;GAKG;AACH,wBAAgB,UAAU,CAAC,OAAO,EAAE,UAAU,GAAG,MAAM,CActD;AAED;;;;;GAKG;AACH,wBAAgB,QAAQ,CAAC,OAAO,EAAE,UAAU,GAAG,MAAM,CAEpD"}
|
package/dist/fingerprints/ja3.js
CHANGED
|
@@ -8,17 +8,10 @@ function filterGrease(values) {
|
|
|
8
8
|
return values.filter((v) => !isGrease(v));
|
|
9
9
|
}
|
|
10
10
|
/**
|
|
11
|
-
*
|
|
12
|
-
* comma-separated tuple of `version`, cipher codes, extension type codes,
|
|
13
|
-
* supported-group codes, and EC point format codes, all encoded as
|
|
14
|
-
* dash-separated decimal lists (GREASE values filtered out).
|
|
11
|
+
* Generate a JA3 fingerprint string from a TLS profile.
|
|
15
12
|
*
|
|
16
|
-
* @param {TLSProfile} profile -
|
|
17
|
-
* @returns {string}
|
|
18
|
-
*
|
|
19
|
-
* @example
|
|
20
|
-
* const str = ja3String(chromeLatest.tls);
|
|
21
|
-
* // => "771,4865-4866-...,0-23-...,29-23-24,0"
|
|
13
|
+
* @param {TLSProfile} profile - TLS profile to fingerprint.
|
|
14
|
+
* @returns {string} Comma-separated JA3 string of version, ciphers, extensions, groups, and point formats.
|
|
22
15
|
*/
|
|
23
16
|
export function ja3String(profile) {
|
|
24
17
|
const version = profile.clientVersion;
|
|
@@ -29,28 +22,19 @@ export function ja3String(profile) {
|
|
|
29
22
|
return `${version},${ciphers},${extensions},${groups},${formats}`;
|
|
30
23
|
}
|
|
31
24
|
/**
|
|
32
|
-
*
|
|
33
|
-
* The resulting 32-character hex digest is the canonical JA3 fingerprint
|
|
34
|
-
* used in network monitoring and fingerprinting detection.
|
|
35
|
-
*
|
|
36
|
-
* @param {TLSProfile} profile - The TLS profile to fingerprint.
|
|
37
|
-
* @returns {string} The 32-character lowercase hex JA3 MD5 hash.
|
|
25
|
+
* Compute the MD5 hash of the JA3 fingerprint string.
|
|
38
26
|
*
|
|
39
|
-
* @
|
|
40
|
-
*
|
|
41
|
-
* // => "cd08e31494f9531f560d64c695473da9"
|
|
27
|
+
* @param {TLSProfile} profile - TLS profile to fingerprint.
|
|
28
|
+
* @returns {string} Hex-encoded MD5 digest.
|
|
42
29
|
*/
|
|
43
30
|
export function ja3Hash(profile) {
|
|
44
31
|
return createHash("md5").update(ja3String(profile)).digest("hex");
|
|
45
32
|
}
|
|
46
33
|
/**
|
|
47
|
-
*
|
|
48
|
-
* {@link ja3String}, all numeric lists are sorted before joining, which
|
|
49
|
-
* makes the fingerprint order-independent and useful for comparing profiles
|
|
50
|
-
* that advertise the same capabilities in different orders.
|
|
34
|
+
* Generate a normalized JA3 fingerprint string with sorted components.
|
|
51
35
|
*
|
|
52
|
-
* @param {TLSProfile} profile -
|
|
53
|
-
* @returns {string}
|
|
36
|
+
* @param {TLSProfile} profile - TLS profile to fingerprint.
|
|
37
|
+
* @returns {string} Comma-separated JA3n string with sorted ciphers, extensions, and groups.
|
|
54
38
|
*/
|
|
55
39
|
export function ja3nString(profile) {
|
|
56
40
|
const version = profile.clientVersion;
|
|
@@ -67,12 +51,10 @@ export function ja3nString(profile) {
|
|
|
67
51
|
return `${version},${ciphers},${extensions},${groups},${formats}`;
|
|
68
52
|
}
|
|
69
53
|
/**
|
|
70
|
-
*
|
|
71
|
-
* profile. JA3N hashes are order-independent, making them suitable for
|
|
72
|
-
* grouping profiles by capability set regardless of advertisement order.
|
|
54
|
+
* Compute the MD5 hash of the normalized JA3 fingerprint string.
|
|
73
55
|
*
|
|
74
|
-
* @param {TLSProfile} profile -
|
|
75
|
-
* @returns {string}
|
|
56
|
+
* @param {TLSProfile} profile - TLS profile to fingerprint.
|
|
57
|
+
* @returns {string} Hex-encoded MD5 digest.
|
|
76
58
|
*/
|
|
77
59
|
export function ja3nHash(profile) {
|
|
78
60
|
return createHash("md5").update(ja3nString(profile)).digest("hex");
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ja3.js","sourceRoot":"","sources":["../../src/fingerprints/ja3.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAGpD,MAAM,UAAU,GAAwB,IAAI,GAAG,CAAC,aAAa,CAAC,CAAC;AAE/D,SAAS,QAAQ,CAAC,KAAa;IAC7B,OAAO,UAAU,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;AAC/B,CAAC;AAED,SAAS,YAAY,CAAC,MAAgB;IACpC,OAAO,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;AAC5C,CAAC;AAED
|
|
1
|
+
{"version":3,"file":"ja3.js","sourceRoot":"","sources":["../../src/fingerprints/ja3.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import type { TLSProfile } from "./types.js";
|
|
2
|
+
/**
|
|
3
|
+
* Generate a complete JA4 fingerprint string.
|
|
4
|
+
*
|
|
5
|
+
* @param {TLSProfile} profile - TLS profile to fingerprint.
|
|
6
|
+
* @param {boolean} hasSNI - Whether the ClientHello includes a Server Name Indication extension.
|
|
7
|
+
* @returns {string} JA4 fingerprint in the format `{a}_{b}_{c}`.
|
|
8
|
+
*/
|
|
9
|
+
export declare function ja4Fingerprint(profile: TLSProfile, hasSNI?: boolean): string;
|
|
10
|
+
/**
|
|
11
|
+
* Generate only the JA4a section of the fingerprint.
|
|
12
|
+
*
|
|
13
|
+
* @param {TLSProfile} profile - TLS profile to fingerprint.
|
|
14
|
+
* @param {boolean} hasSNI - Whether the ClientHello includes a Server Name Indication extension.
|
|
15
|
+
* @returns {string} JA4a section string containing transport, version, SNI, counts, and ALPN.
|
|
16
|
+
*/
|
|
17
|
+
export declare function ja4aSection(profile: TLSProfile, hasSNI?: boolean): string;
|
|
18
|
+
//# sourceMappingURL=ja4.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ja4.d.ts","sourceRoot":"","sources":["../../src/fingerprints/ja4.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AA6D7C;;;;;;GAMG;AACH,wBAAgB,cAAc,CAAC,OAAO,EAAE,UAAU,EAAE,MAAM,GAAE,OAAc,GAAG,MAAM,CAKlF;AAED;;;;;;GAMG;AACH,wBAAgB,WAAW,CAAC,OAAO,EAAE,UAAU,EAAE,MAAM,GAAE,OAAc,GAAG,MAAM,CAE/E"}
|
|
@@ -0,0 +1,81 @@
|
|
|
1
|
+
import { createHash } from "node:crypto";
|
|
2
|
+
import { GREASE_VALUES } from "../tls/constants.js";
|
|
3
|
+
const GREASE_SET = new Set(GREASE_VALUES);
|
|
4
|
+
function isGrease(value) {
|
|
5
|
+
return GREASE_SET.has(value);
|
|
6
|
+
}
|
|
7
|
+
function filterGrease(values) {
|
|
8
|
+
return values.filter((v) => !isGrease(v));
|
|
9
|
+
}
|
|
10
|
+
function ja4Version(versions) {
|
|
11
|
+
const filtered = filterGrease(versions);
|
|
12
|
+
if (filtered.includes(0x0304))
|
|
13
|
+
return "13";
|
|
14
|
+
if (filtered.includes(0x0303))
|
|
15
|
+
return "12";
|
|
16
|
+
if (filtered.includes(0x0302))
|
|
17
|
+
return "11";
|
|
18
|
+
if (filtered.includes(0x0301))
|
|
19
|
+
return "10";
|
|
20
|
+
return "00";
|
|
21
|
+
}
|
|
22
|
+
function ja4Alpn(alpnProtocols) {
|
|
23
|
+
if (alpnProtocols.length === 0)
|
|
24
|
+
return "00";
|
|
25
|
+
const first = alpnProtocols[0];
|
|
26
|
+
if (first === "h2")
|
|
27
|
+
return "h2";
|
|
28
|
+
if (first === "http/1.1")
|
|
29
|
+
return "h1";
|
|
30
|
+
return first.substring(0, 2);
|
|
31
|
+
}
|
|
32
|
+
function ja4a(profile, hasSNI = true) {
|
|
33
|
+
const transport = "t";
|
|
34
|
+
const version = ja4Version(profile.supportedVersions);
|
|
35
|
+
const sni = hasSNI ? "d" : "i";
|
|
36
|
+
const ciphers = filterGrease(profile.cipherSuites);
|
|
37
|
+
const extensions = filterGrease(profile.extensions.map((e) => e.type));
|
|
38
|
+
const cipherCount = String(Math.min(ciphers.length, 99)).padStart(2, "0");
|
|
39
|
+
const extCount = String(Math.min(extensions.length, 99)).padStart(2, "0");
|
|
40
|
+
const alpn = ja4Alpn(profile.alpnProtocols);
|
|
41
|
+
return `${transport}${version}${sni}${cipherCount}${extCount}_${alpn}`;
|
|
42
|
+
}
|
|
43
|
+
function ja4b(profile) {
|
|
44
|
+
const ciphers = filterGrease(profile.cipherSuites);
|
|
45
|
+
const sorted = [...ciphers].sort((a, b) => a - b);
|
|
46
|
+
const str = sorted.map((c) => c.toString(16).padStart(4, "0")).join(",");
|
|
47
|
+
return createHash("sha256").update(str).digest("hex").substring(0, 12);
|
|
48
|
+
}
|
|
49
|
+
function ja4c(profile) {
|
|
50
|
+
const extensions = filterGrease(profile.extensions.map((e) => e.type));
|
|
51
|
+
const sorted = [...extensions].sort((a, b) => a - b);
|
|
52
|
+
const extStr = sorted.map((e) => e.toString(16).padStart(4, "0")).join(",");
|
|
53
|
+
const sigAlgs = profile.signatureAlgorithms;
|
|
54
|
+
const sigStr = sigAlgs.map((s) => s.toString(16).padStart(4, "0")).join(",");
|
|
55
|
+
const combined = `${extStr}_${sigStr}`;
|
|
56
|
+
return createHash("sha256").update(combined).digest("hex").substring(0, 12);
|
|
57
|
+
}
|
|
58
|
+
/**
|
|
59
|
+
* Generate a complete JA4 fingerprint string.
|
|
60
|
+
*
|
|
61
|
+
* @param {TLSProfile} profile - TLS profile to fingerprint.
|
|
62
|
+
* @param {boolean} hasSNI - Whether the ClientHello includes a Server Name Indication extension.
|
|
63
|
+
* @returns {string} JA4 fingerprint in the format `{a}_{b}_{c}`.
|
|
64
|
+
*/
|
|
65
|
+
export function ja4Fingerprint(profile, hasSNI = true) {
|
|
66
|
+
const a = ja4a(profile, hasSNI);
|
|
67
|
+
const b = ja4b(profile);
|
|
68
|
+
const c = ja4c(profile);
|
|
69
|
+
return `${a}_${b}_${c}`;
|
|
70
|
+
}
|
|
71
|
+
/**
|
|
72
|
+
* Generate only the JA4a section of the fingerprint.
|
|
73
|
+
*
|
|
74
|
+
* @param {TLSProfile} profile - TLS profile to fingerprint.
|
|
75
|
+
* @param {boolean} hasSNI - Whether the ClientHello includes a Server Name Indication extension.
|
|
76
|
+
* @returns {string} JA4a section string containing transport, version, SNI, counts, and ALPN.
|
|
77
|
+
*/
|
|
78
|
+
export function ja4aSection(profile, hasSNI = true) {
|
|
79
|
+
return ja4a(profile, hasSNI);
|
|
80
|
+
}
|
|
81
|
+
//# sourceMappingURL=ja4.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ja4.js","sourceRoot":"","sources":["../../src/fingerprints/ja4.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,41 +1,38 @@
|
|
|
1
1
|
import type { BrowserProfile } from "../types.js";
|
|
2
|
-
/**
|
|
2
|
+
/** Chrome 99 browser fingerprint profile. */
|
|
3
3
|
export declare const chrome99: BrowserProfile;
|
|
4
|
-
/**
|
|
4
|
+
/** Chrome 100 browser fingerprint profile. */
|
|
5
5
|
export declare const chrome100: BrowserProfile;
|
|
6
|
-
/**
|
|
6
|
+
/** Chrome 101 browser fingerprint profile. */
|
|
7
7
|
export declare const chrome101: BrowserProfile;
|
|
8
|
-
/**
|
|
8
|
+
/** Chrome 104 browser fingerprint profile. */
|
|
9
9
|
export declare const chrome104: BrowserProfile;
|
|
10
|
-
/**
|
|
10
|
+
/** Chrome 107 browser fingerprint profile. */
|
|
11
11
|
export declare const chrome107: BrowserProfile;
|
|
12
|
-
/**
|
|
12
|
+
/** Chrome 110 browser fingerprint profile. */
|
|
13
13
|
export declare const chrome110: BrowserProfile;
|
|
14
|
-
/**
|
|
14
|
+
/** Chrome 116 browser fingerprint profile. */
|
|
15
15
|
export declare const chrome116: BrowserProfile;
|
|
16
|
-
/**
|
|
16
|
+
/** Chrome 119 browser fingerprint profile. */
|
|
17
17
|
export declare const chrome119: BrowserProfile;
|
|
18
|
-
/**
|
|
18
|
+
/** Chrome 120 browser fingerprint profile. */
|
|
19
19
|
export declare const chrome120: BrowserProfile;
|
|
20
|
-
/**
|
|
20
|
+
/** Chrome 123 browser fingerprint profile. */
|
|
21
21
|
export declare const chrome123: BrowserProfile;
|
|
22
|
-
/**
|
|
22
|
+
/** Chrome 124 browser fingerprint profile. */
|
|
23
23
|
export declare const chrome124: BrowserProfile;
|
|
24
|
-
/**
|
|
24
|
+
/** Chrome 126 browser fingerprint profile. */
|
|
25
25
|
export declare const chrome126: BrowserProfile;
|
|
26
|
-
/**
|
|
26
|
+
/** Chrome 127 browser fingerprint profile. */
|
|
27
27
|
export declare const chrome127: BrowserProfile;
|
|
28
|
-
/**
|
|
28
|
+
/** Chrome 131 browser fingerprint profile. */
|
|
29
29
|
export declare const chrome131: BrowserProfile;
|
|
30
|
-
/**
|
|
30
|
+
/** Chrome 133 browser fingerprint profile. */
|
|
31
31
|
export declare const chrome133: BrowserProfile;
|
|
32
|
-
/**
|
|
32
|
+
/** Chrome 136 browser fingerprint profile. */
|
|
33
33
|
export declare const chrome136: BrowserProfile;
|
|
34
|
-
/** Alias for the most recent Chrome profile
|
|
34
|
+
/** Alias for the most recent Chrome profile. */
|
|
35
35
|
export declare const chromeLatest: BrowserProfile;
|
|
36
|
-
/**
|
|
37
|
-
* Registry of all available Chrome {@link BrowserProfile} instances keyed by
|
|
38
|
-
* profile name (e.g. `"chrome136"`) and the aliases `"chrome_latest"`.
|
|
39
|
-
*/
|
|
36
|
+
/** Map of all available Chrome profiles keyed by name. */
|
|
40
37
|
export declare const chromeProfiles: ReadonlyMap<string, BrowserProfile>;
|
|
41
38
|
//# sourceMappingURL=chrome.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"chrome.d.ts","sourceRoot":"","sources":["../../../src/fingerprints/profiles/chrome.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAoE,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"chrome.d.ts","sourceRoot":"","sources":["../../../src/fingerprints/profiles/chrome.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAoE,MAAM,aAAa,CAAC;AAsIpH,6CAA6C;AAC7C,eAAO,MAAM,QAAQ,gBAA4C,CAAC;AAClE,8CAA8C;AAC9C,eAAO,MAAM,SAAS,gBAA8C,CAAC;AACrE,8CAA8C;AAC9C,eAAO,MAAM,SAAS,gBAA8C,CAAC;AACrE,8CAA8C;AAC9C,eAAO,MAAM,SAAS,gBAA8C,CAAC;AACrE,8CAA8C;AAC9C,eAAO,MAAM,SAAS,gBAA+C,CAAC;AACtE,8CAA8C;AAC9C,eAAO,MAAM,SAAS,gBAA+C,CAAC;AACtE,8CAA8C;AAC9C,eAAO,MAAM,SAAS,gBAA8D,CAAC;AACrF,8CAA8C;AAC9C,eAAO,MAAM,SAAS,gBAA+D,CAAC;AACtF,8CAA8C;AAC9C,eAAO,MAAM,SAAS,gBAA0E,CAAC;AACjG,8CAA8C;AAC9C,eAAO,MAAM,SAAS,gBAAyE,CAAC;AAChG,8CAA8C;AAC9C,eAAO,MAAM,SAAS,gBAAmF,CAAC;AAC1G,8CAA8C;AAC9C,eAAO,MAAM,SAAS,gBAAmF,CAAC;AAC1G,8CAA8C;AAC9C,eAAO,MAAM,SAAS,gBAAmF,CAAC;AAC1G,8CAA8C;AAC9C,eAAO,MAAM,SAAS,gBAAmF,CAAC;AAC1G,8CAA8C;AAC9C,eAAO,MAAM,SAAS,gBAAmF,CAAC;AAC1G,8CAA8C;AAC9C,eAAO,MAAM,SAAS,gBAAmF,CAAC;AAE1G,gDAAgD;AAChD,eAAO,MAAM,YAAY,gBAAY,CAAC;AAEtC,0DAA0D;AAC1D,eAAO,MAAM,cAAc,EAAE,WAAW,CAAC,MAAM,EAAE,cAAc,CAkB7D,CAAC"}
|
|
@@ -2,27 +2,32 @@ import { CipherSuite, ExtensionType, NamedGroup, SignatureScheme, ECPointFormat,
|
|
|
2
2
|
import * as ext from "../extensions.js";
|
|
3
3
|
const CHROME_CIPHER_SUITES = [CipherSuite.TLS_AES_128_GCM_SHA256, CipherSuite.TLS_AES_256_GCM_SHA384, CipherSuite.TLS_CHACHA20_POLY1305_SHA256, CipherSuite.TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256, CipherSuite.TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256, CipherSuite.TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384, CipherSuite.TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384, CipherSuite.TLS_ECDHE_ECDSA_WITH_CHACHA20_POLY1305_SHA256, CipherSuite.TLS_ECDHE_RSA_WITH_CHACHA20_POLY1305_SHA256, CipherSuite.TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA, CipherSuite.TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA, CipherSuite.TLS_RSA_WITH_AES_128_GCM_SHA256, CipherSuite.TLS_RSA_WITH_AES_256_GCM_SHA384, CipherSuite.TLS_RSA_WITH_AES_128_CBC_SHA, CipherSuite.TLS_RSA_WITH_AES_256_CBC_SHA];
|
|
4
4
|
const CHROME_GROUPS = [NamedGroup.X25519, NamedGroup.SECP256R1, NamedGroup.SECP384R1];
|
|
5
|
+
const CHROME_GROUPS_PQ = [NamedGroup.X25519_MLKEM768, NamedGroup.X25519, NamedGroup.SECP256R1, NamedGroup.SECP384R1];
|
|
5
6
|
const CHROME_SIGALGS = [SignatureScheme.ECDSA_SECP256R1_SHA256, SignatureScheme.RSA_PSS_RSAE_SHA256, SignatureScheme.RSA_PKCS1_SHA256, SignatureScheme.ECDSA_SECP384R1_SHA384, SignatureScheme.RSA_PSS_RSAE_SHA384, SignatureScheme.RSA_PKCS1_SHA384, SignatureScheme.RSA_PSS_RSAE_SHA512, SignatureScheme.RSA_PKCS1_SHA512];
|
|
6
7
|
const CHROME_SUPPORTED_VERSIONS = [ProtocolVersion.TLS_1_3, ProtocolVersion.TLS_1_2];
|
|
7
8
|
const CHROME_KEY_SHARE_GROUPS = [NamedGroup.X25519];
|
|
9
|
+
const CHROME_KEY_SHARE_GROUPS_PQ = [NamedGroup.X25519_MLKEM768, NamedGroup.X25519];
|
|
8
10
|
const CHROME_CERT_COMPRESS = [CertCompressAlg.BROTLI];
|
|
9
11
|
const CHROME_DELEGATED_CREDS = [SignatureScheme.ECDSA_SECP256R1_SHA256, SignatureScheme.RSA_PSS_RSAE_SHA256, SignatureScheme.RSA_PSS_RSAE_SHA384, SignatureScheme.RSA_PSS_RSAE_SHA512];
|
|
10
12
|
function chromeExtensions(opts) {
|
|
13
|
+
const groups = opts.pq ? CHROME_GROUPS_PQ : CHROME_GROUPS;
|
|
14
|
+
const keyShareGroups = opts.pq ? CHROME_KEY_SHARE_GROUPS_PQ : CHROME_KEY_SHARE_GROUPS;
|
|
11
15
|
const list = [
|
|
12
16
|
{ type: ExtensionType.SERVER_NAME, data: ext.sniData },
|
|
13
17
|
{ type: ExtensionType.EXTENDED_MASTER_SECRET, data: () => ext.extendedMasterSecretData() },
|
|
14
18
|
{ type: ExtensionType.RENEGOTIATION_INFO, data: () => ext.renegotiationInfoData() },
|
|
15
|
-
{ type: ExtensionType.SUPPORTED_GROUPS, data: () => ext.supportedGroupsData(
|
|
19
|
+
{ type: ExtensionType.SUPPORTED_GROUPS, data: () => ext.supportedGroupsData(groups) },
|
|
16
20
|
{ type: ExtensionType.EC_POINT_FORMATS, data: () => ext.ecPointFormatsData([ECPointFormat.UNCOMPRESSED]) },
|
|
17
21
|
{ type: ExtensionType.SESSION_TICKET, data: () => ext.sessionTicketData() },
|
|
18
22
|
{ type: ExtensionType.APPLICATION_LAYER_PROTOCOL_NEGOTIATION, data: () => ext.alpnData(["h2", "http/1.1"]) },
|
|
19
23
|
{ type: ExtensionType.STATUS_REQUEST, data: () => ext.statusRequestData() },
|
|
20
24
|
{ type: ExtensionType.SIGNATURE_ALGORITHMS, data: () => ext.signatureAlgorithmsData(CHROME_SIGALGS) },
|
|
21
25
|
{ type: ExtensionType.SIGNED_CERTIFICATE_TIMESTAMP },
|
|
22
|
-
{ type: ExtensionType.KEY_SHARE, data: () => ext.keySharePlaceholder(
|
|
26
|
+
{ type: ExtensionType.KEY_SHARE, data: () => ext.keySharePlaceholder(keyShareGroups) },
|
|
23
27
|
{ type: ExtensionType.PSK_KEY_EXCHANGE_MODES, data: () => ext.pskKeyExchangeModesData([PskKeyExchangeMode.PSK_DHE_KE]) },
|
|
24
28
|
{ type: ExtensionType.SUPPORTED_VERSIONS, data: () => ext.supportedVersionsData(CHROME_SUPPORTED_VERSIONS) },
|
|
25
29
|
{ type: ExtensionType.COMPRESS_CERTIFICATE, data: () => ext.compressCertData(CHROME_CERT_COMPRESS) },
|
|
30
|
+
{ type: ExtensionType.PADDING },
|
|
26
31
|
];
|
|
27
32
|
if (opts.alps) {
|
|
28
33
|
list.push({
|
|
@@ -74,19 +79,21 @@ function chromeHeaders(version) {
|
|
|
74
79
|
};
|
|
75
80
|
}
|
|
76
81
|
function chromeTLS(opts = {}) {
|
|
82
|
+
const groups = opts.pq ? CHROME_GROUPS_PQ : CHROME_GROUPS;
|
|
83
|
+
const keyShareGroups = opts.pq ? CHROME_KEY_SHARE_GROUPS_PQ : CHROME_KEY_SHARE_GROUPS;
|
|
77
84
|
return {
|
|
78
85
|
recordVersion: ProtocolVersion.TLS_1_0,
|
|
79
86
|
clientVersion: ProtocolVersion.TLS_1_2,
|
|
80
87
|
cipherSuites: CHROME_CIPHER_SUITES,
|
|
81
88
|
compressionMethods: [0],
|
|
82
89
|
extensions: chromeExtensions(opts),
|
|
83
|
-
supportedGroups:
|
|
90
|
+
supportedGroups: groups,
|
|
84
91
|
signatureAlgorithms: CHROME_SIGALGS,
|
|
85
92
|
alpnProtocols: ["h2", "http/1.1"],
|
|
86
93
|
grease: true,
|
|
87
94
|
randomSessionId: true,
|
|
88
95
|
certCompressAlgorithms: CHROME_CERT_COMPRESS,
|
|
89
|
-
keyShareGroups:
|
|
96
|
+
keyShareGroups: keyShareGroups,
|
|
90
97
|
pskKeyExchangeModes: [PskKeyExchangeMode.PSK_DHE_KE],
|
|
91
98
|
supportedVersions: CHROME_SUPPORTED_VERSIONS,
|
|
92
99
|
ecPointFormats: [ECPointFormat.UNCOMPRESSED],
|
|
@@ -104,44 +111,41 @@ function chromeProfile(name, version, opts = {}) {
|
|
|
104
111
|
headers: chromeHeaders(version),
|
|
105
112
|
};
|
|
106
113
|
}
|
|
107
|
-
/**
|
|
114
|
+
/** Chrome 99 browser fingerprint profile. */
|
|
108
115
|
export const chrome99 = chromeProfile("chrome99", "99.0.4844.51");
|
|
109
|
-
/**
|
|
116
|
+
/** Chrome 100 browser fingerprint profile. */
|
|
110
117
|
export const chrome100 = chromeProfile("chrome100", "100.0.4896.75");
|
|
111
|
-
/**
|
|
118
|
+
/** Chrome 101 browser fingerprint profile. */
|
|
112
119
|
export const chrome101 = chromeProfile("chrome101", "101.0.4951.67");
|
|
113
|
-
/**
|
|
120
|
+
/** Chrome 104 browser fingerprint profile. */
|
|
114
121
|
export const chrome104 = chromeProfile("chrome104", "104.0.5112.81");
|
|
115
|
-
/**
|
|
122
|
+
/** Chrome 107 browser fingerprint profile. */
|
|
116
123
|
export const chrome107 = chromeProfile("chrome107", "107.0.5304.107");
|
|
117
|
-
/**
|
|
124
|
+
/** Chrome 110 browser fingerprint profile. */
|
|
118
125
|
export const chrome110 = chromeProfile("chrome110", "110.0.5481.177");
|
|
119
|
-
/**
|
|
126
|
+
/** Chrome 116 browser fingerprint profile. */
|
|
120
127
|
export const chrome116 = chromeProfile("chrome116", "116.0.5845.96", { alps: true });
|
|
121
|
-
/**
|
|
128
|
+
/** Chrome 119 browser fingerprint profile. */
|
|
122
129
|
export const chrome119 = chromeProfile("chrome119", "119.0.6045.105", { alps: true });
|
|
123
|
-
/**
|
|
130
|
+
/** Chrome 120 browser fingerprint profile. */
|
|
124
131
|
export const chrome120 = chromeProfile("chrome120", "120.0.6099.109", { alps: true, ech: true });
|
|
125
|
-
/**
|
|
132
|
+
/** Chrome 123 browser fingerprint profile. */
|
|
126
133
|
export const chrome123 = chromeProfile("chrome123", "123.0.6312.86", { alps: true, ech: true });
|
|
127
|
-
/**
|
|
128
|
-
export const chrome124 = chromeProfile("chrome124", "124.0.6367.60", { alps: true, ech: true });
|
|
129
|
-
/**
|
|
130
|
-
export const chrome126 = chromeProfile("chrome126", "126.0.6478.55", { alps: true, ech: true });
|
|
131
|
-
/**
|
|
132
|
-
export const chrome127 = chromeProfile("chrome127", "127.0.6533.72", { alps: true, ech: true });
|
|
133
|
-
/**
|
|
134
|
-
export const chrome131 = chromeProfile("chrome131", "131.0.6778.86", { alps: true, ech: true });
|
|
135
|
-
/**
|
|
136
|
-
export const chrome133 = chromeProfile("chrome133", "133.0.6943.53", { alps: true, ech: true });
|
|
137
|
-
/**
|
|
138
|
-
export const chrome136 = chromeProfile("chrome136", "136.0.7103.92", { alps: true, ech: true });
|
|
139
|
-
/** Alias for the most recent Chrome profile
|
|
134
|
+
/** Chrome 124 browser fingerprint profile. */
|
|
135
|
+
export const chrome124 = chromeProfile("chrome124", "124.0.6367.60", { alps: true, ech: true, pq: true });
|
|
136
|
+
/** Chrome 126 browser fingerprint profile. */
|
|
137
|
+
export const chrome126 = chromeProfile("chrome126", "126.0.6478.55", { alps: true, ech: true, pq: true });
|
|
138
|
+
/** Chrome 127 browser fingerprint profile. */
|
|
139
|
+
export const chrome127 = chromeProfile("chrome127", "127.0.6533.72", { alps: true, ech: true, pq: true });
|
|
140
|
+
/** Chrome 131 browser fingerprint profile. */
|
|
141
|
+
export const chrome131 = chromeProfile("chrome131", "131.0.6778.86", { alps: true, ech: true, pq: true });
|
|
142
|
+
/** Chrome 133 browser fingerprint profile. */
|
|
143
|
+
export const chrome133 = chromeProfile("chrome133", "133.0.6943.53", { alps: true, ech: true, pq: true });
|
|
144
|
+
/** Chrome 136 browser fingerprint profile. */
|
|
145
|
+
export const chrome136 = chromeProfile("chrome136", "136.0.7103.92", { alps: true, ech: true, pq: true });
|
|
146
|
+
/** Alias for the most recent Chrome profile. */
|
|
140
147
|
export const chromeLatest = chrome136;
|
|
141
|
-
/**
|
|
142
|
-
* Registry of all available Chrome {@link BrowserProfile} instances keyed by
|
|
143
|
-
* profile name (e.g. `"chrome136"`) and the aliases `"chrome_latest"`.
|
|
144
|
-
*/
|
|
148
|
+
/** Map of all available Chrome profiles keyed by name. */
|
|
145
149
|
export const chromeProfiles = new Map([
|
|
146
150
|
["chrome99", chrome99],
|
|
147
151
|
["chrome100", chrome100],
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"chrome.js","sourceRoot":"","sources":["../../../src/fingerprints/profiles/chrome.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,WAAW,EAAE,aAAa,EAAE,UAAU,EAAE,eAAe,EAAE,aAAa,EAAE,kBAAkB,EAAE,eAAe,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AACtK,OAAO,KAAK,GAAG,MAAM,kBAAkB,CAAC;AAExC,MAAM,oBAAoB,GAAa,CAAC,WAAW,CAAC,sBAAsB,EAAE,WAAW,CAAC,sBAAsB,EAAE,WAAW,CAAC,4BAA4B,EAAE,WAAW,CAAC,uCAAuC,EAAE,WAAW,CAAC,qCAAqC,EAAE,WAAW,CAAC,uCAAuC,EAAE,WAAW,CAAC,qCAAqC,EAAE,WAAW,CAAC,6CAA6C,EAAE,WAAW,CAAC,2CAA2C,EAAE,WAAW,CAAC,kCAAkC,EAAE,WAAW,CAAC,kCAAkC,EAAE,WAAW,CAAC,+BAA+B,EAAE,WAAW,CAAC,+BAA+B,EAAE,WAAW,CAAC,4BAA4B,EAAE,WAAW,CAAC,4BAA4B,CAAC,CAAC;AAE5uB,MAAM,aAAa,GAAa,CAAC,UAAU,CAAC,MAAM,EAAE,UAAU,CAAC,SAAS,EAAE,UAAU,CAAC,SAAS,CAAC,CAAC;AAEhG,MAAM,cAAc,GAAa,CAAC,eAAe,CAAC,sBAAsB,EAAE,eAAe,CAAC,mBAAmB,EAAE,eAAe,CAAC,gBAAgB,EAAE,eAAe,CAAC,sBAAsB,EAAE,eAAe,CAAC,mBAAmB,EAAE,eAAe,CAAC,gBAAgB,EAAE,eAAe,CAAC,mBAAmB,EAAE,eAAe,CAAC,gBAAgB,CAAC,CAAC;AAEvU,MAAM,yBAAyB,GAAa,CAAC,eAAe,CAAC,OAAO,EAAE,eAAe,CAAC,OAAO,CAAC,CAAC;AAE/F,MAAM,uBAAuB,GAAa,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;AAE9D,MAAM,oBAAoB,GAAa,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC;AAEhE,MAAM,sBAAsB,GAAa,CAAC,eAAe,CAAC,sBAAsB,EAAE,eAAe,CAAC,mBAAmB,EAAE,eAAe,CAAC,mBAAmB,EAAE,eAAe,CAAC,mBAAmB,CAAC,CAAC;AAEjM,SAAS,gBAAgB,CAAC,
|
|
1
|
+
{"version":3,"file":"chrome.js","sourceRoot":"","sources":["../../../src/fingerprints/profiles/chrome.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,19 +1,16 @@
|
|
|
1
1
|
import type { BrowserProfile } from "../types.js";
|
|
2
|
-
/**
|
|
2
|
+
/** Edge 99 browser fingerprint profile. */
|
|
3
3
|
export declare const edge99: BrowserProfile;
|
|
4
|
-
/**
|
|
4
|
+
/** Edge 101 browser fingerprint profile. */
|
|
5
5
|
export declare const edge101: BrowserProfile;
|
|
6
|
-
/**
|
|
6
|
+
/** Edge 126 browser fingerprint profile. */
|
|
7
7
|
export declare const edge126: BrowserProfile;
|
|
8
|
-
/**
|
|
8
|
+
/** Edge 131 browser fingerprint profile. */
|
|
9
9
|
export declare const edge131: BrowserProfile;
|
|
10
|
-
/**
|
|
10
|
+
/** Edge 136 browser fingerprint profile. */
|
|
11
11
|
export declare const edge136: BrowserProfile;
|
|
12
|
-
/** Alias for the most recent Edge profile
|
|
12
|
+
/** Alias for the most recent Edge profile. */
|
|
13
13
|
export declare const edgeLatest: BrowserProfile;
|
|
14
|
-
/**
|
|
15
|
-
* Registry of all available Edge {@link BrowserProfile} instances keyed by
|
|
16
|
-
* profile name (e.g. `"edge136"`) and the alias `"edge_latest"`.
|
|
17
|
-
*/
|
|
14
|
+
/** Map of all available Edge profiles keyed by name. */
|
|
18
15
|
export declare const edgeProfiles: ReadonlyMap<string, BrowserProfile>;
|
|
19
16
|
//# sourceMappingURL=edge.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"edge.d.ts","sourceRoot":"","sources":["../../../src/fingerprints/profiles/edge.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,
|
|
1
|
+
{"version":3,"file":"edge.d.ts","sourceRoot":"","sources":["../../../src/fingerprints/profiles/edge.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAiB,MAAM,aAAa,CAAC;AAwCjE,2CAA2C;AAC3C,eAAO,MAAM,MAAM,gBAAoE,CAAC;AACxF,4CAA4C;AAC5C,eAAO,MAAM,OAAO,gBAAwE,CAAC;AAC7F,4CAA4C;AAC5C,eAAO,MAAM,OAAO,gBAAwE,CAAC;AAC7F,4CAA4C;AAC5C,eAAO,MAAM,OAAO,gBAAwE,CAAC;AAC7F,4CAA4C;AAC5C,eAAO,MAAM,OAAO,gBAAwE,CAAC;AAE7F,8CAA8C;AAC9C,eAAO,MAAM,UAAU,gBAAU,CAAC;AAElC,wDAAwD;AACxD,eAAO,MAAM,YAAY,EAAE,WAAW,CAAC,MAAM,EAAE,cAAc,CAO3D,CAAC"}
|
|
@@ -34,22 +34,19 @@ function edgeProfile(name, edgeVersion, chromiumVersion, baseChromeName) {
|
|
|
34
34
|
headers: edgeHeaders(edgeVersion, chromiumVersion),
|
|
35
35
|
};
|
|
36
36
|
}
|
|
37
|
-
/**
|
|
37
|
+
/** Edge 99 browser fingerprint profile. */
|
|
38
38
|
export const edge99 = edgeProfile("edge99", "99.0.1150.30", "99.0.4844.51", "chrome99");
|
|
39
|
-
/**
|
|
39
|
+
/** Edge 101 browser fingerprint profile. */
|
|
40
40
|
export const edge101 = edgeProfile("edge101", "101.0.1210.39", "101.0.4951.67", "chrome101");
|
|
41
|
-
/**
|
|
41
|
+
/** Edge 126 browser fingerprint profile. */
|
|
42
42
|
export const edge126 = edgeProfile("edge126", "126.0.2592.56", "126.0.6478.55", "chrome126");
|
|
43
|
-
/**
|
|
43
|
+
/** Edge 131 browser fingerprint profile. */
|
|
44
44
|
export const edge131 = edgeProfile("edge131", "131.0.2903.63", "131.0.6778.86", "chrome131");
|
|
45
|
-
/**
|
|
45
|
+
/** Edge 136 browser fingerprint profile. */
|
|
46
46
|
export const edge136 = edgeProfile("edge136", "136.0.3240.50", "136.0.7103.92", "chrome136");
|
|
47
|
-
/** Alias for the most recent Edge profile
|
|
47
|
+
/** Alias for the most recent Edge profile. */
|
|
48
48
|
export const edgeLatest = edge136;
|
|
49
|
-
/**
|
|
50
|
-
* Registry of all available Edge {@link BrowserProfile} instances keyed by
|
|
51
|
-
* profile name (e.g. `"edge136"`) and the alias `"edge_latest"`.
|
|
52
|
-
*/
|
|
49
|
+
/** Map of all available Edge profiles keyed by name. */
|
|
53
50
|
export const edgeProfiles = new Map([
|
|
54
51
|
["edge99", edge99],
|
|
55
52
|
["edge101", edge101],
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"edge.js","sourceRoot":"","sources":["../../../src/fingerprints/profiles/edge.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"edge.js","sourceRoot":"","sources":["../../../src/fingerprints/profiles/edge.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAE7C,SAAS,WAAW,CAAC,WAAmB,EAAE,eAAuB;IAC/D,MAAM,EAAE,GAAG,2FAA2F,eAAe,sBAAsB,WAAW,EAAE,CAAC;IACzJ,MAAM,KAAK,GAAG,WAAW,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;IACxC,MAAM,WAAW,GAAG,eAAe,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;IAClD,OAAO;QACL,SAAS,EAAE,EAAE;QACb,OAAO,EAAE;YACP,CAAC,oBAAoB,EAAE,WAAW,CAAC;YACnC,CAAC,YAAY,EAAE,EAAE,CAAC;YAClB,CAAC,WAAW,EAAE,iBAAiB,WAAW,+CAA+C,KAAK,GAAG,CAAC;YAClG,CAAC,kBAAkB,EAAE,IAAI,CAAC;YAC1B,CAAC,QAAQ,EAAE,yIAAyI,CAAC;YACrJ,CAAC,gBAAgB,EAAE,MAAM,CAAC;YAC1B,CAAC,gBAAgB,EAAE,UAAU,CAAC;YAC9B,CAAC,gBAAgB,EAAE,IAAI,CAAC;YACxB,CAAC,gBAAgB,EAAE,UAAU,CAAC;YAC9B,CAAC,iBAAiB,EAAE,yBAAyB,CAAC;YAC9C,CAAC,iBAAiB,EAAE,gBAAgB,CAAC;SACtC;KACF,CAAC;AACJ,CAAC;AAED,SAAS,WAAW,CAAC,IAAY,EAAE,WAAmB,EAAE,eAAuB,EAAE,cAAsB;IACrG,MAAM,IAAI,GAAG,cAAc,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;IAChD,IAAI,CAAC,IAAI,EAAE,CAAC;QACV,MAAM,IAAI,KAAK,CAAC,wBAAwB,cAAc,iCAAiC,IAAI,IAAI,CAAC,CAAC;IACnG,CAAC;IACD,OAAO;QACL,IAAI;QACJ,OAAO,EAAE,MAAM;QACf,OAAO,EAAE,WAAW;QACpB,GAAG,EAAE,IAAI,CAAC,GAAG;QACb,EAAE,EAAE,IAAI,CAAC,EAAE;QACX,OAAO,EAAE,WAAW,CAAC,WAAW,EAAE,eAAe,CAAC;KACnD,CAAC;AACJ,CAAC;AAED,2CAA2C;AAC3C,MAAM,CAAC,MAAM,MAAM,GAAG,WAAW,CAAC,QAAQ,EAAE,cAAc,EAAE,cAAc,EAAE,UAAU,CAAC,CAAC;AACxF,4CAA4C;AAC5C,MAAM,CAAC,MAAM,OAAO,GAAG,WAAW,CAAC,SAAS,EAAE,eAAe,EAAE,eAAe,EAAE,WAAW,CAAC,CAAC;AAC7F,4CAA4C;AAC5C,MAAM,CAAC,MAAM,OAAO,GAAG,WAAW,CAAC,SAAS,EAAE,eAAe,EAAE,eAAe,EAAE,WAAW,CAAC,CAAC;AAC7F,4CAA4C;AAC5C,MAAM,CAAC,MAAM,OAAO,GAAG,WAAW,CAAC,SAAS,EAAE,eAAe,EAAE,eAAe,EAAE,WAAW,CAAC,CAAC;AAC7F,4CAA4C;AAC5C,MAAM,CAAC,MAAM,OAAO,GAAG,WAAW,CAAC,SAAS,EAAE,eAAe,EAAE,eAAe,EAAE,WAAW,CAAC,CAAC;AAE7F,8CAA8C;AAC9C,MAAM,CAAC,MAAM,UAAU,GAAG,OAAO,CAAC;AAElC,wDAAwD;AACxD,MAAM,CAAC,MAAM,YAAY,GAAwC,IAAI,GAAG,CAAC;IACvE,CAAC,QAAQ,EAAE,MAAM,CAAC;IAClB,CAAC,SAAS,EAAE,OAAO,CAAC;IACpB,CAAC,SAAS,EAAE,OAAO,CAAC;IACpB,CAAC,SAAS,EAAE,OAAO,CAAC;IACpB,CAAC,SAAS,EAAE,OAAO,CAAC;IACpB,CAAC,aAAa,EAAE,OAAO,CAAC;CACzB,CAAC,CAAC"}
|