Add Brave CDP automation, replace Oracle browser mode
Connects to user's running Brave via Chrome DevTools Protocol to automate ChatGPT interaction. Uses puppeteer-core to open a tab, send the prompt, wait for response, and extract the result. No cookies, no separate profiles, no copy/paste. Just connects to the browser where the user is already logged in. One-time setup: relaunch Brave with --remote-debugging-port=9222 Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
153
node_modules/@puppeteer/browsers/lib/cjs/provider.d.ts
generated
vendored
Normal file
153
node_modules/@puppeteer/browsers/lib/cjs/provider.d.ts
generated
vendored
Normal file
@@ -0,0 +1,153 @@
|
||||
/**
|
||||
* @license
|
||||
* Copyright 2026 Google Inc.
|
||||
* SPDX-License-Identifier: Apache-2.0
|
||||
*/
|
||||
import type { Browser, BrowserPlatform } from './browser-data/browser-data.js';
|
||||
/**
|
||||
* Options passed to a provider.
|
||||
* @public
|
||||
*/
|
||||
export interface DownloadOptions {
|
||||
browser: Browser;
|
||||
platform: BrowserPlatform;
|
||||
buildId: string;
|
||||
}
|
||||
/**
|
||||
* Interface for custom browser provider implementations.
|
||||
* Allows users to implement alternative download sources for browsers.
|
||||
*
|
||||
* ⚠️ **IMPORTANT**: Custom providers are NOT officially supported by
|
||||
* Puppeteer.
|
||||
*
|
||||
* By implementing this interface, you accept full responsibility for:
|
||||
*
|
||||
* - Ensuring downloaded binaries are compatible with Puppeteer's expectations
|
||||
* - Testing that browser launch and other features work with your binaries
|
||||
* - Maintaining compatibility when Puppeteer or your download source changes
|
||||
* - Version consistency across platforms if mixing sources
|
||||
*
|
||||
* Puppeteer only tests and guarantees Chrome for Testing binaries.
|
||||
*
|
||||
* @example
|
||||
*
|
||||
* ```typescript
|
||||
* class ElectronDownloader implements BrowserProvider {
|
||||
* supports(options: DownloadOptions): boolean {
|
||||
* return options.browser === Browser.CHROMEDRIVER;
|
||||
* }
|
||||
*
|
||||
* getDownloadUrl(options: DownloadOptions): URL {
|
||||
* const platform = mapToPlatform(options.platform);
|
||||
* return new URL(
|
||||
* `v${options.buildId}/chromedriver-v${options.buildId}-${platform}.zip`,
|
||||
* 'https://github.com/electron/electron/releases/download/',
|
||||
* );
|
||||
* }
|
||||
*
|
||||
* getExecutablePath(options): string {
|
||||
* const ext = options.platform.includes('win') ? '.exe' : '';
|
||||
* return `chromedriver/chromedriver${ext}`;
|
||||
* }
|
||||
* }
|
||||
* ```
|
||||
*
|
||||
* @public
|
||||
*/
|
||||
export interface BrowserProvider {
|
||||
/**
|
||||
* Check if this provider supports the given browser/platform.
|
||||
* Used for filtering before attempting downloads.
|
||||
*
|
||||
* Can be synchronous for quick checks or asynchronous if version
|
||||
* resolution/network requests are needed.
|
||||
*
|
||||
* @param options - Download options to check
|
||||
* @returns True if this provider supports the browser/platform combination
|
||||
*/
|
||||
supports(options: DownloadOptions): Promise<boolean> | boolean;
|
||||
/**
|
||||
* Get the download URL for the requested browser.
|
||||
*
|
||||
* The buildId can be either an exact version (e.g., "131.0.6778.109")
|
||||
* or an alias (e.g., "latest", "stable"). Custom providers should handle
|
||||
* version resolution internally if they support aliases.
|
||||
*
|
||||
* Returns null if the buildId cannot be resolved to a valid version.
|
||||
* The URL is not validated - download will fail later if URL doesn't exist.
|
||||
*
|
||||
* Can be synchronous for simple URL construction or asynchronous if version
|
||||
* resolution/network requests are needed.
|
||||
*
|
||||
* @param options - Download options (buildId may be alias or exact version)
|
||||
* @returns Download URL, or null if version cannot be resolved
|
||||
* @example
|
||||
*
|
||||
* ```ts
|
||||
* // Synchronous example
|
||||
* getDownloadUrl(options) {
|
||||
* const platform = mapPlatform(options.platform);
|
||||
* return new URL(`https://releases.example.com/v${options.buildId}/${platform}.zip`);
|
||||
* }
|
||||
*
|
||||
* // Asynchronous example with version mapping
|
||||
* async getDownloadUrl(options) {
|
||||
* const electronVersion = await resolveElectronVersion(options.buildId);
|
||||
* if (!electronVersion) return null;
|
||||
*
|
||||
* const platform = mapPlatform(options.platform);
|
||||
* return new URL(`https://github.com/electron/electron/releases/download/v${electronVersion}/${platform}.zip`);
|
||||
* }
|
||||
* ```
|
||||
*/
|
||||
getDownloadUrl(options: DownloadOptions): Promise<URL | null> | URL | null;
|
||||
/**
|
||||
* Get the relative path to the executable within the extracted archive.
|
||||
*
|
||||
* @param options - Browser, buildId, and platform
|
||||
* @returns Relative path to the executable
|
||||
* @example
|
||||
*
|
||||
* ```ts
|
||||
* // Electron uses simple structure
|
||||
* getExecutablePath() {
|
||||
* return 'chromedriver/chromedriver';
|
||||
* }
|
||||
*
|
||||
* // Custom provider with platform-specific paths
|
||||
* getExecutablePath(options) {
|
||||
* return `binaries/${options.browser}-${options.platform}`;
|
||||
* }
|
||||
* ```
|
||||
*/
|
||||
getExecutablePath(options: {
|
||||
browser: Browser;
|
||||
buildId: string;
|
||||
platform: BrowserPlatform;
|
||||
}): Promise<string> | string;
|
||||
/**
|
||||
* Get the name of this provider.
|
||||
* Used for error messages and logging purposes.
|
||||
*
|
||||
* @returns The provider name (e.g., "DefaultProvider", "CustomProvider")
|
||||
*
|
||||
* @remarks
|
||||
* This method is used instead of `constructor.name` to avoid issues with
|
||||
* minification in production builds.
|
||||
*
|
||||
* @example
|
||||
*
|
||||
* ```ts
|
||||
* getName() {
|
||||
* return 'MyCustomProvider';
|
||||
* }
|
||||
* ```
|
||||
*/
|
||||
getName(): string;
|
||||
}
|
||||
/**
|
||||
* Utility function to build a standard archive filename.
|
||||
* @public
|
||||
*/
|
||||
export declare function buildArchiveFilename(browser: Browser, platform: BrowserPlatform, buildId: string, extension?: string): string;
|
||||
//# sourceMappingURL=provider.d.ts.map
|
||||
Reference in New Issue
Block a user