UNPKG

ultimate-mcp-server

Version:

The definitive all-in-one Model Context Protocol server for AI-assisted coding across 30+ platforms

120 lines 3.18 kB
/** * Browser Automation Manager * * Provides unified interface for both Playwright and Puppeteer * with automatic fallback and optimal selection */ export type BrowserEngine = 'playwright' | 'puppeteer'; export type BrowserType = 'chromium' | 'firefox' | 'webkit'; interface BrowserOptions { engine?: BrowserEngine; browserType?: BrowserType; headless?: boolean; viewport?: { width: number; height: number; }; userAgent?: string; timeout?: number; } interface UnifiedPage { goto(url: string): Promise<void>; screenshot(options?: ScreenshotOptions): Promise<Buffer>; evaluate<T>(fn: (...args: any[]) => T, ...args: any[]): Promise<T>; click(selector: string): Promise<void>; type(selector: string, text: string): Promise<void>; waitForSelector(selector: string, options?: { timeout?: number; }): Promise<void>; close(): Promise<void>; content(): Promise<string>; title(): Promise<string>; url(): string; setViewport?(viewport: { width: number; height: number; }): Promise<void>; } interface ScreenshotOptions { fullPage?: boolean; clip?: { x: number; y: number; width: number; height: number; }; quality?: number; type?: 'png' | 'jpeg'; } export declare class BrowserManager { private playwrightBrowser?; private puppeteerBrowser?; private currentEngine?; private isInitialized; /** * Initialize browser with specified engine */ initialize(options?: BrowserOptions): Promise<void>; /** * Create a new page with unified interface */ newPage(): Promise<UnifiedPage>; /** * Take screenshot with automatic tiling for large pages */ captureScreenshot(url: string, options?: { fullPage?: boolean; tileSize?: number; viewport?: { width: number; height: number; }; }): Promise<Buffer[]>; /** * Execute automation script */ executeAutomation(script: { url: string; actions: Array<{ type: 'click' | 'type' | 'wait' | 'screenshot' | 'evaluate'; selector?: string; text?: string; duration?: number; code?: string; }>; }): Promise<any[]>; /** * Extract structured data from page */ extractData(url: string, selectors: Record<string, string>): Promise<Record<string, any>>; /** * Close all browsers */ close(): Promise<void>; /** * Initialize Playwright */ private initializePlaywright; /** * Initialize Puppeteer */ private initializePuppeteer; /** * Select optimal engine based on availability and features */ private selectOptimalEngine; /** * Wrap Playwright page with unified interface */ private wrapPlaywrightPage; /** * Wrap Puppeteer page with unified interface */ private wrapPuppeteerPage; /** * Capture screenshot tiles for large pages */ private captureScreenshotTiles; } export {}; //# sourceMappingURL=browser-manager.d.ts.map