puppeteer
Advanced tools
Comparing version 21.9.0 to 21.10.0
@@ -57,2 +57,12 @@ "use strict"; | ||
configuration.skipDownload); | ||
// Set skipChromeDownload explicitly or from default | ||
configuration.skipChromeDownload = Boolean(process.env['PUPPETEER_SKIP_CHROME_DOWNLOAD'] ?? | ||
process.env['npm_config_puppeteer_skip_chrome_download'] ?? | ||
process.env['npm_package_config_puppeteer_skip_chrome_download'] ?? | ||
configuration.skipChromeDownload); | ||
// Set skipChromeDownload explicitly or from default | ||
configuration.skipChromeHeadlessShellDownload = Boolean(process.env['PUPPETEER_SKIP_CHROME_HEADLESS_SHELL_DOWNLOAD'] ?? | ||
process.env['npm_config_puppeteer_skip_chrome_headless_shell_download'] ?? | ||
process.env['npm_package_config_puppeteer_skip_chrome_headless_shell_download'] ?? | ||
configuration.skipChromeHeadlessShellDownload); | ||
// Prepare variables used in browser downloading | ||
@@ -59,0 +69,0 @@ if (!configuration.skipDownload) { |
@@ -29,4 +29,5 @@ #!/usr/bin/env node | ||
[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 |
@@ -37,18 +37,58 @@ "use strict"; | ||
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); | ||
@@ -55,0 +95,0 @@ process.exit(1); |
@@ -54,2 +54,12 @@ /** | ||
configuration.skipDownload); | ||
// Set skipChromeDownload explicitly or from default | ||
configuration.skipChromeDownload = Boolean(process.env['PUPPETEER_SKIP_CHROME_DOWNLOAD'] ?? | ||
process.env['npm_config_puppeteer_skip_chrome_download'] ?? | ||
process.env['npm_package_config_puppeteer_skip_chrome_download'] ?? | ||
configuration.skipChromeDownload); | ||
// Set skipChromeDownload explicitly or from default | ||
configuration.skipChromeHeadlessShellDownload = Boolean(process.env['PUPPETEER_SKIP_CHROME_HEADLESS_SHELL_DOWNLOAD'] ?? | ||
process.env['npm_config_puppeteer_skip_chrome_headless_shell_download'] ?? | ||
process.env['npm_package_config_puppeteer_skip_chrome_headless_shell_download'] ?? | ||
configuration.skipChromeHeadlessShellDownload); | ||
// Prepare variables used in browser downloading | ||
@@ -56,0 +66,0 @@ if (!configuration.skipDownload) { |
@@ -24,4 +24,5 @@ #!/usr/bin/env node | ||
[Browser.FIREFOX]: PUPPETEER_REVISIONS.firefox, | ||
[Browser.CHROMEHEADLESSSHELL]: PUPPETEER_REVISIONS['chrome-headless-shell'], | ||
}, | ||
}).run(process.argv); | ||
//# sourceMappingURL=cli.js.map |
@@ -34,18 +34,58 @@ /** | ||
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); | ||
@@ -52,0 +92,0 @@ process.exit(1); |
{ | ||
"name": "puppeteer", | ||
"version": "21.9.0", | ||
"version": "21.10.0", | ||
"description": "A high-level API to control headless Chrome over the DevTools Protocol", | ||
@@ -127,3 +127,3 @@ "keywords": [ | ||
"cosmiconfig": "9.0.0", | ||
"puppeteer-core": "21.9.0", | ||
"puppeteer-core": "21.10.0", | ||
"@puppeteer/browsers": "1.9.1" | ||
@@ -130,0 +130,0 @@ }, |
@@ -49,6 +49,6 @@ # 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. | ||
@@ -55,0 +55,0 @@ If you deploy a project using Puppeteer to a hosting provider, such as Render or |
@@ -67,2 +67,20 @@ /** | ||
// Set skipChromeDownload explicitly or from default | ||
configuration.skipChromeDownload = Boolean( | ||
process.env['PUPPETEER_SKIP_CHROME_DOWNLOAD'] ?? | ||
process.env['npm_config_puppeteer_skip_chrome_download'] ?? | ||
process.env['npm_package_config_puppeteer_skip_chrome_download'] ?? | ||
configuration.skipChromeDownload | ||
); | ||
// Set skipChromeDownload explicitly or from default | ||
configuration.skipChromeHeadlessShellDownload = Boolean( | ||
process.env['PUPPETEER_SKIP_CHROME_HEADLESS_SHELL_DOWNLOAD'] ?? | ||
process.env['npm_config_puppeteer_skip_chrome_headless_shell_download'] ?? | ||
process.env[ | ||
'npm_package_config_puppeteer_skip_chrome_headless_shell_download' | ||
] ?? | ||
configuration.skipChromeHeadlessShellDownload | ||
); | ||
// Prepare variables used in browser downloading | ||
@@ -69,0 +87,0 @@ if (!configuration.skipDownload) { |
@@ -30,3 +30,4 @@ #!/usr/bin/env node | ||
[Browser.FIREFOX]: PUPPETEER_REVISIONS.firefox, | ||
[Browser.CHROMEHEADLESSSHELL]: PUPPETEER_REVISIONS['chrome-headless-shell'], | ||
}, | ||
}).run(process.argv); |
@@ -51,4 +51,7 @@ /** | ||
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. | ||
@@ -58,18 +61,78 @@ 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); | ||
@@ -76,0 +139,0 @@ process.exit(1); |
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is too big to display
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
Environment variable access
Supply chain riskPackage accesses environment variables, which may be a sign of credential stuffing or data theft.
Found 6 instances in 1 package
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
338734
8419
90
+ Addedchromium-bidi@0.5.6(transitive)
+ Addedpuppeteer-core@21.10.0(transitive)
+ Addedurlpattern-polyfill@10.0.0(transitive)
- Removedchromium-bidi@0.5.4(transitive)
- Removedpuppeteer-core@21.9.0(transitive)
- Removedurlpattern-polyfill@9.0.0(transitive)
Updatedpuppeteer-core@21.10.0