jumpy-lion 0.1.1 → 0.1.3
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.
- package/dist/browser-controller.d.ts +22 -3
- package/dist/browser-controller.d.ts.map +1 -1
- package/dist/browser-controller.js +316 -71
- package/dist/browser-controller.js.map +1 -1
- package/dist/browser-plugin.d.ts +56 -7
- package/dist/browser-plugin.d.ts.map +1 -1
- package/dist/browser-plugin.js +268 -56
- package/dist/browser-plugin.js.map +1 -1
- package/dist/browser-process/browser.d.ts +39 -0
- package/dist/browser-process/browser.d.ts.map +1 -1
- package/dist/browser-process/browser.js +127 -16
- package/dist/browser-process/browser.js.map +1 -1
- package/dist/browser-process/process.d.ts +9 -0
- package/dist/browser-process/process.d.ts.map +1 -1
- package/dist/browser-process/process.js +100 -6
- package/dist/browser-process/process.js.map +1 -1
- package/dist/browser-profiles/chrome/default.d.ts +116 -0
- package/dist/browser-profiles/chrome/default.d.ts.map +1 -1
- package/dist/browser-profiles/chrome/default.js +118 -1
- package/dist/browser-profiles/chrome/default.js.map +1 -1
- package/dist/browser-profiles/chrome/populate-profile.d.ts +76 -0
- package/dist/browser-profiles/chrome/populate-profile.d.ts.map +1 -0
- package/dist/browser-profiles/chrome/populate-profile.js +300 -0
- package/dist/browser-profiles/chrome/populate-profile.js.map +1 -0
- package/dist/browser-profiles/index.d.ts +1 -0
- package/dist/browser-profiles/index.d.ts.map +1 -1
- package/dist/browser-profiles/index.js +2 -0
- package/dist/browser-profiles/index.js.map +1 -1
- package/dist/crawler.d.ts +81 -9
- package/dist/crawler.d.ts.map +1 -1
- package/dist/crawler.js +26 -10
- package/dist/crawler.js.map +1 -1
- package/dist/fingerprinting/all-fingerprint-defender/_locales/en/messages.json +95 -0
- package/dist/fingerprinting/all-fingerprint-defender/assets/chunk-16ff15da.d.ts +2 -0
- package/dist/fingerprinting/all-fingerprint-defender/assets/chunk-16ff15da.d.ts.map +1 -0
- package/dist/fingerprinting/all-fingerprint-defender/assets/chunk-16ff15da.js +1 -0
- package/dist/fingerprinting/all-fingerprint-defender/assets/chunk-16ff15da.js.map +1 -0
- package/dist/fingerprinting/all-fingerprint-defender/assets/chunk-1a1456ec.d.ts +2 -0
- package/dist/fingerprinting/all-fingerprint-defender/assets/chunk-1a1456ec.d.ts.map +1 -0
- package/dist/fingerprinting/all-fingerprint-defender/assets/chunk-1a1456ec.js +1 -0
- package/dist/fingerprinting/all-fingerprint-defender/assets/chunk-1a1456ec.js.map +1 -0
- package/dist/fingerprinting/all-fingerprint-defender/assets/chunk-3a7b59dd.d.ts +83 -0
- package/dist/fingerprinting/all-fingerprint-defender/assets/chunk-3a7b59dd.d.ts.map +1 -0
- package/dist/fingerprinting/all-fingerprint-defender/assets/chunk-3a7b59dd.js +1 -0
- package/dist/fingerprinting/all-fingerprint-defender/assets/chunk-3a7b59dd.js.map +1 -0
- package/dist/fingerprinting/all-fingerprint-defender/assets/chunk-7ce85519.d.ts +2 -0
- package/dist/fingerprinting/all-fingerprint-defender/assets/chunk-7ce85519.d.ts.map +1 -0
- package/dist/fingerprinting/all-fingerprint-defender/assets/chunk-7ce85519.js +1 -0
- package/dist/fingerprinting/all-fingerprint-defender/assets/chunk-7ce85519.js.map +1 -0
- package/dist/fingerprinting/all-fingerprint-defender/assets/chunk-aaea1190.d.ts +2 -0
- package/dist/fingerprinting/all-fingerprint-defender/assets/chunk-aaea1190.d.ts.map +1 -0
- package/dist/fingerprinting/all-fingerprint-defender/assets/chunk-aaea1190.js +1 -0
- package/dist/fingerprinting/all-fingerprint-defender/assets/chunk-aaea1190.js.map +1 -0
- package/dist/fingerprinting/all-fingerprint-defender/assets/chunk-b4410958.d.ts +2 -0
- package/dist/fingerprinting/all-fingerprint-defender/assets/chunk-b4410958.d.ts.map +1 -0
- package/dist/fingerprinting/all-fingerprint-defender/assets/chunk-b4410958.js +1 -0
- package/dist/fingerprinting/all-fingerprint-defender/assets/chunk-b4410958.js.map +1 -0
- package/dist/fingerprinting/all-fingerprint-defender/assets/chunk-dfed3562.d.ts +2 -0
- package/dist/fingerprinting/all-fingerprint-defender/assets/chunk-dfed3562.d.ts.map +1 -0
- package/dist/fingerprinting/all-fingerprint-defender/assets/chunk-dfed3562.js +1 -0
- package/dist/fingerprinting/all-fingerprint-defender/assets/chunk-dfed3562.js.map +1 -0
- package/dist/fingerprinting/all-fingerprint-defender/assets/debounce-09920c81.css +1 -0
- package/dist/fingerprinting/all-fingerprint-defender/assets/options-fe2fb5aa.css +1 -0
- package/dist/fingerprinting/all-fingerprint-defender/assets/popup-1886d2ef.css +1 -0
- package/dist/fingerprinting/all-fingerprint-defender/img/icon-128.png +0 -0
- package/dist/fingerprinting/all-fingerprint-defender/img/icon-16.png +0 -0
- package/dist/fingerprinting/all-fingerprint-defender/img/icon-24.png +0 -0
- package/dist/fingerprinting/all-fingerprint-defender/img/icon-32-disabled.png +0 -0
- package/dist/fingerprinting/all-fingerprint-defender/img/icon-32.png +0 -0
- package/dist/fingerprinting/all-fingerprint-defender/img/icon-48.png +0 -0
- package/dist/fingerprinting/all-fingerprint-defender/manifest.json +83 -0
- package/dist/fingerprinting/all-fingerprint-defender/options.html +17 -0
- package/dist/fingerprinting/all-fingerprint-defender/popup.html +23 -0
- package/dist/fingerprinting/anti-webgpu/background.d.ts +2 -0
- package/dist/fingerprinting/anti-webgpu/background.d.ts.map +1 -0
- package/dist/fingerprinting/anti-webgpu/background.js +4 -0
- package/dist/fingerprinting/anti-webgpu/background.js.map +1 -0
- package/dist/fingerprinting/anti-webgpu/data/content_script/inject.d.ts +2 -0
- package/dist/fingerprinting/anti-webgpu/data/content_script/inject.d.ts.map +1 -0
- package/dist/fingerprinting/anti-webgpu/data/content_script/inject.js +50 -0
- package/dist/fingerprinting/anti-webgpu/data/content_script/inject.js.map +1 -0
- package/dist/fingerprinting/anti-webgpu/data/content_script/page_context/inject.d.ts +2 -0
- package/dist/fingerprinting/anti-webgpu/data/content_script/page_context/inject.d.ts.map +1 -0
- package/dist/fingerprinting/anti-webgpu/data/content_script/page_context/inject.js +172 -0
- package/dist/fingerprinting/anti-webgpu/data/content_script/page_context/inject.js.map +1 -0
- package/dist/fingerprinting/anti-webgpu/data/icons/128.png +0 -0
- package/dist/fingerprinting/anti-webgpu/data/icons/16.png +0 -0
- package/dist/fingerprinting/anti-webgpu/data/icons/32.png +0 -0
- package/dist/fingerprinting/anti-webgpu/data/icons/48.png +0 -0
- package/dist/fingerprinting/anti-webgpu/data/icons/64.png +0 -0
- package/dist/fingerprinting/anti-webgpu/data/popup/popup.css +88 -0
- package/dist/fingerprinting/anti-webgpu/data/popup/popup.d.ts +2 -0
- package/dist/fingerprinting/anti-webgpu/data/popup/popup.d.ts.map +1 -0
- package/dist/fingerprinting/anti-webgpu/data/popup/popup.html +58 -0
- package/dist/fingerprinting/anti-webgpu/data/popup/popup.js +96 -0
- package/dist/fingerprinting/anti-webgpu/data/popup/popup.js.map +1 -0
- package/dist/fingerprinting/anti-webgpu/lib/chrome.d.ts +2 -0
- package/dist/fingerprinting/anti-webgpu/lib/chrome.d.ts.map +1 -0
- package/dist/fingerprinting/anti-webgpu/lib/chrome.js +249 -0
- package/dist/fingerprinting/anti-webgpu/lib/chrome.js.map +1 -0
- package/dist/fingerprinting/anti-webgpu/lib/common.d.ts +2 -0
- package/dist/fingerprinting/anti-webgpu/lib/common.d.ts.map +1 -0
- package/dist/fingerprinting/anti-webgpu/lib/common.js +86 -0
- package/dist/fingerprinting/anti-webgpu/lib/common.js.map +1 -0
- package/dist/fingerprinting/anti-webgpu/lib/config.d.ts +2 -0
- package/dist/fingerprinting/anti-webgpu/lib/config.d.ts.map +1 -0
- package/dist/fingerprinting/anti-webgpu/lib/config.js +14 -0
- package/dist/fingerprinting/anti-webgpu/lib/config.js.map +1 -0
- package/dist/fingerprinting/anti-webgpu/lib/runtime.d.ts +2 -0
- package/dist/fingerprinting/anti-webgpu/lib/runtime.d.ts.map +1 -0
- package/dist/fingerprinting/anti-webgpu/lib/runtime.js +107 -0
- package/dist/fingerprinting/anti-webgpu/lib/runtime.js.map +1 -0
- package/dist/fingerprinting/anti-webgpu/manifest.json +58 -0
- package/dist/fingerprinting/custom-fingerprint-injector.d.ts +87 -0
- package/dist/fingerprinting/custom-fingerprint-injector.d.ts.map +1 -0
- package/dist/fingerprinting/custom-fingerprint-injector.js +342 -0
- package/dist/fingerprinting/custom-fingerprint-injector.js.map +1 -0
- package/dist/fingerprinting/fingerprint-injector.d.ts +163 -0
- package/dist/fingerprinting/fingerprint-injector.d.ts.map +1 -0
- package/dist/fingerprinting/fingerprint-injector.js +697 -0
- package/dist/fingerprinting/fingerprint-injector.js.map +1 -0
- package/dist/fingerprinting/fingerprint-overrides/audio-spoofing.d.ts +6 -0
- package/dist/fingerprinting/fingerprint-overrides/audio-spoofing.d.ts.map +1 -0
- package/dist/fingerprinting/fingerprint-overrides/audio-spoofing.js +119 -0
- package/dist/fingerprinting/fingerprint-overrides/audio-spoofing.js.map +1 -0
- package/dist/fingerprinting/fingerprint-overrides/canvas-protection.d.ts +6 -0
- package/dist/fingerprinting/fingerprint-overrides/canvas-protection.d.ts.map +1 -0
- package/dist/fingerprinting/fingerprint-overrides/canvas-protection.js +149 -0
- package/dist/fingerprinting/fingerprint-overrides/canvas-protection.js.map +1 -0
- package/dist/fingerprinting/fingerprint-overrides/cdp-detection-bypass.d.ts +14 -0
- package/dist/fingerprinting/fingerprint-overrides/cdp-detection-bypass.d.ts.map +1 -0
- package/dist/fingerprinting/fingerprint-overrides/cdp-detection-bypass.js +763 -0
- package/dist/fingerprinting/fingerprint-overrides/cdp-detection-bypass.js.map +1 -0
- package/dist/fingerprinting/fingerprint-overrides/client-rect-spoofing.d.ts +6 -0
- package/dist/fingerprinting/fingerprint-overrides/client-rect-spoofing.d.ts.map +1 -0
- package/dist/fingerprinting/fingerprint-overrides/client-rect-spoofing.js +195 -0
- package/dist/fingerprinting/fingerprint-overrides/client-rect-spoofing.js.map +1 -0
- package/dist/fingerprinting/fingerprint-overrides/coalesced-events-spoofing.d.ts +10 -0
- package/dist/fingerprinting/fingerprint-overrides/coalesced-events-spoofing.d.ts.map +1 -0
- package/dist/fingerprinting/fingerprint-overrides/coalesced-events-spoofing.js +195 -0
- package/dist/fingerprinting/fingerprint-overrides/coalesced-events-spoofing.js.map +1 -0
- package/dist/fingerprinting/fingerprint-overrides/datadome-bypass.d.ts +28 -0
- package/dist/fingerprinting/fingerprint-overrides/datadome-bypass.d.ts.map +1 -0
- package/dist/fingerprinting/fingerprint-overrides/datadome-bypass.js +1181 -0
- package/dist/fingerprinting/fingerprint-overrides/datadome-bypass.js.map +1 -0
- package/dist/fingerprinting/fingerprint-overrides/font-spoofing.d.ts +7 -0
- package/dist/fingerprinting/fingerprint-overrides/font-spoofing.d.ts.map +1 -0
- package/dist/fingerprinting/fingerprint-overrides/font-spoofing.js +171 -0
- package/dist/fingerprinting/fingerprint-overrides/font-spoofing.js.map +1 -0
- package/dist/fingerprinting/fingerprint-overrides/index.d.ts +37 -0
- package/dist/fingerprinting/fingerprint-overrides/index.d.ts.map +1 -0
- package/dist/fingerprinting/fingerprint-overrides/index.js +41 -0
- package/dist/fingerprinting/fingerprint-overrides/index.js.map +1 -0
- package/dist/fingerprinting/fingerprint-overrides/keyboard-humanization.d.ts +45 -0
- package/dist/fingerprinting/fingerprint-overrides/keyboard-humanization.d.ts.map +1 -0
- package/dist/fingerprinting/fingerprint-overrides/keyboard-humanization.js +268 -0
- package/dist/fingerprinting/fingerprint-overrides/keyboard-humanization.js.map +1 -0
- package/dist/fingerprinting/fingerprint-overrides/locale-spoofing.d.ts +6 -0
- package/dist/fingerprinting/fingerprint-overrides/locale-spoofing.d.ts.map +1 -0
- package/dist/fingerprinting/fingerprint-overrides/locale-spoofing.js +301 -0
- package/dist/fingerprinting/fingerprint-overrides/locale-spoofing.js.map +1 -0
- package/dist/fingerprinting/fingerprint-overrides/media-codecs-spoofing.d.ts +14 -0
- package/dist/fingerprinting/fingerprint-overrides/media-codecs-spoofing.d.ts.map +1 -0
- package/dist/fingerprinting/fingerprint-overrides/media-codecs-spoofing.js +160 -0
- package/dist/fingerprinting/fingerprint-overrides/media-codecs-spoofing.js.map +1 -0
- package/dist/fingerprinting/fingerprint-overrides/mouse-humanization.d.ts +7 -0
- package/dist/fingerprinting/fingerprint-overrides/mouse-humanization.d.ts.map +1 -0
- package/dist/fingerprinting/fingerprint-overrides/mouse-humanization.js +58 -0
- package/dist/fingerprinting/fingerprint-overrides/mouse-humanization.js.map +1 -0
- package/dist/fingerprinting/fingerprint-overrides/performance-spoofing.d.ts +6 -0
- package/dist/fingerprinting/fingerprint-overrides/performance-spoofing.d.ts.map +1 -0
- package/dist/fingerprinting/fingerprint-overrides/performance-spoofing.js +249 -0
- package/dist/fingerprinting/fingerprint-overrides/performance-spoofing.js.map +1 -0
- package/dist/fingerprinting/fingerprint-overrides/platform-consistency.d.ts +33 -0
- package/dist/fingerprinting/fingerprint-overrides/platform-consistency.d.ts.map +1 -0
- package/dist/fingerprinting/fingerprint-overrides/platform-consistency.js +620 -0
- package/dist/fingerprinting/fingerprint-overrides/platform-consistency.js.map +1 -0
- package/dist/fingerprinting/fingerprint-overrides/prototype-integrity.d.ts +13 -0
- package/dist/fingerprinting/fingerprint-overrides/prototype-integrity.d.ts.map +1 -0
- package/dist/fingerprinting/fingerprint-overrides/prototype-integrity.js +356 -0
- package/dist/fingerprinting/fingerprint-overrides/prototype-integrity.js.map +1 -0
- package/dist/fingerprinting/fingerprint-overrides/runtime-enable-bypass.d.ts +18 -0
- package/dist/fingerprinting/fingerprint-overrides/runtime-enable-bypass.d.ts.map +1 -0
- package/dist/fingerprinting/fingerprint-overrides/runtime-enable-bypass.js +171 -0
- package/dist/fingerprinting/fingerprint-overrides/runtime-enable-bypass.js.map +1 -0
- package/dist/fingerprinting/fingerprint-overrides/scroll-humanization.d.ts +55 -0
- package/dist/fingerprinting/fingerprint-overrides/scroll-humanization.d.ts.map +1 -0
- package/dist/fingerprinting/fingerprint-overrides/scroll-humanization.js +244 -0
- package/dist/fingerprinting/fingerprint-overrides/scroll-humanization.js.map +1 -0
- package/dist/fingerprinting/fingerprint-overrides/stealth-script.d.ts +14 -0
- package/dist/fingerprinting/fingerprint-overrides/stealth-script.d.ts.map +1 -0
- package/dist/fingerprinting/fingerprint-overrides/stealth-script.js +983 -0
- package/dist/fingerprinting/fingerprint-overrides/stealth-script.js.map +1 -0
- package/dist/fingerprinting/fingerprint-overrides/storage-consistency.d.ts +13 -0
- package/dist/fingerprinting/fingerprint-overrides/storage-consistency.d.ts.map +1 -0
- package/dist/fingerprinting/fingerprint-overrides/storage-consistency.js +346 -0
- package/dist/fingerprinting/fingerprint-overrides/storage-consistency.js.map +1 -0
- package/dist/fingerprinting/fingerprint-overrides/timing-consistency.d.ts +13 -0
- package/dist/fingerprinting/fingerprint-overrides/timing-consistency.d.ts.map +1 -0
- package/dist/fingerprinting/fingerprint-overrides/timing-consistency.js +264 -0
- package/dist/fingerprinting/fingerprint-overrides/timing-consistency.js.map +1 -0
- package/dist/fingerprinting/fingerprint-overrides/ua-ch.d.ts +27 -0
- package/dist/fingerprinting/fingerprint-overrides/ua-ch.d.ts.map +1 -0
- package/dist/fingerprinting/fingerprint-overrides/ua-ch.js +213 -0
- package/dist/fingerprinting/fingerprint-overrides/ua-ch.js.map +1 -0
- package/dist/fingerprinting/fingerprint-overrides/utils.d.ts +12 -0
- package/dist/fingerprinting/fingerprint-overrides/utils.d.ts.map +1 -0
- package/dist/fingerprinting/fingerprint-overrides/utils.js +517 -0
- package/dist/fingerprinting/fingerprint-overrides/utils.js.map +1 -0
- package/dist/fingerprinting/fingerprint-overrides/webgl-spoofing.d.ts +12 -0
- package/dist/fingerprinting/fingerprint-overrides/webgl-spoofing.d.ts.map +1 -0
- package/dist/fingerprinting/fingerprint-overrides/webgl-spoofing.js +215 -0
- package/dist/fingerprinting/fingerprint-overrides/webgl-spoofing.js.map +1 -0
- package/dist/fingerprinting/fingerprint-overrides/webgpu-spoofing.d.ts +6 -0
- package/dist/fingerprinting/fingerprint-overrides/webgpu-spoofing.d.ts.map +1 -0
- package/dist/fingerprinting/fingerprint-overrides/webgpu-spoofing.js +202 -0
- package/dist/fingerprinting/fingerprint-overrides/webgpu-spoofing.js.map +1 -0
- package/dist/fingerprinting/fingerprint-overrides/webrtc-spoofing.d.ts +6 -0
- package/dist/fingerprinting/fingerprint-overrides/webrtc-spoofing.d.ts.map +1 -0
- package/dist/fingerprinting/fingerprint-overrides/webrtc-spoofing.js +188 -0
- package/dist/fingerprinting/fingerprint-overrides/webrtc-spoofing.js.map +1 -0
- package/dist/index.d.ts +4 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2 -0
- package/dist/index.js.map +1 -1
- package/dist/launcher-wrap.d.ts +2 -2
- package/dist/launcher-wrap.d.ts.map +1 -1
- package/dist/launcher-wrap.js.map +1 -1
- package/dist/page.d.ts +160 -13
- package/dist/page.d.ts.map +1 -1
- package/dist/page.js +1027 -42
- package/dist/page.js.map +1 -1
- package/dist/tsconfig.build.tsbuildinfo +1 -1
- package/package.json +8 -4
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cdp-detection-bypass.js","sourceRoot":"","sources":["../../../src/fingerprinting/fingerprint-overrides/cdp-detection-bypass.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,MAAM,CAAC,MAAM,8BAA8B,GAAG,GAAW,EAAE;IACvD,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;MA2uBL,CAAC;AACP,CAAC,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"client-rect-spoofing.d.ts","sourceRoot":"","sources":["../../../src/fingerprinting/fingerprint-overrides/client-rect-spoofing.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,eAAO,MAAM,8BAA8B,QAAO,MA6LjD,CAAC"}
|
|
@@ -0,0 +1,195 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Client Rect Spoofing
|
|
3
|
+
* Adds small variations to DOM measurements to prevent fingerprinting
|
|
4
|
+
*/
|
|
5
|
+
export const createClientRectSpoofingScript = () => {
|
|
6
|
+
return `
|
|
7
|
+
(() => {
|
|
8
|
+
'use strict';
|
|
9
|
+
|
|
10
|
+
// Client Rect Spoofing for 2025
|
|
11
|
+
const spoofClientRects = () => {
|
|
12
|
+
// Seeded PRNG (mulberry32) for deterministic variations
|
|
13
|
+
const createSeededRNG = (seed) => {
|
|
14
|
+
let s = seed | 0;
|
|
15
|
+
return () => {
|
|
16
|
+
s = s + 0x6D2B79F5 | 0;
|
|
17
|
+
let t = Math.imul(s ^ s >>> 15, 1 | s);
|
|
18
|
+
t = t + Math.imul(t ^ t >>> 7, 61 | t) ^ t;
|
|
19
|
+
return ((t ^ t >>> 14) >>> 0) / 4294967296;
|
|
20
|
+
};
|
|
21
|
+
};
|
|
22
|
+
|
|
23
|
+
// Generate a stable seed for an element based on its identity
|
|
24
|
+
const elementSeeds = new WeakMap();
|
|
25
|
+
let nextSeed = Date.now();
|
|
26
|
+
const getElementSeed = (element) => {
|
|
27
|
+
if (!elementSeeds.has(element)) {
|
|
28
|
+
elementSeeds.set(element, nextSeed++);
|
|
29
|
+
}
|
|
30
|
+
return elementSeeds.get(element);
|
|
31
|
+
};
|
|
32
|
+
|
|
33
|
+
// Add deterministic variation using element-seeded RNG
|
|
34
|
+
const addVariation = (value, rng) => {
|
|
35
|
+
return value + (rng() - 0.5) * 0.1;
|
|
36
|
+
};
|
|
37
|
+
|
|
38
|
+
// Override getBoundingClientRect
|
|
39
|
+
const originalGetBoundingClientRect = Element.prototype.getBoundingClientRect;
|
|
40
|
+
Element.prototype.getBoundingClientRect = function() {
|
|
41
|
+
const rect = originalGetBoundingClientRect.apply(this, arguments);
|
|
42
|
+
const rng = createSeededRNG(getElementSeed(this));
|
|
43
|
+
|
|
44
|
+
// Create a new DOMRect with deterministic variations
|
|
45
|
+
const newRect = {
|
|
46
|
+
x: addVariation(rect.x, rng),
|
|
47
|
+
y: addVariation(rect.y, rng),
|
|
48
|
+
width: addVariation(rect.width, rng),
|
|
49
|
+
height: addVariation(rect.height, rng),
|
|
50
|
+
top: addVariation(rect.top, rng),
|
|
51
|
+
right: addVariation(rect.right, rng),
|
|
52
|
+
bottom: addVariation(rect.bottom, rng),
|
|
53
|
+
left: addVariation(rect.left, rng),
|
|
54
|
+
toJSON: rect.toJSON
|
|
55
|
+
};
|
|
56
|
+
|
|
57
|
+
// Make it look like a real DOMRect
|
|
58
|
+
Object.setPrototypeOf(newRect, DOMRect.prototype);
|
|
59
|
+
|
|
60
|
+
return newRect;
|
|
61
|
+
};
|
|
62
|
+
|
|
63
|
+
// Override getClientRects
|
|
64
|
+
const originalGetClientRects = Element.prototype.getClientRects;
|
|
65
|
+
Element.prototype.getClientRects = function() {
|
|
66
|
+
const rects = originalGetClientRects.apply(this, arguments);
|
|
67
|
+
const baseSeed = getElementSeed(this);
|
|
68
|
+
const newRects = [];
|
|
69
|
+
|
|
70
|
+
for (let i = 0; i < rects.length; i++) {
|
|
71
|
+
const rect = rects[i];
|
|
72
|
+
const rng = createSeededRNG(baseSeed + i);
|
|
73
|
+
const newRect = {
|
|
74
|
+
x: addVariation(rect.x, rng),
|
|
75
|
+
y: addVariation(rect.y, rng),
|
|
76
|
+
width: addVariation(rect.width, rng),
|
|
77
|
+
height: addVariation(rect.height, rng),
|
|
78
|
+
top: addVariation(rect.top, rng),
|
|
79
|
+
right: addVariation(rect.right, rng),
|
|
80
|
+
bottom: addVariation(rect.bottom, rng),
|
|
81
|
+
left: addVariation(rect.left, rng)
|
|
82
|
+
};
|
|
83
|
+
Object.setPrototypeOf(newRect, DOMRect.prototype);
|
|
84
|
+
newRects.push(newRect);
|
|
85
|
+
}
|
|
86
|
+
|
|
87
|
+
// Create a DOMRectList-like object
|
|
88
|
+
const rectList = {
|
|
89
|
+
length: newRects.length,
|
|
90
|
+
item: (index) => newRects[index] || null,
|
|
91
|
+
[Symbol.iterator]: function*() {
|
|
92
|
+
for (let i = 0; i < this.length; i++) {
|
|
93
|
+
yield this.item(i);
|
|
94
|
+
}
|
|
95
|
+
}
|
|
96
|
+
};
|
|
97
|
+
|
|
98
|
+
// Add indexed properties
|
|
99
|
+
for (let i = 0; i < newRects.length; i++) {
|
|
100
|
+
rectList[i] = newRects[i];
|
|
101
|
+
}
|
|
102
|
+
|
|
103
|
+
Object.setPrototypeOf(rectList, DOMRectList.prototype);
|
|
104
|
+
return rectList;
|
|
105
|
+
};
|
|
106
|
+
|
|
107
|
+
// Override Range methods with the same deterministic approach
|
|
108
|
+
if (typeof Range !== 'undefined') {
|
|
109
|
+
// Ranges don't have element identity, so use a WeakMap for Range objects too
|
|
110
|
+
const rangeSeeds = new WeakMap();
|
|
111
|
+
const getRangeSeed = (range) => {
|
|
112
|
+
if (!rangeSeeds.has(range)) {
|
|
113
|
+
rangeSeeds.set(range, nextSeed++);
|
|
114
|
+
}
|
|
115
|
+
return rangeSeeds.get(range);
|
|
116
|
+
};
|
|
117
|
+
|
|
118
|
+
const originalGetBoundingClientRectRange = Range.prototype.getBoundingClientRect;
|
|
119
|
+
Range.prototype.getBoundingClientRect = function() {
|
|
120
|
+
const rect = originalGetBoundingClientRectRange.apply(this, arguments);
|
|
121
|
+
const rng = createSeededRNG(getRangeSeed(this));
|
|
122
|
+
|
|
123
|
+
const newRect = {
|
|
124
|
+
x: addVariation(rect.x, rng),
|
|
125
|
+
y: addVariation(rect.y, rng),
|
|
126
|
+
width: addVariation(rect.width, rng),
|
|
127
|
+
height: addVariation(rect.height, rng),
|
|
128
|
+
top: addVariation(rect.top, rng),
|
|
129
|
+
right: addVariation(rect.right, rng),
|
|
130
|
+
bottom: addVariation(rect.bottom, rng),
|
|
131
|
+
left: addVariation(rect.left, rng),
|
|
132
|
+
toJSON: rect.toJSON
|
|
133
|
+
};
|
|
134
|
+
|
|
135
|
+
Object.setPrototypeOf(newRect, DOMRect.prototype);
|
|
136
|
+
return newRect;
|
|
137
|
+
};
|
|
138
|
+
|
|
139
|
+
const originalGetClientRectsRange = Range.prototype.getClientRects;
|
|
140
|
+
Range.prototype.getClientRects = function() {
|
|
141
|
+
const rects = originalGetClientRectsRange.apply(this, arguments);
|
|
142
|
+
const baseSeed = getRangeSeed(this);
|
|
143
|
+
const newRects = [];
|
|
144
|
+
|
|
145
|
+
for (let i = 0; i < rects.length; i++) {
|
|
146
|
+
const rect = rects[i];
|
|
147
|
+
const rng = createSeededRNG(baseSeed + i);
|
|
148
|
+
const newRect = {
|
|
149
|
+
x: addVariation(rect.x, rng),
|
|
150
|
+
y: addVariation(rect.y, rng),
|
|
151
|
+
width: addVariation(rect.width, rng),
|
|
152
|
+
height: addVariation(rect.height, rng),
|
|
153
|
+
top: addVariation(rect.top, rng),
|
|
154
|
+
right: addVariation(rect.right, rng),
|
|
155
|
+
bottom: addVariation(rect.bottom, rng),
|
|
156
|
+
left: addVariation(rect.left, rng)
|
|
157
|
+
};
|
|
158
|
+
Object.setPrototypeOf(newRect, DOMRect.prototype);
|
|
159
|
+
newRects.push(newRect);
|
|
160
|
+
}
|
|
161
|
+
|
|
162
|
+
const rectList = {
|
|
163
|
+
length: newRects.length,
|
|
164
|
+
item: (index) => newRects[index] || null,
|
|
165
|
+
[Symbol.iterator]: function*() {
|
|
166
|
+
for (let i = 0; i < this.length; i++) {
|
|
167
|
+
yield this.item(i);
|
|
168
|
+
}
|
|
169
|
+
}
|
|
170
|
+
};
|
|
171
|
+
|
|
172
|
+
for (let i = 0; i < newRects.length; i++) {
|
|
173
|
+
rectList[i] = newRects[i];
|
|
174
|
+
}
|
|
175
|
+
|
|
176
|
+
Object.setPrototypeOf(rectList, DOMRectList.prototype);
|
|
177
|
+
return rectList;
|
|
178
|
+
};
|
|
179
|
+
}
|
|
180
|
+
};
|
|
181
|
+
|
|
182
|
+
const DEBUG_PREFIX = '[CDP-FP-DEBUG]';
|
|
183
|
+
const ERROR_PREFIX = '[CDP-FP-ERROR]';
|
|
184
|
+
|
|
185
|
+
try {
|
|
186
|
+
console.log(DEBUG_PREFIX, 'Starting client rect spoofing...');
|
|
187
|
+
spoofClientRects();
|
|
188
|
+
console.log(DEBUG_PREFIX, '✓ Client rect spoofing applied');
|
|
189
|
+
} catch (e) {
|
|
190
|
+
console.error(ERROR_PREFIX, '✗ Failed to apply client rect spoofing:', e);
|
|
191
|
+
throw e;
|
|
192
|
+
}
|
|
193
|
+
})();`;
|
|
194
|
+
};
|
|
195
|
+
//# sourceMappingURL=client-rect-spoofing.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"client-rect-spoofing.js","sourceRoot":"","sources":["../../../src/fingerprinting/fingerprint-overrides/client-rect-spoofing.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,MAAM,CAAC,MAAM,8BAA8B,GAAG,GAAW,EAAE;IACvD,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;MA2LL,CAAC;AACP,CAAC,CAAC"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Coalesced Events Spoofing
|
|
3
|
+
* Makes CDP-dispatched pointer events include realistic coalesced events.
|
|
4
|
+
*
|
|
5
|
+
* Real mouse movements produce PointerEvents where getCoalescedEvents() returns
|
|
6
|
+
* multiple interpolated points. CDP dispatch produces 0 or 1 points, which is
|
|
7
|
+
* a detection vector used by DataDome and Cloudflare.
|
|
8
|
+
*/
|
|
9
|
+
export declare const createCoalescedEventsSpoofingScript: () => string;
|
|
10
|
+
//# sourceMappingURL=coalesced-events-spoofing.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"coalesced-events-spoofing.d.ts","sourceRoot":"","sources":["../../../src/fingerprinting/fingerprint-overrides/coalesced-events-spoofing.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,eAAO,MAAM,mCAAmC,QAAO,MAyLtD,CAAC"}
|
|
@@ -0,0 +1,195 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Coalesced Events Spoofing
|
|
3
|
+
* Makes CDP-dispatched pointer events include realistic coalesced events.
|
|
4
|
+
*
|
|
5
|
+
* Real mouse movements produce PointerEvents where getCoalescedEvents() returns
|
|
6
|
+
* multiple interpolated points. CDP dispatch produces 0 or 1 points, which is
|
|
7
|
+
* a detection vector used by DataDome and Cloudflare.
|
|
8
|
+
*/
|
|
9
|
+
export const createCoalescedEventsSpoofingScript = () => {
|
|
10
|
+
return `
|
|
11
|
+
(() => {
|
|
12
|
+
'use strict';
|
|
13
|
+
|
|
14
|
+
// Track last known pointer position for interpolation
|
|
15
|
+
let lastPointerX = 0;
|
|
16
|
+
let lastPointerY = 0;
|
|
17
|
+
let lastPointerTime = 0;
|
|
18
|
+
|
|
19
|
+
// Seeded PRNG for deterministic jitter
|
|
20
|
+
const createSeededRNG = (seed) => {
|
|
21
|
+
let s = seed | 0;
|
|
22
|
+
return () => {
|
|
23
|
+
s = s + 0x6D2B79F5 | 0;
|
|
24
|
+
let t = Math.imul(s ^ s >>> 15, 1 | s);
|
|
25
|
+
t = t + Math.imul(t ^ t >>> 7, 61 | t) ^ t;
|
|
26
|
+
return ((t ^ t >>> 14) >>> 0) / 4294967296;
|
|
27
|
+
};
|
|
28
|
+
};
|
|
29
|
+
|
|
30
|
+
const sessionSeed = Date.now() ^ 0xA5F3C291;
|
|
31
|
+
let callCount = 0;
|
|
32
|
+
|
|
33
|
+
// Store original method
|
|
34
|
+
const originalGetCoalescedEvents = PointerEvent.prototype.getCoalescedEvents;
|
|
35
|
+
const originalGetPredictedEvents = PointerEvent.prototype.getPredictedEvents;
|
|
36
|
+
|
|
37
|
+
/**
|
|
38
|
+
* Generate synthetic coalesced events between two points
|
|
39
|
+
*/
|
|
40
|
+
const generateCoalescedPoints = (event, prevX, prevY, prevTime) => {
|
|
41
|
+
const dx = event.clientX - prevX;
|
|
42
|
+
const dy = event.clientY - prevY;
|
|
43
|
+
const distance = Math.sqrt(dx * dx + dy * dy);
|
|
44
|
+
|
|
45
|
+
// Number of coalesced points based on distance (real browsers: ~1 per 2-8px)
|
|
46
|
+
const rng = createSeededRNG(sessionSeed + (++callCount));
|
|
47
|
+
const pointsPerPx = 3 + rng() * 5; // 3-8 px per point
|
|
48
|
+
const numPoints = Math.max(1, Math.min(8, Math.floor(distance / pointsPerPx)));
|
|
49
|
+
|
|
50
|
+
if (numPoints <= 1 || distance < 2) {
|
|
51
|
+
// Very small movement, return just the event itself
|
|
52
|
+
return [event];
|
|
53
|
+
}
|
|
54
|
+
|
|
55
|
+
const points = [];
|
|
56
|
+
const timeSpan = event.timeStamp - (prevTime || event.timeStamp - 16);
|
|
57
|
+
|
|
58
|
+
for (let i = 0; i < numPoints; i++) {
|
|
59
|
+
const t = (i + 1) / (numPoints + 1);
|
|
60
|
+
|
|
61
|
+
// Interpolate with slight jitter
|
|
62
|
+
const jitterX = (rng() - 0.5) * 0.5;
|
|
63
|
+
const jitterY = (rng() - 0.5) * 0.5;
|
|
64
|
+
const pointX = prevX + dx * t + jitterX;
|
|
65
|
+
const pointY = prevY + dy * t + jitterY;
|
|
66
|
+
const pointTime = (prevTime || event.timeStamp - 16) + timeSpan * t;
|
|
67
|
+
|
|
68
|
+
// Create a PointerEvent-like object
|
|
69
|
+
const coalescedEvent = new PointerEvent(event.type, {
|
|
70
|
+
clientX: pointX,
|
|
71
|
+
clientY: pointY,
|
|
72
|
+
screenX: event.screenX - event.clientX + pointX,
|
|
73
|
+
screenY: event.screenY - event.clientY + pointY,
|
|
74
|
+
pageX: pointX + (window.scrollX || 0),
|
|
75
|
+
pageY: pointY + (window.scrollY || 0),
|
|
76
|
+
pointerId: event.pointerId,
|
|
77
|
+
pointerType: event.pointerType,
|
|
78
|
+
isPrimary: event.isPrimary,
|
|
79
|
+
width: event.width,
|
|
80
|
+
height: event.height,
|
|
81
|
+
pressure: event.pressure || 0.5,
|
|
82
|
+
tiltX: event.tiltX,
|
|
83
|
+
tiltY: event.tiltY,
|
|
84
|
+
bubbles: false,
|
|
85
|
+
cancelable: false,
|
|
86
|
+
});
|
|
87
|
+
|
|
88
|
+
points.push(coalescedEvent);
|
|
89
|
+
}
|
|
90
|
+
|
|
91
|
+
// Always include the original event as the last point
|
|
92
|
+
points.push(event);
|
|
93
|
+
|
|
94
|
+
return points;
|
|
95
|
+
};
|
|
96
|
+
|
|
97
|
+
/**
|
|
98
|
+
* Generate predicted events (typically 1-2 points ahead)
|
|
99
|
+
*/
|
|
100
|
+
const generatePredictedPoints = (event) => {
|
|
101
|
+
const rng = createSeededRNG(sessionSeed + (++callCount) + 1000000);
|
|
102
|
+
const numPredicted = rng() > 0.3 ? 1 : 2;
|
|
103
|
+
const points = [];
|
|
104
|
+
|
|
105
|
+
// Predict forward based on current velocity
|
|
106
|
+
const dx = event.clientX - lastPointerX;
|
|
107
|
+
const dy = event.clientY - lastPointerY;
|
|
108
|
+
|
|
109
|
+
for (let i = 1; i <= numPredicted; i++) {
|
|
110
|
+
const predictedX = event.clientX + dx * i * 0.5 + (rng() - 0.5) * 2;
|
|
111
|
+
const predictedY = event.clientY + dy * i * 0.5 + (rng() - 0.5) * 2;
|
|
112
|
+
|
|
113
|
+
const predictedEvent = new PointerEvent(event.type, {
|
|
114
|
+
clientX: predictedX,
|
|
115
|
+
clientY: predictedY,
|
|
116
|
+
screenX: event.screenX - event.clientX + predictedX,
|
|
117
|
+
screenY: event.screenY - event.clientY + predictedY,
|
|
118
|
+
pointerId: event.pointerId,
|
|
119
|
+
pointerType: event.pointerType,
|
|
120
|
+
isPrimary: event.isPrimary,
|
|
121
|
+
pressure: event.pressure || 0.5,
|
|
122
|
+
bubbles: false,
|
|
123
|
+
cancelable: false,
|
|
124
|
+
});
|
|
125
|
+
|
|
126
|
+
points.push(predictedEvent);
|
|
127
|
+
}
|
|
128
|
+
|
|
129
|
+
return points;
|
|
130
|
+
};
|
|
131
|
+
|
|
132
|
+
// Override getCoalescedEvents
|
|
133
|
+
PointerEvent.prototype.getCoalescedEvents = function() {
|
|
134
|
+
// Only spoof for pointermove events (that's where coalesced events matter)
|
|
135
|
+
if (this.type !== 'pointermove' && this.type !== 'pointerdown') {
|
|
136
|
+
return originalGetCoalescedEvents ? originalGetCoalescedEvents.call(this) : [];
|
|
137
|
+
}
|
|
138
|
+
|
|
139
|
+
// Check if original already has coalesced events (real events)
|
|
140
|
+
if (originalGetCoalescedEvents) {
|
|
141
|
+
const original = originalGetCoalescedEvents.call(this);
|
|
142
|
+
if (original && original.length > 1) {
|
|
143
|
+
// Real events with coalesced data, don't interfere
|
|
144
|
+
lastPointerX = this.clientX;
|
|
145
|
+
lastPointerY = this.clientY;
|
|
146
|
+
lastPointerTime = this.timeStamp;
|
|
147
|
+
return original;
|
|
148
|
+
}
|
|
149
|
+
}
|
|
150
|
+
|
|
151
|
+
// Generate synthetic coalesced events
|
|
152
|
+
const result = generateCoalescedPoints(this, lastPointerX, lastPointerY, lastPointerTime);
|
|
153
|
+
|
|
154
|
+
// Update last position
|
|
155
|
+
lastPointerX = this.clientX;
|
|
156
|
+
lastPointerY = this.clientY;
|
|
157
|
+
lastPointerTime = this.timeStamp;
|
|
158
|
+
|
|
159
|
+
return result;
|
|
160
|
+
};
|
|
161
|
+
|
|
162
|
+
// Override getPredictedEvents
|
|
163
|
+
if (originalGetPredictedEvents) {
|
|
164
|
+
PointerEvent.prototype.getPredictedEvents = function() {
|
|
165
|
+
if (this.type !== 'pointermove') {
|
|
166
|
+
return originalGetPredictedEvents.call(this);
|
|
167
|
+
}
|
|
168
|
+
|
|
169
|
+
const original = originalGetPredictedEvents.call(this);
|
|
170
|
+
if (original && original.length > 0) {
|
|
171
|
+
return original;
|
|
172
|
+
}
|
|
173
|
+
|
|
174
|
+
return generatePredictedPoints(this);
|
|
175
|
+
};
|
|
176
|
+
}
|
|
177
|
+
|
|
178
|
+
// Track pointer position via listener
|
|
179
|
+
window.addEventListener('pointermove', (e) => {
|
|
180
|
+
lastPointerX = e.clientX;
|
|
181
|
+
lastPointerY = e.clientY;
|
|
182
|
+
lastPointerTime = e.timeStamp;
|
|
183
|
+
}, { capture: true, passive: true });
|
|
184
|
+
|
|
185
|
+
// Register overrides with stealth utils if available
|
|
186
|
+
const _s = typeof __stealth !== 'undefined' ? __stealth : null;
|
|
187
|
+
if (_s && _s.utils) {
|
|
188
|
+
_s.utils.registerNativeFunction(PointerEvent.prototype.getCoalescedEvents, 'getCoalescedEvents');
|
|
189
|
+
if (originalGetPredictedEvents) {
|
|
190
|
+
_s.utils.registerNativeFunction(PointerEvent.prototype.getPredictedEvents, 'getPredictedEvents');
|
|
191
|
+
}
|
|
192
|
+
}
|
|
193
|
+
})();`;
|
|
194
|
+
};
|
|
195
|
+
//# sourceMappingURL=coalesced-events-spoofing.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"coalesced-events-spoofing.js","sourceRoot":"","sources":["../../../src/fingerprinting/fingerprint-overrides/coalesced-events-spoofing.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,MAAM,CAAC,MAAM,mCAAmC,GAAG,GAAW,EAAE;IAC5D,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;MAuLL,CAAC;AACP,CAAC,CAAC"}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* DataDome-Specific Bypass Module - MAXIMUM AGGRESSION Edition 2025-2026
|
|
3
|
+
*
|
|
4
|
+
* Based on comprehensive analysis of DataDome fingerprinting from:
|
|
5
|
+
* - analysis-a8005bea5af559c5.json (36 fingerprinting methods, 1080+ property accesses)
|
|
6
|
+
* - fingerprint-traps-d1764644c7101d16.json (799 method calls traced)
|
|
7
|
+
*
|
|
8
|
+
* This module overrides EVERYTHING DataDome checks.
|
|
9
|
+
*
|
|
10
|
+
* CRITICAL DETECTION VECTORS (All Addressed):
|
|
11
|
+
* - Error.constructor (100+ stack trace checks)
|
|
12
|
+
* - navigator.userAgentData.getHighEntropyValues() (architecture, bitness, platform)
|
|
13
|
+
* - Date.constructor (timing analysis)
|
|
14
|
+
* - Function.prototype.toString (native code checks)
|
|
15
|
+
* - performance.memory (iframe checks via geo.captcha-delivery.com)
|
|
16
|
+
* - screen.* (all properties)
|
|
17
|
+
* - window.* (dimensions, parent, top, self)
|
|
18
|
+
* - navigator.* (40+ properties)
|
|
19
|
+
* - localStorage/sessionStorage
|
|
20
|
+
* - history API
|
|
21
|
+
* - Permissions API
|
|
22
|
+
* - MediaDevices API
|
|
23
|
+
* - Keyboard API
|
|
24
|
+
* - Battery API
|
|
25
|
+
* - WebGL/Canvas
|
|
26
|
+
*/
|
|
27
|
+
export declare const createDataDomeBypassScript: () => string;
|
|
28
|
+
//# sourceMappingURL=datadome-bypass.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"datadome-bypass.d.ts","sourceRoot":"","sources":["../../../src/fingerprinting/fingerprint-overrides/datadome-bypass.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AAEH,eAAO,MAAM,0BAA0B,QAAO,MAioC7C,CAAC"}
|