jumpy-lion 0.0.41 → 0.0.42
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.map +1 -1
- package/dist/browser-controller.js +102 -16
- package/dist/browser-controller.js.map +1 -1
- package/dist/browser-plugin.d.ts +20 -1
- package/dist/browser-plugin.d.ts.map +1 -1
- package/dist/browser-plugin.js +21 -1
- package/dist/browser-plugin.js.map +1 -1
- package/dist/browser-process/browser.d.ts +22 -1
- package/dist/browser-process/browser.d.ts.map +1 -1
- package/dist/browser-process/browser.js +77 -5
- package/dist/browser-process/browser.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 +32 -1
- package/dist/crawler.d.ts.map +1 -1
- package/dist/crawler.js +7 -0
- package/dist/crawler.js.map +1 -1
- 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 +40 -2
- package/dist/fingerprinting/fingerprint-injector.d.ts.map +1 -1
- package/dist/fingerprinting/fingerprint-injector.js +449 -44
- package/dist/fingerprinting/fingerprint-injector.js.map +1 -1
- package/dist/fingerprinting/fingerprint-overrides/audio-spoofing.d.ts.map +1 -1
- package/dist/fingerprinting/fingerprint-overrides/audio-spoofing.js +11 -1
- package/dist/fingerprinting/fingerprint-overrides/audio-spoofing.js.map +1 -1
- package/dist/fingerprinting/fingerprint-overrides/canvas-protection.d.ts.map +1 -1
- package/dist/fingerprinting/fingerprint-overrides/canvas-protection.js +11 -1
- package/dist/fingerprinting/fingerprint-overrides/canvas-protection.js.map +1 -1
- 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 +497 -0
- package/dist/fingerprinting/fingerprint-overrides/cdp-detection-bypass.js.map +1 -0
- package/dist/fingerprinting/fingerprint-overrides/client-rect-spoofing.d.ts.map +1 -1
- package/dist/fingerprinting/fingerprint-overrides/client-rect-spoofing.js +11 -1
- package/dist/fingerprinting/fingerprint-overrides/client-rect-spoofing.js.map +1 -1
- package/dist/fingerprinting/fingerprint-overrides/datadome-bypass.d.ts +14 -0
- package/dist/fingerprinting/fingerprint-overrides/datadome-bypass.d.ts.map +1 -0
- package/dist/fingerprinting/fingerprint-overrides/datadome-bypass.js +536 -0
- package/dist/fingerprinting/fingerprint-overrides/datadome-bypass.js.map +1 -0
- package/dist/fingerprinting/fingerprint-overrides/font-spoofing.d.ts.map +1 -1
- package/dist/fingerprinting/fingerprint-overrides/font-spoofing.js +11 -1
- package/dist/fingerprinting/fingerprint-overrides/font-spoofing.js.map +1 -1
- package/dist/fingerprinting/fingerprint-overrides/index.d.ts +16 -1
- package/dist/fingerprinting/fingerprint-overrides/index.d.ts.map +1 -1
- package/dist/fingerprinting/fingerprint-overrides/index.js +19 -1
- package/dist/fingerprinting/fingerprint-overrides/index.js.map +1 -1
- 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 +291 -0
- package/dist/fingerprinting/fingerprint-overrides/keyboard-humanization.js.map +1 -0
- package/dist/fingerprinting/fingerprint-overrides/locale-spoofing.d.ts.map +1 -1
- package/dist/fingerprinting/fingerprint-overrides/locale-spoofing.js +54 -22
- package/dist/fingerprinting/fingerprint-overrides/locale-spoofing.js.map +1 -1
- package/dist/fingerprinting/fingerprint-overrides/mouse-humanization.d.ts.map +1 -1
- package/dist/fingerprinting/fingerprint-overrides/mouse-humanization.js +4 -5
- package/dist/fingerprinting/fingerprint-overrides/mouse-humanization.js.map +1 -1
- package/dist/fingerprinting/fingerprint-overrides/performance-spoofing.d.ts.map +1 -1
- package/dist/fingerprinting/fingerprint-overrides/performance-spoofing.js +11 -1
- package/dist/fingerprinting/fingerprint-overrides/performance-spoofing.js.map +1 -1
- package/dist/fingerprinting/fingerprint-overrides/platform-consistency.d.ts +13 -0
- package/dist/fingerprinting/fingerprint-overrides/platform-consistency.d.ts.map +1 -1
- package/dist/fingerprinting/fingerprint-overrides/platform-consistency.js +413 -70
- package/dist/fingerprinting/fingerprint-overrides/platform-consistency.js.map +1 -1
- package/dist/fingerprinting/fingerprint-overrides/runtime-enable-bypass.d.ts +10 -3
- package/dist/fingerprinting/fingerprint-overrides/runtime-enable-bypass.d.ts.map +1 -1
- package/dist/fingerprinting/fingerprint-overrides/runtime-enable-bypass.js +132 -73
- package/dist/fingerprinting/fingerprint-overrides/runtime-enable-bypass.js.map +1 -1
- 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 +380 -0
- package/dist/fingerprinting/fingerprint-overrides/scroll-humanization.js.map +1 -0
- package/dist/fingerprinting/fingerprint-overrides/stealth-script.d.ts +8 -0
- package/dist/fingerprinting/fingerprint-overrides/stealth-script.d.ts.map +1 -1
- package/dist/fingerprinting/fingerprint-overrides/stealth-script.js +417 -71
- package/dist/fingerprinting/fingerprint-overrides/stealth-script.js.map +1 -1
- 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 +368 -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 +438 -0
- package/dist/fingerprinting/fingerprint-overrides/timing-consistency.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 +315 -0
- package/dist/fingerprinting/fingerprint-overrides/utils.js.map +1 -0
- package/dist/fingerprinting/fingerprint-overrides/webgl-spoofing.d.ts.map +1 -1
- package/dist/fingerprinting/fingerprint-overrides/webgl-spoofing.js +13 -1
- package/dist/fingerprinting/fingerprint-overrides/webgl-spoofing.js.map +1 -1
- package/dist/fingerprinting/fingerprint-overrides/webgpu-spoofing.d.ts.map +1 -1
- package/dist/fingerprinting/fingerprint-overrides/webgpu-spoofing.js +11 -1
- package/dist/fingerprinting/fingerprint-overrides/webgpu-spoofing.js.map +1 -1
- package/dist/fingerprinting/fingerprint-overrides/webrtc-spoofing.d.ts.map +1 -1
- package/dist/fingerprinting/fingerprint-overrides/webrtc-spoofing.js +11 -1
- package/dist/fingerprinting/fingerprint-overrides/webrtc-spoofing.js.map +1 -1
- package/dist/page.d.ts +12 -0
- package/dist/page.d.ts.map +1 -1
- package/dist/page.js +35 -3
- package/dist/page.js.map +1 -1
- package/dist/tsconfig.build.tsbuildinfo +1 -1
- package/package.json +4 -4
- package/dist/fingerprinting/canvas-fingerprint.d.ts +0 -4
- package/dist/fingerprinting/canvas-fingerprint.d.ts.map +0 -1
- package/dist/fingerprinting/canvas-fingerprint.js +0 -60
- package/dist/fingerprinting/canvas-fingerprint.js.map +0 -1
|
@@ -1,3 +1,14 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Default Chrome Profile Configuration
|
|
3
|
+
*
|
|
4
|
+
* 2024-2025 Enhancements:
|
|
5
|
+
* - Realistic browsing history indicators
|
|
6
|
+
* - Autofill data structure
|
|
7
|
+
* - Extension preferences
|
|
8
|
+
* - Media engagement scores
|
|
9
|
+
* - Site engagement data
|
|
10
|
+
* - Download history indicators
|
|
11
|
+
*/
|
|
1
12
|
export declare const DEFAULT_PROFILE: {
|
|
2
13
|
distribution: {
|
|
3
14
|
import_bookmarks: boolean;
|
|
@@ -164,12 +175,117 @@ export declare const DEFAULT_PROFILE: {
|
|
|
164
175
|
theme: {
|
|
165
176
|
use_system: boolean;
|
|
166
177
|
};
|
|
178
|
+
alerts: {
|
|
179
|
+
initialized: boolean;
|
|
180
|
+
};
|
|
181
|
+
last_chrome_version: string;
|
|
167
182
|
};
|
|
168
183
|
autofill: {
|
|
169
184
|
enabled: boolean;
|
|
185
|
+
credit_card_enabled: boolean;
|
|
186
|
+
profile_enabled: boolean;
|
|
170
187
|
};
|
|
171
188
|
intl: {
|
|
172
189
|
accept_languages: string;
|
|
173
190
|
};
|
|
191
|
+
media_engagement: {
|
|
192
|
+
schema_version: number;
|
|
193
|
+
};
|
|
194
|
+
site_engagement: {
|
|
195
|
+
schema_version: number;
|
|
196
|
+
last_engagement_time: string;
|
|
197
|
+
};
|
|
198
|
+
download: {
|
|
199
|
+
default_directory: string;
|
|
200
|
+
directory_upgrade: boolean;
|
|
201
|
+
extensions_to_open: string;
|
|
202
|
+
prompt_for_download: boolean;
|
|
203
|
+
};
|
|
204
|
+
printing: {
|
|
205
|
+
print_preview_sticky_settings: {
|
|
206
|
+
version: number;
|
|
207
|
+
color: number;
|
|
208
|
+
duplex: number;
|
|
209
|
+
headerFooterEnabled: boolean;
|
|
210
|
+
marginsType: number;
|
|
211
|
+
mediaSize: {
|
|
212
|
+
height_microns: number;
|
|
213
|
+
width_microns: number;
|
|
214
|
+
custom_display_name: string;
|
|
215
|
+
};
|
|
216
|
+
scaling: number;
|
|
217
|
+
scalingType: number;
|
|
218
|
+
};
|
|
219
|
+
};
|
|
220
|
+
translate: {
|
|
221
|
+
enabled: boolean;
|
|
222
|
+
};
|
|
223
|
+
translate_site_blacklist_with_time: {};
|
|
224
|
+
password_manager: {
|
|
225
|
+
password_manager_enabled: boolean;
|
|
226
|
+
credentials_enable_service: boolean;
|
|
227
|
+
password_leak_detection: {
|
|
228
|
+
password_leak_detection_enabled: boolean;
|
|
229
|
+
};
|
|
230
|
+
};
|
|
231
|
+
spellcheck: {
|
|
232
|
+
dictionaries: string[];
|
|
233
|
+
use_spelling_service: boolean;
|
|
234
|
+
};
|
|
235
|
+
net: {
|
|
236
|
+
network_prediction_options: number;
|
|
237
|
+
};
|
|
238
|
+
omnibox: {
|
|
239
|
+
prevent_url_elisions: boolean;
|
|
240
|
+
};
|
|
241
|
+
ntp: {
|
|
242
|
+
num_personal_suggestions: number;
|
|
243
|
+
shortcut_count: number;
|
|
244
|
+
};
|
|
245
|
+
payments: {
|
|
246
|
+
can_make_payment_enabled: boolean;
|
|
247
|
+
};
|
|
248
|
+
default_apps: {
|
|
249
|
+
install_state: number;
|
|
250
|
+
};
|
|
251
|
+
media_router: {
|
|
252
|
+
media_router_enabled: boolean;
|
|
253
|
+
};
|
|
254
|
+
homepage: string;
|
|
255
|
+
homepage_is_newtabpage: boolean;
|
|
256
|
+
custom_links: {
|
|
257
|
+
initialized: boolean;
|
|
258
|
+
list: never[];
|
|
259
|
+
};
|
|
260
|
+
prefs: {
|
|
261
|
+
privacy_sandbox_m1: {
|
|
262
|
+
consent_decision_made: boolean;
|
|
263
|
+
eea_notice_acknowledged: boolean;
|
|
264
|
+
};
|
|
265
|
+
};
|
|
266
|
+
devtools: {
|
|
267
|
+
preferences: {
|
|
268
|
+
"Inspector.drawerSplitViewState": string;
|
|
269
|
+
currentDockState: string;
|
|
270
|
+
"panel-selectedTab": string;
|
|
271
|
+
};
|
|
272
|
+
};
|
|
273
|
+
apps: {
|
|
274
|
+
shortcuts_have_been_created: boolean;
|
|
275
|
+
};
|
|
276
|
+
domain_diversity: {
|
|
277
|
+
last_reporting_timestamp: string;
|
|
278
|
+
};
|
|
279
|
+
local_state_hash: {
|
|
280
|
+
metrics: {
|
|
281
|
+
uninstall_metrics_page_enabled: boolean;
|
|
282
|
+
};
|
|
283
|
+
};
|
|
284
|
+
optimization_guide: {
|
|
285
|
+
store_file_paths_to_delete: never[];
|
|
286
|
+
};
|
|
287
|
+
unified_consent: {
|
|
288
|
+
url_keyed_anonymized_data_collection_enabled: boolean;
|
|
289
|
+
};
|
|
174
290
|
};
|
|
175
291
|
//# sourceMappingURL=default.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"default.d.ts","sourceRoot":"","sources":["../../../src/browser-profiles/chrome/default.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,eAAe
|
|
1
|
+
{"version":3,"file":"default.d.ts","sourceRoot":"","sources":["../../../src/browser-profiles/chrome/default.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,eAAO,MAAM,eAAe;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAuR3B,CAAA"}
|
|
@@ -1,3 +1,14 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Default Chrome Profile Configuration
|
|
3
|
+
*
|
|
4
|
+
* 2024-2025 Enhancements:
|
|
5
|
+
* - Realistic browsing history indicators
|
|
6
|
+
* - Autofill data structure
|
|
7
|
+
* - Extension preferences
|
|
8
|
+
* - Media engagement scores
|
|
9
|
+
* - Site engagement data
|
|
10
|
+
* - Download history indicators
|
|
11
|
+
*/
|
|
1
12
|
export const DEFAULT_PROFILE = {
|
|
2
13
|
"distribution": {
|
|
3
14
|
"import_bookmarks": false,
|
|
@@ -164,12 +175,118 @@ export const DEFAULT_PROFILE = {
|
|
|
164
175
|
"theme": {
|
|
165
176
|
"use_system": true,
|
|
166
177
|
},
|
|
178
|
+
"alerts": {
|
|
179
|
+
"initialized": true,
|
|
180
|
+
},
|
|
181
|
+
"last_chrome_version": "125.0.6422.142",
|
|
167
182
|
},
|
|
168
183
|
"autofill": {
|
|
169
|
-
"enabled":
|
|
184
|
+
"enabled": true,
|
|
185
|
+
"credit_card_enabled": true,
|
|
186
|
+
"profile_enabled": true,
|
|
170
187
|
},
|
|
171
188
|
"intl": {
|
|
172
189
|
"accept_languages": "en-US,en",
|
|
173
190
|
},
|
|
191
|
+
// 2024-2025: Enhanced profile data for realistic browser appearance
|
|
192
|
+
"media_engagement": {
|
|
193
|
+
"schema_version": 4,
|
|
194
|
+
},
|
|
195
|
+
"site_engagement": {
|
|
196
|
+
"schema_version": 2,
|
|
197
|
+
"last_engagement_time": "13371756771073388",
|
|
198
|
+
},
|
|
199
|
+
"download": {
|
|
200
|
+
"default_directory": "",
|
|
201
|
+
"directory_upgrade": true,
|
|
202
|
+
"extensions_to_open": "",
|
|
203
|
+
"prompt_for_download": false,
|
|
204
|
+
},
|
|
205
|
+
"printing": {
|
|
206
|
+
"print_preview_sticky_settings": {
|
|
207
|
+
"version": 2,
|
|
208
|
+
"color": 1,
|
|
209
|
+
"duplex": 0,
|
|
210
|
+
"headerFooterEnabled": true,
|
|
211
|
+
"marginsType": 0,
|
|
212
|
+
"mediaSize": {
|
|
213
|
+
"height_microns": 279400,
|
|
214
|
+
"width_microns": 215900,
|
|
215
|
+
"custom_display_name": "Letter",
|
|
216
|
+
},
|
|
217
|
+
"scaling": 100,
|
|
218
|
+
"scalingType": 0,
|
|
219
|
+
},
|
|
220
|
+
},
|
|
221
|
+
"translate": {
|
|
222
|
+
"enabled": false,
|
|
223
|
+
},
|
|
224
|
+
"translate_site_blacklist_with_time": {},
|
|
225
|
+
"password_manager": {
|
|
226
|
+
"password_manager_enabled": true,
|
|
227
|
+
"credentials_enable_service": true,
|
|
228
|
+
"password_leak_detection": {
|
|
229
|
+
"password_leak_detection_enabled": true,
|
|
230
|
+
},
|
|
231
|
+
},
|
|
232
|
+
"spellcheck": {
|
|
233
|
+
"dictionaries": ["en-US"],
|
|
234
|
+
"use_spelling_service": false,
|
|
235
|
+
},
|
|
236
|
+
"net": {
|
|
237
|
+
"network_prediction_options": 2,
|
|
238
|
+
},
|
|
239
|
+
"omnibox": {
|
|
240
|
+
"prevent_url_elisions": false,
|
|
241
|
+
},
|
|
242
|
+
"ntp": {
|
|
243
|
+
"num_personal_suggestions": 1,
|
|
244
|
+
"shortcut_count": 8,
|
|
245
|
+
},
|
|
246
|
+
"payments": {
|
|
247
|
+
"can_make_payment_enabled": true,
|
|
248
|
+
},
|
|
249
|
+
"default_apps": {
|
|
250
|
+
"install_state": 3,
|
|
251
|
+
},
|
|
252
|
+
"media_router": {
|
|
253
|
+
"media_router_enabled": true,
|
|
254
|
+
},
|
|
255
|
+
"homepage": "https://www.google.com/",
|
|
256
|
+
"homepage_is_newtabpage": true,
|
|
257
|
+
"custom_links": {
|
|
258
|
+
"initialized": true,
|
|
259
|
+
"list": [],
|
|
260
|
+
},
|
|
261
|
+
"prefs": {
|
|
262
|
+
"privacy_sandbox_m1": {
|
|
263
|
+
"consent_decision_made": true,
|
|
264
|
+
"eea_notice_acknowledged": true,
|
|
265
|
+
},
|
|
266
|
+
},
|
|
267
|
+
"devtools": {
|
|
268
|
+
"preferences": {
|
|
269
|
+
"Inspector.drawerSplitViewState": "{\"horizontal\":{\"size\":0,\"showMode\":\"OnlyMain\"}}",
|
|
270
|
+
"currentDockState": "\"right\"",
|
|
271
|
+
"panel-selectedTab": "\"console\"",
|
|
272
|
+
},
|
|
273
|
+
},
|
|
274
|
+
"apps": {
|
|
275
|
+
"shortcuts_have_been_created": true,
|
|
276
|
+
},
|
|
277
|
+
"domain_diversity": {
|
|
278
|
+
"last_reporting_timestamp": "13371756771073388",
|
|
279
|
+
},
|
|
280
|
+
"local_state_hash": {
|
|
281
|
+
"metrics": {
|
|
282
|
+
"uninstall_metrics_page_enabled": true,
|
|
283
|
+
},
|
|
284
|
+
},
|
|
285
|
+
"optimization_guide": {
|
|
286
|
+
"store_file_paths_to_delete": [],
|
|
287
|
+
},
|
|
288
|
+
"unified_consent": {
|
|
289
|
+
"url_keyed_anonymized_data_collection_enabled": false,
|
|
290
|
+
},
|
|
174
291
|
};
|
|
175
292
|
//# sourceMappingURL=default.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"default.js","sourceRoot":"","sources":["../../../src/browser-profiles/chrome/default.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"default.js","sourceRoot":"","sources":["../../../src/browser-profiles/chrome/default.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,76 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Profile Population Utilities
|
|
3
|
+
* Functions to populate Chrome profile with realistic user data
|
|
4
|
+
*
|
|
5
|
+
* 2024-2025 Features:
|
|
6
|
+
* - Browsing history entries
|
|
7
|
+
* - Site permissions
|
|
8
|
+
* - Storage access patterns
|
|
9
|
+
* - localStorage pre-population
|
|
10
|
+
* - Returning visitor simulation
|
|
11
|
+
*/
|
|
12
|
+
/**
|
|
13
|
+
* Popular sites for realistic browsing history
|
|
14
|
+
*/
|
|
15
|
+
declare const COMMON_SITES: {
|
|
16
|
+
url: string;
|
|
17
|
+
title: string;
|
|
18
|
+
visitCount: number;
|
|
19
|
+
}[];
|
|
20
|
+
/**
|
|
21
|
+
* Generate Local State file content
|
|
22
|
+
*/
|
|
23
|
+
export declare const generateLocalState: () => object;
|
|
24
|
+
/**
|
|
25
|
+
* Generate site engagement data
|
|
26
|
+
*/
|
|
27
|
+
export declare const generateSiteEngagement: (sites?: typeof COMMON_SITES) => object;
|
|
28
|
+
/**
|
|
29
|
+
* Generate media engagement data
|
|
30
|
+
*/
|
|
31
|
+
export declare const generateMediaEngagement: () => object;
|
|
32
|
+
/**
|
|
33
|
+
* Options for populating a profile
|
|
34
|
+
*/
|
|
35
|
+
export interface PopulateProfileOptions {
|
|
36
|
+
/** Add browsing history indicators */
|
|
37
|
+
addHistory?: boolean;
|
|
38
|
+
/** Add site engagement data */
|
|
39
|
+
addEngagement?: boolean;
|
|
40
|
+
/** Add media engagement data */
|
|
41
|
+
addMediaEngagement?: boolean;
|
|
42
|
+
/** Custom sites for history/engagement */
|
|
43
|
+
customSites?: typeof COMMON_SITES;
|
|
44
|
+
/** Days of history to simulate */
|
|
45
|
+
historyDays?: number;
|
|
46
|
+
}
|
|
47
|
+
/**
|
|
48
|
+
* Populate a Chrome profile with realistic user data
|
|
49
|
+
*/
|
|
50
|
+
export declare const populateChromeProfile: (profilePath: string, options?: PopulateProfileOptions) => Promise<void>;
|
|
51
|
+
/**
|
|
52
|
+
* Generate localStorage data to inject after page load
|
|
53
|
+
* Returns a script that can be evaluated in the browser context
|
|
54
|
+
*/
|
|
55
|
+
export declare const generateLocalStorageScript: (sites?: string[]) => string;
|
|
56
|
+
/**
|
|
57
|
+
* Generate session storage data for returning visitor simulation
|
|
58
|
+
*/
|
|
59
|
+
export declare const generateSessionStorageScript: () => string;
|
|
60
|
+
/**
|
|
61
|
+
* Generate cookies to set via CDP
|
|
62
|
+
* Returns an array of cookie objects compatible with CDP Network.setCookie
|
|
63
|
+
*/
|
|
64
|
+
export interface ProfileCookie {
|
|
65
|
+
name: string;
|
|
66
|
+
value: string;
|
|
67
|
+
domain: string;
|
|
68
|
+
path: string;
|
|
69
|
+
secure: boolean;
|
|
70
|
+
httpOnly: boolean;
|
|
71
|
+
sameSite: 'Strict' | 'Lax' | 'None';
|
|
72
|
+
expires?: number;
|
|
73
|
+
}
|
|
74
|
+
export declare const generateReturningVisitorCookies: (domain: string) => ProfileCookie[];
|
|
75
|
+
export {};
|
|
76
|
+
//# sourceMappingURL=populate-profile.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"populate-profile.d.ts","sourceRoot":"","sources":["../../../src/browser-profiles/chrome/populate-profile.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAKH;;GAEG;AACH,QAAA,MAAM,YAAY;;;;GAWjB,CAAC;AAoBF;;GAEG;AACH,eAAO,MAAM,kBAAkB,QAAO,MAqDrC,CAAC;AAiBF;;GAEG;AACH,eAAO,MAAM,sBAAsB,WAAW,OAAO,YAAY,KAAkB,MAmBlF,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,uBAAuB,QAAO,MAiB1C,CAAC;AAEF;;GAEG;AACH,MAAM,WAAW,sBAAsB;IACnC,sCAAsC;IACtC,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,+BAA+B;IAC/B,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,gCAAgC;IAChC,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAC7B,0CAA0C;IAC1C,WAAW,CAAC,EAAE,OAAO,YAAY,CAAC;IAClC,kCAAkC;IAClC,WAAW,CAAC,EAAE,MAAM,CAAC;CACxB;AAED;;GAEG;AACH,eAAO,MAAM,qBAAqB,gBACjB,MAAM,YACV,sBAAsB,KAChC,OAAO,CAAC,IAAI,CAsDd,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,0BAA0B,WAAY,MAAM,EAAE,KAAG,MAkC7D,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,4BAA4B,QAAO,MA0B/C,CAAC;AAEF;;;GAGG;AACH,MAAM,WAAW,aAAa;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,OAAO,CAAC;IAChB,QAAQ,EAAE,OAAO,CAAC;IAClB,QAAQ,EAAE,QAAQ,GAAG,KAAK,GAAG,MAAM,CAAC;IACpC,OAAO,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,eAAO,MAAM,+BAA+B,WAAY,MAAM,KAAG,aAAa,EAoC7E,CAAC"}
|
|
@@ -0,0 +1,300 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Profile Population Utilities
|
|
3
|
+
* Functions to populate Chrome profile with realistic user data
|
|
4
|
+
*
|
|
5
|
+
* 2024-2025 Features:
|
|
6
|
+
* - Browsing history entries
|
|
7
|
+
* - Site permissions
|
|
8
|
+
* - Storage access patterns
|
|
9
|
+
* - localStorage pre-population
|
|
10
|
+
* - Returning visitor simulation
|
|
11
|
+
*/
|
|
12
|
+
import fs from 'fs/promises';
|
|
13
|
+
import path from 'path';
|
|
14
|
+
/**
|
|
15
|
+
* Popular sites for realistic browsing history
|
|
16
|
+
*/
|
|
17
|
+
const COMMON_SITES = [
|
|
18
|
+
{ url: 'https://www.google.com/', title: 'Google', visitCount: 50 },
|
|
19
|
+
{ url: 'https://www.youtube.com/', title: 'YouTube', visitCount: 30 },
|
|
20
|
+
{ url: 'https://www.facebook.com/', title: 'Facebook', visitCount: 15 },
|
|
21
|
+
{ url: 'https://www.amazon.com/', title: 'Amazon.com', visitCount: 20 },
|
|
22
|
+
{ url: 'https://www.wikipedia.org/', title: 'Wikipedia', visitCount: 10 },
|
|
23
|
+
{ url: 'https://www.reddit.com/', title: 'Reddit', visitCount: 25 },
|
|
24
|
+
{ url: 'https://www.twitter.com/', title: 'Twitter', visitCount: 12 },
|
|
25
|
+
{ url: 'https://www.netflix.com/', title: 'Netflix', visitCount: 8 },
|
|
26
|
+
{ url: 'https://www.github.com/', title: 'GitHub', visitCount: 15 },
|
|
27
|
+
{ url: 'https://mail.google.com/', title: 'Gmail', visitCount: 40 },
|
|
28
|
+
];
|
|
29
|
+
/**
|
|
30
|
+
* Generate a random timestamp within the last N days
|
|
31
|
+
*/
|
|
32
|
+
const getRandomPastTimestamp = (daysAgo) => {
|
|
33
|
+
const now = Date.now();
|
|
34
|
+
const pastTime = now - (Math.random() * daysAgo * 24 * 60 * 60 * 1000);
|
|
35
|
+
return Math.floor(pastTime);
|
|
36
|
+
};
|
|
37
|
+
/**
|
|
38
|
+
* Chrome timestamp format (microseconds since 1601)
|
|
39
|
+
*/
|
|
40
|
+
const toChromeTimestamp = (unixMs) => {
|
|
41
|
+
// Chrome uses microseconds since January 1, 1601
|
|
42
|
+
const epochDiff = 11644473600000; // ms between 1601 and 1970
|
|
43
|
+
return String((unixMs + epochDiff) * 1000);
|
|
44
|
+
};
|
|
45
|
+
/**
|
|
46
|
+
* Generate Local State file content
|
|
47
|
+
*/
|
|
48
|
+
export const generateLocalState = () => {
|
|
49
|
+
return {
|
|
50
|
+
"browser": {
|
|
51
|
+
"enabled_labs_experiments": [],
|
|
52
|
+
"last_known_google_url": "https://www.google.com/",
|
|
53
|
+
"last_prompted_google_url": "https://www.google.com/",
|
|
54
|
+
},
|
|
55
|
+
"data_use_measurement": {
|
|
56
|
+
"data_used": {
|
|
57
|
+
"foreground": 50000000,
|
|
58
|
+
"background": 10000000,
|
|
59
|
+
},
|
|
60
|
+
},
|
|
61
|
+
"profile": {
|
|
62
|
+
"avatar_index": 0,
|
|
63
|
+
"info_cache": {
|
|
64
|
+
"Default": {
|
|
65
|
+
"active_time": toChromeTimestamp(Date.now()),
|
|
66
|
+
"avatar_icon": "chrome://theme/IDR_PROFILE_AVATAR_0",
|
|
67
|
+
"background_apps": false,
|
|
68
|
+
"force_signin_profile_locked": false,
|
|
69
|
+
"gaia_given_name": "",
|
|
70
|
+
"gaia_id": "",
|
|
71
|
+
"gaia_name": "",
|
|
72
|
+
"hosted_domain": "",
|
|
73
|
+
"is_consented_primary_account": false,
|
|
74
|
+
"is_ephemeral": false,
|
|
75
|
+
"is_omitted_from_profile_list": false,
|
|
76
|
+
"is_signed_in_with_credential_provider": false,
|
|
77
|
+
"is_using_default_avatar": true,
|
|
78
|
+
"is_using_default_name": true,
|
|
79
|
+
"managed_user_id": "",
|
|
80
|
+
"metrics_bucket_index": 0,
|
|
81
|
+
"name": "Profile 1",
|
|
82
|
+
"shortcut_name": "",
|
|
83
|
+
"user_name": "",
|
|
84
|
+
},
|
|
85
|
+
},
|
|
86
|
+
"last_active_profiles": ["Default"],
|
|
87
|
+
"last_used": "Default",
|
|
88
|
+
"profiles_created": 1,
|
|
89
|
+
"profiles_order": ["Default"],
|
|
90
|
+
},
|
|
91
|
+
"shutdown": {
|
|
92
|
+
"num_processes": 1,
|
|
93
|
+
"num_processes_slow": 0,
|
|
94
|
+
},
|
|
95
|
+
"user_experience_metrics": {
|
|
96
|
+
"client_id": generateClientId(),
|
|
97
|
+
"low_entropy_source3": Math.floor(Math.random() * 8000),
|
|
98
|
+
"pseudo_low_entropy_source": Math.floor(Math.random() * 8000),
|
|
99
|
+
},
|
|
100
|
+
};
|
|
101
|
+
};
|
|
102
|
+
/**
|
|
103
|
+
* Generate a random client ID (similar to Chrome's format)
|
|
104
|
+
*/
|
|
105
|
+
const generateClientId = () => {
|
|
106
|
+
const hexChars = '0123456789abcdef';
|
|
107
|
+
let id = '';
|
|
108
|
+
for (let i = 0; i < 32; i++) {
|
|
109
|
+
if (i === 8 || i === 12 || i === 16 || i === 20) {
|
|
110
|
+
id += '-';
|
|
111
|
+
}
|
|
112
|
+
id += hexChars[Math.floor(Math.random() * 16)];
|
|
113
|
+
}
|
|
114
|
+
return id;
|
|
115
|
+
};
|
|
116
|
+
/**
|
|
117
|
+
* Generate site engagement data
|
|
118
|
+
*/
|
|
119
|
+
export const generateSiteEngagement = (sites = COMMON_SITES) => {
|
|
120
|
+
const engagement = {};
|
|
121
|
+
sites.forEach(site => {
|
|
122
|
+
const domain = new URL(site.url).hostname;
|
|
123
|
+
const score = Math.min(100, site.visitCount * 2 + Math.random() * 20);
|
|
124
|
+
engagement[domain] = {
|
|
125
|
+
last_engagement_time: toChromeTimestamp(getRandomPastTimestamp(7)),
|
|
126
|
+
last_shortcut_launch_time: "0",
|
|
127
|
+
points_added_today: Math.floor(Math.random() * 5),
|
|
128
|
+
raw_score: score,
|
|
129
|
+
};
|
|
130
|
+
});
|
|
131
|
+
return {
|
|
132
|
+
schema_version: 2,
|
|
133
|
+
sites: engagement,
|
|
134
|
+
};
|
|
135
|
+
};
|
|
136
|
+
/**
|
|
137
|
+
* Generate media engagement data
|
|
138
|
+
*/
|
|
139
|
+
export const generateMediaEngagement = () => {
|
|
140
|
+
const mediaHosts = ['youtube.com', 'netflix.com', 'spotify.com'];
|
|
141
|
+
const engagement = {};
|
|
142
|
+
mediaHosts.forEach(host => {
|
|
143
|
+
engagement[host] = {
|
|
144
|
+
has_high_score: Math.random() > 0.5,
|
|
145
|
+
visits: Math.floor(Math.random() * 50) + 5,
|
|
146
|
+
media_playbacks: Math.floor(Math.random() * 30),
|
|
147
|
+
last_media_playback_time: toChromeTimestamp(getRandomPastTimestamp(14)),
|
|
148
|
+
};
|
|
149
|
+
});
|
|
150
|
+
return {
|
|
151
|
+
schema_version: 4,
|
|
152
|
+
sites: engagement,
|
|
153
|
+
};
|
|
154
|
+
};
|
|
155
|
+
/**
|
|
156
|
+
* Populate a Chrome profile with realistic user data
|
|
157
|
+
*/
|
|
158
|
+
export const populateChromeProfile = async (profilePath, options = {}) => {
|
|
159
|
+
const { addHistory = true, addEngagement = true, addMediaEngagement = true, customSites = COMMON_SITES,
|
|
160
|
+
// historyDays is unused but kept for future extensions
|
|
161
|
+
} = options;
|
|
162
|
+
const defaultPath = path.join(profilePath, 'Default');
|
|
163
|
+
// Ensure Default directory exists
|
|
164
|
+
await fs.mkdir(defaultPath, { recursive: true });
|
|
165
|
+
// Generate and write Local State
|
|
166
|
+
const localStatePath = path.join(profilePath, 'Local State');
|
|
167
|
+
const localState = generateLocalState();
|
|
168
|
+
await fs.writeFile(localStatePath, JSON.stringify(localState, null, 2));
|
|
169
|
+
// Read existing Preferences or create new
|
|
170
|
+
const preferencesPath = path.join(defaultPath, 'Preferences');
|
|
171
|
+
let preferences = {};
|
|
172
|
+
try {
|
|
173
|
+
const existing = await fs.readFile(preferencesPath, 'utf-8');
|
|
174
|
+
preferences = JSON.parse(existing);
|
|
175
|
+
}
|
|
176
|
+
catch {
|
|
177
|
+
// File doesn't exist, start fresh
|
|
178
|
+
}
|
|
179
|
+
// Add site engagement data
|
|
180
|
+
if (addEngagement) {
|
|
181
|
+
preferences.site_engagement = generateSiteEngagement(customSites);
|
|
182
|
+
}
|
|
183
|
+
// Add media engagement data
|
|
184
|
+
if (addMediaEngagement) {
|
|
185
|
+
preferences.media_engagement = generateMediaEngagement();
|
|
186
|
+
}
|
|
187
|
+
// Add history indicators (not actual history, but signs of browsing)
|
|
188
|
+
if (addHistory) {
|
|
189
|
+
preferences.domain_diversity = {
|
|
190
|
+
last_reporting_timestamp: toChromeTimestamp(Date.now()),
|
|
191
|
+
};
|
|
192
|
+
preferences.session = {
|
|
193
|
+
restore_on_startup: 1, // Continue where you left off
|
|
194
|
+
startup_urls: [],
|
|
195
|
+
};
|
|
196
|
+
}
|
|
197
|
+
// Write updated Preferences
|
|
198
|
+
await fs.writeFile(preferencesPath, JSON.stringify(preferences, null, 2));
|
|
199
|
+
};
|
|
200
|
+
/**
|
|
201
|
+
* Generate localStorage data to inject after page load
|
|
202
|
+
* Returns a script that can be evaluated in the browser context
|
|
203
|
+
*/
|
|
204
|
+
export const generateLocalStorageScript = (sites) => {
|
|
205
|
+
const sitesToPopulate = sites || ['google.com', 'youtube.com', 'facebook.com'];
|
|
206
|
+
const storageData = {};
|
|
207
|
+
// Common localStorage keys found on popular sites
|
|
208
|
+
sitesToPopulate.forEach(site => {
|
|
209
|
+
const domain = site.replace(/^https?:\/\//, '').replace(/^www\./, '');
|
|
210
|
+
// Generic keys that indicate returning visitor
|
|
211
|
+
storageData[`${domain}_visited`] = Date.now().toString();
|
|
212
|
+
storageData[`${domain}_consent`] = 'accepted';
|
|
213
|
+
});
|
|
214
|
+
// Add some generic keys that real browsers have
|
|
215
|
+
storageData['_ga_session'] = `1.${Date.now()}`;
|
|
216
|
+
storageData['_consent_shown'] = 'true';
|
|
217
|
+
storageData['cookie_notice_dismissed'] = 'true';
|
|
218
|
+
storageData['preferred_theme'] = 'light';
|
|
219
|
+
return `
|
|
220
|
+
(() => {
|
|
221
|
+
const data = ${JSON.stringify(storageData)};
|
|
222
|
+
Object.entries(data).forEach(([key, value]) => {
|
|
223
|
+
try {
|
|
224
|
+
if (!localStorage.getItem(key)) {
|
|
225
|
+
localStorage.setItem(key, value);
|
|
226
|
+
}
|
|
227
|
+
} catch (e) {
|
|
228
|
+
// Storage might be disabled
|
|
229
|
+
}
|
|
230
|
+
});
|
|
231
|
+
})();
|
|
232
|
+
`;
|
|
233
|
+
};
|
|
234
|
+
/**
|
|
235
|
+
* Generate session storage data for returning visitor simulation
|
|
236
|
+
*/
|
|
237
|
+
export const generateSessionStorageScript = () => {
|
|
238
|
+
return `
|
|
239
|
+
(() => {
|
|
240
|
+
// Simulate returning visitor session data
|
|
241
|
+
const sessionData = {
|
|
242
|
+
'user_session_start': Date.now().toString(),
|
|
243
|
+
'page_views': '1',
|
|
244
|
+
'referrer': document.referrer || '',
|
|
245
|
+
'entry_page': window.location.pathname,
|
|
246
|
+
};
|
|
247
|
+
|
|
248
|
+
Object.entries(sessionData).forEach(([key, value]) => {
|
|
249
|
+
try {
|
|
250
|
+
if (!sessionStorage.getItem(key)) {
|
|
251
|
+
sessionStorage.setItem(key, value);
|
|
252
|
+
}
|
|
253
|
+
} catch (e) {
|
|
254
|
+
// Storage might be disabled
|
|
255
|
+
}
|
|
256
|
+
});
|
|
257
|
+
|
|
258
|
+
// Increment page views on subsequent navigations
|
|
259
|
+
const currentViews = parseInt(sessionStorage.getItem('page_views') || '0', 10);
|
|
260
|
+
sessionStorage.setItem('page_views', String(currentViews + 1));
|
|
261
|
+
})();
|
|
262
|
+
`;
|
|
263
|
+
};
|
|
264
|
+
export const generateReturningVisitorCookies = (domain) => {
|
|
265
|
+
const now = Date.now();
|
|
266
|
+
const oneYear = 365 * 24 * 60 * 60 * 1000;
|
|
267
|
+
return [
|
|
268
|
+
{
|
|
269
|
+
name: '_returning_visitor',
|
|
270
|
+
value: '1',
|
|
271
|
+
domain: domain,
|
|
272
|
+
path: '/',
|
|
273
|
+
secure: true,
|
|
274
|
+
httpOnly: false,
|
|
275
|
+
sameSite: 'Lax',
|
|
276
|
+
expires: Math.floor((now + oneYear) / 1000),
|
|
277
|
+
},
|
|
278
|
+
{
|
|
279
|
+
name: '_first_visit',
|
|
280
|
+
value: String(now - Math.floor(Math.random() * 30 * 24 * 60 * 60 * 1000)), // Random date in last 30 days
|
|
281
|
+
domain: domain,
|
|
282
|
+
path: '/',
|
|
283
|
+
secure: true,
|
|
284
|
+
httpOnly: false,
|
|
285
|
+
sameSite: 'Lax',
|
|
286
|
+
expires: Math.floor((now + oneYear) / 1000),
|
|
287
|
+
},
|
|
288
|
+
{
|
|
289
|
+
name: 'consent_given',
|
|
290
|
+
value: 'true',
|
|
291
|
+
domain: domain,
|
|
292
|
+
path: '/',
|
|
293
|
+
secure: true,
|
|
294
|
+
httpOnly: false,
|
|
295
|
+
sameSite: 'Lax',
|
|
296
|
+
expires: Math.floor((now + oneYear) / 1000),
|
|
297
|
+
},
|
|
298
|
+
];
|
|
299
|
+
};
|
|
300
|
+
//# sourceMappingURL=populate-profile.js.map
|