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.
Files changed (232) hide show
  1. package/README.md +1 -607
  2. package/browser/fonts/macos-bundle/40-macos-aliases.conf +515 -0
  3. package/browser/fonts/macos-bundle/README.md +24 -0
  4. package/browser/fonts/macos-bundle/install.sh +83 -0
  5. package/dist/browser-controller.d.ts +47 -4
  6. package/dist/browser-controller.d.ts.map +1 -1
  7. package/dist/browser-controller.js +219 -278
  8. package/dist/browser-controller.js.map +1 -1
  9. package/dist/browser-plugin.d.ts +82 -110
  10. package/dist/browser-plugin.d.ts.map +1 -1
  11. package/dist/browser-plugin.js +376 -379
  12. package/dist/browser-plugin.js.map +1 -1
  13. package/dist/browser-process/align-fingerprint-config.d.ts +36 -0
  14. package/dist/browser-process/align-fingerprint-config.d.ts.map +1 -0
  15. package/dist/browser-process/align-fingerprint-config.js +74 -0
  16. package/dist/browser-process/align-fingerprint-config.js.map +1 -0
  17. package/dist/browser-process/anti-detect-browser.d.ts +2 -2
  18. package/dist/browser-process/anti-detect-browser.js +7 -7
  19. package/dist/browser-process/anti-detect-config.d.ts +131 -2
  20. package/dist/browser-process/anti-detect-config.d.ts.map +1 -1
  21. package/dist/browser-process/anti-detect-config.js +337 -127
  22. package/dist/browser-process/anti-detect-config.js.map +1 -1
  23. package/dist/browser-process/browser.d.ts +25 -92
  24. package/dist/browser-process/browser.d.ts.map +1 -1
  25. package/dist/browser-process/browser.js +429 -73
  26. package/dist/browser-process/browser.js.map +1 -1
  27. package/dist/browser-process/fingerprint-config.d.ts +146 -0
  28. package/dist/browser-process/fingerprint-config.d.ts.map +1 -0
  29. package/dist/browser-process/fingerprint-config.js +308 -0
  30. package/dist/browser-process/fingerprint-config.js.map +1 -0
  31. package/dist/browser-process/get-chrome-executable.d.ts +6 -0
  32. package/dist/browser-process/get-chrome-executable.d.ts.map +1 -1
  33. package/dist/browser-process/get-chrome-executable.js +79 -4
  34. package/dist/browser-process/get-chrome-executable.js.map +1 -1
  35. package/dist/browser-process/gpu-family-profiles.d.ts +58 -0
  36. package/dist/browser-process/gpu-family-profiles.d.ts.map +1 -0
  37. package/dist/browser-process/gpu-family-profiles.js +480 -0
  38. package/dist/browser-process/gpu-family-profiles.js.map +1 -0
  39. package/dist/browser-process/launch-options.d.ts +301 -0
  40. package/dist/browser-process/launch-options.d.ts.map +1 -0
  41. package/dist/browser-process/launch-options.js +2 -0
  42. package/dist/browser-process/launch-options.js.map +1 -0
  43. package/dist/browser-process/port-allocator.d.ts +64 -0
  44. package/dist/browser-process/port-allocator.d.ts.map +1 -0
  45. package/dist/browser-process/port-allocator.js +198 -0
  46. package/dist/browser-process/port-allocator.js.map +1 -0
  47. package/dist/browser-process/process.d.ts +85 -0
  48. package/dist/browser-process/process.d.ts.map +1 -1
  49. package/dist/browser-process/process.js +235 -19
  50. package/dist/browser-process/process.js.map +1 -1
  51. package/dist/browser-process/signal-cleanup.d.ts +40 -0
  52. package/dist/browser-process/signal-cleanup.d.ts.map +1 -0
  53. package/dist/browser-process/signal-cleanup.js +105 -0
  54. package/dist/browser-process/signal-cleanup.js.map +1 -0
  55. package/dist/browser-process/widevine-cdm.d.ts +144 -0
  56. package/dist/browser-process/widevine-cdm.d.ts.map +1 -0
  57. package/dist/browser-process/widevine-cdm.js +298 -0
  58. package/dist/browser-process/widevine-cdm.js.map +1 -0
  59. package/dist/browser-profiles/chrome/populate-profile.d.ts.map +1 -1
  60. package/dist/browser-profiles/chrome/populate-profile.js +21 -22
  61. package/dist/browser-profiles/chrome/populate-profile.js.map +1 -1
  62. package/dist/connection/cdp-reconnection.d.ts +50 -0
  63. package/dist/connection/cdp-reconnection.d.ts.map +1 -0
  64. package/dist/connection/cdp-reconnection.js +75 -0
  65. package/dist/connection/cdp-reconnection.js.map +1 -0
  66. package/dist/connection/page-session.d.ts +114 -0
  67. package/dist/connection/page-session.d.ts.map +1 -0
  68. package/dist/connection/page-session.js +237 -0
  69. package/dist/connection/page-session.js.map +1 -0
  70. package/dist/connection/session-client.d.ts +34 -0
  71. package/dist/connection/session-client.d.ts.map +1 -0
  72. package/dist/connection/session-client.js +129 -0
  73. package/dist/connection/session-client.js.map +1 -0
  74. package/dist/crawler.d.ts +9 -88
  75. package/dist/crawler.d.ts.map +1 -1
  76. package/dist/crawler.js +157 -8
  77. package/dist/crawler.js.map +1 -1
  78. package/dist/fingerprinting/fingerprint-injector.d.ts +24 -114
  79. package/dist/fingerprinting/fingerprint-injector.d.ts.map +1 -1
  80. package/dist/fingerprinting/fingerprint-injector.js +305 -611
  81. package/dist/fingerprinting/fingerprint-injector.js.map +1 -1
  82. package/dist/fingerprinting/fingerprint-overrides/datadome-bypass.d.ts +1 -1
  83. package/dist/fingerprinting/fingerprint-overrides/datadome-bypass.d.ts.map +1 -1
  84. package/dist/fingerprinting/fingerprint-overrides/datadome-bypass.js +16 -14
  85. package/dist/fingerprinting/fingerprint-overrides/datadome-bypass.js.map +1 -1
  86. package/dist/fingerprinting/fingerprint-overrides/index.d.ts +6 -2
  87. package/dist/fingerprinting/fingerprint-overrides/index.d.ts.map +1 -1
  88. package/dist/fingerprinting/fingerprint-overrides/index.js +6 -2
  89. package/dist/fingerprinting/fingerprint-overrides/index.js.map +1 -1
  90. package/dist/fingerprinting/fingerprint-overrides/keyboard-humanization.d.ts +1 -1
  91. package/dist/fingerprinting/fingerprint-overrides/keyboard-humanization.js +4 -4
  92. package/dist/fingerprinting/fingerprint-overrides/keyboard-humanization.js.map +1 -1
  93. package/dist/fingerprinting/fingerprint-overrides/locale-spoofing.js +4 -4
  94. package/dist/fingerprinting/fingerprint-overrides/navigator-override.d.ts +18 -0
  95. package/dist/fingerprinting/fingerprint-overrides/navigator-override.d.ts.map +1 -0
  96. package/dist/fingerprinting/fingerprint-overrides/navigator-override.js +136 -0
  97. package/dist/fingerprinting/fingerprint-overrides/navigator-override.js.map +1 -0
  98. package/dist/fingerprinting/fingerprint-overrides/override.d.ts +151 -0
  99. package/dist/fingerprinting/fingerprint-overrides/override.d.ts.map +1 -0
  100. package/dist/fingerprinting/fingerprint-overrides/override.js +14 -0
  101. package/dist/fingerprinting/fingerprint-overrides/override.js.map +1 -0
  102. package/dist/fingerprinting/fingerprint-overrides/platform-consistency.d.ts.map +1 -1
  103. package/dist/fingerprinting/fingerprint-overrides/platform-consistency.js +46 -15
  104. package/dist/fingerprinting/fingerprint-overrides/platform-consistency.js.map +1 -1
  105. package/dist/fingerprinting/fingerprint-overrides/registry.d.ts +43 -0
  106. package/dist/fingerprinting/fingerprint-overrides/registry.d.ts.map +1 -0
  107. package/dist/fingerprinting/fingerprint-overrides/registry.js +342 -0
  108. package/dist/fingerprinting/fingerprint-overrides/registry.js.map +1 -0
  109. package/dist/fingerprinting/fingerprint-overrides/screen-override.d.ts +16 -0
  110. package/dist/fingerprinting/fingerprint-overrides/screen-override.d.ts.map +1 -0
  111. package/dist/fingerprinting/fingerprint-overrides/screen-override.js +175 -0
  112. package/dist/fingerprinting/fingerprint-overrides/screen-override.js.map +1 -0
  113. package/dist/fingerprinting/fingerprint-overrides/scroll-humanization.d.ts +1 -1
  114. package/dist/fingerprinting/fingerprint-overrides/scroll-humanization.js +4 -4
  115. package/dist/fingerprinting/fingerprint-overrides/scroll-humanization.js.map +1 -1
  116. package/dist/fingerprinting/fingerprint-overrides/stealth-script.d.ts.map +1 -1
  117. package/dist/fingerprinting/fingerprint-overrides/stealth-script.js +75 -9
  118. package/dist/fingerprinting/fingerprint-overrides/stealth-script.js.map +1 -1
  119. package/dist/fingerprinting/fingerprint-overrides/ua-ch.d.ts +1 -1
  120. package/dist/fingerprinting/fingerprint-overrides/ua-ch.d.ts.map +1 -1
  121. package/dist/fingerprinting/fingerprint-overrides/ua-ch.js +34 -20
  122. package/dist/fingerprinting/fingerprint-overrides/ua-ch.js.map +1 -1
  123. package/dist/fingerprinting/fingerprint-overrides/webgl-spoofing.d.ts.map +1 -1
  124. package/dist/fingerprinting/fingerprint-overrides/webgl-spoofing.js +25 -6
  125. package/dist/fingerprinting/fingerprint-overrides/webgl-spoofing.js.map +1 -1
  126. package/dist/fingerprinting/fingerprint-overrides/webrtc-spoofing.js +1 -1
  127. package/dist/fingerprinting/hardware-realism.d.ts +83 -0
  128. package/dist/fingerprinting/hardware-realism.d.ts.map +1 -0
  129. package/dist/fingerprinting/hardware-realism.js +156 -0
  130. package/dist/fingerprinting/hardware-realism.js.map +1 -0
  131. package/dist/fingerprinting/injection-planner.d.ts +133 -0
  132. package/dist/fingerprinting/injection-planner.d.ts.map +1 -0
  133. package/dist/fingerprinting/injection-planner.js +497 -0
  134. package/dist/fingerprinting/injection-planner.js.map +1 -0
  135. package/dist/fingerprinting/locale-resolver.d.ts +8 -1
  136. package/dist/fingerprinting/locale-resolver.d.ts.map +1 -1
  137. package/dist/fingerprinting/locale-resolver.js +26 -3
  138. package/dist/fingerprinting/locale-resolver.js.map +1 -1
  139. package/dist/fingerprinting/non-apify-fingerprint-generator.d.ts +4 -4
  140. package/dist/fingerprinting/non-apify-fingerprint-generator.d.ts.map +1 -1
  141. package/dist/fingerprinting/non-apify-fingerprint-generator.js +24 -58
  142. package/dist/fingerprinting/non-apify-fingerprint-generator.js.map +1 -1
  143. package/dist/fingerprinting/non-apify-profiles.json +10515 -8494
  144. package/dist/fingerprinting/os-consistency.d.ts +28 -0
  145. package/dist/fingerprinting/os-consistency.d.ts.map +1 -0
  146. package/dist/fingerprinting/os-consistency.js +45 -0
  147. package/dist/fingerprinting/os-consistency.js.map +1 -0
  148. package/dist/fingerprinting/profile-quality.d.ts +25 -0
  149. package/dist/fingerprinting/profile-quality.d.ts.map +1 -0
  150. package/dist/fingerprinting/profile-quality.js +310 -0
  151. package/dist/fingerprinting/profile-quality.js.map +1 -0
  152. package/dist/fingerprinting/profile-selector.d.ts +102 -0
  153. package/dist/fingerprinting/profile-selector.d.ts.map +1 -0
  154. package/dist/fingerprinting/profile-selector.js +168 -0
  155. package/dist/fingerprinting/profile-selector.js.map +1 -0
  156. package/dist/fingerprinting/ua-alignment.d.ts +83 -0
  157. package/dist/fingerprinting/ua-alignment.d.ts.map +1 -0
  158. package/dist/fingerprinting/ua-alignment.js +197 -0
  159. package/dist/fingerprinting/ua-alignment.js.map +1 -0
  160. package/dist/fingerprinting/ua-ch-brands.d.ts +88 -0
  161. package/dist/fingerprinting/ua-ch-brands.d.ts.map +1 -0
  162. package/dist/fingerprinting/ua-ch-brands.js +174 -0
  163. package/dist/fingerprinting/ua-ch-brands.js.map +1 -0
  164. package/dist/index.d.ts +5 -0
  165. package/dist/index.d.ts.map +1 -1
  166. package/dist/index.js +6 -0
  167. package/dist/index.js.map +1 -1
  168. package/dist/input/dropdown-selector.d.ts +90 -0
  169. package/dist/input/dropdown-selector.d.ts.map +1 -0
  170. package/dist/input/dropdown-selector.js +394 -0
  171. package/dist/input/dropdown-selector.js.map +1 -0
  172. package/dist/input/element-target.d.ts +152 -0
  173. package/dist/input/element-target.d.ts.map +1 -0
  174. package/dist/input/element-target.js +461 -0
  175. package/dist/input/element-target.js.map +1 -0
  176. package/dist/input/input-emulator.d.ts +85 -0
  177. package/dist/input/input-emulator.d.ts.map +1 -0
  178. package/dist/input/input-emulator.js +325 -0
  179. package/dist/input/input-emulator.js.map +1 -0
  180. package/dist/input/input-transport.d.ts +60 -0
  181. package/dist/input/input-transport.d.ts.map +1 -0
  182. package/dist/input/input-transport.js +28 -0
  183. package/dist/input/input-transport.js.map +1 -0
  184. package/dist/input/recording-transport.d.ts +32 -0
  185. package/dist/input/recording-transport.d.ts.map +1 -0
  186. package/dist/input/recording-transport.js +43 -0
  187. package/dist/input/recording-transport.js.map +1 -0
  188. package/dist/keyboard-layout.d.ts +2 -2
  189. package/dist/keyboard-layout.js +2 -2
  190. package/dist/navigation/page-navigation.d.ts +67 -0
  191. package/dist/navigation/page-navigation.d.ts.map +1 -0
  192. package/dist/navigation/page-navigation.js +122 -0
  193. package/dist/navigation/page-navigation.js.map +1 -0
  194. package/dist/network/network-watch.d.ts +110 -0
  195. package/dist/network/network-watch.d.ts.map +1 -0
  196. package/dist/network/network-watch.js +223 -0
  197. package/dist/network/network-watch.js.map +1 -0
  198. package/dist/page.d.ts +118 -104
  199. package/dist/page.d.ts.map +1 -1
  200. package/dist/page.js +311 -1130
  201. package/dist/page.js.map +1 -1
  202. package/dist/session/inject-hook.d.ts +24 -0
  203. package/dist/session/inject-hook.d.ts.map +1 -0
  204. package/dist/session/inject-hook.js +80 -0
  205. package/dist/session/inject-hook.js.map +1 -0
  206. package/dist/session/save.d.ts +21 -0
  207. package/dist/session/save.d.ts.map +1 -0
  208. package/dist/session/save.js +163 -0
  209. package/dist/session/save.js.map +1 -0
  210. package/dist/session/tar-data-dir.d.ts +18 -0
  211. package/dist/session/tar-data-dir.d.ts.map +1 -0
  212. package/dist/session/tar-data-dir.js +105 -0
  213. package/dist/session/tar-data-dir.js.map +1 -0
  214. package/dist/session/types.d.ts +80 -0
  215. package/dist/session/types.d.ts.map +1 -0
  216. package/dist/session/types.js +29 -0
  217. package/dist/session/types.js.map +1 -0
  218. package/dist/session-profile.d.ts +102 -0
  219. package/dist/session-profile.d.ts.map +1 -0
  220. package/dist/session-profile.js +163 -0
  221. package/dist/session-profile.js.map +1 -0
  222. package/dist/tsconfig.build.tsbuildinfo +1 -1
  223. package/package.json +17 -6
  224. package/scripts/postinstall.cjs +58 -0
  225. package/dist/fingerprinting/custom-fingerprint-injector.d.ts +0 -87
  226. package/dist/fingerprinting/custom-fingerprint-injector.d.ts.map +0 -1
  227. package/dist/fingerprinting/custom-fingerprint-injector.js +0 -342
  228. package/dist/fingerprinting/custom-fingerprint-injector.js.map +0 -1
  229. package/dist/launcher-wrap.d.ts +0 -10
  230. package/dist/launcher-wrap.d.ts.map +0 -1
  231. package/dist/launcher-wrap.js +0 -11
  232. package/dist/launcher-wrap.js.map +0 -1
