jumpy-lion 0.1.6-beta.7 → 1.0.0-beta.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 +1 -607
- package/browser/fonts/macos-bundle/40-macos-aliases.conf +515 -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 +47 -4
- package/dist/browser-controller.d.ts.map +1 -1
- package/dist/browser-controller.js +219 -278
- package/dist/browser-controller.js.map +1 -1
- package/dist/browser-plugin.d.ts +82 -110
- package/dist/browser-plugin.d.ts.map +1 -1
- package/dist/browser-plugin.js +376 -379
- package/dist/browser-plugin.js.map +1 -1
- package/dist/browser-process/align-fingerprint-config.d.ts +36 -0
- package/dist/browser-process/align-fingerprint-config.d.ts.map +1 -0
- package/dist/browser-process/align-fingerprint-config.js +74 -0
- package/dist/browser-process/align-fingerprint-config.js.map +1 -0
- package/dist/browser-process/anti-detect-browser.d.ts +2 -2
- package/dist/browser-process/anti-detect-browser.js +7 -7
- package/dist/browser-process/anti-detect-config.d.ts +131 -2
- package/dist/browser-process/anti-detect-config.d.ts.map +1 -1
- package/dist/browser-process/anti-detect-config.js +337 -127
- package/dist/browser-process/anti-detect-config.js.map +1 -1
- package/dist/browser-process/browser.d.ts +25 -92
- package/dist/browser-process/browser.d.ts.map +1 -1
- package/dist/browser-process/browser.js +429 -73
- package/dist/browser-process/browser.js.map +1 -1
- package/dist/browser-process/fingerprint-config.d.ts +146 -0
- package/dist/browser-process/fingerprint-config.d.ts.map +1 -0
- package/dist/browser-process/fingerprint-config.js +308 -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 +79 -4
- package/dist/browser-process/get-chrome-executable.js.map +1 -1
- package/dist/browser-process/gpu-family-profiles.d.ts +58 -0
- package/dist/browser-process/gpu-family-profiles.d.ts.map +1 -0
- package/dist/browser-process/gpu-family-profiles.js +480 -0
- package/dist/browser-process/gpu-family-profiles.js.map +1 -0
- package/dist/browser-process/launch-options.d.ts +301 -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 +64 -0
- package/dist/browser-process/port-allocator.d.ts.map +1 -0
- package/dist/browser-process/port-allocator.js +198 -0
- package/dist/browser-process/port-allocator.js.map +1 -0
- package/dist/browser-process/process.d.ts +85 -0
- package/dist/browser-process/process.d.ts.map +1 -1
- package/dist/browser-process/process.js +235 -19
- package/dist/browser-process/process.js.map +1 -1
- package/dist/browser-process/signal-cleanup.d.ts +40 -0
- package/dist/browser-process/signal-cleanup.d.ts.map +1 -0
- package/dist/browser-process/signal-cleanup.js +105 -0
- package/dist/browser-process/signal-cleanup.js.map +1 -0
- package/dist/browser-process/widevine-cdm.d.ts +144 -0
- package/dist/browser-process/widevine-cdm.d.ts.map +1 -0
- package/dist/browser-process/widevine-cdm.js +298 -0
- package/dist/browser-process/widevine-cdm.js.map +1 -0
- package/dist/browser-profiles/chrome/populate-profile.d.ts.map +1 -1
- package/dist/browser-profiles/chrome/populate-profile.js +21 -22
- package/dist/browser-profiles/chrome/populate-profile.js.map +1 -1
- package/dist/connection/cdp-reconnection.d.ts +50 -0
- package/dist/connection/cdp-reconnection.d.ts.map +1 -0
- package/dist/connection/cdp-reconnection.js +75 -0
- package/dist/connection/cdp-reconnection.js.map +1 -0
- package/dist/connection/page-session.d.ts +114 -0
- package/dist/connection/page-session.d.ts.map +1 -0
- package/dist/connection/page-session.js +237 -0
- package/dist/connection/page-session.js.map +1 -0
- package/dist/connection/session-client.d.ts +34 -0
- package/dist/connection/session-client.d.ts.map +1 -0
- package/dist/connection/session-client.js +129 -0
- package/dist/connection/session-client.js.map +1 -0
- package/dist/crawler.d.ts +9 -88
- package/dist/crawler.d.ts.map +1 -1
- package/dist/crawler.js +157 -8
- package/dist/crawler.js.map +1 -1
- package/dist/fingerprinting/fingerprint-injector.d.ts +24 -114
- package/dist/fingerprinting/fingerprint-injector.d.ts.map +1 -1
- package/dist/fingerprinting/fingerprint-injector.js +305 -611
- package/dist/fingerprinting/fingerprint-injector.js.map +1 -1
- package/dist/fingerprinting/fingerprint-overrides/datadome-bypass.d.ts +1 -1
- package/dist/fingerprinting/fingerprint-overrides/datadome-bypass.d.ts.map +1 -1
- package/dist/fingerprinting/fingerprint-overrides/datadome-bypass.js +16 -14
- package/dist/fingerprinting/fingerprint-overrides/datadome-bypass.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/keyboard-humanization.d.ts +1 -1
- package/dist/fingerprinting/fingerprint-overrides/keyboard-humanization.js +4 -4
- package/dist/fingerprinting/fingerprint-overrides/keyboard-humanization.js.map +1 -1
- package/dist/fingerprinting/fingerprint-overrides/locale-spoofing.js +4 -4
- 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 +151 -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 +46 -15
- package/dist/fingerprinting/fingerprint-overrides/platform-consistency.js.map +1 -1
- package/dist/fingerprinting/fingerprint-overrides/registry.d.ts +43 -0
- package/dist/fingerprinting/fingerprint-overrides/registry.d.ts.map +1 -0
- package/dist/fingerprinting/fingerprint-overrides/registry.js +342 -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/scroll-humanization.d.ts +1 -1
- package/dist/fingerprinting/fingerprint-overrides/scroll-humanization.js +4 -4
- package/dist/fingerprinting/fingerprint-overrides/scroll-humanization.js.map +1 -1
- package/dist/fingerprinting/fingerprint-overrides/stealth-script.d.ts.map +1 -1
- package/dist/fingerprinting/fingerprint-overrides/stealth-script.js +75 -9
- package/dist/fingerprinting/fingerprint-overrides/stealth-script.js.map +1 -1
- package/dist/fingerprinting/fingerprint-overrides/ua-ch.d.ts +1 -1
- package/dist/fingerprinting/fingerprint-overrides/ua-ch.d.ts.map +1 -1
- package/dist/fingerprinting/fingerprint-overrides/ua-ch.js +34 -20
- package/dist/fingerprinting/fingerprint-overrides/ua-ch.js.map +1 -1
- package/dist/fingerprinting/fingerprint-overrides/webgl-spoofing.d.ts.map +1 -1
- package/dist/fingerprinting/fingerprint-overrides/webgl-spoofing.js +25 -6
- package/dist/fingerprinting/fingerprint-overrides/webgl-spoofing.js.map +1 -1
- package/dist/fingerprinting/fingerprint-overrides/webrtc-spoofing.js +1 -1
- package/dist/fingerprinting/hardware-realism.d.ts +83 -0
- package/dist/fingerprinting/hardware-realism.d.ts.map +1 -0
- package/dist/fingerprinting/hardware-realism.js +156 -0
- package/dist/fingerprinting/hardware-realism.js.map +1 -0
- package/dist/fingerprinting/injection-planner.d.ts +133 -0
- package/dist/fingerprinting/injection-planner.d.ts.map +1 -0
- package/dist/fingerprinting/injection-planner.js +497 -0
- package/dist/fingerprinting/injection-planner.js.map +1 -0
- package/dist/fingerprinting/locale-resolver.d.ts +8 -1
- package/dist/fingerprinting/locale-resolver.d.ts.map +1 -1
- package/dist/fingerprinting/locale-resolver.js +26 -3
- package/dist/fingerprinting/locale-resolver.js.map +1 -1
- package/dist/fingerprinting/non-apify-fingerprint-generator.d.ts +4 -4
- package/dist/fingerprinting/non-apify-fingerprint-generator.d.ts.map +1 -1
- package/dist/fingerprinting/non-apify-fingerprint-generator.js +24 -58
- package/dist/fingerprinting/non-apify-fingerprint-generator.js.map +1 -1
- package/dist/fingerprinting/non-apify-profiles.json +10515 -8494
- package/dist/fingerprinting/os-consistency.d.ts +28 -0
- package/dist/fingerprinting/os-consistency.d.ts.map +1 -0
- package/dist/fingerprinting/os-consistency.js +45 -0
- package/dist/fingerprinting/os-consistency.js.map +1 -0
- package/dist/fingerprinting/profile-quality.d.ts +25 -0
- package/dist/fingerprinting/profile-quality.d.ts.map +1 -0
- package/dist/fingerprinting/profile-quality.js +310 -0
- package/dist/fingerprinting/profile-quality.js.map +1 -0
- package/dist/fingerprinting/profile-selector.d.ts +102 -0
- package/dist/fingerprinting/profile-selector.d.ts.map +1 -0
- package/dist/fingerprinting/profile-selector.js +168 -0
- package/dist/fingerprinting/profile-selector.js.map +1 -0
- package/dist/fingerprinting/ua-alignment.d.ts +83 -0
- package/dist/fingerprinting/ua-alignment.d.ts.map +1 -0
- package/dist/fingerprinting/ua-alignment.js +197 -0
- package/dist/fingerprinting/ua-alignment.js.map +1 -0
- package/dist/fingerprinting/ua-ch-brands.d.ts +88 -0
- package/dist/fingerprinting/ua-ch-brands.d.ts.map +1 -0
- package/dist/fingerprinting/ua-ch-brands.js +174 -0
- package/dist/fingerprinting/ua-ch-brands.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 +90 -0
- package/dist/input/dropdown-selector.d.ts.map +1 -0
- package/dist/input/dropdown-selector.js +394 -0
- package/dist/input/dropdown-selector.js.map +1 -0
- package/dist/input/element-target.d.ts +152 -0
- package/dist/input/element-target.d.ts.map +1 -0
- package/dist/input/element-target.js +461 -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 +325 -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/keyboard-layout.d.ts +2 -2
- package/dist/keyboard-layout.js +2 -2
- 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 +122 -0
- package/dist/navigation/page-navigation.js.map +1 -0
- package/dist/network/network-watch.d.ts +110 -0
- package/dist/network/network-watch.d.ts.map +1 -0
- package/dist/network/network-watch.js +223 -0
- package/dist/network/network-watch.js.map +1 -0
- package/dist/page.d.ts +118 -104
- package/dist/page.d.ts.map +1 -1
- package/dist/page.js +311 -1130
- 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 +18 -0
- package/dist/session/tar-data-dir.d.ts.map +1 -0
- package/dist/session/tar-data-dir.js +105 -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 +102 -0
- package/dist/session-profile.d.ts.map +1 -0
- package/dist/session-profile.js +163 -0
- package/dist/session-profile.js.map +1 -0
- package/dist/tsconfig.build.tsbuildinfo +1 -1
- package/package.json +17 -6
- 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
|
@@ -0,0 +1,151 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The Override seam - one interface every JS fingerprint override satisfies.
|
|
3
|
+
*
|
|
4
|
+
* Two adapters consume the fingerprint-override concept:
|
|
5
|
+
* - JS injection (stock Chrome): the registry assembles a script bundle that
|
|
6
|
+
* CdpFingerprintInjector injects via Page.addScriptToEvaluateOnNewDocument.
|
|
7
|
+
* - Native (C++ anti-detect binary): overrides whose surface is covered by a
|
|
8
|
+
* direct Chromium source-tree edit declare `runsUnderNativeStealth: false`.
|
|
9
|
+
* The injector skips the whole JS pipeline under native stealth (early
|
|
10
|
+
* return), and the registry filter documents - per override - which
|
|
11
|
+
* surfaces the binary owns.
|
|
12
|
+
*/
|
|
13
|
+
import type { PlatformConfig } from './platform-consistency.js';
|
|
14
|
+
import type { UAClientHintsData } from './ua-ch.js';
|
|
15
|
+
import type { WebGLConfig } from './webgl-spoofing.js';
|
|
16
|
+
/**
|
|
17
|
+
* The fingerprint-profile slice consumed by the profile-driven overrides
|
|
18
|
+
* (navigator-override, screen-override) and carried on OverrideContext.
|
|
19
|
+
*/
|
|
20
|
+
export interface BrowserFingerprint {
|
|
21
|
+
navigator?: {
|
|
22
|
+
userAgent?: string;
|
|
23
|
+
platform?: string;
|
|
24
|
+
vendor?: string;
|
|
25
|
+
vendorSub?: string;
|
|
26
|
+
productSub?: string;
|
|
27
|
+
language?: string;
|
|
28
|
+
languages?: string[];
|
|
29
|
+
hardwareConcurrency?: number;
|
|
30
|
+
deviceMemory?: number;
|
|
31
|
+
maxTouchPoints?: number;
|
|
32
|
+
oscpu?: string;
|
|
33
|
+
appVersion?: string;
|
|
34
|
+
appName?: string;
|
|
35
|
+
appCodeName?: string;
|
|
36
|
+
product?: string;
|
|
37
|
+
pdfViewerEnabled?: boolean;
|
|
38
|
+
cookieEnabled?: boolean;
|
|
39
|
+
onLine?: boolean;
|
|
40
|
+
doNotTrack?: string | null;
|
|
41
|
+
};
|
|
42
|
+
screen?: {
|
|
43
|
+
width?: number;
|
|
44
|
+
height?: number;
|
|
45
|
+
availWidth?: number;
|
|
46
|
+
availHeight?: number;
|
|
47
|
+
colorDepth?: number;
|
|
48
|
+
pixelDepth?: number;
|
|
49
|
+
availLeft?: number;
|
|
50
|
+
availTop?: number;
|
|
51
|
+
devicePixelRatio?: number;
|
|
52
|
+
pageXOffset?: number;
|
|
53
|
+
pageYOffset?: number;
|
|
54
|
+
};
|
|
55
|
+
videoCard?: {
|
|
56
|
+
vendor?: string;
|
|
57
|
+
renderer?: string;
|
|
58
|
+
};
|
|
59
|
+
battery?: {
|
|
60
|
+
charging?: boolean;
|
|
61
|
+
chargingTime?: number;
|
|
62
|
+
dischargingTime?: number;
|
|
63
|
+
level?: number;
|
|
64
|
+
};
|
|
65
|
+
audioContext?: {
|
|
66
|
+
sampleRate?: number;
|
|
67
|
+
numberOfChannels?: number;
|
|
68
|
+
maxChannelCount?: number;
|
|
69
|
+
};
|
|
70
|
+
}
|
|
71
|
+
/**
|
|
72
|
+
* Narrow, fully-normalized input port for overrides. All option defaults are
|
|
73
|
+
* resolved to plain booleans here (e.g. `spoofWebGL !== false` → `spoof.webgl`)
|
|
74
|
+
* so overrides never see the raw AttachOptions blob.
|
|
75
|
+
*/
|
|
76
|
+
export interface OverrideContext {
|
|
77
|
+
/** `enableAdvancedStealth !== false` - master gate for most spoofing overrides. */
|
|
78
|
+
advancedStealth: boolean;
|
|
79
|
+
/** `maskAutomationFlags !== false` - gates the stealth script + Runtime.enable bypass. */
|
|
80
|
+
maskAutomation: boolean;
|
|
81
|
+
/** `enableDataDomeBypass || bypassDatadome`. */
|
|
82
|
+
dataDomeBypass: boolean;
|
|
83
|
+
webRtcPolicy: 'spoof' | 'disable';
|
|
84
|
+
/** Normalized humanization toggles (`mouse` folds in the deprecated `humanizeInteractions`). */
|
|
85
|
+
humanization: {
|
|
86
|
+
mouse: boolean;
|
|
87
|
+
keyboard: boolean;
|
|
88
|
+
scroll: boolean;
|
|
89
|
+
};
|
|
90
|
+
/** Per-surface spoof toggles with defaults resolved (`spoofX !== false`). */
|
|
91
|
+
spoof: {
|
|
92
|
+
webgl: boolean;
|
|
93
|
+
audio: boolean;
|
|
94
|
+
clientRects: boolean;
|
|
95
|
+
fonts: boolean;
|
|
96
|
+
performance: boolean;
|
|
97
|
+
locale: boolean;
|
|
98
|
+
storage: boolean;
|
|
99
|
+
timing: boolean;
|
|
100
|
+
cdpDetection: boolean;
|
|
101
|
+
};
|
|
102
|
+
platform?: 'Win32' | 'MacIntel' | 'Linux x86_64';
|
|
103
|
+
/** `debug === true` - verbose script-side logging. */
|
|
104
|
+
debug: boolean;
|
|
105
|
+
fingerprint: BrowserFingerprint;
|
|
106
|
+
/** Resolved WebGL config (only set when `useFingerprintDefaults === false`). */
|
|
107
|
+
webglConfig?: WebGLConfig;
|
|
108
|
+
/** Platform config pre-aligned with the running binary's UA version. */
|
|
109
|
+
platformConfig?: PlatformConfig;
|
|
110
|
+
uaClientHints?: UAClientHintsData;
|
|
111
|
+
/**
|
|
112
|
+
* The running binary's REAL build version from `Browser.getVersion`
|
|
113
|
+
* (e.g. "147.0.7727.56") - never the UA string's version.
|
|
114
|
+
*
|
|
115
|
+
* UA Reduction (Chrome 107+) freezes the UA to `MAJOR.0.0.0`, but UA-CH
|
|
116
|
+
* keeps the full build: real Chrome sends `147.0.7727.56` in
|
|
117
|
+
* `uaFullVersion` / `fullVersionList` / `sec-ch-ua-full-version*`. Scripts
|
|
118
|
+
* that parse the version out of `navigator.userAgent` therefore report
|
|
119
|
+
* `147.0.0.0` - a shape no Chrome emits, and the second half of the Naver
|
|
120
|
+
* block (issue #131): the first document only carries low-entropy hints and
|
|
121
|
+
* passes, then every high-entropy XHR is refused. Undefined when the probe
|
|
122
|
+
* failed; the scripts then fall back to their runtime parse.
|
|
123
|
+
*/
|
|
124
|
+
binaryFullVersion?: string;
|
|
125
|
+
useExperimentalFingerprints: boolean;
|
|
126
|
+
/** Resolved locale pair baked into the locale-spoofing script as literals. */
|
|
127
|
+
locale: {
|
|
128
|
+
locale: string;
|
|
129
|
+
languages: string;
|
|
130
|
+
};
|
|
131
|
+
}
|
|
132
|
+
export interface Override {
|
|
133
|
+
/** Stable name, kebab-case, matches the module filename. */
|
|
134
|
+
readonly id: string;
|
|
135
|
+
/** Injection order - ascending; gaps of 10 leave room for insertions. */
|
|
136
|
+
readonly order: number;
|
|
137
|
+
/**
|
|
138
|
+
* True when this override's JS would still be needed under the native (C++)
|
|
139
|
+
* anti-detect binary; false when a Chromium source-tree edit already covers
|
|
140
|
+
* the surface. The injector's native fast-path skips the entire JS pipeline
|
|
141
|
+
* today, so this flag is the single documented map of native coverage - it
|
|
142
|
+
* replaces the `!nativeStealth` branches previously scattered through the
|
|
143
|
+
* injector.
|
|
144
|
+
*/
|
|
145
|
+
readonly runsUnderNativeStealth: boolean;
|
|
146
|
+
/** Option-driven gate; the ctx carries normalized toggles. */
|
|
147
|
+
enabled(ctx: OverrideContext): boolean;
|
|
148
|
+
/** Returns the injection script(s). Pure: same ctx in, same script out. */
|
|
149
|
+
build(ctx: OverrideContext): string | string[];
|
|
150
|
+
}
|
|
151
|
+
//# sourceMappingURL=override.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"override.d.ts","sourceRoot":"","sources":["../../../src/fingerprinting/fingerprint-overrides/override.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The Override seam - one interface every JS fingerprint override satisfies.
|
|
3
|
+
*
|
|
4
|
+
* Two adapters consume the fingerprint-override concept:
|
|
5
|
+
* - JS injection (stock Chrome): the registry assembles a script bundle that
|
|
6
|
+
* CdpFingerprintInjector injects via Page.addScriptToEvaluateOnNewDocument.
|
|
7
|
+
* - Native (C++ anti-detect binary): overrides whose surface is covered by a
|
|
8
|
+
* direct Chromium source-tree edit declare `runsUnderNativeStealth: false`.
|
|
9
|
+
* The injector skips the whole JS pipeline under native stealth (early
|
|
10
|
+
* return), and the registry filter documents - per override - which
|
|
11
|
+
* surfaces the binary owns.
|
|
12
|
+
*/
|
|
13
|
+
export {};
|
|
14
|
+
//# sourceMappingURL=override.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"override.js","sourceRoot":"","sources":["../../../src/fingerprinting/fingerprint-overrides/override.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"platform-consistency.d.ts","sourceRoot":"","sources":["../../../src/fingerprinting/fingerprint-overrides/platform-consistency.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,MAAM,WAAW,cAAc;IAC3B,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC;IACrB,KAAK,CAAC,EAAE,MAAM,CAAC;IAEf,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,OAAO,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,eAAO,MAAM,+BAA+B,aAAc,MAAM,oBAAoB,cAAc,KAAG,
|
|
1
|
+
{"version":3,"file":"platform-consistency.d.ts","sourceRoot":"","sources":["../../../src/fingerprinting/fingerprint-overrides/platform-consistency.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,MAAM,WAAW,cAAc;IAC3B,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC;IACrB,KAAK,CAAC,EAAE,MAAM,CAAC;IAEf,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,OAAO,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,eAAO,MAAM,+BAA+B,aAAc,MAAM,oBAAoB,cAAc,KAAG,MA0rBpG,CAAC"}
|
|
@@ -71,12 +71,29 @@ export const createPlatformConsistencyScript = (platform, fingerprintData) => {
|
|
|
71
71
|
onLine: true,
|
|
72
72
|
language: 'en-US',
|
|
73
73
|
languages: ['en-US', 'en'],
|
|
74
|
+
// Chrome 120+ on macOS reports the same 5-entry PDF plugin set as Win/Linux.
|
|
75
|
+
// The fingerprint-hole-analyzer skill flags navigator.plugins.length !== 5
|
|
76
|
+
// as a real-Chrome invariant violation, so MacIntel must match.
|
|
74
77
|
plugins: [
|
|
75
|
-
{ name: 'PDF Viewer', filename: 'internal-pdf-viewer' },
|
|
76
|
-
{ name: 'Chrome PDF Viewer', filename: 'internal-pdf-viewer' },
|
|
77
|
-
{ name: 'Chromium PDF Viewer', filename: 'internal-pdf-viewer' },
|
|
78
|
-
{ name: '
|
|
78
|
+
{ name: 'PDF Viewer', filename: 'internal-pdf-viewer', description: 'Portable Document Format' },
|
|
79
|
+
{ name: 'Chrome PDF Viewer', filename: 'internal-pdf-viewer', description: 'Portable Document Format' },
|
|
80
|
+
{ name: 'Chromium PDF Viewer', filename: 'internal-pdf-viewer', description: 'Portable Document Format' },
|
|
81
|
+
{ name: 'Microsoft Edge PDF Viewer', filename: 'internal-pdf-viewer', description: 'Portable Document Format' },
|
|
82
|
+
{ name: 'WebKit built-in PDF', filename: 'internal-pdf-viewer', description: 'Portable Document Format' },
|
|
83
|
+
],
|
|
84
|
+
mimeTypes: [
|
|
85
|
+
{ type: 'application/pdf', suffixes: 'pdf', description: 'Portable Document Format' },
|
|
86
|
+
{ type: 'text/pdf', suffixes: 'pdf', description: 'Portable Document Format' },
|
|
79
87
|
],
|
|
88
|
+
// Without this, navigator.connection.rtt === 0 on Apify-Linux+Mac
|
|
89
|
+
// fingerprint, which is a well-known headless tell.
|
|
90
|
+
connection: {
|
|
91
|
+
downlink: 10,
|
|
92
|
+
effectiveType: '4g',
|
|
93
|
+
onchange: null,
|
|
94
|
+
rtt: 50,
|
|
95
|
+
saveData: false,
|
|
96
|
+
},
|
|
80
97
|
},
|
|
81
98
|
'Linux x86_64': {
|
|
82
99
|
devicePixelRatio: 1.0,
|
|
@@ -141,14 +158,14 @@ export const createPlatformConsistencyScript = (platform, fingerprintData) => {
|
|
|
141
158
|
};
|
|
142
159
|
|
|
143
160
|
// Override navigator properties for platform consistency (with guards).
|
|
144
|
-
// NOTE: vendorSub / cookieEnabled / onLine are intentionally omitted
|
|
161
|
+
// NOTE: vendorSub / cookieEnabled / onLine are intentionally omitted -
|
|
145
162
|
// their native Chrome values always match the fingerprint values, and adding
|
|
146
163
|
// instance-level JS getters for them without doing the same in sub-frames
|
|
147
164
|
// creates a descriptor asymmetry that detection tools flag as
|
|
148
165
|
// hasMismatchPlatformIframe. Injecting into sub-frames is guarded off
|
|
149
166
|
// above (window !== window.top), so we only define properties where Chrome
|
|
150
167
|
// already exposes a non-configurable native getter at the instance level
|
|
151
|
-
// (platform, vendor, userAgent, etc.)
|
|
168
|
+
// (platform, vendor, userAgent, etc.) - those fail silently in both
|
|
152
169
|
// contexts and stay symmetric.
|
|
153
170
|
safeDefineProperty(navigator, 'platform', () => config.platform);
|
|
154
171
|
safeDefineProperty(navigator, 'vendor', () => config.vendor);
|
|
@@ -256,7 +273,7 @@ export const createPlatformConsistencyScript = (platform, fingerprintData) => {
|
|
|
256
273
|
// NOTE: WebGL getParameter override intentionally removed.
|
|
257
274
|
// webgl-spoofing.ts is the single authority for WebGL vendor/renderer.
|
|
258
275
|
// Having multiple modules override the same prototype method means only
|
|
259
|
-
// the last one survives
|
|
276
|
+
// the last one survives - a silent conflict that produces inconsistent
|
|
260
277
|
// GPU strings across vendor/renderer values.
|
|
261
278
|
|
|
262
279
|
// ========== 2024-2025 Enhanced Platform Consistency ==========
|
|
@@ -287,12 +304,25 @@ export const createPlatformConsistencyScript = (platform, fingerprintData) => {
|
|
|
287
304
|
availWidth: screen.width || 1920,
|
|
288
305
|
availHeight: (screen.height || 1080) - 40 // Windows taskbar ~40px
|
|
289
306
|
},
|
|
290
|
-
'MacIntel': {
|
|
291
|
-
|
|
292
|
-
|
|
293
|
-
|
|
294
|
-
|
|
295
|
-
|
|
307
|
+
'MacIntel': (() => {
|
|
308
|
+
// Deterministic Dock height: real Mac users mostly have the Dock visible
|
|
309
|
+
// at the bottom (~80px) or hidden (auto-hide). Pick from {0, 80, 95}
|
|
310
|
+
// seeded from __stealth.seedKey so it's stable per session but varies
|
|
311
|
+
// across fingerprints - without it, all Mac targets would advertise the
|
|
312
|
+
// same availHeight which is itself a tell.
|
|
313
|
+
const _seedKey = (typeof __stealth !== 'undefined' && __stealth.seedKey) || '';
|
|
314
|
+
let _h = 0xC0FFEE | 0;
|
|
315
|
+
for (let i = 0; i < _seedKey.length; i++) _h = (_h << 5) - _h + _seedKey.charCodeAt(i) | 0;
|
|
316
|
+
const _dockChoices = [0, 80, 95];
|
|
317
|
+
const _dock = _dockChoices[(_h >>> 0) % _dockChoices.length];
|
|
318
|
+
return {
|
|
319
|
+
availLeft: 0,
|
|
320
|
+
availTop: 25, // macOS menu bar
|
|
321
|
+
availWidth: screen.width || 1920,
|
|
322
|
+
// Subtract menu bar (25) + dock (0/80/95).
|
|
323
|
+
availHeight: (screen.height || 1080) - 25 - _dock,
|
|
324
|
+
};
|
|
325
|
+
})(),
|
|
296
326
|
'Linux x86_64': {
|
|
297
327
|
availLeft: 0,
|
|
298
328
|
availTop: 0,
|
|
@@ -433,7 +463,8 @@ export const createPlatformConsistencyScript = (platform, fingerprintData) => {
|
|
|
433
463
|
// Real browsers have ~85px chrome offset (title + tab + address bars).
|
|
434
464
|
const chromeOffsets = {
|
|
435
465
|
'Win32': { x: 0, y: 85 },
|
|
436
|
-
|
|
466
|
+
// Real Chrome on macOS chrome height is ~87px (menu+tabs+address bar).
|
|
467
|
+
'MacIntel': { x: 0, y: 87 },
|
|
437
468
|
'Linux x86_64': { x: 0, y: 85 }
|
|
438
469
|
};
|
|
439
470
|
const chromeOffset = chromeOffsets[config.platform] || chromeOffsets['Win32'];
|
|
@@ -625,7 +656,7 @@ export const createPlatformConsistencyScript = (platform, fingerprintData) => {
|
|
|
625
656
|
}
|
|
626
657
|
} catch (_) { /* skip non-configurable property */ }
|
|
627
658
|
}
|
|
628
|
-
} catch (_) { /* cross-origin iframe
|
|
659
|
+
} catch (_) { /* cross-origin iframe - skip */ }
|
|
629
660
|
};
|
|
630
661
|
|
|
631
662
|
const _fpCWDesc = Object.getOwnPropertyDescriptor(HTMLIFrameElement.prototype, 'contentWindow');
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"platform-consistency.js","sourceRoot":"","sources":["../../../src/fingerprinting/fingerprint-overrides/platform-consistency.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAuBH,MAAM,CAAC,MAAM,+BAA+B,GAAG,CAAC,QAAgB,EAAE,eAAgC,EAAU,EAAE;IAC1G,uDAAuD;IACvD,MAAM,eAAe,GAAG;QACpB,OAAO,EAAE;YACL,gBAAgB,EAAE,GAAG;YACrB,WAAW,EAAE,EAAE;YACf,UAAU,EAAE,EAAE;YACd,mBAAmB,EAAE,CAAC;YACtB,cAAc,EAAE,CAAC;YACjB,QAAQ,EAAE,OAAO;YACjB,KAAK,EAAE,6BAA6B;YACpC,MAAM,EAAE,aAAa;YACrB,SAAS,EAAE,EAAE;YACb,UAAU,EAAE,UAAU;YACtB,aAAa,EAAE,IAAI;YACnB,MAAM,EAAE,IAAI;YACZ,QAAQ,EAAE,OAAO;YACjB,SAAS,EAAE,CAAC,OAAO,EAAE,IAAI,CAAC;YAC1B,SAAS,EAAE,iHAAiH;YAC5H,UAAU,EAAE,yGAAyG;YACrH,OAAO,EAAE,UAAU;YACnB,WAAW,EAAE,SAAS;YACtB,OAAO,EAAE,OAAO;YAChB,+EAA+E;YAC/E,OAAO,EAAE;gBACL,EAAE,IAAI,EAAE,YAAY,EAAE,QAAQ,EAAE,qBAAqB,EAAE,WAAW,EAAE,0BAA0B,EAAE;gBAChG,EAAE,IAAI,EAAE,mBAAmB,EAAE,QAAQ,EAAE,qBAAqB,EAAE,WAAW,EAAE,0BAA0B,EAAE;gBACvG,EAAE,IAAI,EAAE,qBAAqB,EAAE,QAAQ,EAAE,qBAAqB,EAAE,WAAW,EAAE,0BAA0B,EAAE;gBACzG,EAAE,IAAI,EAAE,2BAA2B,EAAE,QAAQ,EAAE,qBAAqB,EAAE,WAAW,EAAE,0BAA0B,EAAE;gBAC/G,EAAE,IAAI,EAAE,qBAAqB,EAAE,QAAQ,EAAE,qBAAqB,EAAE,WAAW,EAAE,0BAA0B,EAAE;aAC5G;YACD,SAAS,EAAE;gBACP,EAAE,IAAI,EAAE,iBAAiB,EAAE,QAAQ,EAAE,KAAK,EAAE,WAAW,EAAE,0BAA0B,EAAE;gBACrF,EAAE,IAAI,EAAE,UAAU,EAAE,QAAQ,EAAE,KAAK,EAAE,WAAW,EAAE,0BAA0B,EAAE;aACjF;YACD,yCAAyC;YACzC,kEAAkE;YAClE,6DAA6D;YAC7D,UAAU,EAAE;gBACR,QAAQ,EAAE,EAAE;gBACZ,aAAa,EAAE,IAAI;gBACnB,QAAQ,EAAE,IAAI;gBACd,GAAG,EAAE,EAAE;gBACP,QAAQ,EAAE,KAAK;aAClB;SACJ;QACD,UAAU,EAAE;YACR,gBAAgB,EAAE,GAAG;YACrB,WAAW,EAAE,EAAE;YACf,UAAU,EAAE,EAAE;YACd,mBAAmB,EAAE,CAAC;YACtB,cAAc,EAAE,CAAC;YACjB,QAAQ,EAAE,UAAU;YACpB,KAAK,EAAE,SAAS;YAChB,MAAM,EAAE,aAAa;YACrB,SAAS,EAAE,EAAE;YACb,UAAU,EAAE,UAAU;YACtB,aAAa,EAAE,IAAI;YACnB,MAAM,EAAE,IAAI;YACZ,QAAQ,EAAE,OAAO;YACjB,SAAS,EAAE,CAAC,OAAO,EAAE,IAAI,CAAC;YAC1B,OAAO,EAAE;gBACL,EAAE,IAAI,EAAE,YAAY,EAAE,QAAQ,EAAE,qBAAqB,EAAE;
|
|
1
|
+
{"version":3,"file":"platform-consistency.js","sourceRoot":"","sources":["../../../src/fingerprinting/fingerprint-overrides/platform-consistency.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The override registry - the single place that knows every JS fingerprint
|
|
3
|
+
* override, its injection order, its option gate, and whether the native (C++)
|
|
4
|
+
* anti-detect binary already covers its surface.
|
|
5
|
+
*
|
|
6
|
+
* The injector consumes this through `buildOverrideScripts()` and never names
|
|
7
|
+
* individual overrides. To add an override: create the module, append one
|
|
8
|
+
* entry here, done.
|
|
9
|
+
*/
|
|
10
|
+
import type { Override, OverrideContext } from './override.js';
|
|
11
|
+
export declare const OVERRIDE_REGISTRY: readonly Override[];
|
|
12
|
+
export interface BuildOverrideScriptsOptions {
|
|
13
|
+
/**
|
|
14
|
+
* True when the C++ anti-detect binary is in use: overrides whose surface
|
|
15
|
+
* the binary already covers (`runsUnderNativeStealth: false`) are filtered
|
|
16
|
+
* out. The injector currently early-returns before reaching the JS pipeline
|
|
17
|
+
* under native stealth, so this filter is defensive layering - but it is THE
|
|
18
|
+
* seam where the native-vs-JS adapter split is expressed.
|
|
19
|
+
*/
|
|
20
|
+
nativeStealth: boolean;
|
|
21
|
+
}
|
|
22
|
+
export interface AssembledOverride {
|
|
23
|
+
/** One injection script produced by an enabled override. */
|
|
24
|
+
script: string;
|
|
25
|
+
/** True when the producing builder is context-independent (memoized once per process). */
|
|
26
|
+
isStatic: boolean;
|
|
27
|
+
}
|
|
28
|
+
/**
|
|
29
|
+
* Assemble the enabled override scripts for one page, tagging each script with
|
|
30
|
+
* whether its builder is static. Static builders run once per process (their
|
|
31
|
+
* output is memoized); context-dependent builders run on every call. The tag
|
|
32
|
+
* lets the injector cache expensive post-processing (script cleaning) for the
|
|
33
|
+
* static scripts only, without ever caching per-session scripts.
|
|
34
|
+
*/
|
|
35
|
+
export declare function assembleOverrideScripts(ctx: OverrideContext, { nativeStealth }: BuildOverrideScriptsOptions): AssembledOverride[];
|
|
36
|
+
/**
|
|
37
|
+
* Assemble the injection scripts for one page: filter by native coverage,
|
|
38
|
+
* filter by option gates, order by declared order, build each override.
|
|
39
|
+
*/
|
|
40
|
+
export declare function buildOverrideScripts(ctx: OverrideContext, options: BuildOverrideScriptsOptions): string[];
|
|
41
|
+
/** Test-only: drop the static-builder memo so invocation counts start fresh. */
|
|
42
|
+
export declare function resetStaticOverrideCacheForTesting(): void;
|
|
43
|
+
//# sourceMappingURL=registry.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"registry.d.ts","sourceRoot":"","sources":["../../../src/fingerprinting/fingerprint-overrides/registry.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAaH,OAAO,KAAK,EAAE,QAAQ,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AAgB/D,eAAO,MAAM,iBAAiB,EAAE,SAAS,QAAQ,EA8OhD,CAAC;AAEF,MAAM,WAAW,2BAA2B;IACxC;;;;;;OAMG;IACH,aAAa,EAAE,OAAO,CAAC;CAC1B;AA6BD,MAAM,WAAW,iBAAiB;IAC9B,4DAA4D;IAC5D,MAAM,EAAE,MAAM,CAAC;IACf,0FAA0F;IAC1F,QAAQ,EAAE,OAAO,CAAC;CACrB;AAED;;;;;;GAMG;AACH,wBAAgB,uBAAuB,CACnC,GAAG,EAAE,eAAe,EACpB,EAAE,aAAa,EAAE,EAAE,2BAA2B,GAC/C,iBAAiB,EAAE,CAsBrB;AAED;;;GAGG;AACH,wBAAgB,oBAAoB,CAChC,GAAG,EAAE,eAAe,EACpB,OAAO,EAAE,2BAA2B,GACrC,MAAM,EAAE,CAEV;AAED,gFAAgF;AAChF,wBAAgB,kCAAkC,IAAI,IAAI,CAEzD"}
|