cloakbrowser 0.3.28 → 0.3.30

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 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
@@ -1,6 +1,3 @@
1
- /**
2
- * Shared argument builder for Playwright and Puppeteer wrappers.
3
- */
4
1
  import type { LaunchOptions } from "./types.js";
5
2
  /**
6
3
  * Build deduplicated Chromium CLI args from stealth defaults + user overrides.
@@ -1 +1 @@
1
- {"version":3,"file":"args.d.ts","sourceRoot":"","sources":["../src/args.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAKhD;;;;GAIG;AACH,wBAAgB,SAAS,CAAC,OAAO,EAAE,aAAa,GAAG,MAAM,EAAE,CA4C1D"}
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;AAGH,OAAO,EAAE,qBAAqB,EAAE,MAAM,aAAa,CAAC;AAEpD,MAAM,KAAK,GAAG,kBAAkB,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC;AAE/D;;;;GAIG;AACH,MAAM,UAAU,SAAS,CAAC,OAAsB;IAC9C,MAAM,IAAI,GAAG,IAAI,GAAG,EAAkB,CAAC;IAEvC,IAAI,OAAO,CAAC,WAAW,KAAK,KAAK,EAAE,CAAC;QAClC,KAAK,MAAM,GAAG,IAAI,qBAAqB,EAAE,EAAE,CAAC;YAC1C,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;QACnC,CAAC;IACH,CAAC;IACD,wBAAwB;IACxB,wEAAwE;IACxE,sEAAsE;IACtE,wEAAwE;IACxE,yEAAyE;IACzE,yCAAyC;IACzC,IAAI,OAAO,CAAC,QAAQ,KAAK,KAAK,IAAI,OAAO,CAAC,QAAQ,KAAK,OAAO,EAAE,CAAC;QAC/D,IAAI,CAAC,GAAG,CAAC,wBAAwB,EAAE,wBAAwB,CAAC,CAAC;IAC/D,CAAC;IACD,IAAI,OAAO,CAAC,IAAI,EAAE,CAAC;QACjB,KAAK,MAAM,GAAG,IAAI,OAAO,CAAC,IAAI,EAAE,CAAC;YAC/B,MAAM,GAAG,GAAG,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;YAC9B,IAAI,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC;gBAClB,IAAI,KAAK;oBAAE,OAAO,CAAC,KAAK,CAAC,gCAAgC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,OAAO,GAAG,EAAE,CAAC,CAAC;YACtF,CAAC;YACD,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;QACrB,CAAC;IACH,CAAC;IACD,IAAI,OAAO,CAAC,QAAQ,EAAE,CAAC;QACrB,MAAM,GAAG,GAAG,wBAAwB,CAAC;QACrC,MAAM,IAAI,GAAG,GAAG,GAAG,IAAI,OAAO,CAAC,QAAQ,EAAE,CAAC;QAC1C,IAAI,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC;YAClB,IAAI,KAAK;gBAAE,OAAO,CAAC,KAAK,CAAC,gCAAgC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,OAAO,IAAI,EAAE,CAAC,CAAC;QACvF,CAAC;QACD,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;IACtB,CAAC;IACD,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;QACnB,KAAK,MAAM,CAAC,IAAI,CAAC,QAAQ,EAAE,sBAAsB,CAAU,EAAE,CAAC;YAC5D,MAAM,IAAI,GAAG,GAAG,CAAC,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;YACtC,IAAI,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;gBAChB,IAAI,KAAK;oBAAE,OAAO,CAAC,KAAK,CAAC,gCAAgC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,OAAO,IAAI,EAAE,CAAC,CAAC;YACrF,CAAC;YACD,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC;QACpB,CAAC;IACH,CAAC;IACD,OAAO,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC;AAC5B,CAAC"}
1
+ {"version":3,"file":"args.js","sourceRoot":"","sources":["../src/args.ts"],"names":[],"mappings":"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"}
package/dist/config.d.ts CHANGED
@@ -4,7 +4,7 @@
4
4
  */
5
5
  declare let WRAPPER_VERSION: string;
6
6
  export { WRAPPER_VERSION };
7
- export declare const CHROMIUM_VERSION = "146.0.7680.177.3";
7
+ export declare const CHROMIUM_VERSION = "146.0.7680.177.5";
8
8
  export declare const PLATFORM_CHROMIUM_VERSIONS: Record<string, string>;
9
9
  export declare function getChromiumVersion(): string;
10
10
  export declare function getPlatformTag(): string;
package/dist/config.js CHANGED
@@ -25,13 +25,13 @@ export { WRAPPER_VERSION };
25
25
  // CHROMIUM_VERSION is the latest across all platforms (for display/reference).
26
26
  // Use getChromiumVersion() for the current platform's actual version.
27
27
  // ---------------------------------------------------------------------------
28
- export const CHROMIUM_VERSION = "146.0.7680.177.3";
28
+ export const CHROMIUM_VERSION = "146.0.7680.177.5";
29
29
  export const PLATFORM_CHROMIUM_VERSIONS = {
30
- "linux-x64": "146.0.7680.177.3",
30
+ "linux-x64": "146.0.7680.177.5",
31
31
  "linux-arm64": "146.0.7680.177.3",
32
32
  "darwin-arm64": "145.0.7632.109.2",
33
33
  "darwin-x64": "145.0.7632.109.2",
34
- "windows-x64": "146.0.7680.177.4",
34
+ "windows-x64": "146.0.7680.177.5",
35
35
  };
36
36
  // ---------------------------------------------------------------------------
37
37
  // Platform detection
@@ -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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"}
@@ -50,6 +50,7 @@ export interface HumanConfig {
50
50
  export type HumanPreset = 'default' | 'careful';
51
51
  export type HumanActionOptions = Partial<HumanConfig> & {
52
52
  timeout?: number;
53
+ force?: boolean;
53
54
  human_config?: Partial<HumanConfig>;
54
55
  };
55
56
  /**
@@ -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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"}
@@ -1 +1 @@
1
- {"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/human/config.ts"],"names":[],"mappings":"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"}
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;AA+ClG,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,CAuSN;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"}
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; // Already checked
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; // Already unchecked
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
  }