@@ -0,0 +1,342 @@
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 { createAudioFingerprintSpoofingScript } from './audio-spoofing.js';
11
+ import { createAdvancedCanvasProtectionScript } from './canvas-protection.js';
12
+ import { createCDPDetectionBypassScript } from './cdp-detection-bypass.js';
13
+ import { createClientRectSpoofingScript } from './client-rect-spoofing.js';
14
+ import { createDataDomeBypassScript } from './datadome-bypass.js';
15
+ import { createFontSpoofingScript } from './font-spoofing.js';
16
+ import { createKeyboardHumanizationScript } from './keyboard-humanization.js';
17
+ import { createLocaleSpoofingScript } from './locale-spoofing.js';
18
+ import { createMediaCodecsSpoofingScript } from './media-codecs-spoofing.js';
19
+ import { createMouseMovementHumanizationScript } from './mouse-humanization.js';
20
+ import { createFingerprintInjectionBannerScript, createNavigatorOverrideScript } from './navigator-override.js';
21
+ import { createPerformanceSpoofingScript } from './performance-spoofing.js';
22
+ import { createPlatformConsistencyScript } from './platform-consistency.js';
23
+ import { createPrototypeIntegrityScript } from './prototype-integrity.js';
24
+ import { createRuntimeEnableBypassScript } from './runtime-enable-bypass.js';
25
+ import { createScreenOverrideScript, createWindowOverrideScript } from './screen-override.js';
26
+ import { createScrollHumanizationScript } from './scroll-humanization.js';
27
+ import { createStealthScript } from './stealth-script.js';
28
+ import { createStorageConsistencyScript } from './storage-consistency.js';
29
+ import { createTimingConsistencyScript } from './timing-consistency.js';
30
+ import { createUAClientHintsSpoofingScript } from './ua-ch.js';
31
+ import { createStealthUtilsScript } from './utils.js';
32
+ import { createWebGLSpoofingScript } from './webgl-spoofing.js';
33
+ import { createWebGPUSpoofingScript } from './webgpu-spoofing.js';
34
+ import { createWebRTCDisableScript, createWebRTCSpoofingScript } from './webrtc-spoofing.js';
35
+ export const OVERRIDE_REGISTRY = [
36
+ {
37
+ // Must be first - provides guards and toString spoofing every later override relies on.
38
+ id: 'stealth-utils',
39
+ order: 10,
40
+ runsUnderNativeStealth: true,
41
+ enabled: () => true,
42
+ build: () => createStealthUtilsScript(),
43
+ },
44
+ {
45
+ // Early - native-like property descriptor masking used by later overrides.
46
+ id: 'prototype-integrity',
47
+ order: 20,
48
+ runsUnderNativeStealth: true,
49
+ enabled: () => true,
50
+ build: () => createPrototypeIntegrityScript(),
51
+ },
52
+ {
53
+ // Protects against CDP detection via Error stack analysis. Covered natively by
54
+ // the inspector-artifact stripping in the C++ tree (Runtime.enable console side
55
+ // effects and automation sourceURL frames in Error stacks).
56
+ id: 'runtime-enable-bypass',
57
+ order: 30,
58
+ runsUnderNativeStealth: false,
59
+ enabled: ctx => ctx.maskAutomation,
60
+ build: () => createRuntimeEnableBypassScript(),
61
+ },
62
+ {
63
+ // Must run early: stack-trace sanitization + performance.memory spoofing have
64
+ // to land before the other overrides execute.
65
+ id: 'datadome-bypass',
66
+ order: 40,
67
+ runsUnderNativeStealth: true,
68
+ enabled: ctx => ctx.dataDomeBypass,
69
+ build: ctx => createDataDomeBypassScript(ctx.binaryFullVersion),
70
+ },
71
+ {
72
+ // Debug banner for the profile-driven property overrides below
73
+ // (navigator-override, screen-override). Pure console logging - the
74
+ // injector's cleanScript pass strips it when debug is off.
75
+ id: 'custom-fingerprint-log',
76
+ order: 50,
77
+ runsUnderNativeStealth: false,
78
+ enabled: () => true,
79
+ build: ctx => createFingerprintInjectionBannerScript(ctx.fingerprint),
80
+ },
81
+ {
82
+ // Navigator property overrides generated from the fingerprint profile.
83
+ // Covered natively by the navigator overrides in the C++ tree (e.g.
84
+ // NavigatorBase::GetReducedNavigatorPlatform); injecting this JS on top
85
+ // of the binary would create detectable descriptor lies.
86
+ id: 'navigator-override',
87
+ order: 52,
88
+ runsUnderNativeStealth: false,
89
+ enabled: ctx => !!ctx.fingerprint.navigator && Object.keys(ctx.fingerprint.navigator).length > 0,
90
+ build: ctx => createNavigatorOverrideScript(ctx.fingerprint),
91
+ },
92
+ {
93
+ // Screen + window (devicePixelRatio) property overrides from the
94
+ // fingerprint profile. Covered natively by the screen-dimension
95
+ // overrides in the C++ tree.
96
+ id: 'screen-override',
97
+ order: 54,
98
+ runsUnderNativeStealth: false,
99
+ enabled: ctx => !!ctx.fingerprint.screen && Object.keys(ctx.fingerprint.screen).length > 0,
100
+ build: ctx => {
101
+ const scripts = [createScreenOverrideScript(ctx.fingerprint)];
102
+ if (ctx.fingerprint.screen?.devicePixelRatio) {
103
+ scripts.push(createWindowOverrideScript(ctx.fingerprint));
104
+ }
105
+ return scripts;
106
+ },
107
+ },
108
+ {
109
+ // navigator.webdriver removal + Error-stack hiding for the JS-injection path.
110
+ id: 'stealth-script',
111
+ order: 60,
112
+ runsUnderNativeStealth: true,
113
+ enabled: ctx => ctx.maskAutomation,
114
+ build: () => createStealthScript(),
115
+ },
116
+ {
117
+ // navigator.userAgentData spoofing. Covered natively by the UA-CH structured
118
+ // data + Sec-CH-UA-* header overrides in components/embedder_support.
119
+ id: 'ua-ch',
120
+ order: 70,
121
+ runsUnderNativeStealth: false,
122
+ enabled: ctx => ctx.advancedStealth,
123
+ build: ctx => createUAClientHintsSpoofingScript(ctx.platform, ctx.uaClientHints, ctx.binaryFullVersion),
124
+ },
125
+ {
126
+ // Covered natively by the WebGL getParameter override in
127
+ // third_party/blink/renderer/modules/webgl/webgl_rendering_context_base.cc.
128
+ id: 'webgl-spoofing',
129
+ order: 80,
130
+ runsUnderNativeStealth: false,
131
+ enabled: ctx => ctx.advancedStealth && ctx.spoof.webgl,
132
+ build: ctx => createWebGLSpoofingScript(ctx.webglConfig),
133
+ },
134
+ {
135
+ // Covered natively by the audio-buffer noise in the Blink audio path.
136
+ id: 'audio-spoofing',
137
+ order: 90,
138
+ runsUnderNativeStealth: false,
139
+ enabled: ctx => ctx.advancedStealth && ctx.spoof.audio,
140
+ build: () => createAudioFingerprintSpoofingScript(),
141
+ },
142
+ {
143
+ // Covered natively by the canvas readback noise in the Blink canvas path.
144
+ id: 'canvas-protection',
145
+ order: 100,
146
+ runsUnderNativeStealth: false,
147
+ enabled: ctx => ctx.advancedStealth,
148
+ build: () => createAdvancedCanvasProtectionScript(),
149
+ },
150
+ {
151
+ // Covered natively by the getBoundingClientRect noise in the C++ tree.
152
+ id: 'client-rect-spoofing',
153
+ order: 110,
154
+ runsUnderNativeStealth: false,
155
+ enabled: ctx => ctx.advancedStealth && ctx.spoof.clientRects,
156
+ build: () => createClientRectSpoofingScript(),
157
+ },
158
+ {
159
+ // canPlayType is behavioral - always keep, even under native stealth.
160
+ id: 'media-codecs',
161
+ order: 120,
162
+ runsUnderNativeStealth: true,
163
+ enabled: ctx => ctx.advancedStealth,
164
+ build: () => createMediaCodecsSpoofingScript(),
165
+ },
166
+ {
167
+ id: 'webrtc-disable',
168
+ order: 130,
169
+ runsUnderNativeStealth: true,
170
+ enabled: ctx => ctx.advancedStealth && ctx.webRtcPolicy === 'disable',
171
+ build: () => createWebRTCDisableScript(),
172
+ },
173
+ {
174
+ // Fake device IDs; the C++ tree handles IP-leak prevention only.
175
+ id: 'webrtc-spoof',
176
+ order: 140,
177
+ runsUnderNativeStealth: true,
178
+ enabled: ctx => ctx.advancedStealth && ctx.webRtcPolicy !== 'disable',
179
+ build: () => createWebRTCSpoofingScript(),
180
+ },
181
+ {
182
+ // Covered natively by the WebGPU adapter-info override in the C++ tree.
183
+ id: 'webgpu-spoofing',
184
+ order: 150,
185
+ runsUnderNativeStealth: false,
186
+ enabled: ctx => ctx.advancedStealth,
187
+ build: ctx => createWebGPUSpoofingScript(ctx.useExperimentalFingerprints),
188
+ },
189
+ {
190
+ // Covered natively by the Cromite built-in font allowlist.
191
+ id: 'font-spoofing',
192
+ order: 160,
193
+ runsUnderNativeStealth: false,
194
+ enabled: ctx => ctx.advancedStealth && ctx.spoof.fonts,
195
+ build: () => createFontSpoofingScript(),
196
+ },
197
+ {
198
+ // Covered natively by the Cromite built-in performance.now clamping.
199
+ id: 'performance-spoofing',
200
+ order: 170,
201
+ runsUnderNativeStealth: false,
202
+ enabled: ctx => ctx.advancedStealth && ctx.spoof.performance,
203
+ build: () => createPerformanceSpoofingScript(),
204
+ },
205
+ {
206
+ // Always keep: the Intl.NumberFormat formatting surface is not in the C++ tree.
207
+ // The resolved locale/languages are baked in as literals so the script reports
208
+ // values that match the navigator/header overrides instead of hardcoded en-US.
209
+ id: 'locale-spoofing',
210
+ order: 180,
211
+ runsUnderNativeStealth: true,
212
+ enabled: ctx => ctx.advancedStealth && ctx.spoof.locale,
213
+ build: ctx => createLocaleSpoofingScript(ctx.locale),
214
+ },
215
+ {
216
+ // Covered natively by navigator.webdriver=false + CDP automation-artifact
217
+ // stripping in the C++ tree.
218
+ id: 'cdp-detection-bypass',
219
+ order: 190,
220
+ runsUnderNativeStealth: false,
221
+ enabled: ctx => ctx.advancedStealth && ctx.spoof.cdpDetection,
222
+ build: () => createCDPDetectionBypassScript(),
223
+ },
224
+ {
225
+ // Always keep: CDP-level storage quota spoofing.
226
+ id: 'storage-consistency',
227
+ order: 200,
228
+ runsUnderNativeStealth: true,
229
+ enabled: ctx => ctx.advancedStealth && ctx.spoof.storage,
230
+ build: () => createStorageConsistencyScript(),
231
+ },
232
+ {
233
+ // Always keep: Date.now alignment; the C++ tree handles performance.now only.
234
+ id: 'timing-consistency',
235
+ order: 210,
236
+ runsUnderNativeStealth: true,
237
+ enabled: ctx => ctx.advancedStealth && ctx.spoof.timing,
238
+ build: () => createTimingConsistencyScript(),
239
+ },
240
+ {
241
+ // Behavioral rather than fingerprinting - bundled so the bezier-curve utility
242
+ // counts as part of the single addScriptToEvaluateOnNewDocument call.
243
+ id: 'mouse-humanization',
244
+ order: 220,
245
+ runsUnderNativeStealth: true,
246
+ enabled: ctx => ctx.advancedStealth && ctx.humanization.mouse,
247
+ build: () => createMouseMovementHumanizationScript(),
248
+ },
249
+ {
250
+ id: 'keyboard-humanization',
251
+ order: 230,
252
+ runsUnderNativeStealth: true,
253
+ enabled: ctx => ctx.advancedStealth && ctx.humanization.keyboard,
254
+ build: () => createKeyboardHumanizationScript(),
255
+ },
256
+ {
257
+ id: 'scroll-humanization',
258
+ order: 240,
259
+ runsUnderNativeStealth: true,
260
+ enabled: ctx => ctx.advancedStealth && ctx.humanization.scroll,
261
+ build: () => createScrollHumanizationScript(),
262
+ },
263
+ {
264
+ // Covered natively by the navigator.platform override
265
+ // (third_party/blink/renderer/core/frame/navigator_base.cc) and the screen
266
+ // overrides in the C++ tree. Note: NOT gated on advancedStealth.
267
+ id: 'platform-consistency',
268
+ order: 250,
269
+ runsUnderNativeStealth: false,
270
+ enabled: ctx => ctx.platform !== undefined,
271
+ build: ctx => createPlatformConsistencyScript(ctx.platform, ctx.platformConfig),
272
+ },
273
+ ];
274
+ /**
275
+ * Injection order never changes at runtime, so sort the registry once at module
276
+ * load instead of spreading + sorting on every page build.
277
+ */
278
+ const SORTED_OVERRIDE_REGISTRY = [...OVERRIDE_REGISTRY]
279
+ .sort((a, b) => a.order - b.order);
280
+ /**
281
+ * Module-scope memo for context-independent (static) override builders. A
282
+ * builder is static iff it declares no OverrideContext parameter
283
+ * (`build.length === 0`): its script bytes are constant for the whole process,
284
+ * so we assemble them once and reuse the identical strings across every page.
285
+ * Context-dependent builders (navigator/screen/webgl/ua-ch/locale/
286
+ * platform-consistency/banner/webgpu) reference `ctx`, vary per session, and are
287
+ * never cached - they rebuild on every call.
288
+ */
289
+ const staticScriptCache = new Map();
290
+ /** A builder is static (memoizable) precisely when it ignores the OverrideContext. */
291
+ function isStaticBuilder(override) {
292
+ return override.build.length === 0;
293
+ }
294
+ function toScripts(built) {
295
+ return Array.isArray(built) ? built : [built];
296
+ }
297
+ /**
298
+ * Assemble the enabled override scripts for one page, tagging each script with
299
+ * whether its builder is static. Static builders run once per process (their
300
+ * output is memoized); context-dependent builders run on every call. The tag
301
+ * lets the injector cache expensive post-processing (script cleaning) for the
302
+ * static scripts only, without ever caching per-session scripts.
303
+ */
304
+ export function assembleOverrideScripts(ctx, { nativeStealth }) {
305
+ const result = [];
306
+ for (const override of SORTED_OVERRIDE_REGISTRY) {
307
+ if (nativeStealth && !override.runsUnderNativeStealth)
308
+ continue;
309
+ if (!override.enabled(ctx))
310
+ continue;
311
+ const isStatic = isStaticBuilder(override);
312
+ let scripts;
313
+ if (isStatic) {
314
+ const cached = staticScriptCache.get(override.id);
315
+ if (cached) {
316
+ scripts = cached;
317
+ }
318
+ else {
319
+ scripts = toScripts(override.build(ctx));
320
+ staticScriptCache.set(override.id, scripts);
321
+ }
322
+ }
323
+ else {
324
+ scripts = toScripts(override.build(ctx));
325
+ }
326
+ for (const script of scripts)
327
+ result.push({ script, isStatic });
328
+ }
329
+ return result;
330
+ }
331
+ /**
332
+ * Assemble the injection scripts for one page: filter by native coverage,
333
+ * filter by option gates, order by declared order, build each override.
334
+ */
335
+ export function buildOverrideScripts(ctx, options) {
336
+ return assembleOverrideScripts(ctx, options).map(({ script }) => script);
337
+ }
338
+ /** Test-only: drop the static-builder memo so invocation counts start fresh. */
339
+ export function resetStaticOverrideCacheForTesting() {
340
+ staticScriptCache.clear();
341
+ }
342
+ //# sourceMappingURL=registry.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"registry.js","sourceRoot":"","sources":["../../../src/fingerprinting/fingerprint-overrides/registry.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,EAAE,oCAAoC,EAAE,MAAM,qBAAqB,CAAC;AAC3E,OAAO,EAAE,oCAAoC,EAAE,MAAM,wBAAwB,CAAC;AAC9E,OAAO,EAAE,8BAA8B,EAAE,MAAM,2BAA2B,CAAC;AAC3E,OAAO,EAAE,8BAA8B,EAAE,MAAM,2BAA2B,CAAC;AAC3E,OAAO,EAAE,0BAA0B,EAAE,MAAM,sBAAsB,CAAC;AAClE,OAAO,EAAE,wBAAwB,EAAE,MAAM,oBAAoB,CAAC;AAC9D,OAAO,EAAE,gCAAgC,EAAE,MAAM,4BAA4B,CAAC;AAC9E,OAAO,EAAE,0BAA0B,EAAE,MAAM,sBAAsB,CAAC;AAClE,OAAO,EAAE,+BAA+B,EAAE,MAAM,4BAA4B,CAAC;AAC7E,OAAO,EAAE,qCAAqC,EAAE,MAAM,yBAAyB,CAAC;AAChF,OAAO,EAAE,sCAAsC,EAAE,6BAA6B,EAAE,MAAM,yBAAyB,CAAC;AAEhH,OAAO,EAAE,+BAA+B,EAAE,MAAM,2BAA2B,CAAC;AAC5E,OAAO,EAAE,+BAA+B,EAAE,MAAM,2BAA2B,CAAC;AAC5E,OAAO,EAAE,8BAA8B,EAAE,MAAM,0BAA0B,CAAC;AAC1E,OAAO,EAAE,+BAA+B,EAAE,MAAM,4BAA4B,CAAC;AAC7E,OAAO,EAAE,0BAA0B,EAAE,0BAA0B,EAAE,MAAM,sBAAsB,CAAC;AAC9F,OAAO,EAAE,8BAA8B,EAAE,MAAM,0BAA0B,CAAC;AAC1E,OAAO,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AAC1D,OAAO,EAAE,8BAA8B,EAAE,MAAM,0BAA0B,CAAC;AAC1E,OAAO,EAAE,6BAA6B,EAAE,MAAM,yBAAyB,CAAC;AACxE,OAAO,EAAE,iCAAiC,EAAE,MAAM,YAAY,CAAC;AAC/D,OAAO,EAAE,wBAAwB,EAAE,MAAM,YAAY,CAAC;AACtD,OAAO,EAAE,yBAAyB,EAAE,MAAM,qBAAqB,CAAC;AAChE,OAAO,EAAE,0BAA0B,EAAE,MAAM,sBAAsB,CAAC;AAClE,OAAO,EAAE,yBAAyB,EAAE,0BAA0B,EAAE,MAAM,sBAAsB,CAAC;AAE7F,MAAM,CAAC,MAAM,iBAAiB,GAAwB;IAClD;QACI,wFAAwF;QACxF,EAAE,EAAE,eAAe;QACnB,KAAK,EAAE,EAAE;QACT,sBAAsB,EAAE,IAAI;QAC5B,OAAO,EAAE,GAAG,EAAE,CAAC,IAAI;QACnB,KAAK,EAAE,GAAG,EAAE,CAAC,wBAAwB,EAAE;KAC1C;IACD;QACI,2EAA2E;QAC3E,EAAE,EAAE,qBAAqB;QACzB,KAAK,EAAE,EAAE;QACT,sBAAsB,EAAE,IAAI;QAC5B,OAAO,EAAE,GAAG,EAAE,CAAC,IAAI;QACnB,KAAK,EAAE,GAAG,EAAE,CAAC,8BAA8B,EAAE;KAChD;IACD;QACI,+EAA+E;QAC/E,gFAAgF;QAChF,4DAA4D;QAC5D,EAAE,EAAE,uBAAuB;QAC3B,KAAK,EAAE,EAAE;QACT,sBAAsB,EAAE,KAAK;QAC7B,OAAO,EAAE,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,cAAc;QAClC,KAAK,EAAE,GAAG,EAAE,CAAC,+BAA+B,EAAE;KACjD;IACD;QACI,8EAA8E;QAC9E,8CAA8C;QAC9C,EAAE,EAAE,iBAAiB;QACrB,KAAK,EAAE,EAAE;QACT,sBAAsB,EAAE,IAAI;QAC5B,OAAO,EAAE,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,cAAc;QAClC,KAAK,EAAE,GAAG,CAAC,EAAE,CAAC,0BAA0B,CAAC,GAAG,CAAC,iBAAiB,CAAC;KAClE;IACD;QACI,+DAA+D;QAC/D,oEAAoE;QACpE,2DAA2D;QAC3D,EAAE,EAAE,wBAAwB;QAC5B,KAAK,EAAE,EAAE;QACT,sBAAsB,EAAE,KAAK;QAC7B,OAAO,EAAE,GAAG,EAAE,CAAC,IAAI;QACnB,KAAK,EAAE,GAAG,CAAC,EAAE,CAAC,sCAAsC,CAAC,GAAG,CAAC,WAAW,CAAC;KACxE;IACD;QACI,uEAAuE;QACvE,oEAAoE;QACpE,wEAAwE;QACxE,yDAAyD;QACzD,EAAE,EAAE,oBAAoB;QACxB,KAAK,EAAE,EAAE;QACT,sBAAsB,EAAE,KAAK;QAC7B,OAAO,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,WAAW,CAAC,SAAS,IAAI,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC,MAAM,GAAG,CAAC;QAChG,KAAK,EAAE,GAAG,CAAC,EAAE,CAAC,6BAA6B,CAAC,GAAG,CAAC,WAAW,CAAC;KAC/D;IACD;QACI,iEAAiE;QACjE,gEAAgE;QAChE,6BAA6B;QAC7B,EAAE,EAAE,iBAAiB;QACrB,KAAK,EAAE,EAAE;QACT,sBAAsB,EAAE,KAAK;QAC7B,OAAO,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,WAAW,CAAC,MAAM,IAAI,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,MAAM,GAAG,CAAC;QAC1F,KAAK,EAAE,GAAG,CAAC,EAAE;YACT,MAAM,OAAO,GAAG,CAAC,0BAA0B,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC,CAAC;YAC9D,IAAI,GAAG,CAAC,WAAW,CAAC,MAAM,EAAE,gBAAgB,EAAE,CAAC;gBAC3C,OAAO,CAAC,IAAI,CAAC,0BAA0B,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC,CAAC;YAC9D,CAAC;YACD,OAAO,OAAO,CAAC;QACnB,CAAC;KACJ;IACD;QACI,8EAA8E;QAC9E,EAAE,EAAE,gBAAgB;QACpB,KAAK,EAAE,EAAE;QACT,sBAAsB,EAAE,IAAI;QAC5B,OAAO,EAAE,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,cAAc;QAClC,KAAK,EAAE,GAAG,EAAE,CAAC,mBAAmB,EAAE;KACrC;IACD;QACI,6EAA6E;QAC7E,sEAAsE;QACtE,EAAE,EAAE,OAAO;QACX,KAAK,EAAE,EAAE;QACT,sBAAsB,EAAE,KAAK;QAC7B,OAAO,EAAE,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,eAAe;QACnC,KAAK,EAAE,GAAG,CAAC,EAAE,CAAC,iCAAiC,CAAC,GAAG,CAAC,QAAQ,EAAE,GAAG,CAAC,aAAa,EAAE,GAAG,CAAC,iBAAiB,CAAC;KAC1G;IACD;QACI,yDAAyD;QACzD,4EAA4E;QAC5E,EAAE,EAAE,gBAAgB;QACpB,KAAK,EAAE,EAAE;QACT,sBAAsB,EAAE,KAAK;QAC7B,OAAO,EAAE,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,eAAe,IAAI,GAAG,CAAC,KAAK,CAAC,KAAK;QACtD,KAAK,EAAE,GAAG,CAAC,EAAE,CAAC,yBAAyB,CAAC,GAAG,CAAC,WAAW,CAAC;KAC3D;IACD;QACI,sEAAsE;QACtE,EAAE,EAAE,gBAAgB;QACpB,KAAK,EAAE,EAAE;QACT,sBAAsB,EAAE,KAAK;QAC7B,OAAO,EAAE,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,eAAe,IAAI,GAAG,CAAC,KAAK,CAAC,KAAK;QACtD,KAAK,EAAE,GAAG,EAAE,CAAC,oCAAoC,EAAE;KACtD;IACD;QACI,0EAA0E;QAC1E,EAAE,EAAE,mBAAmB;QACvB,KAAK,EAAE,GAAG;QACV,sBAAsB,EAAE,KAAK;QAC7B,OAAO,EAAE,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,eAAe;QACnC,KAAK,EAAE,GAAG,EAAE,CAAC,oCAAoC,EAAE;KACtD;IACD;QACI,uEAAuE;QACvE,EAAE,EAAE,sBAAsB;QAC1B,KAAK,EAAE,GAAG;QACV,sBAAsB,EAAE,KAAK;QAC7B,OAAO,EAAE,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,eAAe,IAAI,GAAG,CAAC,KAAK,CAAC,WAAW;QAC5D,KAAK,EAAE,GAAG,EAAE,CAAC,8BAA8B,EAAE;KAChD;IACD;QACI,sEAAsE;QACtE,EAAE,EAAE,cAAc;QAClB,KAAK,EAAE,GAAG;QACV,sBAAsB,EAAE,IAAI;QAC5B,OAAO,EAAE,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,eAAe;QACnC,KAAK,EAAE,GAAG,EAAE,CAAC,+BAA+B,EAAE;KACjD;IACD;QACI,EAAE,EAAE,gBAAgB;QACpB,KAAK,EAAE,GAAG;QACV,sBAAsB,EAAE,IAAI;QAC5B,OAAO,EAAE,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,eAAe,IAAI,GAAG,CAAC,YAAY,KAAK,SAAS;QACrE,KAAK,EAAE,GAAG,EAAE,CAAC,yBAAyB,EAAE;KAC3C;IACD;QACI,iEAAiE;QACjE,EAAE,EAAE,cAAc;QAClB,KAAK,EAAE,GAAG;QACV,sBAAsB,EAAE,IAAI;QAC5B,OAAO,EAAE,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,eAAe,IAAI,GAAG,CAAC,YAAY,KAAK,SAAS;QACrE,KAAK,EAAE,GAAG,EAAE,CAAC,0BAA0B,EAAE;KAC5C;IACD;QACI,wEAAwE;QACxE,EAAE,EAAE,iBAAiB;QACrB,KAAK,EAAE,GAAG;QACV,sBAAsB,EAAE,KAAK;QAC7B,OAAO,EAAE,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,eAAe;QACnC,KAAK,EAAE,GAAG,CAAC,EAAE,CAAC,0BAA0B,CAAC,GAAG,CAAC,2BAA2B,CAAC;KAC5E;IACD;QACI,2DAA2D;QAC3D,EAAE,EAAE,eAAe;QACnB,KAAK,EAAE,GAAG;QACV,sBAAsB,EAAE,KAAK;QAC7B,OAAO,EAAE,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,eAAe,IAAI,GAAG,CAAC,KAAK,CAAC,KAAK;QACtD,KAAK,EAAE,GAAG,EAAE,CAAC,wBAAwB,EAAE;KAC1C;IACD;QACI,qEAAqE;QACrE,EAAE,EAAE,sBAAsB;QAC1B,KAAK,EAAE,GAAG;QACV,sBAAsB,EAAE,KAAK;QAC7B,OAAO,EAAE,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,eAAe,IAAI,GAAG,CAAC,KAAK,CAAC,WAAW;QAC5D,KAAK,EAAE,GAAG,EAAE,CAAC,+BAA+B,EAAE;KACjD;IACD;QACI,gFAAgF;QAChF,+EAA+E;QAC/E,+EAA+E;QAC/E,EAAE,EAAE,iBAAiB;QACrB,KAAK,EAAE,GAAG;QACV,sBAAsB,EAAE,IAAI;QAC5B,OAAO,EAAE,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,eAAe,IAAI,GAAG,CAAC,KAAK,CAAC,MAAM;QACvD,KAAK,EAAE,GAAG,CAAC,EAAE,CAAC,0BAA0B,CAAC,GAAG,CAAC,MAAM,CAAC;KACvD;IACD;QACI,0EAA0E;QAC1E,6BAA6B;QAC7B,EAAE,EAAE,sBAAsB;QAC1B,KAAK,EAAE,GAAG;QACV,sBAAsB,EAAE,KAAK;QAC7B,OAAO,EAAE,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,eAAe,IAAI,GAAG,CAAC,KAAK,CAAC,YAAY;QAC7D,KAAK,EAAE,GAAG,EAAE,CAAC,8BAA8B,EAAE;KAChD;IACD;QACI,iDAAiD;QACjD,EAAE,EAAE,qBAAqB;QACzB,KAAK,EAAE,GAAG;QACV,sBAAsB,EAAE,IAAI;QAC5B,OAAO,EAAE,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,eAAe,IAAI,GAAG,CAAC,KAAK,CAAC,OAAO;QACxD,KAAK,EAAE,GAAG,EAAE,CAAC,8BAA8B,EAAE;KAChD;IACD;QACI,8EAA8E;QAC9E,EAAE,EAAE,oBAAoB;QACxB,KAAK,EAAE,GAAG;QACV,sBAAsB,EAAE,IAAI;QAC5B,OAAO,EAAE,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,eAAe,IAAI,GAAG,CAAC,KAAK,CAAC,MAAM;QACvD,KAAK,EAAE,GAAG,EAAE,CAAC,6BAA6B,EAAE;KAC/C;IACD;QACI,8EAA8E;QAC9E,sEAAsE;QACtE,EAAE,EAAE,oBAAoB;QACxB,KAAK,EAAE,GAAG;QACV,sBAAsB,EAAE,IAAI;QAC5B,OAAO,EAAE,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,eAAe,IAAI,GAAG,CAAC,YAAY,CAAC,KAAK;QAC7D,KAAK,EAAE,GAAG,EAAE,CAAC,qCAAqC,EAAE;KACvD;IACD;QACI,EAAE,EAAE,uBAAuB;QAC3B,KAAK,EAAE,GAAG;QACV,sBAAsB,EAAE,IAAI;QAC5B,OAAO,EAAE,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,eAAe,IAAI,GAAG,CAAC,YAAY,CAAC,QAAQ;QAChE,KAAK,EAAE,GAAG,EAAE,CAAC,gCAAgC,EAAE;KAClD;IACD;QACI,EAAE,EAAE,qBAAqB;QACzB,KAAK,EAAE,GAAG;QACV,sBAAsB,EAAE,IAAI;QAC5B,OAAO,EAAE,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,eAAe,IAAI,GAAG,CAAC,YAAY,CAAC,MAAM;QAC9D,KAAK,EAAE,GAAG,EAAE,CAAC,8BAA8B,EAAE;KAChD;IACD;QACI,sDAAsD;QACtD,2EAA2E;QAC3E,iEAAiE;QACjE,EAAE,EAAE,sBAAsB;QAC1B,KAAK,EAAE,GAAG;QACV,sBAAsB,EAAE,KAAK;QAC7B,OAAO,EAAE,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,QAAQ,KAAK,SAAS;QAC1C,KAAK,EAAE,GAAG,CAAC,EAAE,CAAC,+BAA+B,CAAC,GAAG,CAAC,QAAS,EAAE,GAAG,CAAC,cAAc,CAAC;KACnF;CACJ,CAAC;AAaF;;;GAGG;AACH,MAAM,wBAAwB,GAAwB,CAAC,GAAG,iBAAiB,CAAC;KACvE,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC;AAEvC;;;;;;;;GAQG;AACH,MAAM,iBAAiB,GAAG,IAAI,GAAG,EAAoB,CAAC;AAEtD,sFAAsF;AACtF,SAAS,eAAe,CAAC,QAAkB;IACvC,OAAO,QAAQ,CAAC,KAAK,CAAC,MAAM,KAAK,CAAC,CAAC;AACvC,CAAC;AAED,SAAS,SAAS,CAAC,KAAwB;IACvC,OAAO,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;AAClD,CAAC;AASD;;;;;;GAMG;AACH,MAAM,UAAU,uBAAuB,CACnC,GAAoB,EACpB,EAAE,aAAa,EAA+B;IAE9C,MAAM,MAAM,GAAwB,EAAE,CAAC;IACvC,KAAK,MAAM,QAAQ,IAAI,wBAAwB,EAAE,CAAC;QAC9C,IAAI,aAAa,IAAI,CAAC,QAAQ,CAAC,sBAAsB;YAAE,SAAS;QAChE,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC;YAAE,SAAS;QAErC,MAAM,QAAQ,GAAG,eAAe,CAAC,QAAQ,CAAC,CAAC;QAC3C,IAAI,OAAiB,CAAC;QACtB,IAAI,QAAQ,EAAE,CAAC;YACX,MAAM,MAAM,GAAG,iBAAiB,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;YAClD,IAAI,MAAM,EAAE,CAAC;gBACT,OAAO,GAAG,MAAM,CAAC;YACrB,CAAC;iBAAM,CAAC;gBACJ,OAAO,GAAG,SAAS,CAAC,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC;gBACzC,iBAAiB,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC;YAChD,CAAC;QACL,CAAC;aAAM,CAAC;YACJ,OAAO,GAAG,SAAS,CAAC,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC;QAC7C,CAAC;QACD,KAAK,MAAM,MAAM,IAAI,OAAO;YAAE,MAAM,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC,CAAC;IACpE,CAAC;IACD,OAAO,MAAM,CAAC;AAClB,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,oBAAoB,CAChC,GAAoB,EACpB,OAAoC;IAEpC,OAAO,uBAAuB,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC,MAAM,CAAC,CAAC;AAC7E,CAAC;AAED,gFAAgF;AAChF,MAAM,UAAU,kCAAkC;IAC9C,iBAAiB,CAAC,KAAK,EAAE,CAAC;AAC9B,CAAC"}
@@ -0,0 +1,16 @@
1
+ /**
2
+ * Screen + window (devicePixelRatio) property overrides generated from the
3
+ * fingerprint profile. Formerly part of the pre-registry
4
+ * custom-fingerprint-injector module; now an ordinary Override under the
5
+ * registry's ordering/gating/native-coverage contract.
6
+ */
7
+ import type { BrowserFingerprint } from './override.js';
8
+ /**
9
+ * Creates a script that overrides all screen properties
10
+ */
11
+ export declare function createScreenOverrideScript(fingerprint: BrowserFingerprint): string;
12
+ /**
13
+ * Creates a script that overrides window-level properties
14
+ */
15
+ export declare function createWindowOverrideScript(fingerprint: BrowserFingerprint): string;
16
+ //# sourceMappingURL=screen-override.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"screen-override.d.ts","sourceRoot":"","sources":["../../../src/fingerprinting/fingerprint-overrides/screen-override.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,eAAe,CAAC;AAExD;;GAEG;AACH,wBAAgB,0BAA0B,CAAC,WAAW,EAAE,kBAAkB,GAAG,MAAM,CA0FlF;AAED;;GAEG;AACH,wBAAgB,0BAA0B,CAAC,WAAW,EAAE,kBAAkB,GAAG,MAAM,CAwElF"}
@@ -0,0 +1,175 @@
1
+ /**
2
+ * Screen + window (devicePixelRatio) property overrides generated from the
3
+ * fingerprint profile. Formerly part of the pre-registry
4
+ * custom-fingerprint-injector module; now an ordinary Override under the
5
+ * registry's ordering/gating/native-coverage contract.
6
+ */
7
+ /**
8
+ * Creates a script that overrides all screen properties
9
+ */
10
+ export function createScreenOverrideScript(fingerprint) {
11
+ const scr = fingerprint.screen || {};
12
+ return `
13
+ (() => {
14
+ 'use strict';
15
+
16
+ const DEBUG_PREFIX = '[CDP-FP-DEBUG]';
17
+ const ERROR_PREFIX = '[CDP-FP-ERROR]';
18
+
19
+ console.log(DEBUG_PREFIX, 'Starting screen property overrides...');
20
+
21
+ // Get stealth utilities
22
+ const utils = (typeof __stealth !== 'undefined' && __stealth.utils) || {
23
+ overrideGetterWithNative: (obj, prop, getter) => {
24
+ try {
25
+ const existing = Object.getOwnPropertyDescriptor(obj, prop);
26
+ if (existing && existing.configurable === false) {
27
+ console.warn(DEBUG_PREFIX, \`Property screen.\${prop} is frozen, attempting fallback\`);
28
+ return false;
29
+ }
30
+ Object.defineProperty(obj, prop, {
31
+ get: getter,
32
+ configurable: true,
33
+ enumerable: true
34
+ });
35
+ return true;
36
+ } catch (e) {
37
+ console.error(ERROR_PREFIX, \`Failed to override screen.\${prop}:\`, e);
38
+ return false;
39
+ }
40
+ }
41
+ };
42
+
43
+ const overrideScreenProperty = (prop, value) => {
44
+ try {
45
+ const success = utils.overrideGetterWithNative(
46
+ screen,
47
+ prop,
48
+ () => value
49
+ );
50
+ if (success) {
51
+ console.log(DEBUG_PREFIX, \`✓ Overridden screen.\${prop} to:\`, value);
52
+ } else {
53
+ console.warn(DEBUG_PREFIX, \`⚠ Could not override screen.\${prop} (frozen property)\`);
54
+ }
55
+ return success;
56
+ } catch (error) {
57
+ console.error(ERROR_PREFIX, \`Exception overriding screen.\${prop}:\`, error);
58
+ throw error;
59
+ }
60
+ };
61
+
62
+ // Override screen properties
63
+ const overrides = {
64
+ ${scr.width ? `width: ${scr.width},` : ''}
65
+ ${scr.height ? `height: ${scr.height},` : ''}
66
+ ${scr.availWidth ? `availWidth: ${scr.availWidth},` : ''}
67
+ ${scr.availHeight ? `availHeight: ${scr.availHeight},` : ''}
68
+ ${scr.colorDepth ? `colorDepth: ${scr.colorDepth},` : ''}
69
+ ${scr.pixelDepth ? `pixelDepth: ${scr.pixelDepth},` : ''}
70
+ ${scr.availLeft !== undefined ? `availLeft: ${scr.availLeft},` : ''}
71
+ ${scr.availTop !== undefined ? `availTop: ${scr.availTop},` : ''}
72
+ };
73
+
74
+ let successCount = 0;
75
+ let failureCount = 0;
76
+
77
+ for (const [prop, value] of Object.entries(overrides)) {
78
+ if (overrideScreenProperty(prop, value)) {
79
+ successCount++;
80
+ } else {
81
+ failureCount++;
82
+ }
83
+ }
84
+
85
+ console.log(DEBUG_PREFIX, \`Screen overrides complete: \${successCount} succeeded, \${failureCount} failed\`);
86
+
87
+ // Verify overrides
88
+ console.log(DEBUG_PREFIX, 'Verifying screen overrides...');
89
+ for (const [prop, expectedValue] of Object.entries(overrides)) {
90
+ const actualValue = screen[prop];
91
+ if (actualValue === expectedValue) {
92
+ console.log(DEBUG_PREFIX, \`✓ Verified screen.\${prop}\`);
93
+ } else {
94
+ console.warn(DEBUG_PREFIX, \`⚠ Mismatch for screen.\${prop}: expected\`, expectedValue, 'got', actualValue);
95
+ }
96
+ }
97
+ })();
98
+ `;
99
+ }
100
+ /**
101
+ * Creates a script that overrides window-level properties
102
+ */
103
+ export function createWindowOverrideScript(fingerprint) {
104
+ const scr = fingerprint.screen || {};
105
+ return `
106
+ (() => {
107
+ 'use strict';
108
+
109
+ const DEBUG_PREFIX = '[CDP-FP-DEBUG]';
110
+ const ERROR_PREFIX = '[CDP-FP-ERROR]';
111
+
112
+ console.log(DEBUG_PREFIX, 'Starting window property overrides...');
113
+
114
+ // Get stealth utilities
115
+ const utils = (typeof __stealth !== 'undefined' && __stealth.utils) || {
116
+ overrideGetterWithNative: (obj, prop, getter) => {
117
+ try {
118
+ const existing = Object.getOwnPropertyDescriptor(obj, prop);
119
+ if (existing && existing.configurable === false) {
120
+ console.warn(DEBUG_PREFIX, \`Property window.\${prop} is frozen, attempting fallback\`);
121
+ return false;
122
+ }
123
+ Object.defineProperty(obj, prop, {
124
+ get: getter,
125
+ configurable: true,
126
+ enumerable: true
127
+ });
128
+ return true;
129
+ } catch (e) {
130
+ console.error(ERROR_PREFIX, \`Failed to override window.\${prop}:\`, e);
131
+ return false;
132
+ }
133
+ }
134
+ };
135
+
136
+ const overrideWindowProperty = (prop, value) => {
137
+ try {
138
+ const success = utils.overrideGetterWithNative(
139
+ window,
140
+ prop,
141
+ () => value
142
+ );
143
+ if (success) {
144
+ console.log(DEBUG_PREFIX, \`✓ Overridden window.\${prop} to:\`, value);
145
+ } else {
146
+ console.warn(DEBUG_PREFIX, \`⚠ Could not override window.\${prop} (frozen property)\`);
147
+ }
148
+ return success;
149
+ } catch (error) {
150
+ console.error(ERROR_PREFIX, \`Exception overriding window.\${prop}:\`, error);
151
+ throw error;
152
+ }
153
+ };
154
+
155
+ // Override window properties
156
+ const overrides = {
157
+ ${scr.devicePixelRatio ? `devicePixelRatio: ${scr.devicePixelRatio},` : ''}
158
+ };
159
+
160
+ let successCount = 0;
161
+ let failureCount = 0;
162
+
163
+ for (const [prop, value] of Object.entries(overrides)) {
164
+ if (overrideWindowProperty(prop, value)) {
165
+ successCount++;
166
+ } else {
167
+ failureCount++;
168
+ }
169
+ }
170
+
171
+ console.log(DEBUG_PREFIX, \`Window overrides complete: \${successCount} succeeded, \${failureCount} failed\`);
172
+ })();
173
+ `;
174
+ }
175
+ //# sourceMappingURL=screen-override.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"screen-override.js","sourceRoot":"","sources":["../../../src/fingerprinting/fingerprint-overrides/screen-override.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAIH;;GAEG;AACH,MAAM,UAAU,0BAA0B,CAAC,WAA+B;IACtE,MAAM,GAAG,GAAG,WAAW,CAAC,MAAM,IAAI,EAAE,CAAC;IAErC,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;UAoDD,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,UAAU,GAAG,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,EAAE;UACvC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,WAAW,GAAG,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,EAAE;UAC1C,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC,eAAe,GAAG,CAAC,UAAU,GAAG,CAAC,CAAC,CAAC,EAAE;UACtD,GAAG,CAAC,WAAW,CAAC,CAAC,CAAC,gBAAgB,GAAG,CAAC,WAAW,GAAG,CAAC,CAAC,CAAC,EAAE;UACzD,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC,eAAe,GAAG,CAAC,UAAU,GAAG,CAAC,CAAC,CAAC,EAAE;UACtD,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC,eAAe,GAAG,CAAC,UAAU,GAAG,CAAC,CAAC,CAAC,EAAE;UACtD,GAAG,CAAC,SAAS,KAAK,SAAS,CAAC,CAAC,CAAC,cAAc,GAAG,CAAC,SAAS,GAAG,CAAC,CAAC,CAAC,EAAE;UACjE,GAAG,CAAC,QAAQ,KAAK,SAAS,CAAC,CAAC,CAAC,aAAa,GAAG,CAAC,QAAQ,GAAG,CAAC,CAAC,CAAC,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;CA2BvE,CAAC;AACF,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,0BAA0B,CAAC,WAA+B;IACtE,MAAM,GAAG,GAAG,WAAW,CAAC,MAAM,IAAI,EAAE,CAAC;IAErC,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;UAoDD,GAAG,CAAC,gBAAgB,CAAC,CAAC,CAAC,qBAAqB,GAAG,CAAC,gBAAgB,GAAG,CAAC,CAAC,CAAC,EAAE;;;;;;;;;;;;;;;;CAgBjF,CAAC;AACF,CAAC"}
@@ -51,7 +51,7 @@ export declare const humanScrollToElement: (client: unknown, selector: string, c
51
51
  * Setup scroll humanization at CDP level.
52
52
  *
53
53
  * Pass `useNativeStealth: true` when running on the patched anti-detect Cromite
54
- * build — the JS `WheelEvent` constructor override and pass-through `scrollTo`
54
+ * build - the JS `WheelEvent` constructor override and pass-through `scrollTo`
55
55
  * shims add no value on top of the native browser behaviour and only introduce
56
56
  * detectable prototype tampering. In that mode this function no-ops.
57
57
  */
@@ -168,7 +168,7 @@ export const createScrollHumanizationScript = () => {
168
168
  /**
169
169
  * Helper sleep function
170
170
  */
171
- const sleep = (ms) => new Promise(resolve => setTimeout(resolve, ms));
171
+ const sleep = async (ms) => new Promise(resolve => setTimeout(resolve, ms));
172
172
  /**
173
173
  * CDP-level human-like scroll function
174
174
  */
@@ -198,7 +198,7 @@ export const humanScroll = async (client, targetY, config = {}) => {
198
198
  x: mouseX,
199
199
  y: mouseY,
200
200
  deltaX: 0,
201
- deltaY: deltaY,
201
+ deltaY,
202
202
  });
203
203
  }
