UNPKG

ghost-cursor-patchright-core

Version:

Move your mouse like a human in puppeteer and playwright or generate realistic movements on any 2D plane

57 lines (56 loc) 2.47 kB
import type { Page as CorePage, Frame as CoreFrame } from 'patchright-core'; import type { Page as PlaywrightPage, Frame as PlaywrightFrame } from 'playwright-core'; import { type Vector, type TimedVector } from './math'; export { default as installMouseHelper } from './mouse-helper'; export { type Vector } from './math'; type Page = CorePage | PlaywrightPage; type Frame = CoreFrame | PlaywrightFrame; export interface BoundingBox { x: number; y: number; width: number; height: number; } export interface BoxOptions { readonly paddingPercentage?: number; } export interface MoveOptions extends BoxOptions, Pick<PathOptions, 'moveSpeed'> { readonly waitForSelector?: number; readonly moveDelay?: number; readonly randomizeMoveDelay?: boolean; readonly maxTries?: number; readonly overshootThreshold?: number; } export interface ClickOptions extends MoveOptions { readonly waitForClick?: number; readonly microJitter?: boolean; readonly dynamicAdjustment?: boolean; } export interface PathOptions { readonly spreadOverride?: number; readonly moveSpeed?: number; readonly useTimestamps?: boolean; readonly noiseScale?: number; readonly endpointNoise?: boolean; } export interface RandomMoveOptions extends Pick<MoveOptions, 'moveDelay' | 'randomizeMoveDelay' | 'moveSpeed'> { } export interface MoveToOptions extends PathOptions, Pick<MoveOptions, 'moveDelay' | 'randomizeMoveDelay'> { } export interface GhostCursor { toggleRandomMove: (random: boolean) => void; click: (selector?: string, options?: ClickOptions) => Promise<void>; move: (selector: string, options?: MoveOptions) => Promise<void>; moveTo: (destination: Vector, options?: MoveToOptions) => Promise<void>; getLocation: () => Vector; } /** Get a random point on a browser page using viewport size - Always uses Page */ export declare const getRandomPagePoint: (page: Page) => Promise<Vector>; export declare function path(point: Vector, target: Vector, options?: number | PathOptions): Vector[] | TimedVector[]; export declare function path(point: Vector, target: BoundingBox, options?: number | PathOptions): Vector[] | TimedVector[]; export declare const createCursor: (page: Page, start?: Vector, performRandomMovesInitially?: boolean, defaultOptions?: { randomMove?: RandomMoveOptions; move?: MoveOptions; moveTo?: MoveToOptions; click?: ClickOptions; }, frame?: Frame | null) => GhostCursor;