jumpy-lion 0.0.40 → 0.0.42

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 (119) hide show
  1. package/dist/browser-controller.d.ts.map +1 -1
  2. package/dist/browser-controller.js +102 -16
  3. package/dist/browser-controller.js.map +1 -1
  4. package/dist/browser-plugin.d.ts +26 -1
  5. package/dist/browser-plugin.d.ts.map +1 -1
  6. package/dist/browser-plugin.js +25 -2
  7. package/dist/browser-plugin.js.map +1 -1
  8. package/dist/browser-process/browser.d.ts +24 -1
  9. package/dist/browser-process/browser.d.ts.map +1 -1
  10. package/dist/browser-process/browser.js +79 -6
  11. package/dist/browser-process/browser.js.map +1 -1
  12. package/dist/browser-profiles/chrome/default.d.ts +116 -0
  13. package/dist/browser-profiles/chrome/default.d.ts.map +1 -1
  14. package/dist/browser-profiles/chrome/default.js +118 -1
  15. package/dist/browser-profiles/chrome/default.js.map +1 -1
  16. package/dist/browser-profiles/chrome/populate-profile.d.ts +76 -0
  17. package/dist/browser-profiles/chrome/populate-profile.d.ts.map +1 -0
  18. package/dist/browser-profiles/chrome/populate-profile.js +300 -0
  19. package/dist/browser-profiles/chrome/populate-profile.js.map +1 -0
  20. package/dist/browser-profiles/index.d.ts +1 -0
  21. package/dist/browser-profiles/index.d.ts.map +1 -1
  22. package/dist/browser-profiles/index.js +2 -0
  23. package/dist/browser-profiles/index.js.map +1 -1
  24. package/dist/crawler.d.ts +34 -1
  25. package/dist/crawler.d.ts.map +1 -1
  26. package/dist/crawler.js +7 -0
  27. package/dist/crawler.js.map +1 -1
  28. package/dist/fingerprinting/custom-fingerprint-injector.d.ts +87 -0
  29. package/dist/fingerprinting/custom-fingerprint-injector.d.ts.map +1 -0
  30. package/dist/fingerprinting/custom-fingerprint-injector.js +342 -0
  31. package/dist/fingerprinting/custom-fingerprint-injector.js.map +1 -0
  32. package/dist/fingerprinting/fingerprint-injector.d.ts +40 -2
  33. package/dist/fingerprinting/fingerprint-injector.d.ts.map +1 -1
  34. package/dist/fingerprinting/fingerprint-injector.js +449 -44
  35. package/dist/fingerprinting/fingerprint-injector.js.map +1 -1
  36. package/dist/fingerprinting/fingerprint-overrides/audio-spoofing.d.ts.map +1 -1
  37. package/dist/fingerprinting/fingerprint-overrides/audio-spoofing.js +11 -1
  38. package/dist/fingerprinting/fingerprint-overrides/audio-spoofing.js.map +1 -1
  39. package/dist/fingerprinting/fingerprint-overrides/canvas-protection.d.ts.map +1 -1
  40. package/dist/fingerprinting/fingerprint-overrides/canvas-protection.js +11 -1
  41. package/dist/fingerprinting/fingerprint-overrides/canvas-protection.js.map +1 -1
  42. package/dist/fingerprinting/fingerprint-overrides/cdp-detection-bypass.d.ts +14 -0
  43. package/dist/fingerprinting/fingerprint-overrides/cdp-detection-bypass.d.ts.map +1 -0
  44. package/dist/fingerprinting/fingerprint-overrides/cdp-detection-bypass.js +497 -0
  45. package/dist/fingerprinting/fingerprint-overrides/cdp-detection-bypass.js.map +1 -0
  46. package/dist/fingerprinting/fingerprint-overrides/client-rect-spoofing.d.ts.map +1 -1
  47. package/dist/fingerprinting/fingerprint-overrides/client-rect-spoofing.js +11 -1
  48. package/dist/fingerprinting/fingerprint-overrides/client-rect-spoofing.js.map +1 -1
  49. package/dist/fingerprinting/fingerprint-overrides/datadome-bypass.d.ts +14 -0
  50. package/dist/fingerprinting/fingerprint-overrides/datadome-bypass.d.ts.map +1 -0
  51. package/dist/fingerprinting/fingerprint-overrides/datadome-bypass.js +536 -0
  52. package/dist/fingerprinting/fingerprint-overrides/datadome-bypass.js.map +1 -0
  53. package/dist/fingerprinting/fingerprint-overrides/font-spoofing.d.ts.map +1 -1
  54. package/dist/fingerprinting/fingerprint-overrides/font-spoofing.js +11 -1
  55. package/dist/fingerprinting/fingerprint-overrides/font-spoofing.js.map +1 -1
  56. package/dist/fingerprinting/fingerprint-overrides/index.d.ts +16 -1
  57. package/dist/fingerprinting/fingerprint-overrides/index.d.ts.map +1 -1
  58. package/dist/fingerprinting/fingerprint-overrides/index.js +19 -1
  59. package/dist/fingerprinting/fingerprint-overrides/index.js.map +1 -1
  60. package/dist/fingerprinting/fingerprint-overrides/keyboard-humanization.d.ts +45 -0
  61. package/dist/fingerprinting/fingerprint-overrides/keyboard-humanization.d.ts.map +1 -0
  62. package/dist/fingerprinting/fingerprint-overrides/keyboard-humanization.js +291 -0
  63. package/dist/fingerprinting/fingerprint-overrides/keyboard-humanization.js.map +1 -0
  64. package/dist/fingerprinting/fingerprint-overrides/locale-spoofing.d.ts.map +1 -1
  65. package/dist/fingerprinting/fingerprint-overrides/locale-spoofing.js +54 -22
  66. package/dist/fingerprinting/fingerprint-overrides/locale-spoofing.js.map +1 -1
  67. package/dist/fingerprinting/fingerprint-overrides/mouse-humanization.d.ts.map +1 -1
  68. package/dist/fingerprinting/fingerprint-overrides/mouse-humanization.js +4 -5
  69. package/dist/fingerprinting/fingerprint-overrides/mouse-humanization.js.map +1 -1
  70. package/dist/fingerprinting/fingerprint-overrides/performance-spoofing.d.ts.map +1 -1
  71. package/dist/fingerprinting/fingerprint-overrides/performance-spoofing.js +11 -1
  72. package/dist/fingerprinting/fingerprint-overrides/performance-spoofing.js.map +1 -1
  73. package/dist/fingerprinting/fingerprint-overrides/platform-consistency.d.ts +13 -0
  74. package/dist/fingerprinting/fingerprint-overrides/platform-consistency.d.ts.map +1 -1
  75. package/dist/fingerprinting/fingerprint-overrides/platform-consistency.js +413 -70
  76. package/dist/fingerprinting/fingerprint-overrides/platform-consistency.js.map +1 -1
  77. package/dist/fingerprinting/fingerprint-overrides/runtime-enable-bypass.d.ts +10 -3
  78. package/dist/fingerprinting/fingerprint-overrides/runtime-enable-bypass.d.ts.map +1 -1
  79. package/dist/fingerprinting/fingerprint-overrides/runtime-enable-bypass.js +132 -73
  80. package/dist/fingerprinting/fingerprint-overrides/runtime-enable-bypass.js.map +1 -1
  81. package/dist/fingerprinting/fingerprint-overrides/scroll-humanization.d.ts +55 -0
  82. package/dist/fingerprinting/fingerprint-overrides/scroll-humanization.d.ts.map +1 -0
  83. package/dist/fingerprinting/fingerprint-overrides/scroll-humanization.js +380 -0
  84. package/dist/fingerprinting/fingerprint-overrides/scroll-humanization.js.map +1 -0
  85. package/dist/fingerprinting/fingerprint-overrides/stealth-script.d.ts +8 -0
  86. package/dist/fingerprinting/fingerprint-overrides/stealth-script.d.ts.map +1 -1
  87. package/dist/fingerprinting/fingerprint-overrides/stealth-script.js +417 -71
  88. package/dist/fingerprinting/fingerprint-overrides/stealth-script.js.map +1 -1
  89. package/dist/fingerprinting/fingerprint-overrides/storage-consistency.d.ts +13 -0
  90. package/dist/fingerprinting/fingerprint-overrides/storage-consistency.d.ts.map +1 -0
  91. package/dist/fingerprinting/fingerprint-overrides/storage-consistency.js +368 -0
  92. package/dist/fingerprinting/fingerprint-overrides/storage-consistency.js.map +1 -0
  93. package/dist/fingerprinting/fingerprint-overrides/timing-consistency.d.ts +13 -0
  94. package/dist/fingerprinting/fingerprint-overrides/timing-consistency.d.ts.map +1 -0
  95. package/dist/fingerprinting/fingerprint-overrides/timing-consistency.js +438 -0
  96. package/dist/fingerprinting/fingerprint-overrides/timing-consistency.js.map +1 -0
  97. package/dist/fingerprinting/fingerprint-overrides/utils.d.ts +12 -0
  98. package/dist/fingerprinting/fingerprint-overrides/utils.d.ts.map +1 -0
  99. package/dist/fingerprinting/fingerprint-overrides/utils.js +315 -0
  100. package/dist/fingerprinting/fingerprint-overrides/utils.js.map +1 -0
  101. package/dist/fingerprinting/fingerprint-overrides/webgl-spoofing.d.ts.map +1 -1
  102. package/dist/fingerprinting/fingerprint-overrides/webgl-spoofing.js +13 -1
  103. package/dist/fingerprinting/fingerprint-overrides/webgl-spoofing.js.map +1 -1
  104. package/dist/fingerprinting/fingerprint-overrides/webgpu-spoofing.d.ts.map +1 -1
  105. package/dist/fingerprinting/fingerprint-overrides/webgpu-spoofing.js +11 -1
  106. package/dist/fingerprinting/fingerprint-overrides/webgpu-spoofing.js.map +1 -1
  107. package/dist/fingerprinting/fingerprint-overrides/webrtc-spoofing.d.ts.map +1 -1
  108. package/dist/fingerprinting/fingerprint-overrides/webrtc-spoofing.js +11 -1
  109. package/dist/fingerprinting/fingerprint-overrides/webrtc-spoofing.js.map +1 -1
  110. package/dist/page.d.ts +12 -0
  111. package/dist/page.d.ts.map +1 -1
  112. package/dist/page.js +35 -3
  113. package/dist/page.js.map +1 -1
  114. package/dist/tsconfig.build.tsbuildinfo +1 -1
  115. package/package.json +4 -4
  116. package/dist/fingerprinting/canvas-fingerprint.d.ts +0 -4
  117. package/dist/fingerprinting/canvas-fingerprint.d.ts.map +0 -1
  118. package/dist/fingerprinting/canvas-fingerprint.js +0 -60
  119. package/dist/fingerprinting/canvas-fingerprint.js.map +0 -1
