jumpy-lion 0.1.6-beta.3 → 0.1.6-beta.31
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 +1 -607
- package/browser/fonts/macos-bundle/40-macos-aliases.conf +497 -0
- package/browser/fonts/macos-bundle/README.md +24 -0
- package/browser/fonts/macos-bundle/install.sh +83 -0
- package/dist/browser-controller.d.ts +21 -3
- package/dist/browser-controller.d.ts.map +1 -1
- package/dist/browser-controller.js +75 -231
- package/dist/browser-controller.js.map +1 -1
- package/dist/browser-plugin.d.ts +75 -104
- package/dist/browser-plugin.d.ts.map +1 -1
- package/dist/browser-plugin.js +241 -280
- package/dist/browser-plugin.js.map +1 -1
- package/dist/browser-process/align-fingerprint-config.d.ts +40 -0
- package/dist/browser-process/align-fingerprint-config.d.ts.map +1 -0
- package/dist/browser-process/align-fingerprint-config.js +79 -0
- package/dist/browser-process/align-fingerprint-config.js.map +1 -0
- package/dist/browser-process/anti-detect-config.d.ts +130 -1
- package/dist/browser-process/anti-detect-config.d.ts.map +1 -1
- package/dist/browser-process/anti-detect-config.js +353 -110
- package/dist/browser-process/anti-detect-config.js.map +1 -1
- package/dist/browser-process/browser.d.ts +37 -89
- package/dist/browser-process/browser.d.ts.map +1 -1
- package/dist/browser-process/browser.js +389 -85
- package/dist/browser-process/browser.js.map +1 -1
- package/dist/browser-process/fingerprint-config.d.ts +103 -0
- package/dist/browser-process/fingerprint-config.d.ts.map +1 -0
- package/dist/browser-process/fingerprint-config.js +245 -0
- package/dist/browser-process/fingerprint-config.js.map +1 -0
- package/dist/browser-process/get-chrome-executable.d.ts +6 -0
- package/dist/browser-process/get-chrome-executable.d.ts.map +1 -1
- package/dist/browser-process/get-chrome-executable.js +23 -0
- package/dist/browser-process/get-chrome-executable.js.map +1 -1
- package/dist/browser-process/gpu-family-profiles.d.ts +53 -0
- package/dist/browser-process/gpu-family-profiles.d.ts.map +1 -0
- package/dist/browser-process/gpu-family-profiles.js +395 -0
- package/dist/browser-process/gpu-family-profiles.js.map +1 -0
- package/dist/browser-process/index.d.ts +1 -1
- package/dist/browser-process/index.d.ts.map +1 -1
- package/dist/browser-process/index.js +1 -1
- package/dist/browser-process/index.js.map +1 -1
- package/dist/browser-process/launch-options.d.ts +195 -0
- package/dist/browser-process/launch-options.d.ts.map +1 -0
- package/dist/browser-process/launch-options.js +2 -0
- package/dist/browser-process/launch-options.js.map +1 -0
- package/dist/browser-process/port-allocator.d.ts +46 -0
- package/dist/browser-process/port-allocator.d.ts.map +1 -0
- package/dist/browser-process/port-allocator.js +171 -0
- package/dist/browser-process/port-allocator.js.map +1 -0
- package/dist/browser-process/process.d.ts +35 -0
- package/dist/browser-process/process.d.ts.map +1 -1
- package/dist/browser-process/process.js +110 -0
- package/dist/browser-process/process.js.map +1 -1
- package/dist/browser-process/signal-cleanup.d.ts +37 -0
- package/dist/browser-process/signal-cleanup.d.ts.map +1 -0
- package/dist/browser-process/signal-cleanup.js +93 -0
- package/dist/browser-process/signal-cleanup.js.map +1 -0
- package/dist/connection/cdp-reconnection.d.ts +61 -0
- package/dist/connection/cdp-reconnection.d.ts.map +1 -0
- package/dist/connection/cdp-reconnection.js +98 -0
- package/dist/connection/cdp-reconnection.js.map +1 -0
- package/dist/connection/page-session.d.ts +109 -0
- package/dist/connection/page-session.d.ts.map +1 -0
- package/dist/connection/page-session.js +257 -0
- package/dist/connection/page-session.js.map +1 -0
- package/dist/crawler.d.ts +30 -1
- package/dist/crawler.d.ts.map +1 -1
- package/dist/crawler.js +97 -7
- package/dist/crawler.js.map +1 -1
- package/dist/fingerprinting/fingerprint-injector.d.ts +6 -116
- package/dist/fingerprinting/fingerprint-injector.d.ts.map +1 -1
- package/dist/fingerprinting/fingerprint-injector.js +82 -531
- package/dist/fingerprinting/fingerprint-injector.js.map +1 -1
- package/dist/fingerprinting/fingerprint-overrides/index.d.ts +6 -2
- package/dist/fingerprinting/fingerprint-overrides/index.d.ts.map +1 -1
- package/dist/fingerprinting/fingerprint-overrides/index.js +6 -2
- package/dist/fingerprinting/fingerprint-overrides/index.js.map +1 -1
- package/dist/fingerprinting/fingerprint-overrides/navigator-override.d.ts +18 -0
- package/dist/fingerprinting/fingerprint-overrides/navigator-override.d.ts.map +1 -0
- package/dist/fingerprinting/fingerprint-overrides/navigator-override.js +136 -0
- package/dist/fingerprinting/fingerprint-overrides/navigator-override.js.map +1 -0
- package/dist/fingerprinting/fingerprint-overrides/override.d.ts +137 -0
- package/dist/fingerprinting/fingerprint-overrides/override.d.ts.map +1 -0
- package/dist/fingerprinting/fingerprint-overrides/override.js +14 -0
- package/dist/fingerprinting/fingerprint-overrides/override.js.map +1 -0
- package/dist/fingerprinting/fingerprint-overrides/platform-consistency.d.ts.map +1 -1
- package/dist/fingerprinting/fingerprint-overrides/platform-consistency.js +42 -11
- package/dist/fingerprinting/fingerprint-overrides/platform-consistency.js.map +1 -1
- package/dist/fingerprinting/fingerprint-overrides/registry.d.ts +27 -0
- package/dist/fingerprinting/fingerprint-overrides/registry.d.ts.map +1 -0
- package/dist/fingerprinting/fingerprint-overrides/registry.js +285 -0
- package/dist/fingerprinting/fingerprint-overrides/registry.js.map +1 -0
- package/dist/fingerprinting/fingerprint-overrides/screen-override.d.ts +16 -0
- package/dist/fingerprinting/fingerprint-overrides/screen-override.d.ts.map +1 -0
- package/dist/fingerprinting/fingerprint-overrides/screen-override.js +175 -0
- package/dist/fingerprinting/fingerprint-overrides/screen-override.js.map +1 -0
- package/dist/fingerprinting/fingerprint-overrides/stealth-script.d.ts.map +1 -1
- package/dist/fingerprinting/fingerprint-overrides/stealth-script.js +72 -6
- package/dist/fingerprinting/fingerprint-overrides/stealth-script.js.map +1 -1
- package/dist/fingerprinting/fingerprint-overrides/webgl-spoofing.d.ts.map +1 -1
- package/dist/fingerprinting/fingerprint-overrides/webgl-spoofing.js +23 -4
- package/dist/fingerprinting/fingerprint-overrides/webgl-spoofing.js.map +1 -1
- package/dist/fingerprinting/injection-planner.d.ts +178 -0
- package/dist/fingerprinting/injection-planner.d.ts.map +1 -0
- package/dist/fingerprinting/injection-planner.js +376 -0
- package/dist/fingerprinting/injection-planner.js.map +1 -0
- package/dist/fingerprinting/locale-resolver.d.ts +7 -0
- package/dist/fingerprinting/locale-resolver.d.ts.map +1 -1
- package/dist/fingerprinting/locale-resolver.js +24 -1
- package/dist/fingerprinting/locale-resolver.js.map +1 -1
- package/dist/fingerprinting/non-apify-fingerprint-generator.d.ts +23 -11
- package/dist/fingerprinting/non-apify-fingerprint-generator.d.ts.map +1 -1
- package/dist/fingerprinting/non-apify-fingerprint-generator.js +53 -15
- package/dist/fingerprinting/non-apify-fingerprint-generator.js.map +1 -1
- package/dist/fingerprinting/non-apify-profiles.json +52186 -0
- package/dist/fingerprinting/os-consistency.d.ts +31 -0
- package/dist/fingerprinting/os-consistency.d.ts.map +1 -0
- package/dist/fingerprinting/os-consistency.js +50 -0
- package/dist/fingerprinting/os-consistency.js.map +1 -0
- package/dist/fingerprinting/profile-quality.d.ts +24 -0
- package/dist/fingerprinting/profile-quality.d.ts.map +1 -0
- package/dist/fingerprinting/profile-quality.js +165 -0
- package/dist/fingerprinting/profile-quality.js.map +1 -0
- package/dist/fingerprinting/profile-selector.d.ts +101 -0
- package/dist/fingerprinting/profile-selector.d.ts.map +1 -0
- package/dist/fingerprinting/profile-selector.js +156 -0
- package/dist/fingerprinting/profile-selector.js.map +1 -0
- package/dist/fingerprinting/ua-alignment.d.ts +51 -0
- package/dist/fingerprinting/ua-alignment.d.ts.map +1 -0
- package/dist/fingerprinting/ua-alignment.js +146 -0
- package/dist/fingerprinting/ua-alignment.js.map +1 -0
- package/dist/index.d.ts +5 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +6 -0
- package/dist/index.js.map +1 -1
- package/dist/input/dropdown-selector.d.ts +74 -0
- package/dist/input/dropdown-selector.d.ts.map +1 -0
- package/dist/input/dropdown-selector.js +306 -0
- package/dist/input/dropdown-selector.js.map +1 -0
- package/dist/input/element-target.d.ts +117 -0
- package/dist/input/element-target.d.ts.map +1 -0
- package/dist/input/element-target.js +383 -0
- package/dist/input/element-target.js.map +1 -0
- package/dist/input/input-emulator.d.ts +85 -0
- package/dist/input/input-emulator.d.ts.map +1 -0
- package/dist/input/input-emulator.js +319 -0
- package/dist/input/input-emulator.js.map +1 -0
- package/dist/input/input-transport.d.ts +60 -0
- package/dist/input/input-transport.d.ts.map +1 -0
- package/dist/input/input-transport.js +28 -0
- package/dist/input/input-transport.js.map +1 -0
- package/dist/input/recording-transport.d.ts +32 -0
- package/dist/input/recording-transport.d.ts.map +1 -0
- package/dist/input/recording-transport.js +43 -0
- package/dist/input/recording-transport.js.map +1 -0
- package/dist/navigation/page-navigation.d.ts +67 -0
- package/dist/navigation/page-navigation.d.ts.map +1 -0
- package/dist/navigation/page-navigation.js +107 -0
- package/dist/navigation/page-navigation.js.map +1 -0
- package/dist/network/network-watch.d.ts +72 -0
- package/dist/network/network-watch.d.ts.map +1 -0
- package/dist/network/network-watch.js +143 -0
- package/dist/network/network-watch.js.map +1 -0
- package/dist/page.d.ts +90 -103
- package/dist/page.d.ts.map +1 -1
- package/dist/page.js +184 -1117
- package/dist/page.js.map +1 -1
- package/dist/session/inject-hook.d.ts +24 -0
- package/dist/session/inject-hook.d.ts.map +1 -0
- package/dist/session/inject-hook.js +80 -0
- package/dist/session/inject-hook.js.map +1 -0
- package/dist/session/save.d.ts +21 -0
- package/dist/session/save.d.ts.map +1 -0
- package/dist/session/save.js +163 -0
- package/dist/session/save.js.map +1 -0
- package/dist/session/tar-data-dir.d.ts +13 -0
- package/dist/session/tar-data-dir.d.ts.map +1 -0
- package/dist/session/tar-data-dir.js +107 -0
- package/dist/session/tar-data-dir.js.map +1 -0
- package/dist/session/types.d.ts +80 -0
- package/dist/session/types.d.ts.map +1 -0
- package/dist/session/types.js +29 -0
- package/dist/session/types.js.map +1 -0
- package/dist/session-profile.d.ts +79 -0
- package/dist/session-profile.d.ts.map +1 -0
- package/dist/session-profile.js +124 -0
- package/dist/session-profile.js.map +1 -0
- package/dist/tsconfig.build.tsbuildinfo +1 -1
- package/package.json +16 -9
- package/scripts/postinstall.cjs +58 -0
- package/dist/fingerprinting/custom-fingerprint-injector.d.ts +0 -87
- package/dist/fingerprinting/custom-fingerprint-injector.d.ts.map +0 -1
- package/dist/fingerprinting/custom-fingerprint-injector.js +0 -342
- package/dist/fingerprinting/custom-fingerprint-injector.js.map +0 -1
- package/dist/launcher-wrap.d.ts +0 -10
- package/dist/launcher-wrap.d.ts.map +0 -1
- package/dist/launcher-wrap.js +0 -11
- package/dist/launcher-wrap.js.map +0 -1
|
@@ -3,26 +3,68 @@
|
|
|
3
3
|
*
|
|
4
4
|
* Called by browser.ts before launching the browser when useNativeStealth is enabled.
|
|
5
5
|
* Translates the fingerprint-generator BrowserFingerprintWithHeaders output into
|
|
6
|
-
* the --
|
|
6
|
+
* the --blink-platform-overrides-file JSON schema consumed by the C++ override singleton.
|
|
7
7
|
*/
|
|
8
8
|
import fs from 'fs/promises';
|
|
9
9
|
import os from 'os';
|
|
10
10
|
import path from 'path';
|
|
11
11
|
import crypto from 'crypto';
|
|
12
|
+
import { deriveWebglFamilyProfile } from './gpu-family-profiles.js';
|
|
13
|
+
// ─── Helpers ──────────────────────────────────────────────────────────────────
|
|
14
|
+
/**
|
|
15
|
+
* Pick a deterministic, plausible `navigator.storage.estimate().quota` value
|
|
16
|
+
* (in bytes) for a given session. Real Mac SSDs scale loosely with RAM tier:
|
|
17
|
+
* 8 GB RAM machines ship with 256/512 GB SSDs, 16 GB with 512/1024, 24/32 GB
|
|
18
|
+
* with 1024/2048 GB. Chrome's StorageManager normally reports ~60% of total
|
|
19
|
+
* disk space; we mirror that with ±10% jitter so different sessions land at
|
|
20
|
+
* different (but plausible) values. The seed makes the choice reproducible
|
|
21
|
+
* across hosts so a Mac-on-Mac harvest and a Mac-spoofed-on-Linux harvest
|
|
22
|
+
* with the same seed produce the same number.
|
|
23
|
+
*/
|
|
24
|
+
function deriveStorageQuota(seed, deviceMemoryGB) {
|
|
25
|
+
const ssdSizeGB = deviceMemoryGB <= 8
|
|
26
|
+
? ((seed & 1) ? 256 : 512)
|
|
27
|
+
: deviceMemoryGB <= 16
|
|
28
|
+
? ((seed & 1) ? 512 : 1024)
|
|
29
|
+
: ((seed & 1) ? 1024 : 2048);
|
|
30
|
+
const jitterFraction = (((seed >>> 8) & 0xFF) / 255) * 0.2 - 0.1; // -10% .. +10%
|
|
31
|
+
const totalBytes = ssdSizeGB * 1024 * 1024 * 1024;
|
|
32
|
+
return Math.floor(totalBytes * (0.60 + jitterFraction));
|
|
33
|
+
}
|
|
34
|
+
/**
|
|
35
|
+
* Pick deterministic, plausible navigator.connection values for a given session.
|
|
36
|
+
* Real residential broadband: rtt 25-150ms (Chrome rounds to 25ms steps),
|
|
37
|
+
* downlink 5-50 Mbps. Datacenters report rtt<5ms and downlink>500 Mbps which
|
|
38
|
+
* is an obvious bot signal. Same seed → same values, so a Mac harvest and a
|
|
39
|
+
* Linux-Docker-spoof harvest produce identical readouts.
|
|
40
|
+
*/
|
|
41
|
+
function deriveNetwork(seed) {
|
|
42
|
+
// rtt in [50, 150] ms, in 25ms steps (so 50, 75, 100, 125, 150).
|
|
43
|
+
const rttSteps = [50, 75, 100, 125, 150];
|
|
44
|
+
const rttIdx = (seed >>> 16) % rttSteps.length;
|
|
45
|
+
const rtt = rttSteps[rttIdx];
|
|
46
|
+
// downlink in [5, 25] Mbps, rounded to one decimal — Chrome rounds to ~1.5
|
|
47
|
+
// significant figures. Use a stable hash of the seed so the choice is
|
|
48
|
+
// reproducible.
|
|
49
|
+
const downlinkBucket = (seed >>> 24) & 0xFF; // 0..255
|
|
50
|
+
const downlink = Math.round((5 + (downlinkBucket / 255) * 20) * 10) / 10;
|
|
51
|
+
return { rtt, downlink, effectiveType: '4g', saveData: false };
|
|
52
|
+
}
|
|
53
|
+
/**
|
|
54
|
+
* Pick AudioContext sampleRate matching the spoofed platform. Real Mac default
|
|
55
|
+
* is 44100 Hz (CoreAudio); real Linux/Windows is 48000 Hz (PulseAudio/WASAPI).
|
|
56
|
+
* Pinning here makes the JS-visible value match the OS we're claiming.
|
|
57
|
+
*/
|
|
58
|
+
function deriveAudioSampleRate(platform) {
|
|
59
|
+
return platform.startsWith('Mac') ? 44100 : 48000;
|
|
60
|
+
}
|
|
12
61
|
// ─── Generation ───────────────────────────────────────────────────────────────
|
|
13
62
|
/**
|
|
14
|
-
*
|
|
15
|
-
*
|
|
16
|
-
*
|
|
17
|
-
* @param sessionId - Session identifier used to derive the seed (proxy session ID, etc.)
|
|
18
|
-
* @param resolvedLocale - Pre-resolved locale/languages/timezone triple. When provided,
|
|
19
|
-
* these values win over anything derived from fingerprint-generator headers so that a
|
|
20
|
-
* user-supplied `locale: 'ko-KR'` coherently propagates to every locale surface
|
|
21
|
-
* (Accept-Language, navigator.language, Intl defaults, timezone).
|
|
63
|
+
* Derive the 53-bit session seed from the proxy session tag (or a per-process
|
|
64
|
+
* random source when none is supplied) and the UA. See `generateFingerprintConfig`
|
|
65
|
+
* for the determinism rationale.
|
|
22
66
|
*/
|
|
23
|
-
|
|
24
|
-
const fp = fingerprint.fingerprint;
|
|
25
|
-
const headers = fingerprint.headers;
|
|
67
|
+
function deriveSeed(sessionId, userAgent) {
|
|
26
68
|
// Seed derivation:
|
|
27
69
|
// - With a sessionId (proxy session tag) → deterministic: same session ID
|
|
28
70
|
// always yields the same seed so cookies/IP/canvas/audio stay coherent
|
|
@@ -33,12 +75,17 @@ export function generateFingerprintConfig(fingerprint, sessionId, resolvedLocale
|
|
|
33
75
|
// all produce the same seed and therefore the same canvas/audio noise
|
|
34
76
|
// hash across every session — a cross-session correlation signal.
|
|
35
77
|
const seedSource = sessionId
|
|
36
|
-
? `${sessionId}|${
|
|
37
|
-
: `${crypto.randomBytes(16).toString('hex')}|${
|
|
78
|
+
? `${sessionId}|${userAgent}`
|
|
79
|
+
: `${crypto.randomBytes(16).toString('hex')}|${userAgent}`;
|
|
38
80
|
const seedHash = crypto.createHash('sha256').update(seedSource).digest();
|
|
39
81
|
// Take first 8 bytes as a number (JavaScript number precision is sufficient for 53-bit ints)
|
|
40
|
-
|
|
41
|
-
|
|
82
|
+
return seedHash.readUInt32BE(0) * 0x100000000 + seedHash.readUInt32BE(4);
|
|
83
|
+
}
|
|
84
|
+
/**
|
|
85
|
+
* Build the navigator surface: legacy + UA-CH platform split, UA-CH brands,
|
|
86
|
+
* user agent, deviceMemory resampling, and storage-quota pinning. Pure.
|
|
87
|
+
*/
|
|
88
|
+
function buildNavigatorSurface(fp, headers, seed, locale) {
|
|
42
89
|
// navigator.platform (legacy) and navigator.userAgentData.platform (UA-CH)
|
|
43
90
|
// are DIFFERENT APIs with DIFFERENT values:
|
|
44
91
|
// navigator.platform → 'MacIntel' | 'Win32' | 'Linux x86_64'
|
|
@@ -68,6 +115,58 @@ export function generateFingerprintConfig(fingerprint, sessionId, resolvedLocale
|
|
|
68
115
|
version: b.version,
|
|
69
116
|
full_version: fullVersionList[i]?.version ?? b.version,
|
|
70
117
|
}));
|
|
118
|
+
// User agent from headers (most accurate source)
|
|
119
|
+
const userAgent = headers['user-agent']
|
|
120
|
+
?? fp.navigator?.userAgent
|
|
121
|
+
?? '';
|
|
122
|
+
const brandName = extractBrandName(uaBrands, userAgent);
|
|
123
|
+
// deviceMemory: the W3C 2018 spec defined {0.25, 0.5, 1, 2, 4, 8} buckets,
|
|
124
|
+
// but real Chrome 147 on desktop now returns the raw host RAM in GB
|
|
125
|
+
// (verified by harvest 2026-05-11: 32 GB Apple Silicon Mac reports
|
|
126
|
+
// `navigator.deviceMemory === 32`). Reporting the legacy spec-bucketed 8
|
|
127
|
+
// is now a population minority (<15% of real Mac traffic) and an
|
|
128
|
+
// instant detection vector. Sample from a realistic 2026 Mac RAM
|
|
129
|
+
// distribution (8/16/24/32/48/64/128 GB), keyed off the session seed
|
|
130
|
+
// so Mac-on-Mac and Mac-on-Linux runs of the same seed agree.
|
|
131
|
+
const rawDeviceMemory = fp.navigator?.deviceMemory ?? 8;
|
|
132
|
+
const deviceMemory = deriveRealisticDeviceMemory(seed, rawDeviceMemory);
|
|
133
|
+
// navigator.storage.estimate().quota — pinned per-session so the same profile
|
|
134
|
+
// reports the same quota on Mac and Linux (without this, real disk leaks
|
|
135
|
+
// through). Derived from seed+deviceMemory to land in a plausible Mac-SSD
|
|
136
|
+
// distribution: 8 GB RAM ↔ 256/512 GB SSD, 16 GB ↔ 512/1024 GB, 24/32 GB ↔
|
|
137
|
+
// 1024/2048 GB. Chrome's StorageManager normally reports ~60% of total disk
|
|
138
|
+
// space; we mirror that range with ±10% seed-driven jitter so different
|
|
139
|
+
// profiles get different (but plausible) values.
|
|
140
|
+
const storageQuota = deriveStorageQuota(seed, fp.navigator?.deviceMemory ?? deviceMemory);
|
|
141
|
+
const navigator = {
|
|
142
|
+
platform, // legacy form: 'MacIntel' | 'Win32' | 'Linux x86_64'
|
|
143
|
+
...(locale.language && { language: locale.language }),
|
|
144
|
+
...(locale.languages && { languages: locale.languages }),
|
|
145
|
+
hardwareConcurrency: fp.navigator?.hardwareConcurrency ?? 8,
|
|
146
|
+
deviceMemory,
|
|
147
|
+
storageQuota,
|
|
148
|
+
userAgent,
|
|
149
|
+
...(uaBrands.length > 0 && {
|
|
150
|
+
userAgentData: {
|
|
151
|
+
brands: uaBrands,
|
|
152
|
+
mobile: uaData?.mobile ?? false,
|
|
153
|
+
platform: uaData?.platform ?? uaChPlatform,
|
|
154
|
+
platformVersion: uaData?.platformVersion ?? '15.0.0',
|
|
155
|
+
architecture: uaData?.architecture ?? 'x86',
|
|
156
|
+
bitness: uaData?.bitness ?? '64',
|
|
157
|
+
model: uaData?.model ?? '',
|
|
158
|
+
uaFullVersion: uaData?.uaFullVersion ?? extractFullVersion(userAgent),
|
|
159
|
+
fullVersionList: uaBrands,
|
|
160
|
+
},
|
|
161
|
+
}),
|
|
162
|
+
};
|
|
163
|
+
return { navigator, brandName, uaChPlatform, platform };
|
|
164
|
+
}
|
|
165
|
+
/**
|
|
166
|
+
* Build the WebGL surface: vendor/renderer passthrough, family classification,
|
|
167
|
+
* texture-size cap matched to the renderer, and the per-family pname block. Pure.
|
|
168
|
+
*/
|
|
169
|
+
function buildWebglSurface(fp) {
|
|
71
170
|
// WebGL from fingerprint. Real Chrome 147 on Apple Silicon leaks the
|
|
72
171
|
// exact chip variant verbatim ("ANGLE (Apple, ANGLE Metal Renderer:
|
|
73
172
|
// Apple M4 Pro, Unspecified Version)"), confirmed against a user's
|
|
@@ -78,12 +177,85 @@ export function generateFingerprintConfig(fingerprint, sessionId, resolvedLocale
|
|
|
78
177
|
const webglVendor = videoCard?.vendor ?? 'Google Inc. (NVIDIA)';
|
|
79
178
|
const webglRenderer = videoCard?.renderer
|
|
80
179
|
?? 'ANGLE (NVIDIA, NVIDIA GeForce RTX 3060 Direct3D11 vs_5_0 ps_5_0, D3D11)';
|
|
81
|
-
//
|
|
180
|
+
// GL_MAX_TEXTURE_SIZE override. SwiftShader (--use-angle=swiftshader) returns
|
|
181
|
+
// 8192; real Apple Silicon (Metal), modern NVIDIA / AMD discrete GPUs, and
|
|
182
|
+
// most Intel iGPUs return 16384. Pair the spoofed renderer with its real
|
|
183
|
+
// texture-size cap; mismatch is an instant CreepJS catch.
|
|
184
|
+
//
|
|
185
|
+
// M1 — also classify the renderer into a GPU family (apple_metal,
|
|
186
|
+
// linux_mesa_*, windows_d3d_*) so we can populate the rest of the
|
|
187
|
+
// platform-divergent WebGL pnames (max_draw_buffers, aliased_*_range, ...)
|
|
188
|
+
// from the per-family PLATFORM_GPU_TABLE. The C++ binary ignores the new
|
|
189
|
+
// keys until M2 lands the parser additions; once it does, the JSON shape
|
|
190
|
+
// is already correct.
|
|
191
|
+
const rendererLower = webglRenderer.toLowerCase();
|
|
192
|
+
const { family: webglFamily, profile: webglFamilyProfile } = deriveWebglFamilyProfile(webglRenderer);
|
|
193
|
+
const webglMaxTextureSize = (() => {
|
|
194
|
+
if (/apple|metal|m[123]\b|intel.*iris.*xe|nvidia geforce rtx 40|nvidia geforce rtx 30|nvidia geforce rtx 20|amd radeon (rx [56789]|pro)/i.test(rendererLower)) {
|
|
195
|
+
return 16384;
|
|
196
|
+
}
|
|
197
|
+
if (/nvidia geforce (gtx 1[06]|rtx 50|rtx 60)|amd radeon rx 7|nvidia rtx (a|h)/i.test(rendererLower)) {
|
|
198
|
+
return 32768; // newest cards / workstation
|
|
199
|
+
}
|
|
200
|
+
if (/swiftshader|llvmpipe|mesa offscreen/i.test(rendererLower)) {
|
|
201
|
+
return 8192; // honest SwiftShader claim
|
|
202
|
+
}
|
|
203
|
+
return webglFamilyProfile.maxTextureSize; // family-table default
|
|
204
|
+
})();
|
|
205
|
+
const webgl = {
|
|
206
|
+
vendor: webglVendor,
|
|
207
|
+
renderer: webglRenderer,
|
|
208
|
+
maxTextureSize: webglMaxTextureSize,
|
|
209
|
+
maxViewportDim: webglFamilyProfile.maxViewportDim,
|
|
210
|
+
extensions: webglFamilyProfile.extensions,
|
|
211
|
+
...(webglFamily && { familyHint: webglFamily }),
|
|
212
|
+
maxDrawBuffers: webglFamilyProfile.maxDrawBuffers,
|
|
213
|
+
maxSamples: webglFamilyProfile.maxSamples,
|
|
214
|
+
max3dTextureSize: webglFamilyProfile.max3dTextureSize,
|
|
215
|
+
maxArrayTextureLayers: webglFamilyProfile.maxArrayTextureLayers,
|
|
216
|
+
subpixelBits: webglFamilyProfile.subpixelBits,
|
|
217
|
+
maxTransformFeedbackInterleavedComponents: webglFamilyProfile.maxTransformFeedbackInterleavedComponents,
|
|
218
|
+
aliasedLineWidthRange: webglFamilyProfile.aliasedLineWidthRange,
|
|
219
|
+
aliasedPointSizeRange: webglFamilyProfile.aliasedPointSizeRange,
|
|
220
|
+
};
|
|
221
|
+
return { webgl, family: webglFamily, vendor: webglVendor };
|
|
222
|
+
}
|
|
223
|
+
/** Build the WebGPU surface from explicit fingerprint data or the WebGL vendor. Pure. */
|
|
224
|
+
function buildWebgpuSurface(fp, webglVendor) {
|
|
225
|
+
// WebGPU — from explicit webgpu field on fingerprint (non-Apify profiles), or
|
|
226
|
+
// derived from WebGL vendor as a fallback (Apify fingerprints have no webgpu data).
|
|
227
|
+
const webgpuData = fp.webgpu;
|
|
228
|
+
const derivedWebGPUVendor = webgpuData?.vendor ?? deriveWebGPUVendorFromWebGL(webglVendor);
|
|
229
|
+
if (!derivedWebGPUVendor)
|
|
230
|
+
return undefined;
|
|
231
|
+
return {
|
|
232
|
+
vendor: derivedWebGPUVendor,
|
|
233
|
+
architecture: webgpuData?.architecture ?? '',
|
|
234
|
+
device: webgpuData?.device ?? '',
|
|
235
|
+
description: webgpuData?.description ?? '',
|
|
236
|
+
};
|
|
237
|
+
}
|
|
238
|
+
/** Build the screen surface, capping colorDepth to Chrome's privacy-reduced 24. Pure. */
|
|
239
|
+
function buildScreenSurface(fp) {
|
|
82
240
|
const screen = fp.screen;
|
|
83
|
-
//
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
241
|
+
// colorDepth: real Chrome privacy-reduces to 24 regardless of display HDR
|
|
242
|
+
// capability. 30 is the raw macOS value that leaks through when we don't cap.
|
|
243
|
+
const colorDepth = Math.min(screen?.colorDepth ?? 24, 24);
|
|
244
|
+
return {
|
|
245
|
+
width: screen?.width ?? 1920,
|
|
246
|
+
height: screen?.height ?? 1080,
|
|
247
|
+
availWidth: screen?.availWidth ?? screen?.width ?? 1920,
|
|
248
|
+
availHeight: screen?.availHeight ?? (screen?.height ? screen.height - 40 : 1040),
|
|
249
|
+
colorDepth,
|
|
250
|
+
pixelRatio: screen?.devicePixelRatio ?? 1,
|
|
251
|
+
};
|
|
252
|
+
}
|
|
253
|
+
/**
|
|
254
|
+
* Resolve the (navigator.language, navigator.languages, timezone) triple the
|
|
255
|
+
* config advertises. Prefers the pre-resolved locale (explicit-intent path),
|
|
256
|
+
* else a seeded plausible default. Pure.
|
|
257
|
+
*/
|
|
258
|
+
function buildLocaleSurface(headers, resolvedLocale, seed) {
|
|
87
259
|
// Accept-language: prefer the pre-resolved triple (so a user-supplied locale wins)
|
|
88
260
|
// and fall back to fingerprint headers when no resolution happened.
|
|
89
261
|
//
|
|
@@ -94,68 +266,106 @@ export function generateFingerprintConfig(fingerprint, sessionId, resolvedLocale
|
|
|
94
266
|
// `"en;q=0.9"` which is an instant detectable anomaly. Strip q-values here so the
|
|
95
267
|
// config field is the clean list; the HTTP header flows from the same field and
|
|
96
268
|
// will also be q-less, which is a valid (if less common) real-browser pattern.
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
//
|
|
111
|
-
//
|
|
112
|
-
//
|
|
113
|
-
//
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
//
|
|
117
|
-
//
|
|
118
|
-
|
|
119
|
-
|
|
269
|
+
if (resolvedLocale) {
|
|
270
|
+
// User specified a locale (fingerprintOptions.locale) or one was derived
|
|
271
|
+
// from the proxy session. Honour it verbatim — this is the explicit-intent
|
|
272
|
+
// path and the source of truth for navigator.language / Accept-Language /
|
|
273
|
+
// timezone propagation.
|
|
274
|
+
const raw = resolvedLocale.languages
|
|
275
|
+
?? headers['accept-language']
|
|
276
|
+
?? headers['Accept-Language'];
|
|
277
|
+
const languages = raw
|
|
278
|
+
? raw.split(',').map((l) => l.split(';')[0].trim()).filter(Boolean).join(',')
|
|
279
|
+
: undefined;
|
|
280
|
+
return { language: resolvedLocale.locale, languages, timezone: resolvedLocale.timezone };
|
|
281
|
+
}
|
|
282
|
+
// ─── No-intent fallback ─────────────────────────────────────────────
|
|
283
|
+
// Without a resolvedLocale, the fingerprint-generator's Accept-Language
|
|
284
|
+
// header reflects the HOST machine (Mac dev box in Prague → cs-CZ
|
|
285
|
+
// header). Using it would leak the host locale through navigator.languages
|
|
286
|
+
// and the Worker's Intl/Date paths regardless of what UA the spoof
|
|
287
|
+
// claims. CreepJS Worker probe flags this as "lang/timezone confidence:
|
|
288
|
+
// high" on the host's value — instant detection.
|
|
289
|
+
//
|
|
290
|
+
// Pin a seeded-but-plausible default so the seed deterministically picks
|
|
291
|
+
// a coherent (locale, languages, timezone) triple. Pool entries are
|
|
292
|
+
// common English-speaking combos that match the macOS UA-Reduction
|
|
293
|
+
// freeze; identical seed → identical triple, so Mac-on-Mac and
|
|
294
|
+
// Mac-on-Linux runs are diff-stable.
|
|
295
|
+
const FALLBACK_POOL = [
|
|
296
|
+
{ locale: 'en-US', languages: 'en-US,en', timezone: 'America/Los_Angeles' },
|
|
297
|
+
{ locale: 'en-US', languages: 'en-US,en', timezone: 'America/New_York' },
|
|
298
|
+
{ locale: 'en-US', languages: 'en-US,en', timezone: 'America/Chicago' },
|
|
299
|
+
{ locale: 'en-US', languages: 'en-US,en', timezone: 'America/Denver' },
|
|
300
|
+
{ locale: 'en-GB', languages: 'en-GB,en', timezone: 'Europe/London' },
|
|
301
|
+
{ locale: 'en-CA', languages: 'en-CA,en', timezone: 'America/Toronto' },
|
|
302
|
+
{ locale: 'en-AU', languages: 'en-AU,en', timezone: 'Australia/Sydney' },
|
|
303
|
+
];
|
|
304
|
+
const idx = Math.abs(Math.trunc(seed)) % FALLBACK_POOL.length;
|
|
305
|
+
const fb = FALLBACK_POOL[idx];
|
|
306
|
+
return { language: fb.locale, languages: fb.languages, timezone: fb.timezone };
|
|
307
|
+
}
|
|
308
|
+
/**
|
|
309
|
+
* Derive the canvas text-rendering-mode hint from the WebGL family so canvas2D
|
|
310
|
+
* text rasterisation matches the OS we claim. Pure.
|
|
311
|
+
*/
|
|
312
|
+
function buildCanvasSurface(family) {
|
|
313
|
+
// M6: the C++ FingerprintConfig parser ALSO derives the same default when
|
|
314
|
+
// canvas is omitted entirely, so this is belt-and-suspenders — but writing
|
|
315
|
+
// it from here means the JSON config is self-describing and a reader can
|
|
316
|
+
// see exactly which mode + font allowlist the session ships with.
|
|
317
|
+
if (!family)
|
|
318
|
+
return undefined;
|
|
319
|
+
const textRenderingMode = (() => {
|
|
320
|
+
switch (family) {
|
|
321
|
+
case 'apple_metal': return 'subpixel_aa_no_hinting';
|
|
322
|
+
case 'windows_d3d_nvidia':
|
|
323
|
+
case 'windows_d3d_amd':
|
|
324
|
+
case 'windows_d3d_intel':
|
|
325
|
+
return 'lcd_subpixel_full_hinting';
|
|
326
|
+
case 'linux_mesa_amd':
|
|
327
|
+
case 'linux_mesa_nvidia':
|
|
328
|
+
case 'linux_mesa_intel':
|
|
329
|
+
return 'rgb_subpixel_slight_hinting';
|
|
330
|
+
default:
|
|
331
|
+
return undefined;
|
|
332
|
+
}
|
|
333
|
+
})();
|
|
334
|
+
return textRenderingMode ? { textRenderingMode } : undefined;
|
|
335
|
+
}
|
|
336
|
+
/**
|
|
337
|
+
* Generate a FingerprintConfig JSON object from fingerprint-generator output.
|
|
338
|
+
*
|
|
339
|
+
* Composed from per-surface pure builders (navigator / webgl / webgpu / screen /
|
|
340
|
+
* locale / battery / network / audio / canvas). The narrow public signature is
|
|
341
|
+
* the module interface — the builders stay private so callers assemble the whole
|
|
342
|
+
* config in one call.
|
|
343
|
+
*
|
|
344
|
+
* @param fingerprint - BrowserFingerprintWithHeaders from fingerprint-generator
|
|
345
|
+
* @param sessionId - Session identifier used to derive the seed (proxy session ID, etc.)
|
|
346
|
+
* @param resolvedLocale - Pre-resolved locale/languages/timezone triple. When provided,
|
|
347
|
+
* these values win over anything derived from fingerprint-generator headers so that a
|
|
348
|
+
* user-supplied `locale: 'ko-KR'` coherently propagates to every locale surface
|
|
349
|
+
* (Accept-Language, navigator.language, Intl defaults, timezone).
|
|
350
|
+
*/
|
|
351
|
+
export function generateFingerprintConfig(fingerprint, sessionId, resolvedLocale) {
|
|
352
|
+
const fp = fingerprint.fingerprint;
|
|
353
|
+
const headers = fingerprint.headers;
|
|
354
|
+
const seed = deriveSeed(sessionId, fp.navigator?.userAgent ?? '');
|
|
355
|
+
const locale = buildLocaleSurface(headers, resolvedLocale, seed);
|
|
356
|
+
const nav = buildNavigatorSurface(fp, headers, seed, locale);
|
|
357
|
+
const webglSurface = buildWebglSurface(fp);
|
|
120
358
|
const config = {
|
|
121
359
|
version: 1,
|
|
122
360
|
seed,
|
|
123
|
-
brandName,
|
|
124
|
-
...(timezone && { timezone }),
|
|
125
|
-
navigator:
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
userAgent,
|
|
132
|
-
...(uaBrands.length > 0 && {
|
|
133
|
-
userAgentData: {
|
|
134
|
-
brands: uaBrands,
|
|
135
|
-
mobile: uaData?.mobile ?? false,
|
|
136
|
-
platform: uaData?.platform ?? uaChPlatform,
|
|
137
|
-
platformVersion: uaData?.platformVersion ?? '15.0.0',
|
|
138
|
-
architecture: uaData?.architecture ?? 'x86',
|
|
139
|
-
bitness: uaData?.bitness ?? '64',
|
|
140
|
-
model: uaData?.model ?? '',
|
|
141
|
-
uaFullVersion: uaData?.uaFullVersion ?? extractFullVersion(userAgent),
|
|
142
|
-
fullVersionList: uaBrands,
|
|
143
|
-
},
|
|
144
|
-
}),
|
|
145
|
-
},
|
|
146
|
-
webgl: {
|
|
147
|
-
vendor: webglVendor,
|
|
148
|
-
renderer: webglRenderer,
|
|
149
|
-
},
|
|
150
|
-
screen: {
|
|
151
|
-
width: screen?.width ?? 1920,
|
|
152
|
-
height: screen?.height ?? 1080,
|
|
153
|
-
availWidth: screen?.availWidth ?? screen?.width ?? 1920,
|
|
154
|
-
availHeight: screen?.availHeight ?? (screen?.height ? screen.height - 40 : 1040),
|
|
155
|
-
colorDepth,
|
|
156
|
-
pixelRatio: screen?.devicePixelRatio ?? 1,
|
|
157
|
-
},
|
|
158
|
-
battery,
|
|
361
|
+
brandName: nav.brandName,
|
|
362
|
+
...(locale.timezone && { timezone: locale.timezone }),
|
|
363
|
+
navigator: nav.navigator,
|
|
364
|
+
webgl: webglSurface.webgl,
|
|
365
|
+
screen: buildScreenSurface(fp),
|
|
366
|
+
// Battery — generate realistic values based on target platform.
|
|
367
|
+
// Uses UA-CH platform names ('Windows'|'macOS'|'Linux') for the desktop/mac checks.
|
|
368
|
+
battery: generateBatteryConfig(nav.uaChPlatform, seed),
|
|
159
369
|
noise: {
|
|
160
370
|
canvas: true,
|
|
161
371
|
audio: true,
|
|
@@ -166,18 +376,19 @@ export function generateFingerprintConfig(fingerprint, sessionId, resolvedLocale
|
|
|
166
376
|
performanceNowResolutionMs: 1,
|
|
167
377
|
},
|
|
168
378
|
};
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
379
|
+
const webgpu = buildWebgpuSurface(fp, webglSurface.vendor);
|
|
380
|
+
if (webgpu)
|
|
381
|
+
config.webgpu = webgpu;
|
|
382
|
+
// navigator.connection — prevent datacenter rtt/downlink leak. Same seed
|
|
383
|
+
// → same values, so Mac and Linux Docker hosts running the same profile
|
|
384
|
+
// report the same connection metrics.
|
|
385
|
+
config.network = deriveNetwork(seed);
|
|
386
|
+
// AudioContext.sampleRate hint matched to platform. Consumed by the C++
|
|
387
|
+
// base_audio_context.h getter when the binding-layer override lands.
|
|
388
|
+
config.audio = { sampleRate: deriveAudioSampleRate(nav.platform) };
|
|
389
|
+
const canvas = buildCanvasSurface(webglSurface.family);
|
|
390
|
+
if (canvas)
|
|
391
|
+
config.canvas = canvas;
|
|
181
392
|
return config;
|
|
182
393
|
}
|
|
183
394
|
/**
|
|
@@ -204,27 +415,59 @@ export async function cleanupTempFingerprintConfig(filePath) {
|
|
|
204
415
|
}
|
|
205
416
|
// ─── Helpers ──────────────────────────────────────────────────────────────────
|
|
206
417
|
/**
|
|
207
|
-
*
|
|
208
|
-
*
|
|
209
|
-
*
|
|
210
|
-
*
|
|
211
|
-
*
|
|
418
|
+
* Real Chrome 147 on desktop returns the RAW host RAM in GB (e.g. 32, 64) from
|
|
419
|
+
* `navigator.deviceMemory`, not the W3C 0.25/0.5/1/2/4/8 buckets the 2018 spec
|
|
420
|
+
* defined. Empirically verified on a 32 GB Apple Silicon Mac running Chrome 147
|
|
421
|
+
* (cromite harvest 2026-05-11): `navigator.deviceMemory === 32`. Reporting the
|
|
422
|
+
* spec-bucketed 8 is now a population minority (<15% of real Mac traffic) and
|
|
423
|
+
* is an instant detection vector.
|
|
424
|
+
*
|
|
425
|
+
* Pick a seeded plausible value matching the 2026 Apple Silicon Mac RAM
|
|
426
|
+
* distribution. Same seed → same value, so Mac-on-Mac vs Mac-on-Linux runs
|
|
427
|
+
* are diff-stable; different seeds get different RAM tiers within the
|
|
428
|
+
* realistic population. Windows / Linux distributions follow the same shape
|
|
429
|
+
* since the consumer-laptop population is similar.
|
|
212
430
|
*
|
|
213
|
-
*
|
|
214
|
-
*
|
|
431
|
+
* Distribution rationale (rough 2026 mix; conservative, weighted toward
|
|
432
|
+
* common configurations):
|
|
433
|
+
* 8 GB – 15% base-spec MacBook Air M1/M2 still in service
|
|
434
|
+
* 16 GB – 40% most common mid-range (default M2/M3/M4 MacBook Air, Pro 14)
|
|
435
|
+
* 24 GB – 15% M3 Pro / M4 Pro mid configurations
|
|
436
|
+
* 32 GB – 20% M3/M4 Pro & Mac Studio default
|
|
437
|
+
* 48 GB – 5% M3/M4 Max
|
|
438
|
+
* 64 GB – 4% high-end Pro / Studio
|
|
439
|
+
* 128 GB – 1% Studio Ultra
|
|
440
|
+
*
|
|
441
|
+
* If the upstream Apify fingerprint already exposes a higher raw value
|
|
442
|
+
* (i.e. the upstream sampled from a 32 GB Mac and reported it pre-clamp),
|
|
443
|
+
* keep that value rather than overwriting — we lose entropy by re-rolling
|
|
444
|
+
* when the pool already gave us something realistic.
|
|
215
445
|
*/
|
|
216
|
-
function
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
446
|
+
function deriveRealisticDeviceMemory(seed, rawFromFingerprint) {
|
|
447
|
+
// Trust raw upstream values that ARE plausible (8, 16, 24, 32, 48, 64, 128).
|
|
448
|
+
// Apify pool legacy values (≤ 8) get re-sampled because they reflect the old
|
|
449
|
+
// spec-bucket cap that real Chrome 147 no longer enforces.
|
|
450
|
+
const PLAUSIBLE_RAW = new Set([16, 24, 32, 48, 64, 96, 128]);
|
|
451
|
+
if (Number.isFinite(rawFromFingerprint) && PLAUSIBLE_RAW.has(rawFromFingerprint)) {
|
|
452
|
+
return rawFromFingerprint;
|
|
453
|
+
}
|
|
454
|
+
// Seeded resample. Cumulative-weight table; pick the first bucket whose
|
|
455
|
+
// cumulative weight ≥ (seed % 100).
|
|
456
|
+
const DISTRIBUTION = [
|
|
457
|
+
[8, 15],
|
|
458
|
+
[16, 55], // 15+40
|
|
459
|
+
[24, 70], // 55+15
|
|
460
|
+
[32, 90], // 70+20
|
|
461
|
+
[48, 95], // 90+5
|
|
462
|
+
[64, 99], // 95+4
|
|
463
|
+
[128, 100], // 99+1
|
|
464
|
+
];
|
|
465
|
+
const pick = Math.abs(Math.trunc(seed)) % 100;
|
|
466
|
+
for (const [gb, cumulative] of DISTRIBUTION) {
|
|
467
|
+
if (pick < cumulative)
|
|
468
|
+
return gb;
|
|
226
469
|
}
|
|
227
|
-
return
|
|
470
|
+
return 16; // unreachable, satisfies TS
|
|
228
471
|
}
|
|
229
472
|
/** Extract full Chrome version string from User-Agent (e.g. "Chrome/136.0.7103.0") */
|
|
230
473
|
function extractFullVersion(userAgent) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"anti-detect-config.js","sourceRoot":"","sources":["../../src/browser-process/anti-detect-config.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"anti-detect-config.js","sourceRoot":"","sources":["../../src/browser-process/anti-detect-config.ts"],"names":[],"mappings":"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"}
|