jumpy-lion 0.0.41 → 0.0.43

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 (127) 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 +20 -1
  5. package/dist/browser-plugin.d.ts.map +1 -1
  6. package/dist/browser-plugin.js +21 -1
  7. package/dist/browser-plugin.js.map +1 -1
  8. package/dist/browser-process/browser.d.ts +22 -1
  9. package/dist/browser-process/browser.d.ts.map +1 -1
  10. package/dist/browser-process/browser.js +77 -5
  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 +32 -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 +452 -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 +776 -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 +643 -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 +17 -1
  57. package/dist/fingerprinting/fingerprint-overrides/index.d.ts.map +1 -1
  58. package/dist/fingerprinting/fingerprint-overrides/index.js +21 -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 +153 -90
  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/prototype-integrity.d.ts +13 -0
  78. package/dist/fingerprinting/fingerprint-overrides/prototype-integrity.d.ts.map +1 -0
  79. package/dist/fingerprinting/fingerprint-overrides/prototype-integrity.js +355 -0
  80. package/dist/fingerprinting/fingerprint-overrides/prototype-integrity.js.map +1 -0
  81. package/dist/fingerprinting/fingerprint-overrides/runtime-enable-bypass.d.ts +12 -3
  82. package/dist/fingerprinting/fingerprint-overrides/runtime-enable-bypass.d.ts.map +1 -1
  83. package/dist/fingerprinting/fingerprint-overrides/runtime-enable-bypass.js +261 -71
  84. package/dist/fingerprinting/fingerprint-overrides/runtime-enable-bypass.js.map +1 -1
  85. package/dist/fingerprinting/fingerprint-overrides/scroll-humanization.d.ts +55 -0
  86. package/dist/fingerprinting/fingerprint-overrides/scroll-humanization.d.ts.map +1 -0
  87. package/dist/fingerprinting/fingerprint-overrides/scroll-humanization.js +380 -0
  88. package/dist/fingerprinting/fingerprint-overrides/scroll-humanization.js.map +1 -0
  89. package/dist/fingerprinting/fingerprint-overrides/stealth-script.d.ts +8 -0
  90. package/dist/fingerprinting/fingerprint-overrides/stealth-script.d.ts.map +1 -1
  91. package/dist/fingerprinting/fingerprint-overrides/stealth-script.js +756 -71
  92. package/dist/fingerprinting/fingerprint-overrides/stealth-script.js.map +1 -1
  93. package/dist/fingerprinting/fingerprint-overrides/storage-consistency.d.ts +13 -0
  94. package/dist/fingerprinting/fingerprint-overrides/storage-consistency.d.ts.map +1 -0
  95. package/dist/fingerprinting/fingerprint-overrides/storage-consistency.js +368 -0
  96. package/dist/fingerprinting/fingerprint-overrides/storage-consistency.js.map +1 -0
  97. package/dist/fingerprinting/fingerprint-overrides/timing-consistency.d.ts +13 -0
  98. package/dist/fingerprinting/fingerprint-overrides/timing-consistency.d.ts.map +1 -0
  99. package/dist/fingerprinting/fingerprint-overrides/timing-consistency.js +438 -0
  100. package/dist/fingerprinting/fingerprint-overrides/timing-consistency.js.map +1 -0
  101. package/dist/fingerprinting/fingerprint-overrides/ua-ch.d.ts +7 -1
  102. package/dist/fingerprinting/fingerprint-overrides/ua-ch.d.ts.map +1 -1
  103. package/dist/fingerprinting/fingerprint-overrides/ua-ch.js +158 -58
  104. package/dist/fingerprinting/fingerprint-overrides/ua-ch.js.map +1 -1
  105. package/dist/fingerprinting/fingerprint-overrides/utils.d.ts +12 -0
  106. package/dist/fingerprinting/fingerprint-overrides/utils.d.ts.map +1 -0
  107. package/dist/fingerprinting/fingerprint-overrides/utils.js +517 -0
  108. package/dist/fingerprinting/fingerprint-overrides/utils.js.map +1 -0
  109. package/dist/fingerprinting/fingerprint-overrides/webgl-spoofing.d.ts.map +1 -1
  110. package/dist/fingerprinting/fingerprint-overrides/webgl-spoofing.js +51 -10
  111. package/dist/fingerprinting/fingerprint-overrides/webgl-spoofing.js.map +1 -1
  112. package/dist/fingerprinting/fingerprint-overrides/webgpu-spoofing.d.ts.map +1 -1
  113. package/dist/fingerprinting/fingerprint-overrides/webgpu-spoofing.js +11 -1
  114. package/dist/fingerprinting/fingerprint-overrides/webgpu-spoofing.js.map +1 -1
  115. package/dist/fingerprinting/fingerprint-overrides/webrtc-spoofing.d.ts.map +1 -1
  116. package/dist/fingerprinting/fingerprint-overrides/webrtc-spoofing.js +11 -1
  117. package/dist/fingerprinting/fingerprint-overrides/webrtc-spoofing.js.map +1 -1
  118. package/dist/page.d.ts +12 -0
  119. package/dist/page.d.ts.map +1 -1
  120. package/dist/page.js +35 -3
  121. package/dist/page.js.map +1 -1
  122. package/dist/tsconfig.build.tsbuildinfo +1 -1
  123. package/package.json +4 -4
  124. package/dist/fingerprinting/canvas-fingerprint.d.ts +0 -4
  125. package/dist/fingerprinting/canvas-fingerprint.d.ts.map +0 -1
  126. package/dist/fingerprinting/canvas-fingerprint.js +0 -60
  127. package/dist/fingerprinting/canvas-fingerprint.js.map +0 -1
