A big commit with a bunch of node modules so I could run puppeteer for Walmart. Added some todos and Headway's templates.

This commit is contained in:
Norm Rasmussen
2024-02-28 17:13:10 -05:00
parent dbcdfc8472
commit 1184fe0cd1
1107 changed files with 76526 additions and 8934 deletions

View File

@ -46,10 +46,10 @@ pnpm i puppeteer
```
When you install Puppeteer, it automatically downloads a recent version of
[Chrome for Testing](https://developer.chrome.com/blog/chrome-for-testing/) (~170MB macOS, ~282MB Linux, ~280MB Windows) that is [guaranteed to
[Chrome for Testing](https://developer.chrome.com/blog/chrome-for-testing/) (~170MB macOS, ~282MB Linux, ~280MB Windows) and a `chrome-headless-shell` binary (starting with Puppeteer v21.6.0) that is [guaranteed to
work](https://pptr.dev/faq#q-why-doesnt-puppeteer-vxxx-work-with-chromium-vyyy)
with Puppeteer. The browser is downloaded to the `$HOME/.cache/puppeteer` folder
by default (starting with Puppeteer v19.0.0).
by default (starting with Puppeteer v19.0.0). See [configuration](https://pptr.dev/api/puppeteer.configuration) for configuration options and environmental variables to control the download behavor.
If you deploy a project using Puppeteer to a hosting provider, such as Render or
Heroku, you might need to reconfigure the location of the cache to be within
@ -156,10 +156,10 @@ import puppeteer from 'puppeteer';
await page.setViewport({width: 1080, height: 1024});
// Type into search box
await page.type('.search-box__input', 'automate beyond recorder');
await page.type('.devsite-search-field', 'automate beyond recorder');
// Wait and click on first result
const searchResultSelector = '.search-box__link';
const searchResultSelector = '.devsite-result-item-link';
await page.waitForSelector(searchResultSelector);
await page.click(searchResultSelector);

View File

@ -16,17 +16,19 @@
* necessary.
*/
async function importInstaller() {
try {
return await import('puppeteer/internal/node/install.js');
} catch {
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 {downloadBrowser} = await (async () => {
try {
return await import('puppeteer/internal/node/install.js');
} catch {
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);
}
})();
const {downloadBrowser} = await importInstaller();
downloadBrowser();
} catch (error) {
console.warn('Browser download failed', error);

View File

@ -1 +1 @@
{"version":3,"file":"getConfiguration.d.ts","sourceRoot":"","sources":["../../../src/getConfiguration.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAMH,OAAO,KAAK,EAAC,aAAa,EAAU,MAAM,gBAAgB,CAAC;AAe3D;;GAEG;AACH,eAAO,MAAM,gBAAgB,QAAO,aAyFnC,CAAC"}
{"version":3,"file":"getConfiguration.d.ts","sourceRoot":"","sources":["../../../src/getConfiguration.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAMH,OAAO,KAAK,EAAC,aAAa,EAAU,MAAM,gBAAgB,CAAC;AA+B3D;;GAEG;AACH,eAAO,MAAM,gBAAgB,QAAO,aA+GnC,CAAC"}

View File

@ -9,6 +9,21 @@ exports.getConfiguration = void 0;
const os_1 = require("os");
const path_1 = require("path");
const cosmiconfig_1 = require("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
*/
@ -25,7 +40,9 @@ function isSupportedProduct(product) {
* @internal
*/
const getConfiguration = () => {
const result = (0, cosmiconfig_1.cosmiconfigSync)('puppeteer').search();
const result = (0, cosmiconfig_1.cosmiconfigSync)('puppeteer', {
searchStrategy: 'global',
}).search();
const configuration = result ? result.config : {};
configuration.logLevel = (process.env['PUPPETEER_LOGLEVEL'] ??
process.env['npm_config_LOGLEVEL'] ??
@ -48,10 +65,20 @@ const getConfiguration = () => {
configuration.skipDownload = true;
}
// Set skipDownload explicitly or from default
configuration.skipDownload = Boolean(process.env['PUPPETEER_SKIP_DOWNLOAD'] ??
process.env['npm_config_puppeteer_skip_download'] ??
process.env['npm_package_config_puppeteer_skip_download'] ??
configuration.skipDownload = Boolean(getBooleanEnvVar('PUPPETEER_SKIP_DOWNLOAD') ??
getBooleanEnvVar('npm_config_puppeteer_skip_download') ??
getBooleanEnvVar('npm_package_config_puppeteer_skip_download') ??
configuration.skipDownload);
// Set skipChromeDownload explicitly or from default
configuration.skipChromeDownload = Boolean(getBooleanEnvVar('PUPPETEER_SKIP_CHROME_DOWNLOAD') ??
getBooleanEnvVar('npm_config_puppeteer_skip_chrome_download') ??
getBooleanEnvVar('npm_package_config_puppeteer_skip_chrome_download') ??
configuration.skipChromeDownload);
// Set skipChromeDownload explicitly or from default
configuration.skipChromeHeadlessShellDownload = Boolean(getBooleanEnvVar('PUPPETEER_SKIP_CHROME_HEADLESS_SHELL_DOWNLOAD') ??
getBooleanEnvVar('npm_config_puppeteer_skip_chrome_headless_shell_download') ??
getBooleanEnvVar('npm_package_config_puppeteer_skip_chrome_headless_shell_download') ??
configuration.skipChromeHeadlessShellDownload);
// Prepare variables used in browser downloading
if (!configuration.skipDownload) {
configuration.browserRevision =

View File

@ -1 +1 @@
{"version":3,"file":"getConfiguration.js","sourceRoot":"","sources":["../../../src/getConfiguration.ts"],"names":[],"mappings":"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"}
{"version":3,"file":"getConfiguration.js","sourceRoot":"","sources":["../../../src/getConfiguration.ts"],"names":[],"mappings":"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"}

View File

@ -26,6 +26,7 @@ void new browsers_1.CLI({
pinnedBrowsers: {
[browsers_1.Browser.CHROME]: revisions_js_1.PUPPETEER_REVISIONS.chrome,
[browsers_1.Browser.FIREFOX]: revisions_js_1.PUPPETEER_REVISIONS.firefox,
[browsers_1.Browser.CHROMEHEADLESSSHELL]: revisions_js_1.PUPPETEER_REVISIONS['chrome-headless-shell'],
},
}).run(process.argv);
//# sourceMappingURL=cli.js.map

View File

@ -1 +1 @@
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../../../../src/node/cli.ts"],"names":[],"mappings":";;AAEA;;;;GAIG;;;;;AAEH,kDAAiD;AACjD,uEAAyE;AAEzE,mEAAwC;AAExC,4DAA4D;AAC5D,MAAM,QAAQ,GACZ,sBAAS,CAAC,aAAa,CAAC,YAAY;IACpC,sBAAS,CAAC,aAAa,CAAC,cAAe,CAAC;AAE1C,KAAK,IAAI,cAAG,CAAC;IACX,SAAS,EAAE,QAAQ;IACnB,UAAU,EAAE,WAAW;IACvB,aAAa,EAAE;QACb,GAAG,EAAE,UAAU;QACf,WAAW,EAAE,gDAAgD;KAC9D;IACD,sBAAsB,EAAE,KAAK;IAC7B,cAAc,EAAE;QACd,CAAC,kBAAO,CAAC,MAAM,CAAC,EAAE,kCAAmB,CAAC,MAAM;QAC5C,CAAC,kBAAO,CAAC,OAAO,CAAC,EAAE,kCAAmB,CAAC,OAAO;KAC/C;CACF,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC"}
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../../../../src/node/cli.ts"],"names":[],"mappings":";;AAEA;;;;GAIG;;;;;AAEH,kDAAiD;AACjD,uEAAyE;AAEzE,mEAAwC;AAExC,4DAA4D;AAC5D,MAAM,QAAQ,GACZ,sBAAS,CAAC,aAAa,CAAC,YAAY;IACpC,sBAAS,CAAC,aAAa,CAAC,cAAe,CAAC;AAE1C,KAAK,IAAI,cAAG,CAAC;IACX,SAAS,EAAE,QAAQ;IACnB,UAAU,EAAE,WAAW;IACvB,aAAa,EAAE;QACb,GAAG,EAAE,UAAU;QACf,WAAW,EAAE,gDAAgD;KAC9D;IACD,sBAAsB,EAAE,KAAK;IAC7B,cAAc,EAAE;QACd,CAAC,kBAAO,CAAC,MAAM,CAAC,EAAE,kCAAmB,CAAC,MAAM;QAC5C,CAAC,kBAAO,CAAC,OAAO,CAAC,EAAE,kCAAmB,CAAC,OAAO;QAC9C,CAAC,kBAAO,CAAC,mBAAmB,CAAC,EAAE,kCAAmB,CAAC,uBAAuB,CAAC;KAC5E;CACF,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC"}

View File

@ -1 +1 @@
{"version":3,"file":"install.d.ts","sourceRoot":"","sources":["../../../../src/node/install.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAsBH;;GAEG;AACH,wBAAsB,eAAe,IAAI,OAAO,CAAC,IAAI,CAAC,CA8CrD"}
{"version":3,"file":"install.d.ts","sourceRoot":"","sources":["../../../../src/node/install.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAsBH;;GAEG;AACH,wBAAsB,eAAe,IAAI,OAAO,CAAC,IAAI,CAAC,CA6GrD"}

View File

@ -34,22 +34,62 @@ async function downloadBrowser() {
const product = configuration.defaultProduct;
const browser = productToBrowser(product);
const unresolvedBuildId = configuration.browserRevision || revisions_js_1.PUPPETEER_REVISIONS[product] || 'latest';
const buildId = await (0, browsers_1.resolveBuildId)(browser, platform, unresolvedBuildId);
const unresolvedShellBuildId = configuration.browserRevision ||
revisions_js_1.PUPPETEER_REVISIONS['chrome-headless-shell'] ||
'latest';
// TODO: deprecate downloadPath in favour of cacheDirectory.
const cacheDir = configuration.downloadPath ?? configuration.cacheDirectory;
try {
const result = await (0, browsers_1.install)({
browser,
cacheDir,
platform,
buildId,
downloadProgressCallback: (0, browsers_1.makeProgressCallback)(browser, buildId),
baseUrl: downloadBaseUrl,
});
logPolitely(`${supportedProducts[product]} (${result.buildId}) downloaded to ${result.path}`);
const installationJobs = [];
if (configuration.skipChromeDownload) {
logPolitely('**INFO** Skipping Chrome download as instructed.');
}
else {
const buildId = await (0, browsers_1.resolveBuildId)(browser, platform, unresolvedBuildId);
installationJobs.push((0, browsers_1.install)({
browser,
cacheDir,
platform,
buildId,
downloadProgressCallback: (0, browsers_1.makeProgressCallback)(browser, buildId),
baseUrl: downloadBaseUrl,
})
.then(result => {
logPolitely(`${supportedProducts[product]} (${result.buildId}) downloaded to ${result.path}`);
})
.catch(error => {
throw new Error(`ERROR: Failed to set up ${supportedProducts[product]} v${buildId}! Set "PUPPETEER_SKIP_DOWNLOAD" env variable to skip download.`, {
cause: error,
});
}));
}
if (browser === browsers_1.Browser.CHROME) {
if (configuration.skipChromeHeadlessShellDownload) {
logPolitely('**INFO** Skipping Chrome download as instructed.');
}
else {
const shellBuildId = await (0, browsers_1.resolveBuildId)(browser, platform, unresolvedShellBuildId);
installationJobs.push((0, browsers_1.install)({
browser: browsers_1.Browser.CHROMEHEADLESSSHELL,
cacheDir,
platform,
buildId: shellBuildId,
downloadProgressCallback: (0, browsers_1.makeProgressCallback)(browser, shellBuildId),
baseUrl: downloadBaseUrl,
})
.then(result => {
logPolitely(`${browsers_1.Browser.CHROMEHEADLESSSHELL} (${result.buildId}) downloaded to ${result.path}`);
})
.catch(error => {
throw new Error(`ERROR: Failed to set up ${browsers_1.Browser.CHROMEHEADLESSSHELL} v${shellBuildId}! Set "PUPPETEER_SKIP_DOWNLOAD" env variable to skip download.`, {
cause: error,
});
}));
}
}
await Promise.all(installationJobs);
}
catch (error) {
console.error(`ERROR: Failed to set up ${supportedProducts[product]} r${buildId}! Set "PUPPETEER_SKIP_DOWNLOAD" env variable to skip download.`);
console.error(error);
process.exit(1);
}

View File

@ -1 +1 @@
{"version":3,"file":"install.js","sourceRoot":"","sources":["../../../../src/node/install.ts"],"names":[],"mappings":"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"}
{"version":3,"file":"install.js","sourceRoot":"","sources":["../../../../src/node/install.ts"],"names":[],"mappings":"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"}

View File

@ -1 +1 @@
{"version":3,"file":"getConfiguration.d.ts","sourceRoot":"","sources":["../../../src/getConfiguration.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAMH,OAAO,KAAK,EAAC,aAAa,EAAU,MAAM,gBAAgB,CAAC;AAe3D;;GAEG;AACH,eAAO,MAAM,gBAAgB,QAAO,aAyFnC,CAAC"}
{"version":3,"file":"getConfiguration.d.ts","sourceRoot":"","sources":["../../../src/getConfiguration.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAMH,OAAO,KAAK,EAAC,aAAa,EAAU,MAAM,gBAAgB,CAAC;AA+B3D;;GAEG;AACH,eAAO,MAAM,gBAAgB,QAAO,aA+GnC,CAAC"}

View File

@ -6,6 +6,21 @@
import { homedir } from 'os';
import { join } from 'path';
import { cosmiconfigSync } 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
*/
@ -22,7 +37,9 @@ function isSupportedProduct(product) {
* @internal
*/
export const getConfiguration = () => {
const result = cosmiconfigSync('puppeteer').search();
const result = cosmiconfigSync('puppeteer', {
searchStrategy: 'global',
}).search();
const configuration = result ? result.config : {};
configuration.logLevel = (process.env['PUPPETEER_LOGLEVEL'] ??
process.env['npm_config_LOGLEVEL'] ??
@ -45,10 +62,20 @@ export const getConfiguration = () => {
configuration.skipDownload = true;
}
// Set skipDownload explicitly or from default
configuration.skipDownload = Boolean(process.env['PUPPETEER_SKIP_DOWNLOAD'] ??
process.env['npm_config_puppeteer_skip_download'] ??
process.env['npm_package_config_puppeteer_skip_download'] ??
configuration.skipDownload = Boolean(getBooleanEnvVar('PUPPETEER_SKIP_DOWNLOAD') ??
getBooleanEnvVar('npm_config_puppeteer_skip_download') ??
getBooleanEnvVar('npm_package_config_puppeteer_skip_download') ??
configuration.skipDownload);
// Set skipChromeDownload explicitly or from default
configuration.skipChromeDownload = Boolean(getBooleanEnvVar('PUPPETEER_SKIP_CHROME_DOWNLOAD') ??
getBooleanEnvVar('npm_config_puppeteer_skip_chrome_download') ??
getBooleanEnvVar('npm_package_config_puppeteer_skip_chrome_download') ??
configuration.skipChromeDownload);
// Set skipChromeDownload explicitly or from default
configuration.skipChromeHeadlessShellDownload = Boolean(getBooleanEnvVar('PUPPETEER_SKIP_CHROME_HEADLESS_SHELL_DOWNLOAD') ??
getBooleanEnvVar('npm_config_puppeteer_skip_chrome_headless_shell_download') ??
getBooleanEnvVar('npm_package_config_puppeteer_skip_chrome_headless_shell_download') ??
configuration.skipChromeHeadlessShellDownload);
// Prepare variables used in browser downloading
if (!configuration.skipDownload) {
configuration.browserRevision =

View File

@ -1 +1 @@
{"version":3,"file":"getConfiguration.js","sourceRoot":"","sources":["../../../src/getConfiguration.ts"],"names":[],"mappings":"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"}
{"version":3,"file":"getConfiguration.js","sourceRoot":"","sources":["../../../src/getConfiguration.ts"],"names":[],"mappings":"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"}

View File

@ -21,6 +21,7 @@ void new CLI({
pinnedBrowsers: {
[Browser.CHROME]: PUPPETEER_REVISIONS.chrome,
[Browser.FIREFOX]: PUPPETEER_REVISIONS.firefox,
[Browser.CHROMEHEADLESSSHELL]: PUPPETEER_REVISIONS['chrome-headless-shell'],
},
}).run(process.argv);
//# sourceMappingURL=cli.js.map

View File

@ -1 +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;AACjD,OAAO,EAAC,mBAAmB,EAAC,MAAM,sCAAsC,CAAC;AAEzE,OAAO,SAAS,MAAM,iBAAiB,CAAC;AAExC,4DAA4D;AAC5D,MAAM,QAAQ,GACZ,SAAS,CAAC,aAAa,CAAC,YAAY;IACpC,SAAS,CAAC,aAAa,CAAC,cAAe,CAAC;AAE1C,KAAK,IAAI,GAAG,CAAC;IACX,SAAS,EAAE,QAAQ;IACnB,UAAU,EAAE,WAAW;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,mBAAmB,CAAC,MAAM;QAC5C,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,mBAAmB,CAAC,OAAO;KAC/C;CACF,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC"}
{"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;AACjD,OAAO,EAAC,mBAAmB,EAAC,MAAM,sCAAsC,CAAC;AAEzE,OAAO,SAAS,MAAM,iBAAiB,CAAC;AAExC,4DAA4D;AAC5D,MAAM,QAAQ,GACZ,SAAS,CAAC,aAAa,CAAC,YAAY;IACpC,SAAS,CAAC,aAAa,CAAC,cAAe,CAAC;AAE1C,KAAK,IAAI,GAAG,CAAC;IACX,SAAS,EAAE,QAAQ;IACnB,UAAU,EAAE,WAAW;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,mBAAmB,CAAC,MAAM;QAC5C,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,mBAAmB,CAAC,OAAO;QAC9C,CAAC,OAAO,CAAC,mBAAmB,CAAC,EAAE,mBAAmB,CAAC,uBAAuB,CAAC;KAC5E;CACF,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC"}

View File

@ -1 +1 @@
{"version":3,"file":"install.d.ts","sourceRoot":"","sources":["../../../../src/node/install.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAsBH;;GAEG;AACH,wBAAsB,eAAe,IAAI,OAAO,CAAC,IAAI,CAAC,CA8CrD"}
{"version":3,"file":"install.d.ts","sourceRoot":"","sources":["../../../../src/node/install.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAsBH;;GAEG;AACH,wBAAsB,eAAe,IAAI,OAAO,CAAC,IAAI,CAAC,CA6GrD"}

View File

@ -31,22 +31,62 @@ export async function downloadBrowser() {
const product = configuration.defaultProduct;
const browser = productToBrowser(product);
const unresolvedBuildId = configuration.browserRevision || PUPPETEER_REVISIONS[product] || 'latest';
const buildId = await resolveBuildId(browser, platform, unresolvedBuildId);
const unresolvedShellBuildId = configuration.browserRevision ||
PUPPETEER_REVISIONS['chrome-headless-shell'] ||
'latest';
// TODO: deprecate downloadPath in favour of cacheDirectory.
const cacheDir = configuration.downloadPath ?? configuration.cacheDirectory;
try {
const result = await install({
browser,
cacheDir,
platform,
buildId,
downloadProgressCallback: makeProgressCallback(browser, buildId),
baseUrl: downloadBaseUrl,
});
logPolitely(`${supportedProducts[product]} (${result.buildId}) downloaded to ${result.path}`);
const installationJobs = [];
if (configuration.skipChromeDownload) {
logPolitely('**INFO** Skipping Chrome download as instructed.');
}
else {
const buildId = await resolveBuildId(browser, platform, unresolvedBuildId);
installationJobs.push(install({
browser,
cacheDir,
platform,
buildId,
downloadProgressCallback: makeProgressCallback(browser, buildId),
baseUrl: downloadBaseUrl,
})
.then(result => {
logPolitely(`${supportedProducts[product]} (${result.buildId}) downloaded to ${result.path}`);
})
.catch(error => {
throw new Error(`ERROR: Failed to set up ${supportedProducts[product]} v${buildId}! Set "PUPPETEER_SKIP_DOWNLOAD" env variable to skip download.`, {
cause: error,
});
}));
}
if (browser === Browser.CHROME) {
if (configuration.skipChromeHeadlessShellDownload) {
logPolitely('**INFO** Skipping Chrome download as instructed.');
}
else {
const shellBuildId = await resolveBuildId(browser, platform, unresolvedShellBuildId);
installationJobs.push(install({
browser: Browser.CHROMEHEADLESSSHELL,
cacheDir,
platform,
buildId: shellBuildId,
downloadProgressCallback: makeProgressCallback(browser, shellBuildId),
baseUrl: downloadBaseUrl,
})
.then(result => {
logPolitely(`${Browser.CHROMEHEADLESSSHELL} (${result.buildId}) downloaded to ${result.path}`);
})
.catch(error => {
throw new Error(`ERROR: Failed to set up ${Browser.CHROMEHEADLESSSHELL} v${shellBuildId}! Set "PUPPETEER_SKIP_DOWNLOAD" env variable to skip download.`, {
cause: error,
});
}));
}
}
await Promise.all(installationJobs);
}
catch (error) {
console.error(`ERROR: Failed to set up ${supportedProducts[product]} r${buildId}! Set "PUPPETEER_SKIP_DOWNLOAD" env variable to skip download.`);
console.error(error);
process.exit(1);
}

View File

@ -1 +1 @@
{"version":3,"file":"install.js","sourceRoot":"","sources":["../../../../src/node/install.ts"],"names":[],"mappings":"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"}
{"version":3,"file":"install.js","sourceRoot":"","sources":["../../../../src/node/install.ts"],"names":[],"mappings":"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"}

View File

@ -127,6 +127,11 @@ export declare type AwaitableIterable<T> = Iterable<T> | AsyncIterable<T>;
/* Excluded from this release type: AwaitableIterator */
/**
* @public
*/
export declare type AwaitablePredicate<T> = (value: T) => Awaitable<boolean>;
/**
* @public
*/
@ -134,52 +139,6 @@ export declare type AwaitedLocator<T> = T extends Locator<infer S> ? S : never;
declare type BeginSubclassSelectorTokens = ['.', '#', '[', ':'];
/* Excluded from this release type: BidiBrowser */
/* Excluded from this release type: BidiBrowserContext */
/* Excluded from this release type: BidiBrowserContextOptions */
/* Excluded from this release type: BidiBrowserOptions */
/* Excluded from this release type: BiDiBrowsingContextTarget */
/* Excluded from this release type: BidiConnection */
/* Excluded from this release type: BidiEvents */
/* Excluded from this release type: BidiFrame */
/* Excluded from this release type: BidiHTTPRequest */
/* Excluded from this release type: BidiHTTPResponse */
/* Excluded from this release type: BidiJSHandle */
/* Excluded from this release type: BidiKeyboard */
/* Excluded from this release type: BidiMouse */
/* Excluded from this release type: BidiMouseClickOptions */
/* Excluded from this release type: BidiMouseMoveOptions */
/* Excluded from this release type: BiDiNetworkIdle */
/* Excluded from this release type: BidiNetworkManager */
/* Excluded from this release type: BidiPage */
/* Excluded from this release type: BiDiPageTarget */
/* Excluded from this release type: BidiRealm */
/* Excluded from this release type: BidiTarget */
/* Excluded from this release type: BidiTouchMoveOptions */
/* Excluded from this release type: BidiTouchscreen */
/* Excluded from this release type: Binding */
/* Excluded from this release type: BindingPayload */
@ -386,7 +345,7 @@ export declare abstract class Browser extends EventEmitter<BrowserEvents> {
/**
* Whether Puppeteer is connected to this {@link Browser | browser}.
*
* @deprecated Use {@link Browser.connected}.
* @deprecated Use {@link Browser | Browser.connected}.
*/
isConnected(): boolean;
/**
@ -396,6 +355,17 @@ export declare abstract class Browser extends EventEmitter<BrowserEvents> {
/* Excluded from this release type: [disposeSymbol] */
/* Excluded from this release type: [asyncDisposeSymbol] */
/* Excluded from this release type: protocol */
/**
* Get debug information from Puppeteer.
*
* @remarks
*
* Currently, includes pending protocol calls. In the future, we might add more info.
*
* @public
* @experimental
*/
abstract get debugInfo(): DebugInfo;
}
/* Excluded from this release type: BrowserCloseCallback */
@ -723,8 +693,6 @@ export declare interface BrowserLaunchArgumentOptions {
/* Excluded from this release type: BrowserWebSocketTransport */
/* Excluded from this release type: BrowsingContext */
/* Excluded from this release type: Callback */
/* Excluded from this release type: CallbackRegistry */
@ -872,8 +840,6 @@ export declare interface CommandOptions {
timeout: number;
}
/* Excluded from this release type: Commands */
/**
* @public
*/
@ -909,7 +875,13 @@ export declare interface Configuration {
* See {@link PuppeteerNode.launch | puppeteer.launch} on how executable path
* is inferred.
*
* @defaultValue A compatible-revision of the browser.
* Use a specific browser version (e.g., 119.0.6045.105). If you use an alias
* such `stable` or `canary` it will only work during the installation of
* Puppeteer and it will fail when launching the browser.
*
* @example 119.0.6045.105
* @defaultValue The pinned browser version supported by the current Puppeteer
* version.
*/
browserRevision?: string;
/**
@ -972,6 +944,18 @@ export declare interface Configuration {
* Can be overridden by `PUPPETEER_SKIP_DOWNLOAD`.
*/
skipDownload?: boolean;
/**
* Tells Puppeteer to not Chrome download during installation.
*
* Can be overridden by `PUPPETEER_SKIP_CHROME_DOWNLOAD`.
*/
skipChromeDownload?: boolean;
/**
* Tells Puppeteer to not chrome-headless-shell download during installation.
*
* Can be overridden by `PUPPETEER_SKIP_CHROME_HEADLESSS_HELL_DOWNLOAD`.
*/
skipChromeHeadlessShellDownload?: boolean;
/**
* Tells Puppeteer to log at the given level.
*
@ -1024,6 +1008,7 @@ export declare class Connection extends EventEmitter<CDPSessionEvents> {
* @returns The CDP session that is created
*/
createSession(targetInfo: Protocol.Target.TargetInfo): Promise<CDPSession>;
/* Excluded from this release type: getPendingProtocolErrors */
}
/**
@ -1236,8 +1221,6 @@ export declare interface CoverageEntry {
/* Excluded from this release type: createClientError */
/* Excluded from this release type: createDebuggableDeferred */
/* Excluded from this release type: createEvaluationError */
/* Excluded from this release type: createIncrementalIdGenerator */
@ -1346,6 +1329,14 @@ declare const customQuerySelectors: CustomQuerySelectorRegistry;
/* Excluded from this release type: debugError */
/**
* @public
* @experimental
*/
export declare interface DebugInfo {
pendingProtocolErrors: Error[];
}
/**
* The default cooperative request interception resolution priority
*
@ -1492,7 +1483,7 @@ export declare abstract class Dialog {
* is not a `prompt`.
*/
defaultValue(): string;
/* Excluded from this release type: sendCommand */
/* Excluded from this release type: handle */
/**
* A promise that resolves when the dialog has been accepted.
*
@ -2095,6 +2086,14 @@ export declare class EventEmitter<Events extends Record<EventType, unknown>> imp
* @returns `this` to enable you to chain method calls.
*/
off<Key extends keyof EventsWithWildcard<Events>>(type: Key, handler?: Handler<EventsWithWildcard<Events>[Key]>): this;
/**
* Emit an event and call any associated listeners.
*
* @param type - the event you'd like to emit
* @param eventData - any data you'd like to emit with the event
* @returns `true` if there are any listeners, `false` if there are not.
*/
emit<Key extends keyof EventsWithWildcard<Events>>(type: Key, event: EventsWithWildcard<Events>[Key]): boolean;
/**
* Remove an event listener.
*
@ -2107,14 +2106,6 @@ export declare class EventEmitter<Events extends Record<EventType, unknown>> imp
* @deprecated please use {@link EventEmitter.on} instead.
*/
addListener<Key extends keyof EventsWithWildcard<Events>>(type: Key, handler: Handler<EventsWithWildcard<Events>[Key]>): this;
/**
* Emit an event and call any associated listeners.
*
* @param type - the event you'd like to emit
* @param eventData - any data you'd like to emit with the event
* @returns `true` if there are any listeners, `false` if there are not.
*/
emit<Key extends keyof EventsWithWildcard<Events>>(type: Key, event: EventsWithWildcard<Events>[Key]): boolean;
/**
* Like `on` but the listener will only be fired once and then it will be removed.
* @param type - the event you'd like to listen to
@ -2137,6 +2128,7 @@ export declare class EventEmitter<Events extends Record<EventType, unknown>> imp
* @returns `this` to enable you to chain method calls.
*/
removeAllListeners(type?: keyof EventsWithWildcard<Events>): this;
/* Excluded from this release type: [disposeSymbol] */
}
/* Excluded from this release type: EventSubscription */
@ -2863,6 +2855,8 @@ export declare interface FrameWaitForFunctionOptions {
signal?: AbortSignal;
}
/* Excluded from this release type: fromEmitterEvent */
/* Excluded from this release type: FunctionLocator */
/**
@ -2891,8 +2885,6 @@ export declare interface GeolocationOptions {
/* Excluded from this release type: GetIdFn */
/* Excluded from this release type: getPageContent */
/* Excluded from this release type: getQueryHandlerAndSelector */
/* Excluded from this release type: getReadableAsBuffer */
@ -3976,8 +3968,6 @@ export declare interface LocatorScrollOptions extends ActionOptions {
*/
export declare type LowerCasePaperFormat = 'letter' | 'legal' | 'tabloid' | 'ledger' | 'a0' | 'a1' | 'a2' | 'a3' | 'a4' | 'a5' | 'a6';
/* Excluded from this release type: MAIN_SANDBOX */
/* Excluded from this release type: MAIN_WORLD */
/* Excluded from this release type: MappedLocator */
@ -4393,7 +4383,7 @@ export declare abstract class Page extends EventEmitter<PageEvents> {
*
* @deprecated We no longer support intercepting drag payloads. Use the new
* drag APIs found on {@link ElementHandle} to drag (or just use the
* {@link Page.mouse}).
* {@link Page | Page.mouse}).
*/
abstract isDragInterceptionEnabled(): boolean;
/**
@ -4549,7 +4539,7 @@ export declare abstract class Page extends EventEmitter<PageEvents> {
*
* @deprecated We no longer support intercepting drag payloads. Use the new
* drag APIs found on {@link ElementHandle} to drag (or just use the
* {@link Page.mouse}).
* {@link Page | Page.mouse}).
*/
abstract setDragInterception(enabled: boolean): Promise<void>;
/**
@ -5200,9 +5190,7 @@ export declare abstract class Page extends EventEmitter<PageEvents> {
* `0` to disable the timeout. The default value can be changed by using the
* {@link Page.setDefaultTimeout} method.
*/
abstract waitForRequest(urlOrPredicate: string | ((req: HTTPRequest) => boolean | Promise<boolean>), options?: {
timeout?: number;
}): Promise<HTTPRequest>;
waitForRequest(urlOrPredicate: string | AwaitablePredicate<HTTPRequest>, options?: WaitTimeoutOptions): Promise<HTTPRequest>;
/**
* @param urlOrPredicate - A URL or predicate to wait for.
* @param options - Optional waiting parameters
@ -5230,18 +5218,15 @@ export declare abstract class Page extends EventEmitter<PageEvents> {
* pass `0` to disable the timeout. The default value can be changed by using
* the {@link Page.setDefaultTimeout} method.
*/
abstract waitForResponse(urlOrPredicate: string | ((res: HTTPResponse) => boolean | Promise<boolean>), options?: {
timeout?: number;
}): Promise<HTTPResponse>;
waitForResponse(urlOrPredicate: string | AwaitablePredicate<HTTPResponse>, options?: WaitTimeoutOptions): Promise<HTTPResponse>;
/**
* @param options - Optional waiting parameters
* @returns Promise which resolves when network is idle
* Waits for the network to be idle.
*
* @param options - Options to configure waiting behavior.
* @returns A promise which resolves once the network is idle.
*/
abstract waitForNetworkIdle(options?: {
idleTime?: number;
timeout?: number;
}): Promise<void>;
/* Excluded from this release type: _waitForNetworkIdle */
waitForNetworkIdle(options?: WaitForNetworkIdleOptions): Promise<void>;
/* Excluded from this release type: waitForNetworkIdle$ */
/**
* Waits for a frame matching the given conditions to appear.
*
@ -5541,7 +5526,7 @@ export declare abstract class Page extends EventEmitter<PageEvents> {
*
* This is either the viewport set with the previous {@link Page.setViewport}
* call or the default viewport set via
* {@link BrowserConnectOptions.defaultViewport}.
* {@link BrowserConnectOptions | BrowserConnectOptions.defaultViewport}.
*/
abstract viewport(): Viewport | null;
/**
@ -5692,7 +5677,6 @@ export declare abstract class Page extends EventEmitter<PageEvents> {
}): Promise<string>;
screenshot(options?: Readonly<ScreenshotOptions>): Promise<Buffer>;
/* Excluded from this release type: _screenshot */
/* Excluded from this release type: _getPDFOptions */
/**
* Generates a PDF of the page with the `print` CSS media type.
*
@ -6311,6 +6295,8 @@ export declare type PaperFormat = Uppercase<LowerCasePaperFormat> | Capitalize<L
/* Excluded from this release type: ParsedPDFOptionsInterface */
/* Excluded from this release type: parsePDFOptions */
/**
* @license
* Copyright 2020 Google Inc.
@ -6422,6 +6408,18 @@ export declare interface PDFOptions {
* @experimental
*/
tagged?: boolean;
/**
* Generate document outline.
*
* @remarks
* If this is enabled the PDF will also be tagged (accessible)
* Currently only works in old Headless (headless = true)
* crbug/840455#c47
*
* @defaultValue `false`
* @experimental
*/
outline?: boolean;
/**
* Timeout in milliseconds. Pass `0` to disable timeout.
* @defaultValue `30_000`
@ -6624,8 +6622,6 @@ export default puppeteer;
/* Excluded from this release type: PUPPETEER_REVISIONS */
/* Excluded from this release type: PUPPETEER_SANDBOX */
/* Excluded from this release type: PUPPETEER_WORLD */
/**
@ -6883,10 +6879,6 @@ export declare interface ResponseForRequest {
/* Excluded from this release type: rewriteError */
/* Excluded from this release type: Sandbox */
/* Excluded from this release type: SandboxChart */
/**
* @public
* @experimental
@ -7442,7 +7434,23 @@ export declare interface Viewport {
*/
export declare type VisibilityOption = 'hidden' | 'visible' | null;
/* Excluded from this release type: waitForHTTP */
/**
* @public
*/
export declare interface WaitForNetworkIdleOptions extends WaitTimeoutOptions {
/**
* Time (in milliseconds) the network should be idle.
*
* @defaultValue `500`
*/
idleTime?: number;
/**
* Maximum number concurrent of network connections to be considered inactive.
*
* @defaultValue `0`
*/
concurrency?: number;
}
/**
* @public

View File

@ -1,6 +1,6 @@
{
"name": "puppeteer",
"version": "21.7.0",
"version": "21.11.0",
"description": "A high-level API to control headless Chrome over the DevTools Protocol",
"keywords": [
"puppeteer",
@ -37,7 +37,7 @@
"scripts": {
"build:docs": "wireit",
"build": "wireit",
"clean": "../../tools/clean.js",
"clean": "../../tools/clean.mjs",
"postinstall": "node install.mjs",
"prepack": "wireit"
},
@ -123,8 +123,8 @@
"author": "The Chromium Authors",
"license": "Apache-2.0",
"dependencies": {
"cosmiconfig": "8.3.6",
"puppeteer-core": "21.7.0",
"cosmiconfig": "9.0.0",
"puppeteer-core": "21.11.0",
"@puppeteer/browsers": "1.9.1"
},
"devDependencies": {

View File

@ -10,6 +10,22 @@ import {join} from 'path';
import {cosmiconfigSync} from 'cosmiconfig';
import type {Configuration, Product} from 'puppeteer-core';
function getBooleanEnvVar(name: string) {
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
*/
@ -27,7 +43,9 @@ function isSupportedProduct(product: unknown): product is Product {
* @internal
*/
export const getConfiguration = (): Configuration => {
const result = cosmiconfigSync('puppeteer').search();
const result = cosmiconfigSync('puppeteer', {
searchStrategy: 'global',
}).search();
const configuration: Configuration = result ? result.config : {};
configuration.logLevel = (process.env['PUPPETEER_LOGLEVEL'] ??
@ -56,12 +74,32 @@ export const getConfiguration = (): Configuration => {
// Set skipDownload explicitly or from default
configuration.skipDownload = Boolean(
process.env['PUPPETEER_SKIP_DOWNLOAD'] ??
process.env['npm_config_puppeteer_skip_download'] ??
process.env['npm_package_config_puppeteer_skip_download'] ??
getBooleanEnvVar('PUPPETEER_SKIP_DOWNLOAD') ??
getBooleanEnvVar('npm_config_puppeteer_skip_download') ??
getBooleanEnvVar('npm_package_config_puppeteer_skip_download') ??
configuration.skipDownload
);
// Set skipChromeDownload explicitly or from default
configuration.skipChromeDownload = Boolean(
getBooleanEnvVar('PUPPETEER_SKIP_CHROME_DOWNLOAD') ??
getBooleanEnvVar('npm_config_puppeteer_skip_chrome_download') ??
getBooleanEnvVar('npm_package_config_puppeteer_skip_chrome_download') ??
configuration.skipChromeDownload
);
// Set skipChromeDownload explicitly or from default
configuration.skipChromeHeadlessShellDownload = Boolean(
getBooleanEnvVar('PUPPETEER_SKIP_CHROME_HEADLESS_SHELL_DOWNLOAD') ??
getBooleanEnvVar(
'npm_config_puppeteer_skip_chrome_headless_shell_download'
) ??
getBooleanEnvVar(
'npm_package_config_puppeteer_skip_chrome_headless_shell_download'
) ??
configuration.skipChromeHeadlessShellDownload
);
// Prepare variables used in browser downloading
if (!configuration.skipDownload) {
configuration.browserRevision =

View File

@ -27,5 +27,6 @@ void new CLI({
pinnedBrowsers: {
[Browser.CHROME]: PUPPETEER_REVISIONS.chrome,
[Browser.FIREFOX]: PUPPETEER_REVISIONS.firefox,
[Browser.CHROMEHEADLESSSHELL]: PUPPETEER_REVISIONS['chrome-headless-shell'],
},
}).run(process.argv);

View File

@ -48,28 +48,91 @@ export async function downloadBrowser(): Promise<void> {
const unresolvedBuildId =
configuration.browserRevision || PUPPETEER_REVISIONS[product] || 'latest';
const unresolvedShellBuildId =
configuration.browserRevision ||
PUPPETEER_REVISIONS['chrome-headless-shell'] ||
'latest';
const buildId = await resolveBuildId(browser, platform, unresolvedBuildId);
// TODO: deprecate downloadPath in favour of cacheDirectory.
const cacheDir = configuration.downloadPath ?? configuration.cacheDirectory!;
try {
const result = await install({
browser,
cacheDir,
platform,
buildId,
downloadProgressCallback: makeProgressCallback(browser, buildId),
baseUrl: downloadBaseUrl,
});
const installationJobs = [];
logPolitely(
`${supportedProducts[product]} (${result.buildId}) downloaded to ${result.path}`
);
if (configuration.skipChromeDownload) {
logPolitely('**INFO** Skipping Chrome download as instructed.');
} else {
const buildId = await resolveBuildId(
browser,
platform,
unresolvedBuildId
);
installationJobs.push(
install({
browser,
cacheDir,
platform,
buildId,
downloadProgressCallback: makeProgressCallback(browser, buildId),
baseUrl: downloadBaseUrl,
})
.then(result => {
logPolitely(
`${supportedProducts[product]} (${result.buildId}) downloaded to ${result.path}`
);
})
.catch(error => {
throw new Error(
`ERROR: Failed to set up ${supportedProducts[product]} v${buildId}! Set "PUPPETEER_SKIP_DOWNLOAD" env variable to skip download.`,
{
cause: error,
}
);
})
);
}
if (browser === Browser.CHROME) {
if (configuration.skipChromeHeadlessShellDownload) {
logPolitely('**INFO** Skipping Chrome download as instructed.');
} else {
const shellBuildId = await resolveBuildId(
browser,
platform,
unresolvedShellBuildId
);
installationJobs.push(
install({
browser: Browser.CHROMEHEADLESSSHELL,
cacheDir,
platform,
buildId: shellBuildId,
downloadProgressCallback: makeProgressCallback(
browser,
shellBuildId
),
baseUrl: downloadBaseUrl,
})
.then(result => {
logPolitely(
`${Browser.CHROMEHEADLESSSHELL} (${result.buildId}) downloaded to ${result.path}`
);
})
.catch(error => {
throw new Error(
`ERROR: Failed to set up ${Browser.CHROMEHEADLESSSHELL} v${shellBuildId}! Set "PUPPETEER_SKIP_DOWNLOAD" env variable to skip download.`,
{
cause: error,
}
);
})
);
}
}
await Promise.all(installationJobs);
} catch (error) {
console.error(
`ERROR: Failed to set up ${supportedProducts[product]} r${buildId}! Set "PUPPETEER_SKIP_DOWNLOAD" env variable to skip download.`
);
console.error(error);
process.exit(1);
}