cloakbrowser 0.3.22 → 0.3.24
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/README.md +5 -2
- package/dist/config.js +2 -2
- package/dist/geoip.d.ts.map +1 -1
- package/dist/geoip.js +62 -8
- package/dist/geoip.js.map +1 -1
- package/dist/human/elementhandle.d.ts +30 -0
- package/dist/human/elementhandle.d.ts.map +1 -0
- package/dist/human/elementhandle.js +317 -0
- package/dist/human/elementhandle.js.map +1 -0
- package/dist/human/index.d.ts +9 -0
- package/dist/human/index.d.ts.map +1 -1
- package/dist/human/index.js +25 -2
- package/dist/human/index.js.map +1 -1
- package/dist/human-puppeteer/index.d.ts +63 -0
- package/dist/human-puppeteer/index.d.ts.map +1 -0
- package/dist/human-puppeteer/index.js +780 -0
- package/dist/human-puppeteer/index.js.map +1 -0
- package/dist/human-puppeteer/keyboard.d.ts +16 -0
- package/dist/human-puppeteer/keyboard.d.ts.map +1 -0
- package/dist/human-puppeteer/keyboard.js +157 -0
- package/dist/human-puppeteer/keyboard.js.map +1 -0
- package/dist/human-puppeteer/scroll.d.ts +26 -0
- package/dist/human-puppeteer/scroll.d.ts.map +1 -0
- package/dist/human-puppeteer/scroll.js +130 -0
- package/dist/human-puppeteer/scroll.js.map +1 -0
- package/dist/playwright.d.ts.map +1 -1
- package/dist/playwright.js +7 -9
- package/dist/playwright.js.map +1 -1
- package/dist/proxy.d.ts +29 -0
- package/dist/proxy.d.ts.map +1 -1
- package/dist/proxy.js +44 -4
- package/dist/proxy.js.map +1 -1
- package/dist/puppeteer.d.ts +7 -5
- package/dist/puppeteer.d.ts.map +1 -1
- package/dist/puppeteer.js +26 -15
- package/dist/puppeteer.js.map +1 -1
- package/package.json +12 -3
- package/dist/stealth-eval.d.ts +0 -40
- package/dist/stealth-eval.d.ts.map +0 -1
- package/dist/stealth-eval.js +0 -145
- package/dist/stealth-eval.js.map +0 -1
package/README.md
CHANGED
|
@@ -63,10 +63,13 @@ await browser.close();
|
|
|
63
63
|
```javascript
|
|
64
64
|
import { launch, launchContext, launchPersistentContext } from 'cloakbrowser';
|
|
65
65
|
|
|
66
|
-
// With proxy
|
|
66
|
+
// With proxy (HTTP or SOCKS5)
|
|
67
67
|
const browser = await launch({
|
|
68
68
|
proxy: 'http://user:pass@proxy:8080',
|
|
69
69
|
});
|
|
70
|
+
const browser = await launch({
|
|
71
|
+
proxy: 'socks5://user:pass@proxy:1080',
|
|
72
|
+
});
|
|
70
73
|
|
|
71
74
|
// With proxy object (bypass, separate auth fields)
|
|
72
75
|
const browser = await launch({
|
|
@@ -211,7 +214,7 @@ const page = await browser.newPage();
|
|
|
211
214
|
|
|
212
215
|
## Requirements
|
|
213
216
|
|
|
214
|
-
- Node.js >=
|
|
217
|
+
- Node.js >= 20
|
|
215
218
|
- One of: `playwright-core` >= 1.40 or `puppeteer-core` >= 21
|
|
216
219
|
|
|
217
220
|
## Troubleshooting
|
package/dist/config.js
CHANGED
|
@@ -27,8 +27,8 @@ export { WRAPPER_VERSION };
|
|
|
27
27
|
// ---------------------------------------------------------------------------
|
|
28
28
|
export const CHROMIUM_VERSION = "146.0.7680.177.1";
|
|
29
29
|
export const PLATFORM_CHROMIUM_VERSIONS = {
|
|
30
|
-
"linux-x64": "146.0.7680.177.
|
|
31
|
-
"linux-arm64": "
|
|
30
|
+
"linux-x64": "146.0.7680.177.2",
|
|
31
|
+
"linux-arm64": "146.0.7680.177.2",
|
|
32
32
|
"darwin-arm64": "145.0.7632.109.2",
|
|
33
33
|
"darwin-x64": "145.0.7632.109.2",
|
|
34
34
|
"windows-x64": "145.0.7632.159.7",
|
package/dist/geoip.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"geoip.d.ts","sourceRoot":"","sources":["../src/geoip.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAQH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAShD,uEAAuE;AACvE,eAAO,MAAM,kBAAkB,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAerD,CAAC;AAEF,MAAM,WAAW,SAAS;IACxB,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;CACvB;AAED;;;;GAIG;AACH,wBAAsB,eAAe,CACnC,QAAQ,EAAE,MAAM,GACf,OAAO,CAAC,SAAS,CAAC,CA+BpB;AAMD,sCAAsC;AACtC,wBAAsB,cAAc,CAClC,QAAQ,EAAE,MAAM,GACf,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAexB;
|
|
1
|
+
{"version":3,"file":"geoip.d.ts","sourceRoot":"","sources":["../src/geoip.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAQH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAShD,uEAAuE;AACvE,eAAO,MAAM,kBAAkB,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAerD,CAAC;AAEF,MAAM,WAAW,SAAS;IACxB,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;CACvB;AAED;;;;GAIG;AACH,wBAAsB,eAAe,CACnC,QAAQ,EAAE,MAAM,GACf,OAAO,CAAC,SAAS,CAAC,CA+BpB;AAMD,sCAAsC;AACtC,wBAAsB,cAAc,CAClC,QAAQ,EAAE,MAAM,GACf,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAexB;AA8MD;;;GAGG;AACH,wBAAsB,iBAAiB,CACrC,OAAO,EAAE,aAAa,GACrB,OAAO,CAAC;IAAE,QAAQ,CAAC,EAAE,MAAM,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC,CAmBlE;AAED;;;GAGG;AACH,wBAAsB,iBAAiB,CACrC,OAAO,EAAE,aAAa,GACrB,OAAO,CAAC,MAAM,EAAE,GAAG,SAAS,CAAC,CA8B/B"}
|
package/dist/geoip.js
CHANGED
|
@@ -13,7 +13,7 @@ import { createWriteStream } from "node:fs";
|
|
|
13
13
|
import dns from "node:dns/promises";
|
|
14
14
|
import net from "node:net";
|
|
15
15
|
import { getCacheDir } from "./config.js";
|
|
16
|
-
import { ensureProxyScheme } from "./proxy.js";
|
|
16
|
+
import { ensureProxyScheme, isSocksProxy, reconstructSocksUrl } from "./proxy.js";
|
|
17
17
|
// P3TERX mirror of MaxMind GeoLite2-City — no license key needed
|
|
18
18
|
const GEOIP_DB_URL = "https://github.com/P3TERX/GeoLite.mmdb/raw/download/GeoLite2-City.mmdb";
|
|
19
19
|
const GEOIP_DB_FILENAME = "GeoLite2-City.mmdb";
|
|
@@ -111,9 +111,44 @@ const IP_ECHO_URLS = [
|
|
|
111
111
|
"https://ifconfig.me/ip",
|
|
112
112
|
];
|
|
113
113
|
async function resolveExitIp(proxyUrl) {
|
|
114
|
-
|
|
115
|
-
//
|
|
116
|
-
|
|
114
|
+
const isSocks = isSocksProxy(proxyUrl);
|
|
115
|
+
// SOCKS5: tunnel through the SOCKS5 proxy via socks-proxy-agent
|
|
116
|
+
if (isSocks) {
|
|
117
|
+
let SocksProxyAgent;
|
|
118
|
+
try {
|
|
119
|
+
({ SocksProxyAgent } = await import("socks-proxy-agent"));
|
|
120
|
+
}
|
|
121
|
+
catch {
|
|
122
|
+
console.warn("[cloakbrowser] socks-proxy-agent not installed — cannot resolve exit IP through SOCKS5 proxy. Install it: npm install socks-proxy-agent");
|
|
123
|
+
return null;
|
|
124
|
+
}
|
|
125
|
+
const { default: https } = await import("node:https");
|
|
126
|
+
const agent = new SocksProxyAgent(proxyUrl);
|
|
127
|
+
for (const echoUrl of IP_ECHO_URLS) {
|
|
128
|
+
try {
|
|
129
|
+
const ip = await new Promise((resolve) => {
|
|
130
|
+
const req = https.request(echoUrl, { agent, timeout: 10_000 }, (res) => {
|
|
131
|
+
let data = "";
|
|
132
|
+
res.on("data", (chunk) => (data += chunk.toString()));
|
|
133
|
+
res.on("end", () => {
|
|
134
|
+
const ip = data.trim();
|
|
135
|
+
resolve(net.isIP(ip) ? ip : null);
|
|
136
|
+
});
|
|
137
|
+
});
|
|
138
|
+
req.on("error", () => resolve(null));
|
|
139
|
+
req.on("timeout", () => { req.destroy(); resolve(null); });
|
|
140
|
+
req.end();
|
|
141
|
+
});
|
|
142
|
+
if (ip)
|
|
143
|
+
return ip;
|
|
144
|
+
}
|
|
145
|
+
catch {
|
|
146
|
+
continue;
|
|
147
|
+
}
|
|
148
|
+
}
|
|
149
|
+
return null;
|
|
150
|
+
}
|
|
151
|
+
// HTTP/HTTPS: use a CONNECT tunnel via http
|
|
117
152
|
try {
|
|
118
153
|
const { default: http } = await import("node:http");
|
|
119
154
|
const { default: https } = await import("node:https");
|
|
@@ -231,6 +266,24 @@ function maybeTriggerUpdate(dbPath) {
|
|
|
231
266
|
// Fire-and-forget background update
|
|
232
267
|
downloadGeoipDb(dbPath).catch(() => { });
|
|
233
268
|
}
|
|
269
|
+
/**
|
|
270
|
+
* Extract a usable proxy URL from LaunchOptions.proxy.
|
|
271
|
+
* For SOCKS5 dicts with separate credentials, reconstructs the full URL
|
|
272
|
+
* with inline credentials so SOCKS5 auth works.
|
|
273
|
+
*/
|
|
274
|
+
function extractProxyUrl(proxy) {
|
|
275
|
+
if (!proxy)
|
|
276
|
+
return null;
|
|
277
|
+
if (typeof proxy === "string")
|
|
278
|
+
return ensureProxyScheme(proxy);
|
|
279
|
+
const p = proxy;
|
|
280
|
+
if (!p.server)
|
|
281
|
+
return null;
|
|
282
|
+
if (p.username && isSocksProxy(p)) {
|
|
283
|
+
return reconstructSocksUrl(p);
|
|
284
|
+
}
|
|
285
|
+
return ensureProxyScheme(p.server);
|
|
286
|
+
}
|
|
234
287
|
/**
|
|
235
288
|
* Auto-fill timezone/locale from proxy IP when geoip is enabled.
|
|
236
289
|
* Also returns exitIp as a free bonus (reused for WebRTC spoofing).
|
|
@@ -238,10 +291,9 @@ function maybeTriggerUpdate(dbPath) {
|
|
|
238
291
|
export async function maybeResolveGeoip(options) {
|
|
239
292
|
if (!options.geoip || !options.proxy)
|
|
240
293
|
return { timezone: options.timezone, locale: options.locale };
|
|
241
|
-
|
|
294
|
+
const proxyUrl = extractProxyUrl(options.proxy);
|
|
242
295
|
if (!proxyUrl)
|
|
243
296
|
return { timezone: options.timezone, locale: options.locale };
|
|
244
|
-
proxyUrl = ensureProxyScheme(proxyUrl);
|
|
245
297
|
// When both tz/locale are explicit, still resolve exit IP for WebRTC
|
|
246
298
|
if (options.timezone && options.locale) {
|
|
247
299
|
const exitIp = await resolveExitIp(proxyUrl) ?? undefined;
|
|
@@ -266,13 +318,13 @@ export async function resolveWebrtcArgs(options) {
|
|
|
266
318
|
const idx = args.findIndex(a => a === "--fingerprint-webrtc-ip=auto");
|
|
267
319
|
if (idx === -1)
|
|
268
320
|
return args;
|
|
269
|
-
|
|
321
|
+
const proxyUrl = extractProxyUrl(options.proxy);
|
|
270
322
|
if (!proxyUrl) {
|
|
323
|
+
console.warn("[cloakbrowser] --fingerprint-webrtc-ip=auto requires a proxy; removing flag");
|
|
271
324
|
const result = [...args];
|
|
272
325
|
result.splice(idx, 1);
|
|
273
326
|
return result;
|
|
274
327
|
}
|
|
275
|
-
proxyUrl = ensureProxyScheme(proxyUrl);
|
|
276
328
|
try {
|
|
277
329
|
const ip = await resolveExitIp(proxyUrl);
|
|
278
330
|
const result = [...args];
|
|
@@ -280,11 +332,13 @@ export async function resolveWebrtcArgs(options) {
|
|
|
280
332
|
result[idx] = `--fingerprint-webrtc-ip=${ip}`;
|
|
281
333
|
}
|
|
282
334
|
else {
|
|
335
|
+
console.warn("[cloakbrowser] Could not resolve proxy exit IP for WebRTC spoofing; removing --fingerprint-webrtc-ip=auto");
|
|
283
336
|
result.splice(idx, 1);
|
|
284
337
|
}
|
|
285
338
|
return result;
|
|
286
339
|
}
|
|
287
340
|
catch {
|
|
341
|
+
console.warn("[cloakbrowser] Failed to resolve proxy exit IP for WebRTC spoofing; removing --fingerprint-webrtc-ip=auto");
|
|
288
342
|
const result = [...args];
|
|
289
343
|
result.splice(idx, 1);
|
|
290
344
|
return result;
|
package/dist/geoip.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"geoip.js","sourceRoot":"","sources":["../src/geoip.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"geoip.js","sourceRoot":"","sources":["../src/geoip.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* ElementHandle humanization for Playwright.
|
|
3
|
+
*
|
|
4
|
+
* Mirrors Puppeteer's ElementHandle patching architecture.
|
|
5
|
+
* Patches page.$(), page.$$(), page.waitForSelector() to return humanized handles,
|
|
6
|
+
* and patches all interaction methods on each ElementHandle instance.
|
|
7
|
+
*
|
|
8
|
+
* Playwright ElementHandle methods patched:
|
|
9
|
+
* click, dblclick, hover, type, fill, press, selectOption,
|
|
10
|
+
* check, uncheck, setChecked, tap, focus
|
|
11
|
+
* + $, $$, waitForSelector (nested elements are also patched)
|
|
12
|
+
*
|
|
13
|
+
* Stealth-aware:
|
|
14
|
+
* - Uses CDP DOM.describeNode when available to check element type
|
|
15
|
+
* (no main-world JS execution)
|
|
16
|
+
* - Falls back to el.evaluate() only when CDP is unavailable
|
|
17
|
+
*/
|
|
18
|
+
import type { Page, Frame, ElementHandle } from 'playwright-core';
|
|
19
|
+
import type { HumanConfig } from './config.js';
|
|
20
|
+
import { RawMouse, RawKeyboard } from './mouse.js';
|
|
21
|
+
interface CursorState {
|
|
22
|
+
x: number;
|
|
23
|
+
y: number;
|
|
24
|
+
initialized: boolean;
|
|
25
|
+
}
|
|
26
|
+
export declare function patchSingleElementHandle(el: ElementHandle, page: Page, cfg: HumanConfig, cursor: CursorState, raw: RawMouse, rawKb: RawKeyboard, originals: any, stealth: any): void;
|
|
27
|
+
export declare function patchPageElementHandles(page: Page, cfg: HumanConfig, cursor: CursorState, raw: RawMouse, rawKb: RawKeyboard, originals: any, stealth: any): void;
|
|
28
|
+
export declare function patchFrameElementHandles(frame: Frame, page: Page, cfg: HumanConfig, cursor: CursorState, raw: RawMouse, rawKb: RawKeyboard, originals: any, stealth: any): void;
|
|
29
|
+
export {};
|
|
30
|
+
//# sourceMappingURL=elementhandle.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"elementhandle.d.ts","sourceRoot":"","sources":["../../src/human/elementhandle.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAEH,OAAO,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,aAAa,EAAc,MAAM,iBAAiB,CAAC;AAC9E,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAE/C,OAAO,EAAE,QAAQ,EAAE,WAAW,EAAiD,MAAM,YAAY,CAAC;AA8ClG,UAAU,WAAW;IACnB,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;IACV,WAAW,EAAE,OAAO,CAAC;CACtB;AAOD,wBAAgB,wBAAwB,CACtC,EAAE,EAAE,aAAa,EACjB,IAAI,EAAE,IAAI,EACV,GAAG,EAAE,WAAW,EAChB,MAAM,EAAE,WAAW,EACnB,GAAG,EAAE,QAAQ,EACb,KAAK,EAAE,WAAW,EAClB,SAAS,EAAE,GAAG,EACd,OAAO,EAAE,GAAG,GACX,IAAI,CAuLN;AAOD,wBAAgB,uBAAuB,CACrC,IAAI,EAAE,IAAI,EACV,GAAG,EAAE,WAAW,EAChB,MAAM,EAAE,WAAW,EACnB,GAAG,EAAE,QAAQ,EACb,KAAK,EAAE,WAAW,EAClB,SAAS,EAAE,GAAG,EACd,OAAO,EAAE,GAAG,GACX,IAAI,CAgCN;AAOD,wBAAgB,wBAAwB,CACtC,KAAK,EAAE,KAAK,EACZ,IAAI,EAAE,IAAI,EACV,GAAG,EAAE,WAAW,EAChB,MAAM,EAAE,WAAW,EACnB,GAAG,EAAE,QAAQ,EACb,KAAK,EAAE,WAAW,EAClB,SAAS,EAAE,GAAG,EACd,OAAO,EAAE,GAAG,GACX,IAAI,CAgCN"}
|
|
@@ -0,0 +1,317 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* ElementHandle humanization for Playwright.
|
|
3
|
+
*
|
|
4
|
+
* Mirrors Puppeteer's ElementHandle patching architecture.
|
|
5
|
+
* Patches page.$(), page.$$(), page.waitForSelector() to return humanized handles,
|
|
6
|
+
* and patches all interaction methods on each ElementHandle instance.
|
|
7
|
+
*
|
|
8
|
+
* Playwright ElementHandle methods patched:
|
|
9
|
+
* click, dblclick, hover, type, fill, press, selectOption,
|
|
10
|
+
* check, uncheck, setChecked, tap, focus
|
|
11
|
+
* + $, $$, waitForSelector (nested elements are also patched)
|
|
12
|
+
*
|
|
13
|
+
* Stealth-aware:
|
|
14
|
+
* - Uses CDP DOM.describeNode when available to check element type
|
|
15
|
+
* (no main-world JS execution)
|
|
16
|
+
* - Falls back to el.evaluate() only when CDP is unavailable
|
|
17
|
+
*/
|
|
18
|
+
import { rand, randRange, sleep } from './config.js';
|
|
19
|
+
import { humanMove, humanClick, clickTarget, humanIdle } from './mouse.js';
|
|
20
|
+
import { humanType } from './keyboard.js';
|
|
21
|
+
// --- Platform-aware select-all shortcut ---
|
|
22
|
+
const SELECT_ALL = process.platform === 'darwin' ? 'Meta+a' : 'Control+a';
|
|
23
|
+
// ============================================================================
|
|
24
|
+
// Stealth ElementHandle input check — uses CDP DOM.describeNode
|
|
25
|
+
// ============================================================================
|
|
26
|
+
async function isInputElementHandle(stealth, // StealthEval from index.ts
|
|
27
|
+
el) {
|
|
28
|
+
// Try CDP DOM.describeNode first (no main-world JS execution)
|
|
29
|
+
if (stealth) {
|
|
30
|
+
try {
|
|
31
|
+
const cdp = await stealth.getCdpSession();
|
|
32
|
+
// Playwright exposes the JSHandle's internal preview via _objectId or similar
|
|
33
|
+
// We need the remote object ID. Try to get it via internal API.
|
|
34
|
+
const impl = el._impl ?? el._object ?? el;
|
|
35
|
+
const guid = impl._guid;
|
|
36
|
+
// Use el.evaluate as a reliable fallback within stealth context
|
|
37
|
+
// Playwright doesn't expose remoteObject directly like Puppeteer
|
|
38
|
+
}
|
|
39
|
+
catch { /* fallthrough */ }
|
|
40
|
+
}
|
|
41
|
+
// Fallback: el.evaluate (works reliably in Playwright)
|
|
42
|
+
try {
|
|
43
|
+
return await el.evaluate((node) => {
|
|
44
|
+
const tag = node.tagName?.toLowerCase();
|
|
45
|
+
return tag === 'input' || tag === 'textarea'
|
|
46
|
+
|| node.getAttribute?.('contenteditable') === 'true';
|
|
47
|
+
});
|
|
48
|
+
}
|
|
49
|
+
catch {
|
|
50
|
+
return false;
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
// ============================================================================
|
|
54
|
+
// Patch a single Playwright ElementHandle
|
|
55
|
+
// ============================================================================
|
|
56
|
+
export function patchSingleElementHandle(el, page, cfg, cursor, raw, rawKb, originals, stealth) {
|
|
57
|
+
if (el._humanPatched)
|
|
58
|
+
return;
|
|
59
|
+
el._humanPatched = true;
|
|
60
|
+
// Save originals
|
|
61
|
+
const origElClick = el.click.bind(el);
|
|
62
|
+
const origElDblclick = el.dblclick.bind(el);
|
|
63
|
+
const origElHover = el.hover.bind(el);
|
|
64
|
+
const origElType = el.type.bind(el);
|
|
65
|
+
const origElFill = el.fill.bind(el);
|
|
66
|
+
const origElPress = el.press.bind(el);
|
|
67
|
+
const origElSelectOption = el.selectOption.bind(el);
|
|
68
|
+
const origElCheck = el.check.bind(el);
|
|
69
|
+
const origElUncheck = el.uncheck.bind(el);
|
|
70
|
+
const origElSetChecked = el.setChecked?.bind(el);
|
|
71
|
+
const origElTap = el.tap.bind(el);
|
|
72
|
+
const origElFocus = el.focus.bind(el);
|
|
73
|
+
// Nested selectors
|
|
74
|
+
const origEl$ = el.$.bind(el);
|
|
75
|
+
const origEl$$ = el.$$.bind(el);
|
|
76
|
+
const origElWaitForSelector = el.waitForSelector.bind(el);
|
|
77
|
+
// --- Nested elements are also patched ---
|
|
78
|
+
el.$ = async (selector) => {
|
|
79
|
+
const child = await origEl$(selector);
|
|
80
|
+
if (child)
|
|
81
|
+
patchSingleElementHandle(child, page, cfg, cursor, raw, rawKb, originals, stealth);
|
|
82
|
+
return child;
|
|
83
|
+
};
|
|
84
|
+
el.$$ = async (selector) => {
|
|
85
|
+
const children = await origEl$$(selector);
|
|
86
|
+
for (const child of children) {
|
|
87
|
+
patchSingleElementHandle(child, page, cfg, cursor, raw, rawKb, originals, stealth);
|
|
88
|
+
}
|
|
89
|
+
return children;
|
|
90
|
+
};
|
|
91
|
+
el.waitForSelector = async (selector, options) => {
|
|
92
|
+
const child = await origElWaitForSelector(selector, options);
|
|
93
|
+
if (child)
|
|
94
|
+
patchSingleElementHandle(child, page, cfg, cursor, raw, rawKb, originals, stealth);
|
|
95
|
+
return child;
|
|
96
|
+
};
|
|
97
|
+
// --- Helper: get bounding box and move cursor to element ---
|
|
98
|
+
const moveToElement = async () => {
|
|
99
|
+
// Ensure cursor is initialized
|
|
100
|
+
const ensureCursorInit = page._ensureCursorInit;
|
|
101
|
+
if (ensureCursorInit)
|
|
102
|
+
await ensureCursorInit();
|
|
103
|
+
const box = await el.boundingBox();
|
|
104
|
+
if (!box)
|
|
105
|
+
return null;
|
|
106
|
+
const isInp = await isInputElementHandle(stealth, el);
|
|
107
|
+
const target = clickTarget(box, isInp, cfg);
|
|
108
|
+
if (cfg.idle_between_actions) {
|
|
109
|
+
await humanIdle(raw, rand(cfg.idle_between_duration[0], cfg.idle_between_duration[1]), cursor.x, cursor.y, cfg);
|
|
110
|
+
}
|
|
111
|
+
await humanMove(raw, cursor.x, cursor.y, target.x, target.y, cfg);
|
|
112
|
+
cursor.x = target.x;
|
|
113
|
+
cursor.y = target.y;
|
|
114
|
+
return { box, isInp };
|
|
115
|
+
};
|
|
116
|
+
// --- el.click() ---
|
|
117
|
+
el.click = async (options) => {
|
|
118
|
+
const info = await moveToElement();
|
|
119
|
+
if (!info)
|
|
120
|
+
return origElClick(options);
|
|
121
|
+
await humanClick(raw, info.isInp, cfg);
|
|
122
|
+
};
|
|
123
|
+
// --- el.dblclick() ---
|
|
124
|
+
el.dblclick = async (options) => {
|
|
125
|
+
const info = await moveToElement();
|
|
126
|
+
if (!info)
|
|
127
|
+
return origElDblclick(options);
|
|
128
|
+
await raw.down({ clickCount: 2 });
|
|
129
|
+
await sleep(rand(30, 60));
|
|
130
|
+
await raw.up({ clickCount: 2 });
|
|
131
|
+
};
|
|
132
|
+
// --- el.hover() ---
|
|
133
|
+
el.hover = async (options) => {
|
|
134
|
+
const info = await moveToElement();
|
|
135
|
+
if (!info)
|
|
136
|
+
return origElHover(options);
|
|
137
|
+
// Just move — no click
|
|
138
|
+
};
|
|
139
|
+
// --- el.type() ---
|
|
140
|
+
el.type = async (text, options) => {
|
|
141
|
+
const info = await moveToElement();
|
|
142
|
+
if (!info)
|
|
143
|
+
return origElType(text, options);
|
|
144
|
+
await humanClick(raw, info.isInp, cfg);
|
|
145
|
+
await sleep(rand(100, 250));
|
|
146
|
+
let cdpSession = null;
|
|
147
|
+
try {
|
|
148
|
+
cdpSession = await stealth?.getCdpSession();
|
|
149
|
+
}
|
|
150
|
+
catch { }
|
|
151
|
+
await humanType(page, rawKb, text, cfg, cdpSession);
|
|
152
|
+
};
|
|
153
|
+
// --- el.fill() ---
|
|
154
|
+
el.fill = async (value, options) => {
|
|
155
|
+
const info = await moveToElement();
|
|
156
|
+
if (!info)
|
|
157
|
+
return origElFill(value, options);
|
|
158
|
+
await humanClick(raw, info.isInp, cfg);
|
|
159
|
+
await sleep(rand(100, 250));
|
|
160
|
+
// Clear existing content
|
|
161
|
+
await originals.keyboardPress(SELECT_ALL);
|
|
162
|
+
await sleep(rand(30, 80));
|
|
163
|
+
await originals.keyboardPress('Backspace');
|
|
164
|
+
await sleep(rand(50, 150));
|
|
165
|
+
let cdpSession = null;
|
|
166
|
+
try {
|
|
167
|
+
cdpSession = await stealth?.getCdpSession();
|
|
168
|
+
}
|
|
169
|
+
catch { }
|
|
170
|
+
await humanType(page, rawKb, value, cfg, cdpSession);
|
|
171
|
+
};
|
|
172
|
+
// --- el.press() ---
|
|
173
|
+
el.press = async (key, options) => {
|
|
174
|
+
await sleep(rand(20, 60));
|
|
175
|
+
await originals.keyboardDown(key);
|
|
176
|
+
await sleep(randRange(cfg.key_hold));
|
|
177
|
+
await originals.keyboardUp(key);
|
|
178
|
+
};
|
|
179
|
+
// --- el.selectOption() ---
|
|
180
|
+
el.selectOption = async (values, options) => {
|
|
181
|
+
const info = await moveToElement();
|
|
182
|
+
if (!info)
|
|
183
|
+
return origElSelectOption(values, options);
|
|
184
|
+
await humanClick(raw, false, cfg);
|
|
185
|
+
await sleep(rand(100, 300));
|
|
186
|
+
return origElSelectOption(values, options);
|
|
187
|
+
};
|
|
188
|
+
// --- el.check() ---
|
|
189
|
+
el.check = async (options) => {
|
|
190
|
+
try {
|
|
191
|
+
const checked = await el.isChecked();
|
|
192
|
+
if (checked)
|
|
193
|
+
return; // Already checked
|
|
194
|
+
}
|
|
195
|
+
catch { }
|
|
196
|
+
const info = await moveToElement();
|
|
197
|
+
if (!info)
|
|
198
|
+
return origElCheck(options);
|
|
199
|
+
await humanClick(raw, info.isInp, cfg);
|
|
200
|
+
};
|
|
201
|
+
// --- el.uncheck() ---
|
|
202
|
+
el.uncheck = async (options) => {
|
|
203
|
+
try {
|
|
204
|
+
const checked = await el.isChecked();
|
|
205
|
+
if (!checked)
|
|
206
|
+
return; // Already unchecked
|
|
207
|
+
}
|
|
208
|
+
catch { }
|
|
209
|
+
const info = await moveToElement();
|
|
210
|
+
if (!info)
|
|
211
|
+
return origElUncheck(options);
|
|
212
|
+
await humanClick(raw, info.isInp, cfg);
|
|
213
|
+
};
|
|
214
|
+
// --- el.setChecked() ---
|
|
215
|
+
if (origElSetChecked) {
|
|
216
|
+
el.setChecked = async (checked, options) => {
|
|
217
|
+
try {
|
|
218
|
+
const current = await el.isChecked();
|
|
219
|
+
if (current === checked)
|
|
220
|
+
return;
|
|
221
|
+
}
|
|
222
|
+
catch { }
|
|
223
|
+
const info = await moveToElement();
|
|
224
|
+
if (!info)
|
|
225
|
+
return origElSetChecked(checked, options);
|
|
226
|
+
await humanClick(raw, info.isInp, cfg);
|
|
227
|
+
};
|
|
228
|
+
}
|
|
229
|
+
// --- el.tap() ---
|
|
230
|
+
el.tap = async (options) => {
|
|
231
|
+
const info = await moveToElement();
|
|
232
|
+
if (!info)
|
|
233
|
+
return origElTap(options);
|
|
234
|
+
await humanClick(raw, info.isInp, cfg);
|
|
235
|
+
};
|
|
236
|
+
// --- el.focus() ---
|
|
237
|
+
// Move cursor humanly but use programmatic focus (no click side-effects).
|
|
238
|
+
// Stock Playwright el.focus() never clicks — clicking would trigger onclick,
|
|
239
|
+
// submit forms, navigate links, etc.
|
|
240
|
+
el.focus = async () => {
|
|
241
|
+
await moveToElement(); // human-like Bézier cursor movement
|
|
242
|
+
await origElFocus(); // programmatic focus, no click
|
|
243
|
+
};
|
|
244
|
+
}
|
|
245
|
+
// ============================================================================
|
|
246
|
+
// Page-level ElementHandle patching
|
|
247
|
+
// ============================================================================
|
|
248
|
+
export function patchPageElementHandles(page, cfg, cursor, raw, rawKb, originals, stealth) {
|
|
249
|
+
// Patch page.$() — only if the method exists
|
|
250
|
+
if (typeof page.$ === 'function') {
|
|
251
|
+
const orig$ = page.$.bind(page);
|
|
252
|
+
page.$ = async (selector) => {
|
|
253
|
+
const el = await orig$(selector);
|
|
254
|
+
if (el)
|
|
255
|
+
patchSingleElementHandle(el, page, cfg, cursor, raw, rawKb, originals, stealth);
|
|
256
|
+
return el;
|
|
257
|
+
};
|
|
258
|
+
}
|
|
259
|
+
// Patch page.$$()
|
|
260
|
+
if (typeof page.$$ === 'function') {
|
|
261
|
+
const orig$$ = page.$$.bind(page);
|
|
262
|
+
page.$$ = async (selector) => {
|
|
263
|
+
const els = await orig$$(selector);
|
|
264
|
+
for (const el of els) {
|
|
265
|
+
patchSingleElementHandle(el, page, cfg, cursor, raw, rawKb, originals, stealth);
|
|
266
|
+
}
|
|
267
|
+
return els;
|
|
268
|
+
};
|
|
269
|
+
}
|
|
270
|
+
// Patch page.waitForSelector()
|
|
271
|
+
if (typeof page.waitForSelector === 'function') {
|
|
272
|
+
const origWaitForSelector = page.waitForSelector.bind(page);
|
|
273
|
+
page.waitForSelector = async (selector, options) => {
|
|
274
|
+
const el = await origWaitForSelector(selector, options);
|
|
275
|
+
if (el)
|
|
276
|
+
patchSingleElementHandle(el, page, cfg, cursor, raw, rawKb, originals, stealth);
|
|
277
|
+
return el;
|
|
278
|
+
};
|
|
279
|
+
}
|
|
280
|
+
}
|
|
281
|
+
// ============================================================================
|
|
282
|
+
// Frame-level ElementHandle patching
|
|
283
|
+
// ============================================================================
|
|
284
|
+
export function patchFrameElementHandles(frame, page, cfg, cursor, raw, rawKb, originals, stealth) {
|
|
285
|
+
// Patch frame.$() — only if the method exists
|
|
286
|
+
if (typeof frame.$ === 'function') {
|
|
287
|
+
const origFrame$ = frame.$.bind(frame);
|
|
288
|
+
frame.$ = async (selector) => {
|
|
289
|
+
const el = await origFrame$(selector);
|
|
290
|
+
if (el)
|
|
291
|
+
patchSingleElementHandle(el, page, cfg, cursor, raw, rawKb, originals, stealth);
|
|
292
|
+
return el;
|
|
293
|
+
};
|
|
294
|
+
}
|
|
295
|
+
// Patch frame.$$()
|
|
296
|
+
if (typeof frame.$$ === 'function') {
|
|
297
|
+
const origFrame$$ = frame.$$.bind(frame);
|
|
298
|
+
frame.$$ = async (selector) => {
|
|
299
|
+
const els = await origFrame$$(selector);
|
|
300
|
+
for (const el of els) {
|
|
301
|
+
patchSingleElementHandle(el, page, cfg, cursor, raw, rawKb, originals, stealth);
|
|
302
|
+
}
|
|
303
|
+
return els;
|
|
304
|
+
};
|
|
305
|
+
}
|
|
306
|
+
// Patch frame.waitForSelector()
|
|
307
|
+
if (typeof frame.waitForSelector === 'function') {
|
|
308
|
+
const origFrameWaitForSelector = frame.waitForSelector.bind(frame);
|
|
309
|
+
frame.waitForSelector = async (selector, options) => {
|
|
310
|
+
const el = await origFrameWaitForSelector(selector, options);
|
|
311
|
+
if (el)
|
|
312
|
+
patchSingleElementHandle(el, page, cfg, cursor, raw, rawKb, originals, stealth);
|
|
313
|
+
return el;
|
|
314
|
+
};
|
|
315
|
+
}
|
|
316
|
+
}
|
|
317
|
+
//# sourceMappingURL=elementhandle.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"elementhandle.js","sourceRoot":"","sources":["../../src/human/elementhandle.ts"],"names":[],"mappings":"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"}
|
package/dist/human/index.d.ts
CHANGED
|
@@ -12,6 +12,14 @@
|
|
|
12
12
|
* Patches all interaction methods:
|
|
13
13
|
* click, dblclick, hover, type, fill, check, uncheck, selectOption,
|
|
14
14
|
* press, pressSequentially, tap, dragTo, clear + Frame-level equivalents.
|
|
15
|
+
*
|
|
16
|
+
* ELEMENTHANDLE-LEVEL:
|
|
17
|
+
* click, dblclick, hover, type, fill, press, selectOption,
|
|
18
|
+
* check, uncheck, setChecked, tap, focus
|
|
19
|
+
* + $, $$, waitForSelector (nested elements are also patched)
|
|
20
|
+
*
|
|
21
|
+
* page.$(), page.$$(), page.waitForSelector() and Frame equivalents
|
|
22
|
+
* return patched ElementHandles automatically.
|
|
15
23
|
*/
|
|
16
24
|
import type { Browser, BrowserContext, Page } from 'playwright-core';
|
|
17
25
|
import { HumanConfig } from './config.js';
|
|
@@ -19,6 +27,7 @@ export { HumanConfig, resolveConfig } from './config.js';
|
|
|
19
27
|
export { humanMove, humanClick, clickTarget, humanIdle } from './mouse.js';
|
|
20
28
|
export { humanType } from './keyboard.js';
|
|
21
29
|
export { scrollToElement } from './scroll.js';
|
|
30
|
+
export { patchSingleElementHandle } from './elementhandle.js';
|
|
22
31
|
declare class CursorState {
|
|
23
32
|
x: number;
|
|
24
33
|
y: number;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/human/index.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/human/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;GAsBG;AAEH,OAAO,KAAK,EAAE,OAAO,EAAE,cAAc,EAAE,IAAI,EAAqB,MAAM,iBAAiB,CAAC;AACxF,OAAO,EAAE,WAAW,EAAyC,MAAM,aAAa,CAAC;AAMjF,OAAO,EAAE,WAAW,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AACzD,OAAO,EAAE,SAAS,EAAE,UAAU,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAC3E,OAAO,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AAC1C,OAAO,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAC9C,OAAO,EAAE,wBAAwB,EAAE,MAAM,oBAAoB,CAAC;AA4G9D,cAAM,WAAW;IACf,CAAC,SAAK;IACN,CAAC,SAAK;IACN,WAAW,UAAS;CACrB;AA+ED;;GAEG;AACH,iBAAS,SAAS,CAAC,IAAI,EAAE,IAAI,EAAE,GAAG,EAAE,WAAW,EAAE,MAAM,EAAE,WAAW,GAAG,IAAI,CAkR1E;AAyID,iBAAS,YAAY,CAAC,OAAO,EAAE,cAAc,EAAE,GAAG,EAAE,WAAW,GAAG,IAAI,CAmBrE;AAOD,wBAAgB,YAAY,CAAC,OAAO,EAAE,OAAO,EAAE,GAAG,EAAE,WAAW,GAAG,IAAI,CAyBrE;AAED,OAAO,EAAE,YAAY,EAAE,SAAS,EAAE,CAAC"}
|