@@ -61,46 +61,57 @@
61
61
  * ```
62
62
  */
63
63
  import { log } from 'crawlee';
64
- import { FingerprintInjector } from 'fingerprint-injector';
65
64
  import { gotScraping } from 'got-scraping';
66
- import { createStealthScript, createWebGLSpoofingScript, createAudioFingerprintSpoofingScript, createAdvancedCanvasProtectionScript, createClientRectSpoofingScript, createWebRTCSpoofingScript, createWebGPUSpoofingScript, createPlatformConsistencyScript, setupMouseMovementHumanization, setupRuntimeEnableBypass, createFontSpoofingScript, createPerformanceSpoofingScript, createLocaleSpoofingScript, createUAClientHintsSpoofingScript, } from './fingerprint-overrides/index.js';
65
+ import { createCustomFingerprintInjection } from './custom-fingerprint-injector.js';
66
+ import { createStealthScript, createWebGLSpoofingScript, createAudioFingerprintSpoofingScript, createAdvancedCanvasProtectionScript, createClientRectSpoofingScript, createWebRTCSpoofingScript, createWebGPUSpoofingScript, createPlatformConsistencyScript, setupMouseMovementHumanization, createRuntimeEnableBypassScript, createFontSpoofingScript, createPerformanceSpoofingScript, createLocaleSpoofingScript, createUAClientHintsSpoofingScript,
67
+ // Stealth utilities (must be injected first)
68
+ createStealthUtilsScript,
69
+ // 2024-2025 New modules
70
+ createCDPDetectionBypassScript, createStorageConsistencyScript, createTimingConsistencyScript, createKeyboardHumanizationScript, createScrollHumanizationScript, createDataDomeBypassScript, setupKeyboardHumanization, setupScrollHumanization, } from './fingerprint-overrides/index.js';
67
71
  export class CdpFingerprintInjector {
68
72
  constructor(page) {
69
- Object.defineProperty(this, "injector", {
70
- enumerable: true,
71
- configurable: true,
72
- writable: true,
73
- value: void 0
74
- });
75
73
  Object.defineProperty(this, "page", {
76
74
  enumerable: true,
77
75
  configurable: true,
78
76
  writable: true,
79
77
  value: void 0
80
78
  });
81
- this.injector = new FingerprintInjector();
82
79
  this.page = page;
83
80
  }
84
81
  /**
85
82
  * Get recommended settings for Apify platform
86
83
  * These settings are optimized for running headful Chrome on Apify (Linux)
87
- * but spoofed to appear as Windows for better anti-bot evasion
84
+ * but spoofed to appear as Windows for better anti-bot evasion.
85
+ *
86
+ * Note: Humanization is disabled by default for performance.
87
+ * Use getDataDomeSettings() or enable humanization manually for anti-bot sites.
88
88
  */
89
89
  static getApifyRecommendedSettings() {
90
90
  return {
91
+ debug: true, // Enable debug logging by default
91
92
  enableAdvancedStealth: true,
92
93
  bypassRuntimeEnable: true,
93
94
  platform: 'Win32', // Spoof as Windows instead of Linux for better evasion
94
95
  spoofWebGL: true,
95
96
  spoofAudioContext: true,
96
97
  spoofClientRects: true,
97
- humanizeInteractions: true,
98
98
  detectTimezone: true, // Auto-detect timezone from proxy
99
99
  // New advanced spoofing options for 2025
100
100
  spoofFonts: true,
101
101
  spoofPerformance: true,
102
102
  spoofLocale: true,
103
103
  useFingerprintDefaults: true, // Use fingerprint-generator Windows values
104
+ // 2024-2025 DataDome bypass options
105
+ bypassCDPDetection: true,
106
+ spoofStorage: true,
107
+ spoofTiming: true,
108
+ enableDataDomeBypass: false, // Enable only when needed
109
+ // Humanization disabled by default for performance
110
+ humanization: {
111
+ mouse: false,
112
+ keyboard: false,
113
+ scroll: false,
114
+ },
104
115
  viewport: {
105
116
  width: 1920,
106
117
  height: 1080,
@@ -109,20 +120,85 @@ export class CdpFingerprintInjector {
109
120
  },
110
121
  };
111
122
  }
123
+ /**
124
+ * Get settings specifically optimized for DataDome-protected sites.
125
+ * Enables all humanization features for maximum anti-bot evasion.
126
+ */
127
+ static getDataDomeSettings() {
128
+ return {
129
+ ...this.getApifyRecommendedSettings(),
130
+ debug: true, // Enable debug logging by default
131
+ // DataDome-specific optimizations
132
+ enableDataDomeBypass: true,
133
+ bypassCDPDetection: true,
134
+ spoofStorage: true,
135
+ spoofTiming: true,
136
+ // Enable all humanization for DataDome bypass
137
+ humanization: {
138
+ mouse: true,
139
+ keyboard: true,
140
+ scroll: true,
141
+ },
142
+ // Ensure all fingerprint attributes are consistent
143
+ spoofWebGL: true,
144
+ spoofAudioContext: true,
145
+ spoofClientRects: true,
146
+ spoofFonts: true,
147
+ spoofPerformance: true,
148
+ spoofLocale: true,
149
+ };
150
+ }
112
151
  static async injectFingerprint(page, fingerprint, options) {
113
152
  const handler = new CdpFingerprintInjector(page);
114
153
  return handler.attachToPage(fingerprint, options);
115
154
  }
116
- async setViewport(viewport) {
117
- const defaultViewport = {
155
+ async setViewport(viewport, fingerprint) {
156
+ // IMPORTANT: In headful mode, don't override viewport - it creates weird compressed layouts
157
+ // The browser window already has natural dimensions from the OS
158
+ // Only override viewport in headless mode where window size needs to be set
159
+ // Check if we're in headless mode
160
+ // In headful mode, we skip viewport override to avoid layout issues
161
+ const isHeadless = process.env.APIFY_HEADLESS === '1' ||
162
+ process.env.CRAWLEE_HEADLESS === '1' ||
163
+ process.env.HEADLESS === 'true';
164
+ if (!isHeadless) {
165
+ log.info('⚠️ Headful mode detected - SKIPPING viewport override to preserve natural window behavior');
166
+ log.info('✅ Browser will use OS window dimensions - scrolling will work naturally');
167
+ return; // Skip viewport override in headful mode
168
+ }
169
+ // Only apply viewport override in headless mode
170
+ log.info('Headless mode detected - applying viewport override');
171
+ let defaultViewport = {
118
172
  width: 1920,
119
173
  height: 1080,
120
174
  deviceScaleFactor: 1,
121
175
  mobile: false,
122
176
  };
177
+ // Extract from fingerprint if available
178
+ if (fingerprint?.screen) {
179
+ // IMPORTANT: Set viewport height SMALLER than screen height to allow scrolling
180
+ // Reserve 150px for browser chrome, URL bar, and overflow space
181
+ const screenHeight = fingerprint.screen.height || 1080;
182
+ const viewportHeight = screenHeight - 150;
183
+ defaultViewport = {
184
+ width: fingerprint.screen.width || 1920,
185
+ height: viewportHeight,
186
+ deviceScaleFactor: fingerprint.screen.devicePixelRatio || 1,
187
+ mobile: false,
188
+ };
189
+ log.info('Viewport configured for scrolling', {
190
+ screenHeight,
191
+ viewportHeight,
192
+ reservedSpace: 150,
193
+ width: defaultViewport.width,
194
+ deviceScaleFactor: defaultViewport.deviceScaleFactor,
195
+ });
196
+ }
123
197
  const finalViewport = Object.assign(defaultViewport, viewport);
124
- // CDP call to override device metrics
198
+ log.info('Final viewport settings (headless mode)', finalViewport);
199
+ // CDP call to override device metrics (headless mode only)
125
200
  await this.page.client.Emulation.setDeviceMetricsOverride(finalViewport);
201
+ log.info('setDeviceMetricsOverride completed (headless mode)');
126
202
  }
127
203
  async setExtraHTTPHeaders(headers) {
128
204
  await this.page.client.Network.setExtraHTTPHeaders({ headers });
@@ -150,18 +226,140 @@ export class CdpFingerprintInjector {
150
226
  const stealthScript = createStealthScript();
151
227
  await this.page.client.Page.addScriptToEvaluateOnNewDocument({ source: stealthScript });
152
228
  }
229
+ /**
230
+ * Create a debug script that logs fingerprint override status to the console
231
+ */
232
+ createDebugScript(options) {
233
+ return `
234
+ (() => {
235
+ // CDP Fingerprint Override Debug Logs
236
+ const DEBUG_PREFIX = '[CDP-FP-DEBUG]';
237
+
238
+ console.log(DEBUG_PREFIX, '=== Fingerprint Override Status ===');
239
+ console.log(DEBUG_PREFIX, 'Timestamp:', new Date().toISOString());
240
+
241
+ // Check navigator properties
242
+ console.log(DEBUG_PREFIX, 'Navigator Checks:');
243
+ console.log(DEBUG_PREFIX, ' - platform:', navigator.platform);
244
+ console.log(DEBUG_PREFIX, ' - userAgent:', navigator.userAgent.substring(0, 80) + '...');
245
+ console.log(DEBUG_PREFIX, ' - webdriver:', navigator.webdriver);
246
+ console.log(DEBUG_PREFIX, ' - hardwareConcurrency:', navigator.hardwareConcurrency);
247
+ console.log(DEBUG_PREFIX, ' - deviceMemory:', navigator.deviceMemory);
248
+ console.log(DEBUG_PREFIX, ' - language:', navigator.language);
249
+ console.log(DEBUG_PREFIX, ' - languages:', navigator.languages);
250
+ console.log(DEBUG_PREFIX, ' - maxTouchPoints:', navigator.maxTouchPoints);
251
+ console.log(DEBUG_PREFIX, ' - pdfViewerEnabled:', navigator.pdfViewerEnabled);
252
+ console.log(DEBUG_PREFIX, ' - plugins.length:', navigator.plugins?.length);
253
+
254
+ // Check screen properties
255
+ console.log(DEBUG_PREFIX, 'Screen Checks:');
256
+ console.log(DEBUG_PREFIX, ' - colorDepth:', screen.colorDepth);
257
+ console.log(DEBUG_PREFIX, ' - pixelDepth:', screen.pixelDepth);
258
+ console.log(DEBUG_PREFIX, ' - availWidth:', screen.availWidth);
259
+ console.log(DEBUG_PREFIX, ' - availHeight:', screen.availHeight);
260
+ console.log(DEBUG_PREFIX, ' - devicePixelRatio:', window.devicePixelRatio);
261
+
262
+ // Check window properties
263
+ console.log(DEBUG_PREFIX, 'Window Checks:');
264
+ console.log(DEBUG_PREFIX, ' - outerWidth:', window.outerWidth);
265
+ console.log(DEBUG_PREFIX, ' - outerHeight:', window.outerHeight);
266
+ console.log(DEBUG_PREFIX, ' - screenX:', window.screenX);
267
+ console.log(DEBUG_PREFIX, ' - screenY:', window.screenY);
268
+
269
+ // Check chrome object
270
+ console.log(DEBUG_PREFIX, 'Chrome Object:');
271
+ console.log(DEBUG_PREFIX, ' - chrome exists:', typeof window.chrome !== 'undefined');
272
+ console.log(DEBUG_PREFIX, ' - chrome.runtime exists:', typeof window.chrome?.runtime !== 'undefined');
273
+
274
+ // Check WebGL
275
+ try {
276
+ const canvas = document.createElement('canvas');
277
+ const gl = canvas.getContext('webgl') || canvas.getContext('experimental-webgl');
278
+ if (gl) {
279
+ const debugInfo = gl.getExtension('WEBGL_debug_renderer_info');
280
+ if (debugInfo) {
281
+ console.log(DEBUG_PREFIX, 'WebGL Checks:');
282
+ console.log(DEBUG_PREFIX, ' - vendor:', gl.getParameter(debugInfo.UNMASKED_VENDOR_WEBGL));
283
+ console.log(DEBUG_PREFIX, ' - renderer:', gl.getParameter(debugInfo.UNMASKED_RENDERER_WEBGL));
284
+ } else {
285
+ console.log(DEBUG_PREFIX, 'WebGL debug extension not available');
286
+ }
287
+ } else {
288
+ console.log(DEBUG_PREFIX, 'WebGL context not available');
289
+ }
290
+ } catch (e) {
291
+ console.log(DEBUG_PREFIX, 'WebGL check failed:', e.message);
292
+ }
293
+
294
+ // Check automation markers
295
+ console.log(DEBUG_PREFIX, 'Automation Marker Checks:');
296
+ console.log(DEBUG_PREFIX, ' - $cdc_ properties:', Object.keys(window).filter(k => k.startsWith('$cdc_') || k.startsWith('cdc_')).length === 0 ? 'CLEAN' : 'DETECTED');
297
+ console.log(DEBUG_PREFIX, ' - webdriver properties:', Object.keys(window).filter(k => k.toLowerCase().includes('webdriver')).length === 0 ? 'CLEAN' : 'DETECTED');
298
+
299
+ // Check permissions API
300
+ if (navigator.permissions) {
301
+ navigator.permissions.query({ name: 'notifications' }).then(result => {
302
+ console.log(DEBUG_PREFIX, 'Permissions:');
303
+ console.log(DEBUG_PREFIX, ' - notifications:', result.state);
304
+ }).catch(e => {
305
+ console.log(DEBUG_PREFIX, 'Permissions check failed:', e.message);
306
+ });
307
+ }
308
+
309
+ // Check storage estimate
310
+ if (navigator.storage && navigator.storage.estimate) {
311
+ navigator.storage.estimate().then(estimate => {
312
+ console.log(DEBUG_PREFIX, 'Storage:');
313
+ console.log(DEBUG_PREFIX, ' - quota:', Math.round(estimate.quota / 1024 / 1024 / 1024) + ' GB');
314
+ console.log(DEBUG_PREFIX, ' - usage:', Math.round(estimate.usage / 1024) + ' KB');
315
+ }).catch(e => {
316
+ console.log(DEBUG_PREFIX, 'Storage check failed:', e.message);
317
+ });
318
+ }
319
+
320
+ // Log applied options
321
+ console.log(DEBUG_PREFIX, 'Applied Options:');
322
+ console.log(DEBUG_PREFIX, ' - platform:', '${options.platform || "auto"}');
323
+ console.log(DEBUG_PREFIX, ' - enableAdvancedStealth:', ${options.enableAdvancedStealth !== false});
324
+ console.log(DEBUG_PREFIX, ' - bypassCDPDetection:', ${options.bypassCDPDetection !== false});
325
+ console.log(DEBUG_PREFIX, ' - spoofStorage:', ${options.spoofStorage !== false});
326
+ console.log(DEBUG_PREFIX, ' - spoofTiming:', ${options.spoofTiming !== false});
327
+ console.log(DEBUG_PREFIX, ' - enableDataDomeBypass:', ${options.enableDataDomeBypass || false});
328
+ console.log(DEBUG_PREFIX, ' - humanization.mouse:', ${options.humanization?.mouse || false});
329
+ console.log(DEBUG_PREFIX, ' - humanization.keyboard:', ${options.humanization?.keyboard || false});
330
+ console.log(DEBUG_PREFIX, ' - humanization.scroll:', ${options.humanization?.scroll || false});
331
+
332
+ console.log(DEBUG_PREFIX, '=== End Fingerprint Override Status ===');
333
+
334
+ // Store debug info globally for later inspection
335
+ window.__CDP_FINGERPRINT_DEBUG__ = {
336
+ timestamp: new Date().toISOString(),
337
+ platform: navigator.platform,
338
+ webdriver: navigator.webdriver,
339
+ deviceMemory: navigator.deviceMemory,
340
+ hardwareConcurrency: navigator.hardwareConcurrency,
341
+ appliedOptions: {
342
+ platform: '${options.platform || "auto"}',
343
+ enableAdvancedStealth: ${options.enableAdvancedStealth !== false},
344
+ bypassCDPDetection: ${options.bypassCDPDetection !== false},
345
+ enableDataDomeBypass: ${options.enableDataDomeBypass || false},
346
+ }
347
+ };
348
+ })();
349
+ `;
350
+ }
153
351
  /**
154
352
  * Extract relevant data from fingerprint for overrides
155
353
  */
156
354
  extractFingerprintData(fingerprint) {
157
355
  const webglConfig = {};
158
356
  const platformConfig = {};
159
- // Extract WebGL data if available
160
- if (fingerprint.webgl) {
161
- webglConfig.vendor = fingerprint.webgl.vendor;
162
- webglConfig.renderer = fingerprint.webgl.renderer;
163
- webglConfig.vendorUnmasked = fingerprint.webgl.vendorUnmasked;
164
- webglConfig.rendererUnmasked = fingerprint.webgl.rendererUnmasked;
357
+ // Extract WebGL data from videoCard if available
358
+ if (fingerprint.videoCard) {
359
+ webglConfig.vendor = fingerprint.videoCard.vendor;
360
+ webglConfig.renderer = fingerprint.videoCard.renderer;
361
+ webglConfig.vendorUnmasked = fingerprint.videoCard.vendor;
362
+ webglConfig.rendererUnmasked = fingerprint.videoCard.renderer;
165
363
  }
166
364
  // Extract platform data if available
167
365
  if (fingerprint.navigator) {
@@ -174,6 +372,12 @@ export class CdpFingerprintInjector {
174
372
  platformConfig.language = fingerprint.navigator.language;
175
373
  platformConfig.languages = fingerprint.navigator.languages;
176
374
  platformConfig.oscpu = fingerprint.navigator.oscpu;
375
+ // Extract userAgent and related properties from generated fingerprint
376
+ platformConfig.userAgent = fingerprint.navigator.userAgent;
377
+ platformConfig.appVersion = fingerprint.navigator.appVersion;
378
+ platformConfig.appName = fingerprint.navigator.appName;
379
+ platformConfig.appCodeName = fingerprint.navigator.appCodeName;
380
+ platformConfig.product = fingerprint.navigator.product;
177
381
  }
178
382
  if (fingerprint.screen) {
179
383
  platformConfig.devicePixelRatio = fingerprint.screen.devicePixelRatio;
@@ -191,21 +395,36 @@ export class CdpFingerprintInjector {
191
395
  if (timezone) {
192
396
  await this.setTimezoneOverride(timezone);
193
397
  }
194
- // Enable the Page domain so we can attach scripts
195
- await this.page.client.Page.enable();
196
- // "Enhance" the fingerprint so we can inject it
197
- const enhancedFingerprint = this.injector._enhanceFingerprint(fingerprint);
198
- // Filter out only headers we can actually inject
199
- const filteredHeaders = this.injector.onlyInjectableHeaders(headers, 'chrome');
200
- // Main script from fingerprint-injector
201
- // @ts-expect-error Using private
202
- const fingerprintScript = this.injector.getInjectableFingerprintFunction(enhancedFingerprint);
203
- // Prepare all scripts to inject
204
- const scriptsToInject = [fingerprintScript];
398
+ // NOTE: Page.enable() is required for addScriptToEvaluateOnNewDocument to work
399
+ // We enable it lazily just before script injection to minimize detection surface
400
+ await this.page.ensurePageEnabled();
401
+ // Filter headers to only include those that can be injected via CDP
402
+ const filteredHeaders = {};
403
+ const allowedHeaders = ['accept', 'accept-encoding', 'accept-language', 'user-agent', 'referer', 'sec-ch-ua', 'sec-ch-ua-mobile', 'sec-ch-ua-platform'];
404
+ for (const [key, value] of Object.entries(headers)) {
405
+ if (allowedHeaders.includes(key.toLowerCase()) && typeof value === 'string') {
406
+ filteredHeaders[key] = value;
407
+ }
408
+ }
409
+ // Create custom fingerprint injection scripts
410
+ log.info('Creating custom fingerprint injection scripts');
411
+ const customFingerprintScripts = createCustomFingerprintInjection(fingerprint, {
412
+ debug: options?.debug !== false,
413
+ throwOnError: true
414
+ });
415
+ // Prepare all scripts to inject - stealth utils and runtime bypass MUST be first
416
+ // These scripts set up protections BEFORE page JavaScript runs
417
+ const scriptsToInject = [
418
+ createStealthUtilsScript(), // Must be first - provides guards and toString spoofing
419
+ createRuntimeEnableBypassScript(), // Second - protects against CDP detection via Error stack analysis
420
+ ...customFingerprintScripts, // Custom fingerprint injection replacing fingerprint-injector
421
+ ];
205
422
  // Always inject base stealth protections
206
423
  await this.injectStealthProtections();
207
424
  // Extract fingerprint data if we should use it
208
- const shouldUseFingerprintData = options?.useFingerprintDefaults !== false;
425
+ // When useFingerprintDefaults is true (or undefined), use hardcoded defaults
426
+ // When useFingerprintDefaults is false, use the generated fingerprint data
427
+ const shouldUseFingerprintData = options?.useFingerprintDefaults === false;
209
428
  const { webglConfig, platformConfig } = shouldUseFingerprintData
210
429
  ? this.extractFingerprintData(fingerprint)
211
430
  : { webglConfig: undefined, platformConfig: undefined };
@@ -243,34 +462,220 @@ export class CdpFingerprintInjector {
243
462
  if (options?.spoofLocale !== false) {
244
463
  scriptsToInject.push(createLocaleSpoofingScript());
245
464
  }
465
+ // 2024-2025 New protections
466
+ // CDP Detection Bypass
467
+ if (options?.bypassCDPDetection !== false) {
468
+ scriptsToInject.push(createCDPDetectionBypassScript());
469
+ }
470
+ // Storage consistency
471
+ if (options?.spoofStorage !== false) {
472
+ scriptsToInject.push(createStorageConsistencyScript());
473
+ }
474
+ // Timing consistency
475
+ if (options?.spoofTiming !== false) {
476
+ scriptsToInject.push(createTimingConsistencyScript());
477
+ }
478
+ // DataDome-specific bypass
479
+ if (options?.enableDataDomeBypass) {
480
+ scriptsToInject.push(createDataDomeBypassScript());
481
+ }
482
+ // Keyboard humanization (browser context) - disabled by default
483
+ if (options?.humanization?.keyboard) {
484
+ scriptsToInject.push(createKeyboardHumanizationScript());
485
+ }
486
+ // Scroll humanization (browser context) - disabled by default
487
+ if (options?.humanization?.scroll) {
488
+ scriptsToInject.push(createScrollHumanizationScript());
489
+ }
246
490
  }
247
491
  // Apply platform consistency script
248
492
  if (options?.platform) {
249
493
  scriptsToInject.push(createPlatformConsistencyScript(options.platform, shouldUseFingerprintData ? platformConfig : undefined));
250
494
  }
251
- // Inject all scripts
252
- await Promise.all([
253
- this.setViewport(options?.viewport),
254
- this.setExtraHTTPHeaders(filteredHeaders),
255
- ...scriptsToInject.map(async (script) => this.page.client.Page.addScriptToEvaluateOnNewDocument({ source: script })),
256
- ]);
257
- // Setup mouse movement humanization if requested
258
- if (options?.humanizeInteractions) {
495
+ // CRITICAL: Clean scripts to remove CDP detection patterns
496
+ // Remove sourceURL comments that reveal CDP injection
497
+ const cleanScript = (script) => {
498
+ return script
499
+ // Remove sourceURL patterns that reveal CDP injection
500
+ .replace(/\/\/# sourceURL=[^\n]*/g, '')
501
+ .replace(/\/\/@ sourceURL=[^\n]*/g, '')
502
+ // Remove sourceMappingURL patterns
503
+ .replace(/\/\/# sourceMappingURL=[^\n]*/g, '')
504
+ // Remove puppeteer/playwright markers
505
+ .replace(/__puppeteer_evaluation_script__/g, 'anonymous')
506
+ .replace(/__playwright_evaluation_script__/g, 'anonymous')
507
+ // Remove CDP-specific comments
508
+ .replace(/\/\*\s*__CDP_[A-Z_]+__\s*\*\//g, '');
509
+ };
510
+ // BUNDLE ALL SCRIPTS INTO ONE to minimize CDP interactions
511
+ // Each addScriptToEvaluateOnNewDocument call is a detection opportunity
512
+ log.info(`Bundling ${scriptsToInject.length} fingerprint scripts into single injection`);
513
+ const bundledScript = scriptsToInject
514
+ .map(script => cleanScript(script))
515
+ .join('\n\n// --- Next Module ---\n\n');
516
+ // Validate bundled script for syntax errors
517
+ try {
518
+ new Function(bundledScript);
519
+ log.info('✓ Bundled script passed syntax validation');
520
+ }
521
+ catch (error) {
522
+ log.error('✗ Bundled script has syntax error:', { error });
523
+ // Fall back to individual script validation to find the culprit
524
+ scriptsToInject.forEach((script, index) => {
525
+ try {
526
+ new Function(script);
527
+ }
528
+ catch (e) {
529
+ const scriptPreview = script.substring(0, 300);
530
+ log.error(`✗ Error in script ${index + 1}:`, { error: e, scriptPreview });
531
+ }
532
+ });
533
+ throw new Error(`Bundled script has syntax error: ${error}`);
534
+ }
535
+ // Inject SINGLE bundled script - reduces CDP detection surface
536
+ try {
537
+ log.info('Injecting single bundled fingerprint script (minimizes CDP detection)');
538
+ await Promise.all([
539
+ this.setViewport(options?.viewport, fingerprint),
540
+ this.setExtraHTTPHeaders(filteredHeaders),
541
+ // Single script injection instead of many - reduces CDP detection surface
542
+ (async () => {
543
+ try {
544
+ await this.page.client.Page.addScriptToEvaluateOnNewDocument({
545
+ source: bundledScript
546
+ });
547
+ log.info('✓ Bundled script injected successfully');
548
+ }
549
+ catch (error) {
550
+ const scriptPreview = bundledScript.substring(0, 200).split('\n')[0];
551
+ log.error('✗ Failed to inject bundled script:', {
552
+ error,
553
+ scriptPreview,
554
+ });
555
+ throw error; // Rethrow to fail the entire injection
556
+ }
557
+ })(),
558
+ ]);
559
+ log.info('✓ Fingerprint injection complete (single bundled script)');
560
+ }
561
+ catch (error) {
562
+ log.error('✗ Failed to inject fingerprint scripts:', { error });
563
+ throw error; // Rethrow to make injection failures visible
564
+ }
565
+ // Setup mouse movement humanization if requested (disabled by default)
566
+ // Support both legacy humanizeInteractions and new humanization.mouse
567
+ const enableMouseHumanization = options?.humanization?.mouse || options?.humanizeInteractions;
568
+ if (enableMouseHumanization) {
259
569
  await setupMouseMovementHumanization(this.page.client);
260
570
  }
261
- // Additional CDP-level protections
262
- if (options?.bypassRuntimeEnable) {
263
- await setupRuntimeEnableBypass(this.page.client);
571
+ // NOTE: setupRuntimeEnableBypass REMOVED - it uses Runtime.evaluate which is itself a detection vector!
572
+ // The bypass script is now included in the bundled stealth scripts injected via addScriptToEvaluateOnNewDocument
573
+ // This runs BEFORE page JavaScript, avoiding Runtime domain activation
574
+ // 2024-2025: CDP-level keyboard humanization (disabled by default)
575
+ if (options?.humanization?.keyboard) {
576
+ await setupKeyboardHumanization(this.page.client);
577
+ }
578
+ // 2024-2025: CDP-level scroll humanization (disabled by default)
579
+ if (options?.humanization?.scroll) {
580
+ await setupScrollHumanization(this.page.client);
581
+ }
582
+ // Inject debug script for browser console verification (always inject for debugging)
583
+ if (options?.debug !== false) {
584
+ const debugScript = this.createDebugScript(options || {});
585
+ await this.page.client.Page.addScriptToEvaluateOnNewDocument({ source: debugScript });
264
586
  }
265
587
  log.info('Enhanced fingerprint attached with settings:', {
266
588
  proxy: options?.proxyUrl,
267
589
  timezone,
268
590
  advancedStealth: options?.enableAdvancedStealth !== false,
269
- humanizeInteractions: options?.humanizeInteractions,
270
591
  bypassRuntimeEnable: options?.bypassRuntimeEnable,
271
592
  platform: options?.platform,
272
593
  useFingerprintDefaults: options?.useFingerprintDefaults,
594
+ // 2024-2025 new options
595
+ bypassCDPDetection: options?.bypassCDPDetection !== false,
596
+ spoofStorage: options?.spoofStorage !== false,
597
+ spoofTiming: options?.spoofTiming !== false,
598
+ enableDataDomeBypass: options?.enableDataDomeBypass,
599
+ // Humanization options
600
+ humanization: {
601
+ mouse: enableMouseHumanization || false,
602
+ keyboard: options?.humanization?.keyboard || false,
603
+ scroll: options?.humanization?.scroll || false,
604
+ },
605
+ // Viewport info
606
+ viewport: options?.viewport,
607
+ fingerprintScreen: fingerprint?.screen ? {
608
+ width: fingerprint.screen.width,
609
+ height: fingerprint.screen.height,
610
+ devicePixelRatio: fingerprint.screen.devicePixelRatio,
611
+ } : undefined,
273
612
  });
613
+ // Add a debug script to log viewport info in the browser console
614
+ const viewportDebugScript = `
615
+ (() => {
616
+ console.log('[VIEWPORT-DEBUG] Initial window dimensions:', {
617
+ innerWidth: window.innerWidth,
618
+ innerHeight: window.innerHeight,
619
+ outerWidth: window.outerWidth,
620
+ outerHeight: window.outerHeight,
621
+ screenWidth: screen.width,
622
+ screenHeight: screen.height,
623
+ availWidth: screen.availWidth,
624
+ availHeight: screen.availHeight,
625
+ devicePixelRatio: window.devicePixelRatio,
626
+ scrollY: window.scrollY,
627
+ scrollHeight: document.documentElement?.scrollHeight || 'N/A',
628
+ clientHeight: document.documentElement?.clientHeight || 'N/A'
629
+ });
630
+
631
+ // Check consistency
632
+ const inconsistencies = [];
633
+ if (window.innerWidth !== screen.width && Math.abs(window.innerWidth - screen.width) > 50) {
634
+ inconsistencies.push(\`innerWidth (\${window.innerWidth}) != screen.width (\${screen.width})\`);
635
+ }
636
+ if (window.innerHeight !== screen.height && Math.abs(window.innerHeight - screen.height) > 100) {
637
+ inconsistencies.push(\`innerHeight (\${window.innerHeight}) != screen.height (\${screen.height})\`);
638
+ }
639
+
640
+ if (inconsistencies.length > 0) {
641
+ console.warn('[VIEWPORT-DEBUG] ⚠️ INCONSISTENCIES DETECTED:', inconsistencies);
642
+ } else {
643
+ console.log('[VIEWPORT-DEBUG] ✅ Dimensions appear consistent');
644
+ }
645
+
646
+ // Test scrolling after DOM is ready
647
+ const checkScroll = () => {
648
+ if (document.documentElement) {
649
+ const scrollHeight = document.documentElement.scrollHeight;
650
+ const clientHeight = document.documentElement.clientHeight;
651
+ const canScroll = scrollHeight > clientHeight;
652
+
653
+ console.log('[VIEWPORT-DEBUG] After load:', {
654
+ scrollHeight,
655
+ clientHeight,
656
+ canScroll,
657
+ overflow: scrollHeight - clientHeight,
658
+ bodyHeight: document.body?.scrollHeight,
659
+ innerHeight: window.innerHeight,
660
+ screenHeight: screen.height
661
+ });
662
+
663
+ if (canScroll) {
664
+ console.log('[VIEWPORT-DEBUG] ✅ SCROLLING ENABLED - Page has', scrollHeight - clientHeight, 'px overflow');
665
+ } else {
666
+ console.log('[VIEWPORT-DEBUG] ⚠️ NO OVERFLOW - Cannot scroll (scrollHeight === clientHeight)');
667
+ }
668
+ }
669
+ };
670
+
671
+ if (document.readyState === 'loading') {
672
+ document.addEventListener('DOMContentLoaded', checkScroll);
673
+ } else {
674
+ setTimeout(checkScroll, 1000);
675
+ }
676
+ })();
677
+ `;
678
+ await this.page.client.Page.addScriptToEvaluateOnNewDocument({ source: viewportDebugScript });
274
679
  }
275
680
  }
276
681
  //# sourceMappingURL=fingerprint-injector.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"fingerprint-injector.js","sourceRoot":"","sources":["../../src/fingerprinting/fingerprint-injector.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6DG;AAEH,OAAO,EAAE,GAAG,EAAE,MAAM,SAAS,CAAC;AAE9B,OAAO,EAAE,mBAAmB,EAAE,MAAM,sBAAsB,CAAC;AAC3D,OAAO,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAG3C,OAAO,EACH,mBAAmB,EACnB,yBAAyB,EACzB,oCAAoC,EACpC,oCAAoC,EACpC,8BAA8B,EAC9B,0BAA0B,EAC1B,0BAA0B,EAC1B,+BAA+B,EAC/B,8BAA8B,EAC9B,wBAAwB,EACxB,wBAAwB,EACxB,+BAA+B,EAC/B,0BAA0B,EAC1B,iCAAiC,GAGpC,MAAM,kCAAkC,CAAC;AAsC1C,MAAM,OAAO,sBAAsB;IAI/B,YAAY,IAAa;QAHjB;;;;;WAA8B;QAC9B;;;;;WAAc;QAGlB,IAAI,CAAC,QAAQ,GAAG,IAAI,mBAAmB,EAAE,CAAC;QAC1C,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;IACrB,CAAC;IAED;;;;OAIG;IACH,MAAM,CAAC,2BAA2B;QAC9B,OAAO;YACH,qBAAqB,EAAE,IAAI;YAC3B,mBAAmB,EAAE,IAAI;YACzB,QAAQ,EAAE,OAAO,EAAE,uDAAuD;YAC1E,UAAU,EAAE,IAAI;YAChB,iBAAiB,EAAE,IAAI;YACvB,gBAAgB,EAAE,IAAI;YACtB,oBAAoB,EAAE,IAAI;YAC1B,cAAc,EAAE,IAAI,EAAE,kCAAkC;YACxD,yCAAyC;YACzC,UAAU,EAAE,IAAI;YAChB,gBAAgB,EAAE,IAAI;YACtB,WAAW,EAAE,IAAI;YACjB,sBAAsB,EAAE,IAAI,EAAE,2CAA2C;YACzE,QAAQ,EAAE;gBACN,KAAK,EAAE,IAAI;gBACX,MAAM,EAAE,IAAI;gBACZ,iBAAiB,EAAE,CAAC;gBACpB,MAAM,EAAE,KAAK;aAChB;SACJ,CAAC;IACN,CAAC;IAED,MAAM,CAAC,KAAK,CAAC,iBAAiB,CAC1B,IAAa,EACb,WAA0C,EAC1C,OAAuB;QAEvB,MAAM,OAAO,GAAG,IAAI,sBAAsB,CAAC,IAAI,CAAC,CAAC;QACjD,OAAO,OAAO,CAAC,YAAY,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC;IACtD,CAAC;IAEO,KAAK,CAAC,WAAW,CAAC,QAAmB;QACzC,MAAM,eAAe,GAAa;YAC9B,KAAK,EAAE,IAAI;YACX,MAAM,EAAE,IAAI;YACZ,iBAAiB,EAAE,CAAC;YACpB,MAAM,EAAE,KAAK;SAChB,CAAC;QAEF,MAAM,aAAa,GAAG,MAAM,CAAC,MAAM,CAAC,eAAe,EAAE,QAAQ,CAAC,CAAC;QAC/D,sCAAsC;QACtC,MAAM,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,wBAAwB,CAAC,aAAoB,CAAC,CAAC;IACpF,CAAC;IAEO,KAAK,CAAC,mBAAmB,CAAC,OAA+B;QAC7D,MAAM,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,mBAAmB,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC;IACpE,CAAC;IAEO,KAAK,CAAC,iBAAiB,CAAC,QAAiB;QAC7C,IAAI,CAAC;YACD,MAAM,QAAQ,GAAG,MAAM,WAAW,CAAC;gBAC/B,GAAG,EAAE,wBAAwB;gBAC7B,QAAQ;gBACR,YAAY,EAAE,MAAM;aACvB,CAAC,CAAC;YACH,OAAQ,QAAQ,CAAC,IAAuB,CAAC,QAAQ,CAAC;QACtD,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACb,GAAG,CAAC,KAAK,CAAC,iCAAiC,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC;YACxD,OAAO,KAAK,CAAC;QACjB,CAAC;IACL,CAAC;IAEO,KAAK,CAAC,mBAAmB,CAAC,QAAgB;QAC9C,MAAM,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,mBAAmB,CAAC;YACjD,UAAU,EAAE,QAAQ;SACvB,CAAC,CAAC;IACP,CAAC;IAEO,KAAK,CAAC,wBAAwB;QAClC,MAAM,aAAa,GAAG,mBAAmB,EAAE,CAAC;QAC5C,MAAM,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,gCAAgC,CAAC,EAAE,MAAM,EAAE,aAAa,EAAE,CAAC,CAAC;IAC5F,CAAC;IAED;;OAEG;IACK,sBAAsB,CAAC,WAAgB;QAI3C,MAAM,WAAW,GAAgB,EAAE,CAAC;QACpC,MAAM,cAAc,GAAmB,EAAE,CAAC;QAE1C,kCAAkC;QAClC,IAAI,WAAW,CAAC,KAAK,EAAE,CAAC;YACpB,WAAW,CAAC,MAAM,GAAG,WAAW,CAAC,KAAK,CAAC,MAAM,CAAC;YAC9C,WAAW,CAAC,QAAQ,GAAG,WAAW,CAAC,KAAK,CAAC,QAAQ,CAAC;YAClD,WAAW,CAAC,cAAc,GAAG,WAAW,CAAC,KAAK,CAAC,cAAc,CAAC;YAC9D,WAAW,CAAC,gBAAgB,GAAG,WAAW,CAAC,KAAK,CAAC,gBAAgB,CAAC;QACtE,CAAC;QAED,qCAAqC;QACrC,IAAI,WAAW,CAAC,SAAS,EAAE,CAAC;YACxB,cAAc,CAAC,QAAQ,GAAG,WAAW,CAAC,SAAS,CAAC,QAAQ,CAAC;YACzD,cAAc,CAAC,MAAM,GAAG,WAAW,CAAC,SAAS,CAAC,MAAM,CAAC;YACrD,cAAc,CAAC,SAAS,GAAG,WAAW,CAAC,SAAS,CAAC,SAAS,CAAC;YAC3D,cAAc,CAAC,UAAU,GAAG,WAAW,CAAC,SAAS,CAAC,UAAU,CAAC;YAC7D,cAAc,CAAC,mBAAmB,GAAG,WAAW,CAAC,SAAS,CAAC,mBAAmB,CAAC;YAC/E,cAAc,CAAC,cAAc,GAAG,WAAW,CAAC,SAAS,CAAC,cAAc,CAAC;YACrE,cAAc,CAAC,QAAQ,GAAG,WAAW,CAAC,SAAS,CAAC,QAAQ,CAAC;YACzD,cAAc,CAAC,SAAS,GAAG,WAAW,CAAC,SAAS,CAAC,SAAS,CAAC;YAC3D,cAAc,CAAC,KAAK,GAAG,WAAW,CAAC,SAAS,CAAC,KAAK,CAAC;QACvD,CAAC;QAED,IAAI,WAAW,CAAC,MAAM,EAAE,CAAC;YACrB,cAAc,CAAC,gBAAgB,GAAG,WAAW,CAAC,MAAM,CAAC,gBAAgB,CAAC;YACtE,cAAc,CAAC,WAAW,GAAG,WAAW,CAAC,MAAM,CAAC,UAAU,CAAC;YAC3D,cAAc,CAAC,UAAU,GAAG,WAAW,CAAC,MAAM,CAAC,UAAU,CAAC;QAC9D,CAAC;QAED,OAAO,EAAE,WAAW,EAAE,cAAc,EAAE,CAAC;IAC3C,CAAC;IAEM,KAAK,CAAC,YAAY,CACrB,6BAA4D,EAC5D,OAAuB;QAEvB,MAAM,EAAE,WAAW,EAAE,OAAO,EAAE,GAAG,6BAA6B,CAAC;QAE/D,MAAM,mBAAmB,GAAG,OAAO,EAAE,QAAQ,IAAI,OAAO,EAAE,cAAc,CAAC;QACzE,MAAM,QAAQ,GAAG,mBAAmB;YAChC,CAAC,CAAC,MAAM,IAAI,CAAC,iBAAiB,CAAC,OAAO,EAAE,QAAQ,CAAC;YACjD,CAAC,CAAC,SAAS,CAAC;QAEhB,IAAI,QAAQ,EAAE,CAAC;YACX,MAAM,IAAI,CAAC,mBAAmB,CAAC,QAAQ,CAAC,CAAC;QAC7C,CAAC;QAED,kDAAkD;QAClD,MAAM,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC;QAErC,gDAAgD;QAChD,MAAM,mBAAmB,GAAI,IAAI,CAAC,QAAgB,CAAC,mBAAmB,CAAC,WAAW,CAAC,CAAC;QAEpF,iDAAiD;QACjD,MAAM,eAAe,GAAI,IAAI,CAAC,QAAgB,CAAC,qBAAqB,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;QAExF,wCAAwC;QACxC,iCAAiC;QACjC,MAAM,iBAAiB,GAAG,IAAI,CAAC,QAAQ,CAAC,gCAAgC,CAAC,mBAAmB,CAAC,CAAC;QAE9F,gCAAgC;QAChC,MAAM,eAAe,GAAG,CAAC,iBAAiB,CAAC,CAAC;QAE5C,yCAAyC;QACzC,MAAM,IAAI,CAAC,wBAAwB,EAAE,CAAC;QAEtC,+CAA+C;QAC/C,MAAM,wBAAwB,GAAG,OAAO,EAAE,sBAAsB,KAAK,KAAK,CAAC;QAC3E,MAAM,EAAE,WAAW,EAAE,cAAc,EAAE,GAAG,wBAAwB;YAC5D,CAAC,CAAC,IAAI,CAAC,sBAAsB,CAAC,WAAW,CAAC;YAC1C,CAAC,CAAC,EAAE,WAAW,EAAE,SAAS,EAAE,cAAc,EAAE,SAAS,EAAE,CAAC;QAE5D,yCAAyC;QACzC,IAAI,OAAO,EAAE,qBAAqB,KAAK,KAAK,EAAE,CAAC;YAC3C,wCAAwC;YACxC,eAAe,CAAC,IAAI,CAAC,iCAAiC,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC,CAAC;YAE3E,iBAAiB;YACjB,IAAI,OAAO,EAAE,UAAU,KAAK,KAAK,EAAE,CAAC;gBAChC,eAAe,CAAC,IAAI,CAAC,yBAAyB,CAC1C,wBAAwB,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,SAAS,CACrD,CAAC,CAAC;YACP,CAAC;YAED,6BAA6B;YAC7B,IAAI,OAAO,EAAE,iBAAiB,KAAK,KAAK,EAAE,CAAC;gBACvC,eAAe,CAAC,IAAI,CAAC,oCAAoC,EAAE,CAAC,CAAC;YACjE,CAAC;YAED,oBAAoB;YACpB,eAAe,CAAC,IAAI,CAAC,oCAAoC,EAAE,CAAC,CAAC;YAE7D,uBAAuB;YACvB,IAAI,OAAO,EAAE,gBAAgB,KAAK,KAAK,EAAE,CAAC;gBACtC,eAAe,CAAC,IAAI,CAAC,8BAA8B,EAAE,CAAC,CAAC;YAC3D,CAAC;YAED,kBAAkB;YAClB,eAAe,CAAC,IAAI,CAAC,0BAA0B,EAAE,CAAC,CAAC;YAEnD,2EAA2E;YAC3E,eAAe,CAAC,IAAI,CAAC,0BAA0B,CAAC,OAAO,EAAE,2BAA2B,CAAC,CAAC,CAAC;YAEvF,uBAAuB;YACvB,IAAI,OAAO,EAAE,UAAU,KAAK,KAAK,EAAE,CAAC;gBAChC,eAAe,CAAC,IAAI,CAAC,wBAAwB,EAAE,CAAC,CAAC;YACrD,CAAC;YAED,8BAA8B;YAC9B,IAAI,OAAO,EAAE,gBAAgB,KAAK,KAAK,EAAE,CAAC;gBACtC,eAAe,CAAC,IAAI,CAAC,+BAA+B,EAAE,CAAC,CAAC;YAC5D,CAAC;YAED,yBAAyB;YACzB,IAAI,OAAO,EAAE,WAAW,KAAK,KAAK,EAAE,CAAC;gBACjC,eAAe,CAAC,IAAI,CAAC,0BAA0B,EAAE,CAAC,CAAC;YACvD,CAAC;QACL,CAAC;QAED,oCAAoC;QACpC,IAAI,OAAO,EAAE,QAAQ,EAAE,CAAC;YACpB,eAAe,CAAC,IAAI,CAAC,+BAA+B,CAChD,OAAO,CAAC,QAAQ,EAChB,wBAAwB,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,SAAS,CACxD,CAAC,CAAC;QACP,CAAC;QAED,qBAAqB;QACrB,MAAM,OAAO,CAAC,GAAG,CAAC;YACd,IAAI,CAAC,WAAW,CAAC,OAAO,EAAE,QAAQ,CAAC;YACnC,IAAI,CAAC,mBAAmB,CAAC,eAAe,CAAC;YACzC,GAAG,eAAe,CAAC,GAAG,CAAC,KAAK,EAAC,MAAM,EAAC,EAAE,CAClC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,gCAAgC,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC,CAC7E;SACJ,CAAC,CAAC;QAEH,iDAAiD;QACjD,IAAI,OAAO,EAAE,oBAAoB,EAAE,CAAC;YAChC,MAAM,8BAA8B,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QAC3D,CAAC;QAED,mCAAmC;QACnC,IAAI,OAAO,EAAE,mBAAmB,EAAE,CAAC;YAC/B,MAAM,wBAAwB,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QACrD,CAAC;QAED,GAAG,CAAC,IAAI,CAAC,8CAA8C,EAAE;YACrD,KAAK,EAAE,OAAO,EAAE,QAAQ;YACxB,QAAQ;YACR,eAAe,EAAE,OAAO,EAAE,qBAAqB,KAAK,KAAK;YACzD,oBAAoB,EAAE,OAAO,EAAE,oBAAoB;YACnD,mBAAmB,EAAE,OAAO,EAAE,mBAAmB;YACjD,QAAQ,EAAE,OAAO,EAAE,QAAQ;YAC3B,sBAAsB,EAAE,OAAO,EAAE,sBAAsB;SAC1D,CAAC,CAAC;IACP,CAAC;CACJ"}
1
+ {"version":3,"file":"fingerprint-injector.js","sourceRoot":"","sources":["../../src/fingerprinting/fingerprint-injector.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"audio-spoofing.d.ts","sourceRoot":"","sources":["../../../src/fingerprinting/fingerprint-overrides/audio-spoofing.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,eAAO,MAAM,oCAAoC,QAAO,MAiFvD,CAAC"}
1
+ {"version":3,"file":"audio-spoofing.d.ts","sourceRoot":"","sources":["../../../src/fingerprinting/fingerprint-overrides/audio-spoofing.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,eAAO,MAAM,oCAAoC,QAAO,MA2FvD,CAAC"}