UNPKG

kayle

Version:

Extremely fast and accurate accessibility engine built for any headless tool like playwright or puppeteer.

217 lines (216 loc) 7.52 kB
/// <reference types="node" /> import { Watcher } from "./watcher"; import type { Runner } from "./runner-js"; type Permission = "geolocation" | "midi" | "notifications" | "camera" | "microphone" | "background-sync" | "ambient-light-sensor" | "accelerometer" | "gyroscope" | "magnetometer" | "accessibility-events" | "clipboard-read" | "clipboard-write" | "payment-handler" | "persistent-storage" | "idle-detection" | "midi-sysex"; type Awaitable<T> = T | PromiseLike<T>; type FlattenHandle<T> = T; type InnerParams<T extends unknown[]> = { [K in keyof T]: FlattenHandle<T[K]>; }; type EvaluateFunc<T extends unknown[]> = (...params: InnerParams<T>) => Awaitable<unknown>; type Frame = { [x: string]: any; }; type BrowserContext = { browser?(): Browser | null; close(): Promise<void>; pages?(): Partial<Page>[]; targets?(): Target[]; newCDPSession?(page: Partial<Page> | Frame): Partial<CDPSession>; overridePermissions?(origin: string, permissions: Permission[]): Promise<void>; }; type Browser = { newPage(): Promise<any>; wsEndpoint?(): string; createIncognitoBrowserContext?(): Promise<BrowserContext | any>; }; declare abstract class JSHandle<T = unknown> { } declare abstract class ElementHandle<ElementType extends Node = Element> extends JSHandle<ElementType> { } type Target = { createCDPSession?(): Promise<CDPSession>; }; export type LifeCycleEvent = "load" | "domcontentloaded" | "commit" | "networkidle" | "networkidle0" | "networkidle2"; export type WaitForOptions = { timeout?: number; waitUntil?: LifeCycleEvent | LifeCycleEvent[] | string; }; declare interface WaitTimeoutOptions { timeout?: number; } declare interface WaitForNetworkIdleOptions extends WaitTimeoutOptions { idleTime?: number; concurrency?: number; } type DefaultMouseActions = { delay?: number; clickCount?: number; button?: "left" | "right" | "middle"; } | number; type Point = { x?: number; y?: number; }; type MouseActions = { dragAndDrop?(source: Point, target: Point, options?: { delay?: number; }): Promise<void>; up?(source: number | Readonly<DefaultMouseActions> | unknown, target?: number): Promise<void>; down?(source: number | Readonly<DefaultMouseActions> | unknown, target?: number): Promise<void>; move?(source: number, target: number): Promise<void>; wheel?(deltaX: number | Readonly<{ x: number; y: number; }> | unknown, deltaY?: number): Promise<void>; reset?(): Promise<void>; click?(source: number, target: number, options?: { delay?: number; clickCount?: number; button?: "left" | "right" | "middle"; }): Promise<void>; dblclick?(source: number, target: number, options?: { delay?: number; clickCount?: number; button?: "left" | "right" | "middle"; }): Promise<void>; }; type Page = { goto(url: string, options?: WaitForOptions): Promise<any | null>; setContent(html: string, options?: WaitForOptions): Promise<void>; close(o?: { runBeforeUnload?: boolean; }): Promise<void>; browser?(): Browser; context?(): BrowserContext | null; target(): Target; _client?(): Partial<CDPSession>; _route?: string; _routes?: { url: string; }[]; route(path: string, intercept: (config: any, next: any) => Promise<void> | Promise<boolean>): Promise<void>; setRequestInterception?(enable?: boolean): Promise<void>; listenerCount?(name: string): number; exposeFunction?(name: string, pptrFunction: Function | { default: Function; }): Promise<void>; addInitScript?(script: { content?: string; }): Promise<void>; evaluateOnNewDocument?<Params extends unknown[], Func extends (...args: Params) => unknown = (...args: Params) => unknown>(pageFunction: Func | string, ...args: Params): Promise<{ identifier: string; }>; evaluate<Params extends unknown[], Func extends EvaluateFunc<Params> = EvaluateFunc<Params>>(pageFunction: Func | string, ...args: Params): Promise<Awaited<ReturnType<Func>>>; on(eventName: any, handler: (event: any, next?: any) => any): void; once(eventName: any, handler: (event: any, _?: any) => void): void; off(eventName: any, handler: (event: any, _?: any) => void): void; unroute?(eventName: any, handler: (event: any, _?: any) => void): void; url(): string; title(): Promise<string>; content(): Promise<string>; addStyleTag(options: { content?: string; path?: string; url?: string; }): Promise<ElementHandle>; dragAndDrop?(source: string, target: string, options?: { force?: boolean; noWaitAfter?: boolean; strict?: boolean; trial?: boolean; timeout?: number; sourcePosition?: { x: number; y: number; }; targetPosition?: { x: number; y: number; }; }): Promise<void>; mouse?: Partial<MouseActions>; emulateCPUThrottling(factor: number | null): Promise<void>; screenshot(s: { path?: string; clip?: Pick<DOMRect, "x" | "y" | "width" | "height">; }): Promise<string | Buffer>; pdf(s: { path?: string; displayHeaderFooter?: boolean; footerTemplate?: string; headerTemplate?: string; height?: string | number; width?: string | number; omitBackground?: boolean; outline?: boolean; preferCSSPageSize?: boolean; scale?: number; tagged?: boolean; timeout?: number; landscape?: boolean; }): Promise<string | Buffer>; getByRole?(role: string, o?: Record<string, string>): { click?(): Promise<void>; }; waitForSelector?(role: string, o?: Record<string, string>): Partial<unknown | { click(): Promise<void>; dispose(): Promise<void>; hover(): Promise<void>; }>; waitForLoadState?(s: string): Promise<void>; waitForNetworkIdle?(options?: WaitForNetworkIdleOptions): Promise<void>; waitForNavigation?(options?: WaitForOptions): Promise<any>; waitForResponse?(urlOrPredicate: string | any, options?: WaitTimeoutOptions): Promise<any>; }; export interface CDPSession { [x: string]: any; } export type RunnerConfig = { browser: Partial<Browser>; page: Partial<Page>; cdpSession?: Partial<CDPSession>; waitUntil?: LifeCycleEvent; actions?: string[]; hideElements?: string; ignore?: string[]; includeNotices?: boolean; includeWarnings?: boolean; rootElement?: string; rules?: string[]; runners?: Runner[]; standard?: keyof typeof Standard | Standard; timeout?: number; clip?: boolean; clipDir?: string; clip2Base64?: boolean; clipMax?: number; allowImages?: boolean; origin?: string; language?: string; noIntercept?: boolean; browserExtension?: boolean; dialogHandle?: { action?: "dismiss" | "accept"; promptText?: string; }; smart_check?: boolean; _watcher?: Watcher; _initRequest?: boolean; _kayleRunner?: boolean; }; export declare const _log: { enabled: boolean; }; export declare function setLogging(enabled?: boolean): void; export declare enum Standard { WCAG2A = "WCAG2A", WCAG2AA = "WCAG2AA", WCAG2AAA = "WCAG2AAA", SECTION508 = "SECTION508" } export { Runner }; export declare const enum MainRunner { htmlcs = "htmlcs", axe = "axe" }