jumpy-lion 0.1.6-beta.9 → 1.0.0-beta.0

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 (231) hide show
  1. package/README.md +1 -607
  2. package/browser/fonts/macos-bundle/40-macos-aliases.conf +515 -0
  3. package/browser/fonts/macos-bundle/README.md +24 -0
  4. package/browser/fonts/macos-bundle/install.sh +83 -0
  5. package/dist/browser-controller.d.ts +47 -4
  6. package/dist/browser-controller.d.ts.map +1 -1
  7. package/dist/browser-controller.js +219 -278
  8. package/dist/browser-controller.js.map +1 -1
  9. package/dist/browser-plugin.d.ts +82 -110
  10. package/dist/browser-plugin.d.ts.map +1 -1
  11. package/dist/browser-plugin.js +376 -379
  12. package/dist/browser-plugin.js.map +1 -1
  13. package/dist/browser-process/align-fingerprint-config.d.ts +36 -0
  14. package/dist/browser-process/align-fingerprint-config.d.ts.map +1 -0
  15. package/dist/browser-process/align-fingerprint-config.js +74 -0
  16. package/dist/browser-process/align-fingerprint-config.js.map +1 -0
  17. package/dist/browser-process/anti-detect-browser.d.ts +2 -2
  18. package/dist/browser-process/anti-detect-browser.js +7 -7
  19. package/dist/browser-process/anti-detect-config.d.ts +131 -2
  20. package/dist/browser-process/anti-detect-config.d.ts.map +1 -1
  21. package/dist/browser-process/anti-detect-config.js +337 -127
  22. package/dist/browser-process/anti-detect-config.js.map +1 -1
  23. package/dist/browser-process/browser.d.ts +25 -92
  24. package/dist/browser-process/browser.d.ts.map +1 -1
  25. package/dist/browser-process/browser.js +401 -78
  26. package/dist/browser-process/browser.js.map +1 -1
  27. package/dist/browser-process/fingerprint-config.d.ts +146 -0
  28. package/dist/browser-process/fingerprint-config.d.ts.map +1 -0
  29. package/dist/browser-process/fingerprint-config.js +308 -0
  30. package/dist/browser-process/fingerprint-config.js.map +1 -0
  31. package/dist/browser-process/get-chrome-executable.d.ts +6 -0
  32. package/dist/browser-process/get-chrome-executable.d.ts.map +1 -1
  33. package/dist/browser-process/get-chrome-executable.js +79 -4
  34. package/dist/browser-process/get-chrome-executable.js.map +1 -1
  35. package/dist/browser-process/gpu-family-profiles.d.ts +58 -0
  36. package/dist/browser-process/gpu-family-profiles.d.ts.map +1 -0
  37. package/dist/browser-process/gpu-family-profiles.js +480 -0
  38. package/dist/browser-process/gpu-family-profiles.js.map +1 -0
  39. package/dist/browser-process/launch-options.d.ts +301 -0
  40. package/dist/browser-process/launch-options.d.ts.map +1 -0
  41. package/dist/browser-process/launch-options.js +2 -0
  42. package/dist/browser-process/launch-options.js.map +1 -0
  43. package/dist/browser-process/port-allocator.d.ts +64 -0
  44. package/dist/browser-process/port-allocator.d.ts.map +1 -0
  45. package/dist/browser-process/port-allocator.js +198 -0
  46. package/dist/browser-process/port-allocator.js.map +1 -0
  47. package/dist/browser-process/process.d.ts +85 -0
  48. package/dist/browser-process/process.d.ts.map +1 -1
  49. package/dist/browser-process/process.js +235 -19
  50. package/dist/browser-process/process.js.map +1 -1
  51. package/dist/browser-process/signal-cleanup.d.ts +40 -0
  52. package/dist/browser-process/signal-cleanup.d.ts.map +1 -0
  53. package/dist/browser-process/signal-cleanup.js +105 -0
  54. package/dist/browser-process/signal-cleanup.js.map +1 -0
  55. package/dist/browser-process/widevine-cdm.d.ts +144 -0
  56. package/dist/browser-process/widevine-cdm.d.ts.map +1 -0
  57. package/dist/browser-process/widevine-cdm.js +298 -0
  58. package/dist/browser-process/widevine-cdm.js.map +1 -0
  59. package/dist/browser-profiles/chrome/populate-profile.d.ts.map +1 -1
  60. package/dist/browser-profiles/chrome/populate-profile.js +21 -22
  61. package/dist/browser-profiles/chrome/populate-profile.js.map +1 -1
  62. package/dist/connection/cdp-reconnection.d.ts +50 -0
  63. package/dist/connection/cdp-reconnection.d.ts.map +1 -0
  64. package/dist/connection/cdp-reconnection.js +75 -0
  65. package/dist/connection/cdp-reconnection.js.map +1 -0
  66. package/dist/connection/page-session.d.ts +114 -0
  67. package/dist/connection/page-session.d.ts.map +1 -0
  68. package/dist/connection/page-session.js +237 -0
  69. package/dist/connection/page-session.js.map +1 -0
  70. package/dist/connection/session-client.d.ts +34 -0
  71. package/dist/connection/session-client.d.ts.map +1 -0
  72. package/dist/connection/session-client.js +129 -0
  73. package/dist/connection/session-client.js.map +1 -0
  74. package/dist/crawler.d.ts +9 -88
  75. package/dist/crawler.d.ts.map +1 -1
  76. package/dist/crawler.js +157 -8
  77. package/dist/crawler.js.map +1 -1
  78. package/dist/fingerprinting/fingerprint-injector.d.ts +24 -114
  79. package/dist/fingerprinting/fingerprint-injector.d.ts.map +1 -1
  80. package/dist/fingerprinting/fingerprint-injector.js +305 -611
  81. package/dist/fingerprinting/fingerprint-injector.js.map +1 -1
  82. package/dist/fingerprinting/fingerprint-overrides/datadome-bypass.d.ts +1 -1
  83. package/dist/fingerprinting/fingerprint-overrides/datadome-bypass.d.ts.map +1 -1
  84. package/dist/fingerprinting/fingerprint-overrides/datadome-bypass.js +16 -14
  85. package/dist/fingerprinting/fingerprint-overrides/datadome-bypass.js.map +1 -1
  86. package/dist/fingerprinting/fingerprint-overrides/index.d.ts +6 -2
  87. package/dist/fingerprinting/fingerprint-overrides/index.d.ts.map +1 -1
  88. package/dist/fingerprinting/fingerprint-overrides/index.js +6 -2
  89. package/dist/fingerprinting/fingerprint-overrides/index.js.map +1 -1
  90. package/dist/fingerprinting/fingerprint-overrides/keyboard-humanization.d.ts +1 -1
  91. package/dist/fingerprinting/fingerprint-overrides/keyboard-humanization.js +4 -4
  92. package/dist/fingerprinting/fingerprint-overrides/keyboard-humanization.js.map +1 -1
  93. package/dist/fingerprinting/fingerprint-overrides/locale-spoofing.js +4 -4
  94. package/dist/fingerprinting/fingerprint-overrides/navigator-override.d.ts +18 -0
  95. package/dist/fingerprinting/fingerprint-overrides/navigator-override.d.ts.map +1 -0
  96. package/dist/fingerprinting/fingerprint-overrides/navigator-override.js +136 -0
  97. package/dist/fingerprinting/fingerprint-overrides/navigator-override.js.map +1 -0
  98. package/dist/fingerprinting/fingerprint-overrides/override.d.ts +151 -0
  99. package/dist/fingerprinting/fingerprint-overrides/override.d.ts.map +1 -0
  100. package/dist/fingerprinting/fingerprint-overrides/override.js +14 -0
  101. package/dist/fingerprinting/fingerprint-overrides/override.js.map +1 -0
  102. package/dist/fingerprinting/fingerprint-overrides/platform-consistency.d.ts.map +1 -1
  103. package/dist/fingerprinting/fingerprint-overrides/platform-consistency.js +46 -15
  104. package/dist/fingerprinting/fingerprint-overrides/platform-consistency.js.map +1 -1
  105. package/dist/fingerprinting/fingerprint-overrides/registry.d.ts +43 -0
  106. package/dist/fingerprinting/fingerprint-overrides/registry.d.ts.map +1 -0
  107. package/dist/fingerprinting/fingerprint-overrides/registry.js +342 -0
  108. package/dist/fingerprinting/fingerprint-overrides/registry.js.map +1 -0
  109. package/dist/fingerprinting/fingerprint-overrides/screen-override.d.ts +16 -0
  110. package/dist/fingerprinting/fingerprint-overrides/screen-override.d.ts.map +1 -0
  111. package/dist/fingerprinting/fingerprint-overrides/screen-override.js +175 -0
  112. package/dist/fingerprinting/fingerprint-overrides/screen-override.js.map +1 -0
  113. package/dist/fingerprinting/fingerprint-overrides/scroll-humanization.d.ts +1 -1
  114. package/dist/fingerprinting/fingerprint-overrides/scroll-humanization.js +4 -4
  115. package/dist/fingerprinting/fingerprint-overrides/scroll-humanization.js.map +1 -1
  116. package/dist/fingerprinting/fingerprint-overrides/stealth-script.d.ts.map +1 -1
  117. package/dist/fingerprinting/fingerprint-overrides/stealth-script.js +75 -9
  118. package/dist/fingerprinting/fingerprint-overrides/stealth-script.js.map +1 -1
  119. package/dist/fingerprinting/fingerprint-overrides/ua-ch.d.ts +1 -1
  120. package/dist/fingerprinting/fingerprint-overrides/ua-ch.d.ts.map +1 -1
  121. package/dist/fingerprinting/fingerprint-overrides/ua-ch.js +34 -20
  122. package/dist/fingerprinting/fingerprint-overrides/ua-ch.js.map +1 -1
  123. package/dist/fingerprinting/fingerprint-overrides/webgl-spoofing.d.ts.map +1 -1
  124. package/dist/fingerprinting/fingerprint-overrides/webgl-spoofing.js +25 -6
  125. package/dist/fingerprinting/fingerprint-overrides/webgl-spoofing.js.map +1 -1
  126. package/dist/fingerprinting/fingerprint-overrides/webrtc-spoofing.js +1 -1
  127. package/dist/fingerprinting/hardware-realism.d.ts +83 -0
  128. package/dist/fingerprinting/hardware-realism.d.ts.map +1 -0
  129. package/dist/fingerprinting/hardware-realism.js +156 -0
  130. package/dist/fingerprinting/hardware-realism.js.map +1 -0
  131. package/dist/fingerprinting/injection-planner.d.ts +133 -0
  132. package/dist/fingerprinting/injection-planner.d.ts.map +1 -0
  133. package/dist/fingerprinting/injection-planner.js +497 -0
  134. package/dist/fingerprinting/injection-planner.js.map +1 -0
  135. package/dist/fingerprinting/locale-resolver.d.ts +8 -1
  136. package/dist/fingerprinting/locale-resolver.d.ts.map +1 -1
  137. package/dist/fingerprinting/locale-resolver.js +26 -3
  138. package/dist/fingerprinting/locale-resolver.js.map +1 -1
  139. package/dist/fingerprinting/non-apify-fingerprint-generator.d.ts +4 -4
  140. package/dist/fingerprinting/non-apify-fingerprint-generator.d.ts.map +1 -1
  141. package/dist/fingerprinting/non-apify-fingerprint-generator.js +24 -58
  142. package/dist/fingerprinting/non-apify-fingerprint-generator.js.map +1 -1
  143. package/dist/fingerprinting/non-apify-profiles.json +10515 -8494
  144. package/dist/fingerprinting/os-consistency.d.ts +28 -0
  145. package/dist/fingerprinting/os-consistency.d.ts.map +1 -0
  146. package/dist/fingerprinting/os-consistency.js +45 -0
  147. package/dist/fingerprinting/os-consistency.js.map +1 -0
  148. package/dist/fingerprinting/profile-quality.d.ts +25 -0
  149. package/dist/fingerprinting/profile-quality.d.ts.map +1 -0
  150. package/dist/fingerprinting/profile-quality.js +310 -0
  151. package/dist/fingerprinting/profile-quality.js.map +1 -0
  152. package/dist/fingerprinting/profile-selector.d.ts +102 -0
  153. package/dist/fingerprinting/profile-selector.d.ts.map +1 -0
  154. package/dist/fingerprinting/profile-selector.js +168 -0
  155. package/dist/fingerprinting/profile-selector.js.map +1 -0
  156. package/dist/fingerprinting/ua-alignment.d.ts +83 -0
  157. package/dist/fingerprinting/ua-alignment.d.ts.map +1 -0
  158. package/dist/fingerprinting/ua-alignment.js +197 -0
  159. package/dist/fingerprinting/ua-alignment.js.map +1 -0
  160. package/dist/fingerprinting/ua-ch-brands.d.ts +88 -0
  161. package/dist/fingerprinting/ua-ch-brands.d.ts.map +1 -0
  162. package/dist/fingerprinting/ua-ch-brands.js +174 -0
  163. package/dist/fingerprinting/ua-ch-brands.js.map +1 -0
  164. package/dist/index.d.ts +5 -0
  165. package/dist/index.d.ts.map +1 -1
  166. package/dist/index.js +6 -0
  167. package/dist/index.js.map +1 -1
  168. package/dist/input/dropdown-selector.d.ts +90 -0
  169. package/dist/input/dropdown-selector.d.ts.map +1 -0
  170. package/dist/input/dropdown-selector.js +394 -0
  171. package/dist/input/dropdown-selector.js.map +1 -0
  172. package/dist/input/element-target.d.ts +152 -0
  173. package/dist/input/element-target.d.ts.map +1 -0
  174. package/dist/input/element-target.js +461 -0
  175. package/dist/input/element-target.js.map +1 -0
  176. package/dist/input/input-emulator.d.ts +85 -0
  177. package/dist/input/input-emulator.d.ts.map +1 -0
  178. package/dist/input/input-emulator.js +325 -0
  179. package/dist/input/input-emulator.js.map +1 -0
  180. package/dist/input/input-transport.d.ts +60 -0
  181. package/dist/input/input-transport.d.ts.map +1 -0
  182. package/dist/input/input-transport.js +28 -0
  183. package/dist/input/input-transport.js.map +1 -0
  184. package/dist/input/recording-transport.d.ts +32 -0
  185. package/dist/input/recording-transport.d.ts.map +1 -0
  186. package/dist/input/recording-transport.js +43 -0
  187. package/dist/input/recording-transport.js.map +1 -0
  188. package/dist/keyboard-layout.d.ts +2 -2
  189. package/dist/keyboard-layout.js +2 -2
  190. package/dist/navigation/page-navigation.d.ts +67 -0
  191. package/dist/navigation/page-navigation.d.ts.map +1 -0
  192. package/dist/navigation/page-navigation.js +122 -0
  193. package/dist/navigation/page-navigation.js.map +1 -0
  194. package/dist/network/network-watch.d.ts +110 -0
  195. package/dist/network/network-watch.d.ts.map +1 -0
  196. package/dist/network/network-watch.js +223 -0
  197. package/dist/network/network-watch.js.map +1 -0
  198. package/dist/page.d.ts +118 -104
  199. package/dist/page.d.ts.map +1 -1
  200. package/dist/page.js +311 -1130
  201. package/dist/page.js.map +1 -1
  202. package/dist/session/inject-hook.d.ts +24 -0
  203. package/dist/session/inject-hook.d.ts.map +1 -0
  204. package/dist/session/inject-hook.js +80 -0
  205. package/dist/session/inject-hook.js.map +1 -0
  206. package/dist/session/save.d.ts +21 -0
  207. package/dist/session/save.d.ts.map +1 -0
  208. package/dist/session/save.js +163 -0
  209. package/dist/session/save.js.map +1 -0
  210. package/dist/session/tar-data-dir.d.ts +18 -0
  211. package/dist/session/tar-data-dir.d.ts.map +1 -0
  212. package/dist/session/tar-data-dir.js +105 -0
  213. package/dist/session/tar-data-dir.js.map +1 -0
  214. package/dist/session/types.d.ts +80 -0
  215. package/dist/session/types.d.ts.map +1 -0
  216. package/dist/session/types.js +29 -0
  217. package/dist/session/types.js.map +1 -0
  218. package/dist/session-profile.d.ts +102 -0
  219. package/dist/session-profile.d.ts.map +1 -0
  220. package/dist/session-profile.js +163 -0
  221. package/dist/session-profile.js.map +1 -0
  222. package/dist/tsconfig.build.tsbuildinfo +1 -1
  223. package/package.json +15 -6
  224. package/dist/fingerprinting/custom-fingerprint-injector.d.ts +0 -87
  225. package/dist/fingerprinting/custom-fingerprint-injector.d.ts.map +0 -1
  226. package/dist/fingerprinting/custom-fingerprint-injector.js +0 -342
  227. package/dist/fingerprinting/custom-fingerprint-injector.js.map +0 -1
  228. package/dist/launcher-wrap.d.ts +0 -10
  229. package/dist/launcher-wrap.d.ts.map +0 -1
  230. package/dist/launcher-wrap.js +0 -11
  231. package/dist/launcher-wrap.js.map +0 -1
