jumpy-lion 0.0.32 → 0.0.34

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 (125) hide show
  1. package/dist/browser-controller.d.ts +2 -2
  2. package/dist/browser-controller.d.ts.map +1 -1
  3. package/dist/browser-controller.js +59 -21
  4. package/dist/browser-controller.js.map +1 -1
  5. package/dist/browser-plugin.d.ts +22 -0
  6. package/dist/browser-plugin.d.ts.map +1 -1
  7. package/dist/browser-plugin.js +118 -27
  8. package/dist/browser-plugin.js.map +1 -1
  9. package/dist/browser-process/browser.d.ts +15 -0
  10. package/dist/browser-process/browser.d.ts.map +1 -1
  11. package/dist/browser-process/browser.js +38 -3
  12. package/dist/browser-process/browser.js.map +1 -1
  13. package/dist/browser-process/process.d.ts +9 -0
  14. package/dist/browser-process/process.d.ts.map +1 -1
  15. package/dist/browser-process/process.js +99 -5
  16. package/dist/browser-process/process.js.map +1 -1
  17. package/dist/crawler.d.ts +18 -2
  18. package/dist/crawler.d.ts.map +1 -1
  19. package/dist/crawler.js +4 -5
  20. package/dist/crawler.js.map +1 -1
  21. package/dist/fingerprinting/anti-webgpu/background.d.ts +2 -0
  22. package/dist/fingerprinting/anti-webgpu/background.d.ts.map +1 -0
  23. package/dist/fingerprinting/anti-webgpu/background.js +6 -0
  24. package/dist/fingerprinting/anti-webgpu/background.js.map +1 -0
  25. package/dist/fingerprinting/anti-webgpu/data/content_script/inject.d.ts +2 -0
  26. package/dist/fingerprinting/anti-webgpu/data/content_script/inject.d.ts.map +1 -0
  27. package/dist/fingerprinting/anti-webgpu/data/content_script/inject.js +50 -0
  28. package/dist/fingerprinting/anti-webgpu/data/content_script/inject.js.map +1 -0
  29. package/dist/fingerprinting/anti-webgpu/data/content_script/page_context/inject.d.ts +2 -0
  30. package/dist/fingerprinting/anti-webgpu/data/content_script/page_context/inject.d.ts.map +1 -0
  31. package/dist/fingerprinting/anti-webgpu/data/content_script/page_context/inject.js +179 -0
  32. package/dist/fingerprinting/anti-webgpu/data/content_script/page_context/inject.js.map +1 -0
  33. package/dist/fingerprinting/anti-webgpu/data/popup/popup.d.ts +2 -0
  34. package/dist/fingerprinting/anti-webgpu/data/popup/popup.d.ts.map +1 -0
  35. package/dist/fingerprinting/anti-webgpu/data/popup/popup.js +95 -0
  36. package/dist/fingerprinting/anti-webgpu/data/popup/popup.js.map +1 -0
  37. package/dist/fingerprinting/anti-webgpu/lib/chrome.d.ts +2 -0
  38. package/dist/fingerprinting/anti-webgpu/lib/chrome.d.ts.map +1 -0
  39. package/dist/fingerprinting/anti-webgpu/lib/chrome.js +255 -0
  40. package/dist/fingerprinting/anti-webgpu/lib/chrome.js.map +1 -0
  41. package/dist/fingerprinting/anti-webgpu/lib/common.d.ts +2 -0
  42. package/dist/fingerprinting/anti-webgpu/lib/common.d.ts.map +1 -0
  43. package/dist/fingerprinting/anti-webgpu/lib/common.js +87 -0
  44. package/dist/fingerprinting/anti-webgpu/lib/common.js.map +1 -0
  45. package/dist/fingerprinting/anti-webgpu/lib/config.d.ts +2 -0
  46. package/dist/fingerprinting/anti-webgpu/lib/config.d.ts.map +1 -0
  47. package/dist/fingerprinting/anti-webgpu/lib/config.js +13 -0
  48. package/dist/fingerprinting/anti-webgpu/lib/config.js.map +1 -0
  49. package/dist/fingerprinting/anti-webgpu/lib/runtime.d.ts +2 -0
  50. package/dist/fingerprinting/anti-webgpu/lib/runtime.d.ts.map +1 -0
  51. package/dist/fingerprinting/anti-webgpu/lib/runtime.js +109 -0
  52. package/dist/fingerprinting/anti-webgpu/lib/runtime.js.map +1 -0
  53. package/dist/fingerprinting/fingerprint-injector.d.ts +85 -1
  54. package/dist/fingerprinting/fingerprint-injector.d.ts.map +1 -1
  55. package/dist/fingerprinting/fingerprint-injector.js +188 -90
  56. package/dist/fingerprinting/fingerprint-injector.js.map +1 -1
  57. package/dist/fingerprinting/fingerprint-overrides/audio-spoofing.d.ts +6 -0
  58. package/dist/fingerprinting/fingerprint-overrides/audio-spoofing.d.ts.map +1 -0
  59. package/dist/fingerprinting/fingerprint-overrides/audio-spoofing.js +87 -0
  60. package/dist/fingerprinting/fingerprint-overrides/audio-spoofing.js.map +1 -0
  61. package/dist/fingerprinting/fingerprint-overrides/canvas-protection.d.ts +6 -0
  62. package/dist/fingerprinting/fingerprint-overrides/canvas-protection.d.ts.map +1 -0
  63. package/dist/fingerprinting/fingerprint-overrides/canvas-protection.js +95 -0
  64. package/dist/fingerprinting/fingerprint-overrides/canvas-protection.js.map +1 -0
  65. package/dist/fingerprinting/fingerprint-overrides/client-rect-spoofing.d.ts +6 -0
  66. package/dist/fingerprinting/fingerprint-overrides/client-rect-spoofing.d.ts.map +1 -0
  67. package/dist/fingerprinting/fingerprint-overrides/client-rect-spoofing.js +96 -0
  68. package/dist/fingerprinting/fingerprint-overrides/client-rect-spoofing.js.map +1 -0
  69. package/dist/fingerprinting/fingerprint-overrides/font-spoofing.d.ts +7 -0
  70. package/dist/fingerprinting/fingerprint-overrides/font-spoofing.d.ts.map +1 -0
  71. package/dist/fingerprinting/fingerprint-overrides/font-spoofing.js +219 -0
  72. package/dist/fingerprinting/fingerprint-overrides/font-spoofing.js.map +1 -0
  73. package/dist/fingerprinting/fingerprint-overrides/index.d.ts +19 -0
  74. package/dist/fingerprinting/fingerprint-overrides/index.d.ts.map +1 -0
  75. package/dist/fingerprinting/fingerprint-overrides/index.js +19 -0
  76. package/dist/fingerprinting/fingerprint-overrides/index.js.map +1 -0
  77. package/dist/fingerprinting/fingerprint-overrides/locale-spoofing.d.ts +6 -0
  78. package/dist/fingerprinting/fingerprint-overrides/locale-spoofing.d.ts.map +1 -0
  79. package/dist/fingerprinting/fingerprint-overrides/locale-spoofing.js +262 -0
  80. package/dist/fingerprinting/fingerprint-overrides/locale-spoofing.js.map +1 -0
  81. package/dist/fingerprinting/fingerprint-overrides/mouse-humanization.d.ts +7 -0
  82. package/dist/fingerprinting/fingerprint-overrides/mouse-humanization.d.ts.map +1 -0
  83. package/dist/fingerprinting/fingerprint-overrides/mouse-humanization.js +103 -0
  84. package/dist/fingerprinting/fingerprint-overrides/mouse-humanization.js.map +1 -0
  85. package/dist/fingerprinting/fingerprint-overrides/performance-spoofing.d.ts +6 -0
  86. package/dist/fingerprinting/fingerprint-overrides/performance-spoofing.d.ts.map +1 -0
  87. package/dist/fingerprinting/fingerprint-overrides/performance-spoofing.js +228 -0
  88. package/dist/fingerprinting/fingerprint-overrides/performance-spoofing.js.map +1 -0
  89. package/dist/fingerprinting/fingerprint-overrides/platform-consistency.d.ts +20 -0
  90. package/dist/fingerprinting/fingerprint-overrides/platform-consistency.d.ts.map +1 -0
  91. package/dist/fingerprinting/fingerprint-overrides/platform-consistency.js +227 -0
  92. package/dist/fingerprinting/fingerprint-overrides/platform-consistency.js.map +1 -0
  93. package/dist/fingerprinting/fingerprint-overrides/runtime-enable-bypass.d.ts +6 -0
  94. package/dist/fingerprinting/fingerprint-overrides/runtime-enable-bypass.d.ts.map +1 -0
  95. package/dist/fingerprinting/fingerprint-overrides/runtime-enable-bypass.js +84 -0
  96. package/dist/fingerprinting/fingerprint-overrides/runtime-enable-bypass.js.map +1 -0
  97. package/dist/fingerprinting/fingerprint-overrides/stealth-script.d.ts +6 -0
  98. package/dist/fingerprinting/fingerprint-overrides/stealth-script.d.ts.map +1 -0
  99. package/dist/fingerprinting/fingerprint-overrides/stealth-script.js +440 -0
  100. package/dist/fingerprinting/fingerprint-overrides/stealth-script.js.map +1 -0
  101. package/dist/fingerprinting/fingerprint-overrides/ua-ch.d.ts +6 -0
  102. package/dist/fingerprinting/fingerprint-overrides/ua-ch.d.ts.map +1 -0
  103. package/dist/fingerprinting/fingerprint-overrides/ua-ch.js +95 -0
  104. package/dist/fingerprinting/fingerprint-overrides/ua-ch.js.map +1 -0
  105. package/dist/fingerprinting/fingerprint-overrides/webgl-spoofing.d.ts +12 -0
  106. package/dist/fingerprinting/fingerprint-overrides/webgl-spoofing.d.ts.map +1 -0
  107. package/dist/fingerprinting/fingerprint-overrides/webgl-spoofing.js +167 -0
  108. package/dist/fingerprinting/fingerprint-overrides/webgl-spoofing.js.map +1 -0
  109. package/dist/fingerprinting/fingerprint-overrides/webgpu-spoofing.d.ts +6 -0
  110. package/dist/fingerprinting/fingerprint-overrides/webgpu-spoofing.d.ts.map +1 -0
  111. package/dist/fingerprinting/fingerprint-overrides/webgpu-spoofing.js +205 -0
  112. package/dist/fingerprinting/fingerprint-overrides/webgpu-spoofing.js.map +1 -0
  113. package/dist/fingerprinting/fingerprint-overrides/webrtc-spoofing.d.ts +6 -0
  114. package/dist/fingerprinting/fingerprint-overrides/webrtc-spoofing.d.ts.map +1 -0
  115. package/dist/fingerprinting/fingerprint-overrides/webrtc-spoofing.js +96 -0
  116. package/dist/fingerprinting/fingerprint-overrides/webrtc-spoofing.js.map +1 -0
  117. package/dist/index.d.ts +2 -1
  118. package/dist/index.d.ts.map +1 -1
  119. package/dist/index.js.map +1 -1
  120. package/dist/page.d.ts +1 -0
  121. package/dist/page.d.ts.map +1 -1
  122. package/dist/page.js +42 -1
  123. package/dist/page.js.map +1 -1
  124. package/dist/tsconfig.build.tsbuildinfo +1 -1
  125. package/package.json +5 -3
