clearcote 0.20.0 → 0.21.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +1 -1
- package/dist/humanize.d.ts.map +1 -1
- package/dist/humanize.js +303 -93
- package/dist/humanize.js.map +1 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -128,7 +128,7 @@ Geo data comes from the offline [geoip-all-in-one](https://github.com/daijro/geo
|
|
|
128
128
|
|
|
129
129
|
### Humanized input (`humanize`, `showCursor`)
|
|
130
130
|
|
|
131
|
-
`humanize: true` installs **one consistent human-input standard** across every Playwright surface (`page.click`/`hover`/`dblclick`/`type`/`fill`/`press`, `page.mouse.*`, `page.keyboard.type`, and the `Locator` equivalents incl. `dragTo`), dispatched as **native trusted input** (`isTrusted === true`, `navigator.webdriver` stays `false`). Mouse paths are slightly bowed cubic-beziers from the *last* cursor position (no snap to the corner), walked as a **sum of sub-movements with a min-jerk velocity profile** (a ballistic primary + corrective move — multi-peak velocity, not one symmetric bell); a held `mouse.down()` stays pressed across the move so `down → move → up` is a real drag. Typing is key-by-key with **gaussian inter-key timing** + word-boundary pauses + the occasional fat-finger correction (bulk values over 200 chars stay atomic). Scrolling uses **ease-out inertia** with the occasional reading pause. `showCursor: true` injects a cursor dot for headed runs. Both default off.
|
|
131
|
+
`humanize: true` installs **one consistent human-input standard** across every Playwright surface (`page.click`/`hover`/`dblclick`/`type`/`fill`/`press`/`selectOption`, `page.mouse.*`, `page.keyboard.type`/`press`, and the `Locator` equivalents incl. `dragTo`), dispatched as **native trusted input** (`isTrusted === true`, `navigator.webdriver` stays `false`). Mouse paths are slightly bowed cubic-beziers from the *last* cursor position (no snap to the corner), walked as a **sum of sub-movements with a min-jerk velocity profile** (a ballistic primary + corrective move — multi-peak velocity, not one symmetric bell); a held `mouse.down()` stays pressed across the move so `down → move → up` is a real drag. Typing is key-by-key with **gaussian inter-key timing** + word-boundary pauses + the occasional fat-finger correction (bulk values over 200 chars stay atomic). Scrolling uses **ease-out inertia** with the occasional reading pause, and moves the pointer over the content first when it isn't already there (a wheel event carries the cursor position). `<select>` options are chosen by stepping the focused, closed dropdown with the arrow keys, so the browser — not a script — emits the `change` event. `showCursor: true` injects a cursor dot for headed runs. Both default off.
|
|
132
132
|
|
|
133
133
|
### Render-backend coherence check (`checkRenderCoherence`)
|
|
134
134
|
|
package/dist/humanize.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"humanize.d.ts","sourceRoot":"","sources":["../src/humanize.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"humanize.d.ts","sourceRoot":"","sources":["../src/humanize.ts"],"names":[],"mappings":"AAsBA,OAAO,KAAK,EAAE,OAAO,EAAE,cAAc,EAAW,IAAI,EAAE,MAAM,iBAAiB,CAAC;AAG9E,MAAM,WAAW,eAAe;IAC9B,iFAAiF;IACjF,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,oEAAoE;IACpE,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB;qGACiG;IACjG,IAAI,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;CACxB;AAED;sEACsE;AACtE,eAAO,MAAM,cAAc,o5BAerB,CAAC;AA2BP,mFAAmF;AACnF,wBAAsB,cAAc,CAAC,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,eAAe,GAAG,OAAO,CAAC,IAAI,CAAC,CA0fvG;AAwKD,mGAAmG;AACnG,wBAAgB,eAAe,CAAC,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,eAAe,GAAG,IAAI,CAc7E;AAED,0FAA0F;AAC1F,wBAAgB,wBAAwB,CACtC,OAAO,EAAE,cAAc,EAAE,IAAI,EAAE,eAAe,EAAE,OAAO,CAAC,EAAE,OAAO,GAAG,IAAI,GACvE,IAAI,CAQN"}
|
package/dist/humanize.js
CHANGED
|
@@ -4,11 +4,13 @@
|
|
|
4
4
|
// dragging, scrolling and typing — dispatched as native trusted input (isTrusted===true,
|
|
5
5
|
// navigator.webdriver stays false). It works whether you drive the page directly or via
|
|
6
6
|
// locators:
|
|
7
|
-
// page level — page.click / hover / dblclick / type / fill / press
|
|
8
|
-
// click / wheel and held-button drags (down -> move -> up),
|
|
7
|
+
// page level — page.click / hover / dblclick / type / fill / press / selectOption,
|
|
8
|
+
// page.mouse.move / click / wheel and held-button drags (down -> move -> up),
|
|
9
|
+
// page.keyboard.type / press
|
|
9
10
|
// locator level — locator.click / type / fill / hover / dblclick / press /
|
|
10
|
-
// pressSequentially / clear / check / uncheck / tap /
|
|
11
|
-
// the humanized page methods; main-frame locators only,
|
|
11
|
+
// pressSequentially / clear / check / uncheck / tap / selectOption / dragTo
|
|
12
|
+
// (routed through the humanized page methods; main-frame locators only,
|
|
13
|
+
// native fallback)
|
|
12
14
|
// `showCursor: true` — injects a red cursor dot that follows the real mousemove events.
|
|
13
15
|
//
|
|
14
16
|
// Mouse moves build an eased, slightly bowed cubic-bezier path SDK-side from the tracked cursor
|
|
@@ -17,7 +19,7 @@
|
|
|
17
19
|
// (slider captchas work) with no separate CDP channel to desync. Typing goes key-by-key through
|
|
18
20
|
// the native keyboard (trusted; shift handled by the engine) with human inter-key timing. No
|
|
19
21
|
// special binary command required.
|
|
20
|
-
import { makePersona, planMove, dragDwell, clickHold, keyDwell, clickPoint, planAmbient } from "./motion.js";
|
|
22
|
+
import { makePersona, planMove, dragDwell, clickHold, keyDwell, clickPoint, planAmbient, gaussFrom } from "./motion.js";
|
|
21
23
|
/** Overlay: a red dot that follows real mousemove events. Idempotent IIFE so it works both as
|
|
22
24
|
* an addInitScript source string AND when passed to page.evaluate. */
|
|
23
25
|
export const CURSOR_OVERLAY = `(() => {
|
|
@@ -37,6 +39,10 @@ export const CURSOR_OVERLAY = `(() => {
|
|
|
37
39
|
}, true);
|
|
38
40
|
})();`;
|
|
39
41
|
const rand = (a, b) => a + Math.random() * (b - a);
|
|
42
|
+
const clamp = (v, lo, hi) => Math.max(lo, Math.min(hi, v));
|
|
43
|
+
// Same unseeded live source as rand() — the seeded persona rng stays inside motion.ts, this is only
|
|
44
|
+
// for placing a point in a plausible spread instead of on an exact landmark.
|
|
45
|
+
const gauss = () => gaussFrom(Math.random);
|
|
40
46
|
const sleep = (ms) => new Promise((r) => setTimeout(r, ms));
|
|
41
47
|
// Compact keyboard-adjacency map for realistic fat-finger typos.
|
|
42
48
|
const NEARBY = {
|
|
@@ -88,11 +94,18 @@ export async function attachHumanize(browser, page, opts) {
|
|
|
88
94
|
const persona = makePersona(opts.seed);
|
|
89
95
|
page._clearcotePersona = persona;
|
|
90
96
|
// Tracked cursor position so each move continues from where the last one ended.
|
|
91
|
-
|
|
97
|
+
// `held` tracks whether a mouse button is currently down — see mouse.move below.
|
|
98
|
+
// `placed` records whether the engine's cursor has actually been moved yet. A page starts with the
|
|
99
|
+
// pointer at the default origin, so anything that delivers input WITHOUT a target to move to —
|
|
100
|
+
// a wheel, a mouse.down that opens a drag, a bare keyboard.type — otherwise happens from a cursor
|
|
101
|
+
// that has never been anywhere. The guarantees below key off this flag.
|
|
102
|
+
const st = { x: rand(140, 380), y: rand(90, 240), held: false, placed: false };
|
|
92
103
|
const mouse = page.mouse;
|
|
93
104
|
const nativeMove = mouse.move.bind(mouse);
|
|
94
105
|
const nativeClick = mouse.click.bind(mouse);
|
|
95
106
|
const nativeWheel = mouse.wheel.bind(mouse);
|
|
107
|
+
const nativeDown = mouse.down.bind(mouse);
|
|
108
|
+
const nativeUp = mouse.up.bind(mouse);
|
|
96
109
|
// Walk a planned trajectory (motion.ts) with native (trusted) mouse.move + off-protocol sleeps.
|
|
97
110
|
// Native input carries the button state, so a button pressed via mouse.down() stays held across
|
|
98
111
|
// the whole path — the same code powers a free move AND a held-button drag.
|
|
@@ -104,6 +117,7 @@ export async function attachHumanize(browser, page, opts) {
|
|
|
104
117
|
catch {
|
|
105
118
|
break;
|
|
106
119
|
}
|
|
120
|
+
st.placed = true;
|
|
107
121
|
await sleep(s.sleepMs);
|
|
108
122
|
}
|
|
109
123
|
};
|
|
@@ -135,12 +149,19 @@ export async function attachHumanize(browser, page, opts) {
|
|
|
135
149
|
const dist = Math.sqrt(dx * dx + dy * dy);
|
|
136
150
|
const dur = Math.min(1.10, Math.max(0.28, 0.30 + dist / 1700)) * (0.85 + 0.30 * Math.random());
|
|
137
151
|
await eng.session.send("Browser.humanizedClick", { targetId: eng.tid, x, y, duration: dur, noClick });
|
|
152
|
+
// The engine walks the trajectory in the BROWSER process and answers this command before it
|
|
153
|
+
// has finished. Without waiting, a following mouse.down() fires at the cursor's STALE
|
|
154
|
+
// position — measured: a move to (110,58) then a press landed at (981,629), on <body>
|
|
155
|
+
// instead of the target, so every move-then-press sequence (drag, press-and-hold,
|
|
156
|
+
// drag-and-drop) acted on the wrong element.
|
|
157
|
+
await sleep(dur * 1000);
|
|
138
158
|
try {
|
|
139
159
|
await nativeMove(x, y);
|
|
140
160
|
}
|
|
141
161
|
catch { /* keep playwright cursor pos in sync for drags */ }
|
|
142
162
|
st.x = x;
|
|
143
163
|
st.y = y;
|
|
164
|
+
st.placed = true;
|
|
144
165
|
return true;
|
|
145
166
|
}
|
|
146
167
|
catch {
|
|
@@ -148,8 +169,121 @@ export async function attachHumanize(browser, page, opts) {
|
|
|
148
169
|
return false;
|
|
149
170
|
}
|
|
150
171
|
};
|
|
151
|
-
|
|
152
|
-
|
|
172
|
+
// The REAL viewport, in CSS px — NOT page.viewportSize().
|
|
173
|
+
//
|
|
174
|
+
// installHeadedViewport (index.ts) forces `viewport: null` on every headed newPage/newContext,
|
|
175
|
+
// and launchPersistentContext does the same, so that innerWidth tracks the real OS window
|
|
176
|
+
// instead of Playwright's emulated 1280x720 (an emulated viewport on a headed window is itself
|
|
177
|
+
// a tell). With viewport:null, viewportSize() returns null for the LIFE of the page — so the
|
|
178
|
+
// `|| {1280, 800}` fallback was taken on every headed launch, and the scroll anchor's
|
|
179
|
+
// "is the pointer inside the viewport" gate was evaluated against a box unrelated to the
|
|
180
|
+
// window. On a maximized display a cursor legitimately at x=1400 read as out-of-bounds and got
|
|
181
|
+
// re-homed on EVERY scroll — precisely the behaviour that gate exists to prevent.
|
|
182
|
+
// innerWidth/innerHeight are correct in both modes; the constant is a last resort only.
|
|
183
|
+
let vpCache = null;
|
|
184
|
+
const viewport = async () => {
|
|
185
|
+
try {
|
|
186
|
+
const wh = (await page.evaluate("() => [innerWidth, innerHeight]"));
|
|
187
|
+
if (wh && wh[0] && wh[1]) {
|
|
188
|
+
vpCache = { width: wh[0], height: wh[1] };
|
|
189
|
+
return vpCache;
|
|
190
|
+
}
|
|
191
|
+
}
|
|
192
|
+
catch { /* detached/navigating — fall through */ }
|
|
193
|
+
return (page.viewportSize && page.viewportSize()) || vpCache || { width: 1280, height: 800 };
|
|
194
|
+
};
|
|
195
|
+
// Non-goal cursor activity (idle drift + a few excursions). It never presses a button and never
|
|
196
|
+
// approaches a caller-named target, so it is also the safe way to give the cursor a position when
|
|
197
|
+
// an action needs one but names no coordinates.
|
|
198
|
+
const ambient = async (ms) => {
|
|
199
|
+
try {
|
|
200
|
+
const steps = planAmbient(st, await viewport(), persona, ms);
|
|
201
|
+
await dispatch(steps);
|
|
202
|
+
if (steps.length) {
|
|
203
|
+
st.x = steps[steps.length - 1].x;
|
|
204
|
+
st.y = steps[steps.length - 1].y;
|
|
205
|
+
}
|
|
206
|
+
}
|
|
207
|
+
catch { /* best-effort ambient */ }
|
|
208
|
+
};
|
|
209
|
+
// Give the cursor a position for input that names no coordinates (a bare keyboard.type). It is
|
|
210
|
+
// ambient only: it never presses, so it cannot activate anything it happens to pass over.
|
|
211
|
+
//
|
|
212
|
+
// NOT used before mouse.down — see that wrapper. Before any real move st.x/st.y is the RANDOM
|
|
213
|
+
// SEED assigned at attach, so pressing at the end of this walk would put a TRUSTED click at an
|
|
214
|
+
// arbitrary page coordinate the caller never named, which can land on a link and navigate.
|
|
215
|
+
const ensurePlaced = async () => {
|
|
216
|
+
if (st.placed)
|
|
217
|
+
return;
|
|
218
|
+
await ambient(rand(260, 560));
|
|
219
|
+
if (!st.placed) {
|
|
220
|
+
try {
|
|
221
|
+
await nativeMove(st.x, st.y);
|
|
222
|
+
st.placed = true;
|
|
223
|
+
}
|
|
224
|
+
catch { /* best-effort placement */ }
|
|
225
|
+
}
|
|
226
|
+
};
|
|
227
|
+
// A HELD BUTTON MUST STAY ON THE NATIVE PATH. The engine trajectory builds its own
|
|
228
|
+
// WebMouseEvents and cannot hold a button across them, so routing a drag leg through it emits
|
|
229
|
+
// moves reporting MouseEvent.buttons 0 in the middle of a press. That is both a contradiction no
|
|
230
|
+
// real mouse produces (buttons is derived from physical state) and a functional break — a range
|
|
231
|
+
// thumb, a map or a drop target ignores a move that says nothing is down. Measured before this
|
|
232
|
+
// guard: 672 of 829 held moves reported buttons 0, and a slider dragged 10%->90% never left 0.
|
|
233
|
+
// A BARE MOVE ALWAYS USES THE NATIVE PATH — never the engine trajectory. Two independent
|
|
234
|
+
// reasons, both measured on the Python sync file which shares this design:
|
|
235
|
+
// * a held button cannot be carried across the engine's own WebMouseEvents, so a drag leg
|
|
236
|
+
// routed through it reports MouseEvent.buttons 0 mid-press and a range thumb ignores it
|
|
237
|
+
// (349 of 354 held moves reported buttons 0; the slider moved 0 -> 1 and stopped);
|
|
238
|
+
// * the engine walks its path ASYNCHRONOUSLY in the browser process and answers before it has
|
|
239
|
+
// finished, so it keeps moving the cursor AFTER the pre-press pin in mouse.down — a move to
|
|
240
|
+
// (56,120) then down() pressed on HTML at (856,213) instead of the INPUT, and the slider
|
|
241
|
+
// stayed at 0. Re-pinning right before the press does not help; the overrun outlives it.
|
|
242
|
+
// mouse.click keeps engine routing: it performs move+click entirely engine-side, where nothing
|
|
243
|
+
// races the trajectory. glide() is still fully humanized (minimum-jerk, colored noise, Fitts).
|
|
244
|
+
mouse.move = async (x, y) => {
|
|
245
|
+
await glide(x, y);
|
|
246
|
+
};
|
|
247
|
+
// down/up are wrapped to TRACK the held state mouse.move needs, and — critically — to make the
|
|
248
|
+
// press position DETERMINISTIC. The engine answers humanizedClick before its trajectory has
|
|
249
|
+
// finished walking, and it overruns the `duration` it reports, so sleeping that duration is not
|
|
250
|
+
// enough: measured on Node, a move to (110,58) was still mid-flight at (416,504) when the press
|
|
251
|
+
// fired, landing on <body>. Re-issuing a native move to the tracked target immediately before
|
|
252
|
+
// the press pins the cursor to where the caller asked, whatever the trajectory is doing.
|
|
253
|
+
mouse.down = async (...a) => {
|
|
254
|
+
// DELIBERATELY NO PLACEMENT WHEN THE POINTER HAS NEVER MOVED.
|
|
255
|
+
//
|
|
256
|
+
// An earlier revision called ensurePlaced() here and pressed wherever the ambient walk ended.
|
|
257
|
+
// But before any real move st.x/st.y is the RANDOM SEED assigned at attach — not a coordinate
|
|
258
|
+
// the caller named — so that converted a harmless no-op press at the origin into a TRUSTED
|
|
259
|
+
// click at an arbitrary point on the page, which can hit a link and navigate. That is a worse
|
|
260
|
+
// failure than the one it was meant to fix. A bare down() with no preceding move is a caller
|
|
261
|
+
// mistake, and humanize must not invent a target to paper over it; callers who want a
|
|
262
|
+
// humanized drag move first, and that move glides and sets `placed`.
|
|
263
|
+
if (st.placed) {
|
|
264
|
+
// Re-pin only once a real move has happened — that is what makes st.x/st.y correspond to
|
|
265
|
+
// where the engine's cursor actually is. The engine answers humanizedClick before its
|
|
266
|
+
// trajectory has finished, so without this the press can fire at a stale position.
|
|
267
|
+
try {
|
|
268
|
+
await nativeMove(st.x, st.y);
|
|
269
|
+
}
|
|
270
|
+
catch { /* best effort: keep the press on target */ }
|
|
271
|
+
}
|
|
272
|
+
st.held = true;
|
|
273
|
+
try {
|
|
274
|
+
return await nativeDown(...a);
|
|
275
|
+
}
|
|
276
|
+
catch (e) {
|
|
277
|
+
st.held = false; // a raising press must not strand held=true and make every later move a drag leg
|
|
278
|
+
throw e;
|
|
279
|
+
}
|
|
280
|
+
};
|
|
281
|
+
mouse.up = async (...a) => { try {
|
|
282
|
+
return await nativeUp(...a);
|
|
283
|
+
}
|
|
284
|
+
finally {
|
|
285
|
+
st.held = false;
|
|
286
|
+
} };
|
|
153
287
|
mouse.click = async (x, y) => {
|
|
154
288
|
if (await engineGlide(x, y, false))
|
|
155
289
|
return;
|
|
@@ -164,18 +298,7 @@ export async function attachHumanize(browser, page, opts) {
|
|
|
164
298
|
// Opt-in ambient / pre-challenge cursor activity: idle drift + a few non-goal moves so a behavioral
|
|
165
299
|
// collector sees non-zero pointer entropy BEFORE the first goal action (the biggest reason a
|
|
166
300
|
// challenge/slider is shown to headless automation). `await page.ambientMotion(ms)`.
|
|
167
|
-
page.ambientMotion = async (ms = 1200) => {
|
|
168
|
-
try {
|
|
169
|
-
const vp = (page.viewportSize && page.viewportSize()) || { width: 1280, height: 800 };
|
|
170
|
-
const steps = planAmbient(st, { width: vp.width, height: vp.height }, persona, ms);
|
|
171
|
-
await dispatch(steps);
|
|
172
|
-
if (steps.length) {
|
|
173
|
-
st.x = steps[steps.length - 1].x;
|
|
174
|
-
st.y = steps[steps.length - 1].y;
|
|
175
|
-
}
|
|
176
|
-
}
|
|
177
|
-
catch { /* best-effort ambient */ }
|
|
178
|
-
};
|
|
301
|
+
page.ambientMotion = async (ms = 1200) => { await ambient(ms); };
|
|
179
302
|
// Held-button drag leg with the seating jiggle (settle), reachable from the module-level
|
|
180
303
|
// Locator.dragTo patch (which can't see this closure) via the page object.
|
|
181
304
|
page._clearcoteHeldGlide = async (x, y) => { await glide(x, y, { settle: true }); };
|
|
@@ -186,8 +309,31 @@ export async function attachHumanize(browser, page, opts) {
|
|
|
186
309
|
Promise.resolve(page.ambientMotion(rand(450, 950))).catch(() => { });
|
|
187
310
|
}
|
|
188
311
|
});
|
|
312
|
+
// A wheel event carries the pointer position, and until something moves the cursor that position
|
|
313
|
+
// is the default origin — so a scroll right after a page load reported the mouse parked in the
|
|
314
|
+
// corner, over nothing it was scrolling, while the deltas rolled down the middle of the document.
|
|
315
|
+
// Move to where someone reading this page would have left the cursor first.
|
|
316
|
+
//
|
|
317
|
+
// Only when the current position is unusable (never placed, or outside the viewport). A hand does
|
|
318
|
+
// not lift off the mouse between two scrolls of the same page, so re-homing on every wheel call
|
|
319
|
+
// would replace one tell with another.
|
|
320
|
+
const scrollAnchor = async () => {
|
|
321
|
+
try {
|
|
322
|
+
const vp = await viewport();
|
|
323
|
+
if (st.placed && st.x > 6 && st.y > 6 && st.x < vp.width - 6 && st.y < vp.height - 6)
|
|
324
|
+
return;
|
|
325
|
+
// Upper-middle of the reading column, gaussian-jittered: an exact viewport centre is as
|
|
326
|
+
// machine-made as the origin is, so the anchor has to be a distribution, not a landmark.
|
|
327
|
+
const x = clamp(vp.width * 0.48 + gauss() * vp.width * 0.10, vp.width * 0.18, vp.width * 0.82);
|
|
328
|
+
const y = clamp(vp.height * 0.36 + gauss() * vp.height * 0.09, vp.height * 0.14, vp.height * 0.62);
|
|
329
|
+
await glide(x, y);
|
|
330
|
+
await sleep(rand(60, 180)); // eyes land before the finger rolls the wheel
|
|
331
|
+
}
|
|
332
|
+
catch { /* best-effort: scroll from wherever the cursor is */ }
|
|
333
|
+
};
|
|
189
334
|
// scroll easing: break into eased chunks of native wheel deltas
|
|
190
335
|
mouse.wheel = async (dx, dy) => {
|
|
336
|
+
await scrollAnchor();
|
|
191
337
|
const steps = Math.max(5, Math.min(24, Math.round((Math.abs(dx) + Math.abs(dy)) / 60)));
|
|
192
338
|
const ease = (u) => 1 - Math.pow(1 - u, 2.2); // ease-OUT: fast flick -> slow inertial settle
|
|
193
339
|
let px = 0, py = 0;
|
|
@@ -203,6 +349,14 @@ export async function attachHumanize(browser, page, opts) {
|
|
|
203
349
|
await sleep(rand(10, 38));
|
|
204
350
|
if (Math.random() < 0.07)
|
|
205
351
|
await sleep(rand(40, 120)); // occasional mid-scroll pause (reading)
|
|
352
|
+
// A hand resting on the mouse does not hold it perfectly still through a long scroll. Without
|
|
353
|
+
// this a wheel burst is the one input where the pointer coordinate never changes at all.
|
|
354
|
+
if (steps >= 10 && i > 2 && i < steps && Math.random() < 0.06) {
|
|
355
|
+
try {
|
|
356
|
+
await glide(st.x + gauss() * 3.5, st.y + gauss() * 2.5);
|
|
357
|
+
}
|
|
358
|
+
catch { /* drift is cosmetic */ }
|
|
359
|
+
}
|
|
206
360
|
}
|
|
207
361
|
if (px !== dx || py !== dy)
|
|
208
362
|
await nativeWheel(dx - px, dy - py);
|
|
@@ -256,7 +410,23 @@ export async function attachHumanize(browser, page, opts) {
|
|
|
256
410
|
}
|
|
257
411
|
}
|
|
258
412
|
};
|
|
259
|
-
|
|
413
|
+
// Keystrokes from a session in which the mouse never existed. Selector-based typing glides to the
|
|
414
|
+
// field first (focusClick), but page.keyboard.type/press names no target, and on a page focused by
|
|
415
|
+
// autofocus or by Tab it can be the first input of any kind — a keydown stream with zero preceding
|
|
416
|
+
// pointer events is one of the cheapest checks a collector can run.
|
|
417
|
+
//
|
|
418
|
+
// AMBIENT ONLY. Deliberately NOT a move toward the focused field: the caller has already chosen
|
|
419
|
+
// where the text goes, and approaching that element would hover it (and, on a control that reacts
|
|
420
|
+
// to hover, move it) for no behavioral gain. Once per page — after that the cursor has a history,
|
|
421
|
+
// and warming up before every keystroke would itself be the anomaly.
|
|
422
|
+
let kbWarmed = false;
|
|
423
|
+
const keyboardWarmup = async () => {
|
|
424
|
+
if (kbWarmed || st.placed)
|
|
425
|
+
return;
|
|
426
|
+
kbWarmed = true;
|
|
427
|
+
await ambient(rand(280, 620));
|
|
428
|
+
};
|
|
429
|
+
keyboard.type = async (text) => { await keyboardWarmup(); await humanTypeText(text); };
|
|
260
430
|
// keyboard.press with the persona's hold, unless the caller specified their own.
|
|
261
431
|
//
|
|
262
432
|
// WHY THIS EXISTS. keyboard.type was humanised from the start and keyboard.press was not, which
|
|
@@ -269,6 +439,7 @@ export async function attachHumanize(browser, page, opts) {
|
|
|
269
439
|
// The caller's own `delay` wins: press(key, {delay}) is the documented way to hold a key for a
|
|
270
440
|
// specific time, and silently overriding it would break that. Only the DEFAULT changes.
|
|
271
441
|
keyboard.press = async (key, options = {}) => {
|
|
442
|
+
await keyboardWarmup();
|
|
272
443
|
const opts = options && typeof options === "object" ? options : {};
|
|
273
444
|
if (opts.delay === undefined)
|
|
274
445
|
opts.delay = keyDwell(persona);
|
|
@@ -315,6 +486,7 @@ export async function attachHumanize(browser, page, opts) {
|
|
|
315
486
|
const nativePageFill = page.fill.bind(page);
|
|
316
487
|
const nativePagePress = page.press.bind(page);
|
|
317
488
|
const nativePageDblclick = page.dblclick.bind(page);
|
|
489
|
+
const nativePageSelect = page.selectOption ? page.selectOption.bind(page) : null;
|
|
318
490
|
page.type = async (selector, text, options = {}) => {
|
|
319
491
|
try {
|
|
320
492
|
const timeout = options.timeout ?? 30000;
|
|
@@ -382,6 +554,35 @@ export async function attachHumanize(browser, page, opts) {
|
|
|
382
554
|
return nativePagePress(selector, key, options);
|
|
383
555
|
}
|
|
384
556
|
};
|
|
557
|
+
// page.selectOption was the last input method humanize did not touch, so a script that used it —
|
|
558
|
+
// rather than locator.selectOption, which has been patched for a while — went straight to
|
|
559
|
+
// Playwright's implementation: assign the value, dispatch input+change from page script. That is
|
|
560
|
+
// measurably scored: it fails 'interaction-select-change-trust' on clearcotelabs.com/audit,
|
|
561
|
+
// because no user gesture can produce a change event with isTrusted false.
|
|
562
|
+
//
|
|
563
|
+
// The move is a HOVER, not a click: clicking a <select> opens the native popup, and the popup
|
|
564
|
+
// swallows the arrow keys the trusted path steps the selection with. A person's pointer is on the
|
|
565
|
+
// dropdown they are choosing from either way.
|
|
566
|
+
if (nativePageSelect) {
|
|
567
|
+
page.selectOption = async (selector, values, options = {}) => {
|
|
568
|
+
const timeout = options.timeout ?? 30000;
|
|
569
|
+
try {
|
|
570
|
+
const pt = await pointFor(selector, timeout);
|
|
571
|
+
if (pt) {
|
|
572
|
+
await glide(pt.x, pt.y);
|
|
573
|
+
await sleep(rand(50, 150));
|
|
574
|
+
}
|
|
575
|
+
}
|
|
576
|
+
catch { /* the pre-move is best-effort; a trusted selection still beats a native one */ }
|
|
577
|
+
try {
|
|
578
|
+
const got = await trustedSelect(page, selector, values, timeout);
|
|
579
|
+
if (got)
|
|
580
|
+
return got;
|
|
581
|
+
}
|
|
582
|
+
catch { /* fall back */ }
|
|
583
|
+
return nativePageSelect(selector, values, options);
|
|
584
|
+
};
|
|
585
|
+
}
|
|
385
586
|
const wrapTargeted = (name, noClick) => {
|
|
386
587
|
const orig = page[name].bind(page);
|
|
387
588
|
page[name] = async (selector, options = {}) => {
|
|
@@ -434,6 +635,84 @@ export async function attachHumanize(browser, page, opts) {
|
|
|
434
635
|
page._clearcoteHumanized = true;
|
|
435
636
|
patchLocatorClass(page.locator("html"));
|
|
436
637
|
}
|
|
638
|
+
/** Choose a <select> option with the keyboard, so the ENGINE fires the events. Returns Playwright's
|
|
639
|
+
* `[value]` result once the selection is VERIFIED, or null when the keyboard route cannot be shown
|
|
640
|
+
* to have worked and the caller should fall back to native.
|
|
641
|
+
*
|
|
642
|
+
* Playwright's selectOption assigns the value and dispatches input+change from script. Those arrive
|
|
643
|
+
* with isTrusted false, which is the single most reliable dropdown tell there is — the engine cannot
|
|
644
|
+
* produce an untrusted change, so a page reading the flag knows the selection was not made by a
|
|
645
|
+
* person. A <select> that has focus and is CLOSED steps on ArrowUp/ArrowDown and the browser emits
|
|
646
|
+
* input then change itself, trusted, exactly as it does for a mouse. The fix is not to forge better
|
|
647
|
+
* events, it is to stop forging them.
|
|
648
|
+
*
|
|
649
|
+
* Returns null whenever that cannot be guaranteed: a multi- or disabled select, an option that
|
|
650
|
+
* cannot be resolved, an ElementHandle target, or a platform where arrows open the popup instead of
|
|
651
|
+
* stepping (macOS). selectedIndex is verified afterwards rather than assumed — a silently wrong
|
|
652
|
+
* selection is worse than an untrusted one. */
|
|
653
|
+
async function trustedSelect(page, selector, values, timeout) {
|
|
654
|
+
try {
|
|
655
|
+
const one = (v) => (Array.isArray(v) && v.length === 1 ? v[0] : v);
|
|
656
|
+
const v = one(values);
|
|
657
|
+
let by = null, want = null;
|
|
658
|
+
if (v && typeof v === "object" && !v.constructor?.name?.includes("ElementHandle")) {
|
|
659
|
+
if (v.index != null) {
|
|
660
|
+
by = "index";
|
|
661
|
+
want = v.index;
|
|
662
|
+
}
|
|
663
|
+
else if (v.label != null) {
|
|
664
|
+
by = "label";
|
|
665
|
+
want = v.label;
|
|
666
|
+
}
|
|
667
|
+
else if (v.value != null) {
|
|
668
|
+
by = "value";
|
|
669
|
+
want = v.value;
|
|
670
|
+
}
|
|
671
|
+
}
|
|
672
|
+
else if (typeof v === "string") {
|
|
673
|
+
by = "value";
|
|
674
|
+
want = v;
|
|
675
|
+
}
|
|
676
|
+
if (by === null)
|
|
677
|
+
return null;
|
|
678
|
+
const plan = await page.evaluate((a) => {
|
|
679
|
+
const el = globalThis.document.querySelector(a.sel);
|
|
680
|
+
if (!el || el.multiple || el.disabled)
|
|
681
|
+
return null;
|
|
682
|
+
const os = [...el.options];
|
|
683
|
+
let i = -1;
|
|
684
|
+
if (a.by === "index")
|
|
685
|
+
i = a.want >= 0 && a.want < os.length ? a.want : -1;
|
|
686
|
+
else if (a.by === "label")
|
|
687
|
+
i = os.findIndex((o) => (o.label || o.textContent || "").trim() === String(a.want).trim());
|
|
688
|
+
else
|
|
689
|
+
i = os.findIndex((o) => o.value === a.want);
|
|
690
|
+
if (i < 0 || os[i].disabled)
|
|
691
|
+
return null;
|
|
692
|
+
return { to: i, from: el.selectedIndex, ret: os[i].value };
|
|
693
|
+
}, { sel: selector, by, want });
|
|
694
|
+
if (!plan)
|
|
695
|
+
return null;
|
|
696
|
+
if (plan.to === plan.from)
|
|
697
|
+
return [plan.ret]; // already selected; forge nothing
|
|
698
|
+
await page.focus(selector, { timeout });
|
|
699
|
+
await sleep(rand(60, 160));
|
|
700
|
+
const step = plan.to > plan.from ? "ArrowDown" : "ArrowUp";
|
|
701
|
+
for (let i = 0; i < Math.abs(plan.to - plan.from); i++) {
|
|
702
|
+
// page.keyboard.press — humanized by attachHumanize, so the hold comes with it.
|
|
703
|
+
await page.keyboard.press(step);
|
|
704
|
+
await sleep(rand(45, 120));
|
|
705
|
+
}
|
|
706
|
+
const got = await page.evaluate((q) => {
|
|
707
|
+
const e = globalThis.document.querySelector(q);
|
|
708
|
+
return e ? e.selectedIndex : -1;
|
|
709
|
+
}, selector);
|
|
710
|
+
if (got === plan.to)
|
|
711
|
+
return [plan.ret];
|
|
712
|
+
}
|
|
713
|
+
catch { /* fall back */ }
|
|
714
|
+
return null;
|
|
715
|
+
}
|
|
437
716
|
// --------------------------------------------------------------------------- locator patch
|
|
438
717
|
let locatorPatched = false;
|
|
439
718
|
/** Patch the Locator prototype once so locator.* interactions route through the humanized page.*
|
|
@@ -564,81 +843,12 @@ function patchLocatorClass(sample) {
|
|
|
564
843
|
}
|
|
565
844
|
return oUncheck.call(this, kw);
|
|
566
845
|
};
|
|
567
|
-
/** Choose a <select> option with the keyboard, so the ENGINE fires the events.
|
|
568
|
-
*
|
|
569
|
-
* Playwright's selectOption assigns the value and dispatches input+change from script. Those
|
|
570
|
-
* arrive with isTrusted false, which is the single most reliable dropdown tell there is — the
|
|
571
|
-
* engine cannot produce an untrusted change, so a page reading the flag knows the selection was
|
|
572
|
-
* not made by a person. A <select> that has focus and is CLOSED steps on ArrowUp/ArrowDown and
|
|
573
|
-
* the browser emits input then change itself, trusted, exactly as it does for a mouse. The fix
|
|
574
|
-
* is not to forge better events, it is to stop forging them.
|
|
575
|
-
*
|
|
576
|
-
* Falls back to native whenever the keyboard route cannot be SHOWN to have worked: a multi- or
|
|
577
|
-
* disabled select, an option that cannot be resolved, an ElementHandle target, or a platform
|
|
578
|
-
* where arrows open the popup instead of stepping (macOS). selectedIndex is verified afterwards
|
|
579
|
-
* rather than assumed — a silently wrong selection is worse than an untrusted one. */
|
|
580
846
|
proto.selectOption = async function (values, kw = {}) {
|
|
847
|
+
// Routed through the page method (which glides to the control first) rather than calling
|
|
848
|
+
// trustedSelect straight, so a locator selection gets the same pre-move as a locator click.
|
|
581
849
|
if (on(this)) {
|
|
582
850
|
try {
|
|
583
|
-
|
|
584
|
-
const v = one(values);
|
|
585
|
-
let by = null, want = null;
|
|
586
|
-
if (v && typeof v === "object" && !v.constructor?.name?.includes("ElementHandle")) {
|
|
587
|
-
if (v.index != null) {
|
|
588
|
-
by = "index";
|
|
589
|
-
want = v.index;
|
|
590
|
-
}
|
|
591
|
-
else if (v.label != null) {
|
|
592
|
-
by = "label";
|
|
593
|
-
want = v.label;
|
|
594
|
-
}
|
|
595
|
-
else if (v.value != null) {
|
|
596
|
-
by = "value";
|
|
597
|
-
want = v.value;
|
|
598
|
-
}
|
|
599
|
-
}
|
|
600
|
-
else if (typeof v === "string") {
|
|
601
|
-
by = "value";
|
|
602
|
-
want = v;
|
|
603
|
-
}
|
|
604
|
-
if (by !== null) {
|
|
605
|
-
const page = this.page();
|
|
606
|
-
const s = sel(this);
|
|
607
|
-
const plan = await page.evaluate((a) => {
|
|
608
|
-
const el = globalThis.document.querySelector(a.sel);
|
|
609
|
-
if (!el || el.multiple || el.disabled)
|
|
610
|
-
return null;
|
|
611
|
-
const os = [...el.options];
|
|
612
|
-
let i = -1;
|
|
613
|
-
if (a.by === "index")
|
|
614
|
-
i = a.want >= 0 && a.want < os.length ? a.want : -1;
|
|
615
|
-
else if (a.by === "label")
|
|
616
|
-
i = os.findIndex((o) => (o.label || o.textContent || "").trim() === String(a.want).trim());
|
|
617
|
-
else
|
|
618
|
-
i = os.findIndex((o) => o.value === a.want);
|
|
619
|
-
if (i < 0 || os[i].disabled)
|
|
620
|
-
return null;
|
|
621
|
-
return { to: i, from: el.selectedIndex, ret: os[i].value };
|
|
622
|
-
}, { sel: s, by, want });
|
|
623
|
-
if (plan && plan.to === plan.from)
|
|
624
|
-
return [plan.ret]; // already selected; forge nothing
|
|
625
|
-
if (plan) {
|
|
626
|
-
await this.focus();
|
|
627
|
-
await sleep(rand(60, 160));
|
|
628
|
-
const step = plan.to > plan.from ? "ArrowDown" : "ArrowUp";
|
|
629
|
-
for (let i = 0; i < Math.abs(plan.to - plan.from); i++) {
|
|
630
|
-
// page.keyboard.press — humanized above, so the hold comes with it.
|
|
631
|
-
await page.keyboard.press(step);
|
|
632
|
-
await sleep(rand(45, 120));
|
|
633
|
-
}
|
|
634
|
-
const got = await page.evaluate((q) => {
|
|
635
|
-
const e = globalThis.document.querySelector(q);
|
|
636
|
-
return e ? e.selectedIndex : -1;
|
|
637
|
-
}, s);
|
|
638
|
-
if (got === plan.to)
|
|
639
|
-
return [plan.ret];
|
|
640
|
-
}
|
|
641
|
-
}
|
|
851
|
+
return await this.page().selectOption(sel(this), values, fwd(kw));
|
|
642
852
|
}
|
|
643
853
|
catch { /* fall back */ }
|
|
644
854
|
}
|
package/dist/humanize.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"humanize.js","sourceRoot":"","sources":["../src/humanize.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"humanize.js","sourceRoot":"","sources":["../src/humanize.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "clearcote",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.21.0",
|
|
4
4
|
"description": "Playwright drop-in for the Clearcote anti-fingerprint Chromium build. launch() returns a standard Playwright Browser backed by the verified Clearcote binary, which is auto-downloaded and SHA-256 checked.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "./dist/index.js",
|