From 0b02e28ca279bd073b6c278748a2bfcbe3cbf6f6 Mon Sep 17 00:00:00 2001 From: Eduardo San Martin Morote Date: Wed, 16 Oct 2019 10:33:20 +0200 Subject: [PATCH] test(e2e): add base configuration and runner --- .gitignore | 1 + e2e/browserstack-send-status.js | 87 +++ e2e/nightwatch.browserstack.js | 125 ++++ e2e/nightwatch.config.js | 76 ++ .../CHROME_77.0.3865.120_Mac_OS_X_basic.xml | 32 + .../CHROME_77.0.3865.90_Mac_OS_X_basic.xml | 21 + e2e/runner.js | 157 +++++ ...5131-GMT+0200-(Central-European-Summer.png | Bin 0 -> 5900 bytes ...2239-GMT+0200-(Central-European-Summer.png | Bin 0 -> 5900 bytes ...2335-GMT+0200-(Central-European-Summer.png | Bin 0 -> 5900 bytes ...2402-GMT+0200-(Central-European-Summer.png | Bin 0 -> 46299 bytes e2e/specs/basic.js | 27 + explorations/html5.html | 36 + explorations/html5.ts | 3 +- package.json | 7 + yarn.lock | 650 +++++++++++++++++- 16 files changed, 1199 insertions(+), 23 deletions(-) create mode 100644 e2e/browserstack-send-status.js create mode 100644 e2e/nightwatch.browserstack.js create mode 100644 e2e/nightwatch.config.js create mode 100644 e2e/reports/CHROME_77.0.3865.120_Mac_OS_X_basic.xml create mode 100644 e2e/reports/CHROME_77.0.3865.90_Mac_OS_X_basic.xml create mode 100644 e2e/runner.js create mode 100644 e2e/screenshots/basic/basic_FAILED_Oct-15-2019-185131-GMT+0200-(Central-European-Summer.png create mode 100644 e2e/screenshots/basic/basic_FAILED_Oct-16-2019-102239-GMT+0200-(Central-European-Summer.png create mode 100644 e2e/screenshots/basic/basic_FAILED_Oct-16-2019-102335-GMT+0200-(Central-European-Summer.png create mode 100644 e2e/screenshots/basic/basic_FAILED_Oct-16-2019-102402-GMT+0200-(Central-European-Summer.png create mode 100644 e2e/specs/basic.js diff --git a/.gitignore b/.gitignore index 198792ca..478ad2dc 100644 --- a/.gitignore +++ b/.gitignore @@ -4,3 +4,4 @@ node_modules coverage .nyc_output .rpt2_cache +.env diff --git a/e2e/browserstack-send-status.js b/e2e/browserstack-send-status.js new file mode 100644 index 00000000..bc45fd87 --- /dev/null +++ b/e2e/browserstack-send-status.js @@ -0,0 +1,87 @@ +const axios = require('axios') + +const BS_USER = process.env.BS_USER +const BS_KEY = process.env.BS_KEY + +function getKey (client) { + // const { capabilities, currentTest } = client + // originally i wanted to use this but it turns out the information changes + // on the afterEach, making the key non valid. But because every environment + // runs on a different thread, the sessionMap object is only shared for a given + // environment, so only using the name of the test (currentTest.module) seems to be + // enough + // return `${capabilities.platform}::${capabilities.browserName}@${ + // capabilities.version + // } ${currentTest.module}: ${currentTest.name}` + + return `${client.currentTest.module}: ${client.currentTest.name}` +} + +function shouldSkipBrowserstackReporting (client) { + return !BS_USER || !BS_KEY || client.options.selenium_port !== 80 +} + +/** + * Generates an object with beforeEach and afterEach functions to be added + * to every test suite. It cannot be added globably because these must be + * executed before each test (instead of each test suite as it does in globalModules) + */ +module.exports = function sendStatus () { + const sessionMap = Object.create(null) + + return { + beforeEach (browser, cb) { + // avoid running if missing credentials + if (shouldSkipBrowserstackReporting(this.client)) return cb() + // retrieve the session and save it to the map + const key = getKey(this.client) + browser.session(({ sessionId }) => { + sessionMap[key] = sessionId + cb() + }) + }, + + afterEach (browser, cb) { + // avoid running if missing credentials + if (shouldSkipBrowserstackReporting(this.client)) return cb() + const key = getKey(this.client) + const { results } = this.client.currentTest + const sessionId = sessionMap[key] + + if (!sessionId) { + console.warn('❌ Cannot find sessionId for ' + key) + return cb() + } + + if (results.errors > 0 || results.failed > 0) { + const reason = results.lastError.message + console.log('Found failed test', reason) + axios + .put( + `https://api.browserstack.com/automate/sessions/${sessionId}.json`, + { + // change the name so it's easier to find + name: key, + status: 'failed', + reason + }, + { + auth: { + username: BS_USER, + password: BS_KEY + } + } + ) + .catch(err => { + console.log('❌ Failed changing status for sessions', err) + }) + .then(() => { + console.log('✅ Sent for', sessionId) + cb() + }) + } else { + cb() + } + } + } +} diff --git a/e2e/nightwatch.browserstack.js b/e2e/nightwatch.browserstack.js new file mode 100644 index 00000000..7289146e --- /dev/null +++ b/e2e/nightwatch.browserstack.js @@ -0,0 +1,125 @@ +/** + * Running tests on remote browsers + */ + +const BS_USER = process.env.BS_USER +const BS_KEY = process.env.BS_KEY + +const nwConf = { + src_folders: ['test/e2e/specs'], + output_folder: 'test/e2e/reports', + custom_commands_path: ['node_modules/nightwatch-helpers/commands'], + custom_assertions_path: ['node_modules/nightwatch-helpers/assertions'], + // set to true when testing on multiple browsers (-e chrome,firefox) to display tests as they pass instead of waiting for everything to be finished + live_output: true, + + // this couldn't work at the end, so we used ./browserstack-send-status.js + // globals_path: resolve(__dirname, './globalModules.js'), + + selenium: { + start_process: false, + host: 'hub-cloud.browserstack.com', + port: 80 + }, + + common_capabilities: { + 'browserstack.user': BS_USER, + 'browserstack.key': BS_KEY, + name: 'Bstack-[Nightwatch] Vue Router Parallel Test', + 'browserstack.local': true, + 'browserstack.video': false, + acceptSslCerts: true, + resolution: '1024x768' + }, + + test_settings: { + // default: {}, + + chrome: { + desiredCapabilities: { + browser: 'chrome' + } + }, + + chromeQt: { + desiredCapabilities: { + browser: 'chrome', + browser_version: '49.0' + } + }, + + firefox: { + desiredCapabilities: { + browser: 'firefox' + } + }, + + safari: { + desiredCapabilities: { + os: 'OS X', + os_version: 'Mojave', + browser: 'Safari', + browser_version: '12.0' + } + }, + + safari6: { + desiredCapabilities: { + os: 'OS X', + os_version: 'Lion', + browser: 'Safari', + browser_version: '6.0' + } + }, + + ie9: { + desiredCapabilities: { + browser: 'internet explorer', + browser_version: '9' + // name: 'Bstack-[Nightwatch] Vue Router', + // 'browserstack.video': true + } + }, + + ie: { + desiredCapabilities: { + browser: 'internet explorer', + browser_version: '11' + // name: 'Bstack-[Nightwatch] Vue Router', + // 'browserstack.video': true + } + }, + + android44: { + desiredCapabilities: { + device: 'Google Nexus 5', + realMobile: 'true', + os_version: '4.4' + } + }, + + ios7: { + desiredCapabilities: { + device: 'iPhone 7', + realMobile: 'true', + os_version: '10' + } + } + } +} + +// Code to copy seleniumhost/port into test settings +for (const setting in nwConf.test_settings) { + const config = nwConf.test_settings[setting] + config['selenium_host'] = nwConf.selenium.host + config['selenium_port'] = nwConf.selenium.port + + // merge common_capabilities + for (const key in nwConf.common_capabilities) { + // fallback to common_capabilities + config['desiredCapabilities'][key] = + config['desiredCapabilities'][key] || nwConf.common_capabilities[key] + } +} + +module.exports = nwConf diff --git a/e2e/nightwatch.config.js b/e2e/nightwatch.config.js new file mode 100644 index 00000000..50df2dc2 --- /dev/null +++ b/e2e/nightwatch.config.js @@ -0,0 +1,76 @@ +// yarn nightwatch -e chrome,safari,firefox + +module.exports = { + src_folders: ['e2e/specs'], + output_folder: 'e2e/reports', + custom_commands_path: ['node_modules/nightwatch-helpers/commands'], + custom_assertions_path: ['node_modules/nightwatch-helpers/assertions'], + // set to true when testing on multiple browsers (-e chrome,firefox) to display tests as they pass instead of waiting for everything to be finished + live_output: false, + + selenium: { + start_process: true, + server_path: require('selenium-server').path, + host: '127.0.0.1', + port: 4444, + cli_args: { + 'webdriver.chrome.driver': require('chromedriver').path, + // 'webdriver.gecko.driver': require('geckodriver').path + }, + }, + + test_settings: { + default: { + selenium_port: 4444, + selenium_host: 'localhost', + silent: true, + screenshots: { + enabled: true, + on_failure: true, + on_error: false, + path: 'e2e/screenshots', + }, + desiredCapabilities: { + browserName: 'chrome', + acceptSslCerts: true, + chromeOptions: { + // https://github.com/nightwatchjs/nightwatch/releases/tag/v1.1.12 + w3c: false, + args: ['window-size=1280,800', 'headless'], + }, + }, + }, + + chrome: { + desiredCapabilities: { + browserName: 'chrome', + acceptSslCerts: true, + chromeOptions: { + // https://github.com/nightwatchjs/nightwatch/releases/tag/v1.1.12 + w3c: false, + args: ['window-size=1280,800'], + }, + }, + }, + + safari: { + desiredCapabilities: { + browserName: 'safari', + acceptSslCerts: true, + }, + }, + + firefox: { + desiredCapabilities: { + browserName: 'firefox', + acceptSslCerts: true, + }, + }, + + ie: { + desiredCapabilities: { + browser: 'internet explorer', + }, + }, + }, +} diff --git a/e2e/reports/CHROME_77.0.3865.120_Mac_OS_X_basic.xml b/e2e/reports/CHROME_77.0.3865.120_Mac_OS_X_basic.xml new file mode 100644 index 00000000..51a6d77f --- /dev/null +++ b/e2e/reports/CHROME_77.0.3865.120_Mac_OS_X_basic.xml @@ -0,0 +1,32 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/e2e/reports/CHROME_77.0.3865.90_Mac_OS_X_basic.xml b/e2e/reports/CHROME_77.0.3865.90_Mac_OS_X_basic.xml new file mode 100644 index 00000000..7721674c --- /dev/null +++ b/e2e/reports/CHROME_77.0.3865.90_Mac_OS_X_basic.xml @@ -0,0 +1,21 @@ + + + + + + at Object.basic (/Users/posva/vue-router-next/e2e/specs/basic.js:11:8) + at process._tickCallback (internal/process/next_tick.js:68:7) +[[ATTACHMENT|/Users/posva/vue-router-next/e2e/screenshots/basic/basic_FAILED_Oct-15-2019-185131-GMT+0200-(Central-European-Summer.png]] + at process._tickCallback (internal/process/next_tick.js:68:7) + + + + + + + + diff --git a/e2e/runner.js b/e2e/runner.js new file mode 100644 index 00000000..28cfafcc --- /dev/null +++ b/e2e/runner.js @@ -0,0 +1,157 @@ +/** + * Running tests + * + * By default tests are run locally on chrome headless + * $ node test/e2e/runner.js + * + * You can run a specific test by passing it, or pass various tests + * $ node test/e2e/runner.js test/e2e/specs/basic.js test/e2e/specs/redirect.js + * + * You can specify a list of browsers to run from nightwatch.config.js with -e separated by a comma + * $ node test/e2e/runner.js -e safari,firefox + * + * If you are already running the dev server with `yarn run serve`, you can pass the --dev option to avoid launching the server + * $ node test/e2e/runner.js --dev + * **Make sure to pass the option at the end** + * + * __For maintainers only__ + * You can trigger tests on Browserstack on other browsers by passing the --local option + * It's also required to pass the list of browsers to test on to avoid launching too many tests. Available options are located inside nightwatch.browserstack.js + * $ node test/e2e/runner.js --local -e ie,chrome50 + */ + +require('dotenv').config() +const { resolve } = require('path') +const Nightwatch = require('nightwatch') +const args = process.argv.slice(2) + +// if we are running yarn dev locally, we can pass --dev to avoid launching another server instance +const server = + args.indexOf('--dev') > -1 ? null : require('../../examples/server') + +// allow running browserstack local +const isLocal = args.indexOf('--local') > -1 + +const DEFAULT_CONFIG = './nightwatch.json' +const NW_CONFIG = isLocal + ? resolve(__dirname, './nightwatch.browserstack.js') + : resolve(__dirname, './nightwatch.config.js') + +// check -c option is passed when usig multiple environments +if (args.indexOf('-c') < 0) { + // check if multiple envs are provided. The way Nightwatch works + // requires to explicitely provide the conf + const envs = args[args.indexOf('-e') + 1] + if (envs && envs.indexOf(',') > -1) { + console.warn( + `Specify the conf when providing multiple browsers:\n$ yarn run test:e2e ${args.join( + ' ' + )} -c ${NW_CONFIG}` + ) + process.exit(1) + } +} else if (isLocal) { + const conf = args[args.indexOf('-c') + 1] + if (resolve('.', conf) !== NW_CONFIG) { + console.warn('The passed config should be', NW_CONFIG) + process.exit(1) + } +} + +function adaptArgv(argv) { + // take every remaining argument and treat it as a test file + // this allows to run `node test/e2e/runner.js test/e2e/basic.js` + argv.retries = 1 + argv.test = argv['_'].slice(0) + + if (argv.c === DEFAULT_CONFIG && argv.config === DEFAULT_CONFIG) { + argv.config = argv.c = NW_CONFIG + } + // Nightwatch does not accept an array with one element + if (argv.test.length === 1) argv.test = argv.test[0] + + // debugging easily + // console.log(argv) + // process.exit(0) +} + +process.mainModule.filename = resolve( + __dirname, + '../node_modules/.bin/nightwatch' +) + +if (isLocal) { + if (isLocal && (!process.env.BS_USER || !process.env.BS_KEY)) { + console.log( + 'Hey!\n', + 'You are missing credentials for Browserstack.\n', + 'If you are a contributor, this is normal, credentials are private. These tests must be run by a maintainer of vue-router', + 'If you are a maintainer, make sure to create your `.env` file with both `BS_USER` and `BS_KEY` variables!' + ) + // fail if testing locally + process.exit(process.env.CI ? 0 : 1) + } + + let bsLocal + const browserstack = require('browserstack-local') + Nightwatch.bs_local = bsLocal = new browserstack.Local() + bsLocal.start({ key: process.env.BS_KEY }, error => { + if (error) throw error + + console.log('Connected. Now testing...') + try { + Nightwatch.cli(argv => { + adaptArgv(argv) + Nightwatch.CliRunner(argv) + .setup(null, () => { + // NOTE: I don't know when this is running or if it does + // Code to stop browserstack local after end of parallel test + bsLocal.stop(() => { + server && server.close() + process.exit(0) + }) + }) + .runTests() + .then(() => { + // Code to stop browserstack local after end of single test + bsLocal.stop(() => { + server && server.close() + process.exit(0) + }) + }) + .catch(() => { + server && server.close() + // fail execution + process.exit(1) + }) + }) + } catch (err) { + console.error(err) + bsLocal.stop(() => { + process.exit(1) + }) + } + }) +} else { + // create the Nightwatch CLI runner + Nightwatch.cli(argv => { + adaptArgv(argv) + const runner = Nightwatch.CliRunner(argv) + + // setup and run tests + runner + .setup() + .startWebDriver() + .then(() => runner.runTests()) + .then(() => { + runner.stopWebDriver() + server && server.close() + process.exit(0) + }) + .catch(err => { + server && server.close() + console.error(err) + process.exit(1) + }) + }) +} diff --git a/e2e/screenshots/basic/basic_FAILED_Oct-15-2019-185131-GMT+0200-(Central-European-Summer.png b/e2e/screenshots/basic/basic_FAILED_Oct-15-2019-185131-GMT+0200-(Central-European-Summer.png new file mode 100644 index 0000000000000000000000000000000000000000..e49eb3f302e9014fd6c412acfb5713023779b4e0 GIT binary patch literal 5900 zc-rd>@N?(olHy`uVBq!ia0y~yU(^b literal 0 Hc-jL100001 diff --git a/e2e/screenshots/basic/basic_FAILED_Oct-16-2019-102239-GMT+0200-(Central-European-Summer.png b/e2e/screenshots/basic/basic_FAILED_Oct-16-2019-102239-GMT+0200-(Central-European-Summer.png new file mode 100644 index 0000000000000000000000000000000000000000..e49eb3f302e9014fd6c412acfb5713023779b4e0 GIT binary patch literal 5900 zc-rd>@N?(olHy`uVBq!ia0y~yU(^b literal 0 Hc-jL100001 diff --git a/e2e/screenshots/basic/basic_FAILED_Oct-16-2019-102335-GMT+0200-(Central-European-Summer.png b/e2e/screenshots/basic/basic_FAILED_Oct-16-2019-102335-GMT+0200-(Central-European-Summer.png new file mode 100644 index 0000000000000000000000000000000000000000..e49eb3f302e9014fd6c412acfb5713023779b4e0 GIT binary patch literal 5900 zc-rd>@N?(olHy`uVBq!ia0y~yU(^b literal 0 Hc-jL100001 diff --git a/e2e/screenshots/basic/basic_FAILED_Oct-16-2019-102402-GMT+0200-(Central-European-Summer.png b/e2e/screenshots/basic/basic_FAILED_Oct-16-2019-102402-GMT+0200-(Central-European-Summer.png new file mode 100644 index 0000000000000000000000000000000000000000..34d1c5ec3f81ebe86eced98d172563ed699cd267 GIT binary patch literal 46299 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 f4A%_*2Mu>$zQ_;1EwDo1MW>_gN2>pF@|(W_W

{{ message }}

{{ $route }}
+
+ Name: +
{{ $route.name }}
+
+ +
+ Params: +
{{ $route.params }}
+
+ +
+ Query: +
{{ $route.query }}
+
+ +
+ Hash: +
{{ $route.hash }}
+
+ +
+ FullPath: +
{{ $route.fullPath }}
+
+ +
+ path: +
{{ $route.path }}
+
+ +
+ diff --git a/explorations/html5.ts b/explorations/html5.ts index dfaf5a51..1c3451cd 100644 --- a/explorations/html5.ts +++ b/explorations/html5.ts @@ -20,8 +20,9 @@ declare global { } } -const routerHistory = createHistory('/app') +// const routerHistory = createHistory('/app') // const routerHistory = createHashHistory() +const routerHistory = createHistory() window.h = routerHistory const shared = { diff --git a/package.json b/package.json index b022e980..83b3c485 100644 --- a/package.json +++ b/package.json @@ -19,13 +19,19 @@ "@types/jest": "^24.0.18", "@types/jsdom": "^12.2.4", "@vue/test-utils": "^1.0.0-beta.29", + "axios": "^0.19.0", + "browserstack-local": "^1.4.2", + "chromedriver": "^77.0.0", "codecov": "^3.6.1", "consola": "^2.10.1", + "dotenv": "^8.1.0", "expect": "^24.9.0", "faked-promise": "^2.2.2", "html-webpack-plugin": "^3.2.0", "jest": "^24.9.0", "jsdom": "^15.1.1", + "nightwatch": "^1.2.4", + "nightwatch-helpers": "^1.2.0", "prettier": "^1.18.2", "rollup": "^1.21.4", "rollup-plugin-alias": "^2.0.0", @@ -34,6 +40,7 @@ "rollup-plugin-replace": "^2.2.0", "rollup-plugin-terser": "^5.1.2", "rollup-plugin-typescript2": "^0.24.3", + "selenium-server": "^3.141.59", "ts-jest": "^24.1.0", "ts-loader": "^6.1.2", "ts-node": "^8.4.1", diff --git a/yarn.lock b/yarn.lock index 2f18a8ef..6caaf0d6 100644 --- a/yarn.lock +++ b/yarn.lock @@ -628,13 +628,20 @@ acorn@^7.1.0: resolved "https://registry.yarnpkg.com/acorn/-/acorn-7.1.0.tgz#949d36f2c292535da602283586c2477c57eb2d6c" integrity sha512-kL5CuoXA/dgxlBbVrflsflzQ3PAas7RYZB52NOm/6839iVYJgKMJ3cQJD+t2i5+qFa8h3MDpEOJiS64E8JLnSQ== -agent-base@^4.3.0: +agent-base@4, agent-base@^4.2.0, 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== dependencies: es6-promisify "^5.0.0" +agent-base@~4.2.1: + version "4.2.1" + resolved "https://registry.yarnpkg.com/agent-base/-/agent-base-4.2.1.tgz#d89e5999f797875674c07d87f260fc41e83e8ca9" + integrity sha512-JVwXMr9nHYTUXsBFKUqhJwvlcYU/blreOEUkhNR2eXZIvwd+c+o5V4MgDPKWnMS/56awN3TRzIP+KoPn+roQtg== + dependencies: + es6-promisify "^5.0.0" + ajv-errors@^1.0.0: version "1.0.1" resolved "https://registry.yarnpkg.com/ajv-errors/-/ajv-errors-1.0.1.tgz#f35986aceb91afadec4102fbd85014950cefa64d" @@ -811,11 +818,26 @@ assert@^1.1.1: object-assign "^4.1.1" util "0.10.3" +assertion-error@1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/assertion-error/-/assertion-error-1.0.0.tgz#c7f85438fdd466bc7ca16ab90c81513797a5d23b" + integrity sha1-x/hUOP3UZrx8oWq5DIFRN5el0js= + +assertion-error@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/assertion-error/-/assertion-error-1.1.0.tgz#e60b6b0e8f301bd97e5375215bda406c85118c0b" + integrity sha512-jgsaNduz+ndvGyFt3uSuWqvy4lCnIJiovtouQN5JZHOKCS2QuhEdbcQHFhVksz2N2U9hXJo8odG7ETyWlEeuDw== + assign-symbols@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/assign-symbols/-/assign-symbols-1.0.0.tgz#59667f41fadd4f20ccbc2bb96b8d4f7f78ec0367" integrity sha1-WWZ/QfrdTyDMvCu5a41Pf3jsA2c= +ast-types@0.x.x: + version "0.13.2" + resolved "https://registry.yarnpkg.com/ast-types/-/ast-types-0.13.2.tgz#df39b677a911a83f3a049644fb74fdded23cea48" + integrity sha512-uWMHxJxtfj/1oZClOxDEV1sQ1HCDkA4MG8Gr69KKeBjEVH0R84WlejZ0y2DcwyBlpAEMltmVYkVgqfLFb2oyiA== + astral-regex@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/astral-regex/-/astral-regex-1.0.0.tgz#6c8c3fb827dd43ee3918f27b82782ab7658a6fd9" @@ -856,6 +878,14 @@ aws4@^1.8.0: resolved "https://registry.yarnpkg.com/aws4/-/aws4-1.8.0.tgz#f0e003d9ca9e7f59c7a508945d7b2ef9a04a542f" integrity sha512-ReZxvNHIOv88FlT7rxcXIIC0fPt4KZqZbOlivyWtXLt8ESx84zd3kMC6iK5jVeS2qt+g7ftS7ye4fi06X5rtRQ== +axios@^0.19.0: + version "0.19.0" + resolved "https://registry.yarnpkg.com/axios/-/axios-0.19.0.tgz#8e09bff3d9122e133f7b8101c8fbdd00ed3d2ab8" + integrity sha512-1uvKqKQta3KBxIz14F2v06AEHZ/dIoeKfbTRkK1E5oqjDnuEerLmYTgJB5AiQZHJcljpg1TuRzdjDR06qNk0DQ== + dependencies: + follow-redirects "1.5.10" + is-buffer "^2.0.2" + babel-jest@^24.9.0: version "24.9.0" resolved "https://registry.yarnpkg.com/babel-jest/-/babel-jest-24.9.0.tgz#3fc327cb8467b89d14d7bc70e315104a783ccd54" @@ -1035,6 +1065,11 @@ browser-resolve@^1.11.3: dependencies: resolve "1.1.7" +browser-stdout@1.3.1: + version "1.3.1" + resolved "https://registry.yarnpkg.com/browser-stdout/-/browser-stdout-1.3.1.tgz#baa559ee14ced73452229bad7326467c61fabd60" + integrity sha512-qhAVI1+Av2X7qelOfAIYwXONood6XlZE/fXaBSmW/T5SzLAmCgzi+eiWE7fUvbHaeNBQH13UftjpXxsfLkMpgw== + browserify-aes@^1.0.0, browserify-aes@^1.0.4: version "1.2.0" resolved "https://registry.yarnpkg.com/browserify-aes/-/browserify-aes-1.2.0.tgz#326734642f403dabc3003209853bb70ad428ef48" @@ -1094,6 +1129,16 @@ browserify-zlib@^0.2.0: dependencies: pako "~1.0.5" +browserstack-local@^1.4.2: + version "1.4.2" + resolved "https://registry.yarnpkg.com/browserstack-local/-/browserstack-local-1.4.2.tgz#5d2248384b8aa0fc521df32001127f010a92458d" + integrity sha512-fRaynjF0MvtyyfPRy2NFnVwxLyNtD28K/v9xRsIjUVf7xLc80NIm7Nfr3KXlFmWizhG91PL/UAOXlHkoxQjaNw== + dependencies: + https-proxy-agent "^2.2.1" + is-running "^2.0.0" + ps-tree "=1.1.1" + temp-fs "^0.9.9" + bs-logger@0.x: version "0.2.6" resolved "https://registry.yarnpkg.com/bs-logger/-/bs-logger-0.2.6.tgz#eb7d365307a72cf974cc6cda76b68354ad336bd8" @@ -1223,6 +1268,14 @@ caseless@~0.12.0: resolved "https://registry.yarnpkg.com/caseless/-/caseless-0.12.0.tgz#1b681c21ff84033c826543090689420d187151dc" integrity sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw= +chai-nightwatch@^0.3.0: + version "0.3.0" + resolved "https://registry.yarnpkg.com/chai-nightwatch/-/chai-nightwatch-0.3.0.tgz#a3506a81942fbed6aed9e0a914ae32be187f9735" + integrity sha512-NHpHLKQO0M7uNVJ10qlPIzHN9+6f873kYh6dYAn291a1CVESrrH6crbTJwZ3376trtzb6HPa80QYt3gMTL1o4g== + dependencies: + assertion-error "1.0.0" + deep-eql "0.1.3" + chalk@2.4.2, chalk@^2.0.0, chalk@^2.0.1, chalk@^2.3.0, chalk@^2.4.2: version "2.4.2" resolved "https://registry.yarnpkg.com/chalk/-/chalk-2.4.2.tgz#cd42541677a54333cf541a49108c1432b44c9424" @@ -1274,6 +1327,17 @@ chrome-trace-event@^1.0.2: dependencies: tslib "^1.9.0" +chromedriver@^77.0.0: + version "77.0.0" + resolved "https://registry.yarnpkg.com/chromedriver/-/chromedriver-77.0.0.tgz#bd916cc87a0ccb7a6e4fb4b43cb2368bc54db6a0" + integrity sha512-mZa1IVx4HD8rDaItWbnS470mmypgiWsDiu98r0NkiT4uLm3qrANl4vOU6no6vtWtLQiW5kt1POcIbjeNpsLbXA== + dependencies: + del "^4.1.1" + extract-zip "^1.6.7" + mkdirp "^0.5.1" + request "^2.88.0" + tcp-port-used "^1.0.1" + ci-info@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/ci-info/-/ci-info-2.0.0.tgz#67a9e964be31a51e15e5010d58e6f12834002f46" @@ -1370,6 +1434,11 @@ combined-stream@^1.0.6, combined-stream@~1.0.6: dependencies: delayed-stream "~1.0.0" +commander@2.15.1: + version "2.15.1" + resolved "https://registry.yarnpkg.com/commander/-/commander-2.15.1.tgz#df46e867d0fc2aec66a34662b406a9ccafff5b0f" + integrity sha512-VlfT9F3V0v+jr4yxPc5gg9s62/fIVWsd2Bk2iD435um1NlGMYdVCq+MjcXnhYq2icNOizHr1kK+5TI6H0Hy0ag== + commander@2.17.x: version "2.17.1" resolved "https://registry.yarnpkg.com/commander/-/commander-2.17.1.tgz#bd77ab7de6de94205ceacc72f1716d29f20a77bf" @@ -1420,7 +1489,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.5.0: +concat-stream@1.6.2, concat-stream@^1.5.0: version "1.6.2" resolved "https://registry.yarnpkg.com/concat-stream/-/concat-stream-1.6.2.tgz#904bdf194cd3122fc675c77fc4ac3d4ff0fd1a34" integrity sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw== @@ -1606,6 +1675,11 @@ dashdash@^1.12.0: dependencies: assert-plus "^1.0.0" +data-uri-to-buffer@1: + version "1.2.0" + resolved "https://registry.yarnpkg.com/data-uri-to-buffer/-/data-uri-to-buffer-1.2.0.tgz#77163ea9c20d8641b4707e8f18abdf9a78f34835" + integrity sha512-vKQ9DTQPN1FLYiiEEOQ6IBGFqvjCa5rSK3cWMy/Nespm5d/x3dGFT9UBZnkLxCwua/IXBi2TYnwTEpsOvhC4UQ== + data-urls@^1.0.0, data-urls@^1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/data-urls/-/data-urls-1.1.0.tgz#15ee0582baa5e22bb59c77140da8f9c76963bbfe" @@ -1625,13 +1699,27 @@ de-indent@^1.0.2: resolved "https://registry.yarnpkg.com/de-indent/-/de-indent-1.0.2.tgz#b2038e846dc33baa5796128d0804b455b8c1e21d" integrity sha1-sgOOhG3DO6pXlhKNCAS0VbjB4h0= -debug@2.6.9, debug@^2.2.0, debug@^2.3.3: +debug@2, debug@2.6.9, debug@^2.2.0, debug@^2.3.3: 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, debug@=3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/debug/-/debug-3.1.0.tgz#5bb5a0672628b64149566ba16819e61518c67261" + integrity sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g== + dependencies: + ms "2.0.0" + +debug@4.1.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/debug/-/debug-4.1.0.tgz#373687bffa678b38b1cd91f861b63850035ddc87" + integrity sha512-heNPJUJIqC+xB6ayLAMHaIrmN9HKa7aQO8MGqKpvCA+uJYVcvR6l5kgdrhRuwPFHU7P5/A1w0BjByPHwpfTDKg== + dependencies: + ms "^2.1.1" + debug@^3.0.0, debug@^3.1.0, debug@^3.2.5, debug@^3.2.6: version "3.2.6" resolved "https://registry.yarnpkg.com/debug/-/debug-3.2.6.tgz#e83d17de16d8a7efb7717edbe5fb10135eee629b" @@ -1656,6 +1744,13 @@ decode-uri-component@^0.2.0: resolved "https://registry.yarnpkg.com/decode-uri-component/-/decode-uri-component-0.2.0.tgz#eb3913333458775cb84cd1a1fae062106bb87545" integrity sha1-6zkTMzRYd1y4TNGh+uBiEGu4dUU= +deep-eql@0.1.3: + version "0.1.3" + resolved "https://registry.yarnpkg.com/deep-eql/-/deep-eql-0.1.3.tgz#ef558acab8de25206cd713906d74e56930eb69f2" + integrity sha1-71WKyrjeJSBs1xOQbXTlaTDrafI= + dependencies: + type-detect "0.1.1" + deep-equal@^1.0.1: version "1.1.0" resolved "https://registry.yarnpkg.com/deep-equal/-/deep-equal-1.1.0.tgz#3103cdf8ab6d32cf4a8df7865458f2b8d33f3745" @@ -1673,7 +1768,7 @@ deep-extend@^0.6.0: resolved "https://registry.yarnpkg.com/deep-extend/-/deep-extend-0.6.0.tgz#c4fa7c95404a17a9c3e8ca7e1537312b736330ac" integrity sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA== -deep-is@~0.1.3: +deep-is@^0.1.3, deep-is@~0.1.3: version "0.1.3" resolved "https://registry.yarnpkg.com/deep-is/-/deep-is-0.1.3.tgz#b369d6fb5dbc13eecf524f91b070feedc357cf34" integrity sha1-s2nW+128E+7PUk+RsHD+7cNXzzQ= @@ -1715,6 +1810,15 @@ define-property@^2.0.2: is-descriptor "^1.0.2" isobject "^3.0.1" +degenerator@^1.0.4: + version "1.0.4" + resolved "https://registry.yarnpkg.com/degenerator/-/degenerator-1.0.4.tgz#fcf490a37ece266464d9cc431ab98c5819ced095" + integrity sha1-/PSQo37OJmRk2cxDGrmMWBnO0JU= + dependencies: + ast-types "0.x.x" + escodegen "1.x.x" + esprima "3.x.x" + del@^4.1.1: version "4.1.1" resolved "https://registry.yarnpkg.com/del/-/del-4.1.1.tgz#9e8f117222ea44a31ff3a156c049b99052a9f0b4" @@ -1781,6 +1885,11 @@ diff-sequences@^24.9.0: resolved "https://registry.yarnpkg.com/diff-sequences/-/diff-sequences-24.9.0.tgz#5715d6244e2aa65f48bba0bc972db0b0b11e95b5" integrity sha512-Dj6Wk3tWyTE+Fo1rW8v0Xhwk80um6yFYKbuAxc9c3EZxIHFDYwbi34Uk42u1CdnIiVorvt4RmlSDjIPyzGC2ew== +diff@3.5.0: + version "3.5.0" + resolved "https://registry.yarnpkg.com/diff/-/diff-3.5.0.tgz#800c0dd1e0a8bfbc95835c202ad220fe317e5a12" + integrity sha512-A46qtFgd+g7pDZinpnwiRJtxbC1hpgf0uzP3iG89scHk0AUC7A1TGxf5OiiOUv/JMZR8GOt8hL900hV0bOy5xA== + diff@^4.0.1: version "4.0.1" resolved "https://registry.yarnpkg.com/diff/-/diff-4.0.1.tgz#0c667cb467ebbb5cea7f14f135cc2dba7780a8ff" @@ -1880,6 +1989,21 @@ domutils@^1.5.1: dom-serializer "0" domelementtype "1" +dotenv@7.0.0: + version "7.0.0" + resolved "https://registry.yarnpkg.com/dotenv/-/dotenv-7.0.0.tgz#a2be3cd52736673206e8a85fb5210eea29628e7c" + integrity sha512-M3NhsLbV1i6HuGzBUH8vXrtxOk+tWmzWKDMbAVSUp3Zsjm7ywFeuwrUXhmhQyRK1q5B5GGy7hcXPbj3bnfZg2g== + +dotenv@^8.1.0: + version "8.1.0" + resolved "https://registry.yarnpkg.com/dotenv/-/dotenv-8.1.0.tgz#d811e178652bfb8a1e593c6dd704ec7e90d85ea2" + integrity sha512-GUE3gqcDCaMltj2++g6bRQ5rBJWtkWTmqmD0fo1RnnMuUqHNCt2oTPeDnS9n6fKYvlhn7AeBkb38lymBtWBQdA== + +duplexer@~0.1.1: + version "0.1.1" + resolved "https://registry.yarnpkg.com/duplexer/-/duplexer-0.1.1.tgz#ace6ff808c1ce66b57d1ebf97977acb02334cfc1" + integrity sha1-rOb/gIwc5mtX0ev5eXessCM0z8E= + duplexify@^3.4.2, duplexify@^3.6.0: version "3.7.1" resolved "https://registry.yarnpkg.com/duplexify/-/duplexify-3.7.1.tgz#2a4df5317f6ccfd91f86d6fd25d8d8a103b88309" @@ -1903,6 +2027,11 @@ ee-first@1.1.1: resolved "https://registry.yarnpkg.com/ee-first/-/ee-first-1.1.1.tgz#590c61156b0ae2f4f0255732a158b266bc56b21d" integrity sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0= +ejs@^2.5.9: + version "2.7.1" + resolved "https://registry.yarnpkg.com/ejs/-/ejs-2.7.1.tgz#5b5ab57f718b79d4aca9254457afecd36fa80228" + integrity sha512-kS/gEPzZs3Y1rRsbGX4UOSjtP/CeJP0CxSNZHYxGfVM/VgLcv0ZqM7C45YyTj2DI2g7+P9Dd24C+IMIg6D0nYQ== + elliptic@^6.0.0: version "6.5.1" resolved "https://registry.yarnpkg.com/elliptic/-/elliptic-6.5.1.tgz#c380f5f909bf1b9b4428d028cd18d3b0efd6b52b" @@ -2013,12 +2142,12 @@ escape-html@~1.0.3: resolved "https://registry.yarnpkg.com/escape-html/-/escape-html-1.0.3.tgz#0258eae4d3d0c0974de1c169188ef0051d1d1988" integrity sha1-Aljq5NPQwJdN4cFpGI7wBR0dGYg= -escape-string-regexp@^1.0.2, escape-string-regexp@^1.0.5: +escape-string-regexp@1.0.5, escape-string-regexp@^1.0.2, escape-string-regexp@^1.0.5: version "1.0.5" resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz#1b61c0562190a8dff6ae3bb2cf0200ca130b86d4" integrity sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ= -escodegen@^1.11.1, escodegen@^1.9.1: +escodegen@1.x.x, escodegen@^1.11.1, escodegen@^1.9.1: version "1.12.0" resolved "https://registry.yarnpkg.com/escodegen/-/escodegen-1.12.0.tgz#f763daf840af172bb3a2b6dd7219c0e17f7ff541" integrity sha512-TuA+EhsanGcme5T3R0L80u4t8CpbXQjegRmf7+FPTJrtCTErXFeelblRgHQa1FofEzqYYJmJ/OqjTwREp9qgmg== @@ -2038,7 +2167,7 @@ eslint-scope@^4.0.3: esrecurse "^4.1.0" estraverse "^4.1.1" -esprima@^3.1.3: +esprima@3.x.x, esprima@^3.1.3: version "3.1.3" resolved "https://registry.yarnpkg.com/esprima/-/esprima-3.1.3.tgz#fdca51cee6133895e3c88d535ce49dbff62a4633" integrity sha1-/cpRzuYTOJXjyI1TXOSdv/YqRjM= @@ -2075,6 +2204,19 @@ etag@~1.8.1: resolved "https://registry.yarnpkg.com/etag/-/etag-1.8.1.tgz#41ae2eeb65efa62268aebfea83ac7d79299b0887" integrity sha1-Qa4u62XvpiJorr/qg6x9eSmbCIc= +event-stream@=3.3.4: + version "3.3.4" + resolved "https://registry.yarnpkg.com/event-stream/-/event-stream-3.3.4.tgz#4ab4c9a0f5a54db9338b4c34d86bfce8f4b35571" + integrity sha1-SrTJoPWlTbkzi0w02Gv86PSzVXE= + dependencies: + duplexer "~0.1.1" + from "~0" + map-stream "~0.1.0" + pause-stream "0.0.11" + split "0.3" + stream-combiner "~0.0.4" + through "~2.3.1" + eventemitter3@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/eventemitter3/-/eventemitter3-4.0.0.tgz#d65176163887ee59f386d64c82610b696a4a74eb" @@ -2225,6 +2367,16 @@ extglob@^2.0.4: snapdragon "^0.8.1" to-regex "^3.0.1" +extract-zip@^1.6.7: + version "1.6.7" + resolved "https://registry.yarnpkg.com/extract-zip/-/extract-zip-1.6.7.tgz#a840b4b8af6403264c8db57f4f1a74333ef81fe9" + integrity sha1-qEC0uK9kAyZMjbV/Txp0Mz74H+k= + dependencies: + concat-stream "1.6.2" + debug "2.6.9" + mkdirp "0.5.1" + yauzl "2.4.1" + extsprintf@1.3.0: version "1.3.0" resolved "https://registry.yarnpkg.com/extsprintf/-/extsprintf-1.3.0.tgz#96918440e3041a7a414f8c52e3c574eb3c3e1e05" @@ -2276,11 +2428,23 @@ fb-watchman@^2.0.0: dependencies: bser "^2.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= + dependencies: + pend "~1.2.0" + figgy-pudding@^3.5.1: version "3.5.1" resolved "https://registry.yarnpkg.com/figgy-pudding/-/figgy-pudding-3.5.1.tgz#862470112901c727a0e495a80744bd5baa1d6790" integrity sha512-vNKxJHTEKNThjfrdJwHc7brvM6eVevuO5nTj6ez8ZQ1qbXTvGthucRF7S4vf2cr71QVnT70V34v0S1DyQsti0w== +file-uri-to-path@1: + version "1.0.0" + resolved "https://registry.yarnpkg.com/file-uri-to-path/-/file-uri-to-path-1.0.0.tgz#553a7b8446ff6f684359c445f1e37a05dacc33dd" + integrity sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw== + fill-range@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/fill-range/-/fill-range-4.0.0.tgz#d544811d428f98eb06a63dc402d2403c328c38f7" @@ -2362,6 +2526,13 @@ flush-write-stream@^1.0.0: inherits "^2.0.3" readable-stream "^2.3.6" +follow-redirects@1.5.10: + version "1.5.10" + resolved "https://registry.yarnpkg.com/follow-redirects/-/follow-redirects-1.5.10.tgz#7b7a9f9aea2fdff36786a94ff643ed07f4ff5e2a" + integrity sha512-0V5l4Cizzvqt5D44aTXbFZz+FtyXV1vrDN6qrelxtfYQKW0KO0W2T/hkE8xvGa/540LkZlkaUjO4ailYTFtHVQ== + dependencies: + debug "=3.1.0" + follow-redirects@^1.0.0: version "1.9.0" resolved "https://registry.yarnpkg.com/follow-redirects/-/follow-redirects-1.9.0.tgz#8d5bcdc65b7108fe1508649c79c12d732dcedb4f" @@ -2413,6 +2584,11 @@ from2@^2.1.0: inherits "^2.0.1" readable-stream "^2.0.0" +from@~0: + version "0.1.7" + resolved "https://registry.yarnpkg.com/from/-/from-0.1.7.tgz#83c60afc58b9c56997007ed1a768b3ab303a44fe" + integrity sha1-g8YK/Fi5xWmXAH7Rp2izqzA6RP4= + fs-extra@8.1.0: version "8.1.0" resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-8.1.0.tgz#49d43c45a88cd9677668cb7be1b46efdb8d2e1c0" @@ -2452,6 +2628,14 @@ fsevents@^1.2.7: nan "^2.12.1" node-pre-gyp "^0.12.0" +ftp@~0.3.10: + version "0.3.10" + resolved "https://registry.yarnpkg.com/ftp/-/ftp-0.3.10.tgz#9197d861ad8142f3e63d5a83bfe4c59f7330885d" + integrity sha1-kZfYYa2BQvPmPVqDv+TFn3MwiF0= + dependencies: + readable-stream "1.1.x" + xregexp "2.0.0" + function-bind@^1.1.1: version "1.1.1" resolved "https://registry.yarnpkg.com/function-bind/-/function-bind-1.1.1.tgz#a56899d3ea3c9bab874bb9773b7c5ede92f4895d" @@ -2488,6 +2672,18 @@ get-stream@^4.0.0: dependencies: pump "^3.0.0" +get-uri@^2.0.0: + version "2.0.4" + resolved "https://registry.yarnpkg.com/get-uri/-/get-uri-2.0.4.tgz#d4937ab819e218d4cb5ae18e4f5962bef169cc6a" + integrity sha512-v7LT/s8kVjs+Tx0ykk1I+H/rbpzkHvuIq87LmeXptcf5sNWm9uQiwjNAt94SJPA1zOlCntmnOlJvVWKmzsxG8Q== + dependencies: + data-uri-to-buffer "1" + debug "2" + extend "~3.0.2" + file-uri-to-path "1" + ftp "~0.3.10" + readable-stream "2" + 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" @@ -2508,7 +2704,19 @@ glob-parent@^3.1.0: is-glob "^3.1.0" path-dirname "^1.0.0" -glob@^7.0.3, glob@^7.1.1, glob@^7.1.2, glob@^7.1.3, glob@^7.1.4: +glob@7.1.2: + version "7.1.2" + resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.2.tgz#c19c9df9a028702d678612384a6552404c636d15" + integrity sha512-MJTUg1kjuLeQCJ+ccE4Vpa6kKVXkPYJ2mOCQyUuKLcLQsdrMCpBPUi8qVE6+YuaJkozeA9NusTAw3hLr8Xe5EQ== + dependencies: + fs.realpath "^1.0.0" + inflight "^1.0.4" + inherits "2" + minimatch "^3.0.4" + once "^1.3.0" + path-is-absolute "^1.0.0" + +glob@^7.0.3, glob@^7.0.5, glob@^7.1.1, glob@^7.1.2, glob@^7.1.3, glob@^7.1.4: version "7.1.4" resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.4.tgz#aa608a2f6c577ad357e1ae5a5c26d9a8d1969255" integrity sha512-hkLPepehmnKk41pUGm3sYxoFs/umurYfYJCerbXEyFIWcAzvpipAgVkBqqT9RBKMGjnq6kMuyYwha6csxbiM1A== @@ -2577,6 +2785,11 @@ graceful-fs@^4.1.11, graceful-fs@^4.1.15, graceful-fs@^4.1.2, graceful-fs@^4.1.6 resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.2.tgz#6f0952605d0140c1cfdb138ed005775b92d67b02" integrity sha512-IItsdsea19BoLC7ELy13q1iJFNmd7ofZH5+X/pJr90/nRoPEX0DJo1dHDbgtYWOhJhcCgMDTOw84RZ72q6lB+Q== +growl@1.10.5: + version "1.10.5" + resolved "https://registry.yarnpkg.com/growl/-/growl-1.10.5.tgz#f2735dc2283674fa67478b10181059355c369e5e" + integrity sha512-qBr4OuELkhPenW6goKVXiv47US3clb3/IbuWF9KNKEijAy9oeHxU9IgzjvJhHkUzhaj7rOUD7+YGWqUjLp5oSA== + growly@^1.3.0: version "1.3.0" resolved "https://registry.yarnpkg.com/growly/-/growly-1.3.0.tgz#f10748cbe76af964b7c96c93c6bcc28af120c081" @@ -2692,6 +2905,11 @@ hash.js@^1.0.0, hash.js@^1.0.3: inherits "^2.0.3" minimalistic-assert "^1.0.1" +he@1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/he/-/he-1.1.1.tgz#93410fd21b009735151f8868c2f271f3427e23fd" + integrity sha1-k0EP0hsAlzUVH4howvJx80J+I/0= + he@1.2.x, he@^1.1.0: version "1.2.0" resolved "https://registry.yarnpkg.com/he/-/he-1.2.0.tgz#84ae65fa7eafb165fddb61566ae14baf05664f0f" @@ -2794,17 +3012,7 @@ http-errors@1.7.2: statuses ">= 1.5.0 < 2" toidentifier "1.0.0" -http-errors@~1.6.2: - version "1.6.3" - resolved "https://registry.yarnpkg.com/http-errors/-/http-errors-1.6.3.tgz#8b55680bb4be283a0b5bf4ea2e38580be1d9320d" - integrity sha1-i1VoC7S+KDoLW/TqLjhYC+HZMg0= - dependencies: - depd "~1.1.2" - inherits "2.0.3" - setprototypeof "1.1.0" - statuses ">= 1.4.0 < 2" - -http-errors@~1.7.2: +http-errors@1.7.3, http-errors@~1.7.2: version "1.7.3" resolved "https://registry.yarnpkg.com/http-errors/-/http-errors-1.7.3.tgz#6c619e4f9c60308c38519498c14fbb10aacebb06" integrity sha512-ZTTX0MWrsQ2ZAhA1cejAwDLycFsd7I7nVtnkT3Ol0aqodaKW+0CTZDQ1uBv5whptCnc8e8HeRRJxRs0kmm/Qfw== @@ -2815,11 +3023,29 @@ http-errors@~1.7.2: statuses ">= 1.5.0 < 2" toidentifier "1.0.0" +http-errors@~1.6.2: + version "1.6.3" + resolved "https://registry.yarnpkg.com/http-errors/-/http-errors-1.6.3.tgz#8b55680bb4be283a0b5bf4ea2e38580be1d9320d" + integrity sha1-i1VoC7S+KDoLW/TqLjhYC+HZMg0= + dependencies: + depd "~1.1.2" + inherits "2.0.3" + setprototypeof "1.1.0" + statuses ">= 1.4.0 < 2" + "http-parser-js@>=0.4.0 <0.4.11": version "0.4.10" resolved "https://registry.yarnpkg.com/http-parser-js/-/http-parser-js-0.4.10.tgz#92c9c1374c35085f75db359ec56cc257cbb93fa4" integrity sha1-ksnBN0w1CF912zWexWzCV8u5P6Q= +http-proxy-agent@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/http-proxy-agent/-/http-proxy-agent-2.1.0.tgz#e4821beef5b2142a2026bd73926fe537631c5405" + integrity sha512-qwHbBLV7WviBl0rQsOzH6o5lwyOIvwp/BdFnvVxXORldu5TmjFfjzBcWUWS5kWAZhmv+JtiDhSuQCp4sBfbIgg== + dependencies: + agent-base "4" + debug "3.1.0" + http-proxy-middleware@0.19.1: version "0.19.1" resolved "https://registry.yarnpkg.com/http-proxy-middleware/-/http-proxy-middleware-0.19.1.tgz#183c7dc4aa1479150306498c210cdaf96080a43a" @@ -3017,6 +3243,11 @@ is-buffer@^1.1.5: resolved "https://registry.yarnpkg.com/is-buffer/-/is-buffer-1.1.6.tgz#efaa2ea9daa0d7ab2ea13a97b2b8ad51fefbe8be" integrity sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w== +is-buffer@^2.0.2: + version "2.0.4" + resolved "https://registry.yarnpkg.com/is-buffer/-/is-buffer-2.0.4.tgz#3e572f23c8411a5cfd9557c849e3665e0b290623" + integrity sha512-Kq1rokWXOPXWuaMAqZiJW4XxsmD9zGx9q4aePabbn3qCRGedtH7Cm+zV8WETitMfu1wdh+Rvd6w5egwSngUX2A== + is-callable@^1.1.4: version "1.1.4" resolved "https://registry.yarnpkg.com/is-callable/-/is-callable-1.1.4.tgz#1e1adf219e1eeb684d691f9d6a05ff0d30a24d75" @@ -3171,6 +3402,11 @@ is-regex@^1.0.4: dependencies: has "^1.0.1" +is-running@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/is-running/-/is-running-2.1.0.tgz#30a73ff5cc3854e4fc25490809e9f5abf8de09e0" + integrity sha1-MKc/9cw4VOT8JUkICen1q/jeCeA= + is-stream@^1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-1.1.0.tgz#12d4a3dd4e68e0b79ceb8dbc84173ae80d91ca44" @@ -3188,6 +3424,11 @@ is-typedarray@~1.0.0: resolved "https://registry.yarnpkg.com/is-typedarray/-/is-typedarray-1.0.0.tgz#e479c80858df0c1b11ddda6940f96011fcda4a9a" integrity sha1-5HnICFjfDBsR3dppQPlgEfzaSpo= +is-url@^1.2.2: + version "1.2.4" + resolved "https://registry.yarnpkg.com/is-url/-/is-url-1.2.4.tgz#04a4df46d28c4cff3d73d01ff06abeb318a1aa52" + integrity sha512-ITvGim8FhRiYe4IQ5uHSkj7pVaPDrCTkNd3yq3cV7iZAcJdHTUMPMEHcqSOy9xZ9qFenQCvi+2wjH9a1nXqHww== + is-windows@^1.0.1, is-windows@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/is-windows/-/is-windows-1.0.2.tgz#d1850eb9791ecd18e6182ce12a30f396634bb19d" @@ -3198,6 +3439,20 @@ is-wsl@^1.1.0: resolved "https://registry.yarnpkg.com/is-wsl/-/is-wsl-1.1.0.tgz#1f16e4aa22b04d1336b66188a66af3c600c3a66d" integrity sha1-HxbkqiKwTRM2tmGIpmrzxgDDpm0= +is2@2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/is2/-/is2-2.0.1.tgz#8ac355644840921ce435d94f05d3a94634d3481a" + integrity sha512-+WaJvnaA7aJySz2q/8sLjMb2Mw14KTplHmSwcSpZ/fWJPkUmqw3YTzSWbPJ7OAwRvdYTWF2Wg+yYJ1AdP5Z8CA== + dependencies: + deep-is "^0.1.3" + ip-regex "^2.1.0" + is-url "^1.2.2" + +isarray@0.0.1: + version "0.0.1" + resolved "https://registry.yarnpkg.com/isarray/-/isarray-0.0.1.tgz#8a18acfca9a8f4177e09abfc6038939b05d1eedf" + integrity sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8= + isarray@1.0.0, isarray@^1.0.0, isarray@~1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/isarray/-/isarray-1.0.0.tgz#bb935d48582cba168c06834957a54a3e07124f11" @@ -3880,16 +4135,109 @@ locate-path@^5.0.0: dependencies: p-locate "^4.1.0" +lodash._arraycopy@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/lodash._arraycopy/-/lodash._arraycopy-3.0.0.tgz#76e7b7c1f1fb92547374878a562ed06a3e50f6e1" + integrity sha1-due3wfH7klRzdIeKVi7Qaj5Q9uE= + +lodash._arrayeach@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/lodash._arrayeach/-/lodash._arrayeach-3.0.0.tgz#bab156b2a90d3f1bbd5c653403349e5e5933ef9e" + integrity sha1-urFWsqkNPxu9XGU0AzSeXlkz754= + +lodash._baseassign@^3.0.0: + version "3.2.0" + resolved "https://registry.yarnpkg.com/lodash._baseassign/-/lodash._baseassign-3.2.0.tgz#8c38a099500f215ad09e59f1722fd0c52bfe0a4e" + integrity sha1-jDigmVAPIVrQnlnxci/QxSv+Ck4= + dependencies: + lodash._basecopy "^3.0.0" + lodash.keys "^3.0.0" + +lodash._baseclone@^3.0.0: + version "3.3.0" + resolved "https://registry.yarnpkg.com/lodash._baseclone/-/lodash._baseclone-3.3.0.tgz#303519bf6393fe7e42f34d8b630ef7794e3542b7" + integrity sha1-MDUZv2OT/n5C802LYw73eU41Qrc= + dependencies: + lodash._arraycopy "^3.0.0" + lodash._arrayeach "^3.0.0" + lodash._baseassign "^3.0.0" + lodash._basefor "^3.0.0" + lodash.isarray "^3.0.0" + lodash.keys "^3.0.0" + +lodash._basecopy@^3.0.0: + version "3.0.1" + resolved "https://registry.yarnpkg.com/lodash._basecopy/-/lodash._basecopy-3.0.1.tgz#8da0e6a876cf344c0ad8a54882111dd3c5c7ca36" + integrity sha1-jaDmqHbPNEwK2KVIghEd08XHyjY= + +lodash._basefor@^3.0.0: + version "3.0.3" + resolved "https://registry.yarnpkg.com/lodash._basefor/-/lodash._basefor-3.0.3.tgz#7550b4e9218ef09fad24343b612021c79b4c20c2" + integrity sha1-dVC06SGO8J+tJDQ7YSAhx5tMIMI= + +lodash._bindcallback@^3.0.0: + version "3.0.1" + resolved "https://registry.yarnpkg.com/lodash._bindcallback/-/lodash._bindcallback-3.0.1.tgz#e531c27644cf8b57a99e17ed95b35c748789392e" + integrity sha1-5THCdkTPi1epnhftlbNcdIeJOS4= + +lodash._getnative@^3.0.0: + version "3.9.1" + resolved "https://registry.yarnpkg.com/lodash._getnative/-/lodash._getnative-3.9.1.tgz#570bc7dede46d61cdcde687d65d3eecbaa3aaff5" + integrity sha1-VwvH3t5G1hzc3mh9ZdPuy6o6r/U= + +lodash._isiterateecall@^3.0.0: + version "3.0.9" + resolved "https://registry.yarnpkg.com/lodash._isiterateecall/-/lodash._isiterateecall-3.0.9.tgz#5203ad7ba425fae842460e696db9cf3e6aac057c" + integrity sha1-UgOte6Ql+uhCRg5pbbnPPmqsBXw= + lodash._reinterpolate@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/lodash._reinterpolate/-/lodash._reinterpolate-3.0.0.tgz#0ccf2d89166af03b3663c796538b75ac6e114d9d" integrity sha1-DM8tiRZq8Ds2Y8eWU4t1rG4RTZ0= +lodash.clone@3.0.3: + version "3.0.3" + resolved "https://registry.yarnpkg.com/lodash.clone/-/lodash.clone-3.0.3.tgz#84688c73d32b5a90ca25616963f189252a997043" + integrity sha1-hGiMc9MrWpDKJWFpY/GJJSqZcEM= + dependencies: + lodash._baseclone "^3.0.0" + lodash._bindcallback "^3.0.0" + lodash._isiterateecall "^3.0.0" + +lodash.defaultsdeep@^4.6.1: + version "4.6.1" + resolved "https://registry.yarnpkg.com/lodash.defaultsdeep/-/lodash.defaultsdeep-4.6.1.tgz#512e9bd721d272d94e3d3a63653fa17516741ca6" + integrity sha512-3j8wdDzYuWO3lM3Reg03MuQR957t287Rpcxp1njpEa8oDrikb+FwGdW3n+FELh/A6qib6yPit0j/pv9G/yeAqA== + +lodash.isarguments@^3.0.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/lodash.isarguments/-/lodash.isarguments-3.1.0.tgz#2f573d85c6a24289ff00663b491c1d338ff3458a" + integrity sha1-L1c9hcaiQon/AGY7SRwdM4/zRYo= + +lodash.isarray@^3.0.0: + version "3.0.4" + resolved "https://registry.yarnpkg.com/lodash.isarray/-/lodash.isarray-3.0.4.tgz#79e4eb88c36a8122af86f844aa9bcd851b5fbb55" + integrity sha1-eeTriMNqgSKvhvhEqpvNhRtfu1U= + +lodash.keys@^3.0.0: + version "3.1.2" + resolved "https://registry.yarnpkg.com/lodash.keys/-/lodash.keys-3.1.2.tgz#4dbc0472b156be50a0b286855d1bd0b0c656098a" + integrity sha1-TbwEcrFWvlCgsoaFXRvQsMZWCYo= + dependencies: + lodash._getnative "^3.0.0" + lodash.isarguments "^3.0.0" + lodash.isarray "^3.0.0" + lodash.memoize@4.x: version "4.1.2" resolved "https://registry.yarnpkg.com/lodash.memoize/-/lodash.memoize-4.1.2.tgz#bcc6c49a42a2840ed997f323eada5ecd182e0bfe" integrity sha1-vMbEmkKihA7Zl/Mj6tpezRguC/4= +lodash.merge@^4.6.2: + version "4.6.2" + resolved "https://registry.yarnpkg.com/lodash.merge/-/lodash.merge-4.6.2.tgz#558aa53b43b661e1925a0afdfa36a9a1085fe57a" + integrity sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ== + lodash.sortby@^4.7.0: version "4.7.0" resolved "https://registry.yarnpkg.com/lodash.sortby/-/lodash.sortby-4.7.0.tgz#edd14c824e2cc9c1e0b0a1b42bb5210516a42438" @@ -3937,6 +4285,14 @@ lower-case@^1.1.1: resolved "https://registry.yarnpkg.com/lower-case/-/lower-case-1.1.4.tgz#9a2cabd1b9e8e0ae993a4bf7d5875c39c42e8eac" integrity sha1-miyr0bno4K6ZOkv31YdcOcQujqw= +lru-cache@^4.1.2: + version "4.1.5" + resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-4.1.5.tgz#8bbe50ea85bed59bc9e33dcab8235ee9bcf443cd" + integrity sha512-sWZlbEP2OsHNkXrMl5GYk/jKk70MBng6UU4YI/qGDYbgf6YbP4EvmqISbXCoJiRKs+1bSpFHVgQxvJ17F2li5g== + dependencies: + pseudomap "^1.0.2" + yallist "^2.1.2" + lru-cache@^5.1.1: version "5.1.1" resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-5.1.1.tgz#1da27e6710271947695daf6848e847f01d84b920" @@ -3995,6 +4351,11 @@ map-cache@^0.2.2: resolved "https://registry.yarnpkg.com/map-cache/-/map-cache-0.2.2.tgz#c32abd0bd6525d9b051645bb4f26ac5dc98a0dbf" integrity sha1-wyq9C9ZSXZsFFkW7TyasXcmKDb8= +map-stream@~0.1.0: + version "0.1.0" + resolved "https://registry.yarnpkg.com/map-stream/-/map-stream-0.1.0.tgz#e56aa94c4c8055a16404a0674b78f215f7c8e194" + integrity sha1-5WqpTEyAVaFkBKBnS3jyFffI4ZQ= + map-visit@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/map-visit/-/map-visit-1.0.0.tgz#ecdca8f13144e660f1b5bd41f12f3479d98dfb8f" @@ -4125,7 +4486,7 @@ minimalistic-crypto-utils@^1.0.0, minimalistic-crypto-utils@^1.0.1: resolved "https://registry.yarnpkg.com/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz#f6c00c1c0b082246e5c4d99dfb8c7c083b2b582a" integrity sha1-9sAMHAsIIkblxNmd+4x8CDsrWCo= -minimatch@^3.0.4: +minimatch@3.0.4, minimatch@^3.0.4: version "3.0.4" resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.0.4.tgz#5166e286457f03306064be5497e8dbb0c3d32083" integrity sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA== @@ -4186,13 +4547,35 @@ mixin-deep@^1.2.0: for-in "^1.0.2" is-extendable "^1.0.1" -mkdirp@0.5.x, mkdirp@0.x, mkdirp@^0.5.0, mkdirp@^0.5.1: +mkdirp@0.5.1, mkdirp@0.5.x, mkdirp@0.x, mkdirp@^0.5.0, mkdirp@^0.5.1: version "0.5.1" resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.5.1.tgz#30057438eac6cf7f8c4767f38648d6697d75c903" integrity sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM= dependencies: minimist "0.0.8" +mkpath@1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/mkpath/-/mkpath-1.0.0.tgz#ebb3a977e7af1c683ae6fda12b545a6ba6c5853d" + integrity sha1-67Opd+evHGg65v2hK1Raa6bFhT0= + +mocha@^5.2.0: + version "5.2.0" + resolved "https://registry.yarnpkg.com/mocha/-/mocha-5.2.0.tgz#6d8ae508f59167f940f2b5b3c4a612ae50c90ae6" + integrity sha512-2IUgKDhc3J7Uug+FxMXuqIyYzH7gJjXECKe/w43IGgQHTSj3InJi+yAA7T24L9bQMRKiUEHxEX37G5JpVUGLcQ== + dependencies: + browser-stdout "1.3.1" + commander "2.15.1" + debug "3.1.0" + diff "3.5.0" + escape-string-regexp "1.0.5" + glob "7.1.2" + growl "1.10.5" + he "1.1.1" + minimatch "3.0.4" + mkdirp "0.5.1" + supports-color "5.4.0" + move-concurrently@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/move-concurrently/-/move-concurrently-1.0.1.tgz#be2c005fda32e0b29af1f05d7c4b33214c701f92" @@ -4279,11 +4662,40 @@ neo-async@^2.5.0, neo-async@^2.6.0, neo-async@^2.6.1: resolved "https://registry.yarnpkg.com/neo-async/-/neo-async-2.6.1.tgz#ac27ada66167fa8849a6addd837f6b189ad2081c" integrity sha512-iyam8fBuCUpWeKPGpaNMetEocMt364qkCsfL9JuhjXX6dRnguRVOfk2GZaDpPjcOKiiXCPINZC1GczQ7iTq3Zw== +netmask@^1.0.6: + version "1.0.6" + resolved "https://registry.yarnpkg.com/netmask/-/netmask-1.0.6.tgz#20297e89d86f6f6400f250d9f4f6b4c1945fcd35" + integrity sha1-ICl+idhvb2QA8lDZ9Pa0wZRfzTU= + nice-try@^1.0.4: version "1.0.5" resolved "https://registry.yarnpkg.com/nice-try/-/nice-try-1.0.5.tgz#a3378a7696ce7d223e88fc9b764bd7ef1089e366" integrity sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ== +nightwatch-helpers@^1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/nightwatch-helpers/-/nightwatch-helpers-1.2.0.tgz#cdefeb7635074a141825a7b6d1b955b6d7810a0f" + integrity sha1-ze/rdjUHShQYJae20blVtteBCg8= + +nightwatch@^1.2.4: + version "1.2.4" + resolved "https://registry.yarnpkg.com/nightwatch/-/nightwatch-1.2.4.tgz#f13cc8e2f6870429cf1c0747e302b0cb9d91bb09" + integrity sha512-RoO2/leXXTWG/iAcdW1+sN3RV+bL2P4F9B/ty/wJQmsJw2PLduqvbi7cmkwdNGhh/yaIwIcBxyGHqdB0G754hg== + dependencies: + assertion-error "^1.1.0" + chai-nightwatch "^0.3.0" + dotenv "7.0.0" + ejs "^2.5.9" + lodash.clone "3.0.3" + lodash.defaultsdeep "^4.6.1" + lodash.merge "^4.6.2" + minimatch "3.0.4" + mkpath "1.0.0" + optimist "^0.6.1" + proxy-agent "^3.0.0" + optionalDependencies: + mocha "^5.2.0" + no-case@^2.2.0: version "2.3.2" resolved "https://registry.yarnpkg.com/no-case/-/no-case-2.3.2.tgz#60b813396be39b3f1288a4c1ed5d1e7d28b464ac" @@ -4655,6 +5067,31 @@ p-try@^2.0.0: resolved "https://registry.yarnpkg.com/p-try/-/p-try-2.2.0.tgz#cb2868540e313d61de58fafbe35ce9004d5540e6" integrity sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ== +pac-proxy-agent@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/pac-proxy-agent/-/pac-proxy-agent-3.0.0.tgz#11d578b72a164ad74bf9d5bac9ff462a38282432" + integrity sha512-AOUX9jES/EkQX2zRz0AW7lSx9jD//hQS8wFXBvcnd/J2Py9KaMJMqV/LPqJssj1tgGufotb2mmopGPR15ODv1Q== + dependencies: + agent-base "^4.2.0" + debug "^3.1.0" + get-uri "^2.0.0" + http-proxy-agent "^2.1.0" + https-proxy-agent "^2.2.1" + pac-resolver "^3.0.0" + raw-body "^2.2.0" + socks-proxy-agent "^4.0.1" + +pac-resolver@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/pac-resolver/-/pac-resolver-3.0.0.tgz#6aea30787db0a891704deb7800a722a7615a6f26" + integrity sha512-tcc38bsjuE3XZ5+4vP96OfhOugrX+JcnpUbhfuc4LuXBLQhoTthOstZeoQJBDnQUDYzYmdImKsbz0xSl1/9qeA== + dependencies: + co "^4.6.0" + degenerator "^1.0.4" + ip "^1.1.5" + netmask "^1.0.6" + thunkify "^2.1.2" + pako@~1.0.5: version "1.0.10" resolved "https://registry.yarnpkg.com/pako/-/pako-1.0.10.tgz#4328badb5086a426aa90f541977d4955da5c9732" @@ -4778,6 +5215,13 @@ path-type@^3.0.0: dependencies: pify "^3.0.0" +pause-stream@0.0.11: + version "0.0.11" + resolved "https://registry.yarnpkg.com/pause-stream/-/pause-stream-0.0.11.tgz#fe5a34b0cbce12b5aa6a2b403ee2e73b602f1445" + integrity sha1-/lo0sMvOErWqaitAPuLnO2AvFEU= + dependencies: + through "~2.3" + pbkdf2@^3.0.3: version "3.0.17" resolved "https://registry.yarnpkg.com/pbkdf2/-/pbkdf2-3.0.17.tgz#976c206530617b14ebb32114239f7b09336e93a6" @@ -4789,6 +5233,11 @@ pbkdf2@^3.0.3: safe-buffer "^5.0.1" sha.js "^2.4.8" +pend@~1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/pend/-/pend-1.2.0.tgz#7a57eb550a6783f9115331fcf4663d5c8e007a50" + integrity sha1-elfrVQpng/kRUzH89GY9XI4AelA= + performance-now@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/performance-now/-/performance-now-2.1.0.tgz#6309f4e0e5fa913ec1c69307ae364b4b377c9e7b" @@ -4925,11 +5374,42 @@ proxy-addr@~2.0.5: forwarded "~0.1.2" ipaddr.js "1.9.0" +proxy-agent@^3.0.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/proxy-agent/-/proxy-agent-3.1.0.tgz#3cf86ee911c94874de4359f37efd9de25157c113" + integrity sha512-IkbZL4ClW3wwBL/ABFD2zJ8iP84CY0uKMvBPk/OceQe/cEjrxzN1pMHsLwhbzUoRhG9QbSxYC+Z7LBkTiBNvrA== + dependencies: + agent-base "^4.2.0" + debug "^3.1.0" + http-proxy-agent "^2.1.0" + https-proxy-agent "^2.2.1" + lru-cache "^4.1.2" + pac-proxy-agent "^3.0.0" + proxy-from-env "^1.0.0" + socks-proxy-agent "^4.0.1" + +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= + prr@~1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/prr/-/prr-1.0.1.tgz#d3fc114ba06995a45ec6893f484ceb1d78f5f476" integrity sha1-0/wRS6BplaRexok/SEzrHXj19HY= +ps-tree@=1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/ps-tree/-/ps-tree-1.1.1.tgz#5f1ba35455b8c25eeb718d04c37de1555d96d3db" + integrity sha512-kef7fYYSKVqQffmzTMsVcUD1ObNJMp8sNSmHGlGKsZQyL/ht9MZKk86u0Rd1NhpTOAuhqwKCLLpktwkqz+MF8A== + dependencies: + event-stream "=3.3.4" + +pseudomap@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/pseudomap/-/pseudomap-1.0.2.tgz#f052a28da70e618917ef0a8ac34c1ae5a68286b3" + integrity sha1-8FKijacOYYkX7wqKw0wa5aaChrM= + psl@^1.1.24, psl@^1.1.28: version "1.4.0" resolved "https://registry.yarnpkg.com/psl/-/psl-1.4.0.tgz#5dd26156cdb69fa1fdb8ab1991667d3f80ced7c2" @@ -5042,6 +5522,16 @@ raw-body@2.4.0: iconv-lite "0.4.24" unpipe "1.0.0" +raw-body@^2.2.0: + version "2.4.1" + resolved "https://registry.yarnpkg.com/raw-body/-/raw-body-2.4.1.tgz#30ac82f98bb5ae8c152e67149dac8d55153b168c" + integrity sha512-9WmIKF6mkvA0SLmA2Knm9+qj89e+j1zqgyn8aXGd7+nAduPoqgI9lO57SAZNn/Byzo5P7JhXTyg9PzaJbH73bA== + dependencies: + bytes "3.1.0" + http-errors "1.7.3" + iconv-lite "0.4.24" + unpipe "1.0.0" + rc@^1.2.7: version "1.2.8" resolved "https://registry.yarnpkg.com/rc/-/rc-1.2.8.tgz#cd924bf5200a075b83c188cd6b9e211b7fc0d3ed" @@ -5074,7 +5564,7 @@ read-pkg@^3.0.0: normalize-package-data "^2.3.2" path-type "^3.0.0" -"readable-stream@1 || 2", readable-stream@^2.0.0, readable-stream@^2.0.1, readable-stream@^2.0.2, readable-stream@^2.0.6, readable-stream@^2.1.5, readable-stream@^2.2.2, readable-stream@^2.3.3, readable-stream@^2.3.6, readable-stream@~2.3.6: +"readable-stream@1 || 2", readable-stream@2, readable-stream@^2.0.0, readable-stream@^2.0.1, readable-stream@^2.0.2, readable-stream@^2.0.6, readable-stream@^2.1.5, readable-stream@^2.2.2, readable-stream@^2.3.3, readable-stream@^2.3.6, readable-stream@~2.3.6: version "2.3.6" resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.3.6.tgz#b11c27d88b8ff1fbe070643cf94b0c79ae1b0aaf" integrity sha512-tQtKA9WIAhBF3+VLAseyMqZeBjW0AHJoxOtYqSUZNJxauErmLbVm2FW1y+J/YA9dUrAC39ITejlZWhVIwawkKw== @@ -5087,6 +5577,16 @@ read-pkg@^3.0.0: string_decoder "~1.1.1" util-deprecate "~1.0.1" +readable-stream@1.1.x: + version "1.1.14" + resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-1.1.14.tgz#7cf4c54ef648e3813084c636dd2079e166c081d9" + integrity sha1-fPTFTvZI44EwhMY23SB54WbAgdk= + dependencies: + core-util-is "~1.0.0" + inherits "~2.0.1" + isarray "0.0.1" + string_decoder "~0.10.x" + readable-stream@^3.0.6, readable-stream@^3.1.1: version "3.4.0" resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-3.4.0.tgz#a51c26754658e0a3c21dbf59163bd45ba6f447fc" @@ -5274,6 +5774,13 @@ rimraf@^2.5.4, rimraf@^2.6.1, rimraf@^2.6.3: dependencies: glob "^7.1.3" +rimraf@~2.5.2: + version "2.5.4" + resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-2.5.4.tgz#96800093cbf1a0c86bd95b4625467535c29dfa04" + integrity sha1-loAAk8vxoMhr2VtGJUZ1NcKd+gQ= + dependencies: + glob "^7.0.5" + ripemd160@^2.0.0, ripemd160@^2.0.1: version "2.0.2" resolved "https://registry.yarnpkg.com/ripemd160/-/ripemd160-2.0.2.tgz#a1c1a6f624751577ba5d07914cbc92850585890c" @@ -5439,6 +5946,11 @@ select-hose@^2.0.0: resolved "https://registry.yarnpkg.com/select-hose/-/select-hose-2.0.0.tgz#625d8658f865af43ec962bfc376a37359a4994ca" integrity sha1-Yl2GWPhlr0Psliv8N2o3NZpJlMo= +selenium-server@^3.141.59: + version "3.141.59" + resolved "https://registry.yarnpkg.com/selenium-server/-/selenium-server-3.141.59.tgz#cbefdf50aae636ee4c67b819532a8233ce3fd6b0" + integrity sha512-pL7T1YtAqOEXiBbTx0KdZMkE2U7PYucemd7i0nDLcxcR1APXYZlJfNr5hrvL3mZgwXb7AJEZPINzC6mDU3eP5g== + selfsigned@^1.10.7: version "1.10.7" resolved "https://registry.yarnpkg.com/selfsigned/-/selfsigned-1.10.7.tgz#da5819fd049d5574f28e88a9bcc6dbc6e6f3906b" @@ -5578,6 +6090,11 @@ slash@^3.0.0: resolved "https://registry.yarnpkg.com/slash/-/slash-3.0.0.tgz#6539be870c165adbd5240220dbe361f1bc4d4634" integrity sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q== +smart-buffer@4.0.2: + version "4.0.2" + resolved "https://registry.yarnpkg.com/smart-buffer/-/smart-buffer-4.0.2.tgz#5207858c3815cc69110703c6b94e46c15634395d" + integrity sha512-JDhEpTKzXusOqXZ0BUIdH+CjFdO/CR3tLlf5CN34IypI+xMmXW1uB16OOY8z3cICbJlDAVJzNbwBhNO0wt9OAw== + snapdragon-node@^2.0.1: version "2.1.1" resolved "https://registry.yarnpkg.com/snapdragon-node/-/snapdragon-node-2.1.1.tgz#6c175f86ff14bdb0724563e8f3c1b021a286853b" @@ -5628,6 +6145,22 @@ sockjs@0.3.19: faye-websocket "^0.10.0" uuid "^3.0.1" +socks-proxy-agent@^4.0.1: + version "4.0.2" + resolved "https://registry.yarnpkg.com/socks-proxy-agent/-/socks-proxy-agent-4.0.2.tgz#3c8991f3145b2799e70e11bd5fbc8b1963116386" + integrity sha512-NT6syHhI9LmuEMSK6Kd2V7gNv5KFZoLE7V5udWmn0de+3Mkj3UMA/AJPLyeNUVmElCurSHtUdM3ETpR3z770Wg== + dependencies: + agent-base "~4.2.1" + socks "~2.3.2" + +socks@~2.3.2: + version "2.3.2" + resolved "https://registry.yarnpkg.com/socks/-/socks-2.3.2.tgz#ade388e9e6d87fdb11649c15746c578922a5883e" + integrity sha512-pCpjxQgOByDHLlNqlnh/mNSAxIUkyBBuwwhTcV+enZGbDaClPvHdvm6uvOwZfFJkam7cGhBNbb4JxiP8UZkRvQ== + dependencies: + ip "^1.1.5" + smart-buffer "4.0.2" + source-list-map@^2.0.0: version "2.0.1" resolved "https://registry.yarnpkg.com/source-list-map/-/source-list-map-2.0.1.tgz#3993bd873bfc48479cca9ea3a547835c7c154b34" @@ -5733,6 +6266,13 @@ split-string@^3.0.1, split-string@^3.0.2: dependencies: extend-shallow "^3.0.0" +split@0.3: + version "0.3.3" + resolved "https://registry.yarnpkg.com/split/-/split-0.3.3.tgz#cd0eea5e63a211dfff7eb0f091c4133e2d0dd28f" + integrity sha1-zQ7qXmOiEd//frDwkcQTPi0N0o8= + dependencies: + through "2" + sprintf-js@~1.0.2: version "1.0.3" resolved "https://registry.yarnpkg.com/sprintf-js/-/sprintf-js-1.0.3.tgz#04e6926f662895354f3dd015203633b857297e2c" @@ -5791,6 +6331,13 @@ stream-browserify@^2.0.1: inherits "~2.0.1" readable-stream "^2.0.2" +stream-combiner@~0.0.4: + version "0.0.4" + resolved "https://registry.yarnpkg.com/stream-combiner/-/stream-combiner-0.0.4.tgz#4d5e433c185261dde623ca3f44c586bcf5c4ad14" + integrity sha1-TV5DPBhSYd3mI8o/RMWGvPXErRQ= + dependencies: + duplexer "~0.1.1" + stream-each@^1.1.0: version "1.2.3" resolved "https://registry.yarnpkg.com/stream-each/-/stream-each-1.2.3.tgz#ebe27a0c389b04fbcc233642952e10731afa9bae" @@ -5872,6 +6419,11 @@ string_decoder@^1.0.0, string_decoder@^1.1.1: dependencies: safe-buffer "~5.2.0" +string_decoder@~0.10.x: + version "0.10.31" + resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-0.10.31.tgz#62e203bc41766c6c28c9fc84301dab1c5310fa94" + integrity sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ= + string_decoder@~1.1.1: version "1.1.1" resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.1.1.tgz#9cf1611ba62685d7030ae9e4ba34149c3af03fc8" @@ -5915,6 +6467,13 @@ strip-json-comments@~2.0.1: resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-2.0.1.tgz#3c531942e908c2697c0ec344858c286c7ca0a60a" integrity sha1-PFMZQukIwml8DsNEhYwobHygpgo= +supports-color@5.4.0: + version "5.4.0" + resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-5.4.0.tgz#1c6b337402c2137605efe19f10fec390f6faab54" + integrity sha512-zjaXglF5nnWpsq470jSv6P9DwPvgLkuapYmfDm3JWOm0vkNTVF2tI4UrN2r6jH1qM/uc/WtxYY1hYoA2dOKj5w== + dependencies: + has-flag "^3.0.0" + supports-color@6.1.0, supports-color@^6.1.0: version "6.1.0" resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-6.1.0.tgz#0764abc69c63d5ac842dd4867e8d025e880df8f3" @@ -5957,6 +6516,14 @@ tar@^4: safe-buffer "^5.1.2" yallist "^3.0.3" +tcp-port-used@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/tcp-port-used/-/tcp-port-used-1.0.1.tgz#46061078e2d38c73979a2c2c12b5a674e6689d70" + integrity sha512-rwi5xJeU6utXoEIiMvVBMc9eJ2/ofzB+7nLOdnZuFTmNCLqRiQh2sMG9MqCxHU/69VC/Fwp5dV9306Qd54ll1Q== + dependencies: + debug "4.1.0" + is2 "2.0.1" + teeny-request@^3.11.3: version "3.11.3" resolved "https://registry.yarnpkg.com/teeny-request/-/teeny-request-3.11.3.tgz#335c629f7645e5d6599362df2f3230c4cbc23a55" @@ -5966,6 +6533,13 @@ teeny-request@^3.11.3: node-fetch "^2.2.0" uuid "^3.3.2" +temp-fs@^0.9.9: + version "0.9.9" + resolved "https://registry.yarnpkg.com/temp-fs/-/temp-fs-0.9.9.tgz#8071730437870720e9431532fe2814364f8803d7" + integrity sha1-gHFzBDeHByDpQxUy/igUNk+IA9c= + dependencies: + rimraf "~2.5.2" + terser-webpack-plugin@^1.4.1: version "1.4.1" resolved "https://registry.yarnpkg.com/terser-webpack-plugin/-/terser-webpack-plugin-1.4.1.tgz#61b18e40eaee5be97e771cdbb10ed1280888c2b4" @@ -6013,6 +6587,16 @@ through2@^2.0.0: readable-stream "~2.3.6" xtend "~4.0.1" +through@2, through@~2.3, through@~2.3.1: + version "2.3.8" + resolved "https://registry.yarnpkg.com/through/-/through-2.3.8.tgz#0dd4c9ffaabc357960b1b724115d7e0e86a2e1f5" + integrity sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU= + +thunkify@^2.1.2: + version "2.1.2" + resolved "https://registry.yarnpkg.com/thunkify/-/thunkify-2.1.2.tgz#faa0e9d230c51acc95ca13a361ac05ca7e04553d" + integrity sha1-+qDp0jDFGsyVyhOjYawFyn4EVT0= + thunky@^1.0.2: version "1.0.3" resolved "https://registry.yarnpkg.com/thunky/-/thunky-1.0.3.tgz#f5df732453407b09191dae73e2a8cc73f381a826" @@ -6181,6 +6765,11 @@ type-check@~0.3.2: dependencies: prelude-ls "~1.1.2" +type-detect@0.1.1: + version "0.1.1" + resolved "https://registry.yarnpkg.com/type-detect/-/type-detect-0.1.1.tgz#0ba5ec2a885640e470ea4e8505971900dac58822" + integrity sha1-C6XsKohWQORw6k6FBZcZANrFiCI= + type-is@~1.6.17, type-is@~1.6.18: version "1.6.18" resolved "https://registry.yarnpkg.com/type-is/-/type-is-1.6.18.tgz#4e552cd05df09467dcbc4ef739de89f2cf37c131" @@ -6704,6 +7293,11 @@ xmlchars@^2.1.1: resolved "https://registry.yarnpkg.com/xmlchars/-/xmlchars-2.2.0.tgz#060fe1bcb7f9c76fe2a17db86a9bc3ab894210cb" integrity sha512-JZnDKK8B0RCDw84FNdDAIpZK+JuJw+s7Lz8nksI7SIuU3UXJJslUthsi+uWBUYOwPFwW7W7PRLRfUKpxjtjFCw== +xregexp@2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/xregexp/-/xregexp-2.0.0.tgz#52a63e56ca0b84a7f3a5f3d61872f126ad7a5943" + integrity sha1-UqY+VsoLhKfzpfPWGHLxJq16WUM= + xtend@^4.0.0, xtend@~4.0.1: version "4.0.2" resolved "https://registry.yarnpkg.com/xtend/-/xtend-4.0.2.tgz#bb72779f5fa465186b1f438f674fa347fdb5db54" @@ -6714,6 +7308,11 @@ xtend@^4.0.0, xtend@~4.0.1: resolved "https://registry.yarnpkg.com/y18n/-/y18n-4.0.0.tgz#95ef94f85ecc81d007c264e190a120f0a3c8566b" integrity sha512-r9S/ZyXu/Xu9q1tYlpsLIsa3EeLXXk0VwlxqTcFRfg9EhMW+17kbt9G0NrgCmhGb5vT2hyhJZLfDGx+7+5Uj/w== +yallist@^2.1.2: + version "2.1.2" + resolved "https://registry.yarnpkg.com/yallist/-/yallist-2.1.2.tgz#1c11f9218f076089a47dd512f93c6699a6a81d52" + integrity sha1-HBH5IY8HYImkfdUS+TxmmaaoHVI= + yallist@^3.0.0, yallist@^3.0.2, yallist@^3.0.3: version "3.1.1" resolved "https://registry.yarnpkg.com/yallist/-/yallist-3.1.1.tgz#dbb7daf9bfd8bac9ab45ebf602b8cbad0d5d08fd" @@ -6793,6 +7392,13 @@ yargs@^13.3.0: y18n "^4.0.0" yargs-parser "^13.1.1" +yauzl@2.4.1: + version "2.4.1" + resolved "https://registry.yarnpkg.com/yauzl/-/yauzl-2.4.1.tgz#9528f442dab1b2284e58b4379bb194e22e0c4005" + integrity sha1-lSj0QtqxsihOWLQ3m7GU4i4MQAU= + dependencies: + fd-slicer "~1.0.1" + yn@^3.0.0: version "3.1.1" resolved "https://registry.yarnpkg.com/yn/-/yn-3.1.1.tgz#1e87401a09d767c1d5eab26a6e4c185182d2eb50" -- 2.47.2