puppeteer-pro
Version:
A simple puppeteer wrapper to enable useful plugins with ease
69 lines • 3.69 kB
TypeScript
import * as events from 'events';
import * as Puppeteer from 'puppeteer';
export declare function connect(options?: Puppeteer.ConnectOptions): Promise<Browser>;
export declare function launch(options?: Puppeteer.LaunchOptions & Puppeteer.ConnectOptions): Promise<Browser>;
export interface Browser extends Puppeteer.Browser, Pluginable {
createBrowserContext(options?: Puppeteer.BrowserContextOptions): Promise<BrowserContext>;
newPage(): Promise<Page>;
}
export interface BrowserContext extends Puppeteer.BrowserContext, Pluginable {
newPage(): Promise<Page>;
}
export interface Page extends Puppeteer.Page {
waitAndClick(selector: string, waitOptions?: Puppeteer.WaitForSelectorOptions, clickOptions?: Readonly<Puppeteer.ClickOptions>): Promise<void>;
waitAndType(selector: string, text: string, waitOptions?: Puppeteer.WaitForSelectorOptions, typeOptions?: Readonly<Puppeteer.KeyboardTypeOptions>): Promise<void>;
}
export declare class Plugin {
protected browser: Browser | BrowserContext | null;
private initialized;
private startCounter;
protected dependencies: Plugin[];
protected requiresInterception: boolean;
get isInitialized(): boolean;
get isStopped(): boolean;
addDependency(plugin: Plugin): Promise<void>;
init(browser: Browser | BrowserContext): Promise<void>;
protected afterLaunch(_browser: Browser | BrowserContext): Promise<void>;
protected onClose(): Promise<void>;
protected onTargetCreated(target: Puppeteer.Target): Promise<void>;
protected onPageCreated(_page: Page): Promise<void>;
protected onRequest(request: Puppeteer.HTTPRequest): Promise<void>;
protected processRequest(_request: Puppeteer.HTTPRequest): Promise<void>;
protected onDialog(dialog: Dialog): Promise<void>;
protected processDialog(_dialog: Dialog): Promise<void>;
protected beforeRestart(): Promise<void>;
restart(): Promise<void>;
protected afterRestart(): Promise<void>;
protected beforeStop(): Promise<void>;
stop(): Promise<void>;
protected afterStop(): Promise<void>;
protected getFirstPage(): Promise<Puppeteer.Page | null>;
}
interface Pluginable {
plugins: Plugin[];
browserEvents: events.EventEmitter;
interceptions: number;
addPlugin: (plugin: Plugin) => Promise<void>;
clearPlugins: () => void;
anonymizeUserAgent: () => Promise<AnonymizeUserAgentPlugin>;
avoidDetection: (options?: FingerprintGeneratorOptions) => Promise<AvoidDetectionPlugin>;
blockResources: (...resources: Resource[]) => Promise<BlockResourcesPlugin>;
disableDialogs: (logMessages?: boolean) => Promise<DisableDialogsPlugin>;
manageCookies: (opts: ManageCookiesOption) => Promise<ManageCookiesPlugin>;
manageLocalStorage: (opts: ManageLocalStorageOption) => Promise<ManageLocalStoragePlugin>;
solveRecaptchas: (accessToken: string) => Promise<SolveRecaptchasPlugin>;
}
interface Dialog extends Puppeteer.Dialog {
handled: boolean;
}
import { AnonymizeUserAgentPlugin } from './plugins/anonymize.user.agent';
import { AvoidDetectionPlugin } from './plugins/avoid.detection';
import { BlockResourcesPlugin, Resource } from './plugins/block.resources';
import { DisableDialogsPlugin } from './plugins/disable.dialogs';
import { ManageCookiesOption, ManageCookiesPlugin } from './plugins/manage.cookies';
import { ManageLocalStorageOption, ManageLocalStoragePlugin } from './plugins/manage.localstorage';
import { SolveRecaptchasPlugin } from './plugins/solve.recaptchas';
import type { newInjectedPage } from 'fingerprint-injector';
type FingerprintGeneratorOptions = Parameters<typeof newInjectedPage>[1];
export {};
//# sourceMappingURL=index.d.ts.map