@@ -0,0 +1,355 @@
1
+ /**
2
+ * Prototype Integrity Module
3
+ *
4
+ * Ensures all property overrides are undetectable by:
5
+ * - Making overridden properties appear native (configurable: false)
6
+ * - Hiding modified property descriptors from Object.getOwnPropertyDescriptor
7
+ * - Protecting prototype chains from Object.getPrototypeOf inspection
8
+ * - Masking shadow properties from enumeration
9
+ *
10
+ * This module MUST be injected FIRST, before any other fingerprint overrides.
11
+ */
12
+ export const createPrototypeIntegrityScript = () => {
13
+ return `
14
+ (() => {
15
+ 'use strict';
16
+
17
+ // Skip if already initialized
18
+ if (window.__PROTOTYPE_INTEGRITY_INITIALIZED__) return;
19
+ window.__PROTOTYPE_INTEGRITY_INITIALIZED__ = true;
20
+
21
+ // ============================================
22
+ // PROTOTYPE INTEGRITY - Hide All Overrides
23
+ // ============================================
24
+
25
+ // Shadow maps to track original descriptors and overrides
26
+ const originalDescriptors = new WeakMap(); // obj -> Map<prop, originalDescriptor>
27
+ const overriddenProperties = new WeakMap(); // obj -> Set<prop>
28
+ const fakeDescriptors = new WeakMap(); // obj -> Map<prop, fakeDescriptor>
29
+
30
+ // Cache original functions BEFORE any modifications
31
+ const _Object = Object;
32
+ const _Reflect = Reflect;
33
+ const _getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;
34
+ const _getOwnPropertyDescriptors = Object.getOwnPropertyDescriptors;
35
+ const _getPrototypeOf = Object.getPrototypeOf;
36
+ const _defineProperty = Object.defineProperty;
37
+ const _getOwnPropertyNames = Object.getOwnPropertyNames;
38
+ const _keys = Object.keys;
39
+ const _hasOwnProperty = Object.prototype.hasOwnProperty;
40
+ const _ReflectGetOwnPropertyDescriptor = Reflect.getOwnPropertyDescriptor;
41
+ const _ReflectDefineProperty = Reflect.defineProperty;
42
+ const _ReflectOwnKeys = Reflect.ownKeys;
43
+ const _ReflectGet = Reflect.get;
44
+ const _ReflectHas = Reflect.has;
45
+
46
+ /**
47
+ * Register a property as overridden and cache its original descriptor
48
+ */
49
+ const registerOverride = (obj, prop, originalDescriptor) => {
50
+ if (!originalDescriptors.has(obj)) {
51
+ originalDescriptors.set(obj, new Map());
52
+ }
53
+ if (!overriddenProperties.has(obj)) {
54
+ overriddenProperties.set(obj, new Set());
55
+ }
56
+
57
+ const objDescriptors = originalDescriptors.get(obj);
58
+ const objOverrides = overriddenProperties.get(obj);
59
+
60
+ // Only cache original if not already cached
61
+ if (!objDescriptors.has(prop) && originalDescriptor) {
62
+ objDescriptors.set(prop, originalDescriptor);
63
+ }
64
+
65
+ objOverrides.add(prop);
66
+ };
67
+
68
+ /**
69
+ * Check if a property has been overridden
70
+ */
71
+ const isOverridden = (obj, prop) => {
72
+ const objOverrides = overriddenProperties.get(obj);
73
+ return objOverrides ? objOverrides.has(prop) : false;
74
+ };
75
+
76
+ /**
77
+ * Get the original descriptor for an overridden property
78
+ */
79
+ const getOriginalDescriptor = (obj, prop) => {
80
+ const objDescriptors = originalDescriptors.get(obj);
81
+ return objDescriptors ? objDescriptors.get(prop) : undefined;
82
+ };
83
+
84
+ /**
85
+ * Create a native-like descriptor that hides the override
86
+ */
87
+ const createNativeDescriptor = (obj, prop, actualDescriptor) => {
88
+ const original = getOriginalDescriptor(obj, prop);
89
+
90
+ if (original) {
91
+ // Return a descriptor that looks like the original
92
+ // but actually uses our getter/setter
93
+ return {
94
+ configurable: original.configurable !== undefined ? original.configurable : false,
95
+ enumerable: original.enumerable !== undefined ? original.enumerable : true,
96
+ get: actualDescriptor?.get,
97
+ set: actualDescriptor?.set,
98
+ value: actualDescriptor?.value,
99
+ writable: original.writable
100
+ };
101
+ }
102
+
103
+ // Default: make it look like a native property
104
+ if (actualDescriptor?.get || actualDescriptor?.set) {
105
+ return {
106
+ configurable: false,
107
+ enumerable: true,
108
+ get: actualDescriptor.get,
109
+ set: actualDescriptor.set
110
+ };
111
+ }
112
+
113
+ return {
114
+ configurable: false,
115
+ enumerable: true,
116
+ writable: false,
117
+ value: actualDescriptor?.value
118
+ };
119
+ };
120
+
121
+ /**
122
+ * Set a fake descriptor to return for getOwnPropertyDescriptor
123
+ */
124
+ const setFakeDescriptor = (obj, prop, descriptor) => {
125
+ if (!fakeDescriptors.has(obj)) {
126
+ fakeDescriptors.set(obj, new Map());
127
+ }
128
+ fakeDescriptors.get(obj).set(prop, descriptor);
129
+ };
130
+
131
+ /**
132
+ * Override a property with native-like appearance
133
+ * This is the main function other modules should use
134
+ */
135
+ const overridePropertyNative = (obj, prop, descriptor) => {
136
+ // Cache original descriptor first
137
+ const originalDescriptor = _getOwnPropertyDescriptor.call(_Object, obj, prop);
138
+ registerOverride(obj, prop, originalDescriptor);
139
+
140
+ // Apply the actual override
141
+ try {
142
+ _defineProperty.call(_Object, obj, prop, {
143
+ ...descriptor,
144
+ configurable: true // We need this to work, but will fake it
145
+ });
146
+
147
+ // Set up the fake descriptor to return
148
+ const fakeDesc = createNativeDescriptor(obj, prop, descriptor);
149
+ setFakeDescriptor(obj, prop, fakeDesc);
150
+
151
+ return true;
152
+ } catch (e) {
153
+ return false;
154
+ }
155
+ };
156
+
157
+ /**
158
+ * Override Object.getOwnPropertyDescriptor to hide our modifications
159
+ */
160
+ const patchGetOwnPropertyDescriptor = () => {
161
+ _defineProperty.call(_Object, _Object, 'getOwnPropertyDescriptor', {
162
+ value: function(obj, prop) {
163
+ // Check if we have a fake descriptor for this property
164
+ const objFakes = fakeDescriptors.get(obj);
165
+ if (objFakes && objFakes.has(prop)) {
166
+ const fake = objFakes.get(prop);
167
+ // Return a copy to prevent modification
168
+ return { ...fake };
169
+ }
170
+
171
+ // Otherwise return the real descriptor
172
+ return _getOwnPropertyDescriptor.call(_Object, obj, prop);
173
+ },
174
+ writable: true,
175
+ configurable: true
176
+ });
177
+
178
+ // Also patch Reflect.getOwnPropertyDescriptor
179
+ if (_Reflect && _ReflectGetOwnPropertyDescriptor) {
180
+ _defineProperty.call(_Object, _Reflect, 'getOwnPropertyDescriptor', {
181
+ value: function(obj, prop) {
182
+ const objFakes = fakeDescriptors.get(obj);
183
+ if (objFakes && objFakes.has(prop)) {
184
+ return { ...objFakes.get(prop) };
185
+ }
186
+ return _ReflectGetOwnPropertyDescriptor.call(_Reflect, obj, prop);
187
+ },
188
+ writable: true,
189
+ configurable: true
190
+ });
191
+ }
192
+ };
193
+
194
+ /**
195
+ * Override Object.getOwnPropertyDescriptors to use our patched version
196
+ */
197
+ const patchGetOwnPropertyDescriptors = () => {
198
+ _defineProperty.call(_Object, _Object, 'getOwnPropertyDescriptors', {
199
+ value: function(obj) {
200
+ const result = {};
201
+ const props = _getOwnPropertyNames.call(_Object, obj);
202
+
203
+ for (const prop of props) {
204
+ // Use our patched getOwnPropertyDescriptor
205
+ const desc = _Object.getOwnPropertyDescriptor(obj, prop);
206
+ if (desc) {
207
+ result[prop] = desc;
208
+ }
209
+ }
210
+
211
+ // Also include symbol properties
212
+ const symbols = _Object.getOwnPropertySymbols ? _Object.getOwnPropertySymbols(obj) : [];
213
+ for (const sym of symbols) {
214
+ const desc = _Object.getOwnPropertyDescriptor(obj, sym);
215
+ if (desc) {
216
+ result[sym] = desc;
217
+ }
218
+ }
219
+
220
+ return result;
221
+ },
222
+ writable: true,
223
+ configurable: true
224
+ });
225
+ };
226
+
227
+ /**
228
+ * Protect prototype chain inspection
229
+ */
230
+ const patchGetPrototypeOf = () => {
231
+ // Store original prototypes before any modification
232
+ const originalPrototypes = new WeakMap();
233
+
234
+ // We don't modify Object.getPrototypeOf because we want prototypes to look normal
235
+ // But we can use this to verify prototype chains are intact
236
+ };
237
+
238
+ /**
239
+ * Patch Object.keys to filter automation properties
240
+ */
241
+ const patchObjectKeys = () => {
242
+ const automationProps = new Set([
243
+ 'webdriver', '__webdriver_evaluate', '__selenium_evaluate',
244
+ '__driver_evaluate', '__webdriver_script_function',
245
+ '__webdriver_script_fn', '__fxdriver_evaluate',
246
+ '__webdriver_unwrapped', '$cdc_', 'cdc_'
247
+ ]);
248
+
249
+ _defineProperty.call(_Object, _Object, 'keys', {
250
+ value: function(obj) {
251
+ const keys = _keys.call(_Object, obj);
252
+ return keys.filter(key => {
253
+ const keyStr = String(key).toLowerCase();
254
+ for (const autoProp of automationProps) {
255
+ if (keyStr.includes(autoProp.toLowerCase())) {
256
+ return false;
257
+ }
258
+ }
259
+ return true;
260
+ });
261
+ },
262
+ writable: true,
263
+ configurable: true
264
+ });
265
+ };
266
+
267
+ /**
268
+ * Patch Object.getOwnPropertyNames to filter automation properties
269
+ */
270
+ const patchGetOwnPropertyNames = () => {
271
+ const automationProps = new Set([
272
+ 'webdriver', '__webdriver_evaluate', '__selenium_evaluate',
273
+ '__driver_evaluate', '__webdriver_script_function',
274
+ '__webdriver_script_fn', '__fxdriver_evaluate',
275
+ '__webdriver_unwrapped', '$cdc_', 'cdc_', '__puppeteer',
276
+ '__playwright'
277
+ ]);
278
+
279
+ _defineProperty.call(_Object, _Object, 'getOwnPropertyNames', {
280
+ value: function(obj) {
281
+ const names = _getOwnPropertyNames.call(_Object, obj);
282
+ return names.filter(name => {
283
+ const nameStr = String(name).toLowerCase();
284
+ for (const autoProp of automationProps) {
285
+ if (nameStr.includes(autoProp.toLowerCase())) {
286
+ return false;
287
+ }
288
+ }
289
+ return true;
290
+ });
291
+ },
292
+ writable: true,
293
+ configurable: true
294
+ });
295
+ };
296
+
297
+ /**
298
+ * Patch Reflect.ownKeys to filter automation properties
299
+ */
300
+ const patchReflectOwnKeys = () => {
301
+ if (!_Reflect || !_ReflectOwnKeys) return;
302
+
303
+ const automationProps = new Set([
304
+ 'webdriver', '__webdriver', '__selenium', '__driver',
305
+ '__puppeteer', '__playwright', '$cdc_', 'cdc_'
306
+ ]);
307
+
308
+ _defineProperty.call(_Object, _Reflect, 'ownKeys', {
309
+ value: function(obj) {
310
+ const keys = _ReflectOwnKeys.call(_Reflect, obj);
311
+ return keys.filter(key => {
312
+ const keyStr = String(key).toLowerCase();
313
+ for (const autoProp of automationProps) {
314
+ if (keyStr.includes(autoProp.toLowerCase())) {
315
+ return false;
316
+ }
317
+ }
318
+ return true;
319
+ });
320
+ },
321
+ writable: true,
322
+ configurable: true
323
+ });
324
+ };
325
+
326
+ /**
327
+ * Initialize all prototype integrity patches
328
+ */
329
+ const initialize = () => {
330
+ patchGetOwnPropertyDescriptor();
331
+ patchGetOwnPropertyDescriptors();
332
+ patchGetPrototypeOf();
333
+ patchObjectKeys();
334
+ patchGetOwnPropertyNames();
335
+ patchReflectOwnKeys();
336
+ };
337
+
338
+ // Initialize immediately
339
+ initialize();
340
+
341
+ // Export utilities for use by other modules
342
+ window.__prototypeIntegrity__ = {
343
+ registerOverride,
344
+ isOverridden,
345
+ getOriginalDescriptor,
346
+ setFakeDescriptor,
347
+ overridePropertyNative,
348
+ createNativeDescriptor
349
+ };
350
+
351
+ console.log('[CDP-FP-DEBUG] ✓ Prototype integrity initialized');
352
+ })();
353
+ `;
354
+ };
355
+ //# sourceMappingURL=prototype-integrity.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"prototype-integrity.js","sourceRoot":"","sources":["../../../src/fingerprinting/fingerprint-overrides/prototype-integrity.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,MAAM,CAAC,MAAM,8BAA8B,GAAG,GAAW,EAAE;IACvD,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAoVV,CAAC;AACF,CAAC,CAAC"}
@@ -1,6 +1,15 @@
1
1
  /**
2
- * Runtime.enable Bypass
3
- * Prevents CDP detection through console.log(Error) technique
2
+ * Runtime.enable Bypass Script
3
+ * Prevents CDP detection through console.log(Error) technique and stack trace analysis.
4
+ *
5
+ * IMPORTANT: This is now a SCRIPT to be injected via addScriptToEvaluateOnNewDocument,
6
+ * NOT via Runtime.evaluate (which would defeat the purpose since Runtime.evaluate IS detectable!)
7
+ *
8
+ * Enhanced 2024-2025: Comprehensive stack trace sanitization that removes ALL CDP markers
4
9
  */
5
- export declare const setupRuntimeEnableBypass: (client: any) => Promise<void>;
10
+ /**
11
+ * Creates the runtime enable bypass script that should be bundled with other stealth scripts.
12
+ * This script runs BEFORE page JavaScript and patches Error/console to hide CDP markers.
13
+ */
14
+ export declare const createRuntimeEnableBypassScript: () => string;
6
15
  //# sourceMappingURL=runtime-enable-bypass.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"runtime-enable-bypass.d.ts","sourceRoot":"","sources":["../../../src/fingerprinting/fingerprint-overrides/runtime-enable-bypass.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,eAAO,MAAM,wBAAwB,WAAkB,GAAG,KAAG,OAAO,CAAC,IAAI,CA8ExE,CAAC"}
1
+ {"version":3,"file":"runtime-enable-bypass.d.ts","sourceRoot":"","sources":["../../../src/fingerprinting/fingerprint-overrides/runtime-enable-bypass.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH;;;GAGG;AACH,eAAO,MAAM,+BAA+B,QAAO,MAmQlD,CAAC"}