package/package.json CHANGED
@@ -2,7 +2,7 @@
2
2
  "name": "jumpy-lion",
3
3
  "description": "",
4
4
  "type": "module",
5
- "version": "0.1.6-beta.9",
5
+ "version": "1.0.0-beta.0",
6
6
  "engines": {
7
7
  "node": ">=20.0.0"
8
8
  },
@@ -22,12 +22,14 @@
22
22
  },
23
23
  "files": [
24
24
  "dist",
25
- "scripts/postinstall.cjs"
25
+ "scripts/postinstall.cjs",
26
+ "browser/fonts/macos-bundle"
26
27
  ],
27
28
  "license": "Apache-2.0",
28
29
  "scripts": {
29
30
  "clean": "rimraf ./dist",
30
- "prepublishOnly": "npm run build && node scripts/check-browser-released.cjs",
31
+ "prepublishOnly": "node scripts/swap-readmes.cjs swap && npm run build && node scripts/check-browser-released.cjs",
32
+ "postpublish": "node scripts/swap-readmes.cjs restore",
31
33
  "compile": "tsc -p tsconfig.build.json",
32
34
  "copy-extension": "cp -r src/fingerprinting/all-fingerprint-defender dist/fingerprinting/ && cp -r src/fingerprinting/anti-webgpu dist/fingerprinting/ && cp src/fingerprinting/non-apify-profiles.json dist/fingerprinting/",
33
35
  "build": "npm run clean && npm run compile && npm run copy-extension",
@@ -41,10 +43,15 @@
41
43
  "postinstall": "node scripts/postinstall.cjs",
42
44
  "ci:build": "turbo run build --cache-dir=\".turbo\"",
43
45
  "test:unit": "vitest run unit",
44
- "test": "vitest run --silent",
45
- "test:e2e": "node test/e2e/run.mjs",
46
+ "test": "npm run test:unit && npm run test:e2e",
47
+ "test:e2e": "vitest run --config vitest.e2e.config.ts",
48
+ "test:e2e:ci": "vitest run --config vitest.e2e.ci.config.ts",
49
+ "capture:baseline": "node scripts/capture-baseline.mjs",
46
50
  "test:docker:linux": "bash test/docker-linux/run.sh",
47
51
  "test:docker:linux:diagnose": "bash test/docker-linux/run.sh --diagnose",
52
+ "test:protections": "vitest run --config vitest.protections.config.ts",
53
+ "test:protections:js": "STEALTH_ENGINE=js vitest run --config vitest.protections.config.ts",
54
+ "test:protections:linux": "bash test/docker-linux/run.sh protections",
48
55
  "test:full": "cross-env vitest run --silent",
49
56
  "coverage": "vitest --coverage",
50
57
  "lint": "eslint src/**/*.ts test/**/*.ts",
@@ -59,6 +66,7 @@
59
66
  "@types/chrome-remote-interface": "^0.31.14",
60
67
  "@types/is-ci": "^3.0.4",
61
68
  "@types/ps-tree": "^1.1.6",
69
+ "@types/tar": "^6.1.13",
62
70
  "@typescript-eslint/eslint-plugin": "^7.15.0",
63
71
  "@typescript-eslint/parser": "^7.15.0",
64
72
  "@vitest/coverage-istanbul": "^2.1.1",
@@ -87,6 +95,7 @@
87
95
  "fingerprint-generator": "^2.1.82",
88
96
  "header-generator": "^2.1.82",
89
97
  "proxy-chain": "^2.5.3",
90
- "ps-tree": "^1.2.0"
98
+ "ps-tree": "^1.2.0",
99
+ "tar": "^7.5.15"
91
100
  }
