diff --git a/addons/xterm-addon-attach/test/AttachAddon.api.ts b/addons/xterm-addon-attach/test/AttachAddon.api.ts index af2c36c7..41e579f5 100644 --- a/addons/xterm-addon-attach/test/AttachAddon.api.ts +++ b/addons/xterm-addon-attach/test/AttachAddon.api.ts @@ -5,7 +5,7 @@ import WebSocket = require('ws'); import { openTerminal, pollFor, getBrowserType } from '../../../out-test/api/TestUtils'; -import { Browser, Page } from 'playwright-core'; +import { Browser, Page } from 'playwright'; const APP = 'http://127.0.0.1:3000/test'; @@ -17,7 +17,7 @@ const height = 600; describe('AttachAddon', () => { before(async function(): Promise { const browserType = getBrowserType(); - browser = await browserType.launch({ dumpio: true, + browser = await browserType.launch({ headless: process.argv.indexOf('--headless') !== -1 }); page = await (await browser.newContext()).newPage(); diff --git a/addons/xterm-addon-fit/test/FitAddon.api.ts b/addons/xterm-addon-fit/test/FitAddon.api.ts index 5eae6b6d..de66195a 100644 --- a/addons/xterm-addon-fit/test/FitAddon.api.ts +++ b/addons/xterm-addon-fit/test/FitAddon.api.ts @@ -5,7 +5,7 @@ import { assert } from 'chai'; import { openTerminal, getBrowserType } from '../../../out-test/api/TestUtils'; -import { Browser, Page } from 'playwright-core'; +import { Browser, Page } from 'playwright'; const APP = 'http://127.0.0.1:3000/test'; @@ -17,7 +17,7 @@ const height = 768; describe('FitAddon', () => { before(async function(): Promise { const browserType = getBrowserType(); - browser = await browserType.launch({ dumpio: true, + browser = await browserType.launch({ headless: process.argv.indexOf('--headless') !== -1 }); page = await (await browser.newContext()).newPage(); diff --git a/addons/xterm-addon-search/test/SearchAddon.api.ts b/addons/xterm-addon-search/test/SearchAddon.api.ts index 85e5059c..3707aecd 100644 --- a/addons/xterm-addon-search/test/SearchAddon.api.ts +++ b/addons/xterm-addon-search/test/SearchAddon.api.ts @@ -7,7 +7,7 @@ import { assert } from 'chai'; import { readFile } from 'fs'; import { resolve } from 'path'; import { openTerminal, writeSync, getBrowserType } from '../../../out-test/api/TestUtils'; -import { Browser, Page } from 'playwright-core'; +import { Browser, Page } from 'playwright'; const APP = 'http://127.0.0.1:3000/test'; @@ -19,7 +19,7 @@ const height = 600; describe('Search Tests', function(): void { before(async function(): Promise { const browserType = getBrowserType(); - browser = await browserType.launch({ dumpio: true, + browser = await browserType.launch({ headless: process.argv.indexOf('--headless') !== -1 }); page = await (await browser.newContext()).newPage(); @@ -111,8 +111,15 @@ describe('Search Tests', function(): void { let fixture: string; before(async () => { const rawFixture = await new Promise(r => readFile(resolve(__dirname, '../fixtures/issue-2444'), (err, data) => r(data))); - fixture = rawFixture.toString() - .replace(/\n/g, '\\n\\r') + if (process.platform === 'win32') { + fixture = rawFixture.toString() + .replace(/\n/g, '\\n') + .replace(/\r/g, '\\r'); + } else { + fixture = rawFixture.toString() + .replace(/\n/g, '\\n\\r'); + } + fixture = fixture .replace(/'/g, '\\\''); }); it('should find all occurrences using findNext', async () => { diff --git a/addons/xterm-addon-serialize/test/SerializeAddon.api.ts b/addons/xterm-addon-serialize/test/SerializeAddon.api.ts index 526dbe35..5b615db1 100644 --- a/addons/xterm-addon-serialize/test/SerializeAddon.api.ts +++ b/addons/xterm-addon-serialize/test/SerializeAddon.api.ts @@ -5,7 +5,7 @@ import { assert } from 'chai'; import { openTerminal, writeSync, getBrowserType } from '../../../out-test/api/TestUtils'; -import { Browser, Page } from 'playwright-core'; +import { Browser, Page } from 'playwright'; const APP = 'http://127.0.0.1:3000/test'; @@ -17,7 +17,7 @@ const height = 600; describe('SerializeAddon', () => { before(async function(): Promise { const browserType = getBrowserType(); - browser = await browserType.launch({ dumpio: true, + browser = await browserType.launch({ headless: process.argv.indexOf('--headless') !== -1 }); page = await (await browser.newContext()).newPage(); diff --git a/addons/xterm-addon-unicode11/test/Unicode11Addon.api.ts b/addons/xterm-addon-unicode11/test/Unicode11Addon.api.ts index 8d521b2e..d0e09da2 100644 --- a/addons/xterm-addon-unicode11/test/Unicode11Addon.api.ts +++ b/addons/xterm-addon-unicode11/test/Unicode11Addon.api.ts @@ -5,7 +5,7 @@ import { assert } from 'chai'; import { openTerminal, getBrowserType } from '../../../out-test/api/TestUtils'; -import { Browser, Page } from 'playwright-core'; +import { Browser, Page } from 'playwright'; const APP = 'http://127.0.0.1:3000/test'; @@ -17,7 +17,7 @@ const height = 600; describe('Unicode11Addon', () => { before(async function(): Promise { const browserType = getBrowserType(); - browser = await browserType.launch({ dumpio: true, + browser = await browserType.launch({ headless: process.argv.indexOf('--headless') !== -1 }); page = await (await browser.newContext()).newPage(); diff --git a/addons/xterm-addon-web-links/test/WebLinksAddon.api.ts b/addons/xterm-addon-web-links/test/WebLinksAddon.api.ts index dc7317f0..6e42ff96 100644 --- a/addons/xterm-addon-web-links/test/WebLinksAddon.api.ts +++ b/addons/xterm-addon-web-links/test/WebLinksAddon.api.ts @@ -5,7 +5,7 @@ import { assert } from 'chai'; import { openTerminal, pollFor, writeSync, getBrowserType } from '../../../out-test/api/TestUtils'; -import { Browser, Page } from 'playwright-core'; +import { Browser, Page } from 'playwright'; const APP = 'http://127.0.0.1:3000/test'; @@ -17,7 +17,7 @@ const height = 600; describe('WebLinksAddon', () => { before(async function(): Promise { const browserType = getBrowserType(); - browser = await browserType.launch({ dumpio: true, + browser = await browserType.launch({ headless: process.argv.indexOf('--headless') !== -1 }); page = await (await browser.newContext()).newPage(); diff --git a/addons/xterm-addon-webgl/test/WebglRenderer.api.ts b/addons/xterm-addon-webgl/test/WebglRenderer.api.ts index 64ad06a1..558605e2 100644 --- a/addons/xterm-addon-webgl/test/WebglRenderer.api.ts +++ b/addons/xterm-addon-webgl/test/WebglRenderer.api.ts @@ -7,7 +7,7 @@ import { ITerminalOptions } from '../../../src/common/Types'; import { ITheme } from 'xterm'; import { assert } from 'chai'; import { openTerminal, pollFor, writeSync, getBrowserType } from '../../../out-test/api/TestUtils'; -import { Browser, Page } from 'playwright-core'; +import { Browser, Page } from 'playwright'; const APP = 'http://127.0.0.1:3000/test'; @@ -892,7 +892,7 @@ async function getCellColor(col: number, row: number): Promise { async function setupBrowser(options: ITerminalOptions = { rendererType: 'dom' }): Promise { const browserType = getBrowserType(); - browser = await browserType.launch({ dumpio: true, + browser = await browserType.launch({ headless: process.argv.indexOf('--headless') !== -1 }); page = await (await browser.newContext()).newPage(); diff --git a/azure-pipelines.yml b/azure-pipelines.yml index 05c3b03d..4b2c5f73 100644 --- a/azure-pipelines.yml +++ b/azure-pipelines.yml @@ -98,11 +98,6 @@ jobs: inputs: versionSpec: '1.x' displayName: 'Install Yarn' - - task: CacheBeta@1 - inputs: - key: yarn2 | $(Agent.OS) | yarn.lock - path: node_modules - displayName: Cache node modules - script: yarn --frozen-lockfile displayName: 'Install dependencies and build' - script: | @@ -122,11 +117,6 @@ jobs: inputs: versionSpec: '10.x' displayName: 'Install Node.js' - - task: CacheBeta@1 - inputs: - key: yarn2 | $(Agent.OS) | yarn.lock - path: node_modules - displayName: Cache node modules - script: yarn --frozen-lockfile displayName: 'Install dependencies and build' - script: | diff --git a/bin/download_browser.js b/bin/download_browser.js deleted file mode 100644 index 44380db2..00000000 --- a/bin/download_browser.js +++ /dev/null @@ -1,23 +0,0 @@ -/** - * Copyright (c) 2020 The xterm.js authors. All rights reserved. - * @license MIT - */ - -const playwright = require('playwright-core'); -const fs = require('fs'); - -// Default to chromium -let browserType = playwright['chromium']; -const index = process.argv.indexOf('--browser'); -if (index !== -1 && process.argv.length > index + 1 && typeof process.argv[index + 1] === 'string') { - const string = process.argv[index + 1]; - if (string === 'firefox' || string === 'webkit') { - browserType = playwright[string]; - } -} - -const exists = fs.existsSync(browserType.executablePath()); -if (!exists) { - console.log(`Downloading ${browserType.name()}`); - browserType.downloadBrowserIfNeeded().then(() => process.exit(0)); -} diff --git a/package.json b/package.json index 3c8f5783..cf2a8422 100644 --- a/package.json +++ b/package.json @@ -18,9 +18,6 @@ "test-api-chromium": "node ./bin/test_api.js --browser=chromium --timeout=20000", "test-api-firefox": "node ./bin/test_api.js --browser=firefox --timeout=20000", "test-api-webkit": "node ./bin/test_api.js --browser=webkit --timeout=20000", - "pretest-api-chromium": "node ./bin/download_browser.js --browser chromium", - "pretest-api-firefox": "node ./bin/download_browser.js --browser firefox", - "pretest-api-webkit": "node ./bin/download_browser.js --browser webkit", "test-unit": "node ./bin/test.js", "test-unit-coverage": "node ./bin/test.js --coverage", "build": "tsc -b ./tsconfig.all.json", @@ -59,7 +56,7 @@ "mustache": "^4.0.1", "node-pty": "^0.9.0", "nyc": "^15.1.0", - "playwright-core": "^0.11.1", + "playwright": "^1.3.0", "source-map-loader": "^1.1.0", "ts-loader": "^8.0.3", "typescript": "4.0", diff --git a/test/api/CharWidth.api.ts b/test/api/CharWidth.api.ts index a1c38084..01d69861 100644 --- a/test/api/CharWidth.api.ts +++ b/test/api/CharWidth.api.ts @@ -4,7 +4,7 @@ */ import { pollFor, openTerminal, getBrowserType } from './TestUtils'; -import { Browser, Page } from 'playwright-core'; +import { Browser, Page } from 'playwright'; const APP = 'http://127.0.0.1:3000/test'; @@ -16,7 +16,7 @@ const height = 600; describe('CharWidth Integration Tests', function(): void { before(async function(): Promise { const browserType = getBrowserType(); - browser = await browserType.launch({ dumpio: true, + browser = await browserType.launch({ headless: process.argv.indexOf('--headless') !== -1 }); page = await (await browser.newContext()).newPage(); diff --git a/test/api/InputHandler.api.ts b/test/api/InputHandler.api.ts index bc845f11..16ab2301 100644 --- a/test/api/InputHandler.api.ts +++ b/test/api/InputHandler.api.ts @@ -5,7 +5,7 @@ import { assert } from 'chai'; import { pollFor, openTerminal, getBrowserType } from './TestUtils'; -import { Browser, Page } from 'playwright-core'; +import { Browser, Page } from 'playwright'; import { IRenderDimensions } from 'browser/renderer/Types'; const APP = 'http://127.0.0.1:3000/test'; @@ -21,7 +21,7 @@ describe('InputHandler Integration Tests', function(): void { before(async function(): Promise { const browserType = getBrowserType(); isChromium = browserType.name() === 'chromium'; - browser = await browserType.launch({ dumpio: true, + browser = await browserType.launch({ headless: process.argv.indexOf('--headless') !== -1 }); page = await (await browser.newContext()).newPage(); diff --git a/test/api/MouseTracking.api.ts b/test/api/MouseTracking.api.ts index 83e98021..0bd0cc18 100644 --- a/test/api/MouseTracking.api.ts +++ b/test/api/MouseTracking.api.ts @@ -4,7 +4,7 @@ */ import { pollFor, writeSync, openTerminal, getBrowserType } from './TestUtils'; -import { Browser, Page } from 'playwright-core'; +import { Browser, Page } from 'playwright'; const APP = 'http://127.0.0.1:3000/test'; @@ -81,8 +81,7 @@ async function wheelUp(): Promise { x: self._x, y: self._y, deltaX: 0, - deltaY: -10, - modifiers: toModifiersMask(page.keyboard._modifiers()) + deltaY: -10 }); } async function wheelDown(): Promise { @@ -92,8 +91,7 @@ async function wheelDown(): Promise { x: self._x, y: self._y, deltaX: 0, - deltaY: 10, - modifiers: toModifiersMask(page.keyboard._modifiers()) + deltaY: 10 }); } @@ -213,7 +211,7 @@ describe('Mouse Tracking Tests', async () => { const itMouse = isChromium ? it : it.skip; before(async function(): Promise { - browser = await browserType.launch({ dumpio: true, + browser = await browserType.launch({ headless: process.argv.indexOf('--headless') !== -1 }); page = await (await browser.newContext()).newPage(); diff --git a/test/api/Parser.api.ts b/test/api/Parser.api.ts index a40fd504..77101e23 100644 --- a/test/api/Parser.api.ts +++ b/test/api/Parser.api.ts @@ -5,7 +5,7 @@ import { assert } from 'chai'; import { writeSync, openTerminal, getBrowserType } from './TestUtils'; -import { Browser, Page } from 'playwright-core'; +import { Browser, Page } from 'playwright'; const APP = 'http://127.0.0.1:3000/test'; @@ -17,7 +17,7 @@ const height = 600; describe('Parser Integration Tests', function(): void { before(async function(): Promise { const browserType = getBrowserType(); - browser = await browserType.launch({ dumpio: true, + browser = await browserType.launch({ headless: process.argv.indexOf('--headless') !== -1 }); page = await (await browser.newContext()).newPage(); @@ -32,80 +32,80 @@ describe('Parser Integration Tests', function(): void { it('should call custom CSI handler with js array params', async () => { await page.evaluate(` window.term.reset(); - const _customCsiHandlerParams = []; + window._customCsiHandlerParams = []; const _customCsiHandler = window.term.parser.addCsiHandler({final: 'm'}, (params, collect) => { - _customCsiHandlerParams.push(params); + window._customCsiHandlerParams.push(params); return false; }, ''); `); await writeSync(page, '\x1b[38;5;123mparams\x1b[38:2::50:100:150msubparams'); - assert.deepEqual(await page.evaluate(`(() => _customCsiHandlerParams)();`), [[38, 5, 123], [38, [2, -1, 50, 100, 150]]]); + assert.deepEqual(await page.evaluate(`(() => window._customCsiHandlerParams)();`), [[38, 5, 123], [38, [2, -1, 50, 100, 150]]]); }); }); describe('addDcsHandler', () => { it('should respects return value', async () => { await page.evaluate(` window.term.reset(); - const _customDcsHandlerCallStack = []; + window._customDcsHandlerCallStack = []; const _customDcsHandlerA = window.term.parser.addDcsHandler({intermediates:'+', final: 'p'}, (data, params) => { - _customDcsHandlerCallStack.push(['A', params, data]); + window._customDcsHandlerCallStack.push(['A', params, data]); return false; }); const _customDcsHandlerB = window.term.parser.addDcsHandler({intermediates:'+', final: 'p'}, (data, params) => { - _customDcsHandlerCallStack.push(['B', params, data]); + window._customDcsHandlerCallStack.push(['B', params, data]); return true; }); const _customDcsHandlerC = window.term.parser.addDcsHandler({intermediates:'+', final: 'p'}, (data, params) => { - _customDcsHandlerCallStack.push(['C', params, data]); + window._customDcsHandlerCallStack.push(['C', params, data]); return false; }); `); await writeSync(page, '\x1bP1;2+psome data\x1b\\\\'); - assert.deepEqual(await page.evaluate(`(() => _customDcsHandlerCallStack)();`), [['C', [1, 2], 'some data'], ['B', [1, 2], 'some data']]); + assert.deepEqual(await page.evaluate(`(() => window._customDcsHandlerCallStack)();`), [['C', [1, 2], 'some data'], ['B', [1, 2], 'some data']]); }); }); describe('addEscHandler', () => { it('should respects return value', async () => { await page.evaluate(` window.term.reset(); - const _customEscHandlerCallStack = []; + window._customEscHandlerCallStack = []; const _customEscHandlerA = window.term.parser.addEscHandler({intermediates:'(', final: 'B'}, () => { - _customEscHandlerCallStack.push('A'); + window._customEscHandlerCallStack.push('A'); return false; }); const _customEscHandlerB = window.term.parser.addEscHandler({intermediates:'(', final: 'B'}, () => { - _customEscHandlerCallStack.push('B'); + window._customEscHandlerCallStack.push('B'); return true; }); const _customEscHandlerC = window.term.parser.addEscHandler({intermediates:'(', final: 'B'}, () => { - _customEscHandlerCallStack.push('C'); + window._customEscHandlerCallStack.push('C'); return false; }); `); await writeSync(page, '\x1b(B'); - assert.deepEqual(await page.evaluate(`(() => _customEscHandlerCallStack)();`), ['C', 'B']); + assert.deepEqual(await page.evaluate(`(() => window._customEscHandlerCallStack)();`), ['C', 'B']); }); }); describe('addOscHandler', () => { it('should respects return value', async () => { await page.evaluate(` window.term.reset(); - const _customOscHandlerCallStack = []; + window._customOscHandlerCallStack = []; const _customOscHandlerA = window.term.parser.addOscHandler(1234, data => { - _customOscHandlerCallStack.push(['A', data]); + window._customOscHandlerCallStack.push(['A', data]); return false; }); const _customOscHandlerB = window.term.parser.addOscHandler(1234, data => { - _customOscHandlerCallStack.push(['B', data]); + window._customOscHandlerCallStack.push(['B', data]); return true; }); const _customOscHandlerC = window.term.parser.addOscHandler(1234, data => { - _customOscHandlerCallStack.push(['C', data]); + window._customOscHandlerCallStack.push(['C', data]); return false; }); `); await writeSync(page, '\x1b]1234;some data\x07'); - assert.deepEqual(await page.evaluate(`(() => _customOscHandlerCallStack)();`), [['C', 'some data'], ['B', 'some data']]); + assert.deepEqual(await page.evaluate(`(() => window._customOscHandlerCallStack)();`), [['C', 'some data'], ['B', 'some data']]); }); }); }); diff --git a/test/api/Terminal.api.ts b/test/api/Terminal.api.ts index 59d123aa..99cb9b2a 100644 --- a/test/api/Terminal.api.ts +++ b/test/api/Terminal.api.ts @@ -5,7 +5,7 @@ import { assert } from 'chai'; import { pollFor, timeout, writeSync, openTerminal, getBrowserType } from './TestUtils'; -import { Browser, Page } from 'playwright-core'; +import { Browser, Page } from 'playwright'; const APP = 'http://127.0.0.1:3000/test'; @@ -17,7 +17,7 @@ const height = 600; describe('API Integration Tests', function(): void { before(async () => { const browserType = getBrowserType(); - browser = await browserType.launch({ dumpio: true, + browser = await browserType.launch({ headless: process.argv.indexOf('--headless') !== -1 }); page = await (await browser.newContext()).newPage(); @@ -223,13 +223,17 @@ describe('API Integration Tests', function(): void { it('selection', async () => { await openTerminal(page, { rows: 5, cols: 5 }); - await page.evaluate(`window.term.write('\\n\\nfoo\\n\\n\\rbar\\n\\n\\rbaz')`); + await writeSync(page, `\\n\\nfoo\\n\\n\\rbar\\n\\n\\rbaz`); assert.equal(await page.evaluate(`window.term.hasSelection()`), false); assert.equal(await page.evaluate(`window.term.getSelection()`), ''); assert.deepEqual(await page.evaluate(`window.term.getSelectionPosition()`), undefined); await page.evaluate(`window.term.selectAll()`); assert.equal(await page.evaluate(`window.term.hasSelection()`), true); - assert.equal(await page.evaluate(`window.term.getSelection()`), '\n\nfoo\n\nbar\n\nbaz'); + if (process.platform === 'win32') { + assert.equal(await page.evaluate(`window.term.getSelection()`), '\r\n\r\nfoo\r\n\r\nbar\r\n\r\nbaz'); + } else { + assert.equal(await page.evaluate(`window.term.getSelection()`), '\n\nfoo\n\nbar\n\nbaz'); + } assert.deepEqual(await page.evaluate(`window.term.getSelectionPosition()`), { startColumn: 0, startRow: 0, endColumn: 5, endRow: 6 }); await page.evaluate(`window.term.clearSelection()`); assert.equal(await page.evaluate(`window.term.hasSelection()`), false); diff --git a/test/api/TestUtils.ts b/test/api/TestUtils.ts index 9a3af193..f36d2830 100644 --- a/test/api/TestUtils.ts +++ b/test/api/TestUtils.ts @@ -3,7 +3,7 @@ * @license MIT */ -import * as playwright from 'playwright-core'; +import * as playwright from 'playwright'; import deepEqual = require('deep-equal'); import { ITerminalOptions } from 'xterm'; @@ -46,9 +46,9 @@ export async function openTerminal(page: playwright.Page, options: ITerminalOpti } } -export function getBrowserType(): playwright.BrowserType { +export function getBrowserType(): playwright.BrowserType | playwright.BrowserType | playwright.BrowserType { // Default to chromium - let browserType: playwright.BrowserType = playwright['chromium']; + let browserType: playwright.BrowserType | playwright.BrowserType | playwright.BrowserType = playwright['chromium']; const index = process.argv.indexOf('--browser'); if (index !== -1 && process.argv.length > index + 1 && typeof process.argv[index + 1] === 'string') { diff --git a/test/api/tsconfig.json b/test/api/tsconfig.json index 7c3235c7..60eb33cd 100644 --- a/test/api/tsconfig.json +++ b/test/api/tsconfig.json @@ -7,7 +7,8 @@ "rootDir": ".", "outDir": "../../out-test/api", "types": [ - "../../node_modules/@types/mocha" + "../../node_modules/@types/mocha", + "../../node_modules/@types/node" ], "sourceMap": true, "removeComments": true, diff --git a/yarn.lock b/yarn.lock index b563ab4e..e2455fc5 100644 --- a/yarn.lock +++ b/yarn.lock @@ -402,6 +402,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" "*" + "@typescript-eslint/eslint-plugin@^4.0.0": version "4.0.0" resolved "https://registry.yarnpkg.com/@typescript-eslint/eslint-plugin/-/eslint-plugin-4.0.0.tgz#99349a501447fed91de18346705c0c65cf603bee" @@ -711,6 +718,13 @@ acorn@^7.4.0: resolved "https://registry.yarnpkg.com/acorn/-/acorn-7.4.0.tgz#e1ad486e6c54501634c6c397c5c121daa383607c" integrity sha512-+G7P8jJmCHr+S+cLfQxygbWhXy+8YTVGzAkpEbcLo2mLoL7tij/VG41QSHACSf5QgYRhMZYHuNc6drJaO0Da+w== +agent-base@6: + version "6.0.1" + resolved "https://registry.yarnpkg.com/agent-base/-/agent-base-6.0.1.tgz#808007e4e5867decb0ab6ab2f928fbdb5a596db4" + integrity sha512-01q25QQDwLSsyfhrKbn8yuur+JNw0H+0Y4JiGIKd3z9aYk/w/2kxD/Upc+t2ZBBSUNff50VjPsSW2YxM8QYKVg== + dependencies: + debug "4" + agent-base@^4.3.0: version "4.3.0" resolved "https://registry.yarnpkg.com/agent-base/-/agent-base-4.3.0.tgz#8165f01c436009bccad0b1d122f05ed770efc6ee" @@ -1719,7 +1733,7 @@ debug@3.2.6, debug@^3.1.0: dependencies: ms "^2.1.1" -debug@4.1.1, debug@^4.0.1, debug@^4.1.0, debug@^4.1.1: +debug@4, debug@4.1.1, debug@^4.0.1, debug@^4.1.0, debug@^4.1.1: version "4.1.1" resolved "https://registry.yarnpkg.com/debug/-/debug-4.1.1.tgz#3b72260255109c6b589cee050f1d516139664791" integrity sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw== @@ -2341,6 +2355,17 @@ extract-zip@^1.6.6: mkdirp "^0.5.4" yauzl "^2.10.0" +extract-zip@^2.0.0: + 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: + debug "^4.1.1" + get-stream "^5.1.0" + yauzl "^2.10.0" + optionalDependencies: + "@types/yauzl" "^2.9.1" + extsprintf@1.3.0: version "1.3.0" resolved "https://registry.yarnpkg.com/extsprintf/-/extsprintf-1.3.0.tgz#96918440e3041a7a414f8c52e3c574eb3c3e1e05" @@ -2654,6 +2679,13 @@ get-package-type@^0.1.0: resolved "https://registry.yarnpkg.com/get-package-type/-/get-package-type-0.1.0.tgz#8de2d803cff44df3bc6c456e6668b36c3926e11a" integrity sha512-pjzuKtY64GYfWizNAJ0fr9VqttZkNiK2iS430LtIHzjBEr6bX8Am2zm4sW4Ro5wjWW5cAlRL1qAMTcXbjNAO2Q== +get-stream@^5.1.0: + version "5.2.0" + resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-5.2.0.tgz#4966a1795ee5ace65e706c4b7beb71257d6e22d3" + integrity sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA== + dependencies: + pump "^3.0.0" + get-value@^2.0.3, get-value@^2.0.6: version "2.0.6" resolved "https://registry.yarnpkg.com/get-value/-/get-value-2.0.6.tgz#dc15ca1c672387ca76bd37ac0a395ba2042a2c28" @@ -2948,13 +2980,13 @@ https-proxy-agent@^2.2.1: agent-base "^4.3.0" debug "^3.1.0" -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" iconv-lite@0.4.24: version "0.4.24" @@ -3427,10 +3459,10 @@ javascript-natural-sort@0.7.1: resolved "https://registry.yarnpkg.com/javascript-natural-sort/-/javascript-natural-sort-0.7.1.tgz#f9e2303d4507f6d74355a73664d1440fb5a0ef59" integrity sha1-+eIwPUUH9tdDVac2ZNFED7Wg71k= -jpeg-js@^0.3.6: - version "0.3.7" - resolved "https://registry.yarnpkg.com/jpeg-js/-/jpeg-js-0.3.7.tgz#471a89d06011640592d314158608690172b1028d" - integrity sha512-9IXdWudL61npZjvLuVe/ktHiA41iE8qFyLB+4VDTblEsWBzeg8WQTlktdUK4CdncUqtUgUg0bbOmTE2bKBKaBQ== +jpeg-js@^0.4.0: + 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@^4.0.0: version "4.0.0" @@ -3826,6 +3858,11 @@ mime@^2.0.3: resolved "https://registry.yarnpkg.com/mime/-/mime-2.4.4.tgz#bd7b91135fc6b01cde3e9bae33d659b63d8857e5" integrity sha512-LRxmNwziLPT828z+4YkNzloCFC2YM4wrB99k+AV5ZbEyfGNWfG8SO1FUXLmLDBSo89NrJZ4DIWeLjy1CHGhMGA== +mime@^2.4.4: + version "2.4.6" + resolved "https://registry.yarnpkg.com/mime/-/mime-2.4.6.tgz#e5b407c90db442f2beb5b162373d07b69affa4d1" + integrity sha512-RZKhC3EmpBchfTGBVb8fb+RL2cWyw/32lshnsETttkBAyAUXSGHxbEJWWRXc751DrIxG1q04b8QwMbAwkRPpUA== + minimalistic-assert@^1.0.0, minimalistic-assert@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz#2e194de044626d4a10e7f7fbc00ce73e83e4d5c7" @@ -4452,26 +4489,26 @@ pkg-dir@^4.1.0: dependencies: find-up "^4.0.0" -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== +playwright@^1.3.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/playwright/-/playwright-1.3.0.tgz#8c33ed29bc0c7d97f82f8322e99be6d7f0d9ff67" + integrity sha512-W3mwXv2XNFugbepSZTZxI314WfI1SAjdZBEeGOu8S5KnPz4RSlunUFgXn6496o8lobPmORLcJ9VTSGyiFfGpaw== 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" + debug "^4.1.1" + extract-zip "^2.0.0" + https-proxy-agent "^5.0.0" + jpeg-js "^0.4.0" + mime "^2.4.4" + pngjs "^5.0.0" progress "^2.0.3" - proxy-from-env "^1.0.0" + proxy-from-env "^1.1.0" rimraf "^3.0.2" - uuid "^3.4.0" ws "^6.1.0" -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== posix-character-classes@^0.1.0: version "0.1.1" @@ -4534,7 +4571,7 @@ proxy-addr@~2.0.5: forwarded "~0.1.2" ipaddr.js "1.9.1" -proxy-from-env@^1.0.0: +proxy-from-env@^1.0.0, 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== @@ -5801,7 +5838,7 @@ utils-merge@1.0.1: resolved "https://registry.yarnpkg.com/utils-merge/-/utils-merge-1.0.1.tgz#9f95710f50a267947b2ccc124741c1028427e713" integrity sha1-n5VxD1CiZ5R7LMwSR0HBAoQn5xM= -uuid@^3.3.2, uuid@^3.3.3, uuid@^3.4.0: +uuid@^3.3.2, uuid@^3.3.3: version "3.4.0" resolved "https://registry.yarnpkg.com/uuid/-/uuid-3.4.0.tgz#b23e4358afa8a202fe7a100af1f5f883f02007ee" integrity sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A==