cloakbrowser 0.3.28 → 0.3.29
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 +7 -0
- package/dist/args.d.ts +0 -3
- package/dist/args.d.ts.map +1 -1
- package/dist/args.js +7 -0
- package/dist/args.js.map +1 -1
- package/dist/human/actionability.d.ts +45 -0
- package/dist/human/actionability.d.ts.map +1 -0
- package/dist/human/actionability.js +274 -0
- package/dist/human/actionability.js.map +1 -0
- package/dist/human/config.d.ts +1 -0
- package/dist/human/config.d.ts.map +1 -1
- package/dist/human/config.js.map +1 -1
- package/dist/human/elementhandle.d.ts.map +1 -1
- package/dist/human/elementhandle.js +53 -4
- package/dist/human/elementhandle.js.map +1 -1
- package/dist/human/index.d.ts.map +1 -1
- package/dist/human/index.js +108 -14
- package/dist/human/index.js.map +1 -1
- package/dist/human/scroll.d.ts +4 -0
- package/dist/human/scroll.d.ts.map +1 -1
- package/dist/human/scroll.js +5 -3
- package/dist/human/scroll.js.map +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -1
- package/dist/index.js.map +1 -1
- package/dist/playwright.d.ts +12 -1
- package/dist/playwright.d.ts.map +1 -1
- package/dist/playwright.js +35 -21
- package/dist/playwright.js.map +1 -1
- package/dist/puppeteer.d.ts +23 -2
- package/dist/puppeteer.d.ts.map +1 -1
- package/dist/puppeteer.js +93 -58
- package/dist/puppeteer.js.map +1 -1
- package/dist/types.d.ts +2 -0
- package/dist/types.d.ts.map +1 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -230,6 +230,13 @@ const ctx = await launchPersistentContext({
|
|
|
230
230
|
userDataDir: './my-profile',
|
|
231
231
|
headless: false,
|
|
232
232
|
});
|
|
233
|
+
|
|
234
|
+
// Load Chrome extensions
|
|
235
|
+
const ctx = await launchPersistentContext({
|
|
236
|
+
userDataDir: './my-profile',
|
|
237
|
+
headless: false,
|
|
238
|
+
extensionPaths: ['./my-extension'],
|
|
239
|
+
});
|
|
233
240
|
```
|
|
234
241
|
|
|
235
242
|
This also gives you cookie and localStorage persistence across sessions.
|
package/dist/args.d.ts
CHANGED
package/dist/args.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"args.d.ts","sourceRoot":"","sources":["../src/args.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"args.d.ts","sourceRoot":"","sources":["../src/args.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAKhD;;;;GAIG;AACH,wBAAgB,SAAS,CAAC,OAAO,EAAE,aAAa,GAAG,MAAM,EAAE,CAuD1D"}
|
package/dist/args.js
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Shared argument builder for Playwright and Puppeteer wrappers.
|
|
3
3
|
*/
|
|
4
|
+
import path from "path";
|
|
4
5
|
import { getDefaultStealthArgs } from "./config.js";
|
|
5
6
|
const DEBUG = /\bcloakbrowser\b/.test(process.env.DEBUG ?? "");
|
|
6
7
|
/**
|
|
@@ -53,6 +54,12 @@ export function buildArgs(options) {
|
|
|
53
54
|
seen.set(k, flag);
|
|
54
55
|
}
|
|
55
56
|
}
|
|
57
|
+
if (options.extensionPaths?.length) {
|
|
58
|
+
const absPaths = options.extensionPaths.map(p => path.resolve(p));
|
|
59
|
+
const joined = absPaths.join(",");
|
|
60
|
+
seen.set("--load-extension", `--load-extension=${joined}`);
|
|
61
|
+
seen.set("--disable-extensions-except", `--disable-extensions-except=${joined}`);
|
|
62
|
+
}
|
|
56
63
|
return [...seen.values()];
|
|
57
64
|
}
|
|
58
65
|
//# sourceMappingURL=args.js.map
|
package/dist/args.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"args.js","sourceRoot":"","sources":["../src/args.ts"],"names":[],"mappings":"AAAA;;GAEG;
|
|
1
|
+
{"version":3,"file":"args.js","sourceRoot":"","sources":["../src/args.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Playwright-style actionability checks for the humanize layer.
|
|
3
|
+
*
|
|
4
|
+
* Checks: attached, visible, stable, enabled, editable, receives pointer events.
|
|
5
|
+
* Retry loop with backoff matching Playwright internals: [100, 250, 500, 1000]ms.
|
|
6
|
+
*/
|
|
7
|
+
import type { Page, Frame, ElementHandle } from 'playwright-core';
|
|
8
|
+
export declare class ActionabilityError extends Error {
|
|
9
|
+
selector: string;
|
|
10
|
+
check: string;
|
|
11
|
+
constructor(selector: string, check: string, message: string);
|
|
12
|
+
}
|
|
13
|
+
export declare class ElementNotAttachedError extends ActionabilityError {
|
|
14
|
+
constructor(selector: string);
|
|
15
|
+
}
|
|
16
|
+
export declare class ElementNotVisibleError extends ActionabilityError {
|
|
17
|
+
constructor(selector: string);
|
|
18
|
+
}
|
|
19
|
+
export declare class ElementNotStableError extends ActionabilityError {
|
|
20
|
+
constructor(selector: string);
|
|
21
|
+
}
|
|
22
|
+
export declare class ElementNotEnabledError extends ActionabilityError {
|
|
23
|
+
constructor(selector: string);
|
|
24
|
+
}
|
|
25
|
+
export declare class ElementNotEditableError extends ActionabilityError {
|
|
26
|
+
constructor(selector: string);
|
|
27
|
+
}
|
|
28
|
+
export declare class ElementNotReceivingEventsError extends ActionabilityError {
|
|
29
|
+
coveringTag: string;
|
|
30
|
+
constructor(selector: string, coveringTag?: string);
|
|
31
|
+
}
|
|
32
|
+
export type CheckName = 'attached' | 'visible' | 'enabled' | 'editable' | 'pointer_events';
|
|
33
|
+
export declare const CHECKS_CLICK: ReadonlySet<CheckName>;
|
|
34
|
+
export declare const CHECKS_HOVER: ReadonlySet<CheckName>;
|
|
35
|
+
export declare const CHECKS_INPUT: ReadonlySet<CheckName>;
|
|
36
|
+
export declare const CHECKS_FOCUS: ReadonlySet<CheckName>;
|
|
37
|
+
export declare const CHECKS_CHECK: ReadonlySet<CheckName>;
|
|
38
|
+
export declare function ensureActionable(pageOrFrame: Page | Frame, selector: string, checks: ReadonlySet<CheckName>, timeout?: number, force?: boolean): Promise<void>;
|
|
39
|
+
export declare function ensureStable(pageOrFrame: Page | Frame, selector: string, timeout?: number): Promise<void>;
|
|
40
|
+
export declare function checkPointerEvents(pageOrFrame: Page | Frame, selector: string, x: number, y: number, stealth?: {
|
|
41
|
+
evaluate(expression: string): Promise<any>;
|
|
42
|
+
} | null, timeout?: number): Promise<void>;
|
|
43
|
+
export declare function ensureActionableHandle(el: ElementHandle, checks: ReadonlySet<CheckName>, timeout?: number, force?: boolean): Promise<void>;
|
|
44
|
+
export declare function checkPointerEventsHandle(el: ElementHandle, x: number, y: number, timeout?: number): Promise<void>;
|
|
45
|
+
//# sourceMappingURL=actionability.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"actionability.d.ts","sourceRoot":"","sources":["../../src/human/actionability.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAMlE,qBAAa,kBAAmB,SAAQ,KAAK;IAC3C,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,MAAM,CAAC;gBAEF,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM;CAM7D;AAED,qBAAa,uBAAwB,SAAQ,kBAAkB;gBACjD,QAAQ,EAAE,MAAM;CAI7B;AAED,qBAAa,sBAAuB,SAAQ,kBAAkB;gBAChD,QAAQ,EAAE,MAAM;CAI7B;AAED,qBAAa,qBAAsB,SAAQ,kBAAkB;gBAC/C,QAAQ,EAAE,MAAM;CAI7B;AAED,qBAAa,sBAAuB,SAAQ,kBAAkB;gBAChD,QAAQ,EAAE,MAAM;CAI7B;AAED,qBAAa,uBAAwB,SAAQ,kBAAkB;gBACjD,QAAQ,EAAE,MAAM;CAI7B;AAED,qBAAa,8BAA+B,SAAQ,kBAAkB;IACpE,WAAW,EAAE,MAAM,CAAC;gBACR,QAAQ,EAAE,MAAM,EAAE,WAAW,GAAE,MAAkB;CAK9D;AAMD,MAAM,MAAM,SAAS,GAAG,UAAU,GAAG,SAAS,GAAG,SAAS,GAAG,UAAU,GAAG,gBAAgB,CAAC;AAE3F,eAAO,MAAM,YAAY,EAAE,WAAW,CAAC,SAAS,CAAiE,CAAC;AAClH,eAAO,MAAM,YAAY,EAAE,WAAW,CAAC,SAAS,CAAsD,CAAC;AACvG,eAAO,MAAM,YAAY,EAAE,WAAW,CAAC,SAAS,CAA6E,CAAC;AAC9H,eAAO,MAAM,YAAY,EAAE,WAAW,CAAC,SAAS,CAA+C,CAAC;AAChG,eAAO,MAAM,YAAY,EAAE,WAAW,CAAC,SAAS,CAAiE,CAAC;AAalH,wBAAsB,gBAAgB,CACpC,WAAW,EAAE,IAAI,GAAG,KAAK,EACzB,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,WAAW,CAAC,SAAS,CAAC,EAC9B,OAAO,GAAE,MAAc,EACvB,KAAK,GAAE,OAAe,GACrB,OAAO,CAAC,IAAI,CAAC,CAiDf;AAkBD,wBAAsB,YAAY,CAChC,WAAW,EAAE,IAAI,GAAG,KAAK,EACzB,QAAQ,EAAE,MAAM,EAChB,OAAO,GAAE,MAAa,GACrB,OAAO,CAAC,IAAI,CAAC,CAwBf;AAwBD,wBAAsB,kBAAkB,CACtC,WAAW,EAAE,IAAI,GAAG,KAAK,EACzB,QAAQ,EAAE,MAAM,EAChB,CAAC,EAAE,MAAM,EACT,CAAC,EAAE,MAAM,EACT,OAAO,CAAC,EAAE;IAAE,QAAQ,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,CAAA;CAAE,GAAG,IAAI,EAC/D,OAAO,GAAE,MAAa,GACrB,OAAO,CAAC,IAAI,CAAC,CAqBf;AAMD,wBAAsB,sBAAsB,CAC1C,EAAE,EAAE,aAAa,EACjB,MAAM,EAAE,WAAW,CAAC,SAAS,CAAC,EAC9B,OAAO,GAAE,MAAc,EACvB,KAAK,GAAE,OAAe,GACrB,OAAO,CAAC,IAAI,CAAC,CAoDf;AAED,wBAAsB,wBAAwB,CAC5C,EAAE,EAAE,aAAa,EACjB,CAAC,EAAE,MAAM,EACT,CAAC,EAAE,MAAM,EACT,OAAO,GAAE,MAAa,GACrB,OAAO,CAAC,IAAI,CAAC,CAsBf"}
|
|
@@ -0,0 +1,274 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Playwright-style actionability checks for the humanize layer.
|
|
3
|
+
*
|
|
4
|
+
* Checks: attached, visible, stable, enabled, editable, receives pointer events.
|
|
5
|
+
* Retry loop with backoff matching Playwright internals: [100, 250, 500, 1000]ms.
|
|
6
|
+
*/
|
|
7
|
+
// ---------------------------------------------------------------------------
|
|
8
|
+
// Error hierarchy
|
|
9
|
+
// ---------------------------------------------------------------------------
|
|
10
|
+
export class ActionabilityError extends Error {
|
|
11
|
+
selector;
|
|
12
|
+
check;
|
|
13
|
+
constructor(selector, check, message) {
|
|
14
|
+
super(`Element ${JSON.stringify(selector)} failed ${check} check: ${message}`);
|
|
15
|
+
this.name = 'ActionabilityError';
|
|
16
|
+
this.selector = selector;
|
|
17
|
+
this.check = check;
|
|
18
|
+
}
|
|
19
|
+
}
|
|
20
|
+
export class ElementNotAttachedError extends ActionabilityError {
|
|
21
|
+
constructor(selector) {
|
|
22
|
+
super(selector, 'attached', 'element not found in DOM');
|
|
23
|
+
this.name = 'ElementNotAttachedError';
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
export class ElementNotVisibleError extends ActionabilityError {
|
|
27
|
+
constructor(selector) {
|
|
28
|
+
super(selector, 'visible', 'element is not visible');
|
|
29
|
+
this.name = 'ElementNotVisibleError';
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
export class ElementNotStableError extends ActionabilityError {
|
|
33
|
+
constructor(selector) {
|
|
34
|
+
super(selector, 'stable', 'element position is still changing');
|
|
35
|
+
this.name = 'ElementNotStableError';
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
export class ElementNotEnabledError extends ActionabilityError {
|
|
39
|
+
constructor(selector) {
|
|
40
|
+
super(selector, 'enabled', 'element is disabled');
|
|
41
|
+
this.name = 'ElementNotEnabledError';
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
export class ElementNotEditableError extends ActionabilityError {
|
|
45
|
+
constructor(selector) {
|
|
46
|
+
super(selector, 'editable', 'element is not editable');
|
|
47
|
+
this.name = 'ElementNotEditableError';
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
export class ElementNotReceivingEventsError extends ActionabilityError {
|
|
51
|
+
coveringTag;
|
|
52
|
+
constructor(selector, coveringTag = 'unknown') {
|
|
53
|
+
super(selector, 'pointer_events', `element is covered by <${coveringTag}>`);
|
|
54
|
+
this.name = 'ElementNotReceivingEventsError';
|
|
55
|
+
this.coveringTag = coveringTag;
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
export const CHECKS_CLICK = new Set(['attached', 'visible', 'enabled', 'pointer_events']);
|
|
59
|
+
export const CHECKS_HOVER = new Set(['attached', 'visible', 'pointer_events']);
|
|
60
|
+
export const CHECKS_INPUT = new Set(['attached', 'visible', 'enabled', 'editable', 'pointer_events']);
|
|
61
|
+
export const CHECKS_FOCUS = new Set(['attached', 'visible', 'enabled']);
|
|
62
|
+
export const CHECKS_CHECK = new Set(['attached', 'visible', 'enabled', 'pointer_events']);
|
|
63
|
+
const BACKOFF_MS = [100, 250, 500, 1000];
|
|
64
|
+
function backoffSleep(attempt) {
|
|
65
|
+
const idx = Math.min(attempt, BACKOFF_MS.length - 1);
|
|
66
|
+
return new Promise(resolve => setTimeout(resolve, BACKOFF_MS[idx]));
|
|
67
|
+
}
|
|
68
|
+
// ---------------------------------------------------------------------------
|
|
69
|
+
// Pre-scroll actionability
|
|
70
|
+
// ---------------------------------------------------------------------------
|
|
71
|
+
export async function ensureActionable(pageOrFrame, selector, checks, timeout = 30000, force = false) {
|
|
72
|
+
if (force)
|
|
73
|
+
return;
|
|
74
|
+
const deadline = Date.now() + timeout;
|
|
75
|
+
let attempt = 0;
|
|
76
|
+
let lastError = null;
|
|
77
|
+
while (true) {
|
|
78
|
+
const remainingMs = Math.max(0, deadline - Date.now());
|
|
79
|
+
if (remainingMs <= 0) {
|
|
80
|
+
if (lastError)
|
|
81
|
+
throw lastError;
|
|
82
|
+
throw new ActionabilityError(selector, 'timeout', 'timeout expired before first check');
|
|
83
|
+
}
|
|
84
|
+
try {
|
|
85
|
+
const loc = pageOrFrame.locator(selector).first();
|
|
86
|
+
if (checks.has('attached')) {
|
|
87
|
+
try {
|
|
88
|
+
await loc.waitFor({ state: 'attached', timeout: Math.max(1, Math.min(remainingMs, 2000)) });
|
|
89
|
+
}
|
|
90
|
+
catch {
|
|
91
|
+
throw new ElementNotAttachedError(selector);
|
|
92
|
+
}
|
|
93
|
+
}
|
|
94
|
+
if (checks.has('visible')) {
|
|
95
|
+
if (!await loc.isVisible())
|
|
96
|
+
throw new ElementNotVisibleError(selector);
|
|
97
|
+
}
|
|
98
|
+
if (checks.has('enabled')) {
|
|
99
|
+
if (!await loc.isEnabled())
|
|
100
|
+
throw new ElementNotEnabledError(selector);
|
|
101
|
+
}
|
|
102
|
+
if (checks.has('editable')) {
|
|
103
|
+
if (!await loc.isEditable())
|
|
104
|
+
throw new ElementNotEditableError(selector);
|
|
105
|
+
}
|
|
106
|
+
return;
|
|
107
|
+
}
|
|
108
|
+
catch (e) {
|
|
109
|
+
if (e instanceof ActionabilityError) {
|
|
110
|
+
lastError = e;
|
|
111
|
+
if (Date.now() >= deadline)
|
|
112
|
+
throw lastError;
|
|
113
|
+
await backoffSleep(attempt);
|
|
114
|
+
attempt++;
|
|
115
|
+
}
|
|
116
|
+
else {
|
|
117
|
+
throw e;
|
|
118
|
+
}
|
|
119
|
+
}
|
|
120
|
+
}
|
|
121
|
+
}
|
|
122
|
+
// ---------------------------------------------------------------------------
|
|
123
|
+
// Post-scroll stability check
|
|
124
|
+
// ---------------------------------------------------------------------------
|
|
125
|
+
function boxesDiffer(a, b) {
|
|
126
|
+
return (Math.abs(a.x - b.x) > 1 ||
|
|
127
|
+
Math.abs(a.y - b.y) > 1 ||
|
|
128
|
+
Math.abs(a.width - b.width) > 1 ||
|
|
129
|
+
Math.abs(a.height - b.height) > 1);
|
|
130
|
+
}
|
|
131
|
+
export async function ensureStable(pageOrFrame, selector, timeout = 5000) {
|
|
132
|
+
const deadline = Date.now() + timeout;
|
|
133
|
+
let attempt = 0;
|
|
134
|
+
while (true) {
|
|
135
|
+
const remainingMs = Math.max(0, deadline - Date.now());
|
|
136
|
+
if (remainingMs <= 0)
|
|
137
|
+
throw new ElementNotStableError(selector);
|
|
138
|
+
const loc = pageOrFrame.locator(selector).first();
|
|
139
|
+
const box1 = await loc.boundingBox({ timeout: Math.max(1, Math.min(remainingMs, 1000)) });
|
|
140
|
+
if (!box1)
|
|
141
|
+
throw new ElementNotAttachedError(selector);
|
|
142
|
+
await new Promise(r => setTimeout(r, 100));
|
|
143
|
+
const box2 = await loc.boundingBox({ timeout: Math.max(1, Math.min(remainingMs, 1000)) });
|
|
144
|
+
if (!box2)
|
|
145
|
+
throw new ElementNotAttachedError(selector);
|
|
146
|
+
if (!boxesDiffer(box1, box2))
|
|
147
|
+
return;
|
|
148
|
+
if (Date.now() >= deadline)
|
|
149
|
+
throw new ElementNotStableError(selector);
|
|
150
|
+
await backoffSleep(attempt);
|
|
151
|
+
attempt++;
|
|
152
|
+
}
|
|
153
|
+
}
|
|
154
|
+
// ---------------------------------------------------------------------------
|
|
155
|
+
// Pointer-events check (post-scroll, at actual click coordinates)
|
|
156
|
+
// ---------------------------------------------------------------------------
|
|
157
|
+
const POINTER_EVENTS_LOCATOR_JS = `(expected, coords) => {
|
|
158
|
+
const target = document.elementFromPoint(coords.x, coords.y);
|
|
159
|
+
if (!target) return { hit: false, reason: 'no_element_at_point', covering: 'none' };
|
|
160
|
+
let node = target;
|
|
161
|
+
while (node) { if (node === expected) return { hit: true }; node = node.parentNode; }
|
|
162
|
+
if (expected.contains(target)) return { hit: true };
|
|
163
|
+
return { hit: false, reason: 'covered', covering: target.tagName || 'unknown' };
|
|
164
|
+
}`;
|
|
165
|
+
const POINTER_EVENTS_HANDLE_JS = `(expected, coords) => {
|
|
166
|
+
const target = document.elementFromPoint(coords.x, coords.y);
|
|
167
|
+
if (!target) return { hit: false, reason: 'no_element_at_point', covering: 'none' };
|
|
168
|
+
let node = target;
|
|
169
|
+
while (node) { if (node === expected) return { hit: true }; node = node.parentNode; }
|
|
170
|
+
if (expected.contains(target)) return { hit: true };
|
|
171
|
+
return { hit: false, reason: 'covered', covering: target.tagName || 'unknown' };
|
|
172
|
+
}`;
|
|
173
|
+
export async function checkPointerEvents(pageOrFrame, selector, x, y, stealth, timeout = 5000) {
|
|
174
|
+
const deadline = Date.now() + timeout;
|
|
175
|
+
let attempt = 0;
|
|
176
|
+
const coords = { x, y };
|
|
177
|
+
while (true) {
|
|
178
|
+
let result = null;
|
|
179
|
+
try {
|
|
180
|
+
const loc = pageOrFrame.locator(selector).first();
|
|
181
|
+
result = await loc.evaluate(POINTER_EVENTS_LOCATOR_JS, coords);
|
|
182
|
+
}
|
|
183
|
+
catch {
|
|
184
|
+
result = null;
|
|
185
|
+
}
|
|
186
|
+
if (result && result.hit)
|
|
187
|
+
return;
|
|
188
|
+
const covering = result?.covering ?? 'unknown';
|
|
189
|
+
if (Date.now() >= deadline)
|
|
190
|
+
throw new ElementNotReceivingEventsError(selector, covering);
|
|
191
|
+
await backoffSleep(attempt);
|
|
192
|
+
attempt++;
|
|
193
|
+
}
|
|
194
|
+
}
|
|
195
|
+
// ---------------------------------------------------------------------------
|
|
196
|
+
// ElementHandle variant
|
|
197
|
+
// ---------------------------------------------------------------------------
|
|
198
|
+
export async function ensureActionableHandle(el, checks, timeout = 30000, force = false) {
|
|
199
|
+
if (force)
|
|
200
|
+
return;
|
|
201
|
+
const deadline = Date.now() + timeout;
|
|
202
|
+
let attempt = 0;
|
|
203
|
+
let lastError = null;
|
|
204
|
+
const label = '<ElementHandle>';
|
|
205
|
+
while (true) {
|
|
206
|
+
const remainingMs = Math.max(0, deadline - Date.now());
|
|
207
|
+
if (remainingMs <= 0) {
|
|
208
|
+
if (lastError)
|
|
209
|
+
throw lastError;
|
|
210
|
+
throw new ActionabilityError(label, 'timeout', 'timeout expired before first check');
|
|
211
|
+
}
|
|
212
|
+
try {
|
|
213
|
+
if (checks.has('visible')) {
|
|
214
|
+
try {
|
|
215
|
+
await el.waitForElementState('visible', { timeout: Math.max(1, Math.min(remainingMs, 2000)) });
|
|
216
|
+
}
|
|
217
|
+
catch {
|
|
218
|
+
throw new ElementNotVisibleError(label);
|
|
219
|
+
}
|
|
220
|
+
}
|
|
221
|
+
if (checks.has('enabled')) {
|
|
222
|
+
try {
|
|
223
|
+
await el.waitForElementState('enabled', { timeout: Math.max(1, Math.min(remainingMs, 2000)) });
|
|
224
|
+
}
|
|
225
|
+
catch {
|
|
226
|
+
throw new ElementNotEnabledError(label);
|
|
227
|
+
}
|
|
228
|
+
}
|
|
229
|
+
if (checks.has('editable')) {
|
|
230
|
+
try {
|
|
231
|
+
await el.waitForElementState('editable', { timeout: Math.max(1, Math.min(remainingMs, 2000)) });
|
|
232
|
+
}
|
|
233
|
+
catch {
|
|
234
|
+
throw new ElementNotEditableError(label);
|
|
235
|
+
}
|
|
236
|
+
}
|
|
237
|
+
return;
|
|
238
|
+
}
|
|
239
|
+
catch (e) {
|
|
240
|
+
if (e instanceof ActionabilityError) {
|
|
241
|
+
lastError = e;
|
|
242
|
+
if (Date.now() >= deadline)
|
|
243
|
+
throw lastError;
|
|
244
|
+
await backoffSleep(attempt);
|
|
245
|
+
attempt++;
|
|
246
|
+
}
|
|
247
|
+
else {
|
|
248
|
+
throw e;
|
|
249
|
+
}
|
|
250
|
+
}
|
|
251
|
+
}
|
|
252
|
+
}
|
|
253
|
+
export async function checkPointerEventsHandle(el, x, y, timeout = 5000) {
|
|
254
|
+
const deadline = Date.now() + timeout;
|
|
255
|
+
let attempt = 0;
|
|
256
|
+
const coords = { x, y };
|
|
257
|
+
while (true) {
|
|
258
|
+
let result;
|
|
259
|
+
try {
|
|
260
|
+
result = await el.evaluate(POINTER_EVENTS_HANDLE_JS, coords);
|
|
261
|
+
}
|
|
262
|
+
catch {
|
|
263
|
+
result = null;
|
|
264
|
+
}
|
|
265
|
+
if (result && result.hit)
|
|
266
|
+
return;
|
|
267
|
+
const covering = result?.covering ?? 'unknown';
|
|
268
|
+
if (Date.now() >= deadline)
|
|
269
|
+
throw new ElementNotReceivingEventsError('<ElementHandle>', covering);
|
|
270
|
+
await backoffSleep(attempt);
|
|
271
|
+
attempt++;
|
|
272
|
+
}
|
|
273
|
+
}
|
|
274
|
+
//# sourceMappingURL=actionability.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"actionability.js","sourceRoot":"","sources":["../../src/human/actionability.ts"],"names":[],"mappings":"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"}
|
package/dist/human/config.d.ts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/human/config.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/human/config.ts"],"names":[],"mappings":"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"}
|
package/dist/human/config.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/human/config.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;
|
|
1
|
+
{"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/human/config.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +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,EAAsB,MAAM,aAAa,CAAC;AAEnE,OAAO,EAAE,QAAQ,EAAE,WAAW,EAAiD,MAAM,YAAY,CAAC;
|
|
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,EAAsB,MAAM,aAAa,CAAC;AAEnE,OAAO,EAAE,QAAQ,EAAE,WAAW,EAAiD,MAAM,YAAY,CAAC;AAmDlG,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,CAuUN;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,CAoCN;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,CAoCN"}
|
|
@@ -19,6 +19,7 @@ import { rand, randRange, sleep, mergeConfig } from './config.js';
|
|
|
19
19
|
import { humanMove, humanClick, clickTarget, humanIdle } from './mouse.js';
|
|
20
20
|
import { humanType } from './keyboard.js';
|
|
21
21
|
import { humanScrollIntoView } from './scroll.js';
|
|
22
|
+
import { ensureActionableHandle, checkPointerEventsHandle, CHECKS_CLICK, CHECKS_HOVER, CHECKS_INPUT, CHECKS_FOCUS, CHECKS_CHECK, } from './actionability.js';
|
|
22
23
|
// --- Platform-aware select-all shortcut ---
|
|
23
24
|
const SELECT_ALL = process.platform === 'darwin' ? 'Meta+a' : 'Control+a';
|
|
24
25
|
// ============================================================================
|
|
@@ -135,17 +136,29 @@ export function patchSingleElementHandle(el, page, cfg, cursor, raw, rawKb, orig
|
|
|
135
136
|
// --- el.click() ---
|
|
136
137
|
el.click = async (options) => {
|
|
137
138
|
const callCfg = mergeConfig(cfg, options?.human_config ?? options);
|
|
139
|
+
const force = options?.force ?? false;
|
|
140
|
+
const timeout = options?.timeout ?? 30000;
|
|
141
|
+
if (!force)
|
|
142
|
+
await ensureActionableHandle(el, CHECKS_CLICK, timeout, force);
|
|
138
143
|
const info = await moveToElement(callCfg);
|
|
139
144
|
if (!info)
|
|
140
145
|
return origElClick(options);
|
|
146
|
+
if (!force)
|
|
147
|
+
await checkPointerEventsHandle(el, cursor.x, cursor.y, Math.min(timeout, 5000));
|
|
141
148
|
await humanClick(raw, info.isInp, callCfg);
|
|
142
149
|
};
|
|
143
150
|
// --- el.dblclick() ---
|
|
144
151
|
el.dblclick = async (options) => {
|
|
145
152
|
const callCfg = mergeConfig(cfg, options?.human_config ?? options);
|
|
153
|
+
const force = options?.force ?? false;
|
|
154
|
+
const timeout = options?.timeout ?? 30000;
|
|
155
|
+
if (!force)
|
|
156
|
+
await ensureActionableHandle(el, CHECKS_CLICK, timeout, force);
|
|
146
157
|
const info = await moveToElement(callCfg);
|
|
147
158
|
if (!info)
|
|
148
159
|
return origElDblclick(options);
|
|
160
|
+
if (!force)
|
|
161
|
+
await checkPointerEventsHandle(el, cursor.x, cursor.y, Math.min(timeout, 5000));
|
|
149
162
|
await raw.down({ clickCount: 2 });
|
|
150
163
|
await sleep(rand(30, 60));
|
|
151
164
|
await raw.up({ clickCount: 2 });
|
|
@@ -153,17 +166,26 @@ export function patchSingleElementHandle(el, page, cfg, cursor, raw, rawKb, orig
|
|
|
153
166
|
// --- el.hover() ---
|
|
154
167
|
el.hover = async (options) => {
|
|
155
168
|
const callCfg = mergeConfig(cfg, options?.human_config ?? options);
|
|
169
|
+
const force = options?.force ?? false;
|
|
170
|
+
const timeout = options?.timeout ?? 30000;
|
|
171
|
+
if (!force)
|
|
172
|
+
await ensureActionableHandle(el, CHECKS_HOVER, timeout, force);
|
|
156
173
|
const info = await moveToElement(callCfg);
|
|
157
174
|
if (!info)
|
|
158
175
|
return origElHover(options);
|
|
159
|
-
// Just move — no click
|
|
160
176
|
};
|
|
161
177
|
// --- el.type() ---
|
|
162
178
|
el.type = async (text, options) => {
|
|
163
179
|
const callCfg = mergeConfig(cfg, options?.human_config ?? options);
|
|
180
|
+
const force = options?.force ?? false;
|
|
181
|
+
const timeout = options?.timeout ?? 30000;
|
|
182
|
+
if (!force)
|
|
183
|
+
await ensureActionableHandle(el, CHECKS_INPUT, timeout, force);
|
|
164
184
|
const info = await moveToElement(callCfg);
|
|
165
185
|
if (!info)
|
|
166
186
|
return origElType(text, options);
|
|
187
|
+
if (!force)
|
|
188
|
+
await checkPointerEventsHandle(el, cursor.x, cursor.y, Math.min(timeout, 5000));
|
|
167
189
|
await humanClick(raw, info.isInp, callCfg);
|
|
168
190
|
await sleep(rand(100, 250));
|
|
169
191
|
let cdpSession = null;
|
|
@@ -176,12 +198,17 @@ export function patchSingleElementHandle(el, page, cfg, cursor, raw, rawKb, orig
|
|
|
176
198
|
// --- el.fill() ---
|
|
177
199
|
el.fill = async (value, options) => {
|
|
178
200
|
const callCfg = mergeConfig(cfg, options?.human_config ?? options);
|
|
201
|
+
const force = options?.force ?? false;
|
|
202
|
+
const timeout = options?.timeout ?? 30000;
|
|
203
|
+
if (!force)
|
|
204
|
+
await ensureActionableHandle(el, CHECKS_INPUT, timeout, force);
|
|
179
205
|
const info = await moveToElement(callCfg);
|
|
180
206
|
if (!info)
|
|
181
207
|
return origElFill(value, options);
|
|
208
|
+
if (!force)
|
|
209
|
+
await checkPointerEventsHandle(el, cursor.x, cursor.y, Math.min(timeout, 5000));
|
|
182
210
|
await humanClick(raw, info.isInp, callCfg);
|
|
183
211
|
await sleep(rand(100, 250));
|
|
184
|
-
// Clear existing content
|
|
185
212
|
await originals.keyboardPress(SELECT_ALL);
|
|
186
213
|
await sleep(rand(30, 80));
|
|
187
214
|
await originals.keyboardPress('Backspace');
|
|
@@ -202,6 +229,10 @@ export function patchSingleElementHandle(el, page, cfg, cursor, raw, rawKb, orig
|
|
|
202
229
|
};
|
|
203
230
|
// --- el.selectOption() ---
|
|
204
231
|
el.selectOption = async (values, options) => {
|
|
232
|
+
const force = options?.force ?? false;
|
|
233
|
+
const timeout = options?.timeout ?? 30000;
|
|
234
|
+
if (!force)
|
|
235
|
+
await ensureActionableHandle(el, CHECKS_FOCUS, timeout, force);
|
|
205
236
|
const info = await moveToElement();
|
|
206
237
|
if (!info)
|
|
207
238
|
return origElSelectOption(values, options);
|
|
@@ -211,33 +242,49 @@ export function patchSingleElementHandle(el, page, cfg, cursor, raw, rawKb, orig
|
|
|
211
242
|
};
|
|
212
243
|
// --- el.check() ---
|
|
213
244
|
el.check = async (options) => {
|
|
245
|
+
const force = options?.force ?? false;
|
|
246
|
+
const timeout = options?.timeout ?? 30000;
|
|
247
|
+
if (!force)
|
|
248
|
+
await ensureActionableHandle(el, CHECKS_CHECK, timeout, force);
|
|
214
249
|
try {
|
|
215
250
|
const checked = await el.isChecked();
|
|
216
251
|
if (checked)
|
|
217
|
-
return;
|
|
252
|
+
return;
|
|
218
253
|
}
|
|
219
254
|
catch { }
|
|
220
255
|
const info = await moveToElement();
|
|
221
256
|
if (!info)
|
|
222
257
|
return origElCheck(options);
|
|
258
|
+
if (!force)
|
|
259
|
+
await checkPointerEventsHandle(el, cursor.x, cursor.y, Math.min(timeout, 5000));
|
|
223
260
|
await humanClick(raw, info.isInp, cfg);
|
|
224
261
|
};
|
|
225
262
|
// --- el.uncheck() ---
|
|
226
263
|
el.uncheck = async (options) => {
|
|
264
|
+
const force = options?.force ?? false;
|
|
265
|
+
const timeout = options?.timeout ?? 30000;
|
|
266
|
+
if (!force)
|
|
267
|
+
await ensureActionableHandle(el, CHECKS_CHECK, timeout, force);
|
|
227
268
|
try {
|
|
228
269
|
const checked = await el.isChecked();
|
|
229
270
|
if (!checked)
|
|
230
|
-
return;
|
|
271
|
+
return;
|
|
231
272
|
}
|
|
232
273
|
catch { }
|
|
233
274
|
const info = await moveToElement();
|
|
234
275
|
if (!info)
|
|
235
276
|
return origElUncheck(options);
|
|
277
|
+
if (!force)
|
|
278
|
+
await checkPointerEventsHandle(el, cursor.x, cursor.y, Math.min(timeout, 5000));
|
|
236
279
|
await humanClick(raw, info.isInp, cfg);
|
|
237
280
|
};
|
|
238
281
|
// --- el.setChecked() ---
|
|
239
282
|
if (origElSetChecked) {
|
|
240
283
|
el.setChecked = async (checked, options) => {
|
|
284
|
+
const force = options?.force ?? false;
|
|
285
|
+
const timeout = options?.timeout ?? 30000;
|
|
286
|
+
if (!force)
|
|
287
|
+
await ensureActionableHandle(el, CHECKS_CHECK, timeout, force);
|
|
241
288
|
try {
|
|
242
289
|
const current = await el.isChecked();
|
|
243
290
|
if (current === checked)
|
|
@@ -247,6 +294,8 @@ export function patchSingleElementHandle(el, page, cfg, cursor, raw, rawKb, orig
|
|
|
247
294
|
const info = await moveToElement();
|
|
248
295
|
if (!info)
|
|
249
296
|
return origElSetChecked(checked, options);
|
|
297
|
+
if (!force)
|
|
298
|
+
await checkPointerEventsHandle(el, cursor.x, cursor.y, Math.min(timeout, 5000));
|
|
250
299
|
await humanClick(raw, info.isInp, cfg);
|
|
251
300
|
};
|
|
252
301
|
}
|