diff --git a/package.json b/package.json index ef18dfb072f..f8c2e63c7e6 100644 --- a/package.json +++ b/package.json @@ -88,10 +88,10 @@ "commonmark": "^0.28.1", "cross-env": "^7.0.2", "eslint": "^7.10.0", - "eslint-config-prettier": "^6.12.0", + "eslint-config-prettier": "8.3.0", "eslint-plugin-import": "^2.22.0", "eslint-plugin-mocha": "^8.0.0", - "eslint-plugin-prettier": "^3.1.4", + "eslint-plugin-prettier": "3.4.0", "eslint-plugin-unicorn": "^22.0.0", "esprima": "^4.0.0", "expect": "^25.2.7", @@ -103,7 +103,7 @@ "ncp": "^2.0.0", "pixelmatch": "^4.0.2", "pngjs": "^5.0.0", - "prettier": "^2.1.2", + "prettier": "2.3.0", "sinon": "^9.0.2", "source-map-support": "^0.5.19", "standard-version": "^9.0.0", diff --git a/src/common/AriaQueryHandler.ts b/src/common/AriaQueryHandler.ts index 9d8cf964a7c..a59090f2517 100644 --- a/src/common/AriaQueryHandler.ts +++ b/src/common/AriaQueryHandler.ts @@ -52,7 +52,8 @@ function parseAriaSelector(selector: string): ariaQueryOption { const normalize = (value: string): string => value.replace(/ +/g, ' ').trim(); const knownAttributes = new Set(['name', 'role']); const queryOptions: ariaQueryOption = {}; - const attributeRegexp = /\[\s*(?\w+)\s*=\s*"(?\\.|[^"\\]*)"\s*\]/g; + const attributeRegexp = + /\[\s*(?\w+)\s*=\s*"(?\\.|[^"\\]*)"\s*\]/g; const defaultName = selector.replace( attributeRegexp, (_, attribute: string, value: string) => { diff --git a/src/common/Browser.ts b/src/common/Browser.ts index ea40dd317a2..153c545b788 100644 --- a/src/common/Browser.ts +++ b/src/common/Browser.ts @@ -722,9 +722,8 @@ export class BrowserContext extends EventEmitter { permissions: Permission[] ): Promise { const protocolPermissions = permissions.map((permission) => { - const protocolPermission = WEB_PERMISSION_TO_PROTOCOL_PERMISSION.get( - permission - ); + const protocolPermission = + WEB_PERMISSION_TO_PROTOCOL_PERMISSION.get(permission); if (!protocolPermission) throw new Error('Unknown permission: ' + permission); return protocolPermission; diff --git a/src/common/BrowserConnector.ts b/src/common/BrowserConnector.ts index 58cdf4ce6ac..3a707b5f300 100644 --- a/src/common/BrowserConnector.ts +++ b/src/common/BrowserConnector.ts @@ -89,16 +89,14 @@ export const connectToBrowser = async ( connection = new Connection('', transport, slowMo); } else if (browserWSEndpoint) { const WebSocketClass = await getWebSocketTransportClass(); - const connectionTransport: ConnectionTransport = await WebSocketClass.create( - browserWSEndpoint - ); + const connectionTransport: ConnectionTransport = + await WebSocketClass.create(browserWSEndpoint); connection = new Connection(browserWSEndpoint, connectionTransport, slowMo); } else if (browserURL) { const connectionURL = await getWSEndpoint(browserURL); const WebSocketClass = await getWebSocketTransportClass(); - const connectionTransport: ConnectionTransport = await WebSocketClass.create( - connectionURL - ); + const connectionTransport: ConnectionTransport = + await WebSocketClass.create(connectionURL); connection = new Connection(connectionURL, connectionTransport, slowMo); } diff --git a/src/common/Coverage.ts b/src/common/Coverage.ts index c4910d45803..c4cf5124d87 100644 --- a/src/common/Coverage.ts +++ b/src/common/Coverage.ts @@ -192,10 +192,8 @@ export class JSCoverage { } = {} ): Promise { assert(!this._enabled, 'JSCoverage is already enabled'); - const { - resetOnNavigation = true, - reportAnonymousScripts = false, - } = options; + const { resetOnNavigation = true, reportAnonymousScripts = false } = + options; this._resetOnNavigation = resetOnNavigation; this._reportAnonymousScripts = reportAnonymousScripts; this._enabled = true; diff --git a/src/common/DOMWorld.ts b/src/common/DOMWorld.ts index 7906d131b41..69f927f345e 100644 --- a/src/common/DOMWorld.ts +++ b/src/common/DOMWorld.ts @@ -484,9 +484,8 @@ export class DOMWorld { selector: string, options: WaitForSelectorOptions ): Promise { - const { updatedSelector, queryHandler } = getQueryHandlerAndSelector( - selector - ); + const { updatedSelector, queryHandler } = + getQueryHandlerAndSelector(selector); return queryHandler.waitFor(this, updatedSelector, options); } @@ -687,10 +686,8 @@ export class DOMWorld { options: { polling?: string | number; timeout?: number } = {}, ...args: SerializableOrJSHandle[] ): Promise { - const { - polling = 'raf', - timeout = this._timeoutSettings.timeout(), - } = options; + const { polling = 'raf', timeout = this._timeoutSettings.timeout() } = + options; const waitTaskOptions: WaitTaskOptions = { domWorld: this, predicateBody: pageFunction, diff --git a/src/common/EmulationManager.ts b/src/common/EmulationManager.ts index f3130ef3c5a..baae0b5c710 100644 --- a/src/common/EmulationManager.ts +++ b/src/common/EmulationManager.ts @@ -31,9 +31,10 @@ export class EmulationManager { const width = viewport.width; const height = viewport.height; const deviceScaleFactor = viewport.deviceScaleFactor || 1; - const screenOrientation: Protocol.Emulation.ScreenOrientation = viewport.isLandscape - ? { angle: 90, type: 'landscapePrimary' } - : { angle: 0, type: 'portraitPrimary' }; + const screenOrientation: Protocol.Emulation.ScreenOrientation = + viewport.isLandscape + ? { angle: 90, type: 'landscapePrimary' } + : { angle: 0, type: 'portraitPrimary' }; const hasTouch = viewport.hasTouch || false; await Promise.all([ diff --git a/src/common/ExecutionContext.ts b/src/common/ExecutionContext.ts index e8e2fbe4866..f51b8a42ed5 100644 --- a/src/common/ExecutionContext.ts +++ b/src/common/ExecutionContext.ts @@ -267,10 +267,8 @@ export class ExecutionContext { error.message += ' Are you passing a nested JSHandle?'; throw error; } - const { - exceptionDetails, - result: remoteObject, - } = await callFunctionOnPromise.catch(rewriteError); + const { exceptionDetails, result: remoteObject } = + await callFunctionOnPromise.catch(rewriteError); if (exceptionDetails) throw new Error( 'Evaluation failed: ' + helper.getExceptionMessage(exceptionDetails) diff --git a/src/common/JSHandle.ts b/src/common/JSHandle.ts index ece483f2658..fd4875071b5 100644 --- a/src/common/JSHandle.ts +++ b/src/common/JSHandle.ts @@ -776,9 +776,8 @@ export class ElementHandle< async $( selector: string ): Promise | null> { - const { updatedSelector, queryHandler } = getQueryHandlerAndSelector( - selector - ); + const { updatedSelector, queryHandler } = + getQueryHandlerAndSelector(selector); return queryHandler.queryOne(this, updatedSelector); } @@ -789,9 +788,8 @@ export class ElementHandle< async $$( selector: string ): Promise>> { - const { updatedSelector, queryHandler } = getQueryHandlerAndSelector( - selector - ); + const { updatedSelector, queryHandler } = + getQueryHandlerAndSelector(selector); return queryHandler.queryAll(this, updatedSelector); } @@ -873,9 +871,8 @@ export class ElementHandle< ) => ReturnType | Promise, ...args: SerializableOrJSHandle[] ): Promise> { - const { updatedSelector, queryHandler } = getQueryHandlerAndSelector( - selector - ); + const { updatedSelector, queryHandler } = + getQueryHandlerAndSelector(selector); const arrayHandle = await queryHandler.queryAllArray(this, updatedSelector); const result = await arrayHandle.evaluate< ( diff --git a/src/common/NetworkManager.ts b/src/common/NetworkManager.ts index b07868e97f2..e389580d42f 100644 --- a/src/common/NetworkManager.ts +++ b/src/common/NetworkManager.ts @@ -278,9 +278,8 @@ export class NetworkManager extends EventEmitter { !event.request.url.startsWith('data:') ) { const requestId = event.requestId; - const requestPausedEvent = this._requestIdToRequestPausedEvent.get( - requestId - ); + const requestPausedEvent = + this._requestIdToRequestPausedEvent.get(requestId); this._requestIdToRequestWillBeSentEvent.set(requestId, event); @@ -338,9 +337,8 @@ export class NetworkManager extends EventEmitter { return; } - let requestWillBeSentEvent = this._requestIdToRequestWillBeSentEvent.get( - requestId - ); + let requestWillBeSentEvent = + this._requestIdToRequestWillBeSentEvent.get(requestId); // redirect requests have the same `requestId`, if ( diff --git a/src/common/Page.ts b/src/common/Page.ts index 0e4e5b4dc77..9a6171913f2 100644 --- a/src/common/Page.ts +++ b/src/common/Page.ts @@ -1827,11 +1827,15 @@ export class Page extends EventEmitter { clip = { x: 0, y: 0, width, height, scale: 1 }; if (!captureBeyondViewport) { - const { isMobile = false, deviceScaleFactor = 1, isLandscape = false } = - this._viewport || {}; - const screenOrientation: Protocol.Emulation.ScreenOrientation = isLandscape - ? { angle: 90, type: 'landscapePrimary' } - : { angle: 0, type: 'portraitPrimary' }; + const { + isMobile = false, + deviceScaleFactor = 1, + isLandscape = false, + } = this._viewport || {}; + const screenOrientation: Protocol.Emulation.ScreenOrientation = + isLandscape + ? { angle: 90, type: 'landscapePrimary' } + : { angle: 0, type: 'portraitPrimary' }; await this._client.send('Emulation.setDeviceMetricsOverride', { mobile: isMobile, width, diff --git a/src/common/QueryHandler.ts b/src/common/QueryHandler.ts index b7984067eeb..3009b60b66c 100644 --- a/src/common/QueryHandler.ts +++ b/src/common/QueryHandler.ts @@ -215,9 +215,10 @@ export function clearCustomQueryHandlers(): void { /** * @internal */ -export function getQueryHandlerAndSelector( - selector: string -): { updatedSelector: string; queryHandler: InternalQueryHandler } { +export function getQueryHandlerAndSelector(selector: string): { + updatedSelector: string; + queryHandler: InternalQueryHandler; +} { const hasCustomQueryHandler = /^[a-zA-Z]+\//.test(selector); if (!hasCustomQueryHandler) return { updatedSelector: selector, queryHandler: _defaultHandler }; diff --git a/src/node/BrowserFetcher.ts b/src/node/BrowserFetcher.ts index c1792aa7390..0d22e3386a4 100644 --- a/src/node/BrowserFetcher.ts +++ b/src/node/BrowserFetcher.ts @@ -58,8 +58,7 @@ const browserConfig = { destination: '.local-chromium', }, firefox: { - host: - 'https://archive.mozilla.org/pub/firefox/nightly/latest-mozilla-central', + host: 'https://archive.mozilla.org/pub/firefox/nightly/latest-mozilla-central', destination: '.local-firefox', }, } as const; diff --git a/src/node/BrowserRunner.ts b/src/node/BrowserRunner.ts index 2a29aca6029..554f14ab884 100644 --- a/src/node/BrowserRunner.ts +++ b/src/node/BrowserRunner.ts @@ -62,14 +62,8 @@ export class BrowserRunner { } start(options: LaunchOptions): void { - const { - handleSIGINT, - handleSIGTERM, - handleSIGHUP, - dumpio, - env, - pipe, - } = options; + const { handleSIGINT, handleSIGTERM, handleSIGHUP, dumpio, env, pipe } = + options; let stdio: Array<'ignore' | 'pipe'> = ['pipe', 'pipe', 'pipe']; if (pipe) { if (dumpio) stdio = ['ignore', 'pipe', 'pipe', 'pipe', 'pipe']; diff --git a/src/node/Launcher.ts b/src/node/Launcher.ts index 34190e3dd71..669d04d7ad0 100644 --- a/src/node/Launcher.ts +++ b/src/node/Launcher.ts @@ -587,9 +587,10 @@ class FirefoxLauncher implements ProductLauncher { } } -function resolveExecutablePath( - launcher: ChromeLauncher | FirefoxLauncher -): { executablePath: string; missingText?: string } { +function resolveExecutablePath(launcher: ChromeLauncher | FirefoxLauncher): { + executablePath: string; + missingText?: string; +} { let downloadPath: string; // puppeteer-core doesn't take into account PUPPETEER_* env variables. if (!launcher._isPuppeteerCore) { diff --git a/src/node/Puppeteer.ts b/src/node/Puppeteer.ts index 84170f89f02..fd4dbe1d8c1 100644 --- a/src/node/Puppeteer.ts +++ b/src/node/Puppeteer.ts @@ -84,12 +84,8 @@ export class PuppeteerNode extends Puppeteer { productName?: Product; } & CommonPuppeteerSettings ) { - const { - projectRoot, - preferredRevision, - productName, - ...commonSettings - } = settings; + const { projectRoot, preferredRevision, productName, ...commonSettings } = + settings; super(commonSettings); this._projectRoot = projectRoot; this.__productName = productName; diff --git a/test/click.spec.ts b/test/click.spec.ts index 75779bab0e1..cb8179834b9 100644 --- a/test/click.spec.ts +++ b/test/click.spec.ts @@ -74,10 +74,9 @@ describe('Page.click', function () { const { page } = getTestState(); const newPage = await page.browser().newPage(); - await Promise.all([ - newPage.close(), - newPage.mouse.click(1, 2), - ]).catch(() => {}); + await Promise.all([newPage.close(), newPage.mouse.click(1, 2)]).catch( + () => {} + ); }); it('should click the button after navigation ', async () => { const { page, server } = getTestState(); diff --git a/test/cookies.spec.ts b/test/cookies.spec.ts index 22e152fd972..38f6852527b 100644 --- a/test/cookies.spec.ts +++ b/test/cookies.spec.ts @@ -475,11 +475,8 @@ describe('Cookie specs', () => { itFailsFirefox( 'should set secure same-site cookies from a frame', async () => { - const { - httpsServer, - puppeteer, - defaultBrowserOptions, - } = getTestState(); + const { httpsServer, puppeteer, defaultBrowserOptions } = + getTestState(); const browser = await puppeteer.launch({ ...defaultBrowserOptions, diff --git a/test/elementhandle.spec.ts b/test/elementhandle.spec.ts index a847ce91c68..f65027fcea6 100644 --- a/test/elementhandle.spec.ts +++ b/test/elementhandle.spec.ts @@ -320,7 +320,8 @@ describe('ElementHandle specs', function () { ) ); } - const handlerNamesAfterUnregistering = puppeteer.customQueryHandlerNames(); + const handlerNamesAfterUnregistering = + puppeteer.customQueryHandlerNames(); expect(handlerNamesAfterUnregistering.includes('getById')).toBeFalsy(); }); it('should throw with invalid query names', () => { diff --git a/test/launcher.spec.ts b/test/launcher.spec.ts index c9d8c226a84..b4347929802 100644 --- a/test/launcher.spec.ts +++ b/test/launcher.spec.ts @@ -531,11 +531,8 @@ describe('Launcher specs', function () { ]); }); it('should support ignoreHTTPSErrors option', async () => { - const { - httpsServer, - puppeteer, - defaultBrowserOptions, - } = getTestState(); + const { httpsServer, puppeteer, defaultBrowserOptions } = + getTestState(); const originalBrowser = await puppeteer.launch(defaultBrowserOptions); const browserWSEndpoint = originalBrowser.wsEndpoint(); diff --git a/utils/check_availability.js b/utils/check_availability.js index e24e2b9dc36..fbc115c1a53 100755 --- a/utils/check_availability.js +++ b/utils/check_availability.js @@ -18,8 +18,8 @@ const assert = require('assert'); const https = require('https'); // run `npm run dev-install` if lib dir is missing -const BrowserFetcher = require('../lib/cjs/puppeteer/node/BrowserFetcher.js') - .BrowserFetcher; +const BrowserFetcher = + require('../lib/cjs/puppeteer/node/BrowserFetcher.js').BrowserFetcher; const SUPPORTER_PLATFORMS = ['linux', 'mac', 'win32', 'win64']; const fetchers = SUPPORTER_PLATFORMS.map( diff --git a/utils/doclint/preprocessor/index.js b/utils/doclint/preprocessor/index.js index 37d8254b570..68967d86f0c 100644 --- a/utils/doclint/preprocessor/index.js +++ b/utils/doclint/preprocessor/index.js @@ -20,7 +20,8 @@ const IS_RELEASE = Boolean(process.env.IS_RELEASE); module.exports.ensureReleasedAPILinks = function (sources, version) { // Release version is everything that doesn't include "-". - const apiLinkRegex = /https:\/\/github.com\/puppeteer\/puppeteer\/blob\/v[^/]*\/docs\/api.md/gi; + const apiLinkRegex = + /https:\/\/github.com\/puppeteer\/puppeteer\/blob\/v[^/]*\/docs\/api.md/gi; const lastReleasedAPI = `https://github.com/puppeteer/puppeteer/blob/v${ version.split('-')[0] }/docs/api.md`; diff --git a/utils/fetch_devices.js b/utils/fetch_devices.js index 547b68842e1..f49a09124cd 100755 --- a/utils/fetch_devices.js +++ b/utils/fetch_devices.js @@ -222,11 +222,9 @@ function loadFromJSONV1(json) { const result = {}; result.type = /** @type {string} */ (parseValue(json, 'type', 'string')); - result.userAgent = /** @type {string} */ (parseValue( - json, - 'user-agent', - 'string' - )); + result.userAgent = /** @type {string} */ ( + parseValue(json, 'user-agent', 'string') + ); const capabilities = parseValue(json, 'capabilities', 'object', []); if (!Array.isArray(capabilities)) @@ -238,11 +236,9 @@ function loadFromJSONV1(json) { result.capabilities.push(capabilities[i]); } - result.deviceScaleFactor = /** @type {number} */ (parseValue( - json['screen'], - 'device-pixel-ratio', - 'number' - )); + result.deviceScaleFactor = /** @type {number} */ ( + parseValue(json['screen'], 'device-pixel-ratio', 'number') + ); if (result.deviceScaleFactor < 0 || result.deviceScaleFactor > 100) throw new Error( 'Emulated device has wrong deviceScaleFactor: ' + result.deviceScaleFactor