92
101
  }
@@ -1,87 +0,0 @@
1
- /**
2
- * Custom Fingerprint Injection Module
3
- *
4
- * Replaces the fingerprint-injector library with custom logic that:
5
- * - Generates injection scripts for all fingerprint properties
6
- * - Logs successful property overrides
7
- * - Throws/logs errors instead of silently failing
8
- * - Uses puppeteer-stealth-style property guards
9
- */
10
- interface BrowserFingerprint {
11
- navigator?: {
12
- userAgent?: string;
13
- platform?: string;
14
- vendor?: string;
15
- vendorSub?: string;
16
- productSub?: string;
17
- language?: string;
18
- languages?: string[];
19
- hardwareConcurrency?: number;
20
- deviceMemory?: number;
21
- maxTouchPoints?: number;
22
- oscpu?: string;
23
- appVersion?: string;
24
- appName?: string;
25
- appCodeName?: string;
26
- product?: string;
27
- pdfViewerEnabled?: boolean;
28
- cookieEnabled?: boolean;
29
- onLine?: boolean;
30
- doNotTrack?: string | null;
31
- };
32
- screen?: {
33
- width?: number;
34
- height?: number;
35
- availWidth?: number;
36
- availHeight?: number;
37
- colorDepth?: number;
38
- pixelDepth?: number;
39
- availLeft?: number;
40
- availTop?: number;
41
- devicePixelRatio?: number;
42
- pageXOffset?: number;
43
- pageYOffset?: number;
44
- };
45
- videoCard?: {
46
- vendor?: string;
47
- renderer?: string;
48
- };
49
- battery?: {
50
- charging?: boolean;
51
- chargingTime?: number;
52
- dischargingTime?: number;
53
- level?: number;
54
- };
55
- audioContext?: {
56
- sampleRate?: number;
57
- numberOfChannels?: number;
58
- maxChannelCount?: number;
59
- };
60
- }
61
- /**
62
- * Creates a script that overrides all navigator properties
63
- */
64
- export declare function createNavigatorOverrideScript(fingerprint: BrowserFingerprint): string;
65
- /**
66
- * Creates a script that overrides all screen properties
67
- */
68
- export declare function createScreenOverrideScript(fingerprint: BrowserFingerprint): string;
69
- /**
70
- * Creates a script that overrides window-level properties
71
- */
72
- export declare function createWindowOverrideScript(fingerprint: BrowserFingerprint): string;
73
- /**
74
- * Creates a comprehensive fingerprint injection script
75
- */
76
- export declare function createComprehensiveFingerprintScript(fingerprint: BrowserFingerprint): string;
77
- export interface CustomFingerprintOptions {
78
- debug?: boolean;
79
- throwOnError?: boolean;
80
- }
81
- /**
82
- * Main function to inject custom fingerprint
83
- * This replaces the fingerprint-injector library's injectable script
84
- */
85
- export declare function createCustomFingerprintInjection(fingerprint: BrowserFingerprint, _options?: CustomFingerprintOptions): string[];
86
- export {};
87
- //# sourceMappingURL=custom-fingerprint-injector.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"custom-fingerprint-injector.d.ts","sourceRoot":"","sources":["../../src/fingerprinting/custom-fingerprint-injector.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAIH,UAAU,kBAAkB;IACxB,SAAS,CAAC,EAAE;QACR,SAAS,CAAC,EAAE,MAAM,CAAC;QACnB,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,MAAM,CAAC,EAAE,MAAM,CAAC;QAChB,SAAS,CAAC,EAAE,MAAM,CAAC;QACnB,UAAU,CAAC,EAAE,MAAM,CAAC;QACpB,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC;QACrB,mBAAmB,CAAC,EAAE,MAAM,CAAC;QAC7B,YAAY,CAAC,EAAE,MAAM,CAAC;QACtB,cAAc,CAAC,EAAE,MAAM,CAAC;QACxB,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,UAAU,CAAC,EAAE,MAAM,CAAC;QACpB,OAAO,CAAC,EAAE,MAAM,CAAC;QACjB,WAAW,CAAC,EAAE,MAAM,CAAC;QACrB,OAAO,CAAC,EAAE,MAAM,CAAC;QACjB,gBAAgB,CAAC,EAAE,OAAO,CAAC;QAC3B,aAAa,CAAC,EAAE,OAAO,CAAC;QACxB,MAAM,CAAC,EAAE,OAAO,CAAC;QACjB,UAAU,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;KAC9B,CAAC;IACF,MAAM,CAAC,EAAE;QACL,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,MAAM,CAAC,EAAE,MAAM,CAAC;QAChB,UAAU,CAAC,EAAE,MAAM,CAAC;QACpB,WAAW,CAAC,EAAE,MAAM,CAAC;QACrB,UAAU,CAAC,EAAE,MAAM,CAAC;QACpB,UAAU,CAAC,EAAE,MAAM,CAAC;QACpB,SAAS,CAAC,EAAE,MAAM,CAAC;QACnB,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,gBAAgB,CAAC,EAAE,MAAM,CAAC;QAC1B,WAAW,CAAC,EAAE,MAAM,CAAC;QACrB,WAAW,CAAC,EAAE,MAAM,CAAC;KACxB,CAAC;IACF,SAAS,CAAC,EAAE;QACR,MAAM,CAAC,EAAE,MAAM,CAAC;QAChB,QAAQ,CAAC,EAAE,MAAM,CAAC;KACrB,CAAC;IACF,OAAO,CAAC,EAAE;QACN,QAAQ,CAAC,EAAE,OAAO,CAAC;QACnB,YAAY,CAAC,EAAE,MAAM,CAAC;QACtB,eAAe,CAAC,EAAE,MAAM,CAAC;QACzB,KAAK,CAAC,EAAE,MAAM,CAAC;KAClB,CAAC;IACF,YAAY,CAAC,EAAE;QACX,UAAU,CAAC,EAAE,MAAM,CAAC;QACpB,gBAAgB,CAAC,EAAE,MAAM,CAAC;QAC1B,eAAe,CAAC,EAAE,MAAM,CAAC;KAC5B,CAAC;CACL;AAED;;GAEG;AACH,wBAAgB,6BAA6B,CAAC,WAAW,EAAE,kBAAkB,GAAG,MAAM,CAqGrF;AAED;;GAEG;AACH,wBAAgB,0BAA0B,CAAC,WAAW,EAAE,kBAAkB,GAAG,MAAM,CA0FlF;AAED;;GAEG;AACH,wBAAgB,0BAA0B,CAAC,WAAW,EAAE,kBAAkB,GAAG,MAAM,CAwElF;AAED;;GAEG;AACH,wBAAgB,oCAAoC,CAAC,WAAW,EAAE,kBAAkB,GAAG,MAAM,CAyB5F;AAED,MAAM,WAAW,wBAAwB;IACrC,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,YAAY,CAAC,EAAE,OAAO,CAAC;CAC1B;AAED;;;GAGG;AACH,wBAAgB,gCAAgC,CAC5C,WAAW,EAAE,kBAAkB,EAC/B,QAAQ,GAAE,wBAA6B,GACxC,MAAM,EAAE,CAiCV"}
@@ -1,342 +0,0 @@
1
- /**
2
- * Custom Fingerprint Injection Module
3
- *
4
- * Replaces the fingerprint-injector library with custom logic that:
5
- * - Generates injection scripts for all fingerprint properties
6
- * - Logs successful property overrides
7
- * - Throws/logs errors instead of silently failing
8
- * - Uses puppeteer-stealth-style property guards
9
- */
10
- import { log } from 'crawlee';
11
- /**
12
- * Creates a script that overrides all navigator properties
13
- */
14
- export function createNavigatorOverrideScript(fingerprint) {
15
- const nav = fingerprint.navigator || {};
16
- return `
17
- (() => {
18
- 'use strict';
19
-
20
- const DEBUG_PREFIX = '[CDP-FP-DEBUG]';
21
- const ERROR_PREFIX = '[CDP-FP-ERROR]';
22
-
23
- console.log(DEBUG_PREFIX, 'Starting navigator property overrides...');
24
-
25
- // Get stealth utilities
26
- const utils = (typeof __stealth !== 'undefined' && __stealth.utils) || {
27
- overrideGetterWithNative: (obj, prop, getter) => {
28
- try {
29
- const existing = Object.getOwnPropertyDescriptor(obj, prop);
30
- if (existing && existing.configurable === false) {
31
- console.warn(DEBUG_PREFIX, \`Property navigator.\${prop} is frozen, attempting fallback\`);
32
- return false;
33
- }
34
- Object.defineProperty(obj, prop, {
35
- get: getter,
36
- configurable: true,
37
- enumerable: true
38
- });
39
- return true;
40
- } catch (e) {
41
- console.error(ERROR_PREFIX, \`Failed to override navigator.\${prop}:\`, e);
42
- return false;
43
- }
44
- }
45
- };
46
-
47
- const overrideNavigatorProperty = (prop, value) => {
48
- try {
49
- const success = utils.overrideGetterWithNative(
50
- navigator,
51
- prop,
52
- () => value
53
- );
54
- if (success) {
55
- console.log(DEBUG_PREFIX, \`✓ Overridden navigator.\${prop} to:\`, value);
56
- } else {
57
- console.warn(DEBUG_PREFIX, \`⚠ Could not override navigator.\${prop} (frozen property)\`);
58
- }
59
- return success;
60
- } catch (error) {
61
- console.error(ERROR_PREFIX, \`Exception overriding navigator.\${prop}:\`, error);
62
- throw error;
63
- }
64
- };
65
-
66
- // Override navigator properties
67
- const overrides = {
68
- ${nav.userAgent ? `userAgent: ${JSON.stringify(nav.userAgent)},` : ''}
69
- ${nav.platform ? `platform: ${JSON.stringify(nav.platform)},` : ''}
70
- ${nav.vendor ? `vendor: ${JSON.stringify(nav.vendor)},` : ''}
71
- ${nav.vendorSub ? `vendorSub: ${JSON.stringify(nav.vendorSub)},` : ''}
72
- ${nav.productSub ? `productSub: ${JSON.stringify(nav.productSub)},` : ''}
73
- ${nav.language ? `language: ${JSON.stringify(nav.language)},` : ''}
74
- ${nav.languages ? `languages: ${JSON.stringify(nav.languages)},` : ''}
75
- ${nav.hardwareConcurrency ? `hardwareConcurrency: ${nav.hardwareConcurrency},` : ''}
76
- ${nav.deviceMemory ? `deviceMemory: ${nav.deviceMemory},` : ''}
77
- ${nav.maxTouchPoints !== undefined ? `maxTouchPoints: ${nav.maxTouchPoints},` : ''}
78
- ${nav.oscpu ? `oscpu: ${JSON.stringify(nav.oscpu)},` : ''}
79
- ${nav.appVersion ? `appVersion: ${JSON.stringify(nav.appVersion)},` : ''}
80
- ${nav.appName ? `appName: ${JSON.stringify(nav.appName)},` : ''}
81
- ${nav.appCodeName ? `appCodeName: ${JSON.stringify(nav.appCodeName)},` : ''}
82
- ${nav.product ? `product: ${JSON.stringify(nav.product)},` : ''}
83
- ${nav.pdfViewerEnabled !== undefined ? `pdfViewerEnabled: ${nav.pdfViewerEnabled},` : ''}
84
- ${nav.cookieEnabled !== undefined ? `cookieEnabled: ${nav.cookieEnabled},` : ''}
85
- ${nav.onLine !== undefined ? `onLine: ${nav.onLine},` : ''}
86
- ${nav.doNotTrack !== undefined ? `doNotTrack: ${nav.doNotTrack === null ? 'null' : JSON.stringify(nav.doNotTrack)},` : ''}
87
- };
88
-
89
- let successCount = 0;
90
- let failureCount = 0;
91
-
92
- for (const [prop, value] of Object.entries(overrides)) {
93
- if (overrideNavigatorProperty(prop, value)) {
94
- successCount++;
95
- } else {
96
- failureCount++;
97
- }
98
- }
99
-
100
- console.log(DEBUG_PREFIX, \`Navigator overrides complete: \${successCount} succeeded, \${failureCount} failed\`);
101
-
102
- // Verify overrides
103
- console.log(DEBUG_PREFIX, 'Verifying navigator overrides...');
104
- for (const [prop, expectedValue] of Object.entries(overrides)) {
105
- const actualValue = navigator[prop];
106
- if (JSON.stringify(actualValue) === JSON.stringify(expectedValue)) {
107
- console.log(DEBUG_PREFIX, \`✓ Verified navigator.\${prop}\`);
108
- } else {
109
- console.warn(DEBUG_PREFIX, \`⚠ Mismatch for navigator.\${prop}: expected\`, expectedValue, 'got', actualValue);
110
- }
111
- }
112
- })();
113
- `;
114
- }
115
- /**
116
- * Creates a script that overrides all screen properties
117
- */
118
- export function createScreenOverrideScript(fingerprint) {
119
- const scr = fingerprint.screen || {};
120
- return `
121
- (() => {
122
- 'use strict';
123
-
124
- const DEBUG_PREFIX = '[CDP-FP-DEBUG]';
125
- const ERROR_PREFIX = '[CDP-FP-ERROR]';
126
-
127
- console.log(DEBUG_PREFIX, 'Starting screen property overrides...');
128
-
129
- // Get stealth utilities
130
- const utils = (typeof __stealth !== 'undefined' && __stealth.utils) || {
131
- overrideGetterWithNative: (obj, prop, getter) => {
132
- try {
133
- const existing = Object.getOwnPropertyDescriptor(obj, prop);
134
- if (existing && existing.configurable === false) {
135
- console.warn(DEBUG_PREFIX, \`Property screen.\${prop} is frozen, attempting fallback\`);
136
- return false;
137
- }
138
- Object.defineProperty(obj, prop, {
139
- get: getter,
140
- configurable: true,
141
- enumerable: true
142
- });
143
- return true;
144
- } catch (e) {
145
- console.error(ERROR_PREFIX, \`Failed to override screen.\${prop}:\`, e);
146
- return false;
147
- }
148
- }
149
- };
150
-
151
- const overrideScreenProperty = (prop, value) => {
152
- try {
153
- const success = utils.overrideGetterWithNative(
154
- screen,
155
- prop,
156
- () => value
157
- );
158
- if (success) {
159
- console.log(DEBUG_PREFIX, \`✓ Overridden screen.\${prop} to:\`, value);
160
- } else {
161
- console.warn(DEBUG_PREFIX, \`⚠ Could not override screen.\${prop} (frozen property)\`);
162
- }
163
- return success;
164
- } catch (error) {
165
- console.error(ERROR_PREFIX, \`Exception overriding screen.\${prop}:\`, error);
166
- throw error;
167
- }
168
- };
169
-
170
- // Override screen properties
171
- const overrides = {
172
- ${scr.width ? `width: ${scr.width},` : ''}
173
- ${scr.height ? `height: ${scr.height},` : ''}
174
- ${scr.availWidth ? `availWidth: ${scr.availWidth},` : ''}
175
- ${scr.availHeight ? `availHeight: ${scr.availHeight},` : ''}
176
- ${scr.colorDepth ? `colorDepth: ${scr.colorDepth},` : ''}
177
- ${scr.pixelDepth ? `pixelDepth: ${scr.pixelDepth},` : ''}
178
- ${scr.availLeft !== undefined ? `availLeft: ${scr.availLeft},` : ''}
179
- ${scr.availTop !== undefined ? `availTop: ${scr.availTop},` : ''}
180
- };
181
-
182
- let successCount = 0;
183
- let failureCount = 0;
184
-
185
- for (const [prop, value] of Object.entries(overrides)) {
186
- if (overrideScreenProperty(prop, value)) {
187
- successCount++;
188
- } else {
189
- failureCount++;
190
- }
191
- }
192
-
193
- console.log(DEBUG_PREFIX, \`Screen overrides complete: \${successCount} succeeded, \${failureCount} failed\`);
194
-
195
- // Verify overrides
196
- console.log(DEBUG_PREFIX, 'Verifying screen overrides...');
197
- for (const [prop, expectedValue] of Object.entries(overrides)) {
198
- const actualValue = screen[prop];
199
- if (actualValue === expectedValue) {
200
- console.log(DEBUG_PREFIX, \`✓ Verified screen.\${prop}\`);
201
- } else {
202
- console.warn(DEBUG_PREFIX, \`⚠ Mismatch for screen.\${prop}: expected\`, expectedValue, 'got', actualValue);
203
- }
204
- }
205
- })();
206
- `;
207
- }
208
- /**
209
- * Creates a script that overrides window-level properties
210
- */
211
- export function createWindowOverrideScript(fingerprint) {
212
- const scr = fingerprint.screen || {};
213
- return `
214
- (() => {
215
- 'use strict';
216
-
217
- const DEBUG_PREFIX = '[CDP-FP-DEBUG]';
218
- const ERROR_PREFIX = '[CDP-FP-ERROR]';
219
-
220
- console.log(DEBUG_PREFIX, 'Starting window property overrides...');
221
-
222
- // Get stealth utilities
223
- const utils = (typeof __stealth !== 'undefined' && __stealth.utils) || {
224
- overrideGetterWithNative: (obj, prop, getter) => {
225
- try {
226
- const existing = Object.getOwnPropertyDescriptor(obj, prop);
227
- if (existing && existing.configurable === false) {
228
- console.warn(DEBUG_PREFIX, \`Property window.\${prop} is frozen, attempting fallback\`);
229
- return false;
230
- }
231
- Object.defineProperty(obj, prop, {
232
- get: getter,
233
- configurable: true,
234
- enumerable: true
235
- });
236
- return true;
237
- } catch (e) {
238
- console.error(ERROR_PREFIX, \`Failed to override window.\${prop}:\`, e);
239
- return false;
240
- }
241
- }
242
- };
243
-
244
- const overrideWindowProperty = (prop, value) => {
245
- try {
246
- const success = utils.overrideGetterWithNative(
247
- window,
248
- prop,
249
- () => value
250
- );
251
- if (success) {
252
- console.log(DEBUG_PREFIX, \`✓ Overridden window.\${prop} to:\`, value);
253
- } else {
254
- console.warn(DEBUG_PREFIX, \`⚠ Could not override window.\${prop} (frozen property)\`);
255
- }
256
- return success;
257
- } catch (error) {
258
- console.error(ERROR_PREFIX, \`Exception overriding window.\${prop}:\`, error);
259
- throw error;
260
- }
261
- };
262
-
263
- // Override window properties
264
- const overrides = {
265
- ${scr.devicePixelRatio ? `devicePixelRatio: ${scr.devicePixelRatio},` : ''}
266
- };
267
-
268
- let successCount = 0;
269
- let failureCount = 0;
270
-
271
- for (const [prop, value] of Object.entries(overrides)) {
272
- if (overrideWindowProperty(prop, value)) {
273
- successCount++;
274
- } else {
275
- failureCount++;
276
- }
277
- }
278
-
279
- console.log(DEBUG_PREFIX, \`Window overrides complete: \${successCount} succeeded, \${failureCount} failed\`);
280
- })();
281
- `;
282
- }
283
- /**
284
- * Creates a comprehensive fingerprint injection script
285
- */
286
- export function createComprehensiveFingerprintScript(fingerprint) {
287
- log.debug('Creating comprehensive fingerprint injection script', {
288
- hasNavigator: !!fingerprint.navigator,
289
- hasScreen: !!fingerprint.screen,
290
- hasVideoCard: !!fingerprint.videoCard,
291
- });
292
- return `
293
- (() => {
294
- 'use strict';
295
-
296
- const DEBUG_PREFIX = '[CDP-FP-DEBUG]';
297
- console.log(DEBUG_PREFIX, '=== Starting Comprehensive Fingerprint Injection ===');
298
- console.log(DEBUG_PREFIX, 'Timestamp:', new Date().toISOString());
299
-
300
- // Log fingerprint data structure
301
- console.log(DEBUG_PREFIX, 'Fingerprint data available:', {
302
- hasNavigator: ${!!fingerprint.navigator},
303
- hasScreen: ${!!fingerprint.screen},
304
- hasVideoCard: ${!!fingerprint.videoCard},
305
- });
306
-
307
- console.log(DEBUG_PREFIX, '=== Fingerprint Injection Complete ===');
308
- })();
309
- `;
310
- }
311
- /**
312
- * Main function to inject custom fingerprint
313
- * This replaces the fingerprint-injector library's injectable script
314
- */
315
- export function createCustomFingerprintInjection(fingerprint, _options = {}) {
316
- const scripts = [];
317
- log.info('Creating custom fingerprint injection scripts', {
318
- hasNavigator: !!fingerprint.navigator,
319
- hasScreen: !!fingerprint.screen,
320
- hasVideoCard: !!fingerprint.videoCard,
321
- });
322
- // Add comprehensive logging script
323
- scripts.push(createComprehensiveFingerprintScript(fingerprint));
324
- // Add navigator overrides
325
- if (fingerprint.navigator && Object.keys(fingerprint.navigator).length > 0) {
326
- scripts.push(createNavigatorOverrideScript(fingerprint));
327
- log.debug('Added navigator override script');
328
- }
329
- // Add screen overrides
330
- if (fingerprint.screen && Object.keys(fingerprint.screen).length > 0) {
331
- scripts.push(createScreenOverrideScript(fingerprint));
332
- log.debug('Added screen override script');
333
- }
334
- // Add window overrides
335
- if (fingerprint.screen?.devicePixelRatio) {
336
- scripts.push(createWindowOverrideScript(fingerprint));
337
- log.debug('Added window override script');
338
- }
339
- log.info(`Created ${scripts.length} custom fingerprint injection scripts`);
340
- return scripts;
341
- }
342
- //# sourceMappingURL=custom-fingerprint-injector.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"custom-fingerprint-injector.js","sourceRoot":"","sources":["../../src/fingerprinting/custom-fingerprint-injector.ts"],"names":[],"mappings":"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"}
@@ -1,10 +0,0 @@
1
- import type { Options, Client } from "chrome-remote-interface";
2
- import type CdpPage from "./page.js";
3
- export interface LaunchReturn extends Client {
4
- newPage: () => Promise<CdpPage>;
5
- }
6
- export declare class CdpLauncher {
7
- launch(options: Options): Promise<LaunchReturn>;
8
- }
9
- export declare const cdpLauncher: CdpLauncher;
10
- //# sourceMappingURL=launcher-wrap.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"launcher-wrap.d.ts","sourceRoot":"","sources":["../src/launcher-wrap.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,yBAAyB,CAAC;AAG/D,OAAO,KAAK,OAAO,MAAM,WAAW,CAAC;AAErC,MAAM,WAAW,YAAa,SAAQ,MAAM;IACxC,OAAO,EAAE,MAAM,OAAO,CAAC,OAAO,CAAC,CAAC;CACnC;AACD,qBAAa,WAAW;IACd,MAAM,CAAC,OAAO,EAAE,OAAO,GAAG,OAAO,CAAC,YAAY,CAAC;CAOxD;AAED,eAAO,MAAM,WAAW,aAAoB,CAAC"}
@@ -1,11 +0,0 @@
1
- import CDP from "chrome-remote-interface"; // Import necessary types
2
- export class CdpLauncher {
3
- async launch(options) {
4
- const cdp = await CDP(options); // Returns a CDP.Client instance
5
- // @ts-expect-error
6
- cdp.newPage = () => { throw new Error("Use BrowserController class for creating new page!"); };
7
- return cdp;
8
- }
9
- }
10
- export const cdpLauncher = new CdpLauncher();
11
- //# sourceMappingURL=launcher-wrap.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"launcher-wrap.js","sourceRoot":"","sources":["../src/launcher-wrap.ts"],"names":[],"mappings":"AACA,OAAO,GAAG,MAAM,yBAAyB,CAAC,CAAC,yBAAyB;AAOpE,MAAM,OAAO,WAAW;IACpB,KAAK,CAAC,MAAM,CAAC,OAAgB;QACzB,MAAM,GAAG,GAAG,MAAM,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,gCAAgC;QAChE,oBAAoB;QACpB,GAAG,CAAC,OAAO,GAAG,GAAG,EAAE,GAAG,MAAM,IAAI,KAAK,CAAC,oDAAoD,CAAC,CAAA,CAAC,CAAC,CAAA;QAE7F,OAAO,GAAmB,CAAA;IAC9B,CAAC;CACJ;AAED,MAAM,CAAC,MAAM,WAAW,GAAG,IAAI,WAAW,EAAE,CAAC"}