first commit
This commit is contained in:
64
node_modules/puppeteer/README.md
generated
vendored
Normal file
64
node_modules/puppeteer/README.md
generated
vendored
Normal file
@@ -0,0 +1,64 @@
|
||||
# Puppeteer
|
||||
|
||||
[](https://github.com/puppeteer/puppeteer/actions/workflows/ci.yml)
|
||||
[](https://npmjs.org/package/puppeteer)
|
||||
|
||||
<img src="https://user-images.githubusercontent.com/10379601/29446482-04f7036a-841f-11e7-9872-91d1fc2ea683.png" height="200" align="right"/>
|
||||
|
||||
> Puppeteer is a JavaScript library which provides a high-level API to control
|
||||
> Chrome or Firefox over the
|
||||
> [DevTools Protocol](https://chromedevtools.github.io/devtools-protocol/) or [WebDriver BiDi](https://pptr.dev/webdriver-bidi).
|
||||
> Puppeteer runs in the headless (no visible UI) by default
|
||||
|
||||
## [Get started](https://pptr.dev/docs) | [API](https://pptr.dev/api) | [FAQ](https://pptr.dev/faq) | [Contributing](https://pptr.dev/contributing) | [Troubleshooting](https://pptr.dev/troubleshooting)
|
||||
|
||||
## Installation
|
||||
|
||||
```bash npm2yarn
|
||||
npm i puppeteer # Downloads compatible Chrome during installation.
|
||||
npm i puppeteer-core # Alternatively, install as a library, without downloading Chrome.
|
||||
```
|
||||
|
||||
## MCP
|
||||
|
||||
Install [`chrome-devtools-mcp`](https://github.com/ChromeDevTools/chrome-devtools-mcp),
|
||||
a Puppeteer-based MCP server for browser automation and debugging.
|
||||
|
||||
Puppeteer also supports the experimental [WebMCP](https://pptr.dev/guides/webmcp) API.
|
||||
|
||||
## Example
|
||||
|
||||
```ts
|
||||
import puppeteer from 'puppeteer';
|
||||
// Or import puppeteer from 'puppeteer-core';
|
||||
|
||||
// Launch the browser and open a new blank page.
|
||||
const browser = await puppeteer.launch();
|
||||
const page = await browser.newPage();
|
||||
|
||||
// Navigate the page to a URL.
|
||||
await page.goto('https://developer.chrome.com/');
|
||||
|
||||
// Set the screen size.
|
||||
await page.setViewport({width: 1080, height: 1024});
|
||||
|
||||
// Open the search menu using the keyboard.
|
||||
await page.keyboard.press('/');
|
||||
|
||||
// Type into search box using accessible input name.
|
||||
await page.locator('::-p-aria(Search)').fill('automate beyond recorder');
|
||||
|
||||
// Wait and click on first result.
|
||||
await page.locator('.devsite-result-item-link').click();
|
||||
|
||||
// Locate the full title with a unique string.
|
||||
const textSelector = await page
|
||||
.locator('::-p-text(Customize and automate)')
|
||||
.waitHandle();
|
||||
const fullTitle = await textSelector?.evaluate(el => el.textContent);
|
||||
|
||||
// Print the full title.
|
||||
console.log('The title of this blog post is "%s".', fullTitle);
|
||||
|
||||
await browser.close();
|
||||
```
|
||||
43
node_modules/puppeteer/install.mjs
generated
vendored
Executable file
43
node_modules/puppeteer/install.mjs
generated
vendored
Executable file
@@ -0,0 +1,43 @@
|
||||
#!/usr/bin/env node
|
||||
|
||||
/**
|
||||
* @license
|
||||
* Copyright 2017 Google Inc.
|
||||
* SPDX-License-Identifier: Apache-2.0
|
||||
*/
|
||||
|
||||
/**
|
||||
* This file is part of public API.
|
||||
*
|
||||
* By default, the `puppeteer` package runs this script during the installation
|
||||
* process unless one of the env flags is provided.
|
||||
* `puppeteer-core` package doesn't include this step at all. However, it's
|
||||
* still possible to install a supported browser using this script when
|
||||
* necessary.
|
||||
*/
|
||||
|
||||
/**
|
||||
* @returns {import("puppeteer/internal/node/install.js")}
|
||||
*/
|
||||
async function importInstaller() {
|
||||
try {
|
||||
return await import('puppeteer/internal/node/install.js');
|
||||
} catch (error) {
|
||||
// Add more logging when the GitHub Action Debugging option is set
|
||||
// https://docs.github.com/en/actions/learn-github-actions/variables#default-environment-variables
|
||||
if (process.env['RUNNER_DEBUG']) {
|
||||
console.error(error);
|
||||
}
|
||||
console.warn(
|
||||
'Skipping browser installation because the Puppeteer build is not available. Run `npm install` again after you have re-built Puppeteer.',
|
||||
);
|
||||
process.exit(0);
|
||||
}
|
||||
}
|
||||
|
||||
try {
|
||||
const {downloadBrowsers} = await importInstaller();
|
||||
downloadBrowsers();
|
||||
} catch (error) {
|
||||
console.warn('Browser download failed', error);
|
||||
}
|
||||
11
node_modules/puppeteer/lib/puppeteer/getConfiguration.d.ts
generated
vendored
Normal file
11
node_modules/puppeteer/lib/puppeteer/getConfiguration.d.ts
generated
vendored
Normal file
@@ -0,0 +1,11 @@
|
||||
/**
|
||||
* @license
|
||||
* Copyright 2023 Google Inc.
|
||||
* SPDX-License-Identifier: Apache-2.0
|
||||
*/
|
||||
import type { Configuration } from 'puppeteer-core';
|
||||
/**
|
||||
* @internal
|
||||
*/
|
||||
export declare const getConfiguration: () => Promise<Configuration>;
|
||||
//# sourceMappingURL=getConfiguration.d.ts.map
|
||||
1
node_modules/puppeteer/lib/puppeteer/getConfiguration.d.ts.map
generated
vendored
Normal file
1
node_modules/puppeteer/lib/puppeteer/getConfiguration.d.ts.map
generated
vendored
Normal file
@@ -0,0 +1 @@
|
||||
{"version":3,"file":"getConfiguration.d.ts","sourceRoot":"","sources":["../../src/getConfiguration.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAMH,OAAO,KAAK,EAGV,aAAa,EAGd,MAAM,gBAAgB,CAAC;AAkGxB;;GAEG;AACH,eAAO,MAAM,gBAAgB,QAAa,OAAO,CAAC,aAAa,CAgD9D,CAAC"}
|
||||
122
node_modules/puppeteer/lib/puppeteer/getConfiguration.js
generated
vendored
Normal file
122
node_modules/puppeteer/lib/puppeteer/getConfiguration.js
generated
vendored
Normal file
@@ -0,0 +1,122 @@
|
||||
/**
|
||||
* @license
|
||||
* Copyright 2023 Google Inc.
|
||||
* SPDX-License-Identifier: Apache-2.0
|
||||
*/
|
||||
import { homedir } from 'node:os';
|
||||
import { join } from 'node:path';
|
||||
import { cosmiconfig } from 'cosmiconfig';
|
||||
function getBooleanEnvVar(name) {
|
||||
const env = process.env[name];
|
||||
if (env === undefined) {
|
||||
return;
|
||||
}
|
||||
switch (env.toLowerCase()) {
|
||||
case '':
|
||||
case '0':
|
||||
case 'false':
|
||||
case 'off':
|
||||
return false;
|
||||
default:
|
||||
return true;
|
||||
}
|
||||
}
|
||||
/**
|
||||
* @internal
|
||||
*/
|
||||
function isSupportedBrowser(product) {
|
||||
switch (product) {
|
||||
case 'chrome':
|
||||
case 'firefox':
|
||||
return true;
|
||||
default:
|
||||
return false;
|
||||
}
|
||||
}
|
||||
/**
|
||||
* @internal
|
||||
*/
|
||||
function getDefaultBrowser(browser) {
|
||||
// Validate configuration.
|
||||
if (browser && !isSupportedBrowser(browser)) {
|
||||
throw new Error(`Unsupported browser ${browser}`);
|
||||
}
|
||||
switch (browser) {
|
||||
case 'firefox':
|
||||
return 'firefox';
|
||||
default:
|
||||
return 'chrome';
|
||||
}
|
||||
}
|
||||
/**
|
||||
* @internal
|
||||
*/
|
||||
function getLogLevel(logLevel) {
|
||||
switch (logLevel) {
|
||||
case 'silent':
|
||||
return 'silent';
|
||||
case 'error':
|
||||
return 'error';
|
||||
default:
|
||||
return 'warn';
|
||||
}
|
||||
}
|
||||
function getBrowserSetting(browser, configuration, defaultConfig = {}) {
|
||||
if (configuration.skipDownload) {
|
||||
return {
|
||||
skipDownload: true,
|
||||
};
|
||||
}
|
||||
const browserSetting = {};
|
||||
const browserEnvName = browser.replaceAll('-', '_').toUpperCase();
|
||||
browserSetting.version =
|
||||
process.env[`PUPPETEER_${browserEnvName}_VERSION`] ??
|
||||
configuration[browser]?.version ??
|
||||
defaultConfig.version;
|
||||
browserSetting.downloadBaseUrl =
|
||||
process.env[`PUPPETEER_${browserEnvName}_DOWNLOAD_BASE_URL`] ??
|
||||
configuration[browser]?.downloadBaseUrl ??
|
||||
defaultConfig.downloadBaseUrl;
|
||||
browserSetting.skipDownload =
|
||||
getBooleanEnvVar(`PUPPETEER_${browserEnvName}_SKIP_DOWNLOAD`) ??
|
||||
getBooleanEnvVar(`PUPPETEER_SKIP_${browserEnvName}_DOWNLOAD`) ??
|
||||
configuration[browser]?.skipDownload ??
|
||||
defaultConfig.skipDownload;
|
||||
return browserSetting;
|
||||
}
|
||||
/**
|
||||
* @internal
|
||||
*/
|
||||
export const getConfiguration = async () => {
|
||||
const result = await cosmiconfig('puppeteer', {
|
||||
searchStrategy: 'global',
|
||||
}).search();
|
||||
const configuration = result ? { ...result.config } : {};
|
||||
configuration.logLevel = getLogLevel(process.env['PUPPETEER_LOGLEVEL'] ?? configuration.logLevel);
|
||||
// Merging environment variables.
|
||||
configuration.defaultBrowser = getDefaultBrowser(process.env['PUPPETEER_BROWSER'] ?? configuration.defaultBrowser);
|
||||
configuration.executablePath =
|
||||
process.env['PUPPETEER_EXECUTABLE_PATH'] ?? configuration.executablePath;
|
||||
// Default to skipDownload if executablePath is set
|
||||
if (configuration.executablePath) {
|
||||
configuration.skipDownload = true;
|
||||
}
|
||||
// Set skipDownload explicitly or from default
|
||||
configuration.skipDownload =
|
||||
getBooleanEnvVar('PUPPETEER_SKIP_DOWNLOAD') ?? configuration.skipDownload;
|
||||
// Prepare variables used in browser downloading
|
||||
configuration.chrome = getBrowserSetting('chrome', configuration);
|
||||
configuration['chrome-headless-shell'] = getBrowserSetting('chrome-headless-shell', configuration);
|
||||
configuration.firefox = getBrowserSetting('firefox', configuration, {
|
||||
skipDownload: true,
|
||||
});
|
||||
configuration.cacheDirectory =
|
||||
process.env['PUPPETEER_CACHE_DIR'] ??
|
||||
configuration.cacheDirectory ??
|
||||
join(homedir(), '.cache', 'puppeteer');
|
||||
configuration.temporaryDirectory =
|
||||
process.env['PUPPETEER_TMP_DIR'] ?? configuration.temporaryDirectory;
|
||||
configuration.experiments ??= {};
|
||||
return configuration;
|
||||
};
|
||||
//# sourceMappingURL=getConfiguration.js.map
|
||||
1
node_modules/puppeteer/lib/puppeteer/getConfiguration.js.map
generated
vendored
Normal file
1
node_modules/puppeteer/lib/puppeteer/getConfiguration.js.map
generated
vendored
Normal file
@@ -0,0 +1 @@
|
||||
{"version":3,"file":"getConfiguration.js","sourceRoot":"","sources":["../../src/getConfiguration.ts"],"names":[],"mappings":"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"}
|
||||
8
node_modules/puppeteer/lib/puppeteer/node/cli.d.ts
generated
vendored
Normal file
8
node_modules/puppeteer/lib/puppeteer/node/cli.d.ts
generated
vendored
Normal file
@@ -0,0 +1,8 @@
|
||||
#!/usr/bin/env node
|
||||
/**
|
||||
* @license
|
||||
* Copyright 2023 Google Inc.
|
||||
* SPDX-License-Identifier: Apache-2.0
|
||||
*/
|
||||
export {};
|
||||
//# sourceMappingURL=cli.d.ts.map
|
||||
1
node_modules/puppeteer/lib/puppeteer/node/cli.d.ts.map
generated
vendored
Normal file
1
node_modules/puppeteer/lib/puppeteer/node/cli.d.ts.map
generated
vendored
Normal file
@@ -0,0 +1 @@
|
||||
{"version":3,"file":"cli.d.ts","sourceRoot":"","sources":["../../../src/node/cli.ts"],"names":[],"mappings":";AAEA;;;;GAIG"}
|
||||
38
node_modules/puppeteer/lib/puppeteer/node/cli.js
generated
vendored
Executable file
38
node_modules/puppeteer/lib/puppeteer/node/cli.js
generated
vendored
Executable file
@@ -0,0 +1,38 @@
|
||||
#!/usr/bin/env node
|
||||
/**
|
||||
* @license
|
||||
* Copyright 2023 Google Inc.
|
||||
* SPDX-License-Identifier: Apache-2.0
|
||||
*/
|
||||
import { CLI, Browser } from '@puppeteer/browsers';
|
||||
import { PUPPETEER_REVISIONS } from 'puppeteer-core/internal/revisions.js';
|
||||
import { packageVersion } from 'puppeteer-core/internal/util/version.js';
|
||||
import puppeteer from '../puppeteer.js';
|
||||
const config = await puppeteer.configuration();
|
||||
void new CLI({
|
||||
cachePath: config.cacheDirectory,
|
||||
scriptName: 'puppeteer',
|
||||
version: packageVersion,
|
||||
prefixCommand: {
|
||||
cmd: 'browsers',
|
||||
description: 'Manage browsers of this Puppeteer installation',
|
||||
},
|
||||
allowCachePathOverride: false,
|
||||
pinnedBrowsers: {
|
||||
[Browser.CHROME]: {
|
||||
buildId: config.chrome?.version || PUPPETEER_REVISIONS['chrome'] || 'latest',
|
||||
skipDownload: config.chrome?.skipDownload ?? false,
|
||||
},
|
||||
[Browser.FIREFOX]: {
|
||||
buildId: config.firefox?.version || PUPPETEER_REVISIONS['firefox'] || 'latest',
|
||||
skipDownload: config.firefox?.skipDownload ?? true,
|
||||
},
|
||||
[Browser.CHROMEHEADLESSSHELL]: {
|
||||
buildId: config['chrome-headless-shell']?.version ||
|
||||
PUPPETEER_REVISIONS['chrome-headless-shell'] ||
|
||||
'latest',
|
||||
skipDownload: config['chrome-headless-shell']?.skipDownload ?? false,
|
||||
},
|
||||
},
|
||||
}).run(process.argv);
|
||||
//# sourceMappingURL=cli.js.map
|
||||
1
node_modules/puppeteer/lib/puppeteer/node/cli.js.map
generated
vendored
Normal file
1
node_modules/puppeteer/lib/puppeteer/node/cli.js.map
generated
vendored
Normal file
@@ -0,0 +1 @@
|
||||
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../../../src/node/cli.ts"],"names":[],"mappings":";AAEA;;;;GAIG;AAEH,OAAO,EAAC,GAAG,EAAE,OAAO,EAAC,MAAM,qBAAqB,CAAC;AAEjD,OAAO,EAAC,mBAAmB,EAAC,MAAM,sCAAsC,CAAC;AACzE,OAAO,EAAC,cAAc,EAAC,MAAM,yCAAyC,CAAC;AAEvE,OAAO,SAAS,MAAM,iBAAiB,CAAC;AAExC,MAAM,MAAM,GAAG,MAAO,SAAsC,CAAC,aAAa,EAAE,CAAC;AAE7E,KAAK,IAAI,GAAG,CAAC;IACX,SAAS,EAAE,MAAM,CAAC,cAAe;IACjC,UAAU,EAAE,WAAW;IACvB,OAAO,EAAE,cAAc;IACvB,aAAa,EAAE;QACb,GAAG,EAAE,UAAU;QACf,WAAW,EAAE,gDAAgD;KAC9D;IACD,sBAAsB,EAAE,KAAK;IAC7B,cAAc,EAAE;QACd,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE;YAChB,OAAO,EACL,MAAM,CAAC,MAAM,EAAE,OAAO,IAAI,mBAAmB,CAAC,QAAQ,CAAC,IAAI,QAAQ;YACrE,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,YAAY,IAAI,KAAK;SACnD;QACD,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE;YACjB,OAAO,EACL,MAAM,CAAC,OAAO,EAAE,OAAO,IAAI,mBAAmB,CAAC,SAAS,CAAC,IAAI,QAAQ;YACvE,YAAY,EAAE,MAAM,CAAC,OAAO,EAAE,YAAY,IAAI,IAAI;SACnD;QACD,CAAC,OAAO,CAAC,mBAAmB,CAAC,EAAE;YAC7B,OAAO,EACL,MAAM,CAAC,uBAAuB,CAAC,EAAE,OAAO;gBACxC,mBAAmB,CAAC,uBAAuB,CAAC;gBAC5C,QAAQ;YACV,YAAY,EAAE,MAAM,CAAC,uBAAuB,CAAC,EAAE,YAAY,IAAI,KAAK;SACrE;KACF;CACF,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC"}
|
||||
10
node_modules/puppeteer/lib/puppeteer/node/install.d.ts
generated
vendored
Normal file
10
node_modules/puppeteer/lib/puppeteer/node/install.d.ts
generated
vendored
Normal file
@@ -0,0 +1,10 @@
|
||||
/**
|
||||
* @license
|
||||
* Copyright 2020 Google Inc.
|
||||
* SPDX-License-Identifier: Apache-2.0
|
||||
*/
|
||||
/**
|
||||
* @internal
|
||||
*/
|
||||
export declare function downloadBrowsers(): Promise<void>;
|
||||
//# sourceMappingURL=install.d.ts.map
|
||||
1
node_modules/puppeteer/lib/puppeteer/node/install.d.ts.map
generated
vendored
Normal file
1
node_modules/puppeteer/lib/puppeteer/node/install.d.ts.map
generated
vendored
Normal file
@@ -0,0 +1 @@
|
||||
{"version":3,"file":"install.d.ts","sourceRoot":"","sources":["../../../src/node/install.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AA2DH;;GAEG;AACH,wBAAsB,gBAAgB,IAAI,OAAO,CAAC,IAAI,CAAC,CAkEtD"}
|
||||
119
node_modules/puppeteer/lib/puppeteer/node/install.js
generated
vendored
Normal file
119
node_modules/puppeteer/lib/puppeteer/node/install.js
generated
vendored
Normal file
@@ -0,0 +1,119 @@
|
||||
/**
|
||||
* @license
|
||||
* Copyright 2020 Google Inc.
|
||||
* SPDX-License-Identifier: Apache-2.0
|
||||
*/
|
||||
import { install, Browser, resolveBuildId, detectBrowserPlatform, } from '@puppeteer/browsers';
|
||||
import { PUPPETEER_REVISIONS } from 'puppeteer-core/internal/revisions.js';
|
||||
import { getConfiguration } from '../getConfiguration.js';
|
||||
async function downloadBrowser({ browser, configuration, cacheDir, platform, }) {
|
||||
const unresolvedBuildId = configuration?.version || PUPPETEER_REVISIONS[browser] || 'latest';
|
||||
const baseUrl = configuration?.downloadBaseUrl;
|
||||
const buildId = await resolveBuildId(browser, platform, unresolvedBuildId);
|
||||
try {
|
||||
const result = await install({
|
||||
browser,
|
||||
cacheDir,
|
||||
platform,
|
||||
buildId,
|
||||
downloadProgressCallback: 'default',
|
||||
baseUrl,
|
||||
buildIdAlias: buildId !== unresolvedBuildId ? unresolvedBuildId : undefined,
|
||||
});
|
||||
logPolitely(`${browser} (${result.buildId}) downloaded to ${result.path}`);
|
||||
}
|
||||
catch (error) {
|
||||
throw new Error(`ERROR: Failed to set up ${browser} v${buildId}! Set "PUPPETEER_SKIP_DOWNLOAD" env variable to skip download.`, {
|
||||
cause: error,
|
||||
});
|
||||
}
|
||||
}
|
||||
/**
|
||||
* @internal
|
||||
*/
|
||||
export async function downloadBrowsers() {
|
||||
overrideProxy();
|
||||
const configuration = await getConfiguration();
|
||||
if (configuration.skipDownload) {
|
||||
logPolitely('**INFO** Skipping downloading browsers as instructed.');
|
||||
return;
|
||||
}
|
||||
const platform = detectBrowserPlatform();
|
||||
if (!platform) {
|
||||
throw new Error('The current platform is not supported.');
|
||||
}
|
||||
const cacheDir = configuration.cacheDirectory;
|
||||
const installationJobs = [];
|
||||
if (configuration.chrome?.skipDownload) {
|
||||
logPolitely('**INFO** Skipping Chrome download as instructed.');
|
||||
}
|
||||
else {
|
||||
const browser = Browser.CHROME;
|
||||
installationJobs.push(downloadBrowser({
|
||||
browser,
|
||||
configuration: configuration[browser] ?? {},
|
||||
cacheDir,
|
||||
platform,
|
||||
}));
|
||||
}
|
||||
if (configuration['chrome-headless-shell']?.skipDownload) {
|
||||
logPolitely('**INFO** Skipping Chrome download as instructed.');
|
||||
}
|
||||
else {
|
||||
const browser = Browser.CHROMEHEADLESSSHELL;
|
||||
installationJobs.push(downloadBrowser({
|
||||
browser,
|
||||
configuration: configuration[browser] ?? {},
|
||||
cacheDir,
|
||||
platform,
|
||||
}));
|
||||
}
|
||||
if (configuration.firefox?.skipDownload) {
|
||||
logPolitely('**INFO** Skipping Firefox download as instructed.');
|
||||
}
|
||||
else {
|
||||
const browser = Browser.FIREFOX;
|
||||
installationJobs.push(downloadBrowser({
|
||||
browser,
|
||||
configuration: configuration[browser] ?? {},
|
||||
cacheDir,
|
||||
platform,
|
||||
}));
|
||||
}
|
||||
try {
|
||||
await Promise.all(installationJobs);
|
||||
}
|
||||
catch (error) {
|
||||
console.error(error);
|
||||
process.exit(1);
|
||||
}
|
||||
}
|
||||
/**
|
||||
* @internal
|
||||
*/
|
||||
function logPolitely(toBeLogged) {
|
||||
const logLevel = process.env['npm_config_loglevel'] || '';
|
||||
const logLevelDisplay = ['silent', 'error', 'warn'].indexOf(logLevel) > -1;
|
||||
if (!logLevelDisplay) {
|
||||
console.log(toBeLogged);
|
||||
}
|
||||
}
|
||||
/**
|
||||
* @internal
|
||||
*/
|
||||
function overrideProxy() {
|
||||
// Override current environment proxy settings with npm configuration, if any.
|
||||
const NPM_HTTPS_PROXY = process.env['npm_config_https_proxy'] || process.env['npm_config_proxy'];
|
||||
const NPM_HTTP_PROXY = process.env['npm_config_http_proxy'] || process.env['npm_config_proxy'];
|
||||
const NPM_NO_PROXY = process.env['npm_config_no_proxy'];
|
||||
if (NPM_HTTPS_PROXY) {
|
||||
process.env['HTTPS_PROXY'] = NPM_HTTPS_PROXY;
|
||||
}
|
||||
if (NPM_HTTP_PROXY) {
|
||||
process.env['HTTP_PROXY'] = NPM_HTTP_PROXY;
|
||||
}
|
||||
if (NPM_NO_PROXY) {
|
||||
process.env['NO_PROXY'] = NPM_NO_PROXY;
|
||||
}
|
||||
}
|
||||
//# sourceMappingURL=install.js.map
|
||||
1
node_modules/puppeteer/lib/puppeteer/node/install.js.map
generated
vendored
Normal file
1
node_modules/puppeteer/lib/puppeteer/node/install.js.map
generated
vendored
Normal file
@@ -0,0 +1 @@
|
||||
{"version":3,"file":"install.js","sourceRoot":"","sources":["../../../src/node/install.ts"],"names":[],"mappings":"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"}
|
||||
38
node_modules/puppeteer/lib/puppeteer/puppeteer.d.ts
generated
vendored
Normal file
38
node_modules/puppeteer/lib/puppeteer/puppeteer.d.ts
generated
vendored
Normal file
@@ -0,0 +1,38 @@
|
||||
/**
|
||||
* @license
|
||||
* Copyright 2017 Google Inc.
|
||||
* SPDX-License-Identifier: Apache-2.0
|
||||
*/
|
||||
export * from 'puppeteer-core';
|
||||
import { PuppeteerNode } from 'puppeteer-core';
|
||||
/**
|
||||
* @public
|
||||
*/
|
||||
declare const puppeteer: PuppeteerNode;
|
||||
export declare const
|
||||
/**
|
||||
* @public
|
||||
*/
|
||||
connect: (options: import("puppeteer-core").ConnectOptions) => Promise<import("puppeteer-core").Browser>,
|
||||
/**
|
||||
* @public
|
||||
*/
|
||||
defaultArgs: (options?: import("puppeteer-core").LaunchOptions) => Promise<string[]>,
|
||||
/**
|
||||
* @public
|
||||
*/
|
||||
executablePath: {
|
||||
(channel: import("puppeteer-core").ChromeReleaseChannel): Promise<string>;
|
||||
(options: import("puppeteer-core").LaunchOptions): Promise<string>;
|
||||
(): Promise<string>;
|
||||
},
|
||||
/**
|
||||
* @public
|
||||
*/
|
||||
launch: (options?: import("puppeteer-core").LaunchOptions) => Promise<import("puppeteer-core").Browser>,
|
||||
/**
|
||||
* @public
|
||||
*/
|
||||
trimCache: () => Promise<void>;
|
||||
export default puppeteer;
|
||||
//# sourceMappingURL=puppeteer.d.ts.map
|
||||
1
node_modules/puppeteer/lib/puppeteer/puppeteer.d.ts.map
generated
vendored
Normal file
1
node_modules/puppeteer/lib/puppeteer/puppeteer.d.ts.map
generated
vendored
Normal file
@@ -0,0 +1 @@
|
||||
{"version":3,"file":"puppeteer.d.ts","sourceRoot":"","sources":["../../src/puppeteer.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,cAAc,gBAAgB,CAAC;AAE/B,OAAO,EAAC,aAAa,EAAC,MAAM,gBAAgB,CAAC;AAI7C;;GAEG;AAEH,QAAA,MAAM,SAAS,eAGb,CAAC;AAEH,eAAO;AACL;;GAEG;AACH,OAAO;AACP;;GAEG;AACH,WAAW;AACX;;GAEG;AACH,cAAc;;;;;AACd;;GAEG;AACH,MAAM;AACN;;GAEG;AACH,SAAS,qBACE,CAAC;AAEd,eAAe,SAAS,CAAC"}
|
||||
39
node_modules/puppeteer/lib/puppeteer/puppeteer.js
generated
vendored
Normal file
39
node_modules/puppeteer/lib/puppeteer/puppeteer.js
generated
vendored
Normal file
@@ -0,0 +1,39 @@
|
||||
/**
|
||||
* @license
|
||||
* Copyright 2017 Google Inc.
|
||||
* SPDX-License-Identifier: Apache-2.0
|
||||
*/
|
||||
export * from 'puppeteer-core';
|
||||
import { PuppeteerNode } from 'puppeteer-core';
|
||||
import { getConfiguration } from './getConfiguration.js';
|
||||
/**
|
||||
* @public
|
||||
*/
|
||||
// @ts-expect-error using internal API.
|
||||
const puppeteer = new PuppeteerNode({
|
||||
isPuppeteerCore: false,
|
||||
configuration: getConfiguration,
|
||||
});
|
||||
export const {
|
||||
/**
|
||||
* @public
|
||||
*/
|
||||
connect,
|
||||
/**
|
||||
* @public
|
||||
*/
|
||||
defaultArgs,
|
||||
/**
|
||||
* @public
|
||||
*/
|
||||
executablePath,
|
||||
/**
|
||||
* @public
|
||||
*/
|
||||
launch,
|
||||
/**
|
||||
* @public
|
||||
*/
|
||||
trimCache, } = puppeteer;
|
||||
export default puppeteer;
|
||||
//# sourceMappingURL=puppeteer.js.map
|
||||
1
node_modules/puppeteer/lib/puppeteer/puppeteer.js.map
generated
vendored
Normal file
1
node_modules/puppeteer/lib/puppeteer/puppeteer.js.map
generated
vendored
Normal file
@@ -0,0 +1 @@
|
||||
{"version":3,"file":"puppeteer.js","sourceRoot":"","sources":["../../src/puppeteer.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,cAAc,gBAAgB,CAAC;AAE/B,OAAO,EAAC,aAAa,EAAC,MAAM,gBAAgB,CAAC;AAE7C,OAAO,EAAC,gBAAgB,EAAC,MAAM,uBAAuB,CAAC;AAEvD;;GAEG;AACH,uCAAuC;AACvC,MAAM,SAAS,GAAG,IAAI,aAAa,CAAC;IAClC,eAAe,EAAE,KAAK;IACtB,aAAa,EAAE,gBAAgB;CAChC,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM;AACX;;GAEG;AACH,OAAO;AACP;;GAEG;AACH,WAAW;AACX;;GAEG;AACH,cAAc;AACd;;GAEG;AACH,MAAM;AACN;;GAEG;AACH,SAAS,GACV,GAAG,SAAS,CAAC;AAEd,eAAe,SAAS,CAAC"}
|
||||
79
node_modules/puppeteer/lib/types.d.ts
generated
vendored
Normal file
79
node_modules/puppeteer/lib/types.d.ts
generated
vendored
Normal file
@@ -0,0 +1,79 @@
|
||||
/**
|
||||
* @license
|
||||
* Copyright 2026 Google Inc.
|
||||
* SPDX-License-Identifier: Apache-2.0
|
||||
*/
|
||||
import type {Browser} from 'puppeteer-core';
|
||||
import type {ChromeReleaseChannel} from 'puppeteer-core';
|
||||
import type {ConnectOptions} from 'puppeteer-core';
|
||||
import type {LaunchOptions} from 'puppeteer-core';
|
||||
import type {PuppeteerNode} from 'puppeteer-core';
|
||||
|
||||
/**
|
||||
* @public
|
||||
*/
|
||||
export declare const /**
|
||||
* @public
|
||||
*/
|
||||
/**
|
||||
* @public
|
||||
*/
|
||||
connect: (options: ConnectOptions) => Promise<Browser>;
|
||||
|
||||
/**
|
||||
* @public
|
||||
*/
|
||||
export declare const /**
|
||||
* @public
|
||||
*/
|
||||
/**
|
||||
* @public
|
||||
*/
|
||||
defaultArgs: (options?: LaunchOptions) => Promise<string[]>;
|
||||
|
||||
/**
|
||||
* @public
|
||||
*/
|
||||
export declare const /**
|
||||
* @public
|
||||
*/
|
||||
/**
|
||||
* @public
|
||||
*/
|
||||
executablePath: {
|
||||
(channel: ChromeReleaseChannel): Promise<string>;
|
||||
(options: LaunchOptions): Promise<string>;
|
||||
(): Promise<string>;
|
||||
};
|
||||
|
||||
/**
|
||||
* @public
|
||||
*/
|
||||
export declare const /**
|
||||
* @public
|
||||
*/
|
||||
/**
|
||||
* @public
|
||||
*/
|
||||
launch: (options?: LaunchOptions) => Promise<Browser>;
|
||||
|
||||
/**
|
||||
* @public
|
||||
*/
|
||||
declare const puppeteer: PuppeteerNode;
|
||||
export default puppeteer;
|
||||
|
||||
/**
|
||||
* @public
|
||||
*/
|
||||
export declare const /**
|
||||
* @public
|
||||
*/
|
||||
/**
|
||||
* @public
|
||||
*/
|
||||
trimCache: () => Promise<void>;
|
||||
|
||||
export * from 'puppeteer-core';
|
||||
|
||||
export {};
|
||||
131
node_modules/puppeteer/package.json
generated
vendored
Normal file
131
node_modules/puppeteer/package.json
generated
vendored
Normal file
@@ -0,0 +1,131 @@
|
||||
{
|
||||
"name": "puppeteer",
|
||||
"version": "25.0.4",
|
||||
"description": "A high-level API to control headless Chrome over the DevTools Protocol",
|
||||
"keywords": [
|
||||
"puppeteer",
|
||||
"chrome",
|
||||
"headless",
|
||||
"automation"
|
||||
],
|
||||
"type": "module",
|
||||
"bin": "./lib/puppeteer/node/cli.js",
|
||||
"main": "./lib/puppeteer/puppeteer.js",
|
||||
"module": "./lib/puppeteer/puppeteer.js",
|
||||
"types": "./lib/types.d.ts",
|
||||
"exports": {
|
||||
".": {
|
||||
"types": "./lib/types.d.ts",
|
||||
"import": "./lib/puppeteer/puppeteer.js",
|
||||
"require": "./lib/puppeteer/puppeteer.js"
|
||||
},
|
||||
"./internal/*": {
|
||||
"import": "./lib/puppeteer/*",
|
||||
"require": "./lib/puppeteer/*"
|
||||
},
|
||||
"./*": {
|
||||
"import": "./*",
|
||||
"require": "./*"
|
||||
}
|
||||
},
|
||||
"repository": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/puppeteer/puppeteer/tree/main/packages/puppeteer"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">=22.12.0"
|
||||
},
|
||||
"scripts": {
|
||||
"build:docs": "wireit",
|
||||
"build": "wireit",
|
||||
"clean": "../../tools/clean.mjs",
|
||||
"postinstall": "node install.mjs",
|
||||
"prepack": "wireit"
|
||||
},
|
||||
"wireit": {
|
||||
"prepack": {
|
||||
"command": "node --experimental-strip-types ../../tools/cp.ts ../../README.md README.md",
|
||||
"files": [
|
||||
"../../README.md"
|
||||
],
|
||||
"output": [
|
||||
"README.md"
|
||||
]
|
||||
},
|
||||
"build": {
|
||||
"dependencies": [
|
||||
"build:tsc",
|
||||
"build:types"
|
||||
]
|
||||
},
|
||||
"build:docs": {
|
||||
"command": "api-extractor run --local --config \"./api-extractor.docs.json\"",
|
||||
"files": [
|
||||
"api-extractor.docs.json",
|
||||
"lib/puppeteer/puppeteer.docs.d.ts",
|
||||
"tsconfig.json"
|
||||
],
|
||||
"dependencies": [
|
||||
"build:tsc"
|
||||
]
|
||||
},
|
||||
"build:tsc": {
|
||||
"command": "tsc -b && node --experimental-strip-types ../../tools/chmod.ts 755 lib/puppeteer/node/cli.js",
|
||||
"clean": "if-file-deleted",
|
||||
"dependencies": [
|
||||
"../puppeteer-core:build",
|
||||
"../browsers:build"
|
||||
],
|
||||
"files": [
|
||||
"src/**"
|
||||
],
|
||||
"output": [
|
||||
"lib/**",
|
||||
"!lib/package.json"
|
||||
]
|
||||
},
|
||||
"build:types": {
|
||||
"command": "api-extractor run --local && eslint --fix lib/types.d.ts --no-ignore",
|
||||
"files": [
|
||||
"api-extractor.json",
|
||||
"lib/puppeteer/types.d.ts",
|
||||
"tsconfig.json"
|
||||
],
|
||||
"output": [
|
||||
"lib/types.d.ts"
|
||||
],
|
||||
"dependencies": [
|
||||
"build:tsc"
|
||||
]
|
||||
}
|
||||
},
|
||||
"files": [
|
||||
"lib",
|
||||
"src",
|
||||
"install.mjs",
|
||||
"!*.test.ts",
|
||||
"!*.test.js",
|
||||
"!*.test.d.ts",
|
||||
"!*.test.js.map",
|
||||
"!*.test.d.ts.map",
|
||||
"!*.docs.ts",
|
||||
"!*.docs.js",
|
||||
"!*.docs.d.ts",
|
||||
"!*.docs.js.map",
|
||||
"!*.docs.d.ts.map",
|
||||
"!*.tsbuildinfo"
|
||||
],
|
||||
"author": "The Chromium Authors",
|
||||
"license": "Apache-2.0",
|
||||
"dependencies": {
|
||||
"@puppeteer/browsers": "3.0.3",
|
||||
"chromium-bidi": "16.0.1",
|
||||
"cosmiconfig": "^9.0.0",
|
||||
"devtools-protocol": "0.0.1608973",
|
||||
"puppeteer-core": "25.0.4",
|
||||
"typed-query-selector": "^2.12.2"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@types/node": "^18.17.15"
|
||||
}
|
||||
}
|
||||
166
node_modules/puppeteer/src/getConfiguration.ts
generated
vendored
Normal file
166
node_modules/puppeteer/src/getConfiguration.ts
generated
vendored
Normal file
@@ -0,0 +1,166 @@
|
||||
/**
|
||||
* @license
|
||||
* Copyright 2023 Google Inc.
|
||||
* SPDX-License-Identifier: Apache-2.0
|
||||
*/
|
||||
|
||||
import {homedir} from 'node:os';
|
||||
import {join} from 'node:path';
|
||||
|
||||
import {cosmiconfig} from 'cosmiconfig';
|
||||
import type {
|
||||
ChromeHeadlessShellSettings,
|
||||
ChromeSettings,
|
||||
Configuration,
|
||||
FirefoxSettings,
|
||||
SupportedBrowser,
|
||||
} from 'puppeteer-core';
|
||||
|
||||
function getBooleanEnvVar(name: string): boolean | undefined {
|
||||
const env = process.env[name];
|
||||
if (env === undefined) {
|
||||
return;
|
||||
}
|
||||
switch (env.toLowerCase()) {
|
||||
case '':
|
||||
case '0':
|
||||
case 'false':
|
||||
case 'off':
|
||||
return false;
|
||||
default:
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* @internal
|
||||
*/
|
||||
function isSupportedBrowser(product: unknown): product is SupportedBrowser {
|
||||
switch (product) {
|
||||
case 'chrome':
|
||||
case 'firefox':
|
||||
return true;
|
||||
default:
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* @internal
|
||||
*/
|
||||
function getDefaultBrowser(browser: unknown): SupportedBrowser {
|
||||
// Validate configuration.
|
||||
if (browser && !isSupportedBrowser(browser)) {
|
||||
throw new Error(`Unsupported browser ${browser}`);
|
||||
}
|
||||
switch (browser) {
|
||||
case 'firefox':
|
||||
return 'firefox';
|
||||
default:
|
||||
return 'chrome';
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* @internal
|
||||
*/
|
||||
function getLogLevel(logLevel: unknown): 'silent' | 'error' | 'warn' {
|
||||
switch (logLevel) {
|
||||
case 'silent':
|
||||
return 'silent';
|
||||
case 'error':
|
||||
return 'error';
|
||||
default:
|
||||
return 'warn';
|
||||
}
|
||||
}
|
||||
|
||||
function getBrowserSetting(
|
||||
browser: 'chrome' | 'chrome-headless-shell' | 'firefox',
|
||||
configuration: Configuration,
|
||||
defaultConfig:
|
||||
| ChromeSettings
|
||||
| ChromeHeadlessShellSettings
|
||||
| FirefoxSettings = {},
|
||||
): ChromeSettings | ChromeHeadlessShellSettings | FirefoxSettings {
|
||||
if (configuration.skipDownload) {
|
||||
return {
|
||||
skipDownload: true,
|
||||
};
|
||||
}
|
||||
const browserSetting:
|
||||
| ChromeSettings
|
||||
| ChromeHeadlessShellSettings
|
||||
| FirefoxSettings = {};
|
||||
const browserEnvName = browser.replaceAll('-', '_').toUpperCase();
|
||||
|
||||
browserSetting.version =
|
||||
process.env[`PUPPETEER_${browserEnvName}_VERSION`] ??
|
||||
configuration[browser]?.version ??
|
||||
defaultConfig.version;
|
||||
browserSetting.downloadBaseUrl =
|
||||
process.env[`PUPPETEER_${browserEnvName}_DOWNLOAD_BASE_URL`] ??
|
||||
configuration[browser]?.downloadBaseUrl ??
|
||||
defaultConfig.downloadBaseUrl;
|
||||
|
||||
browserSetting.skipDownload =
|
||||
getBooleanEnvVar(`PUPPETEER_${browserEnvName}_SKIP_DOWNLOAD`) ??
|
||||
getBooleanEnvVar(`PUPPETEER_SKIP_${browserEnvName}_DOWNLOAD`) ??
|
||||
configuration[browser]?.skipDownload ??
|
||||
defaultConfig.skipDownload;
|
||||
|
||||
return browserSetting;
|
||||
}
|
||||
|
||||
/**
|
||||
* @internal
|
||||
*/
|
||||
export const getConfiguration = async (): Promise<Configuration> => {
|
||||
const result = await cosmiconfig('puppeteer', {
|
||||
searchStrategy: 'global',
|
||||
}).search();
|
||||
const configuration: Configuration = result ? {...result.config} : {};
|
||||
|
||||
configuration.logLevel = getLogLevel(
|
||||
process.env['PUPPETEER_LOGLEVEL'] ?? configuration.logLevel,
|
||||
);
|
||||
|
||||
// Merging environment variables.
|
||||
configuration.defaultBrowser = getDefaultBrowser(
|
||||
process.env['PUPPETEER_BROWSER'] ?? configuration.defaultBrowser,
|
||||
);
|
||||
|
||||
configuration.executablePath =
|
||||
process.env['PUPPETEER_EXECUTABLE_PATH'] ?? configuration.executablePath;
|
||||
|
||||
// Default to skipDownload if executablePath is set
|
||||
if (configuration.executablePath) {
|
||||
configuration.skipDownload = true;
|
||||
}
|
||||
|
||||
// Set skipDownload explicitly or from default
|
||||
configuration.skipDownload =
|
||||
getBooleanEnvVar('PUPPETEER_SKIP_DOWNLOAD') ?? configuration.skipDownload;
|
||||
|
||||
// Prepare variables used in browser downloading
|
||||
configuration.chrome = getBrowserSetting('chrome', configuration);
|
||||
configuration['chrome-headless-shell'] = getBrowserSetting(
|
||||
'chrome-headless-shell',
|
||||
configuration,
|
||||
);
|
||||
configuration.firefox = getBrowserSetting('firefox', configuration, {
|
||||
skipDownload: true,
|
||||
});
|
||||
|
||||
configuration.cacheDirectory =
|
||||
process.env['PUPPETEER_CACHE_DIR'] ??
|
||||
configuration.cacheDirectory ??
|
||||
join(homedir(), '.cache', 'puppeteer');
|
||||
|
||||
configuration.temporaryDirectory =
|
||||
process.env['PUPPETEER_TMP_DIR'] ?? configuration.temporaryDirectory;
|
||||
|
||||
configuration.experiments ??= {};
|
||||
|
||||
return configuration;
|
||||
};
|
||||
46
node_modules/puppeteer/src/node/cli.ts
generated
vendored
Normal file
46
node_modules/puppeteer/src/node/cli.ts
generated
vendored
Normal file
@@ -0,0 +1,46 @@
|
||||
#!/usr/bin/env node
|
||||
|
||||
/**
|
||||
* @license
|
||||
* Copyright 2023 Google Inc.
|
||||
* SPDX-License-Identifier: Apache-2.0
|
||||
*/
|
||||
|
||||
import {CLI, Browser} from '@puppeteer/browsers';
|
||||
import type {PuppeteerNode} from 'puppeteer-core/internal/node/PuppeteerNode.js';
|
||||
import {PUPPETEER_REVISIONS} from 'puppeteer-core/internal/revisions.js';
|
||||
import {packageVersion} from 'puppeteer-core/internal/util/version.js';
|
||||
|
||||
import puppeteer from '../puppeteer.js';
|
||||
|
||||
const config = await (puppeteer as unknown as PuppeteerNode).configuration();
|
||||
|
||||
void new CLI({
|
||||
cachePath: config.cacheDirectory!,
|
||||
scriptName: 'puppeteer',
|
||||
version: packageVersion,
|
||||
prefixCommand: {
|
||||
cmd: 'browsers',
|
||||
description: 'Manage browsers of this Puppeteer installation',
|
||||
},
|
||||
allowCachePathOverride: false,
|
||||
pinnedBrowsers: {
|
||||
[Browser.CHROME]: {
|
||||
buildId:
|
||||
config.chrome?.version || PUPPETEER_REVISIONS['chrome'] || 'latest',
|
||||
skipDownload: config.chrome?.skipDownload ?? false,
|
||||
},
|
||||
[Browser.FIREFOX]: {
|
||||
buildId:
|
||||
config.firefox?.version || PUPPETEER_REVISIONS['firefox'] || 'latest',
|
||||
skipDownload: config.firefox?.skipDownload ?? true,
|
||||
},
|
||||
[Browser.CHROMEHEADLESSSHELL]: {
|
||||
buildId:
|
||||
config['chrome-headless-shell']?.version ||
|
||||
PUPPETEER_REVISIONS['chrome-headless-shell'] ||
|
||||
'latest',
|
||||
skipDownload: config['chrome-headless-shell']?.skipDownload ?? false,
|
||||
},
|
||||
},
|
||||
}).run(process.argv);
|
||||
167
node_modules/puppeteer/src/node/install.ts
generated
vendored
Normal file
167
node_modules/puppeteer/src/node/install.ts
generated
vendored
Normal file
@@ -0,0 +1,167 @@
|
||||
/**
|
||||
* @license
|
||||
* Copyright 2020 Google Inc.
|
||||
* SPDX-License-Identifier: Apache-2.0
|
||||
*/
|
||||
|
||||
import type {BrowserPlatform} from '@puppeteer/browsers';
|
||||
import {
|
||||
install,
|
||||
Browser,
|
||||
resolveBuildId,
|
||||
detectBrowserPlatform,
|
||||
} from '@puppeteer/browsers';
|
||||
import type {
|
||||
ChromeHeadlessShellSettings,
|
||||
ChromeSettings,
|
||||
FirefoxSettings,
|
||||
} from 'puppeteer-core';
|
||||
import {PUPPETEER_REVISIONS} from 'puppeteer-core/internal/revisions.js';
|
||||
|
||||
import {getConfiguration} from '../getConfiguration.js';
|
||||
|
||||
async function downloadBrowser({
|
||||
browser,
|
||||
configuration,
|
||||
cacheDir,
|
||||
platform,
|
||||
}: {
|
||||
browser: Extract<
|
||||
Browser,
|
||||
Browser.CHROME | Browser.CHROMEHEADLESSSHELL | Browser.FIREFOX
|
||||
>;
|
||||
configuration: ChromeSettings | ChromeHeadlessShellSettings | FirefoxSettings;
|
||||
platform: BrowserPlatform;
|
||||
cacheDir: string;
|
||||
}) {
|
||||
const unresolvedBuildId =
|
||||
configuration?.version || PUPPETEER_REVISIONS[browser] || 'latest';
|
||||
const baseUrl = configuration?.downloadBaseUrl;
|
||||
const buildId = await resolveBuildId(browser, platform, unresolvedBuildId);
|
||||
|
||||
try {
|
||||
const result = await install({
|
||||
browser,
|
||||
cacheDir,
|
||||
platform,
|
||||
buildId,
|
||||
downloadProgressCallback: 'default',
|
||||
baseUrl,
|
||||
buildIdAlias:
|
||||
buildId !== unresolvedBuildId ? unresolvedBuildId : undefined,
|
||||
});
|
||||
logPolitely(`${browser} (${result.buildId}) downloaded to ${result.path}`);
|
||||
} catch (error) {
|
||||
throw new Error(
|
||||
`ERROR: Failed to set up ${browser} v${buildId}! Set "PUPPETEER_SKIP_DOWNLOAD" env variable to skip download.`,
|
||||
{
|
||||
cause: error,
|
||||
},
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* @internal
|
||||
*/
|
||||
export async function downloadBrowsers(): Promise<void> {
|
||||
overrideProxy();
|
||||
|
||||
const configuration = await getConfiguration();
|
||||
if (configuration.skipDownload) {
|
||||
logPolitely('**INFO** Skipping downloading browsers as instructed.');
|
||||
return;
|
||||
}
|
||||
|
||||
const platform = detectBrowserPlatform();
|
||||
if (!platform) {
|
||||
throw new Error('The current platform is not supported.');
|
||||
}
|
||||
const cacheDir = configuration.cacheDirectory!;
|
||||
|
||||
const installationJobs = [];
|
||||
if (configuration.chrome?.skipDownload) {
|
||||
logPolitely('**INFO** Skipping Chrome download as instructed.');
|
||||
} else {
|
||||
const browser = Browser.CHROME;
|
||||
installationJobs.push(
|
||||
downloadBrowser({
|
||||
browser,
|
||||
configuration: configuration[browser] ?? {},
|
||||
cacheDir,
|
||||
platform,
|
||||
}),
|
||||
);
|
||||
}
|
||||
|
||||
if (configuration['chrome-headless-shell']?.skipDownload) {
|
||||
logPolitely('**INFO** Skipping Chrome download as instructed.');
|
||||
} else {
|
||||
const browser = Browser.CHROMEHEADLESSSHELL;
|
||||
|
||||
installationJobs.push(
|
||||
downloadBrowser({
|
||||
browser,
|
||||
configuration: configuration[browser] ?? {},
|
||||
cacheDir,
|
||||
platform,
|
||||
}),
|
||||
);
|
||||
}
|
||||
|
||||
if (configuration.firefox?.skipDownload) {
|
||||
logPolitely('**INFO** Skipping Firefox download as instructed.');
|
||||
} else {
|
||||
const browser = Browser.FIREFOX;
|
||||
|
||||
installationJobs.push(
|
||||
downloadBrowser({
|
||||
browser,
|
||||
configuration: configuration[browser] ?? {},
|
||||
cacheDir,
|
||||
platform,
|
||||
}),
|
||||
);
|
||||
}
|
||||
|
||||
try {
|
||||
await Promise.all(installationJobs);
|
||||
} catch (error) {
|
||||
console.error(error);
|
||||
process.exit(1);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* @internal
|
||||
*/
|
||||
function logPolitely(toBeLogged: unknown): void {
|
||||
const logLevel = process.env['npm_config_loglevel'] || '';
|
||||
const logLevelDisplay = ['silent', 'error', 'warn'].indexOf(logLevel) > -1;
|
||||
|
||||
if (!logLevelDisplay) {
|
||||
console.log(toBeLogged);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* @internal
|
||||
*/
|
||||
function overrideProxy() {
|
||||
// Override current environment proxy settings with npm configuration, if any.
|
||||
const NPM_HTTPS_PROXY =
|
||||
process.env['npm_config_https_proxy'] || process.env['npm_config_proxy'];
|
||||
const NPM_HTTP_PROXY =
|
||||
process.env['npm_config_http_proxy'] || process.env['npm_config_proxy'];
|
||||
const NPM_NO_PROXY = process.env['npm_config_no_proxy'];
|
||||
|
||||
if (NPM_HTTPS_PROXY) {
|
||||
process.env['HTTPS_PROXY'] = NPM_HTTPS_PROXY;
|
||||
}
|
||||
if (NPM_HTTP_PROXY) {
|
||||
process.env['HTTP_PROXY'] = NPM_HTTP_PROXY;
|
||||
}
|
||||
if (NPM_NO_PROXY) {
|
||||
process.env['NO_PROXY'] = NPM_NO_PROXY;
|
||||
}
|
||||
}
|
||||
45
node_modules/puppeteer/src/puppeteer.ts
generated
vendored
Normal file
45
node_modules/puppeteer/src/puppeteer.ts
generated
vendored
Normal file
@@ -0,0 +1,45 @@
|
||||
/**
|
||||
* @license
|
||||
* Copyright 2017 Google Inc.
|
||||
* SPDX-License-Identifier: Apache-2.0
|
||||
*/
|
||||
|
||||
export * from 'puppeteer-core';
|
||||
|
||||
import {PuppeteerNode} from 'puppeteer-core';
|
||||
|
||||
import {getConfiguration} from './getConfiguration.js';
|
||||
|
||||
/**
|
||||
* @public
|
||||
*/
|
||||
// @ts-expect-error using internal API.
|
||||
const puppeteer = new PuppeteerNode({
|
||||
isPuppeteerCore: false,
|
||||
configuration: getConfiguration,
|
||||
});
|
||||
|
||||
export const {
|
||||
/**
|
||||
* @public
|
||||
*/
|
||||
connect,
|
||||
/**
|
||||
* @public
|
||||
*/
|
||||
defaultArgs,
|
||||
/**
|
||||
* @public
|
||||
*/
|
||||
executablePath,
|
||||
/**
|
||||
* @public
|
||||
*/
|
||||
launch,
|
||||
/**
|
||||
* @public
|
||||
*/
|
||||
trimCache,
|
||||
} = puppeteer;
|
||||
|
||||
export default puppeteer;
|
||||
Reference in New Issue
Block a user