jumpy-lion 0.1.0 → 0.1.2

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 (230) hide show
  1. package/dist/browser-controller.d.ts +22 -3
  2. package/dist/browser-controller.d.ts.map +1 -1
  3. package/dist/browser-controller.js +319 -28
  4. package/dist/browser-controller.js.map +1 -1
  5. package/dist/browser-plugin.d.ts +56 -7
  6. package/dist/browser-plugin.d.ts.map +1 -1
  7. package/dist/browser-plugin.js +268 -56
  8. package/dist/browser-plugin.js.map +1 -1
  9. package/dist/browser-process/browser.d.ts +39 -0
  10. package/dist/browser-process/browser.d.ts.map +1 -1
  11. package/dist/browser-process/browser.js +125 -18
  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 +100 -6
  16. package/dist/browser-process/process.js.map +1 -1
  17. package/dist/browser-profiles/chrome/default.d.ts +116 -0
  18. package/dist/browser-profiles/chrome/default.d.ts.map +1 -1
  19. package/dist/browser-profiles/chrome/default.js +118 -1
  20. package/dist/browser-profiles/chrome/default.js.map +1 -1
  21. package/dist/browser-profiles/chrome/populate-profile.d.ts +76 -0
  22. package/dist/browser-profiles/chrome/populate-profile.d.ts.map +1 -0
  23. package/dist/browser-profiles/chrome/populate-profile.js +300 -0
  24. package/dist/browser-profiles/chrome/populate-profile.js.map +1 -0
  25. package/dist/browser-profiles/index.d.ts +1 -0
  26. package/dist/browser-profiles/index.d.ts.map +1 -1
  27. package/dist/browser-profiles/index.js +2 -0
  28. package/dist/browser-profiles/index.js.map +1 -1
  29. package/dist/crawler.d.ts +81 -9
  30. package/dist/crawler.d.ts.map +1 -1
  31. package/dist/crawler.js +26 -10
  32. package/dist/crawler.js.map +1 -1
  33. package/dist/fingerprinting/all-fingerprint-defender/_locales/en/messages.json +95 -0
  34. package/dist/fingerprinting/all-fingerprint-defender/assets/chunk-16ff15da.d.ts +2 -0
  35. package/dist/fingerprinting/all-fingerprint-defender/assets/chunk-16ff15da.d.ts.map +1 -0
  36. package/dist/fingerprinting/all-fingerprint-defender/assets/chunk-16ff15da.js +1 -0
  37. package/dist/fingerprinting/all-fingerprint-defender/assets/chunk-16ff15da.js.map +1 -0
  38. package/dist/fingerprinting/all-fingerprint-defender/assets/chunk-1a1456ec.d.ts +2 -0
  39. package/dist/fingerprinting/all-fingerprint-defender/assets/chunk-1a1456ec.d.ts.map +1 -0
  40. package/dist/fingerprinting/all-fingerprint-defender/assets/chunk-1a1456ec.js +1 -0
  41. package/dist/fingerprinting/all-fingerprint-defender/assets/chunk-1a1456ec.js.map +1 -0
  42. package/dist/fingerprinting/all-fingerprint-defender/assets/chunk-3a7b59dd.d.ts +83 -0
  43. package/dist/fingerprinting/all-fingerprint-defender/assets/chunk-3a7b59dd.d.ts.map +1 -0
  44. package/dist/fingerprinting/all-fingerprint-defender/assets/chunk-3a7b59dd.js +1 -0
  45. package/dist/fingerprinting/all-fingerprint-defender/assets/chunk-3a7b59dd.js.map +1 -0
  46. package/dist/fingerprinting/all-fingerprint-defender/assets/chunk-7ce85519.d.ts +2 -0
  47. package/dist/fingerprinting/all-fingerprint-defender/assets/chunk-7ce85519.d.ts.map +1 -0
  48. package/dist/fingerprinting/all-fingerprint-defender/assets/chunk-7ce85519.js +1 -0
  49. package/dist/fingerprinting/all-fingerprint-defender/assets/chunk-7ce85519.js.map +1 -0
  50. package/dist/fingerprinting/all-fingerprint-defender/assets/chunk-aaea1190.d.ts +2 -0
  51. package/dist/fingerprinting/all-fingerprint-defender/assets/chunk-aaea1190.d.ts.map +1 -0
  52. package/dist/fingerprinting/all-fingerprint-defender/assets/chunk-aaea1190.js +1 -0
  53. package/dist/fingerprinting/all-fingerprint-defender/assets/chunk-aaea1190.js.map +1 -0
  54. package/dist/fingerprinting/all-fingerprint-defender/assets/chunk-b4410958.d.ts +2 -0
  55. package/dist/fingerprinting/all-fingerprint-defender/assets/chunk-b4410958.d.ts.map +1 -0
  56. package/dist/fingerprinting/all-fingerprint-defender/assets/chunk-b4410958.js +1 -0
  57. package/dist/fingerprinting/all-fingerprint-defender/assets/chunk-b4410958.js.map +1 -0
  58. package/dist/fingerprinting/all-fingerprint-defender/assets/chunk-dfed3562.d.ts +2 -0
  59. package/dist/fingerprinting/all-fingerprint-defender/assets/chunk-dfed3562.d.ts.map +1 -0
  60. package/dist/fingerprinting/all-fingerprint-defender/assets/chunk-dfed3562.js +1 -0
  61. package/dist/fingerprinting/all-fingerprint-defender/assets/chunk-dfed3562.js.map +1 -0
  62. package/dist/fingerprinting/all-fingerprint-defender/assets/debounce-09920c81.css +1 -0
  63. package/dist/fingerprinting/all-fingerprint-defender/assets/options-fe2fb5aa.css +1 -0
  64. package/dist/fingerprinting/all-fingerprint-defender/assets/popup-1886d2ef.css +1 -0
  65. package/dist/fingerprinting/all-fingerprint-defender/img/icon-128.png +0 -0
  66. package/dist/fingerprinting/all-fingerprint-defender/img/icon-16.png +0 -0
  67. package/dist/fingerprinting/all-fingerprint-defender/img/icon-24.png +0 -0
  68. package/dist/fingerprinting/all-fingerprint-defender/img/icon-32-disabled.png +0 -0
  69. package/dist/fingerprinting/all-fingerprint-defender/img/icon-32.png +0 -0
  70. package/dist/fingerprinting/all-fingerprint-defender/img/icon-48.png +0 -0
  71. package/dist/fingerprinting/all-fingerprint-defender/manifest.json +83 -0
  72. package/dist/fingerprinting/all-fingerprint-defender/options.html +17 -0
  73. package/dist/fingerprinting/all-fingerprint-defender/popup.html +23 -0
  74. package/dist/fingerprinting/anti-webgpu/background.d.ts +2 -0
  75. package/dist/fingerprinting/anti-webgpu/background.d.ts.map +1 -0
  76. package/dist/fingerprinting/anti-webgpu/background.js +4 -0
  77. package/dist/fingerprinting/anti-webgpu/background.js.map +1 -0
  78. package/dist/fingerprinting/anti-webgpu/data/content_script/inject.d.ts +2 -0
  79. package/dist/fingerprinting/anti-webgpu/data/content_script/inject.d.ts.map +1 -0
  80. package/dist/fingerprinting/anti-webgpu/data/content_script/inject.js +50 -0
  81. package/dist/fingerprinting/anti-webgpu/data/content_script/inject.js.map +1 -0
  82. package/dist/fingerprinting/anti-webgpu/data/content_script/page_context/inject.d.ts +2 -0
  83. package/dist/fingerprinting/anti-webgpu/data/content_script/page_context/inject.d.ts.map +1 -0
  84. package/dist/fingerprinting/anti-webgpu/data/content_script/page_context/inject.js +172 -0
  85. package/dist/fingerprinting/anti-webgpu/data/content_script/page_context/inject.js.map +1 -0
  86. package/dist/fingerprinting/anti-webgpu/data/icons/128.png +0 -0
  87. package/dist/fingerprinting/anti-webgpu/data/icons/16.png +0 -0
  88. package/dist/fingerprinting/anti-webgpu/data/icons/32.png +0 -0
  89. package/dist/fingerprinting/anti-webgpu/data/icons/48.png +0 -0
  90. package/dist/fingerprinting/anti-webgpu/data/icons/64.png +0 -0
  91. package/dist/fingerprinting/anti-webgpu/data/popup/popup.css +88 -0
  92. package/dist/fingerprinting/anti-webgpu/data/popup/popup.d.ts +2 -0
  93. package/dist/fingerprinting/anti-webgpu/data/popup/popup.d.ts.map +1 -0
  94. package/dist/fingerprinting/anti-webgpu/data/popup/popup.html +58 -0
  95. package/dist/fingerprinting/anti-webgpu/data/popup/popup.js +96 -0
  96. package/dist/fingerprinting/anti-webgpu/data/popup/popup.js.map +1 -0
  97. package/dist/fingerprinting/anti-webgpu/lib/chrome.d.ts +2 -0
  98. package/dist/fingerprinting/anti-webgpu/lib/chrome.d.ts.map +1 -0
  99. package/dist/fingerprinting/anti-webgpu/lib/chrome.js +249 -0
  100. package/dist/fingerprinting/anti-webgpu/lib/chrome.js.map +1 -0
  101. package/dist/fingerprinting/anti-webgpu/lib/common.d.ts +2 -0
  102. package/dist/fingerprinting/anti-webgpu/lib/common.d.ts.map +1 -0
  103. package/dist/fingerprinting/anti-webgpu/lib/common.js +86 -0
  104. package/dist/fingerprinting/anti-webgpu/lib/common.js.map +1 -0
  105. package/dist/fingerprinting/anti-webgpu/lib/config.d.ts +2 -0
  106. package/dist/fingerprinting/anti-webgpu/lib/config.d.ts.map +1 -0
  107. package/dist/fingerprinting/anti-webgpu/lib/config.js +14 -0
  108. package/dist/fingerprinting/anti-webgpu/lib/config.js.map +1 -0
  109. package/dist/fingerprinting/anti-webgpu/lib/runtime.d.ts +2 -0
  110. package/dist/fingerprinting/anti-webgpu/lib/runtime.d.ts.map +1 -0
  111. package/dist/fingerprinting/anti-webgpu/lib/runtime.js +107 -0
  112. package/dist/fingerprinting/anti-webgpu/lib/runtime.js.map +1 -0
  113. package/dist/fingerprinting/anti-webgpu/manifest.json +58 -0
  114. package/dist/fingerprinting/custom-fingerprint-injector.d.ts +87 -0
  115. package/dist/fingerprinting/custom-fingerprint-injector.d.ts.map +1 -0
  116. package/dist/fingerprinting/custom-fingerprint-injector.js +342 -0
  117. package/dist/fingerprinting/custom-fingerprint-injector.js.map +1 -0
  118. package/dist/fingerprinting/fingerprint-injector.d.ts +157 -0
  119. package/dist/fingerprinting/fingerprint-injector.d.ts.map +1 -0
  120. package/dist/fingerprinting/fingerprint-injector.js +632 -0
  121. package/dist/fingerprinting/fingerprint-injector.js.map +1 -0
  122. package/dist/fingerprinting/fingerprint-overrides/audio-spoofing.d.ts +6 -0
  123. package/dist/fingerprinting/fingerprint-overrides/audio-spoofing.d.ts.map +1 -0
  124. package/dist/fingerprinting/fingerprint-overrides/audio-spoofing.js +119 -0
  125. package/dist/fingerprinting/fingerprint-overrides/audio-spoofing.js.map +1 -0
  126. package/dist/fingerprinting/fingerprint-overrides/canvas-protection.d.ts +6 -0
  127. package/dist/fingerprinting/fingerprint-overrides/canvas-protection.d.ts.map +1 -0
  128. package/dist/fingerprinting/fingerprint-overrides/canvas-protection.js +149 -0
  129. package/dist/fingerprinting/fingerprint-overrides/canvas-protection.js.map +1 -0
  130. package/dist/fingerprinting/fingerprint-overrides/cdp-detection-bypass.d.ts +14 -0
  131. package/dist/fingerprinting/fingerprint-overrides/cdp-detection-bypass.d.ts.map +1 -0
  132. package/dist/fingerprinting/fingerprint-overrides/cdp-detection-bypass.js +763 -0
  133. package/dist/fingerprinting/fingerprint-overrides/cdp-detection-bypass.js.map +1 -0
  134. package/dist/fingerprinting/fingerprint-overrides/client-rect-spoofing.d.ts +6 -0
  135. package/dist/fingerprinting/fingerprint-overrides/client-rect-spoofing.d.ts.map +1 -0
  136. package/dist/fingerprinting/fingerprint-overrides/client-rect-spoofing.js +195 -0
  137. package/dist/fingerprinting/fingerprint-overrides/client-rect-spoofing.js.map +1 -0
  138. package/dist/fingerprinting/fingerprint-overrides/coalesced-events-spoofing.d.ts +10 -0
  139. package/dist/fingerprinting/fingerprint-overrides/coalesced-events-spoofing.d.ts.map +1 -0
  140. package/dist/fingerprinting/fingerprint-overrides/coalesced-events-spoofing.js +195 -0
  141. package/dist/fingerprinting/fingerprint-overrides/coalesced-events-spoofing.js.map +1 -0
  142. package/dist/fingerprinting/fingerprint-overrides/datadome-bypass.d.ts +28 -0
  143. package/dist/fingerprinting/fingerprint-overrides/datadome-bypass.d.ts.map +1 -0
  144. package/dist/fingerprinting/fingerprint-overrides/datadome-bypass.js +1181 -0
  145. package/dist/fingerprinting/fingerprint-overrides/datadome-bypass.js.map +1 -0
  146. package/dist/fingerprinting/fingerprint-overrides/font-spoofing.d.ts +7 -0
  147. package/dist/fingerprinting/fingerprint-overrides/font-spoofing.d.ts.map +1 -0
  148. package/dist/fingerprinting/fingerprint-overrides/font-spoofing.js +171 -0
  149. package/dist/fingerprinting/fingerprint-overrides/font-spoofing.js.map +1 -0
  150. package/dist/fingerprinting/fingerprint-overrides/index.d.ts +36 -0
  151. package/dist/fingerprinting/fingerprint-overrides/index.d.ts.map +1 -0
  152. package/dist/fingerprinting/fingerprint-overrides/index.js +40 -0
  153. package/dist/fingerprinting/fingerprint-overrides/index.js.map +1 -0
  154. package/dist/fingerprinting/fingerprint-overrides/keyboard-humanization.d.ts +45 -0
  155. package/dist/fingerprinting/fingerprint-overrides/keyboard-humanization.d.ts.map +1 -0
  156. package/dist/fingerprinting/fingerprint-overrides/keyboard-humanization.js +268 -0
  157. package/dist/fingerprinting/fingerprint-overrides/keyboard-humanization.js.map +1 -0
  158. package/dist/fingerprinting/fingerprint-overrides/locale-spoofing.d.ts +6 -0
  159. package/dist/fingerprinting/fingerprint-overrides/locale-spoofing.d.ts.map +1 -0
  160. package/dist/fingerprinting/fingerprint-overrides/locale-spoofing.js +301 -0
  161. package/dist/fingerprinting/fingerprint-overrides/locale-spoofing.js.map +1 -0
  162. package/dist/fingerprinting/fingerprint-overrides/mouse-humanization.d.ts +7 -0
  163. package/dist/fingerprinting/fingerprint-overrides/mouse-humanization.d.ts.map +1 -0
  164. package/dist/fingerprinting/fingerprint-overrides/mouse-humanization.js +58 -0
  165. package/dist/fingerprinting/fingerprint-overrides/mouse-humanization.js.map +1 -0
  166. package/dist/fingerprinting/fingerprint-overrides/performance-spoofing.d.ts +6 -0
  167. package/dist/fingerprinting/fingerprint-overrides/performance-spoofing.d.ts.map +1 -0
  168. package/dist/fingerprinting/fingerprint-overrides/performance-spoofing.js +249 -0
  169. package/dist/fingerprinting/fingerprint-overrides/performance-spoofing.js.map +1 -0
  170. package/dist/fingerprinting/fingerprint-overrides/platform-consistency.d.ts +33 -0
  171. package/dist/fingerprinting/fingerprint-overrides/platform-consistency.d.ts.map +1 -0
  172. package/dist/fingerprinting/fingerprint-overrides/platform-consistency.js +618 -0
  173. package/dist/fingerprinting/fingerprint-overrides/platform-consistency.js.map +1 -0
  174. package/dist/fingerprinting/fingerprint-overrides/prototype-integrity.d.ts +13 -0
  175. package/dist/fingerprinting/fingerprint-overrides/prototype-integrity.d.ts.map +1 -0
  176. package/dist/fingerprinting/fingerprint-overrides/prototype-integrity.js +356 -0
  177. package/dist/fingerprinting/fingerprint-overrides/prototype-integrity.js.map +1 -0
  178. package/dist/fingerprinting/fingerprint-overrides/runtime-enable-bypass.d.ts +18 -0
  179. package/dist/fingerprinting/fingerprint-overrides/runtime-enable-bypass.d.ts.map +1 -0
  180. package/dist/fingerprinting/fingerprint-overrides/runtime-enable-bypass.js +171 -0
  181. package/dist/fingerprinting/fingerprint-overrides/runtime-enable-bypass.js.map +1 -0
  182. package/dist/fingerprinting/fingerprint-overrides/scroll-humanization.d.ts +55 -0
  183. package/dist/fingerprinting/fingerprint-overrides/scroll-humanization.d.ts.map +1 -0
  184. package/dist/fingerprinting/fingerprint-overrides/scroll-humanization.js +244 -0
  185. package/dist/fingerprinting/fingerprint-overrides/scroll-humanization.js.map +1 -0
  186. package/dist/fingerprinting/fingerprint-overrides/stealth-script.d.ts +14 -0
  187. package/dist/fingerprinting/fingerprint-overrides/stealth-script.d.ts.map +1 -0
  188. package/dist/fingerprinting/fingerprint-overrides/stealth-script.js +925 -0
  189. package/dist/fingerprinting/fingerprint-overrides/stealth-script.js.map +1 -0
  190. package/dist/fingerprinting/fingerprint-overrides/storage-consistency.d.ts +13 -0
  191. package/dist/fingerprinting/fingerprint-overrides/storage-consistency.d.ts.map +1 -0
  192. package/dist/fingerprinting/fingerprint-overrides/storage-consistency.js +346 -0
  193. package/dist/fingerprinting/fingerprint-overrides/storage-consistency.js.map +1 -0
  194. package/dist/fingerprinting/fingerprint-overrides/timing-consistency.d.ts +13 -0
  195. package/dist/fingerprinting/fingerprint-overrides/timing-consistency.d.ts.map +1 -0
  196. package/dist/fingerprinting/fingerprint-overrides/timing-consistency.js +264 -0
  197. package/dist/fingerprinting/fingerprint-overrides/timing-consistency.js.map +1 -0
  198. package/dist/fingerprinting/fingerprint-overrides/ua-ch.d.ts +27 -0
  199. package/dist/fingerprinting/fingerprint-overrides/ua-ch.d.ts.map +1 -0
  200. package/dist/fingerprinting/fingerprint-overrides/ua-ch.js +213 -0
  201. package/dist/fingerprinting/fingerprint-overrides/ua-ch.js.map +1 -0
  202. package/dist/fingerprinting/fingerprint-overrides/utils.d.ts +12 -0
  203. package/dist/fingerprinting/fingerprint-overrides/utils.d.ts.map +1 -0
  204. package/dist/fingerprinting/fingerprint-overrides/utils.js +517 -0
  205. package/dist/fingerprinting/fingerprint-overrides/utils.js.map +1 -0
  206. package/dist/fingerprinting/fingerprint-overrides/webgl-spoofing.d.ts +12 -0
  207. package/dist/fingerprinting/fingerprint-overrides/webgl-spoofing.d.ts.map +1 -0
  208. package/dist/fingerprinting/fingerprint-overrides/webgl-spoofing.js +215 -0
  209. package/dist/fingerprinting/fingerprint-overrides/webgl-spoofing.js.map +1 -0
  210. package/dist/fingerprinting/fingerprint-overrides/webgpu-spoofing.d.ts +6 -0
  211. package/dist/fingerprinting/fingerprint-overrides/webgpu-spoofing.d.ts.map +1 -0
  212. package/dist/fingerprinting/fingerprint-overrides/webgpu-spoofing.js +202 -0
  213. package/dist/fingerprinting/fingerprint-overrides/webgpu-spoofing.js.map +1 -0
  214. package/dist/fingerprinting/fingerprint-overrides/webrtc-spoofing.d.ts +6 -0
  215. package/dist/fingerprinting/fingerprint-overrides/webrtc-spoofing.d.ts.map +1 -0
  216. package/dist/fingerprinting/fingerprint-overrides/webrtc-spoofing.js +188 -0
  217. package/dist/fingerprinting/fingerprint-overrides/webrtc-spoofing.js.map +1 -0
  218. package/dist/index.d.ts +4 -0
  219. package/dist/index.d.ts.map +1 -1
  220. package/dist/index.js +2 -0
  221. package/dist/index.js.map +1 -1
  222. package/dist/launcher-wrap.d.ts +2 -2
  223. package/dist/launcher-wrap.d.ts.map +1 -1
  224. package/dist/launcher-wrap.js.map +1 -1
  225. package/dist/page.d.ts +161 -7
  226. package/dist/page.d.ts.map +1 -1
  227. package/dist/page.js +1034 -23
  228. package/dist/page.js.map +1 -1
  229. package/dist/tsconfig.build.tsbuildinfo +1 -1
  230. package/package.json +8 -4