204
204
  lastY = point.y;
@@ -234,7 +234,7 @@ export const humanScrollToElement = async (client, selector, config = {}) => {
234
234
  * Setup scroll humanization at CDP level.
235
235
  *
236
236
  * Pass `useNativeStealth: true` when running on the patched anti-detect Cromite
237
- * build — the JS `WheelEvent` constructor override and pass-through `scrollTo`
237
+ * build - the JS `WheelEvent` constructor override and pass-through `scrollTo`
238
238
  * shims add no value on top of the native browser behaviour and only introduce
239
239
  * detectable prototype tampering. In that mode this function no-ops.
240
240
  */
@@ -246,7 +246,7 @@ export const setupScrollHumanization = async (client, options) => {
246
246
  // NOTE: Using addScriptToEvaluateOnNewDocument instead of Runtime.evaluate
247
247
  // Runtime.evaluate is a CDP detection vector
248
248
  await runtimeClient.Page.addScriptToEvaluateOnNewDocument({
249
- source: createScrollHumanizationScript()
249
+ source: createScrollHumanizationScript(),
250
250
  });
251
251
  };
252
252
  //# sourceMappingURL=scroll-humanization.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"scroll-humanization.js","sourceRoot":"","sources":["../../../src/fingerprinting/fingerprint-overrides/scroll-humanization.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"scroll-humanization.js","sourceRoot":"","sources":["../../../src/fingerprinting/fingerprint-overrides/scroll-humanization.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"stealth-script.d.ts","sourceRoot":"","sources":["../../../src/fingerprinting/fingerprint-overrides/stealth-script.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,eAAO,MAAM,mBAAmB,QAAO,MA6kCtC,CAAC"}
1
+ {"version":3,"file":"stealth-script.d.ts","sourceRoot":"","sources":["../../../src/fingerprinting/fingerprint-overrides/stealth-script.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,eAAO,MAAM,mBAAmB,QAAO,MA+oCtC,CAAC"}