From 0804e8b19e6b0d9dc72d2c7c71c33509da206ff8 Mon Sep 17 00:00:00 2001 From: Hugo Dias Date: Sun, 8 Nov 2020 19:00:10 +0000 Subject: [PATCH] feat: upgrade playwright to 1.5.2 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Bring back extension debug devtools 🚀 --- package.json | 2 +- src/runner-mocha.js | 2 +- src/runner-zora.js | 2 +- src/runner.js | 36 ++++---- src/utils.js | 93 ++++----------------- yarn.lock | 196 +++++++++++++++++++++++--------------------- 6 files changed, 141 insertions(+), 190 deletions(-) diff --git a/package.json b/package.json index 68658395..403b56e5 100644 --- a/package.json +++ b/package.json @@ -45,7 +45,7 @@ "meow": "^8.0.0", "merge-options": "^3.0.3", "ora": "^5.1.0", - "playwright-core": "0.11.1", + "playwright-core": "1.5.2", "polka": "^0.5.2", "resolve-cwd": "^3.0.0", "sirv": "^1.0.7", diff --git a/src/runner-mocha.js b/src/runner-mocha.js index 423319ec..783829de 100644 --- a/src/runner-mocha.js +++ b/src/runner-mocha.js @@ -55,7 +55,7 @@ class MochaRunner extends Runner { case 'worker': { await this.page.evaluate(addWorker(this.file)); const run = new Promise((resolve) => { - this.page.on('workercreated', async (worker) => { + this.page.on('worker', async (worker) => { await delay(1000); await worker.evaluate(runMochaWorker()); resolve(); diff --git a/src/runner-zora.js b/src/runner-zora.js index 8a566d4d..f7dde853 100644 --- a/src/runner-zora.js +++ b/src/runner-zora.js @@ -42,7 +42,7 @@ class ZoraRunner extends Runner { case 'worker': { this.page.evaluate(addWorker(this.file)); const run = new Promise((resolve) => { - this.page.on('workercreated', async (worker) => { + this.page.on('worker', async (worker) => { await delay(1000); await worker.evaluate(runZoraWorker()); resolve(); diff --git a/src/runner.js b/src/runner.js index 8acb8503..ba3add54 100644 --- a/src/runner.js +++ b/src/runner.js @@ -11,7 +11,7 @@ const tempy = require('tempy'); const polka = require('polka'); const sirv = require('sirv'); const merge = require('merge-options'); -const envPaths = require('env-paths')('playwright-test'); +// const envPaths = require('env-paths')('playwright-test'); const { redirectConsole, getPw, compile } = require('./utils'); const defaultOptions = { @@ -42,7 +42,7 @@ class Runner { ); } - async launch(spinner) { + async launch() { // copy files to be served const files = [ 'index.html', @@ -76,7 +76,7 @@ class Runner { .server; // download playwright if needed - const pw = await getPw(this.options.browser, envPaths.cache, spinner); + const pw = await getPw(this.options.browser); const pwOptions = { headless: !this.options.extension && !this.options.debug, devtools: this.options.browser === 'chromium' && this.options.debug, @@ -87,12 +87,11 @@ class Runner { dumpio: process.env.PW_TEST_DUMPIO || false }; - // extension only works in incognito for now - if (this.options.incognito || this.options.extension) { + if (this.options.incognito) { this.browser = await pw.launch(pwOptions); this.context = await this.browser.newContext(); } else { - this.context = await pw.launchPersistent(undefined, pwOptions); + this.context = await pw.launchPersistentContext(tempy.directory(), pwOptions); } return this; @@ -100,23 +99,26 @@ class Runner { async setupPage() { if (this.options.extension) { - const targets = await this.browser.targets(); - const backgroundPageTarget = targets.find(target => target.type() === 'background_page'); + const backgroundPages = await this.context.backgroundPages(); + const backgroundPage = backgroundPages.length ? + backgroundPages[0] : + await this.context.waitForEvent('backgroundpage').then(event => event); - this.page = await backgroundPageTarget.page(); - - // Open extension devtools window - // const extPage = await this.context.newPage(); + this.page = backgroundPage; + if (this.options.debug) { + // Open extension devtools window + const extPage = await this.context.newPage(); - // await extPage.goto(`chrome://extensions/?id=${backgroundPageTarget._targetInfo.url.split('/')[2]}`); + await extPage.goto(`chrome://extensions/?id=${this.page._mainFrame._initializer.url.split('/')[2]}`); - // const buttonHandle = await extPage.evaluateHandle('document.querySelector("body > extensions-manager").shadowRoot.querySelector("extensions-toolbar").shadowRoot.querySelector("#devMode")'); + const buttonHandle = await extPage.evaluateHandle('document.querySelector("body > extensions-manager").shadowRoot.querySelector("extensions-toolbar").shadowRoot.querySelector("#devMode")'); - // await buttonHandle.click(); + await buttonHandle.click(); - // const backgroundPageLink = await extPage.evaluateHandle('document.querySelector("body > extensions-manager").shadowRoot.querySelector("#viewManager > extensions-detail-view").shadowRoot.querySelector("#inspect-views > li:nth-child(2) > a")'); + const backgroundPageLink = await extPage.evaluateHandle('document.querySelector("body > extensions-manager").shadowRoot.querySelector("#viewManager > extensions-detail-view").shadowRoot.querySelector("#inspect-views > li:nth-child(2) > a")'); - // await backgroundPageLink.click(); + await backgroundPageLink.click(); + } } else { this.page = await this.context.newPage(); await this.page.goto(this.url); diff --git a/src/utils.js b/src/utils.js index 2649e462..d5bf7bc4 100644 --- a/src/utils.js +++ b/src/utils.js @@ -135,85 +135,26 @@ const redirectConsole = async (msg) => { } }; -function toMegabytes(bytes) { - const mb = bytes / 1024 / 1024; - - return `${Math.round(mb * 10) / 10} Mb`; -} - -async function downloadBrowser(browserInstance, spinner) { - const browser = browserInstance.name(); - const browserType = browserInstance; - - function onProgress(downloadedBytes, totalBytes) { - const perc = Math.round((downloadedBytes / totalBytes) * 100); - - if (perc === 100) { - spinner.text = `Unpacking ${browser} ${browserType._revision}`; - } else { - spinner.text = `Downloading ${browser} ${browserType._revision} - ${toMegabytes(totalBytes)} ${perc}%`; - } - } - - const fetcher = browserType._createBrowserFetcher(); - const revisionInfo = fetcher.revisionInfo(); - - // Do nothing if the revision is already downloaded. - if (revisionInfo.local) { - return revisionInfo; - } - - spinner.text = `Downloading ${browser} ${browserType._revision}`; - await fetcher.download(revisionInfo.revision, onProgress); - spinner.text = `Browser ${browser} cached to ${revisionInfo.folderPath}`; - - return revisionInfo; -} - -const getPw = async (browserName, cachePath, spinner) => { - const packageJson = require('playwright-core/package.json'); - const { helper } = require('playwright-core/lib/helper'); - const api = require('playwright-core/lib/api'); - const { Chromium } = require('playwright-core/lib/server/chromium'); - const { WebKit } = require('playwright-core/lib/server/webkit'); - const { Firefox } = require('playwright-core/lib/server/firefox'); - - for (const className in api) { - if (typeof api[className] === 'function') { - helper.installApiHooks(className, api[className]); - } - } +const getPw = async (browserName) => { + const cachePath = path.join(process.cwd(), 'node_modules', '.cache'); if (process.env.CI) { - cachePath = path.join(process.cwd(), 'node_modules', '.cache'); + process.env.PLAYWRIGHT_BROWSERS_PATH = cachePath; } - - if (!fs.existsSync(cachePath)) { - await fs.promises.mkdir(cachePath); - } - let browser = null; - - switch (browserName) { - case 'chromium': - browser = new Chromium(cachePath, packageJson.playwright.chromium_revision); - - break; - case 'webkit': - browser = new WebKit(cachePath, packageJson.playwright.webkit_revision); - - break; - case 'firefox': - browser = new Firefox(cachePath, packageJson.playwright.firefox_revision); - - break; - - default: - throw new Error(`Browser ${browserName} not supported. Try chromium, webkit or firefox.`); - } - - await downloadBrowser(browser, spinner); - - return browser; + const { installBrowsersWithProgressBar } = require('playwright-core/lib/install/installer'); + const { Playwright } = require('playwright-core/lib/server/playwright'); + const { setupInProcess } = require('playwright-core/lib/inprocess'); + const browsers = JSON.parse(fs.readFileSync('./node_modules/playwright-core/browsers.json').toString()); + + browsers.browsers[0].download = true; // chromium + browsers.browsers[1].download = true; // firefox + browsers.browsers[2].download = true; // webkit + fs.mkdirSync(cachePath, { recursive: true }); + fs.writeFileSync(path.join(cachePath, 'browsers.json'), JSON.stringify(browsers, null, 2)); + await installBrowsersWithProgressBar(cachePath); + const api = setupInProcess(new Playwright(cachePath, browsers.browsers)); + + return api[browserName]; }; const compile = async (compiler) => { diff --git a/yarn.lock b/yarn.lock index 7c4b9617..c6693d8f 100644 --- a/yarn.lock +++ b/yarn.lock @@ -294,6 +294,13 @@ dependencies: "@types/node" "*" +"@types/yauzl@^2.9.1": + version "2.9.1" + resolved "https://registry.yarnpkg.com/@types/yauzl/-/yauzl-2.9.1.tgz#d10f69f9f522eef3cf98e30afb684a1e1ec923af" + integrity sha512-A1b8SU4D10uoPjwb0lnHmmu8wZhR9d+9o2PKBQT2jU5YPTKsxac6M2qGAdY7VcL+dHHhARVUDmeg0rOrcd9EjA== + dependencies: + "@types/node" "*" + "@ungap/promise-all-settled@1.1.2": version "1.1.2" resolved "https://registry.yarnpkg.com/@ungap/promise-all-settled/-/promise-all-settled-1.1.2.tgz#aa58042711d6e3275dd37dc597e5d31e8c290a44" @@ -489,12 +496,12 @@ add-stream@^1.0.0: resolved "https://registry.yarnpkg.com/add-stream/-/add-stream-1.0.0.tgz#6a7990437ca736d5e1288db92bd3266d5f5cb2aa" integrity sha1-anmQQ3ynNtXhKI25K9MmbV9csqo= -agent-base@^4.3.0: - version "4.3.0" - resolved "https://registry.yarnpkg.com/agent-base/-/agent-base-4.3.0.tgz#8165f01c436009bccad0b1d122f05ed770efc6ee" - integrity sha512-salcGninV0nPrwpGNn4VTXBb1SOuXQBiqbrNXoeizJsHrsL6ERFM2Ne3JUSBWRE6aeNJI2ROP/WEEIDUiDe3cg== +agent-base@6: + version "6.0.2" + resolved "https://registry.yarnpkg.com/agent-base/-/agent-base-6.0.2.tgz#49fff58577cfee3f37176feab4c22e00f86d7f77" + integrity sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ== dependencies: - es6-promisify "^5.0.0" + debug "4" aggregate-error@^3.0.0: version "3.0.1" @@ -757,11 +764,6 @@ async-exit-hook@^2.0.1: resolved "https://registry.yarnpkg.com/async-exit-hook/-/async-exit-hook-2.0.1.tgz#8bd8b024b0ec9b1c01cccb9af9db29bd717dfaf3" integrity sha512-NW2cX8m1Q7KPA7a5M2ULQeZ2wR5qI5PAbw5L0UOMxdioVk9PMZ0h1TmyZEkPYrCvYjDlFICusOu1dlEKAAeXBw== -async-limiter@~1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/async-limiter/-/async-limiter-1.0.1.tgz#dd379e94f0db8310b08291f9d64c3209766617fd" - integrity sha512-csOlWGAcRFJaI6m+F2WKdnMKr4HhdhFVBk0H/QbJFMCr+uO2kwohwXQPxw/9OCxp05r5ghVBFSyioixx3gfkNQ== - at-least-node@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/at-least-node/-/at-least-node-1.0.0.tgz#602cd4b46e844ad4effc92a8011a3c46e0238dc2" @@ -965,6 +967,11 @@ browserify-zlib@^0.2.0: dependencies: pako "~1.0.5" +buffer-crc32@~0.2.3: + version "0.2.13" + resolved "https://registry.yarnpkg.com/buffer-crc32/-/buffer-crc32-0.2.13.tgz#0d333e3f00eac50aa1454abd30ef8c2a5d9a7242" + integrity sha1-DTM+PwDqxQqhRUq9MO+MKl2ackI= + buffer-from@^1.0.0: version "1.1.1" resolved "https://registry.yarnpkg.com/buffer-from/-/buffer-from-1.1.1.tgz#32713bc028f75c02fdb710d7c7bcec1f2c6070ef" @@ -1433,7 +1440,7 @@ concat-map@0.0.1: resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b" integrity sha1-2Klr13/Wjfd5OnMDajug1UBdR3s= -concat-stream@1.6.2, concat-stream@^1.5.0, concat-stream@^1.6.0: +concat-stream@^1.5.0, concat-stream@^1.6.0: version "1.6.2" resolved "https://registry.yarnpkg.com/concat-stream/-/concat-stream-1.6.2.tgz#904bdf194cd3122fc675c77fc4ac3d4ff0fd1a34" integrity sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw== @@ -1790,20 +1797,20 @@ dateformat@^3.0.0: resolved "https://registry.yarnpkg.com/dateformat/-/dateformat-3.0.3.tgz#a6e37499a4d9a9cf85ef5872044d62901c9889ae" integrity sha512-jyCETtSl3VMZMWeRo7iY1FL19ges1t55hMo5yaam4Jrsm5EPL89UQkoQRyiI+Yf4k8r2ZpdngkV8hr1lIdjb3Q== -debug@2.6.9, debug@^2.2.0, debug@^2.3.3, debug@^2.6.9: - version "2.6.9" - resolved "https://registry.yarnpkg.com/debug/-/debug-2.6.9.tgz#5d128515df134ff327e90a4c93f4e077a536341f" - integrity sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA== - dependencies: - ms "2.0.0" - -debug@4.2.0, debug@^4.2.0: +debug@4, debug@4.2.0, debug@^4.1.1, debug@^4.2.0: version "4.2.0" resolved "https://registry.yarnpkg.com/debug/-/debug-4.2.0.tgz#7f150f93920e94c58f5574c2fd01a3110effe7f1" integrity sha512-IX2ncY78vDTjZMFUdmsvIRFY2Cf4FnD0wRs+nQwJU8Lu99/tPFdb0VybiiMTPe3I6rQmwsqQqRBvxU+bZ/I8sg== dependencies: ms "2.1.2" +debug@^2.2.0, debug@^2.3.3, debug@^2.6.9: + version "2.6.9" + resolved "https://registry.yarnpkg.com/debug/-/debug-2.6.9.tgz#5d128515df134ff327e90a4c93f4e077a536341f" + integrity sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA== + dependencies: + ms "2.0.0" + debug@^3.1.0: version "3.2.6" resolved "https://registry.yarnpkg.com/debug/-/debug-3.2.6.tgz#e83d17de16d8a7efb7717edbe5fb10135eee629b" @@ -1811,13 +1818,6 @@ debug@^3.1.0: dependencies: ms "^2.1.1" -debug@^4.1.0: - version "4.1.1" - resolved "https://registry.yarnpkg.com/debug/-/debug-4.1.1.tgz#3b72260255109c6b589cee050f1d516139664791" - integrity sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw== - dependencies: - ms "^2.1.1" - decamelize-keys@^1.0.0, decamelize-keys@^1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/decamelize-keys/-/decamelize-keys-1.1.0.tgz#d171a87933252807eb3cb61dc1c1445d078df2d9" @@ -2209,18 +2209,6 @@ es6-object-assign@^1.1.0: resolved "https://registry.yarnpkg.com/es6-object-assign/-/es6-object-assign-1.1.0.tgz#c2c3582656247c39ea107cb1e6652b6f9f24523c" integrity sha1-wsNYJlYkfDnqEHyx5mUrb58kUjw= -es6-promise@^4.0.3: - version "4.2.8" - resolved "https://registry.yarnpkg.com/es6-promise/-/es6-promise-4.2.8.tgz#4eb21594c972bc40553d276e510539143db53e0a" - integrity sha512-HJDGx5daxeIvxdBxvG2cb9g4tEvwIk3i8+nhX0yGrYmZUzbkdg8QbDevheDB8gd0//uPj4c1EQua8Q+MViT0/w== - -es6-promisify@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/es6-promisify/-/es6-promisify-5.0.0.tgz#5109d62f3e56ea967c4b63505aef08291c8a5203" - integrity sha1-UQnWLz5W6pZ8S2NQWu8IKRyKUgM= - dependencies: - es6-promise "^4.0.3" - escape-goat@^2.0.0: version "2.1.1" resolved "https://registry.yarnpkg.com/escape-goat/-/escape-goat-2.1.1.tgz#1b2dc77003676c457ec760b2dc68edb648188675" @@ -2524,15 +2512,16 @@ extglob@^2.0.4: snapdragon "^0.8.1" to-regex "^3.0.1" -extract-zip@^1.6.6: - version "1.6.7" - resolved "https://registry.yarnpkg.com/extract-zip/-/extract-zip-1.6.7.tgz#a840b4b8af6403264c8db57f4f1a74333ef81fe9" - integrity sha1-qEC0uK9kAyZMjbV/Txp0Mz74H+k= +extract-zip@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/extract-zip/-/extract-zip-2.0.1.tgz#663dca56fe46df890d5f131ef4a06d22bb8ba13a" + integrity sha512-GDhU9ntwuKyGXdZBUgTIe+vXnWj0fppUEtMDL0+idd5Sta8TGpHssn/eusA9mrPr9qNDym6SxAYZjNvCn/9RBg== dependencies: - concat-stream "1.6.2" - debug "2.6.9" - mkdirp "0.5.1" - yauzl "2.4.1" + debug "^4.1.1" + get-stream "^5.1.0" + yauzl "^2.10.0" + optionalDependencies: + "@types/yauzl" "^2.9.1" fast-deep-equal@^1.0.0: version "1.1.0" @@ -2572,10 +2561,10 @@ fastq@^1.6.0: dependencies: reusify "^1.0.0" -fd-slicer@~1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/fd-slicer/-/fd-slicer-1.0.1.tgz#8b5bcbd9ec327c5041bf9ab023fd6750f1177e65" - integrity sha1-i1vL2ewyfFBBv5qwI/1nUPEXfmU= +fd-slicer@~1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/fd-slicer/-/fd-slicer-1.1.0.tgz#25c7c89cb1f9077f8891bbe61d8f390eae256f1e" + integrity sha1-JcfInLH5B3+IkbvmHY85Dq4lbx4= dependencies: pend "~1.2.0" @@ -3164,13 +3153,13 @@ https-browserify@^1.0.0: resolved "https://registry.yarnpkg.com/https-browserify/-/https-browserify-1.0.0.tgz#ec06c10e0a34c0f2faf199f7fd7fc78fffd03c73" integrity sha1-7AbBDgo0wPL68Zn3/X/Hj//QPHM= -https-proxy-agent@^3.0.0: - version "3.0.1" - resolved "https://registry.yarnpkg.com/https-proxy-agent/-/https-proxy-agent-3.0.1.tgz#b8c286433e87602311b01c8ea34413d856a4af81" - integrity sha512-+ML2Rbh6DAuee7d07tYGEKOEi2voWPUGan+ExdPbPW6Z3svq+JCqr0v8WmKPOkz1vOVykPCBSuobe7G8GJUtVg== +https-proxy-agent@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/https-proxy-agent/-/https-proxy-agent-5.0.0.tgz#e2a90542abb68a762e0a0850f6c9edadfd8506b2" + integrity sha512-EkYm5BcKUGiduxzSt3Eppko+PiNWNEpa4ySk9vTC6wDsQJW9rHSa+UhGNJoRYp7bz6Ht1eaRIa6QaJqO5rCFbA== dependencies: - agent-base "^4.3.0" - debug "^3.1.0" + agent-base "6" + debug "4" human-signals@^1.1.1: version "1.1.1" @@ -3882,10 +3871,10 @@ issue-regex@^3.1.0: resolved "https://registry.yarnpkg.com/issue-regex/-/issue-regex-3.1.0.tgz#0671f094d6449c5b712fac3c9562aecb727d709e" integrity sha512-0RHjbtw9QXeSYnIEY5Yrp2QZrdtz21xBDV9C/GIlY2POmgoS6a7qjkYS5siRKXScnuAj5/SPv1C3YForNCHTJA== -jpeg-js@^0.3.6: - version "0.3.6" - resolved "https://registry.yarnpkg.com/jpeg-js/-/jpeg-js-0.3.6.tgz#c40382aac9506e7d1f2d856eb02f6c7b2a98b37c" - integrity sha512-MUj2XlMB8kpe+8DJUGH/3UJm4XpI8XEgZQ+CiHDeyrGoKPdW/8FJv6ku+3UiYm5Fz3CWaL+iXmD8Q4Ap6aC1Jw== +jpeg-js@^0.4.2: + version "0.4.2" + resolved "https://registry.yarnpkg.com/jpeg-js/-/jpeg-js-0.4.2.tgz#8b345b1ae4abde64c2da2fe67ea216a114ac279d" + integrity sha512-+az2gi/hvex7eLTMTlbRLOhH6P6WFdk2ITI8HJsaH2VqYO0I594zXSYEP+tf4FW+8Cy68ScDXoAsQdyQanv3sw== "js-tokens@^3.0.0 || ^4.0.0", js-tokens@^4.0.0: version "4.0.0" @@ -4568,6 +4557,11 @@ mime@^2.3.1: resolved "https://registry.yarnpkg.com/mime/-/mime-2.4.4.tgz#bd7b91135fc6b01cde3e9bae33d659b63d8857e5" integrity sha512-LRxmNwziLPT828z+4YkNzloCFC2YM4wrB99k+AV5ZbEyfGNWfG8SO1FUXLmLDBSo89NrJZ4DIWeLjy1CHGhMGA== +mime@^2.4.6: + version "2.4.6" + resolved "https://registry.yarnpkg.com/mime/-/mime-2.4.6.tgz#e5b407c90db442f2beb5b162373d07b69affa4d1" + integrity sha512-RZKhC3EmpBchfTGBVb8fb+RL2cWyw/32lshnsETttkBAyAUXSGHxbEJWWRXc751DrIxG1q04b8QwMbAwkRPpUA== + mimic-fn@^1.0.0: version "1.2.0" resolved "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-1.2.0.tgz#820c86a39334640e99516928bd03fca88057d022" @@ -4671,7 +4665,7 @@ mixin-deep@^1.2.0: for-in "^1.0.2" is-extendable "^1.0.1" -mkdirp@0.5.1, mkdirp@^0.5.1: +mkdirp@^0.5.1: version "0.5.1" resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.5.1.tgz#30057438eac6cf7f8c4767f38648d6697d75c903" integrity sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM= @@ -5540,21 +5534,22 @@ platform@^1.3.3: resolved "https://registry.yarnpkg.com/platform/-/platform-1.3.5.tgz#fb6958c696e07e2918d2eeda0f0bc9448d733444" integrity sha512-TuvHS8AOIZNAlE77WUDiR4rySV/VMptyMfcfeoMgs4P8apaZM3JrnbzBiixKUv+XR6i+BXrQh8WAnjaSPFO65Q== -playwright-core@0.11.1: - version "0.11.1" - resolved "https://registry.yarnpkg.com/playwright-core/-/playwright-core-0.11.1.tgz#b488ad17015a4d0f54db5a5fb6a9d380afea6d5a" - integrity sha512-9xsSkXlglvHIAofyNInA1p3beOAOBMWHZgiuH99gX1R8VL6fTXgfWD7pIvt+rJhVMJWMDAyMXRo4TYtYtdspIg== - dependencies: - debug "^4.1.0" - extract-zip "^1.6.6" - https-proxy-agent "^3.0.0" - jpeg-js "^0.3.6" - pngjs "^3.4.0" +playwright-core@1.5.2: + version "1.5.2" + resolved "https://registry.yarnpkg.com/playwright-core/-/playwright-core-1.5.2.tgz#e1c4af49ef2629b004c447ecce9e6087b42f42d8" + integrity sha512-koIAvADS6VB4KcjRQ8EicW4lozOnob+g+FjJKu1RY6IcgYUaaTFNaUOyLccrI9M4RAFo2zWMy4hRPXNRvm9zaA== + dependencies: + debug "^4.1.1" + extract-zip "^2.0.1" + https-proxy-agent "^5.0.0" + jpeg-js "^0.4.2" + mime "^2.4.6" + pngjs "^5.0.0" progress "^2.0.3" - proxy-from-env "^1.0.0" + proper-lockfile "^4.1.1" + proxy-from-env "^1.1.0" rimraf "^3.0.2" - uuid "^3.4.0" - ws "^6.1.0" + ws "^7.3.1" please-upgrade-node@^3.2.0: version "3.2.0" @@ -5573,10 +5568,10 @@ pluralize@^7.0.0: resolved "https://registry.yarnpkg.com/pluralize/-/pluralize-7.0.0.tgz#298b89df8b93b0221dbf421ad2b1b1ea23fc6777" integrity sha512-ARhBOdzS3e41FbkW/XWrTEtukqqLoK5+Z/4UeDaLuSW+39JPeFgs4gCGqsrJHVZX0fUrx//4OF0K1CUGwlIFow== -pngjs@^3.4.0: - version "3.4.0" - resolved "https://registry.yarnpkg.com/pngjs/-/pngjs-3.4.0.tgz#99ca7d725965fb655814eaf65f38f12bbdbf555f" - integrity sha512-NCrCHhWmnQklfH4MtJMRjZ2a8c80qXeMlQMv2uVp9ISJMTt562SbGd6n2oq0PaPgKm7Z6pL9E2UlLIhC+SHL3w== +pngjs@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/pngjs/-/pngjs-5.0.0.tgz#e79dd2b215767fd9c04561c01236df960bce7fbb" + integrity sha512-40QW5YalBNfQo5yRYmiw7Yz6TKKVr3h6970B2YE+3fQpsWcrbj1PzJgxeJ19DRQjhMbKPIuMY8rFaXc8moolVw== polka@^0.5.2: version "0.5.2" @@ -5644,15 +5639,24 @@ prop-types@^15.7.2: object-assign "^4.1.1" react-is "^16.8.1" +proper-lockfile@^4.1.1: + version "4.1.1" + resolved "https://registry.yarnpkg.com/proper-lockfile/-/proper-lockfile-4.1.1.tgz#284cf9db9e30a90e647afad69deb7cb06881262c" + integrity sha512-1w6rxXodisVpn7QYvLk706mzprPTAPCYAqxMvctmPN3ekuRk/kuGkGc82pangZiAt4R3lwSuUzheTTn0/Yb7Zg== + dependencies: + graceful-fs "^4.1.11" + retry "^0.12.0" + signal-exit "^3.0.2" + proto-props@^1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/proto-props/-/proto-props-1.1.0.tgz#e2606581dd24aa22398aeeeb628fc08e2ec89c91" integrity sha512-A377CdhQBRjYVsSWrm2jo0KJa+N/IBew6lGLm0pdzZjtVqlUT23wEqg7q1/bk5gBEgVoBBbaErZY+UUNrcKOug== -proxy-from-env@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/proxy-from-env/-/proxy-from-env-1.0.0.tgz#33c50398f70ea7eb96d21f7b817630a55791c7ee" - integrity sha1-M8UDmPcOp+uW0h97gXYwpVeRx+4= +proxy-from-env@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/proxy-from-env/-/proxy-from-env-1.1.0.tgz#e102f16ca355424865755d2c9e8ea4f24d58c3e2" + integrity sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg== prr@~1.0.1: version "1.0.1" @@ -6115,6 +6119,11 @@ ret@~0.1.10: resolved "https://registry.yarnpkg.com/ret/-/ret-0.1.15.tgz#b8a4825d5bdb1fc3f6f53c2bc33f81388681c7bc" integrity sha512-TTlYpa+OL+vMMNG24xSlQGEJ3B/RzEfUlLct7b5G/ytav+wPrplCpVMFuwzXbkecJrb6IYo1iFb0S9v37754mg== +retry@^0.12.0: + version "0.12.0" + resolved "https://registry.yarnpkg.com/retry/-/retry-0.12.0.tgz#1b42a6266a21f07421d1b0b54b7dc167b01c013b" + integrity sha1-G0KmJmoh8HQh0bC1S33BZ7AcATs= + reusify@^1.0.0: version "1.0.4" resolved "https://registry.yarnpkg.com/reusify/-/reusify-1.0.4.tgz#90da382b1e126efc02146e90845a88db12925d76" @@ -7318,7 +7327,7 @@ util@^0.12.0: object.entries "^1.1.0" safe-buffer "^5.1.2" -uuid@^3.3.2, uuid@^3.4.0: +uuid@^3.3.2: version "3.4.0" resolved "https://registry.yarnpkg.com/uuid/-/uuid-3.4.0.tgz#b23e4358afa8a202fe7a100af1f5f883f02007ee" integrity sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A== @@ -7555,12 +7564,10 @@ write@^0.2.1: dependencies: mkdirp "^0.5.1" -ws@^6.1.0: - version "6.2.1" - resolved "https://registry.yarnpkg.com/ws/-/ws-6.2.1.tgz#442fdf0a47ed64f59b6a5d8ff130f4748ed524fb" - integrity sha512-GIyAXC2cB7LjvpgMt9EKS2ldqr0MTrORaleiOno6TweZ6r3TKtoFQWay/2PceJ3RuBasOHzXNn5Lrw1X0bEjqA== - dependencies: - async-limiter "~1.0.0" +ws@^7.3.1: + version "7.4.0" + resolved "https://registry.yarnpkg.com/ws/-/ws-7.4.0.tgz#a5dd76a24197940d4a8bb9e0e152bb4503764da7" + integrity sha512-kyFwXuV/5ymf+IXhS6f0+eAFvydbaBW3zjpT6hUdAh/hbVjTIB5EHBGi0bPoCLSK2wcuz3BrEkB9LrYv1Nm4NQ== xdg-basedir@^4.0.0: version "4.0.0" @@ -7668,12 +7675,13 @@ yargs@^15.1.0: y18n "^4.0.0" yargs-parser "^18.1.2" -yauzl@2.4.1: - version "2.4.1" - resolved "https://registry.yarnpkg.com/yauzl/-/yauzl-2.4.1.tgz#9528f442dab1b2284e58b4379bb194e22e0c4005" - integrity sha1-lSj0QtqxsihOWLQ3m7GU4i4MQAU= +yauzl@^2.10.0: + version "2.10.0" + resolved "https://registry.yarnpkg.com/yauzl/-/yauzl-2.10.0.tgz#c7eb17c93e112cb1086fa6d8e51fb0667b79a5f9" + integrity sha1-x+sXyT4RLLEIb6bY5R+wZnt5pfk= dependencies: - fd-slicer "~1.0.1" + buffer-crc32 "~0.2.3" + fd-slicer "~1.1.0" zora@^4.0.1: version "4.0.1"