@@ -0,0 +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,MAiHvD,CAAC"}
@@ -0,0 +1,119 @@
1
+ /**
2
+ * Audio Fingerprint Spoofing
3
+ * Adds controlled noise to audio processing to prevent fingerprinting
4
+ */
5
+ export const createAudioFingerprintSpoofingScript = () => {
6
+ return `
7
+ (() => {
8
+ 'use strict';
9
+
10
+ // Audio Fingerprint Spoofing for 2025
11
+ const spoofAudioContext = () => {
12
+ const AudioContext = window.AudioContext || window.webkitAudioContext;
13
+ if (!AudioContext) return;
14
+
15
+ const OriginalAudioContext = AudioContext;
16
+ const OriginalOfflineAudioContext = window.OfflineAudioContext || window.webkitOfflineAudioContext;
17
+
18
+ // Seeded PRNG (mulberry32) for deterministic noise
19
+ const createSeededRNG = (seed) => {
20
+ let s = seed | 0;
21
+ return () => {
22
+ s = s + 0x6D2B79F5 | 0;
23
+ let t = Math.imul(s ^ s >>> 15, 1 | s);
24
+ t = t + Math.imul(t ^ t >>> 7, 61 | t) ^ t;
25
+ return ((t ^ t >>> 14) >>> 0) / 4294967296;
26
+ };
27
+ };
28
+ const sessionSeed = Date.now() ^ 0xB7E15162;
29
+ const seededRandom = createSeededRNG(sessionSeed);
30
+
31
+ // Add controlled per-sample noise to audio processing
32
+ const addNoise = (array) => {
33
+ if (!array || !array.length) return array;
34
+
35
+ for (let i = 0; i < array.length; i++) {
36
+ const noise = 0.00001 * (seededRandom() - 0.5);
37
+ array[i] = array[i] + noise;
38
+ }
39
+ return array;
40
+ };
41
+
42
+ // Override AudioContext
43
+ window.AudioContext = window.webkitAudioContext = new Proxy(OriginalAudioContext, {
44
+ construct(target, args) {
45
+ const context = Reflect.construct(target, args);
46
+
47
+ // Override createAnalyser
48
+ const originalCreateAnalyser = context.createAnalyser;
49
+ context.createAnalyser = function() {
50
+ const analyser = originalCreateAnalyser.apply(this, arguments);
51
+
52
+ const originalGetFloatFrequencyData = analyser.getFloatFrequencyData;
53
+ analyser.getFloatFrequencyData = function(array) {
54
+ originalGetFloatFrequencyData.apply(this, arguments);
55
+ addNoise(array);
56
+ };
57
+
58
+ const originalGetByteFrequencyData = analyser.getByteFrequencyData;
59
+ analyser.getByteFrequencyData = function(array) {
60
+ originalGetByteFrequencyData.apply(this, arguments);
61
+ for (let i = 0; i < array.length; i++) {
62
+ array[i] = Math.min(255, Math.max(0, array[i] + Math.floor(seededRandom() * 3 - 1)));
63
+ }
64
+ };
65
+
66
+ return analyser;
67
+ };
68
+
69
+ return context;
70
+ }
71
+ });
72
+
73
+ // Override OfflineAudioContext
74
+ if (OriginalOfflineAudioContext) {
75
+ window.OfflineAudioContext = window.webkitOfflineAudioContext = new Proxy(OriginalOfflineAudioContext, {
76
+ construct(target, args) {
77
+ const context = Reflect.construct(target, args);
78
+
79
+ const originalStartRendering = context.startRendering;
80
+ context.startRendering = function() {
81
+ return originalStartRendering.apply(this, arguments).then(buffer => {
82
+ // Add noise to the rendered buffer
83
+ for (let channel = 0; channel < buffer.numberOfChannels; channel++) {
84
+ const channelData = buffer.getChannelData(channel);
85
+ addNoise(channelData);
86
+ }
87
+ return buffer;
88
+ });
89
+ };
90
+
91
+ return context;
92
+ }
93
+ });
94
+ }
95
+
96
+ // Register Proxy constructors with stealth utils for toString masking
97
+ const _s = typeof __stealth !== 'undefined' ? __stealth : null;
98
+ if (_s && _s.utils) {
99
+ _s.utils.registerNativeFunction(window.AudioContext, 'AudioContext');
100
+ if (window.OfflineAudioContext) {
101
+ _s.utils.registerNativeFunction(window.OfflineAudioContext, 'OfflineAudioContext');
102
+ }
103
+ }
104
+ };
105
+
106
+ const DEBUG_PREFIX = '[CDP-FP-DEBUG]';
107
+ const ERROR_PREFIX = '[CDP-FP-ERROR]';
108
+
109
+ try {
110
+ console.log(DEBUG_PREFIX, 'Starting audio context spoofing...');
111
+ spoofAudioContext();
112
+ console.log(DEBUG_PREFIX, '✓ Audio context spoofing applied');
113
+ } catch (e) {
114
+ console.error(ERROR_PREFIX, '✗ Failed to apply audio context spoofing:', e);
115
+ throw e; // Rethrow to make errors visible
116
+ }
117
+ })();`;
118
+ };
119
+ //# sourceMappingURL=audio-spoofing.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"audio-spoofing.js","sourceRoot":"","sources":["../../../src/fingerprinting/fingerprint-overrides/audio-spoofing.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,MAAM,CAAC,MAAM,oCAAoC,GAAG,GAAW,EAAE;IAC7D,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;MA+GL,CAAC;AACP,CAAC,CAAC"}
@@ -0,0 +1,6 @@
1
+ /**
2
+ * Advanced Canvas Protection
3
+ * Adds deterministic noise to canvas operations to prevent fingerprinting
4
+ */
5
+ export declare const createAdvancedCanvasProtectionScript: () => string;
6
+ //# sourceMappingURL=canvas-protection.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"canvas-protection.d.ts","sourceRoot":"","sources":["../../../src/fingerprinting/fingerprint-overrides/canvas-protection.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,eAAO,MAAM,oCAAoC,QAAO,MA+IvD,CAAC"}
@@ -0,0 +1,149 @@
1
+ /**
2
+ * Advanced Canvas Protection
3
+ * Adds deterministic noise to canvas operations to prevent fingerprinting
4
+ */
5
+ export const createAdvancedCanvasProtectionScript = () => {
6
+ return `
7
+ (() => {
8
+ 'use strict';
9
+
10
+ // Advanced Canvas Protection for 2025
11
+ const protectCanvas = () => {
12
+ const noiseFactor = 0.0001;
13
+
14
+ // Seeded PRNG (mulberry32) for deterministic noise
15
+ const createSeededRNG = (seed) => {
16
+ let s = seed | 0;
17
+ return () => {
18
+ s = s + 0x6D2B79F5 | 0;
19
+ let t = Math.imul(s ^ s >>> 15, 1 | s);
20
+ t = t + Math.imul(t ^ t >>> 7, 61 | t) ^ t;
21
+ return ((t ^ t >>> 14) >>> 0) / 4294967296;
22
+ };
23
+ };
24
+ const sessionSeed = Date.now() ^ (Math.random() * 0xFFFFFFFF >>> 0);
25
+ const seededRandom = createSeededRNG(sessionSeed);
26
+
27
+ // Helper to add deterministic noise to a cloned image data
28
+ const addNoiseToImageData = (imageData) => {
29
+ const data = imageData.data;
30
+ for (let i = 0; i < data.length; i += 4) {
31
+ // Add small deterministic noise to RGB channels, skip alpha
32
+ const noise = Math.floor((seededRandom() - 0.5) * 3);
33
+ data[i] = Math.min(255, Math.max(0, data[i] + noise)); // R
34
+ data[i+1] = Math.min(255, Math.max(0, data[i+1] + noise)); // G
35
+ data[i+2] = Math.min(255, Math.max(0, data[i+2] + noise)); // B
36
+ }
37
+ return imageData;
38
+ };
39
+
40
+ // Store originals before overriding
41
+ const originalToDataURL = HTMLCanvasElement.prototype.toDataURL;
42
+ const originalToBlob = HTMLCanvasElement.prototype.toBlob;
43
+ const originalGetImageData = CanvasRenderingContext2D.prototype.getImageData;
44
+ const originalMeasureText = CanvasRenderingContext2D.prototype.measureText;
45
+
46
+ // Override toDataURL - use a copy canvas so the original is not modified
47
+ HTMLCanvasElement.prototype.toDataURL = function(...args) {
48
+ const context = this.getContext('2d');
49
+ if (context) {
50
+ const copyCanvas = document.createElement('canvas');
51
+ copyCanvas.width = this.width;
52
+ copyCanvas.height = this.height;
53
+ const copyCtx = copyCanvas.getContext('2d');
54
+ if (copyCtx) {
55
+ const imageData = originalGetImageData.call(context, 0, 0, this.width, this.height);
56
+ addNoiseToImageData(imageData);
57
+ copyCtx.putImageData(imageData, 0, 0);
58
+ return originalToDataURL.apply(copyCanvas, args);
59
+ }
60
+ }
61
+ return originalToDataURL.apply(this, args);
62
+ };
63
+ // Override toBlob - use a copy canvas so the original is not modified
64
+ HTMLCanvasElement.prototype.toBlob = function(callback, ...args) {
65
+ const context = this.getContext('2d');
66
+ if (context) {
67
+ const copyCanvas = document.createElement('canvas');
68
+ copyCanvas.width = this.width;
69
+ copyCanvas.height = this.height;
70
+ const copyCtx = copyCanvas.getContext('2d');
71
+ if (copyCtx) {
72
+ const imageData = originalGetImageData.call(context, 0, 0, this.width, this.height);
73
+ addNoiseToImageData(imageData);
74
+ copyCtx.putImageData(imageData, 0, 0);
75
+ return originalToBlob.call(copyCanvas, callback, ...args);
76
+ }
77
+ }
78
+ return originalToBlob.call(this, callback, ...args);
79
+ };
80
+
81
+ // Override getImageData - clone the data, add noise to clone, return clone
82
+ CanvasRenderingContext2D.prototype.getImageData = function(...args) {
83
+ const imageData = originalGetImageData.apply(this, args);
84
+ const cloned = new ImageData(
85
+ new Uint8ClampedArray(imageData.data),
86
+ imageData.width,
87
+ imageData.height
88
+ );
89
+ return addNoiseToImageData(cloned);
90
+ };
91
+
92
+ // Override readPixels for WebGL - use seeded PRNG
93
+ if (typeof WebGLRenderingContext !== 'undefined') {
94
+ const originalReadPixels = WebGLRenderingContext.prototype.readPixels;
95
+ WebGLRenderingContext.prototype.readPixels = function(x, y, width, height, format, type, pixels) {
96
+ originalReadPixels.apply(this, arguments);
97
+ if (pixels && pixels.length) {
98
+ for (let i = 0; i < pixels.length; i++) {
99
+ pixels[i] = Math.min(255, Math.max(0, pixels[i] + Math.floor(seededRandom() * 3 - 1)));
100
+ }
101
+ }
102
+ };
103
+
104
+ if (typeof WebGL2RenderingContext !== 'undefined') {
105
+ WebGL2RenderingContext.prototype.readPixels = WebGLRenderingContext.prototype.readPixels;
106
+ }
107
+ }
108
+
109
+ // Override font measurements to add slight deterministic variations
110
+ CanvasRenderingContext2D.prototype.measureText = function(text) {
111
+ const metrics = originalMeasureText.apply(this, arguments);
112
+
113
+ // Add tiny deterministic variation to measurements
114
+ const variation = 1 + (seededRandom() - 0.5) * 0.001;
115
+
116
+ return new Proxy(metrics, {
117
+ get(target, prop) {
118
+ if (typeof target[prop] === 'number') {
119
+ return target[prop] * variation;
120
+ }
121
+ return target[prop];
122
+ }
123
+ });
124
+ };
125
+
126
+ // Register all overridden functions with stealth utils for toString masking
127
+ const _s = typeof __stealth !== 'undefined' ? __stealth : null;
128
+ if (_s && _s.utils) {
129
+ _s.utils.registerNativeFunction(HTMLCanvasElement.prototype.toDataURL, 'toDataURL');
130
+ _s.utils.registerNativeFunction(HTMLCanvasElement.prototype.toBlob, 'toBlob');
131
+ _s.utils.registerNativeFunction(CanvasRenderingContext2D.prototype.getImageData, 'getImageData');
132
+ _s.utils.registerNativeFunction(CanvasRenderingContext2D.prototype.measureText, 'measureText');
133
+ }
134
+ };
135
+
136
+ const DEBUG_PREFIX = '[CDP-FP-DEBUG]';
137
+ const ERROR_PREFIX = '[CDP-FP-ERROR]';
138
+
139
+ try {
140
+ console.log(DEBUG_PREFIX, 'Starting canvas protection...');
141
+ protectCanvas();
142
+ console.log(DEBUG_PREFIX, '✓ Canvas protection applied');
143
+ } catch (e) {
144
+ console.error(ERROR_PREFIX, '✗ Failed to apply canvas protection:', e);
145
+ throw e; // Rethrow to make errors visible
146
+ }
147
+ })();`;
148
+ };
149
+ //# sourceMappingURL=canvas-protection.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"canvas-protection.js","sourceRoot":"","sources":["../../../src/fingerprinting/fingerprint-overrides/canvas-protection.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,MAAM,CAAC,MAAM,oCAAoC,GAAG,GAAW,EAAE;IAC7D,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;MA6IL,CAAC;AACP,CAAC,CAAC"}
@@ -0,0 +1,14 @@
1
+ /**
2
+ * CDP Detection Bypass
3
+ * Comprehensive CDP and automation detection bypass for 2024-2025
4
+ *
5
+ * Handles:
6
+ * - Iframe contentWindow access hiding
7
+ * - Puppeteer/Playwright evaluation script traces
8
+ * - Error.captureStackTrace patching
9
+ * - Storage access API spoofing
10
+ * - SourceURL/SourceMap hiding
11
+ * - Chrome DevTools property removal
12
+ */
13
+ export declare const createCDPDetectionBypassScript: () => string;
14
+ //# sourceMappingURL=cdp-detection-bypass.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cdp-detection-bypass.d.ts","sourceRoot":"","sources":["../../../src/fingerprinting/fingerprint-overrides/cdp-detection-bypass.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,eAAO,MAAM,8BAA8B,QAAO,MA6uBjD,CAAC"}