@@ -0,0 +1,227 @@
1
+ /**
2
+ * Platform Consistency Script
3
+ * Ensures all browser properties match the specified platform (1:1 fingerprinting)
4
+ */
5
+ export const createPlatformConsistencyScript = (platform, fingerprintData) => {
6
+ // Platform-specific configurations for 1:1 consistency
7
+ const platformConfigs = {
8
+ 'Win32': {
9
+ devicePixelRatio: 1.0,
10
+ screenDepth: 24,
11
+ colorDepth: 24,
12
+ hardwareConcurrency: 8,
13
+ maxTouchPoints: 0,
14
+ platform: 'Win32',
15
+ oscpu: 'Windows NT 10.0; Win64; x64',
16
+ vendor: '',
17
+ vendorSub: '',
18
+ productSub: '20030107',
19
+ cookieEnabled: true,
20
+ onLine: true,
21
+ language: 'en-US',
22
+ languages: ['en-US', 'en'],
23
+ userAgent: 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36',
24
+ appVersion: '5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36',
25
+ appName: 'Netscape',
26
+ appCodeName: 'Mozilla',
27
+ product: 'Gecko',
28
+ plugins: [
29
+ { name: 'Chrome PDF Plugin', filename: 'internal-pdf-viewer', description: 'Portable Document Format' },
30
+ { name: 'Chrome PDF Viewer', filename: 'mhjfbmdgcfjbbpaeojofohoefgiehjai', description: 'Portable Document Format' },
31
+ { name: 'Native Client', filename: 'internal-nacl-plugin', description: 'Native Client Executable' },
32
+ { name: 'Microsoft Edge PDF Plugin', filename: 'edge-pdf-viewer', description: 'Microsoft Edge PDF Viewer' },
33
+ { name: 'Widevine Content Decryption Module', filename: 'widevinecdmadapter', description: 'Enables Widevine licenses for playback of HTML audio/video content' },
34
+ ],
35
+ mimeTypes: [
36
+ { type: 'application/pdf', suffixes: 'pdf', description: 'Portable Document Format' },
37
+ { type: 'application/x-nacl', suffixes: '', description: 'Native Client Executable' },
38
+ { type: 'application/x-pnacl', suffixes: '', description: 'Portable Native Client Executable' },
39
+ { type: 'application/x-ppapi-widevine-cdm', suffixes: '', description: 'Widevine Content Decryption Module' },
40
+ ],
41
+ // Windows-specific connection properties
42
+ connection: {
43
+ downlink: 10,
44
+ effectiveType: '4g',
45
+ onchange: null,
46
+ rtt: 50,
47
+ saveData: false,
48
+ type: 'ethernet',
49
+ },
50
+ },
51
+ 'MacIntel': {
52
+ devicePixelRatio: 2.0,
53
+ screenDepth: 30,
54
+ colorDepth: 30,
55
+ hardwareConcurrency: 8,
56
+ maxTouchPoints: 0,
57
+ platform: 'MacIntel',
58
+ oscpu: undefined,
59
+ vendor: 'Google Inc.',
60
+ vendorSub: '',
61
+ productSub: '20030107',
62
+ cookieEnabled: true,
63
+ onLine: true,
64
+ language: 'en-US',
65
+ languages: ['en-US', 'en'],
66
+ plugins: [
67
+ { name: 'Chrome PDF Plugin', filename: 'internal-pdf-viewer' },
68
+ { name: 'Chrome PDF Viewer', filename: 'mhjfbmdgcfjbbpaeojofohoefgiehjai' },
69
+ ],
70
+ },
71
+ 'Linux x86_64': {
72
+ devicePixelRatio: 1.0,
73
+ screenDepth: 24,
74
+ colorDepth: 24,
75
+ hardwareConcurrency: 8,
76
+ maxTouchPoints: 0,
77
+ platform: 'Linux x86_64',
78
+ oscpu: 'Linux x86_64',
79
+ vendor: 'Google Inc.',
80
+ vendorSub: '',
81
+ productSub: '20030107',
82
+ cookieEnabled: true,
83
+ onLine: true,
84
+ language: 'en-US',
85
+ languages: ['en-US', 'en'],
86
+ plugins: [
87
+ { name: 'Chrome PDF Plugin', filename: 'internal-pdf-viewer' },
88
+ ],
89
+ },
90
+ };
91
+ const defaultConfig = platformConfigs[platform] || platformConfigs['Linux x86_64'];
92
+ // Merge fingerprint data with defaults if provided
93
+ const config = fingerprintData ? {
94
+ ...defaultConfig,
95
+ ...fingerprintData,
96
+ // Ensure platform consistency
97
+ platform: fingerprintData.platform || platform,
98
+ } : defaultConfig;
99
+ return `
100
+ (() => {
101
+ 'use strict';
102
+
103
+ // Platform Consistency for ${platform}
104
+ const config = ${JSON.stringify(config)};
105
+
106
+ // Override navigator properties for platform consistency
107
+ Object.defineProperty(navigator, 'platform', { get: () => config.platform, configurable: false });
108
+ Object.defineProperty(navigator, 'vendor', { get: () => config.vendor, configurable: false });
109
+ Object.defineProperty(navigator, 'vendorSub', { get: () => config.vendorSub, configurable: false });
110
+ Object.defineProperty(navigator, 'productSub', { get: () => config.productSub, configurable: false });
111
+ Object.defineProperty(navigator, 'hardwareConcurrency', { get: () => config.hardwareConcurrency, configurable: false });
112
+ Object.defineProperty(navigator, 'maxTouchPoints', { get: () => config.maxTouchPoints, configurable: false });
113
+ Object.defineProperty(navigator, 'cookieEnabled', { get: () => config.cookieEnabled, configurable: false });
114
+ Object.defineProperty(navigator, 'onLine', { get: () => config.onLine, configurable: false });
115
+ Object.defineProperty(navigator, 'language', { get: () => config.language, configurable: false });
116
+ Object.defineProperty(navigator, 'languages', { get: () => config.languages, configurable: false });
117
+
118
+ // Additional navigator properties for Windows consistency
119
+ if (config.userAgent) {
120
+ Object.defineProperty(navigator, 'userAgent', { get: () => config.userAgent, configurable: false });
121
+ }
122
+ if (config.appVersion) {
123
+ Object.defineProperty(navigator, 'appVersion', { get: () => config.appVersion, configurable: false });
124
+ }
125
+ if (config.appName) {
126
+ Object.defineProperty(navigator, 'appName', { get: () => config.appName, configurable: false });
127
+ }
128
+ if (config.appCodeName) {
129
+ Object.defineProperty(navigator, 'appCodeName', { get: () => config.appCodeName, configurable: false });
130
+ }
131
+ if (config.product) {
132
+ Object.defineProperty(navigator, 'product', { get: () => config.product, configurable: false });
133
+ }
134
+ if (config.oscpu !== undefined) {
135
+ Object.defineProperty(navigator, 'oscpu', { get: () => config.oscpu, configurable: false });
136
+ }
137
+
138
+ // Override navigator.plugins for Windows consistency
139
+ if (config.plugins) {
140
+ Object.defineProperty(navigator, 'plugins', {
141
+ get: () => {
142
+ const arr = Object.create(PluginArray.prototype);
143
+ config.plugins.forEach((p, i) => {
144
+ const plugin = Object.create(Plugin.prototype);
145
+ plugin.name = p.name;
146
+ plugin.filename = p.filename;
147
+ plugin.description = p.description;
148
+ plugin.length = 1;
149
+ plugin[0] = config.mimeTypes?.[i] || { type: 'application/pdf', suffixes: 'pdf', description: 'Portable Document Format' };
150
+ arr[i] = plugin;
151
+ arr[p.name] = plugin;
152
+ });
153
+ arr.length = config.plugins.length;
154
+ arr.item = (index) => arr[index] || null;
155
+ arr.namedItem = (name) => arr[name] || null;
156
+ arr.refresh = () => {};
157
+ return arr;
158
+ },
159
+ configurable: false,
160
+ enumerable: true
161
+ });
162
+ }
163
+
164
+ // Override navigator.mimeTypes for Windows consistency
165
+ if (config.mimeTypes) {
166
+ Object.defineProperty(navigator, 'mimeTypes', {
167
+ get: () => {
168
+ const arr = Object.create(MimeTypeArray.prototype);
169
+ config.mimeTypes.forEach((m, i) => {
170
+ const mimeType = Object.create(MimeType.prototype);
171
+ mimeType.type = m.type;
172
+ mimeType.suffixes = m.suffixes;
173
+ mimeType.description = m.description;
174
+ mimeType.enabledPlugin = config.plugins?.[0] || null;
175
+ arr[i] = mimeType;
176
+ arr[m.type] = mimeType;
177
+ });
178
+ arr.length = config.mimeTypes.length;
179
+ arr.item = (index) => arr[index] || null;
180
+ arr.namedItem = (name) => arr[name] || null;
181
+ return arr;
182
+ },
183
+ configurable: false,
184
+ enumerable: true
185
+ });
186
+ }
187
+
188
+ // Override navigator.connection for Windows consistency
189
+ if (config.connection && navigator.connection) {
190
+ Object.keys(config.connection).forEach(key => {
191
+ Object.defineProperty(navigator.connection, key, {
192
+ value: config.connection[key],
193
+ writable: false,
194
+ configurable: true
195
+ });
196
+ });
197
+ }
198
+
199
+ // Override screen properties
200
+ Object.defineProperty(window, 'devicePixelRatio', { get: () => config.devicePixelRatio, configurable: false });
201
+ Object.defineProperty(screen, 'colorDepth', { get: () => config.colorDepth, configurable: false });
202
+ Object.defineProperty(screen, 'pixelDepth', { get: () => config.screenDepth || config.colorDepth, configurable: false });
203
+
204
+ // Ensure WebGL returns platform-appropriate values
205
+ const getParameterProto = WebGLRenderingContext.prototype.getParameter;
206
+ WebGLRenderingContext.prototype.getParameter = function(param) {
207
+ if (param === 0x9245 || param === 0x9246) { // UNMASKED_VENDOR_WEBGL / UNMASKED_RENDERER_WEBGL
208
+ // Return platform-appropriate GPU with corrected ANGLE token count
209
+ if (config.platform === 'Win32') {
210
+ return param === 0x9245
211
+ ? 'NVIDIA Corporation'
212
+ : 'ANGLE (NVIDIA, NVIDIA GeForce GTX 1660 Ti Direct3D 11.0)'; // Fixed: fewer tokens
213
+ } else if (config.platform === 'MacIntel') {
214
+ return param === 0x9245 ? 'Apple Inc.' : 'ANGLE (Apple, Apple M1 Pro, OpenGL 4.1)';
215
+ } else {
216
+ return param === 0x9245 ? 'Intel' : 'ANGLE (Intel, Mesa Intel(R) UHD Graphics 630, OpenGL 4.6)';
217
+ }
218
+ }
219
+ return getParameterProto.apply(this, arguments);
220
+ };
221
+
222
+ if (typeof WebGL2RenderingContext !== 'undefined') {
223
+ WebGL2RenderingContext.prototype.getParameter = WebGLRenderingContext.prototype.getParameter;
224
+ }
225
+ })();`;
226
+ };
227
+ //# sourceMappingURL=platform-consistency.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"platform-consistency.js","sourceRoot":"","sources":["../../../src/fingerprinting/fingerprint-overrides/platform-consistency.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAiBH,MAAM,CAAC,MAAM,+BAA+B,GAAG,CAAC,QAAgB,EAAE,eAAgC,EAAU,EAAE;IAC1G,uDAAuD;IACvD,MAAM,eAAe,GAAG;QACpB,OAAO,EAAE;YACL,gBAAgB,EAAE,GAAG;YACrB,WAAW,EAAE,EAAE;YACf,UAAU,EAAE,EAAE;YACd,mBAAmB,EAAE,CAAC;YACtB,cAAc,EAAE,CAAC;YACjB,QAAQ,EAAE,OAAO;YACjB,KAAK,EAAE,6BAA6B;YACpC,MAAM,EAAE,EAAE;YACV,SAAS,EAAE,EAAE;YACb,UAAU,EAAE,UAAU;YACtB,aAAa,EAAE,IAAI;YACnB,MAAM,EAAE,IAAI;YACZ,QAAQ,EAAE,OAAO;YACjB,SAAS,EAAE,CAAC,OAAO,EAAE,IAAI,CAAC;YAC1B,SAAS,EAAE,iHAAiH;YAC5H,UAAU,EAAE,yGAAyG;YACrH,OAAO,EAAE,UAAU;YACnB,WAAW,EAAE,SAAS;YACtB,OAAO,EAAE,OAAO;YAChB,OAAO,EAAE;gBACL,EAAE,IAAI,EAAE,mBAAmB,EAAE,QAAQ,EAAE,qBAAqB,EAAE,WAAW,EAAE,0BAA0B,EAAE;gBACvG,EAAE,IAAI,EAAE,mBAAmB,EAAE,QAAQ,EAAE,kCAAkC,EAAE,WAAW,EAAE,0BAA0B,EAAE;gBACpH,EAAE,IAAI,EAAE,eAAe,EAAE,QAAQ,EAAE,sBAAsB,EAAE,WAAW,EAAE,0BAA0B,EAAE;gBACpG,EAAE,IAAI,EAAE,2BAA2B,EAAE,QAAQ,EAAE,iBAAiB,EAAE,WAAW,EAAE,2BAA2B,EAAE;gBAC5G,EAAE,IAAI,EAAE,oCAAoC,EAAE,QAAQ,EAAE,oBAAoB,EAAE,WAAW,EAAE,oEAAoE,EAAE;aACpK;YACD,SAAS,EAAE;gBACP,EAAE,IAAI,EAAE,iBAAiB,EAAE,QAAQ,EAAE,KAAK,EAAE,WAAW,EAAE,0BAA0B,EAAE;gBACrF,EAAE,IAAI,EAAE,oBAAoB,EAAE,QAAQ,EAAE,EAAE,EAAE,WAAW,EAAE,0BAA0B,EAAE;gBACrF,EAAE,IAAI,EAAE,qBAAqB,EAAE,QAAQ,EAAE,EAAE,EAAE,WAAW,EAAE,mCAAmC,EAAE;gBAC/F,EAAE,IAAI,EAAE,kCAAkC,EAAE,QAAQ,EAAE,EAAE,EAAE,WAAW,EAAE,oCAAoC,EAAE;aAChH;YACD,yCAAyC;YACzC,UAAU,EAAE;gBACR,QAAQ,EAAE,EAAE;gBACZ,aAAa,EAAE,IAAI;gBACnB,QAAQ,EAAE,IAAI;gBACd,GAAG,EAAE,EAAE;gBACP,QAAQ,EAAE,KAAK;gBACf,IAAI,EAAE,UAAU;aACnB;SACJ;QACD,UAAU,EAAE;YACR,gBAAgB,EAAE,GAAG;YACrB,WAAW,EAAE,EAAE;YACf,UAAU,EAAE,EAAE;YACd,mBAAmB,EAAE,CAAC;YACtB,cAAc,EAAE,CAAC;YACjB,QAAQ,EAAE,UAAU;YACpB,KAAK,EAAE,SAAS;YAChB,MAAM,EAAE,aAAa;YACrB,SAAS,EAAE,EAAE;YACb,UAAU,EAAE,UAAU;YACtB,aAAa,EAAE,IAAI;YACnB,MAAM,EAAE,IAAI;YACZ,QAAQ,EAAE,OAAO;YACjB,SAAS,EAAE,CAAC,OAAO,EAAE,IAAI,CAAC;YAC1B,OAAO,EAAE;gBACL,EAAE,IAAI,EAAE,mBAAmB,EAAE,QAAQ,EAAE,qBAAqB,EAAE;gBAC9D,EAAE,IAAI,EAAE,mBAAmB,EAAE,QAAQ,EAAE,kCAAkC,EAAE;aAC9E;SACJ;QACD,cAAc,EAAE;YACZ,gBAAgB,EAAE,GAAG;YACrB,WAAW,EAAE,EAAE;YACf,UAAU,EAAE,EAAE;YACd,mBAAmB,EAAE,CAAC;YACtB,cAAc,EAAE,CAAC;YACjB,QAAQ,EAAE,cAAc;YACxB,KAAK,EAAE,cAAc;YACrB,MAAM,EAAE,aAAa;YACrB,SAAS,EAAE,EAAE;YACb,UAAU,EAAE,UAAU;YACtB,aAAa,EAAE,IAAI;YACnB,MAAM,EAAE,IAAI;YACZ,QAAQ,EAAE,OAAO;YACjB,SAAS,EAAE,CAAC,OAAO,EAAE,IAAI,CAAC;YAC1B,OAAO,EAAE;gBACL,EAAE,IAAI,EAAE,mBAAmB,EAAE,QAAQ,EAAE,qBAAqB,EAAE;aACjE;SACJ;KACJ,CAAC;IAEF,MAAM,aAAa,GAAG,eAAe,CAAC,QAAwC,CAAC,IAAI,eAAe,CAAC,cAAc,CAAC,CAAC;IAEnH,mDAAmD;IACnD,MAAM,MAAM,GAAG,eAAe,CAAC,CAAC,CAAC;QAC7B,GAAG,aAAa;QAChB,GAAG,eAAe;QAClB,8BAA8B;QAC9B,QAAQ,EAAE,eAAe,CAAC,QAAQ,IAAI,QAAQ;KACjD,CAAC,CAAC,CAAC,aAAa,CAAC;IAElB,OAAO;;;;kCAIuB,QAAQ;qBACrB,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;MAyHrC,CAAC;AACP,CAAC,CAAC"}
@@ -0,0 +1,6 @@
1
+ /**
2
+ * Runtime.enable Bypass
3
+ * Prevents CDP detection through console.log(Error) technique
4
+ */
5
+ export declare const setupRuntimeEnableBypass: (client: any) => Promise<void>;
6
+ //# sourceMappingURL=runtime-enable-bypass.d.ts.map
@@ -0,0 +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"}
@@ -0,0 +1,84 @@
1
+ /**
2
+ * Runtime.enable Bypass
3
+ * Prevents CDP detection through console.log(Error) technique
4
+ */
5
+ export const setupRuntimeEnableBypass = async (client) => {
6
+ // Intercept Runtime.enable calls to prevent detection
7
+ await client.send('Runtime.evaluate', {
8
+ expression: `
9
+ (() => {
10
+ // Store the original CDP send method if accessible
11
+ if (window.__CDP_CLIENT__) {
12
+ const originalSend = window.__CDP_CLIENT__.send;
13
+ window.__CDP_CLIENT__.send = function(method, params) {
14
+ // Block or modify Runtime.enable calls
15
+ if (method === 'Runtime.enable') {
16
+ console.log('Runtime.enable blocked');
17
+ return Promise.resolve({});
18
+ }
19
+ return originalSend.apply(this, arguments);
20
+ };
21
+ }
22
+
23
+ // Additional protection against CDP detection
24
+ const originalError = Error;
25
+ let errorCounter = 0;
26
+
27
+ window.Error = new Proxy(originalError, {
28
+ construct(target, args) {
29
+ const error = Reflect.construct(target, args);
30
+
31
+ // Detect CDP serialization attempts
32
+ const stack = new originalError().stack;
33
+ if (stack && stack.includes('__puppeteer_evaluation_script__')) {
34
+ // This is likely a CDP evaluation, modify behavior
35
+ Object.defineProperty(error, 'stack', {
36
+ get() {
37
+ return 'Error\\n at <anonymous>:1:1';
38
+ },
39
+ configurable: false
40
+ });
41
+ }
42
+
43
+ return error;
44
+ }
45
+ });
46
+
47
+ // Protect against console-based CDP detection
48
+ const protectedConsole = new Proxy(console, {
49
+ get(target, prop) {
50
+ const original = target[prop];
51
+ if (typeof original === 'function') {
52
+ return new Proxy(original, {
53
+ apply(fn, thisArg, args) {
54
+ // Filter out Error objects that might be used for CDP detection
55
+ const filteredArgs = args.map(arg => {
56
+ if (arg instanceof Error && arg.stack) {
57
+ // Check if this might be a CDP detection attempt
58
+ const stackString = arg.stack.toString();
59
+ if (stackString.includes('Error.captureStackTrace') ||
60
+ stackString.includes('__puppeteer_evaluation_script__')) {
61
+ return arg.toString();
62
+ }
63
+ }
64
+ return arg;
65
+ });
66
+ return Reflect.apply(fn, thisArg, filteredArgs);
67
+ }
68
+ });
69
+ }
70
+ return original;
71
+ }
72
+ });
73
+
74
+ try {
75
+ Object.defineProperty(window, 'console', {
76
+ value: protectedConsole,
77
+ writable: false,
78
+ configurable: false
79
+ });
80
+ } catch (e) {}
81
+ })();`,
82
+ });
83
+ };
84
+ //# sourceMappingURL=runtime-enable-bypass.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"runtime-enable-bypass.js","sourceRoot":"","sources":["../../../src/fingerprinting/fingerprint-overrides/runtime-enable-bypass.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,MAAM,CAAC,MAAM,wBAAwB,GAAG,KAAK,EAAE,MAAW,EAAiB,EAAE;IACzE,sDAAsD;IACtD,MAAM,MAAM,CAAC,IAAI,CAAC,kBAAkB,EAAE;QAClC,UAAU,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;MAyEd;KACD,CAAC,CAAC;AACP,CAAC,CAAC"}
@@ -0,0 +1,6 @@
1
+ /**
2
+ * Base stealth script for hiding automation indicators
3
+ * Includes error stack hiding, console patching, and automation flags removal
4
+ */
5
+ export declare const createStealthScript: () => string;
6
+ //# sourceMappingURL=stealth-script.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"stealth-script.d.ts","sourceRoot":"","sources":["../../../src/fingerprinting/fingerprint-overrides/stealth-script.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,eAAO,MAAM,mBAAmB,QAAO,MAkbtC,CAAC"}