From d31f5b92bb03721081a32abd0e354bccad98a1bd Mon Sep 17 00:00:00 2001 From: Alexandre Bodin Date: Tue, 14 May 2019 15:48:13 +0200 Subject: [PATCH] Use yarn if installed on strapi new. --- examples/getstarted/package.json | 1 - packages/strapi-admin/package.json | 1 - .../strapi-generate-new/json/package.json.js | 6 - packages/strapi-generate-new/lib/after.js | 12 +- packages/strapi-generate-new/lib/before.js | 437 +++++++++--------- packages/strapi-generate-new/package.json | 1 - packages/strapi-lint/package.json | 45 -- packages/strapi-utils/lib/index.js | 1 - packages/strapi-utils/lib/packageManager.js | 76 --- packages/strapi/bin/strapi.js | 2 +- packages/strapi/lib/utils/post-install.js | 96 ---- yarn.lock | 289 +----------- 12 files changed, 244 insertions(+), 723 deletions(-) delete mode 100644 packages/strapi-lint/package.json delete mode 100644 packages/strapi-utils/lib/packageManager.js delete mode 100644 packages/strapi/lib/utils/post-install.js diff --git a/examples/getstarted/package.json b/examples/getstarted/package.json index 5730241ab1..5e0f9254cc 100644 --- a/examples/getstarted/package.json +++ b/examples/getstarted/package.json @@ -53,7 +53,6 @@ } ], "strapi": { - "packageManager": "npm", "uuid": "8917e89f-c8ff-4f80-b963-e3d568088422" }, "engines": { diff --git a/packages/strapi-admin/package.json b/packages/strapi-admin/package.json index ff86058fd9..2c19a937fe 100644 --- a/packages/strapi-admin/package.json +++ b/packages/strapi-admin/package.json @@ -25,7 +25,6 @@ "chalk": "^2.4.2", "classnames": "^2.2.6", "cross-env": "^5.0.5", - "crypto": "^1.0.1", "css-loader": "^2.1.1", "duplicate-package-checker-webpack-plugin": "^3.0.0", "file-loader": "^3.0.1", diff --git a/packages/strapi-generate-new/json/package.json.js b/packages/strapi-generate-new/json/package.json.js index b8bccff477..3cc44f27a3 100644 --- a/packages/strapi-generate-new/json/package.json.js +++ b/packages/strapi-generate-new/json/package.json.js @@ -7,8 +7,6 @@ // Public node modules. const _ = require('lodash'); -const { packageManager } = require('strapi-utils'); - /** * Expose main package JSON of the application * with basic info, dependencies, etc. @@ -16,8 +14,6 @@ const { packageManager } = require('strapi-utils'); module.exports = scope => { const cliPkg = scope.strapiPackageJSON || {}; - // Store the package manager info into the package.json - const pkgManager = packageManager.isStrapiInstalledWithNPM() ? 'npm' : 'yarn'; // Let us install additional dependencies on a specific version. // Ex: it allows us to install the right version of knex. @@ -38,7 +34,6 @@ module.exports = scope => { 'private': true, 'version': '0.1.0', 'description': 'A Strapi application.', - 'main': './server.js', 'scripts': { 'develop': 'strapi develop', 'start': 'strapi start', @@ -73,7 +68,6 @@ module.exports = scope => { 'url': scope.website || '' }], 'strapi': { - 'packageManager': pkgManager, 'uuid': scope.uuid }, 'engines': { diff --git a/packages/strapi-generate-new/lib/after.js b/packages/strapi-generate-new/lib/after.js index b94c369d65..533ae28682 100644 --- a/packages/strapi-generate-new/lib/after.js +++ b/packages/strapi-generate-new/lib/after.js @@ -13,16 +13,14 @@ const ora = require('ora'); const execa = require('execa'); // Logger. -const { packageManager } = require('strapi-utils'); const trackSuccess = require('./success'); const installArguments = ['install', '--production', '--no-optional']; -const runInstall = cwd => { - if (packageManager.isStrapiInstalledWithNPM()) { - return execa('npm', installArguments, { cwd }); +const runInstall = ({ rootPath, hasYarn }) => { + if (hasYarn) { + return execa('yarnpkg', installArguments, { cwd: rootPath }); } - - return execa('yarn', installArguments, { cwd }); + return execa('npm', installArguments, { cwd: rootPath }); }; module.exports = async (scope, cb) => { @@ -41,7 +39,7 @@ module.exports = async (scope, cb) => { loader.start('Installing dependencies ...'); try { - await runInstall(scope.rootPath); + await runInstall(scope); loader.succeed(); } catch (err) { loader.fail(); diff --git a/packages/strapi-generate-new/lib/before.js b/packages/strapi-generate-new/lib/before.js index 79423aa24b..babbd6cd99 100644 --- a/packages/strapi-generate-new/lib/before.js +++ b/packages/strapi-generate-new/lib/before.js @@ -19,9 +19,18 @@ const uuid = require('uuid/v4'); const rimraf = require('rimraf'); // Logger. -const { packageManager } = require('strapi-utils'); const trackSuccess = require('./success'); +function hasYarn() { + try { + const { code } = execa.shellSync('yarnpkg --version'); + if (code === 0) return true; + return false; + } catch (err) { + return false; + } +} + /** * This `before` function is run before generating targets. * Validate, configure defaults, get extra dependencies, etc. @@ -45,6 +54,7 @@ module.exports = (scope, cb) => { year: new Date().getFullYear(), license: 'MIT', database: {}, + hasYarn: hasYarn(), additionalsDependencies: [ 'strapi-plugin-settings-manager', 'strapi-plugin-content-type-builder', @@ -181,192 +191,6 @@ module.exports = (scope, cb) => { scope.client = answers.client; - const asyncFn = [ - new Promise(async resolve => { - const isMongo = scope.client.database === 'mongo'; - const isSQLite = scope.database.settings.client === 'sqlite'; - - let answers = await inquirer.prompt([ - { - when: !hasDatabaseConfig && !isSQLite, - type: 'input', - name: 'database', - message: 'Database name:', - default: _.get(scope.database, 'database', scope.name), - }, - { - when: !hasDatabaseConfig && !isSQLite, - type: 'input', - name: 'host', - message: 'Host:', - default: _.get(scope.database, 'host', '127.0.0.1'), - }, - { - when: !hasDatabaseConfig && isMongo, - type: 'boolean', - name: 'srv', - message: '+srv connection:', - default: _.get(scope.database, 'srv', false), - }, - { - when: !hasDatabaseConfig && !isSQLite, - type: 'input', - name: 'port', - message: `Port${ - isMongo ? ' (It will be ignored if you enable +srv)' : '' - }:`, - default: answers => { - // eslint-disable-line no-unused-vars - if (_.get(scope.database, 'port')) { - return scope.database.port; - } - - const ports = { - mongo: 27017, - postgres: 5432, - mysql: 3306, - }; - - return ports[scope.client.database]; - }, - }, - { - when: !hasDatabaseConfig && !isSQLite, - type: 'input', - name: 'username', - message: 'Username:', - default: _.get(scope.database, 'username', undefined), - }, - { - when: !hasDatabaseConfig && !isSQLite, - type: 'password', - name: 'password', - message: 'Password:', - mask: '*', - default: _.get(scope.database, 'password', undefined), - }, - { - when: !hasDatabaseConfig && isMongo, - type: 'input', - name: 'authenticationDatabase', - message: 'Authentication database (Maybe "admin" or blank):', - default: _.get(scope.database, 'authenticationDatabase', undefined), - }, - { - when: !hasDatabaseConfig && !isSQLite, - type: 'boolean', - name: 'ssl', - message: 'Enable SSL connection:', - default: _.get(scope.database, 'ssl', false), - }, - { - when: !hasDatabaseConfig && isSQLite && !isQuick, - type: 'input', - name: 'filename', - message: 'Filename:', - default: () => '.tmp/data.db', - }, - ]); - - if (isQuick) { - answers.filename = '.tmp/data.db'; - } - - if (hasDatabaseConfig) { - answers = _.merge( - _.omit(scope.database.settings, ['client']), - scope.database.options - ); - } - - scope.database.settings.host = answers.host; - scope.database.settings.port = answers.port; - scope.database.settings.database = answers.database; - scope.database.settings.username = answers.username; - scope.database.settings.password = answers.password; - - if (answers.filename) { - scope.database.settings.filename = answers.filename; - } - if (answers.srv) { - scope.database.settings.srv = _.toString(answers.srv) === 'true'; - } - if (answers.authenticationDatabase) { - scope.database.options.authenticationDatabase = - answers.authenticationDatabase; - } - - // SQLite requirements. - if (isSQLite) { - // Necessary for SQLite configuration (https://knexjs.org/#Builder-insert). - scope.database.options = { - useNullAsDefault: true, - }; - } - - if (answers.ssl && scope.client.database === 'mongo') { - scope.database.options.ssl = _.toString(answers.ssl) === 'true'; - } else if (answers.ssl) { - scope.database.settings.ssl = _.toString(answers.ssl) === 'true'; - } - - console.log(); - if (isQuick) { - console.log('✅ Connected to the database'); - } else { - console.log( - '⏳ Testing database connection...\r\nIt might take a minute, please have a coffee ☕️' - ); - } - - resolve(); - }), - new Promise(resolve => { - const isStrapiInstalledWithNPM = packageManager.isStrapiInstalledWithNPM(); - let packageCmd = packageManager.commands( - 'install --prefix', - scope.tmpPath - ); - // Manually create the temp directory for yarn - if (!isStrapiInstalledWithNPM) { - fs.ensureDirSync(scope.tmpPath); - } - - let cmd = `${packageCmd} ${scope.client.connector}@${ - scope.strapiPackageJSON.version - }`; - - if (scope.client.module) { - cmd += ` ${scope.client.module}`; - } - - if (scope.client.connector === 'strapi-hook-bookshelf') { - cmd += ` strapi-hook-knex@${scope.strapiPackageJSON.version}`; - scope.additionalsDependencies = scope.additionalsDependencies.concat([ - 'strapi-hook-knex', - 'knex', - ]); - } - - if (isQuick) { - scope.client.version = 'latest'; - return resolve(); - } - - execa.shell(cmd).then(() => { - if (scope.client.module) { - const lock = require(path.join( - `${scope.tmpPath}`, - '/node_modules/', - `${scope.client.module}/package.json` - )); - scope.client.version = lock.version; - } - resolve(); - }); - }), - ]; - const connectedToTheDatabase = (withMessage = true) => { if (withMessage) { console.log(); @@ -386,35 +210,224 @@ module.exports = (scope, cb) => { cb.success(); }; - Promise.all(asyncFn).then(() => { - // Bypass real connection test. - if (isQuick) { - return connectedToTheDatabase(false); - } + Promise.all([ + handleCustomDatabase({ scope, isQuick, hasDatabaseConfig }), + installDatabaseTestingDep({ scope, isQuick }), + ]) + .then(() => { + // Bypass real connection test. + if (isQuick) { + return connectedToTheDatabase(false); + } - try { - const connectivityFile = path.join( - scope.tmpPath, - 'node_modules', - scope.client.connector, - 'lib', - 'utils', - 'connectivity.js' - ); + try { + const connectivityFile = path.join( + scope.tmpPath, + 'node_modules', + scope.client.connector, + 'lib', + 'utils', + 'connectivity.js' + ); - require(connectivityFile)( - scope, - connectedToTheDatabase, - connectionValidation - ); - } catch (err) { - trackSuccess('didNotConnectDatabase', scope, err); + require(connectivityFile)( + scope, + connectedToTheDatabase, + connectionValidation + ); + } catch (err) { + trackSuccess('didNotConnectDatabase', scope, err); + console.log(err); + rimraf.sync(scope.tmpPath); + cb.error(); + } + }) + .catch(err => { console.log(err); - rimraf.sync(scope.tmpPath); - cb.error(); - } - }); + cb.error(err); + }); }; connectionValidation(); }; + +async function handleCustomDatabase({ scope, hasDatabaseConfig, isQuick }) { + const isMongo = scope.client.database === 'mongo'; + const isSQLite = scope.database.settings.client === 'sqlite'; + + let answers = await inquirer.prompt([ + { + when: !hasDatabaseConfig && !isSQLite, + type: 'input', + name: 'database', + message: 'Database name:', + default: _.get(scope.database, 'database', scope.name), + }, + { + when: !hasDatabaseConfig && !isSQLite, + type: 'input', + name: 'host', + message: 'Host:', + default: _.get(scope.database, 'host', '127.0.0.1'), + }, + { + when: !hasDatabaseConfig && isMongo, + type: 'boolean', + name: 'srv', + message: '+srv connection:', + default: _.get(scope.database, 'srv', false), + }, + { + when: !hasDatabaseConfig && !isSQLite, + type: 'input', + name: 'port', + message: `Port${ + isMongo ? ' (It will be ignored if you enable +srv)' : '' + }:`, + default: answers => { + // eslint-disable-line no-unused-vars + if (_.get(scope.database, 'port')) { + return scope.database.port; + } + + const ports = { + mongo: 27017, + postgres: 5432, + mysql: 3306, + }; + + return ports[scope.client.database]; + }, + }, + { + when: !hasDatabaseConfig && !isSQLite, + type: 'input', + name: 'username', + message: 'Username:', + default: _.get(scope.database, 'username', undefined), + }, + { + when: !hasDatabaseConfig && !isSQLite, + type: 'password', + name: 'password', + message: 'Password:', + mask: '*', + default: _.get(scope.database, 'password', undefined), + }, + { + when: !hasDatabaseConfig && isMongo, + type: 'input', + name: 'authenticationDatabase', + message: 'Authentication database (Maybe "admin" or blank):', + default: _.get(scope.database, 'authenticationDatabase', undefined), + }, + { + when: !hasDatabaseConfig && !isSQLite, + type: 'boolean', + name: 'ssl', + message: 'Enable SSL connection:', + default: _.get(scope.database, 'ssl', false), + }, + { + when: !hasDatabaseConfig && isSQLite && !isQuick, + type: 'input', + name: 'filename', + message: 'Filename:', + default: () => '.tmp/data.db', + }, + ]); + + if (isQuick) { + answers.filename = '.tmp/data.db'; + } + + if (hasDatabaseConfig) { + answers = _.merge( + _.omit(scope.database.settings, ['client']), + scope.database.options + ); + } + + scope.database.settings.host = answers.host; + scope.database.settings.port = answers.port; + scope.database.settings.database = answers.database; + scope.database.settings.username = answers.username; + scope.database.settings.password = answers.password; + + if (answers.filename) { + scope.database.settings.filename = answers.filename; + } + if (answers.srv) { + scope.database.settings.srv = _.toString(answers.srv) === 'true'; + } + if (answers.authenticationDatabase) { + scope.database.options.authenticationDatabase = + answers.authenticationDatabase; + } + + // SQLite requirements. + if (isSQLite) { + // Necessary for SQLite configuration (https://knexjs.org/#Builder-insert). + scope.database.options = { + useNullAsDefault: true, + }; + } + + if (answers.ssl && scope.client.database === 'mongo') { + scope.database.options.ssl = _.toString(answers.ssl) === 'true'; + } else if (answers.ssl) { + scope.database.settings.ssl = _.toString(answers.ssl) === 'true'; + } + + console.log(); + if (isQuick) { + console.log('✅ Connected to the database'); + } else { + console.log( + '⏳ Testing database connection...\r\nIt might take a minute, please have a coffee ☕️' + ); + } +} + +async function installDatabaseTestingDep({ scope, isQuick }) { + let packageCmd = scope.hasYarn + ? `yarnpkg --cwd ${scope.tmpPath} add` + : `npm install --prefix ${scope.tmpPath}`; + + // Manually create the temp directory for yarn + if (scope.hasYarn) { + await fs.ensureDir(scope.tmpPath); + } + + let cmd = `${packageCmd} ${scope.client.connector}@${ + scope.strapiPackageJSON.version + }`; + + if (scope.client.module) { + cmd += ` ${scope.client.module}`; + } + + if (scope.client.connector === 'strapi-hook-bookshelf') { + cmd += ` strapi-hook-knex@${scope.strapiPackageJSON.version}`; + scope.additionalsDependencies = scope.additionalsDependencies.concat([ + 'strapi-hook-knex', + 'knex', + ]); + } + + if (isQuick) { + scope.client.version = 'latest'; + return; + } + + await execa.shell(cmd); + + if (scope.client.module) { + const lock = require(path.join( + `${scope.tmpPath}`, + '/node_modules/', + `${scope.client.module}/package.json` + )); + scope.client.version = lock.version; + } +} diff --git a/packages/strapi-generate-new/package.json b/packages/strapi-generate-new/package.json index acf833540b..a2997d35c2 100644 --- a/packages/strapi-generate-new/package.json +++ b/packages/strapi-generate-new/package.json @@ -22,7 +22,6 @@ "ora": "^2.1.0", "request": "^2.88.0", "rimraf": "^2.6.3", - "strapi-utils": "3.0.0-alpha.26.2", "uuid": "^3.1.0" }, "scripts": { diff --git a/packages/strapi-lint/package.json b/packages/strapi-lint/package.json deleted file mode 100644 index eb900dd9f3..0000000000 --- a/packages/strapi-lint/package.json +++ /dev/null @@ -1,45 +0,0 @@ -{ - "name": "strapi-lint", - "version": "3.0.0-alpha.26.2", - "description": "Strapi eslint and prettier configurations", - "directories": { - "lib": "lib" - }, - "scripts": { - "test": "echo \"no tests yet\"" - }, - "author": { - "email": "hi@strapi.io", - "name": "Strapi team", - "url": "http://strapi.io" - }, - "engines": { - "node": ">= 10.0.0", - "npm": ">= 6.0.0" - }, - "maintainers": [ - { - "name": "Strapi team", - "email": "hi@strapi.io", - "url": "http://strapi.io" - } - ], - "license": "MIT", - "devDependencies": { - "eslint": "^4.19.1", - "eslint-config-airbnb": "^16.1.0", - "eslint-config-airbnb-base": "^12.1.0", - "eslint-config-prettier": "^2.9.0", - "eslint-import-resolver-webpack": "^0.9.0", - "eslint-plugin-import": "^2.11.0", - "eslint-plugin-jsx-a11y": "^6.0.3", - "eslint-plugin-react": "^7.7.0", - "eslint-plugin-redux-saga": "^0.8.0", - "webpack": "^4.6.0" - }, - "dependencies": { - "babel-eslint": "^8.2.3", - "prettier": "^1.12.1", - "shelljs": "^0.7.8" - } -} diff --git a/packages/strapi-utils/lib/index.js b/packages/strapi-utils/lib/index.js index e5140cc567..2e90089708 100644 --- a/packages/strapi-utils/lib/index.js +++ b/packages/strapi-utils/lib/index.js @@ -16,7 +16,6 @@ module.exports = { knex: require('./knex'), logger: require('./logger'), models: require('./models'), - packageManager: require('./packageManager'), policy: require('./policy'), regex: require('./regex'), templateConfiguration: require('./templateConfiguration'), diff --git a/packages/strapi-utils/lib/packageManager.js b/packages/strapi-utils/lib/packageManager.js deleted file mode 100644 index ee8e657420..0000000000 --- a/packages/strapi-utils/lib/packageManager.js +++ /dev/null @@ -1,76 +0,0 @@ -const fs = require('fs'); -const shell = require('shelljs'); -const { includes } = require('lodash'); - -// let isStrapiInstalledWithNPM = true; -// let skipCheck = false; - -const watcher = (cmd) => { - const data = shell.exec(cmd, { - silent: true, - }); - - if (includes(data.stderr, 'command not found') && data.code !== 0) { - throw new Error('Command not found'); - } - - return data.stdout.toString(); -}; - -module.exports = { - isStrapiInstalledWithNPM: () => { - let isNPM = true; - let skipCheck = false; - - // Check if we are in development mode (working with the monorepo) - // So we don't run `npm -g ls` which takes time - if (process.argv.indexOf('new') !== -1 && process.argv.indexOf('--dev') !== -1) { - skipCheck = true; - } - - if (!skipCheck) { - try { - // Retrieve all the packages installed with NPM - const npmPath = watcher('npm root -g'); - - const data = fs.readdirSync(npmPath.trim()); - - // Check if strapi is installed with NPM - isNPM = includes(data, 'strapi'); - - if (isNPM) { - return isNPM; - } - - try { - const yarnData = watcher('yarn global list'); - isNPM = !includes(yarnData, 'strapi'); - } catch(err) { - isNPM = true; - } - } catch(err) { - // If NPM is not installed strapi is installed with Yarn - isNPM = false; - } - } - - return isNPM; - }, - - commands: function (cmdType, path = '') { - const isNPM = this.isStrapiInstalledWithNPM(); - - switch(cmdType) { - case 'install --prefix': - return isNPM ? `npm install --prefix ${path}` : `yarn --cwd ${path} add`; - case 'root -g': - return isNPM ? 'npm root -g' : 'yarn global dir'; - case 'install global': - return isNPM ? 'npm install' : 'yarn install'; - case 'install package': - return isNPM ? 'npm install' : 'yarn add'; - default: - return ''; - } - } -}; diff --git a/packages/strapi/bin/strapi.js b/packages/strapi/bin/strapi.js index 82c86bd28e..d9e3fb81e1 100755 --- a/packages/strapi/bin/strapi.js +++ b/packages/strapi/bin/strapi.js @@ -79,7 +79,7 @@ program // `$ strapi new` program - .command('new') + .command('new [name]') .option('--debug', 'Display database connection error') .option('--quickstart', 'Quickstart app creation') .option('--dbclient ', 'Database client') diff --git a/packages/strapi/lib/utils/post-install.js b/packages/strapi/lib/utils/post-install.js deleted file mode 100644 index 894565ef4c..0000000000 --- a/packages/strapi/lib/utils/post-install.js +++ /dev/null @@ -1,96 +0,0 @@ -'use strict'; - -/** - * Module dependencies - */ - -// Node.js core -const path = require('path'); -const fs = require('fs'); - -// Public node modules. -const _ = require('lodash'); -const shell = require('shelljs'); - -// Define files/dir paths -const pluginsDirPath = path.join(process.cwd(), 'plugins'); -const adminDirPath = path.join(process.cwd(), 'admin'); - -let packageManager; -try { - packageManager = require(path.resolve(process.cwd(), 'package.json')).strapi.packageManager; -} catch (error) { - packageManager = 'npm'; -} - -const installCmd = packageManager === 'yarn' ? 'yarn install --production --ignore-scripts' : 'npm install --prod --ignore-scripts'; - -/* eslint-disable no-console */ - -// Install admin dependencies -console.log(`🔸 Administration Panel`); -console.log('📦 Installing packages...'); - -try { - // Check if path is existing. - fs.accessSync(adminDirPath, fs.constants.R_OK | fs.constants.W_OK); - - shell.cd(adminDirPath); - const install = shell.exec(installCmd, {silent: true}); - - if (install.stderr && install.code !== 0) { - console.error(install.stderr); - process.exit(1); - } - - console.log('✅ Success'); - console.log(''); -} catch (e) { - if (e.code === 'ENOENT') { - console.log('✅ Success'); - console.log(''); - - return; - } - - console.log(e); -} - -try { - // Check if path is existing. - fs.accessSync(pluginsDirPath, fs.constants.R_OK | fs.constants.W_OK); - - const plugins = fs.readdirSync(pluginsDirPath).filter(x => x[0] !== '.'); - - // Install dependencies for each plugins - _.forEach(plugins, plugin => { - const pluginPath = path.join(pluginsDirPath, plugin); - - console.log(`🔸 Plugin - ${_.upperFirst(plugin)}`); - console.log('📦 Installing packages...'); - - try { - shell.cd(pluginPath); - const install = shell.exec(installCmd, {silent: true}); - - if (install.stderr && install.code !== 0) { - console.error(install.stderr); - process.exit(1); - } - - console.log('✅ Success'); - console.log(''); - } catch (err) { - console.log(err); - } - }); -} catch (e) { - if (e.code === 'ENOENT') { - console.log('✅ Success'); - console.log(''); - - return; - } - - console.log(e); -} diff --git a/yarn.lock b/yarn.lock index 682048e85a..8e20962856 100644 --- a/yarn.lock +++ b/yarn.lock @@ -14,13 +14,6 @@ resolved "https://registry.yarnpkg.com/@apollographql/graphql-playground-html/-/graphql-playground-html-1.6.6.tgz#022209e28a2b547dcde15b219f0c50f47aa5beb3" integrity sha512-lqK94b+caNtmKFs5oUVXlSpN3sm5IXZ+KfhMxOtr0LR2SqErzkoJilitjDvJ1WbjHlxLI7WtCjRmOLdOGJqtMQ== -"@babel/code-frame@7.0.0-beta.44": - version "7.0.0-beta.44" - resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.0.0-beta.44.tgz#2a02643368de80916162be70865c97774f3adbd9" - integrity sha512-cuAuTTIQ9RqcFRJ/Y8PvTh+paepNcaGxwQwjIDRWPXmzzyAeCO4KqS9ikMvq0MCbRk6GlYKwfzStrcP3/jSL8g== - dependencies: - "@babel/highlight" "7.0.0-beta.44" - "@babel/code-frame@^7.0.0": version "7.0.0" resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.0.0.tgz#06e2ab19bdb535385559aabb5ba59729482800f8" @@ -48,17 +41,6 @@ semver "^5.4.1" source-map "^0.5.0" -"@babel/generator@7.0.0-beta.44": - version "7.0.0-beta.44" - resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.0.0-beta.44.tgz#c7e67b9b5284afcf69b309b50d7d37f3e5033d42" - integrity sha512-5xVb7hlhjGcdkKpMXgicAVgx8syK5VJz193k0i/0sLP6DzE6lRrU1K3B/rFefgdo9LPGMAOOOAWW4jycj07ShQ== - dependencies: - "@babel/types" "7.0.0-beta.44" - jsesc "^2.5.1" - lodash "^4.2.0" - source-map "^0.5.0" - trim-right "^1.0.1" - "@babel/generator@^7.0.0", "@babel/generator@^7.4.0": version "7.4.0" resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.4.0.tgz#c230e79589ae7a729fd4631b9ded4dc220418196" @@ -131,15 +113,6 @@ "@babel/traverse" "^7.1.0" "@babel/types" "^7.0.0" -"@babel/helper-function-name@7.0.0-beta.44": - version "7.0.0-beta.44" - resolved "https://registry.yarnpkg.com/@babel/helper-function-name/-/helper-function-name-7.0.0-beta.44.tgz#e18552aaae2231100a6e485e03854bc3532d44dd" - integrity sha512-MHRG2qZMKMFaBavX0LWpfZ2e+hLloT++N7rfM3DYOMUOGCD8cVjqZpwiL8a0bOX3IYcQev1ruciT0gdFFRTxzg== - dependencies: - "@babel/helper-get-function-arity" "7.0.0-beta.44" - "@babel/template" "7.0.0-beta.44" - "@babel/types" "7.0.0-beta.44" - "@babel/helper-function-name@^7.1.0": version "7.1.0" resolved "https://registry.yarnpkg.com/@babel/helper-function-name/-/helper-function-name-7.1.0.tgz#a0ceb01685f73355d4360c1247f582bfafc8ff53" @@ -149,13 +122,6 @@ "@babel/template" "^7.1.0" "@babel/types" "^7.0.0" -"@babel/helper-get-function-arity@7.0.0-beta.44": - version "7.0.0-beta.44" - resolved "https://registry.yarnpkg.com/@babel/helper-get-function-arity/-/helper-get-function-arity-7.0.0-beta.44.tgz#d03ca6dd2b9f7b0b1e6b32c56c72836140db3a15" - integrity sha512-w0YjWVwrM2HwP6/H3sEgrSQdkCaxppqFeJtAnB23pRiJB5E/O9Yp7JAAeWBl+gGEgmBFinnTyOv2RN7rcSmMiw== - dependencies: - "@babel/types" "7.0.0-beta.44" - "@babel/helper-get-function-arity@^7.0.0": version "7.0.0" resolved "https://registry.yarnpkg.com/@babel/helper-get-function-arity/-/helper-get-function-arity-7.0.0.tgz#83572d4320e2a4657263734113c42868b64e49c3" @@ -244,13 +210,6 @@ "@babel/template" "^7.1.0" "@babel/types" "^7.0.0" -"@babel/helper-split-export-declaration@7.0.0-beta.44": - version "7.0.0-beta.44" - resolved "https://registry.yarnpkg.com/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.0.0-beta.44.tgz#c0b351735e0fbcb3822c8ad8db4e583b05ebd9dc" - integrity sha512-aQ7QowtkgKKzPGf0j6u77kBMdUFVBKNHw2p/3HX/POt5/oz8ec5cs0GwlgM8Hz7ui5EwJnzyfRmkNF1Nx1N7aA== - dependencies: - "@babel/types" "7.0.0-beta.44" - "@babel/helper-split-export-declaration@^7.0.0", "@babel/helper-split-export-declaration@^7.4.0": version "7.4.0" resolved "https://registry.yarnpkg.com/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.4.0.tgz#571bfd52701f492920d63b7f735030e9a3e10b55" @@ -277,15 +236,6 @@ "@babel/traverse" "^7.4.3" "@babel/types" "^7.4.0" -"@babel/highlight@7.0.0-beta.44": - version "7.0.0-beta.44" - resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.0.0-beta.44.tgz#18c94ce543916a80553edcdcf681890b200747d5" - integrity sha512-Il19yJvy7vMFm8AVAh6OZzaFoAd0hbkeMZiX3P5HGD+z7dyI7RzndHB0dg6Urh/VAFfHtpOIzDUSxmY6coyZWQ== - dependencies: - chalk "^2.0.0" - esutils "^2.0.2" - js-tokens "^3.0.0" - "@babel/highlight@^7.0.0": version "7.0.0" resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.0.0.tgz#f710c38c8d458e6dd9a201afb637fcb781ce99e4" @@ -757,16 +707,6 @@ dependencies: regenerator-runtime "^0.13.2" -"@babel/template@7.0.0-beta.44": - version "7.0.0-beta.44" - resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.0.0-beta.44.tgz#f8832f4fdcee5d59bf515e595fc5106c529b394f" - integrity sha512-w750Sloq0UNifLx1rUqwfbnC6uSUk0mfwwgGRfdLiaUzfAOiH0tHJE6ILQIUi3KYkjiCDTskoIsnfqZvWLBDng== - dependencies: - "@babel/code-frame" "7.0.0-beta.44" - "@babel/types" "7.0.0-beta.44" - babylon "7.0.0-beta.44" - lodash "^4.2.0" - "@babel/template@^7.0.0", "@babel/template@^7.1.0", "@babel/template@^7.2.2", "@babel/template@^7.4.0": version "7.4.0" resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.4.0.tgz#12474e9c077bae585c5d835a95c0b0b790c25c8b" @@ -776,22 +716,6 @@ "@babel/parser" "^7.4.0" "@babel/types" "^7.4.0" -"@babel/traverse@7.0.0-beta.44": - version "7.0.0-beta.44" - resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.0.0-beta.44.tgz#a970a2c45477ad18017e2e465a0606feee0d2966" - integrity sha512-UHuDz8ukQkJCDASKHf+oDt3FVUzFd+QYfuBIsiNu/4+/ix6pP/C+uQZJ6K1oEfbCMv/IKWbgDEh7fcsnIE5AtA== - dependencies: - "@babel/code-frame" "7.0.0-beta.44" - "@babel/generator" "7.0.0-beta.44" - "@babel/helper-function-name" "7.0.0-beta.44" - "@babel/helper-split-export-declaration" "7.0.0-beta.44" - "@babel/types" "7.0.0-beta.44" - babylon "7.0.0-beta.44" - debug "^3.1.0" - globals "^11.1.0" - invariant "^2.2.0" - lodash "^4.2.0" - "@babel/traverse@^7.0.0", "@babel/traverse@^7.1.0", "@babel/traverse@^7.4.0", "@babel/traverse@^7.4.3": version "7.4.3" resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.4.3.tgz#1a01f078fc575d589ff30c0f71bf3c3d9ccbad84" @@ -807,15 +731,6 @@ globals "^11.1.0" lodash "^4.17.11" -"@babel/types@7.0.0-beta.44": - version "7.0.0-beta.44" - resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.0.0-beta.44.tgz#6b1b164591f77dec0a0342aca995f2d046b3a757" - integrity sha512-5eTV4WRmqbaFM3v9gHAIljEQJU4Ssc6fxL61JN+Oe2ga/BwyjzjamwkCVVAQjHGuAX8i0BWo42dshL8eO5KfLQ== - dependencies: - esutils "^2.0.2" - lodash "^4.2.0" - to-fast-properties "^2.0.0" - "@babel/types@^7.0.0", "@babel/types@^7.2.0", "@babel/types@^7.2.2", "@babel/types@^7.3.0", "@babel/types@^7.4.0": version "7.4.0" resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.4.0.tgz#670724f77d24cce6cc7d8cf64599d511d164894c" @@ -2747,14 +2662,6 @@ argparse@^1.0.7: dependencies: sprintf-js "~1.0.2" -aria-query@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/aria-query/-/aria-query-3.0.0.tgz#65b3fcc1ca1155a8c9ae64d6eee297f15d5133cc" - integrity sha1-ZbP8wcoRVajJrmTW7uKX8V1RM8w= - dependencies: - ast-types-flow "0.0.7" - commander "^2.11.0" - arr-diff@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/arr-diff/-/arr-diff-4.0.0.tgz#d6461074febfec71e7e15235761a329a5dc7c520" @@ -2795,11 +2702,6 @@ array-find-index@^1.0.1: resolved "https://registry.yarnpkg.com/array-find-index/-/array-find-index-1.0.2.tgz#df010aa1287e164bbda6f9723b0a96a1ec4187a1" integrity sha1-3wEKoSh+Fku9pvlyOwqWoexBh6E= -array-find@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/array-find/-/array-find-1.0.0.tgz#6c8e286d11ed768327f8e62ecee87353ca3e78b8" - integrity sha1-bI4obRHtdoMn+OYuzuhzU8o+eLg= - array-ify@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/array-ify/-/array-ify-1.0.0.tgz#9e528762b4a9066ad163a6962a364418e9626ece" @@ -2938,11 +2840,6 @@ assign-symbols@^1.0.0: resolved "https://registry.yarnpkg.com/assign-symbols/-/assign-symbols-1.0.0.tgz#59667f41fadd4f20ccbc2bb96b8d4f7f78ec0367" integrity sha1-WWZ/QfrdTyDMvCu5a41Pf3jsA2c= -ast-types-flow@0.0.7, ast-types-flow@^0.0.7: - version "0.0.7" - resolved "https://registry.yarnpkg.com/ast-types-flow/-/ast-types-flow-0.0.7.tgz#f70b735c6bca1a5c9c22d982c3e39e7feba3bdad" - integrity sha1-9wtzXGvKGlycItmCw+Oef+ujva0= - ast-types@0.9.6: version "0.9.6" resolved "https://registry.yarnpkg.com/ast-types/-/ast-types-0.9.6.tgz#102c9e9e9005d3e7e3829bf0c4fa24ee862ee9b9" @@ -3071,13 +2968,6 @@ aws4@^1.6.0, aws4@^1.8.0: resolved "https://registry.yarnpkg.com/aws4/-/aws4-1.8.0.tgz#f0e003d9ca9e7f59c7a508945d7b2ef9a04a542f" integrity sha512-ReZxvNHIOv88FlT7rxcXIIC0fPt4KZqZbOlivyWtXLt8ESx84zd3kMC6iK5jVeS2qt+g7ftS7ye4fi06X5rtRQ== -axobject-query@^2.0.2: - version "2.0.2" - resolved "https://registry.yarnpkg.com/axobject-query/-/axobject-query-2.0.2.tgz#ea187abe5b9002b377f925d8bf7d1c561adf38f9" - integrity sha512-MCeek8ZH7hKyO1rWUbKNQBbl4l2eY0ntk7OGi+q0RlafrCnfPxC06WZA+uebCfmYp4mNU9jRBP1AhGyf8+W3ww== - dependencies: - ast-types-flow "0.0.7" - babel-code-frame@^6.22.0, babel-code-frame@^6.26.0: version "6.26.0" resolved "https://registry.yarnpkg.com/babel-code-frame/-/babel-code-frame-6.26.0.tgz#63fd43f7dc1e3bb7ce35947db8fe369a3f58c74b" @@ -3097,18 +2987,6 @@ babel-eslint@^7.1.1: babel-types "^6.23.0" babylon "^6.17.0" -babel-eslint@^8.2.3: - version "8.2.6" - resolved "https://registry.yarnpkg.com/babel-eslint/-/babel-eslint-8.2.6.tgz#6270d0c73205628067c0f7ae1693a9e797acefd9" - integrity sha512-aCdHjhzcILdP8c9lej7hvXKvQieyRt20SF102SIGyY4cUIiw6UaAtK4j2o3dXX74jEmy0TJ0CEhv4fTIM3SzcA== - dependencies: - "@babel/code-frame" "7.0.0-beta.44" - "@babel/traverse" "7.0.0-beta.44" - "@babel/types" "7.0.0-beta.44" - babylon "7.0.0-beta.44" - eslint-scope "3.7.1" - eslint-visitor-keys "^1.0.0" - babel-jest@^24.7.1: version "24.7.1" resolved "https://registry.yarnpkg.com/babel-jest/-/babel-jest-24.7.1.tgz#73902c9ff15a7dfbdc9994b0b17fcefd96042178" @@ -3211,11 +3089,6 @@ babel-types@^6.23.0, babel-types@^6.26.0: lodash "^4.17.4" to-fast-properties "^1.0.3" -babylon@7.0.0-beta.44: - version "7.0.0-beta.44" - resolved "https://registry.yarnpkg.com/babylon/-/babylon-7.0.0-beta.44.tgz#89159e15e6e30c5096e22d738d8c0af8a0e8ca1d" - integrity sha512-5Hlm13BJVAioCHpImtFqNOF2H3ieTOHd0fmFGMxOJ9jgeFqeAwsv3u5P5cR7CSeFrkgHsT19DgFJkHV0/Mcd8g== - babylon@^6.17.0, babylon@^6.18.0: version "6.18.0" resolved "https://registry.yarnpkg.com/babylon/-/babylon-6.18.0.tgz#af2f3b88fa6f5c1e4c634d1a0f8eac4f55b395e3" @@ -4901,11 +4774,6 @@ crypto-random-string@^1.0.0: resolved "https://registry.yarnpkg.com/crypto-random-string/-/crypto-random-string-1.0.0.tgz#a230f64f568310e1498009940790ec99545bca7e" integrity sha1-ojD2T1aDEOFJgAmUB5DsmVRbyn4= -crypto@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/crypto/-/crypto-1.0.1.tgz#2af1b7cad8175d24c8a1b0778255794a21803037" - integrity sha512-VxBKmeNcqQdiUQUW2Tzq0t377b54N2bMtXO/qiLa+6eRRmmC4qT3D4OnTGoT/U6O9aklQ/jTwbOtRMTTY8G0Ig== - css-blank-pseudo@^0.1.4: version "0.1.4" resolved "https://registry.yarnpkg.com/css-blank-pseudo/-/css-blank-pseudo-0.1.4.tgz#dfdefd3254bf8a82027993674ccf35483bfcb3c5" @@ -5229,11 +5097,6 @@ cypress@3.1.2: url "0.11.0" yauzl "2.8.0" -damerau-levenshtein@^1.0.4: - version "1.0.4" - resolved "https://registry.yarnpkg.com/damerau-levenshtein/-/damerau-levenshtein-1.0.4.tgz#03191c432cb6eea168bb77f3a55ffdccb8978514" - integrity sha1-AxkcQyy27qFou3fzpV/9zLiXhRQ= - dargs@^4.0.1: version "4.1.0" resolved "https://registry.yarnpkg.com/dargs/-/dargs-4.1.0.tgz#03a9dbb4b5c2f139bf14ae53f0b8a2a6a86f4e17" @@ -5877,7 +5740,7 @@ email-validator@^2.0.4: resolved "https://registry.yarnpkg.com/email-validator/-/email-validator-2.0.4.tgz#b8dfaa5d0dae28f1b03c95881d904d4e40bfe7ed" integrity sha512-gYCwo7kh5S3IDyZPLZf6hSS0MnZT8QmJFqYvbqlDZSbwdZlY6QZWxJ4i/6UhITOJ4XzyI647Bm2MXKCLqnJ4nQ== -emoji-regex@^7.0.1, emoji-regex@^7.0.2: +emoji-regex@^7.0.1: version "7.0.3" resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-7.0.3.tgz#933a04052860c85e83c122479c4748a8e4c72156" integrity sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA== @@ -5910,15 +5773,6 @@ enhanced-resolve@^4.1.0: memory-fs "^0.4.0" tapable "^1.0.0" -enhanced-resolve@~0.9.0: - version "0.9.1" - resolved "https://registry.yarnpkg.com/enhanced-resolve/-/enhanced-resolve-0.9.1.tgz#4d6e689b3725f86090927ccc86cd9f1635b89e2e" - integrity sha1-TW5omzcl+GCQknzMhs2fFjW4ni4= - dependencies: - graceful-fs "^4.1.2" - memory-fs "^0.2.0" - tapable "^0.1.8" - entities@^1.1.1, entities@~1.1.1: version "1.1.2" resolved "https://registry.yarnpkg.com/entities/-/entities-1.1.2.tgz#bdfa735299664dfafd34529ed4f8522a275fea56" @@ -6097,13 +5951,6 @@ eslint-config-airbnb-base@^10.0.0: resolved "https://registry.yarnpkg.com/eslint-config-airbnb-base/-/eslint-config-airbnb-base-10.0.1.tgz#f17d4e52992c1d45d1b7713efbcd5ecd0e7e0506" integrity sha1-8X1OUpksHUXRt3E++81ezQ5+BQY= -eslint-config-airbnb-base@^12.1.0: - version "12.1.0" - resolved "https://registry.yarnpkg.com/eslint-config-airbnb-base/-/eslint-config-airbnb-base-12.1.0.tgz#386441e54a12ccd957b0a92564a4bafebd747944" - integrity sha512-/vjm0Px5ZCpmJqnjIzcFb9TKZrKWz0gnuG/7Gfkt0Db1ELJR51xkZth+t14rYdqWgX836XbuxtArbIHlVhbLBA== - dependencies: - eslint-restricted-globals "^0.1.1" - eslint-config-airbnb@^13.0.0: version "13.0.0" resolved "https://registry.yarnpkg.com/eslint-config-airbnb/-/eslint-config-airbnb-13.0.0.tgz#688d15d3c276c0c753ae538c92a44397d76ae46e" @@ -6111,20 +5958,6 @@ eslint-config-airbnb@^13.0.0: dependencies: eslint-config-airbnb-base "^10.0.0" -eslint-config-airbnb@^16.1.0: - version "16.1.0" - resolved "https://registry.yarnpkg.com/eslint-config-airbnb/-/eslint-config-airbnb-16.1.0.tgz#2546bfb02cc9fe92284bf1723ccf2e87bc45ca46" - integrity sha512-zLyOhVWhzB/jwbz7IPSbkUuj7X2ox4PHXTcZkEmDqTvd0baJmJyuxlFPDlZOE/Y5bC+HQRaEkT3FoHo9wIdRiw== - dependencies: - eslint-config-airbnb-base "^12.1.0" - -eslint-config-prettier@^2.9.0: - version "2.10.0" - resolved "https://registry.yarnpkg.com/eslint-config-prettier/-/eslint-config-prettier-2.10.0.tgz#ec07bc1d01f87d09f61d3840d112dc8a9791e30b" - integrity sha512-Mhl90VLucfBuhmcWBgbUNtgBiK955iCDK1+aHAz7QfDQF6wuzWZ6JjihZ3ejJoGlJWIuko7xLqNm8BA5uenKhA== - dependencies: - get-stdin "^5.0.1" - eslint-import-resolver-node@^0.3.2: version "0.3.2" resolved "https://registry.yarnpkg.com/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.2.tgz#58f15fb839b8d0576ca980413476aab2472db66a" @@ -6133,23 +5966,6 @@ eslint-import-resolver-node@^0.3.2: debug "^2.6.9" resolve "^1.5.0" -eslint-import-resolver-webpack@^0.9.0: - version "0.9.0" - resolved "https://registry.yarnpkg.com/eslint-import-resolver-webpack/-/eslint-import-resolver-webpack-0.9.0.tgz#231ce1578ad5124da5799f029bd33d28137623e3" - integrity sha1-IxzhV4rVEk2leZ8Cm9M9KBN2I+M= - dependencies: - array-find "^1.0.0" - debug "^2.6.8" - enhanced-resolve "~0.9.0" - find-root "^1.1.0" - has "^1.0.1" - interpret "^1.0.0" - is-absolute "^0.2.3" - lodash.get "^4.4.2" - node-libs-browser "^1.0.0 || ^2.0.0" - resolve "^1.4.0" - semver "^5.3.0" - eslint-module-utils@^2.4.0: version "2.4.0" resolved "https://registry.yarnpkg.com/eslint-module-utils/-/eslint-module-utils-2.4.0.tgz#8b93499e9b00eab80ccb6614e69f03678e84e09a" @@ -6175,20 +5991,6 @@ eslint-plugin-import@^2.11.0: read-pkg-up "^2.0.0" resolve "^1.10.0" -eslint-plugin-jsx-a11y@^6.0.3: - version "6.2.1" - resolved "https://registry.yarnpkg.com/eslint-plugin-jsx-a11y/-/eslint-plugin-jsx-a11y-6.2.1.tgz#4ebba9f339b600ff415ae4166e3e2e008831cf0c" - integrity sha512-cjN2ObWrRz0TTw7vEcGQrx+YltMvZoOEx4hWU8eEERDnBIU00OTq7Vr+jA7DFKxiwLNv4tTh5Pq2GUNEa8b6+w== - dependencies: - aria-query "^3.0.0" - array-includes "^3.0.3" - ast-types-flow "^0.0.7" - axobject-query "^2.0.2" - damerau-levenshtein "^1.0.4" - emoji-regex "^7.0.2" - has "^1.0.3" - jsx-ast-utils "^2.0.1" - eslint-plugin-react@^7.7.0: version "7.12.4" resolved "https://registry.yarnpkg.com/eslint-plugin-react/-/eslint-plugin-react-7.12.4.tgz#b1ecf26479d61aee650da612e425c53a99f48c8c" @@ -6202,24 +6004,6 @@ eslint-plugin-react@^7.7.0: prop-types "^15.6.2" resolve "^1.9.0" -eslint-plugin-redux-saga@^0.8.0: - version "0.8.0" - resolved "https://registry.yarnpkg.com/eslint-plugin-redux-saga/-/eslint-plugin-redux-saga-0.8.0.tgz#0c9d6b44183ded4b7bb470cdfad30244afbb1485" - integrity sha512-SXIk5Z5ggPa1618h67EKPFDP6L2/FiF9wQFZ0b9vfRlLECOVupWqoj4N9LUegBjhPgqjnHJKi9ZyXE9/vFWOjA== - -eslint-restricted-globals@^0.1.1: - version "0.1.1" - resolved "https://registry.yarnpkg.com/eslint-restricted-globals/-/eslint-restricted-globals-0.1.1.tgz#35f0d5cbc64c2e3ed62e93b4b1a7af05ba7ed4d7" - integrity sha1-NfDVy8ZMLj7WLpO0saevBbp+1Nc= - -eslint-scope@3.7.1: - version "3.7.1" - resolved "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-3.7.1.tgz#3d63c3edfda02e06e01a452ad88caacc7cdcb6e8" - integrity sha1-PWPD7f2gLgbgGkUq2IyqzHzctug= - dependencies: - esrecurse "^4.1.0" - estraverse "^4.1.1" - eslint-scope@^3.7.1: version "3.7.3" resolved "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-3.7.3.tgz#bb507200d3d17f60247636160b4826284b108535" @@ -6803,7 +6587,7 @@ find-cache-dir@^2.0.0: make-dir "^2.0.0" pkg-dir "^3.0.0" -find-root@^1.0.0, find-root@^1.1.0: +find-root@^1.0.0: version "1.1.0" resolved "https://registry.yarnpkg.com/find-root/-/find-root-1.1.0.tgz#abcfc8ba76f708c42a97b3d685b7e9450bfb9ce4" integrity sha512-NKfW6bec6GfKc0SGx1e07QZY9PE99u0Bft/0rzSD5k3sO/vwkVUpDUKVm5Gpp5Ue3YfShPFTX2070tDs5kB9Ng== @@ -7195,11 +6979,6 @@ get-stdin@^4.0.1: resolved "https://registry.yarnpkg.com/get-stdin/-/get-stdin-4.0.1.tgz#b968c6b0a04384324902e8bf1a5df32579a450fe" integrity sha1-uWjGsKBDhDJJAui/Gl3zJXmkUP4= -get-stdin@^5.0.1: - version "5.0.1" - resolved "https://registry.yarnpkg.com/get-stdin/-/get-stdin-5.0.1.tgz#122e161591e21ff4c52530305693f20e6393a398" - integrity sha1-Ei4WFZHiH/TFJTAwVpPyDmOTo5g= - get-stream@3.0.0, get-stream@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-3.0.0.tgz#8e943d1358dc37555054ecbe2edb05aa174ede14" @@ -8457,7 +8236,7 @@ into-stream@^3.1.0: from2 "^2.1.1" p-is-promise "^1.1.0" -invariant@^2.1.0, invariant@^2.1.1, invariant@^2.2.0, invariant@^2.2.1, invariant@^2.2.2, invariant@^2.2.4: +invariant@^2.1.0, invariant@^2.1.1, invariant@^2.2.1, invariant@^2.2.2, invariant@^2.2.4: version "2.2.4" resolved "https://registry.yarnpkg.com/invariant/-/invariant-2.2.4.tgz#610f3c92c9359ce1db616e538008d23ff35158e6" integrity sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA== @@ -8518,14 +8297,6 @@ is-absolute-url@^2.0.0: resolved "https://registry.yarnpkg.com/is-absolute-url/-/is-absolute-url-2.1.0.tgz#50530dfb84fcc9aa7dbe7852e83a37b93b9f2aa6" integrity sha1-UFMN+4T8yap9vnhS6Do3uTufKqY= -is-absolute@^0.2.3: - version "0.2.6" - resolved "https://registry.yarnpkg.com/is-absolute/-/is-absolute-0.2.6.tgz#20de69f3db942ef2d87b9c2da36f172235b1b5eb" - integrity sha1-IN5p89uULvLYe5wto28XIjWxtes= - dependencies: - is-relative "^0.2.1" - is-windows "^0.2.0" - is-absolute@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/is-absolute/-/is-absolute-1.0.0.tgz#395e1ae84b11f26ad1795e73c17378e48a301576" @@ -8870,13 +8641,6 @@ is-regex@^1.0.4: dependencies: has "^1.0.1" -is-relative@^0.2.1: - version "0.2.1" - resolved "https://registry.yarnpkg.com/is-relative/-/is-relative-0.2.1.tgz#d27f4c7d516d175fb610db84bbeef23c3bc97aa5" - integrity sha1-0n9MfVFtF1+2ENuEu+7yPDvJeqU= - dependencies: - is-unc-path "^0.1.1" - is-relative@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/is-relative/-/is-relative-1.0.0.tgz#a1bb6935ce8c5dba1e8b9754b9b2dcc020e2260d" @@ -8951,13 +8715,6 @@ is-typedarray@~1.0.0: resolved "https://registry.yarnpkg.com/is-typedarray/-/is-typedarray-1.0.0.tgz#e479c80858df0c1b11ddda6940f96011fcda4a9a" integrity sha1-5HnICFjfDBsR3dppQPlgEfzaSpo= -is-unc-path@^0.1.1: - version "0.1.2" - resolved "https://registry.yarnpkg.com/is-unc-path/-/is-unc-path-0.1.2.tgz#6ab053a72573c10250ff416a3814c35178af39b9" - integrity sha1-arBTpyVzwQJQ/0FqOBTDUXivObk= - dependencies: - unc-path-regex "^0.1.0" - is-unc-path@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/is-unc-path/-/is-unc-path-1.0.0.tgz#d731e8898ed090a12c352ad2eaed5095ad322c9d" @@ -8975,11 +8732,6 @@ is-whitespace@^0.3.0: resolved "https://registry.yarnpkg.com/is-whitespace/-/is-whitespace-0.3.0.tgz#1639ecb1be036aec69a54cbb401cfbed7114ab7f" integrity sha1-Fjnssb4DauxppUy7QBz77XEUq38= -is-windows@^0.2.0: - version "0.2.0" - resolved "https://registry.yarnpkg.com/is-windows/-/is-windows-0.2.0.tgz#de1aa6d63ea29dd248737b69f1ff8b8002d2108c" - integrity sha1-3hqm1j6indJIc3tp8f+LgALSEIw= - is-windows@^1.0.0, 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" @@ -9568,16 +9320,16 @@ js-levenshtein@^1.1.3: resolved "https://registry.yarnpkg.com/js-levenshtein/-/js-levenshtein-1.1.6.tgz#c6cee58eb3550372df8deb85fad5ce66ce01d59d" integrity sha512-X2BB11YZtrRqY4EnQcLX5Rh373zbK4alC1FW7D7MBhL2gtcC17cTnr6DmfHZeS0s2rTHjUTMMHfG7gO8SSdw+g== -js-tokens@^3.0.0, js-tokens@^3.0.2: - version "3.0.2" - resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-3.0.2.tgz#9866df395102130e38f7f996bceb65443209c25b" - integrity sha1-mGbfOVECEw449/mWvOtlRDIJwls= - "js-tokens@^3.0.0 || ^4.0.0", js-tokens@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-4.0.0.tgz#19203fb59991df98e3a287050d4647cdeaf32499" integrity sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ== +js-tokens@^3.0.2: + version "3.0.2" + resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-3.0.2.tgz#9866df395102130e38f7f996bceb65443209c25b" + integrity sha1-mGbfOVECEw449/mWvOtlRDIJwls= + js-yaml@3.x, js-yaml@^3.13.0, js-yaml@^3.13.1, js-yaml@^3.9.0, js-yaml@^3.9.1: version "3.13.1" resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-3.13.1.tgz#aff151b30bfdfa8e49e05da22e7415e9dfa37847" @@ -10640,7 +10392,7 @@ lodash@4.17.4: resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.4.tgz#78203a4d1c328ae1d86dca6460e369b57f4055ae" integrity sha1-eCA6TRwyiuHYbcpkYONptX9AVa4= -lodash@^4, lodash@^4.0.0, lodash@^4.13.1, lodash@^4.14.0, lodash@^4.15.0, lodash@^4.17.1, lodash@^4.17.10, lodash@^4.17.11, lodash@^4.17.3, lodash@^4.17.4, lodash@^4.17.5, lodash@^4.2.0, lodash@^4.2.1, lodash@^4.3.0, lodash@~4.17.10: +lodash@^4, lodash@^4.0.0, lodash@^4.13.1, lodash@^4.14.0, lodash@^4.15.0, lodash@^4.17.1, lodash@^4.17.10, lodash@^4.17.11, lodash@^4.17.3, lodash@^4.17.4, lodash@^4.17.5, lodash@^4.2.1, lodash@^4.3.0, lodash@~4.17.10: version "4.17.11" resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.11.tgz#b39ea6229ef607ecd89e2c8df12536891cac9b8d" integrity sha512-cQKh8igo5QUhZ7lg38DYWAxMvjSAKG0A8wGSVimP07SIUEK2UO+arSRKbRZWtelMtN5V0Hkwh5ryOto/SshYIg== @@ -10924,11 +10676,6 @@ memoize-one@^5.0.0: resolved "https://registry.yarnpkg.com/memoize-one/-/memoize-one-5.0.4.tgz#005928aced5c43d890a4dfab18ca908b0ec92cbc" integrity sha512-P0z5IeAH6qHHGkJIXWw0xC2HNEgkx/9uWWBQw64FJj3/ol14VYdfVGWWr0fXfjhhv3TKVIqUq65os6O4GUNksA== -memory-fs@^0.2.0: - version "0.2.0" - resolved "https://registry.yarnpkg.com/memory-fs/-/memory-fs-0.2.0.tgz#f2bb25368bc121e391c2520de92969caee0a0290" - integrity sha1-8rslNovBIeORwlIN6Slpyu4KApA= - memory-fs@^0.4.0, memory-fs@~0.4.1: version "0.4.1" resolved "https://registry.yarnpkg.com/memory-fs/-/memory-fs-0.4.1.tgz#3a9a20b8462523e447cfbc7e8bb80ed667bfc552" @@ -11535,7 +11282,7 @@ node-int64@^0.4.0: resolved "https://registry.yarnpkg.com/node-int64/-/node-int64-0.4.0.tgz#87a9065cdb355d3182d8f94ce11188b825c68a3b" integrity sha1-h6kGXNs1XTGC2PlM4RGIuCXGijs= -"node-libs-browser@^1.0.0 || ^2.0.0", node-libs-browser@^2.0.0: +node-libs-browser@^2.0.0: version "2.2.0" resolved "https://registry.yarnpkg.com/node-libs-browser/-/node-libs-browser-2.2.0.tgz#c72f60d9d46de08a940dedbb25f3ffa2f9bbaa77" integrity sha512-5MQunG/oyOaBdttrL40dA7bUfPORLRWMUJLQtMg7nluxUvk5XwnLdL9twQHFAjRx/y7mIMkLKT9++qPbbk6BZA== @@ -13661,11 +13408,6 @@ prepend-http@^2.0.0: resolved "https://registry.yarnpkg.com/prepend-http/-/prepend-http-2.0.0.tgz#e92434bfa5ea8c19f41cdfd401d741a3c819d897" integrity sha1-6SQ0v6XqjBn0HN/UAddBo8gZ2Jc= -prettier@^1.12.1: - version "1.17.0" - resolved "https://registry.yarnpkg.com/prettier/-/prettier-1.17.0.tgz#53b303676eed22cc14a9f0cec09b477b3026c008" - integrity sha512-sXe5lSt2WQlCbydGETgfm1YBShgOX4HxQkFPvbxkcwgDvGDeqVau8h+12+lmSVlP3rHPz0oavfddSZg/q+Szjw== - pretty-error@^2.0.2: version "2.1.1" resolved "https://registry.yarnpkg.com/pretty-error/-/pretty-error-2.1.1.tgz#5f4f87c8f91e5ae3f3ba87ab4cf5e03b1a17f1a3" @@ -14971,7 +14713,7 @@ resolve@1.1.7, resolve@1.1.x: resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.1.7.tgz#203114d82ad2c5ed9e8e0411b3932875e889e97b" integrity sha1-IDEU2CrSxe2ejgQRs5ModeiJ6Xs= -resolve@^1.1.6, resolve@^1.1.7, resolve@^1.10.0, resolve@^1.3.2, resolve@^1.4.0, resolve@^1.5.0, resolve@^1.8.1, resolve@^1.9.0: +resolve@^1.1.6, resolve@^1.1.7, resolve@^1.10.0, resolve@^1.3.2, resolve@^1.5.0, resolve@^1.8.1, resolve@^1.9.0: version "1.10.1" resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.10.1.tgz#664842ac960795bbe758221cdccda61fb64b5f18" integrity sha512-KuIe4mf++td/eFb6wkaPbMDnP6kObCaEtIDuHOUED6MNUo4K670KZUHuuvYPZDxNF0WVLw49n06M2m2dXphEzA== @@ -16530,11 +16272,6 @@ table@4.0.2: slice-ansi "1.0.0" string-width "^2.1.1" -tapable@^0.1.8: - version "0.1.10" - resolved "https://registry.yarnpkg.com/tapable/-/tapable-0.1.10.tgz#29c35707c2b70e50d07482b5d202e8ed446dafd4" - integrity sha1-KcNXB8K3DlDQdIK10gLo7URtr9Q= - tapable@^1.0.0, tapable@^1.1.0: version "1.1.3" resolved "https://registry.yarnpkg.com/tapable/-/tapable-1.1.3.tgz#a1fccc06b58db61fd7a45da2da44f5f3a3e67ba2" @@ -17081,7 +16818,7 @@ unbzip2-stream@^1.0.9: buffer "^5.2.1" through "^2.3.8" -unc-path-regex@^0.1.0, unc-path-regex@^0.1.2: +unc-path-regex@^0.1.2: version "0.1.2" resolved "https://registry.yarnpkg.com/unc-path-regex/-/unc-path-regex-0.1.2.tgz#e73dd3d7b0d7c5ed86fbac6b0ae7d8c6a69d50fa" integrity sha1-5z3T17DXxe2G+6xrCufYxqadUPo= @@ -17457,7 +17194,7 @@ webpack-sources@^1.1.0, webpack-sources@^1.3.0: source-list-map "^2.0.0" source-map "~0.6.1" -webpack@^4.29.6, webpack@^4.6.0: +webpack@^4.29.6: version "4.30.0" resolved "https://registry.yarnpkg.com/webpack/-/webpack-4.30.0.tgz#aca76ef75630a22c49fcc235b39b4c57591d33a9" integrity sha512-4hgvO2YbAFUhyTdlR4FNyt2+YaYBYHavyzjCMbZzgglo02rlKi/pcsEzwCuCpsn1ryzIl1cq/u8ArIKu8JBYMg==