From d32aedadff112fdde7e3dd5e257bfc903b1c0286 Mon Sep 17 00:00:00 2001 From: evilebottnawi Date: Sat, 10 Oct 2020 21:07:52 +0300 Subject: [PATCH 01/21] docs: update changelog --- CHANGELOG.md | 32 ++++++++++++++++++++++++++++++++ 1 file changed, 32 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 28605e4b3ba..b9cecac5a2c 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,35 @@ +# [4.0.0](https://github.com/webpack/webpack-cli/compare/webpack-cli@4.0.0-rc.1...webpack-cli@4.0.0) (2020-10-10) + +### Bug Fixes + +- add compilation lifecycle in watch instance ([#1903](https://github.com/webpack/webpack-cli/issues/1903)) ([02b6d21](https://github.com/webpack/webpack-cli/commit/02b6d21eaa20166a7ed37816de716b8fc22b756a)) +- cleanup `package-utils` package ([#1822](https://github.com/webpack/webpack-cli/issues/1822)) ([fd5b92b](https://github.com/webpack/webpack-cli/commit/fd5b92b3cd40361daec5bf4486e455a41f4c9738)) +- cli-executer supplies args further up ([#1904](https://github.com/webpack/webpack-cli/issues/1904)) ([097564a](https://github.com/webpack/webpack-cli/commit/097564a851b36b63e0a6bf88144997ef65aa057a)) +- exit code for validation errors ([59f6303](https://github.com/webpack/webpack-cli/commit/59f63037fcbdbb8934b578b9adf5725bc4ae1235)) +- exit process in case of schema errors ([71e89b4](https://github.com/webpack/webpack-cli/commit/71e89b4092d953ea587cc4f606451ab78cbcdb93)) + +### Features + +- assign config paths in build dependencies in cache config ([#1900](https://github.com/webpack/webpack-cli/issues/1900)) ([7e90f11](https://github.com/webpack/webpack-cli/commit/7e90f110b119f36ef9def4f66cf4e17ccf1438cd)) + +# [4.0.0-rc.1](https://github.com/webpack/webpack-cli/compare/webpack-cli@4.0.0-beta.8...webpack-cli@4.0.0-rc.1) (2020-10-06) + +### Bug Fixes + +- cache issue ([#1862](https://github.com/webpack/webpack-cli/issues/1862)) ([305c188](https://github.com/webpack/webpack-cli/commit/305c18816ca6c4275c2755ae6b48d90a8cc85bd1)) +- check webpack installation before running cli ([#1827](https://github.com/webpack/webpack-cli/issues/1827)) ([be509fa](https://github.com/webpack/webpack-cli/commit/be509fac9a03e202e062229484bb10af7876968f)) +- defer setting default entry to core ([#1856](https://github.com/webpack/webpack-cli/issues/1856)) ([5da1f81](https://github.com/webpack/webpack-cli/commit/5da1f81ed101b024249c5cd4e043ec1397338782)) +- log error if --config-name is used without multiple configs ([#1874](https://github.com/webpack/webpack-cli/issues/1874)) ([f653409](https://github.com/webpack/webpack-cli/commit/f653409e3468849970dab354f84c5213da01122d)) +- mode behaviour ([#1824](https://github.com/webpack/webpack-cli/issues/1824)) ([9e9c70b](https://github.com/webpack/webpack-cli/commit/9e9c70bc1f30d90cebd91341e865abb46f9c269e)) +- only set output path on passing flag ([#1855](https://github.com/webpack/webpack-cli/issues/1855)) ([2f36b9d](https://github.com/webpack/webpack-cli/commit/2f36b9d858faedaf3a6adca10a529d9837c0dd24)) +- show warning if bail and watch are used together ([#1804](https://github.com/webpack/webpack-cli/issues/1804)) ([6140b24](https://github.com/webpack/webpack-cli/commit/6140b24d08990aa807070f105d46a92e18855c9e)) +- warning should not result in non-zero exit code ([#1872](https://github.com/webpack/webpack-cli/issues/1872)) ([ae9539d](https://github.com/webpack/webpack-cli/commit/ae9539d20eab2172118f61f7a9ba7e26541e16a2)) + +### Features + +- add --analyze flag ([#1853](https://github.com/webpack/webpack-cli/issues/1853)) ([e6d210a](https://github.com/webpack/webpack-cli/commit/e6d210a66b899023b1f39bb33cce7a9b83a5b803)) +- allow users to store stats as json to a file ([#1835](https://github.com/webpack/webpack-cli/issues/1835)) ([3907517](https://github.com/webpack/webpack-cli/commit/3907517b6afff46ddab51e32ada0357fc9763117)) + # 4.0.0-beta.9 (2020-09-19) From 5ef1e7b074390406b76cb3e25dd90f045e1bd8a2 Mon Sep 17 00:00:00 2001 From: Alexander Krasnoyarov Date: Sun, 11 Oct 2020 22:56:30 +0300 Subject: [PATCH 02/21] fix: avoid unnecessary stringify (#1920) --- .github/workflows/nodejs.yml | 2 +- .gitignore | 1 + packages/webpack-cli/lib/utils/Compiler.js | 59 +++++++++------------- test/build-errors/errors.test.js | 54 ++++++++++++++++++++ test/build-errors/src/index.js | 3 ++ test/build-warnings/src/index.js | 9 ++++ test/build-warnings/warnings.test.js | 54 ++++++++++++++++++++ test/json/json.test.js | 55 +++++++++----------- 8 files changed, 170 insertions(+), 67 deletions(-) create mode 100644 test/build-errors/errors.test.js create mode 100644 test/build-errors/src/index.js create mode 100644 test/build-warnings/src/index.js create mode 100644 test/build-warnings/warnings.test.js diff --git a/.github/workflows/nodejs.yml b/.github/workflows/nodejs.yml index ee03f5b7f06..a5ce291b14d 100644 --- a/.github/workflows/nodejs.yml +++ b/.github/workflows/nodejs.yml @@ -57,7 +57,7 @@ jobs: matrix: os: [ubuntu-latest, windows-latest, macos-latest] node-version: [10.x, 12.x, 14.x] - webpack-version: [next, latest] + webpack-version: [webpack-4, latest] steps: - uses: actions/checkout@v2 diff --git a/.gitignore b/.gitignore index efdfb260487..5b242bf613f 100644 --- a/.gitignore +++ b/.gitignore @@ -65,3 +65,4 @@ test/**/**/binary/** test/**/dist test/**/**/dist test/**/**/**/dist +test/**/stats.json diff --git a/packages/webpack-cli/lib/utils/Compiler.js b/packages/webpack-cli/lib/utils/Compiler.js index 6c46b47c7b4..256d40923bf 100644 --- a/packages/webpack-cli/lib/utils/Compiler.js +++ b/packages/webpack-cli/lib/utils/Compiler.js @@ -55,49 +55,38 @@ class Compiler { }); } - generateOutput(outputOptions, stats) { - logger.raw(`${stats.toString(this.compilerOptions.stats)}\n`); - if (outputOptions.watch) { - logger.info('watching files for updates...'); - } - } - - compilerCallback(err, stats, lastHash, options, outputOptions) { - const statsErrors = []; - - if (!outputOptions.watch || err) { - // Do not keep cache anymore - this.compiler.purgeInputFileSystem(); - } - if (err) { + compilerCallback(error, stats, lastHash, options, outputOptions) { + if (error) { lastHash = null; - logger.error(err.stack || err); + logger.error(error); process.exit(1); } + if (!outputOptions.watch && stats.hasErrors()) { process.exitCode = 1; } - if (outputOptions.json === true) { - process.stdout.write(JSON.stringify(stats.toJson(outputOptions), null, 2) + '\n'); - } else if (stats.hash !== lastHash) { + + if (stats.hash !== lastHash) { lastHash = stats.hash; - if (stats.compilation && stats.compilation.errors.length !== 0) { - const errors = stats.compilation.errors; - errors.forEach((statErr) => { - const errLoc = statErr.module ? statErr.module.resource : null; - statsErrors.push({ name: statErr.message, loc: errLoc }); - }); - } - const JSONStats = JSON.stringify(stats.toJson(outputOptions), null, 2); - if (typeof outputOptions.json === 'string') { + + if (outputOptions.json === true) { + process.stdout.write(JSON.stringify(stats.toJson(outputOptions), null, 2) + '\n'); + } else if (typeof outputOptions.json === 'string') { + const JSONStats = JSON.stringify(stats.toJson(outputOptions), null, 2); + try { writeFileSync(outputOptions.json, JSONStats); logger.success(`stats are successfully stored as json to ${outputOptions.json}`); } catch (err) { logger.error(err); } + } else { + logger.raw(`${stats.toString(this.compilerOptions.stats)}\n`); + } + + if (outputOptions.watch) { + logger.info('watching files for updates...'); } - return this.generateOutput(outputOptions, stats, statsErrors); } } @@ -107,12 +96,14 @@ class Compiler { await this.compiler.run((err, stats) => { if (this.compiler.close) { this.compiler.close(() => { - const content = this.compilerCallback(err, stats, lastHash, options, outputOptions); - resolve(content); + this.compilerCallback(err, stats, lastHash, options, outputOptions); + + resolve(); }); } else { - const content = this.compilerCallback(err, stats, lastHash, options, outputOptions); - resolve(content); + this.compilerCallback(err, stats, lastHash, options, outputOptions); + + resolve(); } }); }); @@ -120,7 +111,7 @@ class Compiler { async invokeWatchInstance(lastHash, options, outputOptions, watchOptions) { return this.compiler.watch(watchOptions, (err, stats) => { - return this.compilerCallback(err, stats, lastHash, options, outputOptions); + this.compilerCallback(err, stats, lastHash, options, outputOptions); }); } diff --git a/test/build-errors/errors.test.js b/test/build-errors/errors.test.js new file mode 100644 index 00000000000..23d13c1fe35 --- /dev/null +++ b/test/build-errors/errors.test.js @@ -0,0 +1,54 @@ +'use strict'; +const { run } = require('../utils/test-utils'); +const { stat, readFile } = require('fs'); +const { resolve } = require('path'); + +describe('errors', () => { + it('should output by default', () => { + const { stdout, exitCode } = run(__dirname); + + expect(stdout).toMatch(/ERROR in/); + expect(stdout).toMatch(/Error: Can't resolve/); + expect(exitCode).toBe(1); + }); + + it('should output JSON with the "json" flag', () => { + const { stdout, exitCode } = run(__dirname, ['--json']); + + expect(() => JSON.parse(stdout)).not.toThrow(); + expect(exitCode).toBe(1); + + const json = JSON.parse(stdout); + + expect(json['hash']).toBeDefined(); + expect(json['errors']).toHaveLength(1); + // `message` for `webpack@5` + expect(json['errors'][0].message ? json['errors'][0].message : json['errors'][0]).toMatch(/Can't resolve/); + }); + + it('should store json to a file', (done) => { + const { stdout, exitCode } = run(__dirname, ['--json', 'stats.json']); + + expect(stdout).toContain('stats are successfully stored as json to stats.json'); + expect(exitCode).toBe(1); + + stat(resolve(__dirname, './stats.json'), (err, stats) => { + expect(err).toBe(null); + expect(stats.isFile()).toBe(true); + + readFile(resolve(__dirname, 'stats.json'), 'utf-8', (error, data) => { + expect(error).toBe(null); + expect(() => JSON.parse(data)).not.toThrow(); + + const json = JSON.parse(data); + + expect(json['hash']).toBeDefined(); + expect(json['errors']).toHaveLength(1); + // `message` for `webpack@5` + expect(json['errors'][0].message ? json['errors'][0].message : json['errors'][0]).toMatch(/Can't resolve/); + + done(); + }); + }); + }); +}); diff --git a/test/build-errors/src/index.js b/test/build-errors/src/index.js new file mode 100644 index 00000000000..a75a3dc05f9 --- /dev/null +++ b/test/build-errors/src/index.js @@ -0,0 +1,3 @@ +import unknown from './unknown.mjs'; + +export default unknown diff --git a/test/build-warnings/src/index.js b/test/build-warnings/src/index.js new file mode 100644 index 00000000000..17d6eb1b468 --- /dev/null +++ b/test/build-warnings/src/index.js @@ -0,0 +1,9 @@ +let obj; + +try { + obj = require('unknown'); +} catch (e) { + // Ignore +} + +export default obj diff --git a/test/build-warnings/warnings.test.js b/test/build-warnings/warnings.test.js new file mode 100644 index 00000000000..6b880996301 --- /dev/null +++ b/test/build-warnings/warnings.test.js @@ -0,0 +1,54 @@ +'use strict'; +const { run } = require('../utils/test-utils'); +const { stat, readFile } = require('fs'); +const { resolve } = require('path'); + +describe('warnings', () => { + it('should output by default', () => { + const { stdout, exitCode } = run(__dirname); + + expect(stdout).toMatch(/WARNING in/); + expect(stdout).toMatch(/Error: Can't resolve/); + expect(exitCode).toBe(0); + }); + + it('should output JSON with the "json" flag', () => { + const { stdout, exitCode } = run(__dirname, ['--json']); + + expect(() => JSON.parse(stdout)).not.toThrow(); + expect(exitCode).toBe(0); + + const json = JSON.parse(stdout); + + expect(json['hash']).toBeDefined(); + expect(json['warnings']).toHaveLength(1); + // `message` for `webpack@5` + expect(json['warnings'][0].message ? json['warnings'][0].message : json['warnings'][0]).toMatch(/Can't resolve/); + }); + + it('should store json to a file', (done) => { + const { stdout, exitCode } = run(__dirname, ['--json', 'stats.json']); + + expect(stdout).toContain('stats are successfully stored as json to stats.json'); + expect(exitCode).toBe(0); + + stat(resolve(__dirname, './stats.json'), (err, stats) => { + expect(err).toBe(null); + expect(stats.isFile()).toBe(true); + + readFile(resolve(__dirname, 'stats.json'), 'utf-8', (error, data) => { + expect(error).toBe(null); + expect(() => JSON.parse(data)).not.toThrow(); + + const json = JSON.parse(data); + + expect(json['hash']).toBeDefined(); + expect(json['warnings']).toHaveLength(1); + // `message` for `webpack@5` + expect(json['warnings'][0].message ? json['warnings'][0].message : json['warnings'][0]).toMatch(/Can't resolve/); + + done(); + }); + }); + }); +}); diff --git a/test/json/json.test.js b/test/json/json.test.js index 699bcc851db..a248412bc0d 100644 --- a/test/json/json.test.js +++ b/test/json/json.test.js @@ -5,49 +5,40 @@ const { resolve } = require('path'); describe('json flag', () => { it('should return valid json', () => { - const { stdout } = run(__dirname, ['--json']); - - // helper function to check if JSON is valid - const parseJson = () => { - return JSON.parse(stdout); - }; - // check the JSON is valid. - expect(JSON.parse(stdout)['hash']).toBeTruthy(); - expect(JSON.parse(stdout)['version']).toBeTruthy(); - expect(JSON.parse(stdout)['time']).toBeTruthy(); - expect(parseJson).not.toThrow(); + const { stdout, exitCode } = run(__dirname, ['--json']); + + expect(() => JSON.parse(stdout)).not.toThrow(); + expect(exitCode).toBe(0); + + expect(JSON.parse(stdout)['hash']).toBeDefined(); }); it('should store json to a file', (done) => { - const { stdout } = run(__dirname, ['--json', 'stats.json']); + const { stdout, exitCode } = run(__dirname, ['--json', 'stats.json']); expect(stdout).toContain('stats are successfully stored as json to stats.json'); + expect(exitCode).toBe(0); + stat(resolve(__dirname, './stats.json'), (err, stats) => { expect(err).toBe(null); expect(stats.isFile()).toBe(true); - done(); - }); - readFile(resolve(__dirname, 'stats.json'), 'utf-8', (err, data) => { - expect(err).toBe(null); - expect(JSON.parse(data)['hash']).toBeTruthy(); - expect(JSON.parse(data)['version']).toBeTruthy(); - expect(JSON.parse(data)['time']).toBeTruthy(); - expect(() => JSON.parse(data)).not.toThrow(); - done(); + + readFile(resolve(__dirname, 'stats.json'), 'utf-8', (err, data) => { + expect(err).toBe(null); + expect(JSON.parse(data)['hash']).toBeTruthy(); + expect(JSON.parse(data)['version']).toBeTruthy(); + expect(JSON.parse(data)['time']).toBeTruthy(); + expect(() => JSON.parse(data)).not.toThrow(); + done(); + }); }); }); it('should return valid json with -j alias', () => { - const { stdout } = run(__dirname, ['-j']); - - // helper function to check if JSON is valid - const parseJson = () => { - return JSON.parse(stdout); - }; - // check the JSON is valid. - expect(JSON.parse(stdout)['hash']).toBeTruthy(); - expect(JSON.parse(stdout)['version']).toBeTruthy(); - expect(JSON.parse(stdout)['time']).toBeTruthy(); - expect(parseJson).not.toThrow(); + const { stdout, exitCode } = run(__dirname, ['-j']); + expect(() => JSON.parse(stdout)).not.toThrow(); + expect(exitCode).toBe(0); + + expect(JSON.parse(stdout)['hash']).toBeDefined(); }); }); From 4bfde10f69051f81b3ee89686c689b2cb4d41c1e Mon Sep 17 00:00:00 2001 From: Alexander Krasnoyarov Date: Mon, 12 Oct 2020 14:53:27 +0300 Subject: [PATCH 03/21] tests: relative configs (#1927) --- test/config-lookup/relative/a.js | 1 + .../relative/basic-config.test.js | 22 +++++++++++++++++++ test/config-lookup/relative/webpack.config.js | 9 ++++++++ 3 files changed, 32 insertions(+) create mode 100644 test/config-lookup/relative/a.js create mode 100644 test/config-lookup/relative/basic-config.test.js create mode 100644 test/config-lookup/relative/webpack.config.js diff --git a/test/config-lookup/relative/a.js b/test/config-lookup/relative/a.js new file mode 100644 index 00000000000..735d820f253 --- /dev/null +++ b/test/config-lookup/relative/a.js @@ -0,0 +1 @@ +module.exports = 'a.js'; diff --git a/test/config-lookup/relative/basic-config.test.js b/test/config-lookup/relative/basic-config.test.js new file mode 100644 index 00000000000..ad568ba330d --- /dev/null +++ b/test/config-lookup/relative/basic-config.test.js @@ -0,0 +1,22 @@ +'use strict'; +const { existsSync } = require('fs'); +const { resolve } = require('path'); +const { run } = require('../../utils/test-utils'); + +describe('relative path to config', () => { + it('should work', () => { + const { stdout, stderr, exitCode } = run(__dirname, ['-c', 'webpack.config.js', '--output-path', './binary/a'], false); + expect(stderr).toBeFalsy(); + expect(stdout).toBeTruthy(); + expect(exitCode).toBe(0); + expect(existsSync(resolve(__dirname, './binary/a/a.bundle.js'))).toBeTruthy(); + }); + + it('should work #2', () => { + const { stdout, stderr, exitCode } = run(__dirname, ['-c', './webpack.config.js', '--output-path', './binary/b'], false); + expect(stderr).toBeFalsy(); + expect(stdout).toBeTruthy(); + expect(exitCode).toBe(0); + expect(existsSync(resolve(__dirname, './binary/b/a.bundle.js'))).toBeTruthy(); + }); +}); diff --git a/test/config-lookup/relative/webpack.config.js b/test/config-lookup/relative/webpack.config.js new file mode 100644 index 00000000000..b58f8a91f0d --- /dev/null +++ b/test/config-lookup/relative/webpack.config.js @@ -0,0 +1,9 @@ +const { resolve } = require('path'); + +module.exports = { + entry: './a.js', + output: { + path: resolve(__dirname, 'binary'), + filename: 'a.bundle.js', + }, +}; From 6f95b267bf6a3a3e71360f4de176a4ebbec3afa1 Mon Sep 17 00:00:00 2001 From: Alexander Krasnoyarov Date: Mon, 12 Oct 2020 19:56:24 +0300 Subject: [PATCH 04/21] fix: support any config name (#1926) --- packages/webpack-cli/lib/groups/ConfigGroup.js | 17 +++-------------- test/config-lookup/custom-name/a.js | 1 + .../config-lookup/custom-name/config.webpack.js | 9 +++++++++ .../custom-name/custom-name.test.js | 14 ++++++++++++++ 4 files changed, 27 insertions(+), 14 deletions(-) create mode 100644 test/config-lookup/custom-name/a.js create mode 100644 test/config-lookup/custom-name/config.webpack.js create mode 100644 test/config-lookup/custom-name/custom-name.test.js diff --git a/packages/webpack-cli/lib/groups/ConfigGroup.js b/packages/webpack-cli/lib/groups/ConfigGroup.js index 233ceebc555..ae979207d03 100644 --- a/packages/webpack-cli/lib/groups/ConfigGroup.js +++ b/packages/webpack-cli/lib/groups/ConfigGroup.js @@ -1,5 +1,5 @@ const { existsSync } = require('fs'); -const { resolve, sep, dirname, extname } = require('path'); +const { resolve, extname } = require('path'); const webpackMerge = require('webpack-merge'); const { extensions, jsVariants } = require('interpret'); const rechoir = require('rechoir'); @@ -149,8 +149,9 @@ const finalize = async (moduleObj, args) => { if (!moduleObj) { return newOptionsObject; } - const configPath = moduleObj.path; + const configOptions = moduleObj.content; + if (typeof configOptions === 'function') { // when config is a function, pass the env from args to the config function let formattedEnv; @@ -187,18 +188,6 @@ const finalize = async (moduleObj, args) => { newOptionsObject['options'] = configOptions; } - if (configOptions && configPath.includes('.webpack')) { - const currentPath = configPath; - const parentContext = dirname(currentPath).split(sep).slice(0, -1).join(sep); - if (Array.isArray(configOptions)) { - configOptions.forEach((config) => { - config.context = config.context || parentContext; - }); - } else { - configOptions.context = configOptions.context || parentContext; - } - newOptionsObject['options'] = configOptions; - } return newOptionsObject; }; diff --git a/test/config-lookup/custom-name/a.js b/test/config-lookup/custom-name/a.js new file mode 100644 index 00000000000..2651774ae60 --- /dev/null +++ b/test/config-lookup/custom-name/a.js @@ -0,0 +1 @@ +module.exports = 'foo'; diff --git a/test/config-lookup/custom-name/config.webpack.js b/test/config-lookup/custom-name/config.webpack.js new file mode 100644 index 00000000000..9b526a493e2 --- /dev/null +++ b/test/config-lookup/custom-name/config.webpack.js @@ -0,0 +1,9 @@ +const { resolve } = require('path'); + +module.exports = { + entry: resolve('./a.js'), + output: { + path: resolve(__dirname, 'binary'), + filename: 'a.bundle.js', + }, +}; diff --git a/test/config-lookup/custom-name/custom-name.test.js b/test/config-lookup/custom-name/custom-name.test.js new file mode 100644 index 00000000000..66ecfe8a93a --- /dev/null +++ b/test/config-lookup/custom-name/custom-name.test.js @@ -0,0 +1,14 @@ +'use strict'; +const { existsSync } = require('fs'); +const { resolve } = require('path'); +const { run } = require('../../utils/test-utils'); + +describe('custom config file', () => { + it('should work', () => { + const { stdout, stderr, exitCode } = run(__dirname, ['--config', resolve(__dirname, 'config.webpack.js')], false); + expect(stderr).toBeFalsy(); + expect(stdout).toBeTruthy(); + expect(exitCode).toBe(0); + expect(existsSync(resolve(__dirname, './binary/a.bundle.js'))).toBeTruthy(); + }); +}); From 258219a3bb606b228636e6373a3d20413c1f660e Mon Sep 17 00:00:00 2001 From: Alexander Krasnoyarov Date: Tue, 13 Oct 2020 15:57:12 +0300 Subject: [PATCH 05/21] fix: watch mode and options (#1931) --- package.json | 2 +- packages/webpack-cli/lib/utils/Compiler.js | 229 ++-- .../lib/utils/warnings/bailAndWatchWarning.js | 14 - test/analyze/analyze-flag.test.js | 19 +- test/bail/bail-and-watch-warning.test.js | 26 - ...ig.js => bail-and-watch-webpack.config.js} | 0 test/bail/bail-multi-webpack.config.js | 19 + ...bpack.config.js => bail-webpack.config.js} | 0 test/bail/bail.test.js | 61 ++ test/bail/multi-webpack.config.js | 4 +- test/bail/no-bail-webpack.config.js | 4 + test/bail/watch-webpack.config.js | 5 + test/config-name/config-name.test.js | 15 +- test/config-name/webpack.config.js | 3 + test/core-flags/cache-flags.test.js | 1 - test/utils/test-utils.js | 36 +- test/watch/watch-flag.test.js | 44 +- yarn.lock | 980 ++++++------------ 18 files changed, 550 insertions(+), 912 deletions(-) delete mode 100644 packages/webpack-cli/lib/utils/warnings/bailAndWatchWarning.js delete mode 100644 test/bail/bail-and-watch-warning.test.js rename test/bail/{single-webpack.config.js => bail-and-watch-webpack.config.js} (100%) create mode 100644 test/bail/bail-multi-webpack.config.js rename test/bail/{third-webpack.config.js => bail-webpack.config.js} (100%) create mode 100644 test/bail/bail.test.js create mode 100644 test/bail/no-bail-webpack.config.js create mode 100644 test/bail/watch-webpack.config.js diff --git a/package.json b/package.json index 89dd8b10658..4fca4ff154d 100644 --- a/package.json +++ b/package.json @@ -89,7 +89,7 @@ "strip-ansi": "^6.0.0", "ts-jest": "^25.5.1", "typescript": "^3.9.7", - "webpack": "^4.44.2", + "webpack": "^5.0.0", "webpack-bundle-analyzer": "^3.9.0", "webpack-dev-server": "3.10.3", "yeoman-test": "^2.7.0" diff --git a/packages/webpack-cli/lib/utils/Compiler.js b/packages/webpack-cli/lib/utils/Compiler.js index 256d40923bf..d17579d5034 100644 --- a/packages/webpack-cli/lib/utils/Compiler.js +++ b/packages/webpack-cli/lib/utils/Compiler.js @@ -2,134 +2,29 @@ const { packageExists } = require('./package-exists'); const webpack = packageExists('webpack') ? require('webpack') : undefined; const logger = require('./logger'); const { writeFileSync } = require('fs'); -const bailAndWatchWarning = require('./warnings/bailAndWatchWarning'); - -const assignWatchHooks = (compiler) => { - compiler.hooks.watchRun.tap('watchInfo', (compilation) => { - const compilationName = compilation.name || ''; - logger.raw(`\nCompilation ${compilationName} starting…\n`); - }); - compiler.hooks.done.tap('watchInfo', (compilation) => { - const compilationName = compilation.name || ''; - logger.raw(`\nCompilation ${compilationName} finished\n`); - }); -}; - -const watchInfo = (compiler) => { - if (compiler.compilers) { - compiler.compilers.map((comp) => { - assignWatchHooks(comp); - }); - } else { - assignWatchHooks(compiler); - } -}; class Compiler { constructor() { this.compilerOptions = {}; } - setUpHookForCompilation(compilation, outputOptions, options) { - const { ProgressPlugin } = webpack; - let progressPluginExists; - if (options.plugins) { - progressPluginExists = options.plugins.find((e) => e instanceof ProgressPlugin); - } - - compilation.hooks.beforeRun.tap('webpackProgress', () => { - if (outputOptions.progress) { - if (!progressPluginExists) { - new ProgressPlugin().apply(compilation); - } else { - if (!progressPluginExists.handler) { - options.plugins = options.plugins.filter((e) => e !== progressPluginExists); - Object.keys(progressPluginExists).map((opt) => { - ProgressPlugin.defaultOptions[opt] = progressPluginExists[opt]; - }); - new ProgressPlugin().apply(compilation); - } else { - progressPluginExists.apply(compilation); - } - } - } - }); - } - - compilerCallback(error, stats, lastHash, options, outputOptions) { - if (error) { - lastHash = null; - logger.error(error); - process.exit(1); - } - - if (!outputOptions.watch && stats.hasErrors()) { - process.exitCode = 1; - } - - if (stats.hash !== lastHash) { - lastHash = stats.hash; - - if (outputOptions.json === true) { - process.stdout.write(JSON.stringify(stats.toJson(outputOptions), null, 2) + '\n'); - } else if (typeof outputOptions.json === 'string') { - const JSONStats = JSON.stringify(stats.toJson(outputOptions), null, 2); - - try { - writeFileSync(outputOptions.json, JSONStats); - logger.success(`stats are successfully stored as json to ${outputOptions.json}`); - } catch (err) { - logger.error(err); - } - } else { - logger.raw(`${stats.toString(this.compilerOptions.stats)}\n`); - } - - if (outputOptions.watch) { - logger.info('watching files for updates...'); - } - } - } - - async invokeCompilerInstance(lastHash, options, outputOptions) { - // eslint-disable-next-line no-async-promise-executor - return new Promise(async (resolve) => { - await this.compiler.run((err, stats) => { - if (this.compiler.close) { - this.compiler.close(() => { - this.compilerCallback(err, stats, lastHash, options, outputOptions); - - resolve(); - }); - } else { - this.compilerCallback(err, stats, lastHash, options, outputOptions); - - resolve(); - } - }); - }); - } - - async invokeWatchInstance(lastHash, options, outputOptions, watchOptions) { - return this.compiler.watch(watchOptions, (err, stats) => { - this.compilerCallback(err, stats, lastHash, options, outputOptions); - }); - } async createCompiler(options) { try { this.compiler = await webpack(options); this.compilerOptions = options; - } catch (err) { + } catch (error) { // https://github.com/webpack/webpack/blob/master/lib/index.js#L267 // https://github.com/webpack/webpack/blob/v4.44.2/lib/webpack.js#L90 const ValidationError = webpack.ValidationError ? webpack.ValidationError : webpack.WebpackOptionsValidationError; + // In case of schema errors print and exit process // For webpack@4 and webpack@5 - if (err instanceof ValidationError) { - logger.error(`\n${err.message}`); + if (error instanceof ValidationError) { + logger.error(error.message); } else { - logger.error(`\n${err}`); + logger.error(error); } + process.exit(2); } } @@ -140,39 +35,115 @@ class Compiler { async webpackInstance(opts) { const { outputOptions, options } = opts; - const lastHash = null; - - const { ProgressPlugin } = webpack; - if (options.plugins) { - options.plugins = options.plugins.filter((e) => e instanceof ProgressPlugin); - } if (outputOptions.interactive) { const interactive = require('./interactive'); + return interactive(options, outputOptions); } - if (this.compiler.compilers) { - this.compiler.compilers.forEach((comp, idx) => { - bailAndWatchWarning(comp); //warn the user if bail and watch both are used together - this.setUpHookForCompilation(comp, outputOptions, options[idx]); + + const compilers = this.compiler.compilers ? this.compiler.compilers : [this.compiler]; + const isWatchMode = Boolean(compilers.find((compiler) => compiler.options.watch)); + const isRawOutput = typeof outputOptions.json === 'undefined'; + + if (isRawOutput) { + for (const compiler of compilers) { + if (outputOptions.progress) { + const { ProgressPlugin } = webpack; + + let progressPluginExists; + + if (compiler.options.plugins) { + progressPluginExists = Boolean(compiler.options.plugins.find((e) => e instanceof ProgressPlugin)); + } + + if (!progressPluginExists) { + new ProgressPlugin().apply(compiler); + } + } + } + + this.compiler.hooks.watchRun.tap('watchInfo', (compilation) => { + if (compilation.options.bail && isWatchMode) { + logger.warn('You are using "bail" with "watch". "bail" will still exit webpack when the first error is found.'); + } + + logger.success(`Compilation${compilation.name ? `${compilation.name}` : ''} starting...`); + }); + this.compiler.hooks.done.tap('watchInfo', (compilation) => { + logger.success(`Compilation${compilation.name ? `${compilation.name}` : ''} finished`); }); - } else { - bailAndWatchWarning(this.compiler); - this.setUpHookForCompilation(this.compiler, outputOptions, options); } - if (outputOptions.watch) { - const watchOptions = outputOptions.watchOptions || {}; + const callback = (error, stats) => { + if (error) { + logger.error(error); + process.exit(1); + } + + if (stats.hasErrors()) { + process.exitCode = 1; + } + + const foundStats = this.compiler.compilers + ? { children: this.compiler.compilers.map((compiler) => compiler.options.stats) } + : this.compiler.options.stats; + + if (outputOptions.json === true) { + process.stdout.write(JSON.stringify(stats.toJson(foundStats), null, 2) + '\n'); + } else if (typeof outputOptions.json === 'string') { + const JSONStats = JSON.stringify(stats.toJson(foundStats), null, 2); + + try { + writeFileSync(outputOptions.json, JSONStats); + logger.success(`stats are successfully stored as json to ${outputOptions.json}`); + } catch (error) { + logger.error(error); + + process.exit(2); + } + } else { + logger.raw(`${stats.toString(foundStats)}`); + } + + if (isWatchMode) { + logger.success('watching files for updates...'); + } + }; + + if (isWatchMode) { + const watchOptions = (this.compiler.options && this.compiler.options.watchOptions) || {}; + if (watchOptions.stdin) { process.stdin.on('end', function () { process.exit(); }); process.stdin.resume(); } - watchInfo(this.compiler); - await this.invokeWatchInstance(lastHash, options, outputOptions, watchOptions); + + return new Promise((resolve) => { + this.compiler.watch(watchOptions, (error, stats) => { + callback(error, stats); + + resolve(); + }); + }); } else { - return await this.invokeCompilerInstance(lastHash, options, outputOptions); + return new Promise((resolve) => { + this.compiler.run((error, stats) => { + if (this.compiler.close) { + this.compiler.close(() => { + callback(error, stats); + + resolve(); + }); + } else { + callback(error, stats); + + resolve(); + } + }); + }); } } } diff --git a/packages/webpack-cli/lib/utils/warnings/bailAndWatchWarning.js b/packages/webpack-cli/lib/utils/warnings/bailAndWatchWarning.js deleted file mode 100644 index 84894469cab..00000000000 --- a/packages/webpack-cli/lib/utils/warnings/bailAndWatchWarning.js +++ /dev/null @@ -1,14 +0,0 @@ -const logger = require('../logger'); - -/** - * warn the user if bail and watch both are used together - * @param {Object} webpack compiler - * @returns {void} - */ -const bailAndWatchWarning = (compiler) => { - if (compiler.options.bail && compiler.options.watch) { - logger.warn('You are using "bail" with "watch". "bail" will still exit webpack when the first error is found.'); - } -}; - -module.exports = bailAndWatchWarning; diff --git a/test/analyze/analyze-flag.test.js b/test/analyze/analyze-flag.test.js index 43d6a0796a2..ec27d3b78ac 100644 --- a/test/analyze/analyze-flag.test.js +++ b/test/analyze/analyze-flag.test.js @@ -1,26 +1,19 @@ 'use strict'; const { runAndGetWatchProc } = require('../utils/test-utils'); -const { writeFileSync } = require('fs'); -const { resolve } = require('path'); describe('--analyze flag', () => { it('should load webpack-bundle-analyzer plugin with --analyze flag', (done) => { - const proc = runAndGetWatchProc(__dirname, ['--analyze'], false, '', true); - let semaphore = 1; + const proc = runAndGetWatchProc(__dirname, ['--analyze', '--watch'], false, '', true); + proc.stdout.on('data', (chunk) => { const data = chunk.toString(); - if (semaphore === 1 && data.includes('BundleAnalyzerPlugin')) { - writeFileSync(resolve(__dirname, './src/main.js'), `console.log('analyze flag test');`); - semaphore--; - return; - } - if (semaphore === 0) { - expect(data).toContain('Webpack Bundle Analyzer is started at http://127.0.0.1:8888'); - semaphore--; + + if (data.includes('Webpack Bundle Analyzer is started at')) { + expect(data).toContain('Webpack Bundle Analyzer is started at'); + proc.kill(); done(); - return; } }); }); diff --git a/test/bail/bail-and-watch-warning.test.js b/test/bail/bail-and-watch-warning.test.js deleted file mode 100644 index 088d8717967..00000000000 --- a/test/bail/bail-and-watch-warning.test.js +++ /dev/null @@ -1,26 +0,0 @@ -'use strict'; - -const { run } = require('../utils/test-utils'); - -describe('bail and watch warning', () => { - it('should log warning in case of single compiler', () => { - const { stderr, stdout } = run(__dirname, ['-c', 'single-webpack.config.js']); - - expect(stderr).toContain(`You are using "bail" with "watch". "bail" will still exit webpack when the first error is found.`); - expect(stdout).toBeTruthy(); - }); - - it('should log warning in case of multiple compilers', () => { - const { stderr, stdout } = run(__dirname, ['-c', 'multi-webpack.config.js']); - - expect(stderr).toContain(`You are using "bail" with "watch". "bail" will still exit webpack when the first error is found.`); - expect(stdout).toBeTruthy(); - }); - - it('should log not log warning if both are not true', () => { - const { stderr, stdout } = run(__dirname, ['-c', 'third-webpack.config.js']); - - expect(stderr).not.toContain(`You are using "bail" with "watch". "bail" will still exit webpack when the first error is found.`); - expect(stdout).toBeTruthy(); - }); -}); diff --git a/test/bail/single-webpack.config.js b/test/bail/bail-and-watch-webpack.config.js similarity index 100% rename from test/bail/single-webpack.config.js rename to test/bail/bail-and-watch-webpack.config.js diff --git a/test/bail/bail-multi-webpack.config.js b/test/bail/bail-multi-webpack.config.js new file mode 100644 index 00000000000..c8ee4390baf --- /dev/null +++ b/test/bail/bail-multi-webpack.config.js @@ -0,0 +1,19 @@ +module.exports = [ + { + output: { + filename: './dist-first.js', + }, + name: 'first', + entry: './src/first.js', + mode: 'development', + bail: true, + }, + { + output: { + filename: './dist-second.js', + }, + name: 'second', + entry: './src/second.js', + mode: 'production', + }, +]; diff --git a/test/bail/third-webpack.config.js b/test/bail/bail-webpack.config.js similarity index 100% rename from test/bail/third-webpack.config.js rename to test/bail/bail-webpack.config.js diff --git a/test/bail/bail.test.js b/test/bail/bail.test.js new file mode 100644 index 00000000000..94551a627cf --- /dev/null +++ b/test/bail/bail.test.js @@ -0,0 +1,61 @@ +'use strict'; + +const { run, runWatch } = require('../utils/test-utils'); + +describe('bail and watch warning', () => { + it('should not log warning in not watch mode', async () => { + const { stderr, stdout } = await run(__dirname, ['-c', 'bail-webpack.config.js']); + + expect(stderr).not.toContain(`You are using "bail" with "watch". "bail" will still exit webpack when the first error is found.`); + expect(stdout).toBeTruthy(); + }); + + it('should not log warning in not watch mode without the "bail" option', async () => { + const { stderr, stdout } = await run(__dirname, ['-c', 'no-bail-webpack.config.js']); + + expect(stderr).not.toContain(`You are using "bail" with "watch". "bail" will still exit webpack when the first error is found.`); + expect(stdout).toBeTruthy(); + }); + + it('should not log warning in not watch mode without the "watch" option', async () => { + const { stderr, stdout } = await runWatch(__dirname, ['-c', 'watch-webpack.config.js']); + + expect(stderr).not.toContain(`You are using "bail" with "watch". "bail" will still exit webpack when the first error is found.`); + expect(stdout).toBeTruthy(); + }); + + it('should not log warning without the "bail" option', async () => { + const { stderr, stdout } = await runWatch(__dirname, ['-c', 'no-bail-webpack.config.js', '--watch']); + + expect(stderr).not.toContain(`You are using "bail" with "watch". "bail" will still exit webpack when the first error is found.`); + expect(stdout).toBeTruthy(); + }); + + it('should not log warning without the "bail" option', async () => { + const { stderr, stdout } = await runWatch(__dirname, ['-c', 'no-bail-webpack.config.js', '--watch']); + + expect(stderr).not.toContain(`You are using "bail" with "watch". "bail" will still exit webpack when the first error is found.`); + expect(stdout).toBeTruthy(); + }); + + it('should log warning in watch mode', async () => { + const { stderr, stdout } = await runWatch(__dirname, ['-c', 'bail-webpack.config.js', '--watch']); + + expect(stderr).toContain(`You are using "bail" with "watch". "bail" will still exit webpack when the first error is found.`); + expect(stdout).toBeTruthy(); + }); + + it('should log warning in watch mode', async () => { + const { stderr, stdout } = await runWatch(__dirname, ['-c', 'bail-and-watch-webpack.config.js']); + + expect(stderr).toContain(`You are using "bail" with "watch". "bail" will still exit webpack when the first error is found.`); + expect(stdout).toBeTruthy(); + }); + + it('should log warning in case of multiple compilers', async () => { + const { stderr, stdout } = await runWatch(__dirname, ['-c', 'multi-webpack.config.js']); + + expect(stderr).toContain(`You are using "bail" with "watch". "bail" will still exit webpack when the first error is found.`); + expect(stdout).toBeTruthy(); + }); +}); diff --git a/test/bail/multi-webpack.config.js b/test/bail/multi-webpack.config.js index 497c9ff6162..1c13ab36f2d 100644 --- a/test/bail/multi-webpack.config.js +++ b/test/bail/multi-webpack.config.js @@ -6,6 +6,8 @@ module.exports = [ name: 'first', entry: './src/first.js', mode: 'development', + bail: true, + watch: true, }, { output: { @@ -14,7 +16,5 @@ module.exports = [ name: 'second', entry: './src/second.js', mode: 'production', - bail: true, - watch: true, }, ]; diff --git a/test/bail/no-bail-webpack.config.js b/test/bail/no-bail-webpack.config.js new file mode 100644 index 00000000000..6b70bf3cf22 --- /dev/null +++ b/test/bail/no-bail-webpack.config.js @@ -0,0 +1,4 @@ +module.exports = { + entry: './src/first.js', + mode: 'development', +}; diff --git a/test/bail/watch-webpack.config.js b/test/bail/watch-webpack.config.js new file mode 100644 index 00000000000..447c8d35986 --- /dev/null +++ b/test/bail/watch-webpack.config.js @@ -0,0 +1,5 @@ +module.exports = { + entry: './src/first.js', + mode: 'development', + watch: true, +}; diff --git a/test/config-name/config-name.test.js b/test/config-name/config-name.test.js index 94cae4f3cc0..9cdf276cb9f 100644 --- a/test/config-name/config-name.test.js +++ b/test/config-name/config-name.test.js @@ -20,21 +20,22 @@ describe('--config-name flag', () => { }); it('should work with multiple values for --config-name', (done) => { - const { stderr, stdout } = run(__dirname, ['--config-name', 'first', '--config-name', 'third'], false); + const { stderr, stdout, exitCode } = run(__dirname, ['--config-name', 'first', '--config-name', 'third'], false); expect(stderr).toBeFalsy(); expect(stdout).toContain('first'); expect(stdout).not.toContain('second'); expect(stdout).toContain('third'); + expect(exitCode).toBe(0); - stat(resolve(__dirname, './dist/dist-first.js'), (err, stats) => { - expect(err).toBe(null); - expect(stats.isFile()).toBe(true); - done(); - }); stat(resolve(__dirname, './dist/dist-third.js'), (err, stats) => { expect(err).toBe(null); expect(stats.isFile()).toBe(true); - done(); + + stat(resolve(__dirname, './dist/dist-first.js'), (err, stats) => { + expect(err).toBe(null); + expect(stats.isFile()).toBe(true); + done(); + }); }); }); diff --git a/test/config-name/webpack.config.js b/test/config-name/webpack.config.js index 515d077d3e2..4580e6062d0 100644 --- a/test/config-name/webpack.config.js +++ b/test/config-name/webpack.config.js @@ -6,6 +6,7 @@ module.exports = [ name: 'first', entry: './src/first.js', mode: 'development', + stats: 'minimal', }, { output: { @@ -14,6 +15,7 @@ module.exports = [ name: 'second', entry: './src/second.js', mode: 'production', + stats: 'minimal', }, { output: { @@ -22,5 +24,6 @@ module.exports = [ name: 'third', entry: './src/third.js', mode: 'none', + stats: 'verbose', }, ]; diff --git a/test/core-flags/cache-flags.test.js b/test/core-flags/cache-flags.test.js index 81f56648c2a..f8e55dcc496 100644 --- a/test/core-flags/cache-flags.test.js +++ b/test/core-flags/cache-flags.test.js @@ -128,7 +128,6 @@ describe('cache related flags from core', () => { writeFileSync(resolve(__dirname, './webpack.test.config.js'), 'module.exports = {mode: "development"}'); const { stderr, stdout } = run(__dirname, ['--cache-type', 'filesystem', '-c', './webpack.test.config.js']); expect(stderr).toBeFalsy(); - // modules should not be cached on first run expect(stdout).not.toContain('[cached] 1 module'); // Running again should use the cache diff --git a/test/utils/test-utils.js b/test/utils/test-utils.js index 8b1466ec83f..2968602be01 100644 --- a/test/utils/test-utils.js +++ b/test/utils/test-utils.js @@ -2,6 +2,7 @@ const path = require('path'); const fs = require('fs'); const execa = require('execa'); +const { exec } = require('child_process'); const { sync: spawnSync, node: execaNode } = execa; const { Writable } = require('readable-stream'); const concat = require('concat-stream'); @@ -11,6 +12,7 @@ const { hyphenToUpperCase } = require('../../packages/webpack-cli/lib/utils/arg- const WEBPACK_PATH = path.resolve(__dirname, '../../packages/webpack-cli/bin/cli.js'); const ENABLE_LOG_COMPILATION = process.env.ENABLE_PIPE || false; const isWebpack5 = version.startsWith('5'); +const isWindows = process.platform === 'win32'; /** * Run the webpack CLI for a test case. @@ -37,39 +39,42 @@ const run = (testCase, args = [], setOutput = true, nodeArgs = [], env) => { return result; }; -const runWatch = ({ testCase, args = [], setOutput = true, outputKillStr = 'Time' }) => { +const runWatch = (testCase, args = [], setOutput = true, outputKillStr = 'watching files for updates...') => { const cwd = path.resolve(testCase); const outputPath = path.resolve(testCase, 'bin'); const argsWithOutput = setOutput ? args.concat('--output-path', outputPath) : args; return new Promise((resolve, reject) => { - const watchPromise = execa(WEBPACK_PATH, argsWithOutput, { + const proc = execa(WEBPACK_PATH, argsWithOutput, { cwd, reject: false, stdio: 'pipe', }); - watchPromise.stdout.pipe( + proc.stdout.pipe( new Writable({ write(chunk, encoding, callback) { const output = chunk.toString('utf8'); if (output.includes(outputKillStr)) { - watchPromise.kill(); + if (isWindows) { + exec('taskkill /pid ' + proc.pid + ' /T /F'); + } else { + proc.kill(); + } } callback(); }, }), ); - watchPromise - .then((result) => { - resolve(result); - }) - .catch((error) => { - reject(error); - }); + + proc.then((result) => { + resolve(result); + }).catch((error) => { + reject(error); + }); }); }; @@ -224,20 +229,13 @@ const runInstall = async (cwd) => { }; const runServe = (args, testPath) => { - return runWatch({ - testCase: testPath, - args: ['serve'].concat(args), - setOutput: false, - outputKillStr: 'main', - }); + return runWatch(testPath, ['serve'].concat(args), false, 'main'); }; const runInfo = (args, testPath) => { return run(testPath, ['info'].concat(args), false); }; -const isWindows = process.platform === 'win32'; - module.exports = { run, runWatch, diff --git a/test/watch/watch-flag.test.js b/test/watch/watch-flag.test.js index abdd52c2839..92ce02b6079 100644 --- a/test/watch/watch-flag.test.js +++ b/test/watch/watch-flag.test.js @@ -1,6 +1,6 @@ 'use strict'; -const { runAndGetWatchProc, isWebpack5, isWindows } = require('../utils/test-utils'); +const { runAndGetWatchProc, isWebpack5 } = require('../utils/test-utils'); const { writeFileSync } = require('fs'); const { resolve } = require('path'); @@ -10,15 +10,19 @@ const wordsInStatsv5 = ['asset', 'index.js', 'compiled successfully']; describe('--watch flag', () => { it('should recompile upon file change', (done) => { const proc = runAndGetWatchProc(__dirname, ['--watch'], false, '', true); - let semaphore = 1; + let semaphore = 0; proc.stdout.on('data', (chunk) => { const data = chunk.toString(); - if (data.includes('watching files for updates')) { - writeFileSync(resolve(__dirname, './src/index.js'), `console.log('watch flag test');`); - semaphore = 0; - return; + + if (semaphore === 0 && data.includes('watching files for updates')) { + process.nextTick(() => { + writeFileSync(resolve(__dirname, './src/index.js'), `console.log('watch flag test');`); + + semaphore++; + }); } - if (semaphore === 0 && data.includes('index.js')) { + + if (semaphore === 1 && data.includes('index.js')) { if (isWebpack5) { for (const word of wordsInStatsv5) { expect(data).toContain(word); @@ -28,10 +32,13 @@ describe('--watch flag', () => { expect(data).toContain(word); } } - semaphore--; + + semaphore++; + } + + if (semaphore === 2 && data.includes('watching files for updates')) { proc.kill(); done(); - return; } }); }); @@ -41,11 +48,16 @@ describe('--watch flag', () => { let semaphore = 0; proc.stdout.on('data', (chunk) => { const data = chunk.toString(); - if (data.includes('Compilation starting') || data.includes('Compilation finished')) { + + if (semaphore === 0 && data.includes('Compilation starting')) { semaphore++; } - // TODO Fix on windows - if ((isWindows || semaphore === 2) && data.includes('index.js')) { + + if (semaphore === 1 && data.includes('Compilation finished')) { + semaphore++; + } + + if (semaphore === 2 && data.includes('index.js')) { if (isWebpack5) { for (const word of wordsInStatsv5) { expect(data).toContain(word); @@ -55,9 +67,15 @@ describe('--watch flag', () => { expect(data).toContain(word); } } + + semaphore++; + } + + if (semaphore === 3 && data.includes('watching files for updates...')) { + semaphore++; + proc.kill(); done(); - return; } }); }); diff --git a/yarn.lock b/yarn.lock index 122ddcbb23f..4fa0f70ded0 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2028,6 +2028,13 @@ "@nodelib/fs.scandir" "2.1.3" fastq "^1.6.0" +"@npmcli/move-file@^1.0.1": + version "1.0.1" + resolved "https://registry.yarnpkg.com/@npmcli/move-file/-/move-file-1.0.1.tgz#de103070dac0f48ce49cf6693c23af59c0f70464" + integrity sha512-Uv6h1sT+0DrblvIrolFtbvM1FgWm+/sy4B3pvLp67Zys+thcukzS5ekn7HsZFGpWP4Q3fYJCljbWQE/XivMRLw== + dependencies: + mkdirp "^1.0.4" + "@octokit/auth-token@^2.4.0": version "2.4.2" resolved "https://registry.yarnpkg.com/@octokit/auth-token/-/auth-token-2.4.2.tgz#10d0ae979b100fa6b72fa0e8e63e27e6d0dbff8a" @@ -2257,11 +2264,32 @@ resolved "https://registry.yarnpkg.com/@types/ejs/-/ejs-3.0.4.tgz#8851fcdedb96e410fbb24f83b8be6763ef9afa77" integrity sha512-ZxnwyBGO4KX/82AsFHTX82eMw0PsoBcIngEat+zx0y+3yxoNDJucAihg9nAcrc+g4Cwiv/4WcWsX4oiy0ySrRQ== +"@types/eslint-scope@^3.7.0": + version "3.7.0" + resolved "https://registry.yarnpkg.com/@types/eslint-scope/-/eslint-scope-3.7.0.tgz#4792816e31119ebd506902a482caec4951fabd86" + integrity sha512-O/ql2+rrCUe2W2rs7wMR+GqPRcgB6UiqN5RhrR5xruFlY7l9YLMn0ZkDzjoHLeiFkR8MCQZVudUuuvQ2BLC9Qw== + dependencies: + "@types/eslint" "*" + "@types/estree" "*" + "@types/eslint-visitor-keys@^1.0.0": version "1.0.0" resolved "https://registry.yarnpkg.com/@types/eslint-visitor-keys/-/eslint-visitor-keys-1.0.0.tgz#1ee30d79544ca84d68d4b3cdb0af4f205663dd2d" integrity sha512-OCutwjDZ4aFS6PB1UZ988C4YgwlBHJd6wCeQqaLdmadZ/7e+w79+hbMUFC1QXDNCmdyoRfAFdm0RypzwR+Qpag== +"@types/eslint@*": + version "7.2.4" + resolved "https://registry.yarnpkg.com/@types/eslint/-/eslint-7.2.4.tgz#d12eeed7741d2491b69808576ac2d20c14f74c41" + integrity sha512-YCY4kzHMsHoyKspQH+nwSe+70Kep7Vjt2X+dZe5Vs2vkRudqtoFoUIv1RlJmZB8Hbp7McneupoZij4PadxsK5Q== + dependencies: + "@types/estree" "*" + "@types/json-schema" "*" + +"@types/estree@*", "@types/estree@^0.0.45": + version "0.0.45" + resolved "https://registry.yarnpkg.com/@types/estree/-/estree-0.0.45.tgz#e9387572998e5ecdac221950dab3e8c3b16af884" + integrity sha512-jnqIUKDUqJbDIUxm0Uj7bnlMnRm1T/eZ9N+AVMqhPgzrba2GhGG5o/jCTwmdPK709nEZsGoMzXEDUjcXHa3W0g== + "@types/expect@^1.20.4": version "1.20.4" resolved "https://registry.yarnpkg.com/@types/expect/-/expect-1.20.4.tgz#8288e51737bf7e3ab5d7c77bfa695883745264e5" @@ -2340,7 +2368,7 @@ jest-diff "^25.2.1" pretty-format "^25.2.1" -"@types/json-schema@*", "@types/json-schema@^7.0.3": +"@types/json-schema@*", "@types/json-schema@^7.0.3", "@types/json-schema@^7.0.6": version "7.0.6" resolved "https://registry.yarnpkg.com/@types/json-schema/-/json-schema-7.0.6.tgz#f4c7ec43e81b319a9815115031709f26987891f0" integrity sha512-3c+yGKvVP5Y9TYBEibGNR+kLtijnj7mYrXRg+WpFb2X9xm04g/DXYkfg4hmzJQosc9snFNUPkbYIhu+KAm6jJw== @@ -2398,9 +2426,9 @@ "@types/node" "*" "@types/node@*", "@types/node@>= 8": - version "14.11.5" - resolved "https://registry.yarnpkg.com/@types/node/-/node-14.11.5.tgz#fecad41c041cae7f2404ad4b2d0742fdb628b305" - integrity sha512-jVFzDV6NTbrLMxm4xDSIW/gKnk8rQLF9wAzLWIOg+5nU6ACrIMndeBdXci0FGtqJbP9tQvm6V39eshc96TO2wQ== + version "14.11.8" + resolved "https://registry.yarnpkg.com/@types/node/-/node-14.11.8.tgz#fe2012f2355e4ce08bca44aeb3abbb21cf88d33f" + integrity sha512-KPcKqKm5UKDkaYPTuXSx8wEP7vE9GnuaXIZKijwRYcePpZFDVuy2a57LarFKiORbHOuTOOwYzxVxcUzsh2P2Pw== "@types/node@13.9.8": version "13.9.8" @@ -2470,9 +2498,9 @@ integrity sha512-FA/BWv8t8ZWJ+gEOnLLd8ygxH/2UFbAvgEonyfN6yWGLKc7zVjbpl2Y4CTjid9h2RfgPP6SEt6uHwEOply00yw== "@types/yargs@^15.0.0": - version "15.0.7" - resolved "https://registry.yarnpkg.com/@types/yargs/-/yargs-15.0.7.tgz#dad50a7a234a35ef9460737a56024287a3de1d2b" - integrity sha512-Gf4u3EjaPNcC9cTu4/j2oN14nSVhr8PQ+BvBcBQHAhDZfl0bVIiLgvnRXv/dn58XhTm9UXvBpvJpDlwV65QxOA== + version "15.0.8" + resolved "https://registry.yarnpkg.com/@types/yargs/-/yargs-15.0.8.tgz#7644904cad7427eb704331ea9bf1ee5499b82e23" + integrity sha512-b0BYzFUzBpOhPjpl1wtAHU994jBeKF4TKVlT7ssFv44T617XNcPdRoG4AzHLVshLzlrF7i3lTelH7UbuNYV58Q== dependencies: "@types/yargs-parser" "*" @@ -2769,7 +2797,7 @@ acorn-walk@^7.1.1: resolved "https://registry.yarnpkg.com/acorn-walk/-/acorn-walk-7.2.0.tgz#0de889a601203909b0fbe07b8938dc21d2e967bc" integrity sha512-OPdCF6GsMIP+Az+aWfAAOEt2/+iVDKE7oy6lJ098aoe59oAmK76qV6Gw60SbZ8jHuG2wH058GF4pLFbYamYrVA== -acorn@^6.0.1, acorn@^6.4.1: +acorn@^6.0.1: version "6.4.2" resolved "https://registry.yarnpkg.com/acorn/-/acorn-6.4.2.tgz#35866fd710528e92de10cf06016498e47e39e1e6" integrity sha512-XtGIhXwF8YM8bJhGxG5kXgjkEuNGLTkoYqVE+KMR+aspr4KGYmKYg7yUe3KghyQ9yheNwLnjmzh/7+gfDBmHCQ== @@ -2779,6 +2807,11 @@ acorn@^7.1.0, acorn@^7.1.1: resolved "https://registry.yarnpkg.com/acorn/-/acorn-7.4.1.tgz#feaed255973d2e77555b83dbc08851a6c63520fa" integrity sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A== +acorn@^8.0.3: + version "8.0.4" + resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.0.4.tgz#7a3ae4191466a6984eee0fe3407a4f3aa9db8354" + integrity sha512-XNP0PqF1XD19ZlLKvB7cMmnZswW4C/03pRHgirB30uSJTaS3A3V1/P4sS3HPvFmjoriPCJQs+JDSbm4bL1TxGQ== + agent-base@4, agent-base@^4.3.0: version "4.3.0" resolved "https://registry.yarnpkg.com/agent-base/-/agent-base-4.3.0.tgz#8165f01c436009bccad0b1d122f05ed770efc6ee" @@ -2813,15 +2846,15 @@ ajv-errors@^1.0.0: resolved "https://registry.yarnpkg.com/ajv-errors/-/ajv-errors-1.0.1.tgz#f35986aceb91afadec4102fbd85014950cefa64d" integrity sha512-DCRfO/4nQ+89p/RK43i8Ezd41EqdGIU4ld7nGF8OQ14oc/we5rEntLCUa7+jrn3nn83BosfwZA0wb4pon2o8iQ== -ajv-keywords@^3.1.0, ajv-keywords@^3.4.1: +ajv-keywords@^3.1.0, ajv-keywords@^3.5.2: version "3.5.2" resolved "https://registry.yarnpkg.com/ajv-keywords/-/ajv-keywords-3.5.2.tgz#31f29da5ab6e00d1c2d329acf7b5929614d5014d" integrity sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ== -ajv@^6.1.0, ajv@^6.10.0, ajv@^6.10.2, ajv@^6.12.3: - version "6.12.5" - resolved "https://registry.yarnpkg.com/ajv/-/ajv-6.12.5.tgz#19b0e8bae8f476e5ba666300387775fb1a00a4da" - integrity sha512-lRF8RORchjpKG50/WFf8xmg7sgCLFiYNNnqdKflk63whMQcWR5ngGjiSXkL9bjxy6B2npOK2HSMN49jEBMSkag== +ajv@^6.1.0, ajv@^6.10.0, ajv@^6.10.2, ajv@^6.12.3, ajv@^6.12.5: + version "6.12.6" + resolved "https://registry.yarnpkg.com/ajv/-/ajv-6.12.6.tgz#baf5a62e802b07d977034586f8c3baf5adf26df4" + integrity sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g== dependencies: fast-deep-equal "^3.1.1" fast-json-stable-stringify "^2.0.0" @@ -2912,7 +2945,7 @@ anymatch@^2.0.0: micromatch "^3.1.4" normalize-path "^2.1.1" -anymatch@^3.0.3, anymatch@~3.1.1: +anymatch@^3.0.3: version "3.1.1" resolved "https://registry.yarnpkg.com/anymatch/-/anymatch-3.1.1.tgz#c55ecf02185e2469259399310c173ce31233b142" integrity sha512-mM8522psRCqzV+6LhomX5wgp25YVibjh8Wj23I5RPkPppSVSjyKD2A2mBJmWGa+KN7f2D6LNh9jkBCeyLktzjg== @@ -3042,16 +3075,6 @@ asap@^2.0.0: resolved "https://registry.yarnpkg.com/asap/-/asap-2.0.6.tgz#e50347611d7e690943208bbdafebcbc2fb866d46" integrity sha1-5QNHYR1+aQlDIIu9r+vLwvuGbUY= -asn1.js@^5.2.0: - version "5.4.1" - resolved "https://registry.yarnpkg.com/asn1.js/-/asn1.js-5.4.1.tgz#11a980b84ebb91781ce35b0fdc2ee294e3783f07" - integrity sha512-+I//4cYPccV8LdmBLiX8CYvf9Sp3vQsrqu2QNXRcrbiWvcx/UdlFiqUJJzxRQxgsZmvhXhn4cSKeSmoFjVdupA== - dependencies: - bn.js "^4.0.0" - inherits "^2.0.1" - minimalistic-assert "^1.0.0" - safer-buffer "^2.1.0" - asn1@~0.2.3: version "0.2.4" resolved "https://registry.yarnpkg.com/asn1/-/asn1-0.2.4.tgz#8d2475dfab553bb33e77b54e59e880bb8ce23136" @@ -3064,14 +3087,6 @@ assert-plus@1.0.0, assert-plus@^1.0.0: resolved "https://registry.yarnpkg.com/assert-plus/-/assert-plus-1.0.0.tgz#f12e0f3c5d77b0b1cdd9146942e4e96c1e4dd525" integrity sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU= -assert@^1.1.1: - version "1.5.0" - resolved "https://registry.yarnpkg.com/assert/-/assert-1.5.0.tgz#55c109aaf6e0aefdb3dc4b71240c70bf574b18eb" - integrity sha512-EDsgawzwoun2CZkCgtxJbv392v4nbk9XDD06zI+kQYoBM/3RBWLlEyJARDOmhAAosBjWACEkKL6S+lIZtcAubA== - dependencies: - object-assign "^4.1.1" - util "0.10.3" - assign-symbols@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/assign-symbols/-/assign-symbols-1.0.0.tgz#59667f41fadd4f20ccbc2bb96b8d4f7f78ec0367" @@ -3228,11 +3243,6 @@ balanced-match@^1.0.0: resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.0.tgz#89b4d199ab2bee49de164ea02b89ce462d71b767" integrity sha1-ibTRmasr7kneFk6gK4nORi1xt2c= -base64-js@^1.0.2: - version "1.3.1" - resolved "https://registry.yarnpkg.com/base64-js/-/base64-js-1.3.1.tgz#58ece8cb75dd07e71ed08c736abc5fac4dbf8df1" - integrity sha512-mLQ4i2QO1ytvGWFWmcngKO//JXAQueZvwEKtjgQFM4jIK0kU+ytMfplL8j+n5mspOfjHwoAg+9yhb7BwAHm36g== - base@^0.11.1: version "0.11.2" resolved "https://registry.yarnpkg.com/base/-/base-0.11.2.tgz#7bde5ced145b6d551a90db87f83c558b4eb48a8f" @@ -3273,21 +3283,11 @@ bfj@^6.1.1: hoopy "^0.1.4" tryer "^1.0.1" -big.js@^5.2.2: - version "5.2.2" - resolved "https://registry.yarnpkg.com/big.js/-/big.js-5.2.2.tgz#65f0af382f578bcdc742bd9c281e9cb2d7768328" - integrity sha512-vyL2OymJxmarO8gxMr0mhChsO9QGwhynfuu4+MHTAW6czfq9humCB7rKpUjDd9YUiDPU4mzpyupFSvOClAwbmQ== - binary-extensions@^1.0.0: version "1.13.1" resolved "https://registry.yarnpkg.com/binary-extensions/-/binary-extensions-1.13.1.tgz#598afe54755b2868a5330d2aff9d4ebb53209b65" integrity sha512-Un7MIEDdUC5gNpcGDV97op1Ywk748MpHcFTHoYs6qnj1Z3j7I53VG3nwZhKzoBZmbdRNnb6WRdFlwl7tSDuZGw== -binary-extensions@^2.0.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/binary-extensions/-/binary-extensions-2.1.0.tgz#30fa40c9e7fe07dbc895678cd287024dea241dd9" - integrity sha512-1Yj8h9Q+QDF5FzhMs/c9+6UntbD5MkRfRwac8DoEm9ZfUBZ7tZ55YcGVAzEe4bXsdQHEk+s9S5wsOKVdZrw0tQ== - binaryextensions@^2.1.2: version "2.3.0" resolved "https://registry.yarnpkg.com/binaryextensions/-/binaryextensions-2.3.0.tgz#1d269cbf7e6243ea886aa41453c3651ccbe13c22" @@ -3305,16 +3305,6 @@ bluebird@^3.5.1, bluebird@^3.5.3, bluebird@^3.5.5: resolved "https://registry.yarnpkg.com/bluebird/-/bluebird-3.7.2.tgz#9f229c15be272454ffa973ace0dbee79a1b0c36f" integrity sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg== -bn.js@^4.0.0, bn.js@^4.1.0, bn.js@^4.4.0: - version "4.11.9" - resolved "https://registry.yarnpkg.com/bn.js/-/bn.js-4.11.9.tgz#26d556829458f9d1e81fc48952493d0ba3507828" - integrity sha512-E6QoYqCKZfgatHTdHzs1RRKP7ip4vvm+EyRUeE2RF0NblwVvb0p6jSVeNTOFxPn26QXN2o6SMfNxKp6kU8zQaw== - -bn.js@^5.1.1: - version "5.1.3" - resolved "https://registry.yarnpkg.com/bn.js/-/bn.js-5.1.3.tgz#beca005408f642ebebea80b042b4d18d2ac0ee6b" - integrity sha512-GkTiFpjFtUzU9CbMeJ5iazkCzGL3jrhzerzZIuqLABjbwRaFt33I9tUdSNryIptM+RxDet6OKm2WnLXzW51KsQ== - body-parser@1.19.0: version "1.19.0" resolved "https://registry.yarnpkg.com/body-parser/-/body-parser-1.19.0.tgz#96b2709e57c9c4e09a6fd66a8fd979844f69f08a" @@ -3367,18 +3357,13 @@ braces@^2.3.1, braces@^2.3.2: split-string "^3.0.2" to-regex "^3.0.1" -braces@^3.0.1, braces@~3.0.2: +braces@^3.0.1: version "3.0.2" resolved "https://registry.yarnpkg.com/braces/-/braces-3.0.2.tgz#3454e1a462ee8d599e236df336cd9ea4f8afe107" integrity sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A== dependencies: fill-range "^7.0.1" -brorand@^1.0.1: - version "1.1.0" - resolved "https://registry.yarnpkg.com/brorand/-/brorand-1.1.0.tgz#12c25efe40a45e3c323eb8675a0a0ce57b22371f" - integrity sha1-EsJe/kCkXjwyPrhnWgoM5XsiNx8= - browser-process-hrtime@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/browser-process-hrtime/-/browser-process-hrtime-1.0.0.tgz#3c9b4b7d782c8121e56f10106d84c0d0ffc94626" @@ -3391,68 +3376,7 @@ browser-resolve@^1.11.3: dependencies: resolve "1.1.7" -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" - integrity sha512-+7CHXqGuspUn/Sl5aO7Ea0xWGAtETPXNSAjHo48JfLdPWcMng33Xe4znFvQweqc/uzk5zSOI3H52CYnjCfb5hA== - dependencies: - buffer-xor "^1.0.3" - cipher-base "^1.0.0" - create-hash "^1.1.0" - evp_bytestokey "^1.0.3" - inherits "^2.0.1" - safe-buffer "^5.0.1" - -browserify-cipher@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/browserify-cipher/-/browserify-cipher-1.0.1.tgz#8d6474c1b870bfdabcd3bcfcc1934a10e94f15f0" - integrity sha512-sPhkz0ARKbf4rRQt2hTpAHqn47X3llLkUGn+xEJzLjwY8LRs2p0v7ljvI5EyoRO/mexrNunNECisZs+gw2zz1w== - dependencies: - browserify-aes "^1.0.4" - browserify-des "^1.0.0" - evp_bytestokey "^1.0.0" - -browserify-des@^1.0.0: - version "1.0.2" - resolved "https://registry.yarnpkg.com/browserify-des/-/browserify-des-1.0.2.tgz#3af4f1f59839403572f1c66204375f7a7f703e9c" - integrity sha512-BioO1xf3hFwz4kc6iBhI3ieDFompMhrMlnDFC4/0/vd5MokpuAc3R+LYbwTA9A5Yc9pq9UYPqffKpW2ObuwX5A== - dependencies: - cipher-base "^1.0.1" - des.js "^1.0.0" - inherits "^2.0.1" - safe-buffer "^5.1.2" - -browserify-rsa@^4.0.0, browserify-rsa@^4.0.1: - version "4.0.1" - resolved "https://registry.yarnpkg.com/browserify-rsa/-/browserify-rsa-4.0.1.tgz#21e0abfaf6f2029cf2fafb133567a701d4135524" - integrity sha1-IeCr+vbyApzy+vsTNWenAdQTVSQ= - dependencies: - bn.js "^4.1.0" - randombytes "^2.0.1" - -browserify-sign@^4.0.0: - version "4.2.1" - resolved "https://registry.yarnpkg.com/browserify-sign/-/browserify-sign-4.2.1.tgz#eaf4add46dd54be3bb3b36c0cf15abbeba7956c3" - integrity sha512-/vrA5fguVAKKAVTNJjgSm1tRQDHUU6DbwO9IROu/0WAzC8PKhucDSh18J0RMvVeHAn5puMd+QHC2erPRNf8lmg== - dependencies: - bn.js "^5.1.1" - browserify-rsa "^4.0.1" - create-hash "^1.2.0" - create-hmac "^1.1.7" - elliptic "^6.5.3" - inherits "^2.0.4" - parse-asn1 "^5.1.5" - readable-stream "^3.6.0" - safe-buffer "^5.2.0" - -browserify-zlib@^0.2.0: - version "0.2.0" - resolved "https://registry.yarnpkg.com/browserify-zlib/-/browserify-zlib-0.2.0.tgz#2869459d9aa3be245fe8fe2ca1f46e2e7f54d73f" - integrity sha512-Z942RysHXmJrhqk88FmKBVq/v5tqmSkDz7p54G/MGyjMnCFFnC79XWNbg+Vta8W6Wb2qtSZTSxIGkJrRpCFEiA== - dependencies: - pako "~1.0.5" - -browserslist@^4.12.0, browserslist@^4.8.5: +browserslist@^4.12.0, browserslist@^4.14.3, browserslist@^4.8.5: version "4.14.5" resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.14.5.tgz#1c751461a102ddc60e40993639b709be7f2c4015" integrity sha512-Z+vsCZIvCBvqLoYkBFTwEYH3v5MCQbsAjp50ERycpOjnPmolg1Gjy4+KaWWpm8QOJt9GHkhdqAl14NpCX73CWA== @@ -3491,25 +3415,6 @@ buffer-indexof@^1.0.0: resolved "https://registry.yarnpkg.com/buffer-indexof/-/buffer-indexof-1.1.1.tgz#52fabcc6a606d1a00302802648ef68f639da268c" integrity sha512-4/rOEg86jivtPTeOUUT61jJO1Ya1TrR/OkqCSZDyq84WJh3LuuiphBYJN+fm5xufIk4XAFcEwte/8WzC8If/1g== -buffer-xor@^1.0.3: - version "1.0.3" - resolved "https://registry.yarnpkg.com/buffer-xor/-/buffer-xor-1.0.3.tgz#26e61ed1422fb70dd42e6e36729ed51d855fe8d9" - integrity sha1-JuYe0UIvtw3ULm42cp7VHYVf6Nk= - -buffer@^4.3.0: - version "4.9.2" - resolved "https://registry.yarnpkg.com/buffer/-/buffer-4.9.2.tgz#230ead344002988644841ab0244af8c44bbe3ef8" - integrity sha512-xq+q3SRMOxGivLhBNaUdC64hDTQwejJ+H0T/NB1XMtTVEwNTrfFF3gAxiyW0Bu/xWEGhjVKgUcMhCrUy2+uCWg== - dependencies: - base64-js "^1.0.2" - ieee754 "^1.1.4" - isarray "^1.0.0" - -builtin-status-codes@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/builtin-status-codes/-/builtin-status-codes-3.0.0.tgz#85982878e21b98e1c66425e03d0174788f569ee8" - integrity sha1-hZgoeOIbmOHGZCXgPQF0eI9Wnug= - builtins@^1.0.3: version "1.0.3" resolved "https://registry.yarnpkg.com/builtins/-/builtins-1.0.3.tgz#cb94faeb61c8696451db36534e1422f94f0aee88" @@ -3535,7 +3440,7 @@ bytes@3.1.0: resolved "https://registry.yarnpkg.com/bytes/-/bytes-3.1.0.tgz#f6cf7933a360e0588fa9fde85651cdc7f805d1f6" integrity sha512-zauLjrfCG+xvoyaqLoV8bLVXXNGC4JqlxFCutSDWA6fJrTo2ZuvLYTqZ7aHBLZSMOopbzwv8f+wZcVzfVTI2Dg== -cacache@^12.0.0, cacache@^12.0.2, cacache@^12.0.3: +cacache@^12.0.0, cacache@^12.0.3: version "12.0.4" resolved "https://registry.yarnpkg.com/cacache/-/cacache-12.0.4.tgz#668bcbd105aeb5f1d92fe25570ec9525c8faa40c" integrity sha512-a0tMB40oefvuInr4Cwb3GerbL9xTj1D5yg0T5xrjGCGyfvbxseIXX7BAO/u/hIXdafzOI5JC3wDwHyf24buOAQ== @@ -3556,6 +3461,29 @@ cacache@^12.0.0, cacache@^12.0.2, cacache@^12.0.3: unique-filename "^1.1.1" y18n "^4.0.0" +cacache@^15.0.5: + version "15.0.5" + resolved "https://registry.yarnpkg.com/cacache/-/cacache-15.0.5.tgz#69162833da29170d6732334643c60e005f5f17d0" + integrity sha512-lloiL22n7sOjEEXdL8NAjTgv9a1u43xICE9/203qonkZUCj5X1UEWIdf2/Y0d6QcCtMzbKQyhrcDbdvlZTs/+A== + dependencies: + "@npmcli/move-file" "^1.0.1" + chownr "^2.0.0" + fs-minipass "^2.0.0" + glob "^7.1.4" + infer-owner "^1.0.4" + lru-cache "^6.0.0" + minipass "^3.1.1" + minipass-collect "^1.0.2" + minipass-flush "^1.0.5" + minipass-pipeline "^1.2.2" + mkdirp "^1.0.3" + p-map "^4.0.0" + promise-inflight "^1.0.1" + rimraf "^3.0.2" + ssri "^8.0.0" + tar "^6.0.2" + unique-filename "^1.1.1" + cache-base@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/cache-base/-/cache-base-1.0.1.tgz#0a7f46416831c8b662ee36fe4e7c59d76f666ab2" @@ -3663,9 +3591,9 @@ camelcase@^5.0.0, camelcase@^5.3.1: integrity sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg== caniuse-lite@^1.0.30001135: - version "1.0.30001144" - resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001144.tgz#bca0fffde12f97e1127a351fec3bfc1971aa3b3d" - integrity sha512-4GQTEWNMnVZVOFG3BK0xvGeaDAtiPAbG2N8yuMXuXzx/c2Vd4XoMPO8+E918zeXn5IF0FRVtGShBfkfQea2wHQ== + version "1.0.30001148" + resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001148.tgz#dc97c7ed918ab33bf8706ddd5e387287e015d637" + integrity sha512-E66qcd0KMKZHNJQt9hiLZGE3J4zuTqE1OnU53miEVtylFbwOEmeA5OsRu90noZful+XGSQOni1aT2tiqu/9yYw== capture-exit@^2.0.0: version "2.0.0" @@ -3749,26 +3677,16 @@ chokidar@^2.1.8: optionalDependencies: fsevents "^1.2.7" -chokidar@^3.4.1: - version "3.4.2" - resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-3.4.2.tgz#38dc8e658dec3809741eb3ef7bb0a47fe424232d" - integrity sha512-IZHaDeBeI+sZJRX7lGcXsdzgvZqKv6sECqsbErJA4mHWfpRrD8B97kSFN4cQz6nGBGiuFia1MKR4d6c1o8Cv7A== - dependencies: - anymatch "~3.1.1" - braces "~3.0.2" - glob-parent "~5.1.0" - is-binary-path "~2.1.0" - is-glob "~4.0.1" - normalize-path "~3.0.0" - readdirp "~3.4.0" - optionalDependencies: - fsevents "~2.1.2" - chownr@^1.1.1, chownr@^1.1.2: version "1.1.4" resolved "https://registry.yarnpkg.com/chownr/-/chownr-1.1.4.tgz#6fc9d7b42d32a583596337666e7d08084da2cc6b" integrity sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg== +chownr@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/chownr/-/chownr-2.0.0.tgz#15bfbe53d2eab4cf70f18a8cd68ebe5b3cb1dece" + integrity sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ== + chrome-trace-event@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/chrome-trace-event/-/chrome-trace-event-1.0.2.tgz#234090ee97c7d4ad1a2c4beae27505deffc608a4" @@ -3781,14 +3699,6 @@ ci-info@^2.0.0: resolved "https://registry.yarnpkg.com/ci-info/-/ci-info-2.0.0.tgz#67a9e964be31a51e15e5010d58e6f12834002f46" integrity sha512-5tK7EtrZ0N+OLFMthtqOj4fI2Jeb88C4CAZPu25LDVUgXJ0A3Js4PMGqrn0JU1W0Mh1/Z8wZzYPxqUrXeBboCQ== -cipher-base@^1.0.0, cipher-base@^1.0.1, cipher-base@^1.0.3: - version "1.0.4" - resolved "https://registry.yarnpkg.com/cipher-base/-/cipher-base-1.0.4.tgz#8760e4ecc272f4c363532f926d874aae2c1397de" - integrity sha512-Kkht5ye6ZGmwv40uUDZztayT2ThLQGfnj/T71N/XzeZeo3nf8foyW7zGTsPYkEya3m5f3cAypH+qe7YOrM1U2Q== - dependencies: - inherits "^2.0.1" - safe-buffer "^5.0.1" - class-utils@^0.3.5: version "0.3.6" resolved "https://registry.yarnpkg.com/class-utils/-/class-utils-0.3.6.tgz#f93369ae8b9a7ce02fd41faad0ca83033190c463" @@ -4116,21 +4026,11 @@ connect-history-api-fallback@^1.6.0: resolved "https://registry.yarnpkg.com/connect-history-api-fallback/-/connect-history-api-fallback-1.6.0.tgz#8b32089359308d111115d81cad3fceab888f97bc" integrity sha512-e54B99q/OUoH64zYYRf3HBP5z24G38h5D3qXu23JGRoigpX5Ss4r9ZnDk3g0Z8uQC2x2lPaJ+UlWBc1ZWBWdLg== -console-browserify@^1.1.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/console-browserify/-/console-browserify-1.2.0.tgz#67063cef57ceb6cf4993a2ab3a55840ae8c49336" - integrity sha512-ZMkYO/LkF17QvCPqM0gxw8yUzigAOZOSWSHg91FH6orS7vcEj5dVZTidN2fQ14yBSdg97RqhSNwLUXInd52OTA== - console-control-strings@^1.0.0, console-control-strings@~1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/console-control-strings/-/console-control-strings-1.1.0.tgz#3d7cf4464db6446ea644bf4b39507f9851008e8e" integrity sha1-PXz0Rk22RG6mRL9LOVB/mFEAjo4= -constants-browserify@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/constants-browserify/-/constants-browserify-1.0.0.tgz#c20b96d8c617748aaf1c16021760cd27fcb8cb75" - integrity sha1-wguW2MYXdIqvHBYCF2DNJ/y4y3U= - content-disposition@0.5.3: version "0.5.3" resolved "https://registry.yarnpkg.com/content-disposition/-/content-disposition-0.5.3.tgz#e130caf7e7279087c5616c2007d0485698984fbd" @@ -4299,14 +4199,6 @@ cosmiconfig@^7.0.0: path-type "^4.0.0" yaml "^1.10.0" -create-ecdh@^4.0.0: - version "4.0.4" - resolved "https://registry.yarnpkg.com/create-ecdh/-/create-ecdh-4.0.4.tgz#d6e7f4bffa66736085a0762fd3a632684dabcc4e" - integrity sha512-mf+TCx8wWc9VpuxfP2ht0iSISLZnt0JgWlrOKZiNqyUZWnjIaCIVNQArMHnCZKfEYRg6IM7A+NeJoN8gf/Ws0A== - dependencies: - bn.js "^4.1.0" - elliptic "^6.5.3" - create-error-class@^3.0.0: version "3.0.2" resolved "https://registry.yarnpkg.com/create-error-class/-/create-error-class-3.0.2.tgz#06be7abef947a3f14a30fd610671d401bca8b7b6" @@ -4314,29 +4206,6 @@ create-error-class@^3.0.0: dependencies: capture-stack-trace "^1.0.0" -create-hash@^1.1.0, create-hash@^1.1.2, create-hash@^1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/create-hash/-/create-hash-1.2.0.tgz#889078af11a63756bcfb59bd221996be3a9ef196" - integrity sha512-z00bCGNHDG8mHAkP7CtT1qVu+bFQUPjYq/4Iv3C3kWjTFV10zIjfSoeqXo9Asws8gwSHDGj/hl2u4OGIjapeCg== - dependencies: - cipher-base "^1.0.1" - inherits "^2.0.1" - md5.js "^1.3.4" - ripemd160 "^2.0.1" - sha.js "^2.4.0" - -create-hmac@^1.1.0, create-hmac@^1.1.4, create-hmac@^1.1.7: - version "1.1.7" - resolved "https://registry.yarnpkg.com/create-hmac/-/create-hmac-1.1.7.tgz#69170c78b3ab957147b2b8b04572e47ead2243ff" - integrity sha512-MJG9liiZ+ogc4TzUwuvbER1JRdgvUFSB5+VR/g5h82fGaIRWMWddtKBHi7/sVhfjQZ6SehlyhvQYrcYkaUIpLg== - dependencies: - cipher-base "^1.0.3" - create-hash "^1.1.0" - inherits "^2.0.1" - ripemd160 "^2.0.0" - safe-buffer "^5.0.1" - sha.js "^2.4.8" - cross-spawn@^6.0.0, cross-spawn@^6.0.5: version "6.0.5" resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-6.0.5.tgz#4a5ec7c64dfae22c3a14124dbacdee846d80cbc4" @@ -4348,16 +4217,7 @@ cross-spawn@^6.0.0, cross-spawn@^6.0.5: shebang-command "^1.2.0" which "^1.2.9" -cross-spawn@^7.0.0: - version "7.0.1" - resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-7.0.1.tgz#0ab56286e0f7c24e153d04cc2aa027e43a9a5d14" - integrity sha512-u7v4o84SwFpD32Z8IIcPZ6z1/ie24O6RU3RbtL5Y316l3KuHVPx9ItBgWQ6VlfAFnRnTtMUrsQ9MUUTuEZjogg== - dependencies: - path-key "^3.1.0" - shebang-command "^2.0.0" - which "^2.0.1" - -cross-spawn@^7.0.3: +cross-spawn@^7.0.0, cross-spawn@^7.0.3: version "7.0.3" resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-7.0.3.tgz#f73a85b9d5d41d045551c177e2882d4ac85728a6" integrity sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w== @@ -4366,23 +4226,6 @@ cross-spawn@^7.0.3: shebang-command "^2.0.0" which "^2.0.1" -crypto-browserify@^3.11.0: - version "3.12.0" - resolved "https://registry.yarnpkg.com/crypto-browserify/-/crypto-browserify-3.12.0.tgz#396cf9f3137f03e4b8e532c58f698254e00f80ec" - integrity sha512-fz4spIh+znjO2VjL+IdhEpRJ3YN6sMzITSBijk6FK2UvTqruSQW+/cCZTSNsMiZNvUeq0CqurF+dAbyiGOY6Wg== - dependencies: - browserify-cipher "^1.0.0" - browserify-sign "^4.0.0" - create-ecdh "^4.0.0" - create-hash "^1.1.0" - create-hmac "^1.1.0" - diffie-hellman "^5.0.0" - inherits "^2.0.1" - pbkdf2 "^3.0.3" - public-encrypt "^4.0.0" - randombytes "^2.0.0" - randomfill "^1.0.3" - cssom@^0.4.1: version "0.4.4" resolved "https://registry.yarnpkg.com/cssom/-/cssom-0.4.4.tgz#5a66cf93d2d0b661d80bf6a44fb65f5c2e4e0a10" @@ -4661,14 +4504,6 @@ deprecation@^2.0.0, deprecation@^2.3.1: resolved "https://registry.yarnpkg.com/deprecation/-/deprecation-2.3.1.tgz#6368cbdb40abf3373b525ac87e4a260c3a700919" integrity sha512-xmHIy4F3scKVwMsQ4WnVaS8bHOx0DmVwRywosKhaILI0ywMDWPtBSku2HNxRvF7jtwDRsoEwYQSfbxj8b7RlJQ== -des.js@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/des.js/-/des.js-1.0.1.tgz#5382142e1bdc53f85d86d53e5f4aa7deb91e0843" - integrity sha512-Q0I4pfFrv2VPd34/vfLrFOoRmlYj3OV50i7fskps1jZWK1kApMWWT9G6RRUeYedLcBDIhnSDaUvJMb3AhUlaEA== - dependencies: - inherits "^2.0.1" - minimalistic-assert "^1.0.0" - destroy@~1.0.4: version "1.0.4" resolved "https://registry.yarnpkg.com/destroy/-/destroy-1.0.4.tgz#978857442c44749e4206613e37946205826abd80" @@ -4717,15 +4552,6 @@ diff@^4.0.1, diff@^4.0.2: resolved "https://registry.yarnpkg.com/diff/-/diff-4.0.2.tgz#60f3aecb89d5fae520c11aa19efc2bb982aade7d" integrity sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A== -diffie-hellman@^5.0.0: - version "5.0.3" - resolved "https://registry.yarnpkg.com/diffie-hellman/-/diffie-hellman-5.0.3.tgz#40e8ee98f55a2149607146921c63e1ae5f3d2875" - integrity sha512-kqag/Nl+f3GwyK25fhUMYj81BUOrZ9IuJsjIcDE5icNM9FJHAVm3VcUDxdLPoQtTuUylWm6ZIknYJwwaPxsUzg== - dependencies: - bn.js "^4.1.0" - miller-rabin "^4.0.0" - randombytes "^2.0.0" - dir-glob@2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/dir-glob/-/dir-glob-2.0.0.tgz#0b205d2b6aef98238ca286598a8204d29d0a0034" @@ -4775,11 +4601,6 @@ doctrine@^3.0.0: dependencies: esutils "^2.0.2" -domain-browser@^1.1.1: - version "1.2.0" - resolved "https://registry.yarnpkg.com/domain-browser/-/domain-browser-1.2.0.tgz#3d31f50191a6749dd1375a7f522e823d42e54eda" - integrity sha512-jnjyiM6eRyZl2H+W8Q/zLMA481hzi0eszAaBUzIVnmYVDBbnLxVNnfu1HgEBvCbL+71FrxMl3E6lpKH7Ge3OXA== - domexception@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/domexception/-/domexception-1.0.1.tgz#937442644ca6a31261ef36e3ec677fe805582c90" @@ -4869,28 +4690,15 @@ ejs@^3.0.1: jake "^10.6.1" electron-to-chromium@^1.3.571: - version "1.3.577" - resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.3.577.tgz#9885f3f72c6e3367010b461ff6f2d9624a929720" - integrity sha512-dSb64JQSFif/pD8mpVAgSFkbVi6YHbK6JeEziwNNmXlr/Ne2rZtseFK5SM7JoWSLf6gP0gVvRGi4/2ZRhSX/rA== + version "1.3.578" + resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.3.578.tgz#e6671936f4571a874eb26e2e833aa0b2c0b776e0" + integrity sha512-z4gU6dA1CbBJsAErW5swTGAaU2TBzc2mPAonJb00zqW1rOraDo2zfBMDRvaz9cVic+0JEZiYbHWPw/fTaZlG2Q== elegant-spinner@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/elegant-spinner/-/elegant-spinner-1.0.1.tgz#db043521c95d7e303fd8f345bedc3349cfb0729e" integrity sha1-2wQ1IcldfjA/2PNFvtwzSc+wcp4= -elliptic@^6.5.3: - version "6.5.3" - resolved "https://registry.yarnpkg.com/elliptic/-/elliptic-6.5.3.tgz#cb59eb2efdaf73a0bd78ccd7015a62ad6e0f93d6" - integrity sha512-IMqzv5wNQf+E6aHeIqATs0tOLeOTwj1QKbRcS3jBbYkl5oLAserA8yJTT7/VyHUYG91PRmPyeQDObKLPpeS4dw== - dependencies: - bn.js "^4.4.0" - brorand "^1.0.1" - hash.js "^1.0.0" - hmac-drbg "^1.0.0" - inherits "^2.0.1" - minimalistic-assert "^1.0.0" - minimalistic-crypto-utils "^1.0.0" - emoji-regex@^7.0.1: version "7.0.3" resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-7.0.3.tgz#933a04052860c85e83c122479c4748a8e4c72156" @@ -4901,11 +4709,6 @@ emoji-regex@^8.0.0: resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-8.0.0.tgz#e818fd69ce5ccfcb404594f842963bf53164cc37" integrity sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A== -emojis-list@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/emojis-list/-/emojis-list-3.0.0.tgz#5570662046ad29e2e916e71aae260abdff4f6a78" - integrity sha512-/kyM18EfinwXZbno9FyUGeFh87KC8HRQBQGildHZbEuRyWFOmv1U10o9BBp8XVZDVNNuQKyIGIu5ZYAAXJ0V2Q== - encodeurl@~1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/encodeurl/-/encodeurl-1.0.2.tgz#ad3ff4c86ec2d029322f5a02c3a9a606c95b3f59" @@ -4925,14 +4728,13 @@ end-of-stream@^1.0.0, end-of-stream@^1.1.0: dependencies: once "^1.4.0" -enhanced-resolve@^4.3.0: - version "4.3.0" - resolved "https://registry.yarnpkg.com/enhanced-resolve/-/enhanced-resolve-4.3.0.tgz#3b806f3bfafc1ec7de69551ef93cca46c1704126" - integrity sha512-3e87LvavsdxyoCfGusJnrZ5G8SLPOFeHSNpZI/ATL9a5leXo2k0w6MKnbqhdBad9qTobSfB20Ld7UmgoNbAZkQ== +enhanced-resolve@^5.2.0: + version "5.2.0" + resolved "https://registry.yarnpkg.com/enhanced-resolve/-/enhanced-resolve-5.2.0.tgz#3db3307a608f236f33aeea79303d32915792cbab" + integrity sha512-NZlGLl8DxmZoq0uqPPtJfsCAir68uR047+Udsh1FH4+5ydGQdMurn/A430A1BtxASVmMEuS7/XiJ5OxJ9apAzQ== dependencies: - graceful-fs "^4.1.2" - memory-fs "^0.5.0" - tapable "^1.0.0" + graceful-fs "^4.2.4" + tapable "^2.0.0" enquirer@^2.3.4, enquirer@^2.3.6: version "2.3.6" @@ -4961,7 +4763,7 @@ errlop@^2.0.0: resolved "https://registry.yarnpkg.com/errlop/-/errlop-2.2.0.tgz#1ff383f8f917ae328bebb802d6ca69666a42d21b" integrity sha512-e64Qj9+4aZzjzzFpZC7p5kmm/ccCrbLhAJplhsDXQFs87XTsXwOpH4s1Io2s90Tau/8r2j9f4l/thhDevRjzxw== -errno@^0.1.3, errno@~0.1.7: +errno@^0.1.3: version "0.1.7" resolved "https://registry.yarnpkg.com/errno/-/errno-0.1.7.tgz#4684d71779ad39af177e3f007996f7c67c852618" integrity sha512-MfrRBDWzIWifgq6tJj60gkAwtLNb6sQPlcFrSOflcP1aFmmruKQ2wRnze/8V6kgyz7H3FF8Npzv78mZ7XLLflg== @@ -5099,15 +4901,7 @@ eslint-plugin-prettier@^3.1.4: dependencies: prettier-linter-helpers "^1.0.0" -eslint-scope@^4.0.3: - version "4.0.3" - resolved "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-4.0.3.tgz#ca03833310f6889a3264781aa82e63eb9cfe7848" - integrity sha512-p7VutNr1O/QrxysMo3E45FjYDTeXBy0iTltPFNSqKAIfjDSXC+4dj+qfyuD8bfAXrW/y6lW3O76VaYNPKfpKrg== - dependencies: - esrecurse "^4.1.0" - estraverse "^4.1.1" - -eslint-scope@^5.0.0: +eslint-scope@^5.0.0, eslint-scope@^5.1.0: version "5.1.1" resolved "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-5.1.1.tgz#e786e59a66cb92b3f6c1fb0d508aab174848f48c" integrity sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw== @@ -5198,7 +4992,7 @@ esquery@^1.0.1: dependencies: estraverse "^5.1.0" -esrecurse@^4.1.0, esrecurse@^4.3.0: +esrecurse@^4.3.0: version "4.3.0" resolved "https://registry.yarnpkg.com/esrecurse/-/esrecurse-4.3.0.tgz#7ad7964d679abb28bee72cec63758b1c5d2c9921" integrity sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag== @@ -5235,7 +5029,7 @@ eventemitter3@^4.0.0: resolved "https://registry.yarnpkg.com/eventemitter3/-/eventemitter3-4.0.7.tgz#2de9b68f6528d5644ef5c59526a1b4a07306169f" integrity sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw== -events@^3.0.0: +events@^3.2.0: version "3.2.0" resolved "https://registry.yarnpkg.com/events/-/events-3.2.0.tgz#93b87c18f8efcd4202a461aec4dfc0556b639379" integrity sha512-/46HWwbfCX2xTawVfkKLGxMifJYQBWMwY1mjywRtb4c9x8l5NP3KoJtnIOiL1hfdRkIuYhETxQlo62IF8tcnlg== @@ -5247,14 +5041,6 @@ eventsource@^1.0.7: dependencies: original "^1.0.0" -evp_bytestokey@^1.0.0, evp_bytestokey@^1.0.3: - version "1.0.3" - resolved "https://registry.yarnpkg.com/evp_bytestokey/-/evp_bytestokey-1.0.3.tgz#7fcbdb198dc71959432efe13842684e0525acb02" - integrity sha512-/f2Go4TognH/KvCISP7OUsHn85hT9nUkxxA9BEWxFn+Oj9o8ZNLm/40hdlgSLyuOimsrTKLUMEorQexp/aPQeA== - dependencies: - md5.js "^1.3.4" - safe-buffer "^5.1.1" - exec-sh@^0.3.2: version "0.3.4" resolved "https://registry.yarnpkg.com/exec-sh/-/exec-sh-0.3.4.tgz#3a018ceb526cc6f6df2bb504b2bfe8e3a4934ec5" @@ -5583,7 +5369,7 @@ finalhandler@~1.1.2: statuses "~1.5.0" unpipe "~1.0.0" -find-cache-dir@^2.0.0, find-cache-dir@^2.1.0: +find-cache-dir@^2.0.0: version "2.1.0" resolved "https://registry.yarnpkg.com/find-cache-dir/-/find-cache-dir-2.1.0.tgz#8d0f94cd13fe43c6c7c261a0d86115ca918c05f7" integrity sha512-Tq6PixE0w/VMFfCgbONnkiQIVol/JJL7nRMi20fqzA4NRs9AfeqMGeRdPi3wIhYkxjeBaWh2rxwapn5Tu3IqOQ== @@ -5592,6 +5378,15 @@ find-cache-dir@^2.0.0, find-cache-dir@^2.1.0: make-dir "^2.0.0" pkg-dir "^3.0.0" +find-cache-dir@^3.3.1: + version "3.3.1" + resolved "https://registry.yarnpkg.com/find-cache-dir/-/find-cache-dir-3.3.1.tgz#89b33fad4a4670daa94f855f7fbe31d6d84fe880" + integrity sha512-t2GDMt3oGC/v+BMwzmllWDuJF/xcDtE5j/fCGbqDD7OLuJkj0cfh1YSA5VKPvwMeLFLNDBkwOKZ2X85jGLVftQ== + dependencies: + commondir "^1.0.1" + make-dir "^3.0.2" + pkg-dir "^4.1.0" + find-config@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/find-config/-/find-config-1.0.0.tgz#eafa2b9bc07fa9c90e9a0c3ef9cecf1cc800f530" @@ -5779,6 +5574,13 @@ fs-minipass@^1.2.5: dependencies: minipass "^2.6.0" +fs-minipass@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/fs-minipass/-/fs-minipass-2.1.0.tgz#7f5036fdbf12c63c169190cbe4199c852271f9fb" + integrity sha512-V/JgOLFCS+R6Vcq0slCuaeWEdNC3ouDlJMNIsacH2VtALiu9mV4LPrHc5cDl8k5aw6J8jwgWWpiTo5RYhmIzvg== + dependencies: + minipass "^3.0.0" + fs-write-stream-atomic@^1.0.8: version "1.0.10" resolved "https://registry.yarnpkg.com/fs-write-stream-atomic/-/fs-write-stream-atomic-1.0.10.tgz#b47df53493ef911df75731e70a9ded0189db40c9" @@ -5802,7 +5604,7 @@ fsevents@^1.2.7: bindings "^1.5.0" nan "^2.12.1" -fsevents@^2.1.2, fsevents@~2.1.2: +fsevents@^2.1.2: version "2.1.3" resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-2.1.3.tgz#fb738703ae8d2f9fe900c33836ddebee8b97f23e" integrity sha512-Auw9a4AxqWpa9GUfj370BMPzzyncfBABW8Mab7BGWBYDj4Isgq+cDKtx0i6u9jcX9pQDnswsaaOTgTmA5pEjuQ== @@ -6016,7 +5818,7 @@ glob-parent@^3.1.0: is-glob "^3.1.0" path-dirname "^1.0.0" -glob-parent@^5.0.0, glob-parent@^5.1.0, glob-parent@~5.1.0: +glob-parent@^5.0.0, glob-parent@^5.1.0: version "5.1.1" resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-5.1.1.tgz#b6c1ef417c4e5663ea498f1c45afac6916bbc229" integrity sha512-FnI+VGOpnlGHWZxthPGR+QhR78fuiK0sNLkHQv+bL9fQi57lNNdquIbna/WrfROrolq8GK5Ek6BiMwqL/voRYQ== @@ -6028,6 +5830,11 @@ glob-to-regexp@^0.3.0: resolved "https://registry.yarnpkg.com/glob-to-regexp/-/glob-to-regexp-0.3.0.tgz#8c5a1494d2066c570cc3bfe4496175acc4d502ab" integrity sha1-jFoUlNIGbFcMw7/kSWF1rMTVAqs= +glob-to-regexp@^0.4.1: + version "0.4.1" + resolved "https://registry.yarnpkg.com/glob-to-regexp/-/glob-to-regexp-0.4.1.tgz#c75297087c851b9a578bd217dd59a92f59fe546e" + integrity sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw== + glob@^7.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.6: version "7.1.6" resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.6.tgz#141f33b81a7c2492e125594307480c46679278a6" @@ -6317,32 +6124,6 @@ has@^1.0.3: dependencies: function-bind "^1.1.1" -hash-base@^3.0.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/hash-base/-/hash-base-3.1.0.tgz#55c381d9e06e1d2997a883b4a3fddfe7f0d3af33" - integrity sha512-1nmYp/rhMDiE7AYkDw+lLwlAzz0AntGIe51F3RfFfEqyQ3feY2eI/NcwC6umIQVOASPMsWJLJScWKSSvzL9IVA== - dependencies: - inherits "^2.0.4" - readable-stream "^3.6.0" - safe-buffer "^5.2.0" - -hash.js@^1.0.0, hash.js@^1.0.3: - version "1.1.7" - resolved "https://registry.yarnpkg.com/hash.js/-/hash.js-1.1.7.tgz#0babca538e8d4ee4a0f8988d68866537a003cf42" - integrity sha512-taOaskGt4z4SOANNseOviYDvjEJinIkRgmp7LbKP2YTTmVxWBl87s/uzK9r+44BclBSp2X7K1hqeNfz9JbBeXA== - dependencies: - inherits "^2.0.3" - minimalistic-assert "^1.0.1" - -hmac-drbg@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/hmac-drbg/-/hmac-drbg-1.0.1.tgz#d2745701025a6c775a6c545793ed502fc0c649a1" - integrity sha1-0nRXAQJabHdabFRXk+1QL8DGSaE= - dependencies: - hash.js "^1.0.3" - minimalistic-assert "^1.0.0" - minimalistic-crypto-utils "^1.0.1" - homedir-polyfill@^1.0.1: version "1.0.3" resolved "https://registry.yarnpkg.com/homedir-polyfill/-/homedir-polyfill-1.0.3.tgz#743298cef4e5af3e194161fbadcc2151d3a058e8" @@ -6475,11 +6256,6 @@ http-signature@~1.2.0: jsprim "^1.2.2" sshpk "^1.7.0" -https-browserify@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/https-browserify/-/https-browserify-1.0.0.tgz#ec06c10e0a34c0f2faf199f7fd7fc78fffd03c73" - integrity sha1-7AbBDgo0wPL68Zn3/X/Hj//QPHM= - https-proxy-agent@^2.2.3: version "2.2.4" resolved "https://registry.yarnpkg.com/https-proxy-agent/-/https-proxy-agent-2.2.4.tgz#4ee7a737abd92678a293d9b34a1af4d0d08c787b" @@ -6530,11 +6306,6 @@ iconv-lite@^0.6.2: dependencies: safer-buffer ">= 2.1.2 < 3.0.0" -ieee754@^1.1.4: - version "1.1.13" - resolved "https://registry.yarnpkg.com/ieee754/-/ieee754-1.1.13.tgz#ec168558e95aa181fd87d37f55c32bbcb6708b84" - integrity sha512-4vf7I2LYV/HaWerSo3XmlMkp5eZ83i+/CDluXi/IGTs/O1sejBNhTtnxzmRZfvOUqj7lZjqHkeTvpgSFDlWZTg== - iferr@^0.1.5: version "0.1.5" resolved "https://registry.yarnpkg.com/iferr/-/iferr-0.1.5.tgz#c60eed69e6d8fdb6b3104a1fcbca1c192dc5b501" @@ -6636,16 +6407,11 @@ inflight@^1.0.4: once "^1.3.0" wrappy "1" -inherits@2, inherits@2.0.4, inherits@^2.0.1, inherits@^2.0.3, inherits@^2.0.4, inherits@~2.0.1, inherits@~2.0.3: +inherits@2, inherits@2.0.4, inherits@^2.0.1, inherits@^2.0.3, inherits@^2.0.4, inherits@~2.0.3: version "2.0.4" resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.4.tgz#0fa2c64f932917c3433a0ded55363aae37416b7c" integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ== -inherits@2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.1.tgz#b17d08d326b4423e568eff719f91b0b1cbdf69f1" - integrity sha1-sX0I0ya0Qj5Wjv9xn5GwscvfafE= - inherits@2.0.3: version "2.0.3" resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.3.tgz#633c2c83e3da42a502f52466022480f4208261de" @@ -6789,13 +6555,6 @@ is-binary-path@^1.0.0: dependencies: binary-extensions "^1.0.0" -is-binary-path@~2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/is-binary-path/-/is-binary-path-2.1.0.tgz#ea1f7f3b80f064236e83470f86c09c254fb45b09" - integrity sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw== - dependencies: - binary-extensions "^2.0.0" - is-buffer@^1.1.5: version "1.1.6" resolved "https://registry.yarnpkg.com/is-buffer/-/is-buffer-1.1.6.tgz#efaa2ea9daa0d7ab2ea13a97b2b8ad51fefbe8be" @@ -6916,7 +6675,7 @@ is-glob@^3.1.0: dependencies: is-extglob "^2.1.0" -is-glob@^4.0.0, is-glob@^4.0.1, is-glob@~4.0.1: +is-glob@^4.0.0, is-glob@^4.0.1: version "4.0.1" resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-4.0.1.tgz#7567dbe9f2f5e2467bc77ab83c4a29482407a5dc" integrity sha512-5G0tKtBTFImOqDnLB2hG6Bp2qcKEFduo4tZu9MT/H6NQv/ghhy30o55ufafxJ/LdH79LLs2Kfrn85TLKyA7BUg== @@ -7095,7 +6854,7 @@ isarray@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: +isarray@1.0.0, isarray@~1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/isarray/-/isarray-1.0.0.tgz#bb935d48582cba168c06834957a54a3e07124f11" integrity sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE= @@ -7574,6 +7333,15 @@ jest-worker@^25.5.0: merge-stream "^2.0.0" supports-color "^7.0.0" +jest-worker@^26.5.0: + version "26.5.0" + resolved "https://registry.yarnpkg.com/jest-worker/-/jest-worker-26.5.0.tgz#87deee86dbbc5f98d9919e0dadf2c40e3152fa30" + integrity sha512-kTw66Dn4ZX7WpjZ7T/SUDgRhapFRKWmisVAF0Rv4Fu8SLFD7eLbqpLvbxVqYhSgaWa7I+bW7pHnbyfNsH6stug== + dependencies: + "@types/node" "*" + merge-stream "^2.0.0" + supports-color "^7.0.0" + jest@^25.2.3: version "25.5.4" resolved "https://registry.yarnpkg.com/jest/-/jest-25.5.4.tgz#f21107b6489cfe32b076ce2adcadee3587acb9db" @@ -7714,13 +7482,6 @@ json5@2.x, json5@^2.1.2: dependencies: minimist "^1.2.5" -json5@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/json5/-/json5-1.0.1.tgz#779fb0018604fa854eacbf6252180d83543e3dbe" - integrity sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow== - dependencies: - minimist "^1.2.0" - jsonfile@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/jsonfile/-/jsonfile-4.0.0.tgz#8771aae0799b64076b76640fca058f9c10e33ecb" @@ -7972,19 +7733,10 @@ load-json-file@^5.3.0: strip-bom "^3.0.0" type-fest "^0.3.0" -loader-runner@^2.4.0: - version "2.4.0" - resolved "https://registry.yarnpkg.com/loader-runner/-/loader-runner-2.4.0.tgz#ed47066bfe534d7e84c4c7b9998c2a75607d9357" - integrity sha512-Jsmr89RcXGIwivFY21FcRrisYZfvLMTWx5kOLc+JTxtpBOG6xML0vzbc6SEQG2FO9/4Fc3wW4LVcB5DmGflaRw== - -loader-utils@^1.2.3: - version "1.4.0" - resolved "https://registry.yarnpkg.com/loader-utils/-/loader-utils-1.4.0.tgz#c579b5e34cb34b1a74edc6c1fb36bfa371d5a613" - integrity sha512-qH0WSMBtn/oHuwjy/NucEgbx5dbxxnxup9s4PVXJUDHZBQY+s0NWA9rJf53RBnQZxfch7euUui7hpoAPvALZdA== - dependencies: - big.js "^5.2.2" - emojis-list "^3.0.0" - json5 "^1.0.1" +loader-runner@^4.1.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/loader-runner/-/loader-runner-4.1.0.tgz#f70bc0c29edbabdf2043e7ee73ccc3fe1c96b42d" + integrity sha512-oR4lB4WvwFoC70ocraKhn5nkKSs23t57h9udUgw8o0iH8hMXeEoRuUgfcvgUwAJ1ZpRqBvcou4N2SMvM1DwMrA== locate-path@^2.0.0: version "2.0.0" @@ -8160,6 +7912,13 @@ lru-cache@^5.1.1: dependencies: yallist "^3.0.2" +lru-cache@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-6.0.0.tgz#6d6fe6570ebd96aaf90fcad1dafa3b2566db3a94" + integrity sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA== + dependencies: + yallist "^4.0.0" + macos-release@^2.2.0: version "2.4.1" resolved "https://registry.yarnpkg.com/macos-release/-/macos-release-2.4.1.tgz#64033d0ec6a5e6375155a74b1a1eba8e509820ac" @@ -8180,7 +7939,7 @@ make-dir@^2.0.0, make-dir@^2.1.0: pify "^4.0.1" semver "^5.6.0" -make-dir@^3.0.0: +make-dir@^3.0.0, make-dir@^3.0.2: version "3.1.0" resolved "https://registry.yarnpkg.com/make-dir/-/make-dir-3.1.0.tgz#415e967046b3a7f1d185277d84aa58203726a13f" integrity sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw== @@ -8250,15 +8009,6 @@ map-visit@^1.0.0: dependencies: object-visit "^1.0.0" -md5.js@^1.3.4: - version "1.3.5" - resolved "https://registry.yarnpkg.com/md5.js/-/md5.js-1.3.5.tgz#b5d07b8e3216e3e27cd728d72f70d1e6a342005f" - integrity sha512-xitP+WxNPcTTOgnTJcrhM0xvdPepipPSf3I8EIpGKeFLjt3PlJLIDG3u8EX53ZIubkb+5U2+3rELYpEhHhzdkg== - dependencies: - hash-base "^3.0.0" - inherits "^2.0.1" - safe-buffer "^5.1.2" - media-typer@0.3.0: version "0.3.0" resolved "https://registry.yarnpkg.com/media-typer/-/media-typer-0.3.0.tgz#8710d7af0aa626f8fffa1ce00168545263255748" @@ -8324,14 +8074,6 @@ memory-fs@^0.4.1: errno "^0.1.3" readable-stream "^2.0.1" -memory-fs@^0.5.0: - version "0.5.0" - resolved "https://registry.yarnpkg.com/memory-fs/-/memory-fs-0.5.0.tgz#324c01288b88652966d161db77838720845a8e3c" - integrity sha512-jA0rdU5KoQMC0e6ppoNRtpp6vjFq6+NY7r8hywnC7V+1Xj/MtHwGIbB1QaK/dunyjWteJzmkpd7ooeWg10T7GA== - dependencies: - errno "^0.1.3" - readable-stream "^2.0.1" - meow@^3.3.0: version "3.7.0" resolved "https://registry.yarnpkg.com/meow/-/meow-3.7.0.tgz#72cb668b425228290abbfa856892587308a801fb" @@ -8444,14 +8186,6 @@ micromatch@^3.1.10, micromatch@^3.1.4: snapdragon "^0.8.1" to-regex "^3.0.2" -miller-rabin@^4.0.0: - version "4.0.1" - resolved "https://registry.yarnpkg.com/miller-rabin/-/miller-rabin-4.0.1.tgz#f080351c865b0dc562a8462966daa53543c78a4d" - integrity sha512-115fLhvZVqWwHPbClyntxEVfVDfl9DLLTuJvq3g2O/Oxi8AiNouAHvDSzHS0viUJc+V5vm3eq91Xwqn9dp4jRA== - dependencies: - bn.js "^4.0.0" - brorand "^1.0.1" - mime-db@1.44.0: version "1.44.0" resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.44.0.tgz#fa11c5eb0aca1334b4233cb4d52f10c5a6272f92" @@ -8462,7 +8196,7 @@ mime-db@1.44.0: resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.45.0.tgz#cceeda21ccd7c3a745eba2decd55d4b73e7879ea" integrity sha512-CkqLUxUk15hofLoLyljJSrukZi8mAtgd+yE5uO4tqRZsdsAJKv0O+rFMhVDRJgozy+yG6md5KwuXhD4ocIoP+w== -mime-types@^2.1.12, mime-types@~2.1.17, mime-types@~2.1.19, mime-types@~2.1.24: +mime-types@^2.1.12, mime-types@^2.1.27, mime-types@~2.1.17, mime-types@~2.1.19, mime-types@~2.1.24: version "2.1.27" resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.27.tgz#47949f98e279ea53119f5722e0f34e529bec009f" integrity sha512-JIhqnCasI9yD+SsmkquHBxTSEuZdQX5BuQnS2Vc7puQQQ+8yiP5AY5uWhpdv4YL4VM5c6iliiYWPgJ/nJQLp7w== @@ -8504,16 +8238,11 @@ min-indent@^1.0.0: resolved "https://registry.yarnpkg.com/min-indent/-/min-indent-1.0.1.tgz#a63f681673b30571fbe8bc25686ae746eefa9869" integrity sha512-I9jwMn07Sy/IwOj3zVkVik2JTvgpaykDZEigL6Rx6N9LbMywwUSMtxET+7lVoDLLd3O3IXwJwvuuns8UB/HeAg== -minimalistic-assert@^1.0.0, minimalistic-assert@^1.0.1: +minimalistic-assert@^1.0.0: version "1.0.1" resolved "https://registry.yarnpkg.com/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz#2e194de044626d4a10e7f7fbc00ce73e83e4d5c7" integrity sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A== -minimalistic-crypto-utils@^1.0.0, minimalistic-crypto-utils@^1.0.1: - version "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.2, minimatch@^3.0.4: version "3.0.4" resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.0.4.tgz#5166e286457f03306064be5497e8dbb0c3d32083" @@ -8543,6 +8272,27 @@ minimist@^1.1.1, minimist@^1.1.3, minimist@^1.2.0, minimist@^1.2.5: resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.5.tgz#67d66014b66a6a8aaa0c083c5fd58df4e4e97602" integrity sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw== +minipass-collect@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/minipass-collect/-/minipass-collect-1.0.2.tgz#22b813bf745dc6edba2576b940022ad6edc8c617" + integrity sha512-6T6lH0H8OG9kITm/Jm6tdooIbogG9e0tLgpY6mphXSm/A9u8Nq1ryBG+Qspiub9LjWlBPsPS3tWQ/Botq4FdxA== + dependencies: + minipass "^3.0.0" + +minipass-flush@^1.0.5: + version "1.0.5" + resolved "https://registry.yarnpkg.com/minipass-flush/-/minipass-flush-1.0.5.tgz#82e7135d7e89a50ffe64610a787953c4c4cbb373" + integrity sha512-JmQSYYpPUqX5Jyn1mXaRwOda1uQ8HP5KAT/oDSLCzt1BYRhQU0/hDtsB1ufZfEEzMZ9aAVmsBw8+FWsIXlClWw== + dependencies: + minipass "^3.0.0" + +minipass-pipeline@^1.2.2: + version "1.2.4" + resolved "https://registry.yarnpkg.com/minipass-pipeline/-/minipass-pipeline-1.2.4.tgz#68472f79711c084657c067c5c6ad93cddea8214c" + integrity sha512-xuIq7cIOt09RPRJ19gdi4b+RiNvDFYe5JH+ggNvBqGqpQXcru3PcRmOZuHBKWK1Txf9+cQ+HMVN4d6z46LZP7A== + dependencies: + minipass "^3.0.0" + minipass@^2.3.5, minipass@^2.6.0, minipass@^2.8.6, minipass@^2.9.0: version "2.9.0" resolved "https://registry.yarnpkg.com/minipass/-/minipass-2.9.0.tgz#e713762e7d3e32fed803115cf93e04bca9fcc9a6" @@ -8551,6 +8301,13 @@ minipass@^2.3.5, minipass@^2.6.0, minipass@^2.8.6, minipass@^2.9.0: safe-buffer "^5.1.2" yallist "^3.0.0" +minipass@^3.0.0, minipass@^3.1.1: + version "3.1.3" + resolved "https://registry.yarnpkg.com/minipass/-/minipass-3.1.3.tgz#7d42ff1f39635482e15f9cdb53184deebd5815fd" + integrity sha512-Mgd2GdMVzY+x3IJ+oHnVM+KG3lA5c8tnabyJKmHSaG2kAGpudxuOf8ToDkhumF7UzME7DecbQE9uOZhNm7PuJg== + dependencies: + yallist "^4.0.0" + minizlib@^1.2.1: version "1.3.3" resolved "https://registry.yarnpkg.com/minizlib/-/minizlib-1.3.3.tgz#2290de96818a34c29551c8a8d301216bd65a861d" @@ -8558,6 +8315,14 @@ minizlib@^1.2.1: dependencies: minipass "^2.9.0" +minizlib@^2.1.1: + version "2.1.2" + resolved "https://registry.yarnpkg.com/minizlib/-/minizlib-2.1.2.tgz#e90d3466ba209b932451508a11ce3d3632145931" + integrity sha512-bAxsR8BVfj60DWXHE3u30oHzfl4G7khkSuPW+qvpd7jFRHm7dLxOjUk1EHACJ/hxLY8phGJ0YhYHZo7jil7Qdg== + dependencies: + minipass "^3.0.0" + yallist "^4.0.0" + mississippi@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/mississippi/-/mississippi-3.0.0.tgz#ea0a3291f97e0b5e8776b363d5f0a12d94c67022" @@ -8594,7 +8359,7 @@ mkdirp@*, mkdirp@^1.0.0, mkdirp@^1.0.3, mkdirp@^1.0.4: resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-1.0.4.tgz#3eb5ed62622756d79a5f0e2a221dfebad75c2f7e" integrity sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw== -mkdirp@0.x, mkdirp@^0.5.0, mkdirp@^0.5.1, mkdirp@^0.5.3, mkdirp@^0.5.5: +mkdirp@0.x, mkdirp@^0.5.0, mkdirp@^0.5.1, mkdirp@^0.5.5: version "0.5.5" resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.5.5.tgz#d91cefd62d1436ca0f41620e251288d420099def" integrity sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ== @@ -8723,7 +8488,7 @@ negotiator@0.6.2: resolved "https://registry.yarnpkg.com/negotiator/-/negotiator-0.6.2.tgz#feacf7ccf525a77ae9634436a64883ffeca346fb" integrity sha512-hZXc7K2e+PgeI1eDBe/10Ard4ekbfrrqG8Ep+8Jmf4JID2bNg7NvCPOZN+kfF574pFQI7mum2AUqDidoKqcTOw== -neo-async@^2.5.0, neo-async@^2.6.0, neo-async@^2.6.1: +neo-async@^2.5.0, neo-async@^2.6.0, neo-async@^2.6.2: version "2.6.2" resolved "https://registry.yarnpkg.com/neo-async/-/neo-async-2.6.2.tgz#b4aafb93e3aeb2d8174ca53cf163ab7d7308305f" integrity sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw== @@ -8792,35 +8557,6 @@ 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@^2.2.1: - version "2.2.1" - resolved "https://registry.yarnpkg.com/node-libs-browser/-/node-libs-browser-2.2.1.tgz#b64f513d18338625f90346d27b0d235e631f6425" - integrity sha512-h/zcD8H9kaDZ9ALUWwlBUDo6TKF8a7qBSCSEGfjTVIYeqsioSKaAX+BN7NgiMGp6iSIXZ3PxgCu8KS3b71YK5Q== - dependencies: - assert "^1.1.1" - browserify-zlib "^0.2.0" - buffer "^4.3.0" - console-browserify "^1.1.0" - constants-browserify "^1.0.0" - crypto-browserify "^3.11.0" - domain-browser "^1.1.1" - events "^3.0.0" - https-browserify "^1.0.0" - os-browserify "^0.3.0" - path-browserify "0.0.1" - process "^0.11.10" - punycode "^1.2.4" - querystring-es3 "^0.2.0" - readable-stream "^2.3.3" - stream-browserify "^2.0.1" - stream-http "^2.7.2" - string_decoder "^1.0.0" - timers-browserify "^2.0.4" - tty-browserify "0.0.0" - url "^0.11.0" - util "^0.11.0" - vm-browserify "^1.0.1" - node-modules-regexp@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/node-modules-regexp/-/node-modules-regexp-1.0.0.tgz#8d9dbe28964a4ac5712e9131642107c71e90ec40" @@ -8867,7 +8603,7 @@ normalize-path@^2.1.1: dependencies: remove-trailing-separator "^1.0.1" -normalize-path@^3.0.0, normalize-path@~3.0.0: +normalize-path@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/normalize-path/-/normalize-path-3.0.0.tgz#0dcd69ff23a1c9b11fd0978316644a0388216a65" integrity sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA== @@ -8987,7 +8723,7 @@ oauth-sign@~0.9.0: resolved "https://registry.yarnpkg.com/oauth-sign/-/oauth-sign-0.9.0.tgz#47a7b016baa68b5fa0ecf3dee08a85c679ac6455" integrity sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ== -object-assign@^4.0.1, object-assign@^4.1.0, object-assign@^4.1.1: +object-assign@^4.0.1, object-assign@^4.1.0: version "4.1.1" resolved "https://registry.yarnpkg.com/object-assign/-/object-assign-4.1.1.tgz#2109adc7965887cfc05cbbd442cac8bfbb360863" integrity sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM= @@ -9130,11 +8866,6 @@ original@^1.0.0: dependencies: url-parse "^1.4.3" -os-browserify@^0.3.0: - version "0.3.0" - resolved "https://registry.yarnpkg.com/os-browserify/-/os-browserify-0.3.0.tgz#854373c7f5c2315914fc9bfc6bd8238fdda1ec27" - integrity sha1-hUNzx/XCMVkU/Jv8a9gjj92h7Cc= - os-homedir@^1.0.0: version "1.0.2" resolved "https://registry.yarnpkg.com/os-homedir/-/os-homedir-1.0.2.tgz#ffbc4988336e0e833de0c168c7ef152121aa7fb3" @@ -9342,11 +9073,6 @@ paged-request@^2.0.1: dependencies: axios "^0.18.0" -pako@~1.0.5: - version "1.0.11" - resolved "https://registry.yarnpkg.com/pako/-/pako-1.0.11.tgz#6c9599d340d54dfd3946380252a35705a6b992bf" - integrity sha512-4hLB8Py4zZce5s4yd9XzopqwVv/yGNhV1Bl8NTmCq1763HeK2+EwVTv+leGeL13Dnh2wfbqowVPXCIO0z4taYw== - parallel-transform@^1.1.0: version "1.2.0" resolved "https://registry.yarnpkg.com/parallel-transform/-/parallel-transform-1.2.0.tgz#9049ca37d6cb2182c3b1d2c720be94d14a5814fc" @@ -9363,17 +9089,6 @@ parent-module@^1.0.0: dependencies: callsites "^3.0.0" -parse-asn1@^5.0.0, parse-asn1@^5.1.5: - version "5.1.6" - resolved "https://registry.yarnpkg.com/parse-asn1/-/parse-asn1-5.1.6.tgz#385080a3ec13cb62a62d39409cb3e88844cdaed4" - integrity sha512-RnZRo1EPU6JBnra2vGHj0yhp6ebyjBZpmUCLHWiFhxlzvBCCpAuZ7elsBp1PVAbQN0/04VD/19rfzlBSwLstMw== - dependencies: - asn1.js "^5.2.0" - browserify-aes "^1.0.0" - evp_bytestokey "^1.0.0" - pbkdf2 "^3.0.3" - safe-buffer "^5.1.1" - parse-github-repo-url@^1.3.0: version "1.4.1" resolved "https://registry.yarnpkg.com/parse-github-repo-url/-/parse-github-repo-url-1.4.1.tgz#9e7d8bb252a6cb6ba42595060b7bf6df3dbc1f50" @@ -9442,11 +9157,6 @@ pascalcase@^0.1.1: resolved "https://registry.yarnpkg.com/pascalcase/-/pascalcase-0.1.1.tgz#b363e55e8006ca6fe21784d2db22bd15d7917f14" integrity sha1-s2PlXoAGym/iF4TS2yK9FdeRfxQ= -path-browserify@0.0.1: - version "0.0.1" - resolved "https://registry.yarnpkg.com/path-browserify/-/path-browserify-0.0.1.tgz#e6c4ddd7ed3aa27c68a20cc4e50e1a4ee83bbc4a" - integrity sha512-BapA40NHICOS+USX9SN4tyhq+A2RrN/Ws5F0Z5aMHDp98Fl86lX8Oti8B7uN93L4Ifv4fHOEA+pQw87gmMO/lQ== - path-dirname@^1.0.0: version "1.0.2" resolved "https://registry.yarnpkg.com/path-dirname/-/path-dirname-1.0.2.tgz#cc33d24d525e099a5388c0336c6e32b9160609e0" @@ -9527,17 +9237,6 @@ path-type@^4.0.0: resolved "https://registry.yarnpkg.com/path-type/-/path-type-4.0.0.tgz#84ed01c0a7ba380afe09d90a8c180dcd9d03043b" integrity sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw== -pbkdf2@^3.0.3: - version "3.1.1" - resolved "https://registry.yarnpkg.com/pbkdf2/-/pbkdf2-3.1.1.tgz#cb8724b0fada984596856d1a6ebafd3584654b94" - integrity sha512-4Ejy1OPxi9f2tt1rRV7Go7zmfDQ+ZectEQz3VGUQhgq62HtIRPDyG/JtnwIxs6x3uNMwo2V7q1fMvKjb+Tnpqg== - dependencies: - create-hash "^1.1.2" - create-hmac "^1.1.4" - ripemd160 "^2.0.1" - safe-buffer "^5.0.1" - sha.js "^2.4.8" - performance-now@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/performance-now/-/performance-now-2.1.0.tgz#6309f4e0e5fa913ec1c69307ae364b4b377c9e7b" @@ -9589,7 +9288,7 @@ pkg-dir@^3.0.0: dependencies: find-up "^3.0.0" -pkg-dir@^4.2.0: +pkg-dir@^4.1.0, pkg-dir@^4.2.0: version "4.2.0" resolved "https://registry.yarnpkg.com/pkg-dir/-/pkg-dir-4.2.0.tgz#f099133df7ede422e81d1d8448270eeb3e4261f3" integrity sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ== @@ -9677,11 +9376,6 @@ process-nextick-args@^2.0.0, process-nextick-args@~2.0.0: resolved "https://registry.yarnpkg.com/process-nextick-args/-/process-nextick-args-2.0.1.tgz#7820d9b16120cc55ca9ae7792680ae7dba6d7fe2" integrity sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag== -process@^0.11.10: - version "0.11.10" - resolved "https://registry.yarnpkg.com/process/-/process-0.11.10.tgz#7332300e840161bda3e69a1d1d91a7d4bc16f182" - integrity sha1-czIwDoQBYb2j5podHZGn1LwW8YI= - progress@^2.0.0: version "2.0.3" resolved "https://registry.yarnpkg.com/progress/-/progress-2.0.3.tgz#7e8cf8d8f5b8f239c1bc68beb4eb78567d572ef8" @@ -9750,18 +9444,6 @@ psl@^1.1.28: resolved "https://registry.yarnpkg.com/psl/-/psl-1.8.0.tgz#9326f8bcfb013adcc005fdff056acce020e51c24" integrity sha512-RIdOzyoavK+hA18OGGWDqUTsCLhtA7IcZ/6NCs4fFJaHBDab+pDDmDIByWFRQJq2Cd7r1OoQxBGKOaztq+hjIQ== -public-encrypt@^4.0.0: - version "4.0.3" - resolved "https://registry.yarnpkg.com/public-encrypt/-/public-encrypt-4.0.3.tgz#4fcc9d77a07e48ba7527e7cbe0de33d0701331e0" - integrity sha512-zVpa8oKZSz5bTMTFClc1fQOnyyEzpl5ozpi1B5YcvBrdohMjH2rfsBtyXcuNuwjsDIXmBYlF2N5FlJYhR29t8Q== - dependencies: - bn.js "^4.1.0" - browserify-rsa "^4.0.0" - create-hash "^1.1.0" - parse-asn1 "^5.0.0" - randombytes "^2.0.1" - safe-buffer "^5.1.2" - pump@^2.0.0: version "2.0.1" resolved "https://registry.yarnpkg.com/pump/-/pump-2.0.1.tgz#12399add6e4cf7526d973cbc8b5ce2e2908b3909" @@ -9792,11 +9474,6 @@ punycode@1.3.2: resolved "https://registry.yarnpkg.com/punycode/-/punycode-1.3.2.tgz#9653a036fb7c1ee42342f2325cceefea3926c48d" integrity sha1-llOgNvt8HuQjQvIyXM7v6jkmxI0= -punycode@^1.2.4: - version "1.4.1" - resolved "https://registry.yarnpkg.com/punycode/-/punycode-1.4.1.tgz#c0d5a63b2718800ad8e1eb0fa5269c84dd41845e" - integrity sha1-wNWmOycYgArY4esPpSachN1BhF4= - punycode@^2.1.0, punycode@^2.1.1: version "2.1.1" resolved "https://registry.yarnpkg.com/punycode/-/punycode-2.1.1.tgz#b58b010ac40c22c5657616c8d2c2c02c7bf479ec" @@ -9817,11 +9494,6 @@ qs@~6.5.2: resolved "https://registry.yarnpkg.com/qs/-/qs-6.5.2.tgz#cb3ae806e8740444584ef154ce8ee98d403f3e36" integrity sha512-N5ZAX4/LxJmF+7wN74pUD6qAh9/wnvdQcjq9TZjevvXzSUo7bfmw91saqMjzGS2xq91/odN2dW/WOl7qQHNDGA== -querystring-es3@^0.2.0: - version "0.2.1" - resolved "https://registry.yarnpkg.com/querystring-es3/-/querystring-es3-0.2.1.tgz#9ec61f79049875707d69414596fd907a4d711e73" - integrity sha1-nsYfeQSYdXB9aUFFlv2Qek1xHnM= - querystring@0.2.0: version "0.2.0" resolved "https://registry.yarnpkg.com/querystring/-/querystring-0.2.0.tgz#b209849203bb25df820da756e747005878521620" @@ -9842,21 +9514,13 @@ quick-lru@^4.0.1: resolved "https://registry.yarnpkg.com/quick-lru/-/quick-lru-4.0.1.tgz#5b8878f113a58217848c6482026c73e1ba57727f" integrity sha512-ARhCpm70fzdcvNQfPoy49IaanKkTlRWF2JMzqhcJbhSFRZv7nPTvZJdcY7301IPmvW+/p0RgIWnQDLJxifsQ7g== -randombytes@^2.0.0, randombytes@^2.0.1, randombytes@^2.0.5, randombytes@^2.1.0: +randombytes@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/randombytes/-/randombytes-2.1.0.tgz#df6f84372f0270dc65cdf6291349ab7a473d4f2a" integrity sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ== dependencies: safe-buffer "^5.1.0" -randomfill@^1.0.3: - version "1.0.4" - resolved "https://registry.yarnpkg.com/randomfill/-/randomfill-1.0.4.tgz#c92196fc86ab42be983f1bf31778224931d61458" - integrity sha512-87lcbR8+MhcWcUiQ+9e+Rwx8MyR2P7qnt15ynUlbm3TU/fjbgz4GsvfSUDTemtCCtVCqb4ZcEFlyPNTh9bBTLw== - dependencies: - randombytes "^2.0.5" - safe-buffer "^5.1.0" - range-parser@^1.2.1, range-parser@~1.2.1: version "1.2.1" resolved "https://registry.yarnpkg.com/range-parser/-/range-parser-1.2.1.tgz#3cf37023d199e1c24d1a55b84800c2f3e6468031" @@ -9979,7 +9643,7 @@ read@1, read@~1.0.1: dependencies: mute-stream "~0.0.4" -"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.5, readable-stream@^2.3.6, readable-stream@~2.3.6: +"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.5, readable-stream@^2.3.6, readable-stream@~2.3.6: version "2.3.7" resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.3.7.tgz#1eca1cf711aef814c04f62252a36a62f6cb23b57" integrity sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw== @@ -10020,13 +9684,6 @@ readdirp@^2.2.1: micromatch "^3.1.10" readable-stream "^2.0.2" -readdirp@~3.4.0: - version "3.4.0" - resolved "https://registry.yarnpkg.com/readdirp/-/readdirp-3.4.0.tgz#9fdccdf9e9155805449221ac645e8303ab5b9ada" - integrity sha512-0xe001vZBnJEK+uKcj8qOhyAKPzIT+gStxWr3LCB0DwcXR5NZJ3IaC+yGnHCYzB/S7ov3m3EEbZI2zeNvX+hGQ== - dependencies: - picomatch "^2.2.1" - realpath-native@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/realpath-native/-/realpath-native-2.0.0.tgz#7377ac429b6e1fd599dc38d08ed942d0d7beb866" @@ -10380,14 +10037,6 @@ rimraf@^3.0.0, rimraf@^3.0.2: dependencies: glob "^7.1.3" -ripemd160@^2.0.0, ripemd160@^2.0.1: - version "2.0.2" - resolved "https://registry.yarnpkg.com/ripemd160/-/ripemd160-2.0.2.tgz#a1c1a6f624751577ba5d07914cbc92850585890c" - integrity sha512-ii4iagi25WusVoiC4B4lq7pbXfAp3D9v5CwfkY33vffw2+pkDjY1D8GaN7spsxvCSx8dkPqOZCEZyfxcmJG2IA== - dependencies: - hash-base "^3.0.0" - inherits "^2.0.1" - rsvp@^4.8.4: version "4.8.5" resolved "https://registry.yarnpkg.com/rsvp/-/rsvp-4.8.5.tgz#c8f155311d167f68f21e168df71ec5b083113734" @@ -10470,6 +10119,15 @@ schema-utils@^1.0.0: ajv-errors "^1.0.0" ajv-keywords "^3.1.0" +schema-utils@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/schema-utils/-/schema-utils-3.0.0.tgz#67502f6aa2b66a2d4032b4279a2944978a0913ef" + integrity sha512-6D82/xSzO094ajanoOSbe4YvXWMfn2A//8Y1+MUqFAJul5Bs+yn36xbK9OtNDcRVSBJ9jjeoXftM6CfztsjOAA== + dependencies: + "@types/json-schema" "^7.0.6" + ajv "^6.12.5" + ajv-keywords "^3.5.2" + scoped-regex@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/scoped-regex/-/scoped-regex-1.0.0.tgz#a346bb1acd4207ae70bd7c0c7ca9e566b6baddb8" @@ -10536,10 +10194,10 @@ send@0.17.1: range-parser "~1.2.1" statuses "~1.5.0" -serialize-javascript@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/serialize-javascript/-/serialize-javascript-4.0.0.tgz#b525e1238489a5ecfc42afacc3fe99e666f4b1aa" - integrity sha512-GaNA54380uFefWghODBWEGisLZFj00nS5ACs6yHa9nLqlLpVLO8ChDGeKRjZnV4Nh4n0Qi7nhYZD/9fCPzEqkw== +serialize-javascript@^5.0.1: + version "5.0.1" + resolved "https://registry.yarnpkg.com/serialize-javascript/-/serialize-javascript-5.0.1.tgz#7886ec848049a462467a97d3d918ebb2aaf934f4" + integrity sha512-SaaNal9imEO737H2c05Og0/8LUXG7EnsZyMa8MzkmuHoELfT6txuj0cMqRj6zfPKnmQ1yasR4PCJc8x+M4JSPA== dependencies: randombytes "^2.1.0" @@ -10588,11 +10246,6 @@ set-value@^2.0.0, set-value@^2.0.1: is-plain-object "^2.0.3" split-string "^3.0.1" -setimmediate@^1.0.4: - version "1.0.5" - resolved "https://registry.yarnpkg.com/setimmediate/-/setimmediate-1.0.5.tgz#290cbb232e306942d7d7ea9b83732ab7856f8285" - integrity sha1-KQy7Iy4waULX1+qbg3Mqt4VvgoU= - setprototypeof@1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/setprototypeof/-/setprototypeof-1.1.0.tgz#d0bd85536887b6fe7c0d818cb962d9d91c54e656" @@ -10603,14 +10256,6 @@ setprototypeof@1.1.1: resolved "https://registry.yarnpkg.com/setprototypeof/-/setprototypeof-1.1.1.tgz#7e95acb24aa92f5885e0abef5ba131330d4ae683" integrity sha512-JvdAWfbXeIGaZ9cILp38HntZSFSo3mWg6xGcJJsd+d4aRMOqauag1C63dJfDw7OaMYwEbHMOxEZ1lqVRYP2OAw== -sha.js@^2.4.0, sha.js@^2.4.8: - version "2.4.11" - resolved "https://registry.yarnpkg.com/sha.js/-/sha.js-2.4.11.tgz#37a5cf0b81ecbc6943de109ba2960d1b26584ae7" - integrity sha512-QMEp5B7cftE7APOjk5Y6xgrbWu+WkLVQwk8JNjZ8nKRciZaByEW6MubieAiToS7+dwvrjGhH8jRXz3MVd0AYqQ== - dependencies: - inherits "^2.0.1" - safe-buffer "^5.0.1" - shallow-clone@^3.0.0: version "3.0.1" resolved "https://registry.yarnpkg.com/shallow-clone/-/shallow-clone-3.0.1.tgz#8f2981ad92531f55035b01fb230769a40e02efa3" @@ -10809,7 +10454,7 @@ sort-keys@^2.0.0: dependencies: is-plain-obj "^1.0.0" -source-list-map@^2.0.0: +source-list-map@^2.0.0, source-list-map@^2.0.1: version "2.0.1" resolved "https://registry.yarnpkg.com/source-list-map/-/source-list-map-2.0.1.tgz#3993bd873bfc48479cca9ea3a547835c7c154b34" integrity sha512-qnQ7gVMxGNxsiL4lEuJwe/To8UnK7fAnmbGEEH8RpLouuKbeEm0lhbQVFIrNSuB+G7tVrAlVsZgETT5nljf+Iw== @@ -10825,7 +10470,7 @@ source-map-resolve@^0.5.0: source-map-url "^0.4.0" urix "^0.1.0" -source-map-support@^0.5.16, source-map-support@^0.5.6, source-map-support@~0.5.12: +source-map-support@^0.5.16, source-map-support@^0.5.6, source-map-support@~0.5.19: version "0.5.19" resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.5.19.tgz#a98b62f86dcaf4f67399648c085291ab9e8fed61" integrity sha512-Wonm7zOCIJzBGQdB+thsPar0kYuCIzYvxZwlBa87yi/Mdjv7Tip2cyVbLj5o0cFPN4EVkuTwb3GDDyUx2DGnGw== @@ -10848,7 +10493,7 @@ source-map@^0.6.0, source-map@^0.6.1, source-map@~0.6.1: resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.6.1.tgz#74722af32e9614e9c287a8d0bbde48b5e2f1a263" integrity sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g== -source-map@^0.7.3: +source-map@^0.7.3, source-map@~0.7.2: version "0.7.3" resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.7.3.tgz#5302f8169031735226544092e64981f751750383" integrity sha512-CkCj6giN3S+n9qrYiBTX5gystlENnRW5jZeNLHpe6aue+SrHcG5VYwujhW9s4dY31mEGsxBDrHR6oI69fTXsaQ== @@ -10950,6 +10595,13 @@ ssri@^6.0.0, ssri@^6.0.1: dependencies: figgy-pudding "^3.5.1" +ssri@^8.0.0: + version "8.0.0" + resolved "https://registry.yarnpkg.com/ssri/-/ssri-8.0.0.tgz#79ca74e21f8ceaeddfcb4b90143c458b8d988808" + integrity sha512-aq/pz989nxVYwn16Tsbj1TqFpD5LLrQxHf5zaHuieFV+R0Bbr4y8qUsOA45hXT/N4/9UNXTarBjnjVmjSOVaAA== + dependencies: + minipass "^3.1.1" + stack-utils@^1.0.1: version "1.0.2" resolved "https://registry.yarnpkg.com/stack-utils/-/stack-utils-1.0.2.tgz#33eba3897788558bebfc2db059dc158ec36cebb8" @@ -10973,14 +10625,6 @@ stealthy-require@^1.1.1: resolved "https://registry.yarnpkg.com/stealthy-require/-/stealthy-require-1.1.1.tgz#35b09875b4ff49f26a777e509b3090a3226bf24b" integrity sha1-NbCYdbT/SfJqd35QmzCQoyJr8ks= -stream-browserify@^2.0.1: - version "2.0.2" - resolved "https://registry.yarnpkg.com/stream-browserify/-/stream-browserify-2.0.2.tgz#87521d38a44aa7ee91ce1cd2a47df0cb49dd660b" - integrity sha512-nX6hmklHs/gr2FuxYDltq8fJA1GDlxKQCz8O/IM4atRqBH8OORmBNgfvW5gG10GT/qQ9u0CzIvr2X5Pkt6ntqg== - dependencies: - inherits "~2.0.1" - readable-stream "^2.0.2" - stream-each@^1.1.0: version "1.2.3" resolved "https://registry.yarnpkg.com/stream-each/-/stream-each-1.2.3.tgz#ebe27a0c389b04fbcc233642952e10731afa9bae" @@ -10989,17 +10633,6 @@ stream-each@^1.1.0: end-of-stream "^1.1.0" stream-shift "^1.0.0" -stream-http@^2.7.2: - version "2.8.3" - resolved "https://registry.yarnpkg.com/stream-http/-/stream-http-2.8.3.tgz#b2d242469288a5a27ec4fe8933acf623de6514fc" - integrity sha512-+TSkfINHDo4J+ZobQLWiMouQYB+UVYFttRA94FpEzzJ7ZdqcL4uUUQ7WkdkI4DSozGmgBUE/a47L+38PenXhUw== - dependencies: - builtin-status-codes "^3.0.0" - inherits "^2.0.1" - readable-stream "^2.3.6" - to-arraybuffer "^1.0.0" - xtend "^4.0.0" - stream-shift@^1.0.0: version "1.0.1" resolved "https://registry.yarnpkg.com/stream-shift/-/stream-shift-1.0.1.tgz#d7088281559ab2778424279b0877da3c392d5a3d" @@ -11074,7 +10707,7 @@ string.prototype.trimstart@^1.0.1: define-properties "^1.1.3" es-abstract "^1.17.5" -string_decoder@^1.0.0, string_decoder@^1.1.1: +string_decoder@^1.1.1: version "1.3.0" resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.3.0.tgz#42f114594a46cf1a8e30b0a84f56c78c3edac21e" integrity sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA== @@ -11264,10 +10897,10 @@ table@^5.2.3: slice-ansi "^2.1.0" string-width "^3.0.0" -tapable@^1.0.0, tapable@^1.1.3: - version "1.1.3" - resolved "https://registry.yarnpkg.com/tapable/-/tapable-1.1.3.tgz#a1fccc06b58db61fd7a45da2da44f5f3a3e67ba2" - integrity sha512-4WK/bYZmj8xLr+HUCODHGF1ZFzsYffasLUgEiMBY4fgtltdO6B4WJtlSbPaDTLpYTcGVwM2qLnFTICEcNxs3kA== +tapable@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/tapable/-/tapable-2.0.0.tgz#a49c3d6a8a2bb606e7db372b82904c970d537a08" + integrity sha512-bjzn0C0RWoffnNdTzNi7rNDhs1Zlwk2tRXgk8EiHKAOX1Mag3d6T0Y5zNa7l9CJ+EoUne/0UHdwS8tMbkh9zDg== tar@^4.4.10, tar@^4.4.12, tar@^4.4.8: version "4.4.13" @@ -11282,6 +10915,18 @@ tar@^4.4.10, tar@^4.4.12, tar@^4.4.8: safe-buffer "^5.1.2" yallist "^3.0.3" +tar@^6.0.2: + version "6.0.5" + resolved "https://registry.yarnpkg.com/tar/-/tar-6.0.5.tgz#bde815086e10b39f1dcd298e89d596e1535e200f" + integrity sha512-0b4HOimQHj9nXNEAA7zWwMM91Zhhba3pspja6sQbgTpynOJf+bkjBnfybNYzbpLbnwXnbyB4LOREvlyXLkCHSg== + dependencies: + chownr "^2.0.0" + fs-minipass "^2.0.0" + minipass "^3.0.0" + minizlib "^2.1.1" + mkdirp "^1.0.3" + yallist "^4.0.0" + temp-dir@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/temp-dir/-/temp-dir-1.0.0.tgz#0a7c0ea26d3a39afa7e0ebea9c1fc0bc4daa011d" @@ -11321,29 +10966,29 @@ terminal-link@^2.0.0: ansi-escapes "^4.2.1" supports-hyperlinks "^2.0.0" -terser-webpack-plugin@^1.4.3: - version "1.4.5" - resolved "https://registry.yarnpkg.com/terser-webpack-plugin/-/terser-webpack-plugin-1.4.5.tgz#a217aefaea330e734ffacb6120ec1fa312d6040b" - integrity sha512-04Rfe496lN8EYruwi6oPQkG0vo8C+HT49X687FZnpPF0qMAIHONI6HEXYPKDOE8e5HjXTyKfqRd/agHtH0kOtw== +terser-webpack-plugin@^4.1.0: + version "4.2.3" + resolved "https://registry.yarnpkg.com/terser-webpack-plugin/-/terser-webpack-plugin-4.2.3.tgz#28daef4a83bd17c1db0297070adc07fc8cfc6a9a" + integrity sha512-jTgXh40RnvOrLQNgIkwEKnQ8rmHjHK4u+6UBEi+W+FPmvb+uo+chJXntKe7/3lW5mNysgSWD60KyesnhW8D6MQ== dependencies: - cacache "^12.0.2" - find-cache-dir "^2.1.0" - is-wsl "^1.1.0" - schema-utils "^1.0.0" - serialize-javascript "^4.0.0" + cacache "^15.0.5" + find-cache-dir "^3.3.1" + jest-worker "^26.5.0" + p-limit "^3.0.2" + schema-utils "^3.0.0" + serialize-javascript "^5.0.1" source-map "^0.6.1" - terser "^4.1.2" - webpack-sources "^1.4.0" - worker-farm "^1.7.0" + terser "^5.3.4" + webpack-sources "^1.4.3" -terser@^4.1.2: - version "4.8.0" - resolved "https://registry.yarnpkg.com/terser/-/terser-4.8.0.tgz#63056343d7c70bb29f3af665865a46fe03a0df17" - integrity sha512-EAPipTNeWsb/3wLPeup1tVPaXfIaU68xMnVdPafIL1TV05OhASArYyIfFvnvJCNrR2NIOvDVNNTFRa+Re2MWyw== +terser@^5.3.4: + version "5.3.5" + resolved "https://registry.yarnpkg.com/terser/-/terser-5.3.5.tgz#9e080baa0568f96654621b20eb9effa440b1484e" + integrity sha512-Qw3CZAMmmfU824AoGKalx+riwocSI5Cs0PoGp9RdSLfmxkmJgyBxqLBP/isDNtFyhHnitikvRMZzyVgeq+U+Tg== dependencies: commander "^2.20.0" - source-map "~0.6.1" - source-map-support "~0.5.12" + source-map "~0.7.2" + source-map-support "~0.5.19" test-exclude@^6.0.0: version "6.0.0" @@ -11419,13 +11064,6 @@ timed-out@^4.0.0: resolved "https://registry.yarnpkg.com/timed-out/-/timed-out-4.0.1.tgz#f32eacac5a175bea25d7fab565ab3ed8741ef56f" integrity sha1-8y6srFoXW+ol1/q1Zas+2HQe9W8= -timers-browserify@^2.0.4: - version "2.0.11" - resolved "https://registry.yarnpkg.com/timers-browserify/-/timers-browserify-2.0.11.tgz#800b1f3eee272e5bc53ee465a04d0e804c31211f" - integrity sha512-60aV6sgJ5YEbzUdn9c8kYGIqOubPoUdqQCul3SBAsRCZ40s6Y5cMcrW4dt3/k/EsbLVJNl9n6Vz3fTc+k2GeKQ== - dependencies: - setimmediate "^1.0.4" - tmp@^0.0.33: version "0.0.33" resolved "https://registry.yarnpkg.com/tmp/-/tmp-0.0.33.tgz#6d34335889768d21b2bcda0aa277ced3b1bfadf9" @@ -11438,11 +11076,6 @@ tmpl@1.0.x: resolved "https://registry.yarnpkg.com/tmpl/-/tmpl-1.0.4.tgz#23640dd7b42d00433911140820e5cf440e521dd1" integrity sha1-I2QN17QtAEM5ERQIIOXPRA5SHdE= -to-arraybuffer@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/to-arraybuffer/-/to-arraybuffer-1.0.1.tgz#7d229b1fcc637e466ca081180836a7aabff83f43" - integrity sha1-fSKbH8xjfkZsoIEYCDanqr/4P0M= - to-fast-properties@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/to-fast-properties/-/to-fast-properties-2.0.0.tgz#dc5e698cbd079265bc73e0377681a4e4e83f616e" @@ -11556,9 +11189,9 @@ ts-jest@^25.5.1: yargs-parser "18.x" tslib@^1.8.1, tslib@^1.9.0: - version "1.14.0" - resolved "https://registry.yarnpkg.com/tslib/-/tslib-1.14.0.tgz#d624983f3e2c5e0b55307c3dd6c86acd737622c6" - integrity sha512-+Zw5lu0D9tvBMjGP8LpvMb0u2WW2QV3y+D8mO6J+cNzCYIN4sVy43Bf9vl92nqFahutN0I8zHa7cc4vihIshnw== + version "1.14.1" + resolved "https://registry.yarnpkg.com/tslib/-/tslib-1.14.1.tgz#cf2d38bdc34a134bcaf1091c41f6619e2f672d00" + integrity sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg== tsutils@^3.17.1: version "3.17.1" @@ -11567,11 +11200,6 @@ tsutils@^3.17.1: dependencies: tslib "^1.8.1" -tty-browserify@0.0.0: - version "0.0.0" - resolved "https://registry.yarnpkg.com/tty-browserify/-/tty-browserify-0.0.0.tgz#a157ba402da24e9bf957f9aa69d524eed42901a6" - integrity sha1-oVe6QC2iTpv5V/mqadUk7tQpAaY= - tunnel-agent@^0.6.0: version "0.6.0" resolved "https://registry.yarnpkg.com/tunnel-agent/-/tunnel-agent-0.6.0.tgz#27a5dea06b36b04a0a9966774b290868f0fc40fd" @@ -11657,9 +11285,9 @@ typical@^5.0.0, typical@^5.2.0: integrity sha512-dvdQgNDNJo+8B2uBQoqdb11eUCE1JQXhvjC/CZtgvZseVd5TYMXnq0+vuUemXbd/Se29cTaUuPX3YIc2xgbvIg== uglify-js@^3.1.4: - version "3.11.1" - resolved "https://registry.yarnpkg.com/uglify-js/-/uglify-js-3.11.1.tgz#32d274fea8aac333293044afd7f81409d5040d38" - integrity sha512-OApPSuJcxcnewwjSGGfWOjx3oix5XpmrK9Z2j0fTRlHGoZ49IU6kExfZTM0++fCArOOCet+vIfWwFHbvWqwp6g== + version "3.11.2" + resolved "https://registry.yarnpkg.com/uglify-js/-/uglify-js-3.11.2.tgz#9f50325544273c27b20e586def140e7726c525ea" + integrity sha512-G440NU6fewtnQftSgqRV1r2A5ChKbU1gqFCJ7I8S7MPpY/eZZfLGefaY6gUZYiWebMaO+txgiQ1ZyLDuNWJulg== uid-number@0.0.6: version "0.0.6" @@ -11827,20 +11455,6 @@ util-promisify@^2.1.0: dependencies: object.getownpropertydescriptors "^2.0.3" -util@0.10.3: - version "0.10.3" - resolved "https://registry.yarnpkg.com/util/-/util-0.10.3.tgz#7afb1afe50805246489e3db7fe0ed379336ac0f9" - integrity sha1-evsa/lCAUkZInj23/g7TeTNqwPk= - dependencies: - inherits "2.0.1" - -util@^0.11.0: - version "0.11.1" - resolved "https://registry.yarnpkg.com/util/-/util-0.11.1.tgz#3236733720ec64bb27f6e26f421aaa2e1b588d61" - integrity sha512-HShAsny+zS2TZfaXxD9tYj4HQGlBezXZMZuM/S5PKLLoZkShZiGk9o5CzukI1LVHZvjdvZ2Sj1aW/Ndn2NB/HQ== - dependencies: - inherits "2.0.3" - utils-merge@1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/utils-merge/-/utils-merge-1.0.1.tgz#9f95710f50a267947b2ccc124741c1028427e713" @@ -11917,11 +11531,6 @@ vinyl@^2.0.1, vinyl@^2.2.0: remove-trailing-separator "^1.0.1" replace-ext "^1.0.0" -vm-browserify@^1.0.1: - version "1.1.2" - resolved "https://registry.yarnpkg.com/vm-browserify/-/vm-browserify-1.1.2.tgz#78641c488b8e6ca91a75f511e7a3b32a86e5dda0" - integrity sha512-2ham8XPWTONajOR0ohOKOHXkm3+gaBmGut3SRuu75xLd/RRaY6vqgh8NBYYk7+RW3u5AtzPQZG8F10LHkl0lAQ== - w3c-hr-time@^1.0.1: version "1.0.2" resolved "https://registry.yarnpkg.com/w3c-hr-time/-/w3c-hr-time-1.0.2.tgz#0a89cdf5cc15822df9c360543676963e0cc308cd" @@ -11945,23 +11554,13 @@ walker@^1.0.7, walker@~1.0.5: dependencies: makeerror "1.0.x" -watchpack-chokidar2@^2.0.0: +watchpack@^2.0.0: version "2.0.0" - resolved "https://registry.yarnpkg.com/watchpack-chokidar2/-/watchpack-chokidar2-2.0.0.tgz#9948a1866cbbd6cb824dea13a7ed691f6c8ddff0" - integrity sha512-9TyfOyN/zLUbA288wZ8IsMZ+6cbzvsNyEzSBp6e/zkifi6xxbl8SmQ/CxQq32k8NNqrdVEVUVSEf56L4rQ/ZxA== - dependencies: - chokidar "^2.1.8" - -watchpack@^1.7.4: - version "1.7.4" - resolved "https://registry.yarnpkg.com/watchpack/-/watchpack-1.7.4.tgz#6e9da53b3c80bb2d6508188f5b200410866cd30b" - integrity sha512-aWAgTW4MoSJzZPAicljkO1hsi1oKj/RRq/OJQh2PKI2UKL04c2Bs+MBOB+BBABHTXJpf9mCwHN7ANCvYsvY2sg== + resolved "https://registry.yarnpkg.com/watchpack/-/watchpack-2.0.0.tgz#b12248f32f0fd4799b7be0802ad1f6573a45955c" + integrity sha512-xSdCxxYZWNk3VK13bZRYhsQpfa8Vg63zXG+3pyU8ouqSLRCv4IGXIp9Kr226q6GBkGRlZrST2wwKtjfKz2m7Cg== dependencies: + glob-to-regexp "^0.4.1" graceful-fs "^4.1.2" - neo-async "^2.5.0" - optionalDependencies: - chokidar "^3.4.1" - watchpack-chokidar2 "^2.0.0" wbuf@^1.1.0, wbuf@^1.7.3: version "1.7.3" @@ -12066,7 +11665,7 @@ webpack-merge@^4.2.2: dependencies: lodash "^4.17.15" -webpack-sources@^1.4.0, webpack-sources@^1.4.1: +webpack-sources@^1.4.3: version "1.4.3" resolved "https://registry.yarnpkg.com/webpack-sources/-/webpack-sources-1.4.3.tgz#eedd8ec0b928fbf1cbfe994e22d2d890f330a933" integrity sha512-lgTS3Xhv1lCOKo7SA5TjKXMjpSM4sBjNV5+q2bqesbSPs5FjGmU6jjtBSkX9b4qW87vDIsCIlUPOEhbZrMdjeQ== @@ -12074,34 +11673,43 @@ webpack-sources@^1.4.0, webpack-sources@^1.4.1: source-list-map "^2.0.0" source-map "~0.6.1" -webpack@^4.44.2: - version "4.44.2" - resolved "https://registry.yarnpkg.com/webpack/-/webpack-4.44.2.tgz#6bfe2b0af055c8b2d1e90ed2cd9363f841266b72" - integrity sha512-6KJVGlCxYdISyurpQ0IPTklv+DULv05rs2hseIXer6D7KrUicRDLFb4IUM1S6LUAKypPM/nSiVSuv8jHu1m3/Q== +webpack-sources@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/webpack-sources/-/webpack-sources-2.0.1.tgz#1467f6e692ddce91e88b8044c44347b1087bbd4f" + integrity sha512-A9oYz7ANQBK5EN19rUXbvNgfdfZf5U2gP0769OXsj9CvYkCR6OHOsd6OKyEy4H38GGxpsQPKIL83NC64QY6Xmw== + dependencies: + source-list-map "^2.0.1" + source-map "^0.6.1" + +webpack@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/webpack/-/webpack-5.0.0.tgz#c028b2f0c1db2322de1f4a30cc36f6e373d5a26a" + integrity sha512-OK+Q9xGgda3idw/DgCf75XsVFxRLPu48qPwygqI3W9ls5sDdKif5Ay4SM/1UVob0w4juJy14Zv9nNv0WeyV0aA== dependencies: + "@types/eslint-scope" "^3.7.0" + "@types/estree" "^0.0.45" "@webassemblyjs/ast" "1.9.0" "@webassemblyjs/helper-module-context" "1.9.0" "@webassemblyjs/wasm-edit" "1.9.0" "@webassemblyjs/wasm-parser" "1.9.0" - acorn "^6.4.1" - ajv "^6.10.2" - ajv-keywords "^3.4.1" + acorn "^8.0.3" + browserslist "^4.14.3" chrome-trace-event "^1.0.2" - enhanced-resolve "^4.3.0" - eslint-scope "^4.0.3" + enhanced-resolve "^5.2.0" + eslint-scope "^5.1.0" + events "^3.2.0" + glob-to-regexp "^0.4.1" + graceful-fs "^4.2.4" json-parse-better-errors "^1.0.2" - loader-runner "^2.4.0" - loader-utils "^1.2.3" - memory-fs "^0.4.1" - micromatch "^3.1.10" - mkdirp "^0.5.3" - neo-async "^2.6.1" - node-libs-browser "^2.2.1" - schema-utils "^1.0.0" - tapable "^1.1.3" - terser-webpack-plugin "^1.4.3" - watchpack "^1.7.4" - webpack-sources "^1.4.1" + loader-runner "^4.1.0" + mime-types "^2.1.27" + neo-async "^2.6.2" + pkg-dir "^4.2.0" + schema-utils "^3.0.0" + tapable "^2.0.0" + terser-webpack-plugin "^4.1.0" + watchpack "^2.0.0" + webpack-sources "^2.0.1" websocket-driver@>=0.5.1: version "0.7.4" @@ -12203,13 +11811,6 @@ wordwrapjs@^4.0.0: reduce-flatten "^2.0.0" typical "^5.0.0" -worker-farm@^1.7.0: - version "1.7.0" - resolved "https://registry.yarnpkg.com/worker-farm/-/worker-farm-1.7.0.tgz#26a94c5391bbca926152002f69b84a4bf772e5a8" - integrity sha512-rvw3QTZc8lAxyVrqcSGVm5yP/IJ2UcB3U0graE3LCFoZ0Yn2x4EoVSqJKdB/T5M+FLcRPjz4TDacRf3OCfNUzw== - dependencies: - errno "~0.1.7" - wrap-ansi@^2.0.0: version "2.1.0" resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-2.1.0.tgz#d8fc3d284dd05794fe84973caecdd1cf824fdd85" @@ -12334,7 +11935,7 @@ xmlchars@^2.1.1: resolved "https://registry.yarnpkg.com/xmlchars/-/xmlchars-2.2.0.tgz#060fe1bcb7f9c76fe2a17db86a9bc3ab894210cb" integrity sha512-JZnDKK8B0RCDw84FNdDAIpZK+JuJw+s7Lz8nksI7SIuU3UXJJslUthsi+uWBUYOwPFwW7W7PRLRfUKpxjtjFCw== -xtend@^4.0.0, xtend@~4.0.1: +xtend@~4.0.1: version "4.0.2" resolved "https://registry.yarnpkg.com/xtend/-/xtend-4.0.2.tgz#bb72779f5fa465186b1f438f674fa347fdb5db54" integrity sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ== @@ -12349,6 +11950,11 @@ yallist@^3.0.0, yallist@^3.0.2, yallist@^3.0.3: resolved "https://registry.yarnpkg.com/yallist/-/yallist-3.1.1.tgz#dbb7daf9bfd8bac9ab45ebf602b8cbad0d5d08fd" integrity sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g== +yallist@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/yallist/-/yallist-4.0.0.tgz#9bb92790d9c0effec63be73519e11a35019a3a72" + integrity sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A== + yaml@^1.10.0: version "1.10.0" resolved "https://registry.yarnpkg.com/yaml/-/yaml-1.10.0.tgz#3b593add944876077d4d683fee01081bd9fff31e" From 2bbbb14ca9a404f2205c0f5a5515e73832ee6173 Mon Sep 17 00:00:00 2001 From: Alexander Krasnoyarov Date: Wed, 14 Oct 2020 17:17:31 +0300 Subject: [PATCH 06/21] fix: colored output (#1944) --- package.json | 2 +- packages/webpack-cli/lib/utils/Compiler.js | 20 ++++- test/build-errors/errors.test.js | 2 +- test/build-warnings/warnings.test.js | 2 +- test/cache/cache.test.js | 2 +- test/colors/colors-false.webpack.config.js | 5 ++ test/colors/colors-true.webpack.config.js | 5 ++ test/colors/colors.test.js | 92 +++++++++++++++++++++ test/colors/no-stats.webpack.config.js | 3 + test/colors/src/index.js | 3 + test/colors/stats-boolean.webpack.config.js | 3 + test/colors/stats-string.webpack.config.js | 3 + test/core-flags/cache-flags.test.js | 12 +-- test/watch/watch-flag.test.js | 2 +- yarn.lock | 8 +- 15 files changed, 147 insertions(+), 17 deletions(-) create mode 100644 test/colors/colors-false.webpack.config.js create mode 100644 test/colors/colors-true.webpack.config.js create mode 100644 test/colors/colors.test.js create mode 100644 test/colors/no-stats.webpack.config.js create mode 100644 test/colors/src/index.js create mode 100644 test/colors/stats-boolean.webpack.config.js create mode 100644 test/colors/stats-string.webpack.config.js diff --git a/package.json b/package.json index 4fca4ff154d..248cb7f4e3a 100644 --- a/package.json +++ b/package.json @@ -89,7 +89,7 @@ "strip-ansi": "^6.0.0", "ts-jest": "^25.5.1", "typescript": "^3.9.7", - "webpack": "^5.0.0", + "webpack": "^5.1.0", "webpack-bundle-analyzer": "^3.9.0", "webpack-dev-server": "3.10.3", "yeoman-test": "^2.7.0" diff --git a/packages/webpack-cli/lib/utils/Compiler.js b/packages/webpack-cli/lib/utils/Compiler.js index d17579d5034..0b9bc34098f 100644 --- a/packages/webpack-cli/lib/utils/Compiler.js +++ b/packages/webpack-cli/lib/utils/Compiler.js @@ -1,3 +1,4 @@ +const { options: coloretteOptions } = require('colorette'); const { packageExists } = require('./package-exists'); const webpack = packageExists('webpack') ? require('webpack') : undefined; const logger = require('./logger'); @@ -85,9 +86,24 @@ class Compiler { process.exitCode = 1; } + const getStatsOptions = (stats) => { + // TODO remove after drop webpack@4 + if (webpack.Stats && webpack.Stats.presetToOptions) { + if (!stats) { + stats = {}; + } else if (typeof stats === 'boolean' || typeof stats === 'string') { + stats = webpack.Stats.presetToOptions(stats); + } + } + + stats.colors = typeof stats.colors !== 'undefined' ? stats.colors : coloretteOptions.enabled; + + return stats; + }; + const foundStats = this.compiler.compilers - ? { children: this.compiler.compilers.map((compiler) => compiler.options.stats) } - : this.compiler.options.stats; + ? { children: this.compiler.compilers.map((compiler) => getStatsOptions(compiler.options.stats)) } + : getStatsOptions(this.compiler.options.stats); if (outputOptions.json === true) { process.stdout.write(JSON.stringify(stats.toJson(foundStats), null, 2) + '\n'); diff --git a/test/build-errors/errors.test.js b/test/build-errors/errors.test.js index 23d13c1fe35..5ff6bbc617b 100644 --- a/test/build-errors/errors.test.js +++ b/test/build-errors/errors.test.js @@ -7,7 +7,7 @@ describe('errors', () => { it('should output by default', () => { const { stdout, exitCode } = run(__dirname); - expect(stdout).toMatch(/ERROR in/); + expect(stdout).toMatch(/ERROR/); expect(stdout).toMatch(/Error: Can't resolve/); expect(exitCode).toBe(1); }); diff --git a/test/build-warnings/warnings.test.js b/test/build-warnings/warnings.test.js index 6b880996301..cb049a150b8 100644 --- a/test/build-warnings/warnings.test.js +++ b/test/build-warnings/warnings.test.js @@ -7,7 +7,7 @@ describe('warnings', () => { it('should output by default', () => { const { stdout, exitCode } = run(__dirname); - expect(stdout).toMatch(/WARNING in/); + expect(stdout).toMatch(/WARNING/); expect(stdout).toMatch(/Error: Can't resolve/); expect(exitCode).toBe(0); }); diff --git a/test/cache/cache.test.js b/test/cache/cache.test.js index a183ac4b7d7..66a923670b1 100644 --- a/test/cache/cache.test.js +++ b/test/cache/cache.test.js @@ -10,7 +10,7 @@ describe('cache related tests', () => { if (isWebpack5) { expect(stderr).toContain('starting to restore cache content'); - expect(stdout).toContain('[cached] 1 module'); + expect(stdout).toContain('[cached]'); } }); }); diff --git a/test/colors/colors-false.webpack.config.js b/test/colors/colors-false.webpack.config.js new file mode 100644 index 00000000000..b0f58638bfa --- /dev/null +++ b/test/colors/colors-false.webpack.config.js @@ -0,0 +1,5 @@ +module.exports = { + stats: { + colors: false, + }, +}; diff --git a/test/colors/colors-true.webpack.config.js b/test/colors/colors-true.webpack.config.js new file mode 100644 index 00000000000..15fc57eafd8 --- /dev/null +++ b/test/colors/colors-true.webpack.config.js @@ -0,0 +1,5 @@ +module.exports = { + stats: { + colors: true, + }, +}; diff --git a/test/colors/colors.test.js b/test/colors/colors.test.js new file mode 100644 index 00000000000..4bc9e30fbfb --- /dev/null +++ b/test/colors/colors.test.js @@ -0,0 +1,92 @@ +'use strict'; +const { run, isWebpack5 } = require('../utils/test-utils'); +const { resolve } = require('path'); +const { options: coloretteOptions } = require('colorette'); + +describe('colorts', () => { + it('should output by default', () => { + const { stderr, stdout, exitCode } = run(__dirname); + + expect(stderr).toBeFalsy(); + const output = isWebpack5 ? 'successfully' : 'main.js'; + expect(stdout).toContain(coloretteOptions.enabled ? `\u001b[1m\u001b[32m${output}\u001b[39m\u001b[22m` : output); + expect(exitCode).toBe(0); + }); + + it('should work with the "stats" option from flags', () => { + const { stderr, stdout, exitCode } = run(__dirname, ['--stats=verbose']); + + expect(stderr).toBeFalsy(); + const output = isWebpack5 ? 'successfully' : 'main.js'; + expect(stdout).toContain(coloretteOptions.enabled ? `\u001b[1m\u001b[32m${output}\u001b[39m\u001b[22m` : output); + expect(exitCode).toBe(0); + }); + + it('should work with the "stats" option from flags and from configuration', () => { + const { stderr, stdout, exitCode } = run(__dirname, [ + '--stats=verbose', + `--config=${resolve(__dirname, './no-stats.webpack.config.js')}`, + ]); + + expect(stderr).toBeFalsy(); + const output = isWebpack5 ? 'successfully' : 'main.js'; + expect(stdout).toContain(coloretteOptions.enabled ? `\u001b[1m\u001b[32m${output}\u001b[39m\u001b[22m` : output); + expect(exitCode).toBe(0); + }); + + it('should work with the "stats" option from flags and from configuration #2', () => { + const { stderr, stdout, exitCode } = run(__dirname, ['--stats=verbose', '--config=stats-string.webpack.config.js']); + + expect(stderr).toBeFalsy(); + const output = isWebpack5 ? 'successfully' : 'main.js'; + expect(stdout).toContain(coloretteOptions.enabled ? `\u001b[1m\u001b[32m${output}\u001b[39m\u001b[22m` : output); + expect(exitCode).toBe(0); + }); + + it('should work with the "stats" option from the configuration', () => { + const { stderr, stdout, exitCode } = run(__dirname, ['--config=stats-string.webpack.config.js']); + + expect(stderr).toBeFalsy(); + const output = isWebpack5 ? 'successfully' : 'main.js'; + expect(stdout).toContain(coloretteOptions.enabled ? `\u001b[1m\u001b[32m${output}\u001b[39m\u001b[22m` : output); + expect(exitCode).toBe(0); + }); + + it('should work with the "stats" option from the configuration #1', () => { + const { stderr, stdout, exitCode } = run(__dirname, ['--config=stats-boolean.webpack.config.js']); + + expect(stderr).toBeFalsy(); + const output = isWebpack5 ? 'successfully' : 'main.js'; + expect(stdout).toContain(coloretteOptions.enabled ? `\u001b[1m\u001b[32m${output}\u001b[39m\u001b[22m` : output); + expect(exitCode).toBe(0); + }); + + it('should work with the "stats" option from the configuration #2', () => { + const { stderr, stdout, exitCode } = run(__dirname, ['--config=no-stats.webpack.config.js']); + + expect(stderr).toBeFalsy(); + const output = isWebpack5 ? 'successfully' : 'main.js'; + expect(stdout).toContain(coloretteOptions.enabled ? `\u001b[1m\u001b[32m${output}\u001b[39m\u001b[22m` : output); + expect(exitCode).toBe(0); + }); + + it('should work with the "stats" option from the configuration #3', () => { + const { stderr, stdout, exitCode } = run(__dirname, ['--config=colors-true.webpack.config.js']); + + expect(stderr).toBeFalsy(); + const output = isWebpack5 ? 'successfully' : 'main.js'; + expect(stdout).toContain(coloretteOptions.enabled ? `\u001b[1m\u001b[32m${output}\u001b[39m\u001b[22m` : output); + expect(exitCode).toBe(0); + }); + + it('should work with the "stats" option from the configuration #4', () => { + const { stderr, stdout, exitCode } = run(__dirname, ['--config=colors-false.webpack.config.js']); + + expect(stderr).toBeFalsy(); + const output = isWebpack5 ? 'successfully' : 'main.js'; + console.log(stdout); + expect(stdout).not.toContain(`\u001b[1m\u001b[32m${output}\u001b[39m\u001b[22m`); + expect(stdout).toContain(output); + expect(exitCode).toBe(0); + }); +}); diff --git a/test/colors/no-stats.webpack.config.js b/test/colors/no-stats.webpack.config.js new file mode 100644 index 00000000000..34672801b3d --- /dev/null +++ b/test/colors/no-stats.webpack.config.js @@ -0,0 +1,3 @@ +module.exports = { + name: 'test', +}; diff --git a/test/colors/src/index.js b/test/colors/src/index.js new file mode 100644 index 00000000000..bdc9aeaf2d1 --- /dev/null +++ b/test/colors/src/index.js @@ -0,0 +1,3 @@ +const foo = 'bar'; + +export default foo diff --git a/test/colors/stats-boolean.webpack.config.js b/test/colors/stats-boolean.webpack.config.js new file mode 100644 index 00000000000..1c9b636be33 --- /dev/null +++ b/test/colors/stats-boolean.webpack.config.js @@ -0,0 +1,3 @@ +module.exports = { + stats: true, +}; diff --git a/test/colors/stats-string.webpack.config.js b/test/colors/stats-string.webpack.config.js new file mode 100644 index 00000000000..5c13e746a6a --- /dev/null +++ b/test/colors/stats-string.webpack.config.js @@ -0,0 +1,3 @@ +module.exports = { + stats: 'verbose', +}; diff --git a/test/core-flags/cache-flags.test.js b/test/core-flags/cache-flags.test.js index f8e55dcc496..8a2cb8ccbb8 100644 --- a/test/core-flags/cache-flags.test.js +++ b/test/core-flags/cache-flags.test.js @@ -76,10 +76,10 @@ describe('cache related flags from core', () => { expect(stderr).toBeFalsy(); expect(stdout).toContain('buildDependencies'); expect(stdout).toContain("config: [ './webpack.config.js' ]"); - expect(stdout).not.toContain('[cached] 1 module'); + expect(stdout).not.toContain('[cached]'); // Run again to check for cache const newRun = run(__dirname, ['--cache-type', 'filesystem', '-c', './webpack.config.js']); - expect(newRun.stdout).toContain('[cached] 1 module'); + expect(newRun.stdout).toContain('[cached]'); expect(newRun.stderr).toBeFalsy(); expect(newRun.exitCode).toEqual(0); }); @@ -94,7 +94,7 @@ describe('cache related flags from core', () => { expect(stdout).toContain("type: 'filesystem'"); // Run again to check for cache const newRun = run(__dirname, ['-c', './webpack.cache.config.js']); - expect(newRun.stdout).toContain('[cached] 1 module'); + expect(newRun.stdout).toContain('[cached]'); expect(newRun.stderr).toBeFalsy(); expect(newRun.exitCode).toEqual(0); }); @@ -128,18 +128,18 @@ describe('cache related flags from core', () => { writeFileSync(resolve(__dirname, './webpack.test.config.js'), 'module.exports = {mode: "development"}'); const { stderr, stdout } = run(__dirname, ['--cache-type', 'filesystem', '-c', './webpack.test.config.js']); expect(stderr).toBeFalsy(); - expect(stdout).not.toContain('[cached] 1 module'); + expect(stdout).not.toContain('[cached]'); // Running again should use the cache const newRun = run(__dirname, ['--cache-type', 'filesystem', '-c', './webpack.test.config.js']); - expect(newRun.stdout).toContain('[cached] 1 module'); + expect(newRun.stdout).toContain('[cached]'); // Change config to invalidate cache writeFileSync(resolve(__dirname, './webpack.test.config.js'), 'module.exports = {mode: "production"}'); const newRun2 = run(__dirname, ['--cache-type', 'filesystem', '-c', './webpack.test.config.js']); unlinkSync(resolve(__dirname, './webpack.test.config.js')); - expect(newRun2).not.toContain('[cached] 1 module'); + expect(newRun2).not.toContain('[cached]'); expect(newRun2.exitCode).toEqual(0); }); }); diff --git a/test/watch/watch-flag.test.js b/test/watch/watch-flag.test.js index 92ce02b6079..362c01c3615 100644 --- a/test/watch/watch-flag.test.js +++ b/test/watch/watch-flag.test.js @@ -5,7 +5,7 @@ const { writeFileSync } = require('fs'); const { resolve } = require('path'); const wordsInStatsv4 = ['Hash', 'Version', 'Time', 'Built at:', 'main.js']; -const wordsInStatsv5 = ['asset', 'index.js', 'compiled successfully']; +const wordsInStatsv5 = ['asset', 'index.js', `compiled \u001b[1m\u001b[32msuccessfully\u001b[39m\u001b[22m`]; describe('--watch flag', () => { it('should recompile upon file change', (done) => { diff --git a/yarn.lock b/yarn.lock index 4fa0f70ded0..b38096ae911 100644 --- a/yarn.lock +++ b/yarn.lock @@ -11681,10 +11681,10 @@ webpack-sources@^2.0.1: source-list-map "^2.0.1" source-map "^0.6.1" -webpack@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/webpack/-/webpack-5.0.0.tgz#c028b2f0c1db2322de1f4a30cc36f6e373d5a26a" - integrity sha512-OK+Q9xGgda3idw/DgCf75XsVFxRLPu48qPwygqI3W9ls5sDdKif5Ay4SM/1UVob0w4juJy14Zv9nNv0WeyV0aA== +webpack@^5.1.0: + version "5.1.0" + resolved "https://registry.yarnpkg.com/webpack/-/webpack-5.1.0.tgz#7ba2fc8f587ecf0a412477d2e977b3a8818db83c" + integrity sha512-ZJDq7dpVs479C6zCSF/CwOVsqqobjCusa+BgbXCEROZMS0RcBzQzDgc+hB2YXye8Y/JOvcFwJIqsVtTyHW7t8A== dependencies: "@types/eslint-scope" "^3.7.0" "@types/estree" "^0.0.45" From 80b692d949d62e9169cc35d71e5c42047fcda279 Mon Sep 17 00:00:00 2001 From: ylemkimon Date: Wed, 14 Oct 2020 23:31:49 +0900 Subject: [PATCH 07/21] chore: remove unnecessary optional peer dependencies (#1945) --- packages/utils/package.json | 9 --------- 1 file changed, 9 deletions(-) diff --git a/packages/utils/package.json b/packages/utils/package.json index 14568d4afa2..ac406a37f8b 100644 --- a/packages/utils/package.json +++ b/packages/utils/package.json @@ -35,15 +35,6 @@ "@types/yeoman-generator": "^4.11.2" }, "peerDependenciesMeta": { - "@webpack-cli/info": { - "optional": true - }, - "@webpack-cli/init": { - "optional": true - }, - "@webpack-cli/serve": { - "optional": true - }, "prettier": { "optional": true } From 2ace39b06117f558c0d8528cea9248253cbdf593 Mon Sep 17 00:00:00 2001 From: Alexander Krasnoyarov Date: Thu, 15 Oct 2020 00:46:08 +0300 Subject: [PATCH 08/21] fix: support array of functions and promises (#1946) --- .github/workflows/nodejs.yml | 2 +- .../webpack-cli/lib/groups/ConfigGroup.js | 122 +++++--- .../__snapshots__/index.test.ts.snap | 67 ++++ test/config-name/config-name.test.js | 39 ++- test/config/basic/basic-config.test.js | 7 +- .../empty-array.test.js} | 3 +- test/config/empty-array/src/index.js | 1 + test/config/empty-array/webpack.config.js | 1 + .../empty-function/empty-function.test.js | 12 + test/config/empty-function/src/index.js | 1 + test/config/empty-function/webpack.config.js | 3 + .../empty-promise/empty-promise.test.js | 12 + test/config/empty-promise/src/index.js | 1 + test/config/empty-promise/webpack.config.js | 3 + test/config/empty/empty.test.js | 12 + test/config/empty/src/index.js | 1 + .../invalid-export/invalid-export.test.js | 14 + test/config/invalid-export/webpack.config.js | 1 + test/config/no-config-array/a.js | 1 + .../no-config-array/no-config-array.test.js | 13 + test/config/no-config-array/webpack.config.js | 1 + .../config/type/array-function-with-argv/a.js | 1 + .../config/type/array-function-with-argv/b.js | 1 + .../function-with-argv.test.js | 15 + .../webpack.config.js | 22 ++ test/config/type/array-function-with-env/a.js | 1 + .../array-function-with-env.test.js | 17 + test/config/type/array-function-with-env/b.js | 1 + .../array-function-with-env/webpack.config.js | 22 ++ test/config/type/array-functions/a.js | 1 + .../array-functions/array-functions.test.js | 24 ++ test/config/type/array-functions/b.js | 1 + .../type/array-functions/webpack.config.js | 20 ++ test/config/type/array-promises/a.js | 1 + .../array-promises/array-promises.test.js | 23 ++ test/config/type/array-promises/b.js | 1 + .../type/array-promises/webpack.config.js | 24 ++ .../{array-config.test.js => array.test.js} | 2 +- test/config/type/function-array/a.js | 1 + test/config/type/function-array/b.js | 1 + .../function-array/function-array.test.js | 24 ++ .../type/function-array/webpack.config.js | 16 + test/config/type/function-async/a.js | 1 + .../function-async/function-async.test.js | 19 ++ .../type/function-async/webpack.config.js | 9 + test/config/type/function-promise/a.js | 1 + .../function-promise/function-promise.test.js | 19 ++ .../type/function-promise/webpack.config.js | 13 + ...nction-config.test.js => function.test.js} | 2 +- test/config/type/promise-array/a.js | 1 + test/config/type/promise-array/b.js | 1 + .../type/promise-array/promise-array.test.js | 23 ++ .../type/promise-array/webpack.config.js | 20 ++ test/config/type/promise-function/a.js | 1 + .../promise-function/promise-function.test.js | 19 ++ .../type/promise-function/webpack.config.js | 11 + ...promise-config.test.js => promise.test.js} | 2 +- test/config/type/promise/webpack.config.js | 7 +- yarn.lock | 295 ++++++++---------- 59 files changed, 762 insertions(+), 218 deletions(-) rename test/config/{empty/empty-config.test.js => empty-array/empty-array.test.js} (68%) create mode 100644 test/config/empty-array/src/index.js create mode 100644 test/config/empty-array/webpack.config.js create mode 100644 test/config/empty-function/empty-function.test.js create mode 100644 test/config/empty-function/src/index.js create mode 100644 test/config/empty-function/webpack.config.js create mode 100644 test/config/empty-promise/empty-promise.test.js create mode 100644 test/config/empty-promise/src/index.js create mode 100644 test/config/empty-promise/webpack.config.js create mode 100644 test/config/empty/empty.test.js create mode 100644 test/config/empty/src/index.js create mode 100644 test/config/invalid-export/invalid-export.test.js create mode 100644 test/config/invalid-export/webpack.config.js create mode 100644 test/config/no-config-array/a.js create mode 100644 test/config/no-config-array/no-config-array.test.js create mode 100644 test/config/no-config-array/webpack.config.js create mode 100644 test/config/type/array-function-with-argv/a.js create mode 100644 test/config/type/array-function-with-argv/b.js create mode 100644 test/config/type/array-function-with-argv/function-with-argv.test.js create mode 100644 test/config/type/array-function-with-argv/webpack.config.js create mode 100644 test/config/type/array-function-with-env/a.js create mode 100644 test/config/type/array-function-with-env/array-function-with-env.test.js create mode 100644 test/config/type/array-function-with-env/b.js create mode 100644 test/config/type/array-function-with-env/webpack.config.js create mode 100644 test/config/type/array-functions/a.js create mode 100644 test/config/type/array-functions/array-functions.test.js create mode 100644 test/config/type/array-functions/b.js create mode 100644 test/config/type/array-functions/webpack.config.js create mode 100644 test/config/type/array-promises/a.js create mode 100644 test/config/type/array-promises/array-promises.test.js create mode 100644 test/config/type/array-promises/b.js create mode 100644 test/config/type/array-promises/webpack.config.js rename test/config/type/array/{array-config.test.js => array.test.js} (94%) create mode 100644 test/config/type/function-array/a.js create mode 100644 test/config/type/function-array/b.js create mode 100644 test/config/type/function-array/function-array.test.js create mode 100644 test/config/type/function-array/webpack.config.js create mode 100644 test/config/type/function-async/a.js create mode 100644 test/config/type/function-async/function-async.test.js create mode 100644 test/config/type/function-async/webpack.config.js create mode 100644 test/config/type/function-promise/a.js create mode 100644 test/config/type/function-promise/function-promise.test.js create mode 100644 test/config/type/function-promise/webpack.config.js rename test/config/type/function/{function-config.test.js => function.test.js} (92%) create mode 100644 test/config/type/promise-array/a.js create mode 100644 test/config/type/promise-array/b.js create mode 100644 test/config/type/promise-array/promise-array.test.js create mode 100644 test/config/type/promise-array/webpack.config.js create mode 100644 test/config/type/promise-function/a.js create mode 100644 test/config/type/promise-function/promise-function.test.js create mode 100644 test/config/type/promise-function/webpack.config.js rename test/config/type/promise/{promise-config.test.js => promise.test.js} (93%) diff --git a/.github/workflows/nodejs.yml b/.github/workflows/nodejs.yml index a5ce291b14d..9a0913a2de2 100644 --- a/.github/workflows/nodejs.yml +++ b/.github/workflows/nodejs.yml @@ -74,7 +74,7 @@ jobs: path: | node_modules */*/node_modules - key: ${{ runner.os }}-${{ matrix.webpack-version }}-${{ hashFiles('**/yarn.lock') }} + key: ${{ runner.os }}-${{ matrix.webpack-version }}-${{ hashFiles('**/yarn.lock', './yarn.lock') }} - name: Install dependencies if: steps.cache.outputs.cache-hit != 'true' diff --git a/packages/webpack-cli/lib/groups/ConfigGroup.js b/packages/webpack-cli/lib/groups/ConfigGroup.js index ae979207d03..58aa983d6a5 100644 --- a/packages/webpack-cli/lib/groups/ConfigGroup.js +++ b/packages/webpack-cli/lib/groups/ConfigGroup.js @@ -63,46 +63,44 @@ const getConfigInfoFromFileName = (filename) => { .filter((e) => existsSync(e.path)); }; -// Prepare rechoir environment to load multiple file formats -const requireLoader = (extension, path) => { - rechoir.prepare(extensions, path, process.cwd()); -}; - // Reads a config file given the config metadata const requireConfig = (configModule) => { const extension = Object.keys(jsVariants).find((t) => configModule.ext.endsWith(t)); if (extension) { - requireLoader(extension, configModule.path); + rechoir.prepare(extensions, configModule.path, process.cwd()); } let config = require(configModule.path); + if (config.default) { config = config.default; } - return { - content: config, - path: configModule.path, - }; + return { config, path: configModule.path }; }; // Responsible for reading user configuration files // else does a default config lookup and resolves it. const resolveConfigFiles = async (args) => { const { config, mode } = args; + if (config && config.length > 0) { const resolvedOptions = []; const finalizedConfigs = config.map(async (webpackConfig) => { const configPath = resolve(webpackConfig); const configFiles = getConfigInfoFromFileName(configPath); + if (!configFiles.length) { throw new ConfigError(`The specified config file doesn't exist in ${configPath}`); } + const foundConfig = configFiles[0]; const resolvedConfig = requireConfig(foundConfig); + return finalize(resolvedConfig, args); }); + // resolve all the configs for await (const resolvedOption of finalizedConfigs) { if (Array.isArray(resolvedOption.options)) { @@ -111,10 +109,9 @@ const resolveConfigFiles = async (args) => { resolvedOptions.push(resolvedOption.options); } } - // When the resolved configs are more than 1, then pass them as Array [{...}, {...}] else pass the first config object {...} - const finalOptions = resolvedOptions.length > 1 ? resolvedOptions : resolvedOptions[0] || {}; - opts['options'] = finalOptions; + opts['options'] = resolvedOptions.length > 1 ? resolvedOptions : resolvedOptions[0] || {}; + return; } @@ -127,12 +124,16 @@ const resolveConfigFiles = async (args) => { const configFiles = tmpConfigFiles.map(requireConfig); if (configFiles.length) { const defaultConfig = configFiles.find((p) => p.path.includes(mode) || p.path.includes(modeAlias[mode])); + if (defaultConfig) { opts = await finalize(defaultConfig, args); return; } + const foundConfig = configFiles.pop(); + opts = await finalize(foundConfig, args); + return; } }; @@ -150,49 +151,77 @@ const finalize = async (moduleObj, args) => { return newOptionsObject; } - const configOptions = moduleObj.content; + const config = moduleObj.config; - if (typeof configOptions === 'function') { - // when config is a function, pass the env from args to the config function - let formattedEnv; - if (Array.isArray(env)) { - formattedEnv = env.reduce((envObject, envOption) => { - envObject[envOption] = true; - return envObject; - }, {}); - } - const newOptions = configOptions(formattedEnv, args); - // When config function returns a promise, resolve it, if not it's resolved by default - newOptionsObject['options'] = await Promise.resolve(newOptions); - } else if (configName) { - if (Array.isArray(configOptions) && configOptions.length > 1) { - // In case of exporting multiple configurations, If you pass a name to --config-name flag, - // webpack will only build that specific configuration. - const namedOptions = configOptions.filter((opt) => configName.includes(opt.name)); - if (namedOptions.length === 0) { - logger.error(`Configuration with name "${configName}" was not found.`); - process.exit(2); - } else { - newOptionsObject['options'] = namedOptions; + const isMultiCompilerMode = Array.isArray(config); + const rawConfigs = isMultiCompilerMode ? config : [config]; + + let configs = await Promise.all( + rawConfigs.map(async (rawConfig) => { + const isPromise = typeof rawConfig.then === 'function'; + + if (isPromise) { + rawConfig = await rawConfig; } - } else { - logger.error('Multiple configurations not found. Please use "--config-name" with multiple configurations.'); + + // `Promise` may return `Function` + if (typeof rawConfig === 'function') { + // when config is a function, pass the env from args to the config function + let envs; + + if (Array.isArray(env)) { + envs = env.reduce((envObject, envOption) => { + envObject[envOption] = true; + + return envObject; + }, {}); + } + + rawConfig = await rawConfig(envs, args); + } + + return rawConfig; + }), + ); + + if (configName) { + const foundConfigNames = []; + + configs = configs.filter((options) => { + const found = configName.includes(options.name); + + if (found) { + foundConfigNames.push(options.name); + } + + return found; + }); + + if (foundConfigNames.length !== configName.length) { + // Configuration with name "test" was not found. + logger.error( + configName + .filter((name) => !foundConfigNames.includes(name)) + .map((configName) => `Configuration with name "${configName}" was not found.`) + .join('\n'), + ); process.exit(2); } - } else { - if (Array.isArray(configOptions) && !configOptions.length) { - newOptionsObject['options'] = {}; - return newOptionsObject; - } + } - newOptionsObject['options'] = configOptions; + if (configs.length === 0) { + logger.error('No configurations found'); + process.exit(2); } + newOptionsObject['options'] = isMultiCompilerMode ? configs : configs[0]; + return newOptionsObject; }; const resolveConfigMerging = async (args) => { const { merge } = args; + if (merge) { // Get the current configuration options const { options: configOptions } = opts; @@ -210,10 +239,9 @@ const resolveConfigMerging = async (args) => { } }; -const handleConfigResolution = async (args) => { +module.exports = async (args) => { await resolveConfigFiles(args); await resolveConfigMerging(args); + return opts; }; - -module.exports = handleConfigResolution; diff --git a/packages/webpack-scaffold/__tests__/__snapshots__/index.test.ts.snap b/packages/webpack-scaffold/__tests__/__snapshots__/index.test.ts.snap index 4bbb3fc9d09..126c853a068 100755 --- a/packages/webpack-scaffold/__tests__/__snapshots__/index.test.ts.snap +++ b/packages/webpack-scaffold/__tests__/__snapshots__/index.test.ts.snap @@ -59,12 +59,17 @@ Collection { "value": Node { "end": 4, "errors": Array [], + "extra": undefined, + "innerComments": undefined, + "leadingComments": undefined, "loc": SourceLocation { "end": Object { "column": 4, "line": 1, "token": 1, }, + "filename": undefined, + "identifierName": undefined, "indent": 0, "lines": Lines { "cachedSourceMap": null, @@ -96,6 +101,8 @@ Collection { "line": 1, "token": 1, }, + "filename": undefined, + "identifierName": undefined, "start": Position { "column": 4, "line": 1, @@ -122,13 +129,18 @@ Collection { "program": Node { "body": Array [], "end": 4, + "extra": undefined, + "innerComments": undefined, "interpreter": null, + "leadingComments": undefined, "loc": SourceLocation { "end": Position { "column": 4, "line": 1, "token": 1, }, + "filename": undefined, + "identifierName": undefined, "indent": 4, "lines": Lines { "cachedSourceMap": null, @@ -160,6 +172,8 @@ Collection { "line": 1, "token": 1, }, + "filename": undefined, + "identifierName": undefined, "start": Position { "column": 4, "line": 1, @@ -183,10 +197,13 @@ Collection { }, ], }, + "range": undefined, "sourceType": "module", "start": 0, + "trailingComments": undefined, "type": "Program", }, + "range": undefined, "start": 0, "tokens": Array [ Token { @@ -197,6 +214,8 @@ Collection { "line": 1, "token": 1, }, + "filename": undefined, + "identifierName": undefined, "start": Position { "column": 4, "line": 1, @@ -219,6 +238,7 @@ Collection { "value": "", }, ], + "trailingComments": undefined, "type": "File", }, }, @@ -242,12 +262,17 @@ Collection { "value": Node { "end": 5, "errors": Array [], + "extra": undefined, + "innerComments": undefined, + "leadingComments": undefined, "loc": SourceLocation { "end": Object { "column": 5, "line": 1, "token": 2, }, + "filename": undefined, + "identifierName": undefined, "indent": 0, "lines": Lines { "cachedSourceMap": null, @@ -279,6 +304,8 @@ Collection { "line": 1, "token": 2, }, + "filename": undefined, + "identifierName": undefined, "start": Position { "column": 0, "line": 1, @@ -308,6 +335,8 @@ Collection { "column": 5, "line": 1, }, + "filename": undefined, + "identifierName": undefined, "start": Position { "column": 5, "line": 1, @@ -337,12 +366,16 @@ Collection { "end": 5, "expression": Node { "end": 5, + "extra": undefined, + "innerComments": undefined, + "leadingComments": undefined, "loc": SourceLocation { "end": Position { "column": 5, "line": 1, "token": 2, }, + "filename": undefined, "identifierName": "hello", "indent": 0, "lines": Lines { @@ -375,6 +408,8 @@ Collection { "line": 1, "token": 2, }, + "filename": undefined, + "identifierName": undefined, "start": Position { "column": 0, "line": 1, @@ -404,6 +439,8 @@ Collection { "column": 5, "line": 1, }, + "filename": undefined, + "identifierName": undefined, "start": Position { "column": 5, "line": 1, @@ -428,15 +465,22 @@ Collection { ], }, "name": "hello", + "range": undefined, "start": 0, + "trailingComments": undefined, "type": "Identifier", }, + "extra": undefined, + "innerComments": undefined, + "leadingComments": undefined, "loc": SourceLocation { "end": Position { "column": 5, "line": 1, "token": 2, }, + "filename": undefined, + "identifierName": undefined, "indent": 0, "lines": Lines { "cachedSourceMap": null, @@ -468,6 +512,8 @@ Collection { "line": 1, "token": 2, }, + "filename": undefined, + "identifierName": undefined, "start": Position { "column": 0, "line": 1, @@ -497,6 +543,8 @@ Collection { "column": 5, "line": 1, }, + "filename": undefined, + "identifierName": undefined, "start": Position { "column": 5, "line": 1, @@ -520,18 +568,25 @@ Collection { }, ], }, + "range": undefined, "start": 0, + "trailingComments": undefined, "type": "ExpressionStatement", }, ], "end": 5, + "extra": undefined, + "innerComments": undefined, "interpreter": null, + "leadingComments": undefined, "loc": SourceLocation { "end": Object { "column": 5, "line": 1, "token": 2, }, + "filename": undefined, + "identifierName": undefined, "indent": 0, "lines": Lines { "cachedSourceMap": null, @@ -563,6 +618,8 @@ Collection { "line": 1, "token": 2, }, + "filename": undefined, + "identifierName": undefined, "start": Position { "column": 0, "line": 1, @@ -592,6 +649,8 @@ Collection { "column": 5, "line": 1, }, + "filename": undefined, + "identifierName": undefined, "start": Position { "column": 5, "line": 1, @@ -615,10 +674,13 @@ Collection { }, ], }, + "range": undefined, "sourceType": "module", "start": 0, + "trailingComments": undefined, "type": "Program", }, + "range": undefined, "start": 0, "tokens": Array [ Token { @@ -629,6 +691,8 @@ Collection { "line": 1, "token": 2, }, + "filename": undefined, + "identifierName": undefined, "start": Position { "column": 0, "line": 1, @@ -658,6 +722,8 @@ Collection { "column": 5, "line": 1, }, + "filename": undefined, + "identifierName": undefined, "start": Position { "column": 5, "line": 1, @@ -680,6 +746,7 @@ Collection { "value": "", }, ], + "trailingComments": undefined, "type": "File", }, }, diff --git a/test/config-name/config-name.test.js b/test/config-name/config-name.test.js index 9cdf276cb9f..de2fe509af4 100644 --- a/test/config-name/config-name.test.js +++ b/test/config-name/config-name.test.js @@ -6,11 +6,12 @@ const { resolve } = require('path'); describe('--config-name flag', () => { it('should select only the config whose name is passed with --config-name', (done) => { - const { stderr, stdout } = run(__dirname, ['--config-name', 'first'], false); + const { stderr, stdout, exitCode } = run(__dirname, ['--config-name', 'first'], false); expect(stderr).toBeFalsy(); expect(stdout).toContain('first'); expect(stdout).not.toContain('second'); expect(stdout).not.toContain('third'); + expect(exitCode).toBe(0); stat(resolve(__dirname, './dist/dist-first.js'), (err, stats) => { expect(err).toBe(null); @@ -40,14 +41,44 @@ describe('--config-name flag', () => { }); it('should log error if invalid config name is provided', () => { - const { stderr, stdout } = run(__dirname, ['--config-name', 'test'], false); + const { stderr, stdout, exitCode } = run(__dirname, ['--config-name', 'test'], false); + expect(stderr).toContain('Configuration with name "test" was not found.'); expect(stdout).toBeFalsy(); + expect(exitCode).toBe(2); }); it('should log error if multiple configurations are not found', () => { - const { stderr, stdout } = run(__dirname, ['--config-name', 'test', '-c', 'single-config.js'], false); - expect(stderr).toContain('Multiple configurations not found. Please use "--config-name" with multiple configurations'); + const { stderr, stdout, exitCode } = run(__dirname, ['--config-name', 'test', '-c', 'single-config.js'], false); + + expect(stderr).toContain('Configuration with name "test" was not found.'); + expect(stdout).toBeFalsy(); + expect(exitCode).toBe(2); + }); + + it('should log error if multiple configurations are not found #1', () => { + const { stderr, stdout, exitCode } = run( + __dirname, + ['--config-name', 'test', '--config-name', 'bar', '-c', 'single-config.js'], + false, + ); + + expect(stderr).toContain('Configuration with name "test" was not found.'); + expect(stderr).toContain('Configuration with name "bar" was not found.'); + expect(stdout).toBeFalsy(); + expect(exitCode).toBe(2); + }); + + it('should log error if multiple configurations are not found #2', () => { + const { stderr, stdout, exitCode } = run( + __dirname, + ['--config-name', 'first', '--config-name', 'bar', '-c', 'single-config.js'], + false, + ); + + expect(stderr).not.toContain('Configuration with name "first" was not found.'); + expect(stderr).toContain('Configuration with name "bar" was not found.'); expect(stdout).toBeFalsy(); + expect(exitCode).toBe(2); }); }); diff --git a/test/config/basic/basic-config.test.js b/test/config/basic/basic-config.test.js index a2d876db072..6372c65afa9 100644 --- a/test/config/basic/basic-config.test.js +++ b/test/config/basic/basic-config.test.js @@ -5,9 +5,14 @@ const { run } = require('../../utils/test-utils'); describe('basic config file', () => { it('is able to understand and parse a very basic configuration file', () => { - const { stdout, stderr } = run(__dirname, ['-c', resolve(__dirname, 'webpack.config.js'), '--output-path', './binary'], false); + const { stdout, stderr, exitCode } = run( + __dirname, + ['-c', resolve(__dirname, 'webpack.config.js'), '--output-path', './binary'], + false, + ); expect(stderr).toBeFalsy(); expect(stdout).toBeTruthy(); + expect(exitCode).toBe(0); expect(existsSync(resolve(__dirname, './binary/a.bundle.js'))).toBeTruthy(); }); }); diff --git a/test/config/empty/empty-config.test.js b/test/config/empty-array/empty-array.test.js similarity index 68% rename from test/config/empty/empty-config.test.js rename to test/config/empty-array/empty-array.test.js index 71625bf030b..0c34474487d 100644 --- a/test/config/empty/empty-config.test.js +++ b/test/config/empty-array/empty-array.test.js @@ -4,8 +4,9 @@ const { run } = require('../../utils/test-utils'); describe('config flag with empty config file', () => { it('should throw error with no configuration or index file', () => { - const { stdout, stderr } = run(__dirname, ['-c', resolve(__dirname, 'webpack.config.js')]); + const { stdout, stderr, exitCode } = run(__dirname, ['-c', resolve(__dirname, 'webpack.config.js')]); expect(stderr).toBeFalsy(); expect(stdout).toBeTruthy(); + expect(exitCode).toBe(0); }); }); diff --git a/test/config/empty-array/src/index.js b/test/config/empty-array/src/index.js new file mode 100644 index 00000000000..ddcb8a97f43 --- /dev/null +++ b/test/config/empty-array/src/index.js @@ -0,0 +1 @@ +module.exports = 'empty'; \ No newline at end of file diff --git a/test/config/empty-array/webpack.config.js b/test/config/empty-array/webpack.config.js new file mode 100644 index 00000000000..6193feabfd8 --- /dev/null +++ b/test/config/empty-array/webpack.config.js @@ -0,0 +1 @@ +module.exports = [{}, {}]; diff --git a/test/config/empty-function/empty-function.test.js b/test/config/empty-function/empty-function.test.js new file mode 100644 index 00000000000..0c34474487d --- /dev/null +++ b/test/config/empty-function/empty-function.test.js @@ -0,0 +1,12 @@ +'use strict'; +const { resolve } = require('path'); +const { run } = require('../../utils/test-utils'); + +describe('config flag with empty config file', () => { + it('should throw error with no configuration or index file', () => { + const { stdout, stderr, exitCode } = run(__dirname, ['-c', resolve(__dirname, 'webpack.config.js')]); + expect(stderr).toBeFalsy(); + expect(stdout).toBeTruthy(); + expect(exitCode).toBe(0); + }); +}); diff --git a/test/config/empty-function/src/index.js b/test/config/empty-function/src/index.js new file mode 100644 index 00000000000..4d9e3a1cf9b --- /dev/null +++ b/test/config/empty-function/src/index.js @@ -0,0 +1 @@ +module.exports = 'empty-function'; \ No newline at end of file diff --git a/test/config/empty-function/webpack.config.js b/test/config/empty-function/webpack.config.js new file mode 100644 index 00000000000..3b86b2a2eac --- /dev/null +++ b/test/config/empty-function/webpack.config.js @@ -0,0 +1,3 @@ +module.exports = () => { + return {}; +}; diff --git a/test/config/empty-promise/empty-promise.test.js b/test/config/empty-promise/empty-promise.test.js new file mode 100644 index 00000000000..0c34474487d --- /dev/null +++ b/test/config/empty-promise/empty-promise.test.js @@ -0,0 +1,12 @@ +'use strict'; +const { resolve } = require('path'); +const { run } = require('../../utils/test-utils'); + +describe('config flag with empty config file', () => { + it('should throw error with no configuration or index file', () => { + const { stdout, stderr, exitCode } = run(__dirname, ['-c', resolve(__dirname, 'webpack.config.js')]); + expect(stderr).toBeFalsy(); + expect(stdout).toBeTruthy(); + expect(exitCode).toBe(0); + }); +}); diff --git a/test/config/empty-promise/src/index.js b/test/config/empty-promise/src/index.js new file mode 100644 index 00000000000..b6838e230eb --- /dev/null +++ b/test/config/empty-promise/src/index.js @@ -0,0 +1 @@ +module.exports = 'empty-promise'; \ No newline at end of file diff --git a/test/config/empty-promise/webpack.config.js b/test/config/empty-promise/webpack.config.js new file mode 100644 index 00000000000..c8a4865f9d6 --- /dev/null +++ b/test/config/empty-promise/webpack.config.js @@ -0,0 +1,3 @@ +module.exports = new Promise((resolve) => { + resolve({}); +}); diff --git a/test/config/empty/empty.test.js b/test/config/empty/empty.test.js new file mode 100644 index 00000000000..0c34474487d --- /dev/null +++ b/test/config/empty/empty.test.js @@ -0,0 +1,12 @@ +'use strict'; +const { resolve } = require('path'); +const { run } = require('../../utils/test-utils'); + +describe('config flag with empty config file', () => { + it('should throw error with no configuration or index file', () => { + const { stdout, stderr, exitCode } = run(__dirname, ['-c', resolve(__dirname, 'webpack.config.js')]); + expect(stderr).toBeFalsy(); + expect(stdout).toBeTruthy(); + expect(exitCode).toBe(0); + }); +}); diff --git a/test/config/empty/src/index.js b/test/config/empty/src/index.js new file mode 100644 index 00000000000..ddcb8a97f43 --- /dev/null +++ b/test/config/empty/src/index.js @@ -0,0 +1 @@ +module.exports = 'empty'; \ No newline at end of file diff --git a/test/config/invalid-export/invalid-export.test.js b/test/config/invalid-export/invalid-export.test.js new file mode 100644 index 00000000000..ca1abec6ab5 --- /dev/null +++ b/test/config/invalid-export/invalid-export.test.js @@ -0,0 +1,14 @@ +'use strict'; +const { resolve } = require('path'); +const { run } = require('../../utils/test-utils'); + +describe('invalid export', () => { + it('should throw error with no configuration or index file', () => { + const { stderr, exitCode } = run(__dirname, ['-c', resolve(__dirname, 'webpack.config.js')]); + + expect(stderr).toBeTruthy(); + expect(stderr).toContain('Invalid configuration object'); + + expect(exitCode).toBe(2); + }); +}); diff --git a/test/config/invalid-export/webpack.config.js b/test/config/invalid-export/webpack.config.js new file mode 100644 index 00000000000..2651774ae60 --- /dev/null +++ b/test/config/invalid-export/webpack.config.js @@ -0,0 +1 @@ +module.exports = 'foo'; diff --git a/test/config/no-config-array/a.js b/test/config/no-config-array/a.js new file mode 100644 index 00000000000..735d820f253 --- /dev/null +++ b/test/config/no-config-array/a.js @@ -0,0 +1 @@ +module.exports = 'a.js'; diff --git a/test/config/no-config-array/no-config-array.test.js b/test/config/no-config-array/no-config-array.test.js new file mode 100644 index 00000000000..2be56276b57 --- /dev/null +++ b/test/config/no-config-array/no-config-array.test.js @@ -0,0 +1,13 @@ +'use strict'; + +const { resolve } = require('path'); +const { run } = require('../../utils/test-utils'); + +describe('no configs in array', () => { + it('is able to understand and parse a very basic configuration file', () => { + const { stdout, stderr, exitCode } = run(__dirname, ['-c', resolve(__dirname, 'webpack.config.js')], false); + expect(stderr).toContain('No configurations found'); + expect(stdout).toBeFalsy(); + expect(exitCode).toBe(2); + }); +}); diff --git a/test/config/no-config-array/webpack.config.js b/test/config/no-config-array/webpack.config.js new file mode 100644 index 00000000000..e0a30c5dfa3 --- /dev/null +++ b/test/config/no-config-array/webpack.config.js @@ -0,0 +1 @@ +module.exports = []; diff --git a/test/config/type/array-function-with-argv/a.js b/test/config/type/array-function-with-argv/a.js new file mode 100644 index 00000000000..8609d075540 --- /dev/null +++ b/test/config/type/array-function-with-argv/a.js @@ -0,0 +1 @@ +console.log('a'); diff --git a/test/config/type/array-function-with-argv/b.js b/test/config/type/array-function-with-argv/b.js new file mode 100644 index 00000000000..eeb313a0347 --- /dev/null +++ b/test/config/type/array-function-with-argv/b.js @@ -0,0 +1 @@ +console.log('b'); diff --git a/test/config/type/array-function-with-argv/function-with-argv.test.js b/test/config/type/array-function-with-argv/function-with-argv.test.js new file mode 100644 index 00000000000..1685a9a110c --- /dev/null +++ b/test/config/type/array-function-with-argv/function-with-argv.test.js @@ -0,0 +1,15 @@ +'use strict'; +const { existsSync } = require('fs'); +const { resolve } = require('path'); +const { run } = require('../../../utils/test-utils'); + +describe('array of function with args', () => { + it('is able to understand a configuration file as a function', () => { + const { stderr, stdout, exitCode } = run(__dirname, ['--mode', 'development'], false); + expect(stderr).toBeFalsy(); + expect(stdout).toBeTruthy(); + expect(exitCode).toBe(0); + expect(existsSync(resolve(__dirname, './dist/a-dev.js'))).toBeTruthy(); + expect(existsSync(resolve(__dirname, './dist/b-dev.js'))).toBeTruthy(); + }); +}); diff --git a/test/config/type/array-function-with-argv/webpack.config.js b/test/config/type/array-function-with-argv/webpack.config.js new file mode 100644 index 00000000000..2ced6f132a5 --- /dev/null +++ b/test/config/type/array-function-with-argv/webpack.config.js @@ -0,0 +1,22 @@ +module.exports = [ + (env, argv) => { + console.log({ argv }); + const { mode } = argv; + return { + entry: './a.js', + output: { + filename: mode === 'production' ? 'a-prod.js' : 'a-dev.js', + }, + }; + }, + (env, argv) => { + console.log({ argv }); + const { mode } = argv; + return { + entry: './b.js', + output: { + filename: mode === 'production' ? 'b-prod.js' : 'b-dev.js', + }, + }; + }, +]; diff --git a/test/config/type/array-function-with-env/a.js b/test/config/type/array-function-with-env/a.js new file mode 100644 index 00000000000..8609d075540 --- /dev/null +++ b/test/config/type/array-function-with-env/a.js @@ -0,0 +1 @@ +console.log('a'); diff --git a/test/config/type/array-function-with-env/array-function-with-env.test.js b/test/config/type/array-function-with-env/array-function-with-env.test.js new file mode 100644 index 00000000000..c51cef8e060 --- /dev/null +++ b/test/config/type/array-function-with-env/array-function-with-env.test.js @@ -0,0 +1,17 @@ +'use strict'; +const { existsSync } = require('fs'); +const { resolve } = require('path'); +const { run } = require('../../../utils/test-utils'); + +describe('array of functions with env', () => { + it('is able to understand a configuration file as a function', () => { + const { stderr, stdout, exitCode } = run(__dirname, ['--mode', 'development'], false); + expect(stderr).toBeFalsy(); + expect(stdout).toBeTruthy(); + expect(exitCode).toBe(0); + + // Should generate the appropriate files + expect(existsSync(resolve(__dirname, './dist/a-dev.js'))).toBeTruthy(); + expect(existsSync(resolve(__dirname, './dist/b-dev.js'))).toBeTruthy(); + }); +}); diff --git a/test/config/type/array-function-with-env/b.js b/test/config/type/array-function-with-env/b.js new file mode 100644 index 00000000000..eeb313a0347 --- /dev/null +++ b/test/config/type/array-function-with-env/b.js @@ -0,0 +1 @@ +console.log('b'); diff --git a/test/config/type/array-function-with-env/webpack.config.js b/test/config/type/array-function-with-env/webpack.config.js new file mode 100644 index 00000000000..2ced6f132a5 --- /dev/null +++ b/test/config/type/array-function-with-env/webpack.config.js @@ -0,0 +1,22 @@ +module.exports = [ + (env, argv) => { + console.log({ argv }); + const { mode } = argv; + return { + entry: './a.js', + output: { + filename: mode === 'production' ? 'a-prod.js' : 'a-dev.js', + }, + }; + }, + (env, argv) => { + console.log({ argv }); + const { mode } = argv; + return { + entry: './b.js', + output: { + filename: mode === 'production' ? 'b-prod.js' : 'b-dev.js', + }, + }; + }, +]; diff --git a/test/config/type/array-functions/a.js b/test/config/type/array-functions/a.js new file mode 100644 index 00000000000..ea51098c48f --- /dev/null +++ b/test/config/type/array-functions/a.js @@ -0,0 +1 @@ +module.exports = 'a-function'; diff --git a/test/config/type/array-functions/array-functions.test.js b/test/config/type/array-functions/array-functions.test.js new file mode 100644 index 00000000000..920852f4aa0 --- /dev/null +++ b/test/config/type/array-functions/array-functions.test.js @@ -0,0 +1,24 @@ +'use strict'; +const { stat } = require('fs'); +const { resolve } = require('path'); +const { run } = require('../../../utils/test-utils'); + +describe('array of functions', () => { + it('is able to understand a configuration file as a function', (done) => { + const { stderr, exitCode } = run(__dirname, ['-c', resolve(__dirname, 'webpack.config.js')], false); + + expect(stderr).toBeFalsy(); + expect(exitCode).toBe(0); + + stat(resolve(__dirname, './binary/a-functor.js'), (err, stats) => { + expect(err).toBe(null); + expect(stats.isFile()).toBe(true); + + stat(resolve(__dirname, './binary/b-functor.js'), (err, stats) => { + expect(err).toBe(null); + expect(stats.isFile()).toBe(true); + done(); + }); + }); + }); +}); diff --git a/test/config/type/array-functions/b.js b/test/config/type/array-functions/b.js new file mode 100644 index 00000000000..5614cdc34c5 --- /dev/null +++ b/test/config/type/array-functions/b.js @@ -0,0 +1 @@ +module.exports = 'b-function'; diff --git a/test/config/type/array-functions/webpack.config.js b/test/config/type/array-functions/webpack.config.js new file mode 100644 index 00000000000..a10065bb402 --- /dev/null +++ b/test/config/type/array-functions/webpack.config.js @@ -0,0 +1,20 @@ +module.exports = [ + () => { + return { + entry: './a', + output: { + path: __dirname + '/binary', + filename: 'a-functor.js', + }, + }; + }, + () => { + return { + entry: './b', + output: { + path: __dirname + '/binary', + filename: 'b-functor.js', + }, + }; + }, +]; diff --git a/test/config/type/array-promises/a.js b/test/config/type/array-promises/a.js new file mode 100644 index 00000000000..4f7f5db3d4c --- /dev/null +++ b/test/config/type/array-promises/a.js @@ -0,0 +1 @@ +module.exports = 'a-promise'; diff --git a/test/config/type/array-promises/array-promises.test.js b/test/config/type/array-promises/array-promises.test.js new file mode 100644 index 00000000000..7c831d99cff --- /dev/null +++ b/test/config/type/array-promises/array-promises.test.js @@ -0,0 +1,23 @@ +'use strict'; +const { stat } = require('fs'); +const { resolve } = require('path'); +const { run } = require('../../../utils/test-utils'); + +describe('array of promises', () => { + it('is able to understand a configuration file as a promise', (done) => { + const { stdout, stderr } = run(__dirname, ['-c', './webpack.config.js'], false); + expect(stdout).toBeTruthy(); + expect(stderr).toBeFalsy(); + + stat(resolve(__dirname, './binary/a-promise.js'), (err, stats) => { + expect(err).toBe(null); + expect(stats.isFile()).toBe(true); + + stat(resolve(__dirname, './binary/b-promise.js'), (err, stats) => { + expect(err).toBe(null); + expect(stats.isFile()).toBe(true); + done(); + }); + }); + }); +}); diff --git a/test/config/type/array-promises/b.js b/test/config/type/array-promises/b.js new file mode 100644 index 00000000000..d4280020bd2 --- /dev/null +++ b/test/config/type/array-promises/b.js @@ -0,0 +1 @@ +module.exports = 'b-promise'; diff --git a/test/config/type/array-promises/webpack.config.js b/test/config/type/array-promises/webpack.config.js new file mode 100644 index 00000000000..8d7498a200f --- /dev/null +++ b/test/config/type/array-promises/webpack.config.js @@ -0,0 +1,24 @@ +module.exports = [ + new Promise((resolve) => { + setTimeout(() => { + resolve({ + entry: './a', + output: { + path: __dirname + '/binary', + filename: 'a-promise.js', + }, + }); + }, 0); + }), + new Promise((resolve) => { + setTimeout(() => { + resolve({ + entry: './b', + output: { + path: __dirname + '/binary', + filename: 'b-promise.js', + }, + }); + }, 0); + }), +]; diff --git a/test/config/type/array/array-config.test.js b/test/config/type/array/array.test.js similarity index 94% rename from test/config/type/array/array-config.test.js rename to test/config/type/array/array.test.js index af9e29ac07a..28149ff06dc 100644 --- a/test/config/type/array/array-config.test.js +++ b/test/config/type/array/array.test.js @@ -3,7 +3,7 @@ const { stat } = require('fs'); const { resolve } = require('path'); const { run } = require('../../../utils/test-utils'); -describe('array configuration', () => { +describe('array', () => { it('is able to understand a configuration file in array format', (done) => { run(__dirname, ['-c', resolve(__dirname, 'webpack.config.js')], false); stat(resolve(__dirname, './dist/dist-commonjs.js'), (err, stats) => { diff --git a/test/config/type/function-array/a.js b/test/config/type/function-array/a.js new file mode 100644 index 00000000000..ea51098c48f --- /dev/null +++ b/test/config/type/function-array/a.js @@ -0,0 +1 @@ +module.exports = 'a-function'; diff --git a/test/config/type/function-array/b.js b/test/config/type/function-array/b.js new file mode 100644 index 00000000000..5614cdc34c5 --- /dev/null +++ b/test/config/type/function-array/b.js @@ -0,0 +1 @@ +module.exports = 'b-function'; diff --git a/test/config/type/function-array/function-array.test.js b/test/config/type/function-array/function-array.test.js new file mode 100644 index 00000000000..c7312b734e5 --- /dev/null +++ b/test/config/type/function-array/function-array.test.js @@ -0,0 +1,24 @@ +'use strict'; +const { stat } = require('fs'); +const { resolve } = require('path'); +const { run } = require('../../../utils/test-utils'); + +describe('function array', () => { + it('is able to understand a configuration file as a function', (done) => { + const { stderr, exitCode } = run(__dirname, ['-c', resolve(__dirname, 'webpack.config.js')], false); + + expect(stderr).toBeFalsy(); + expect(exitCode).toBe(0); + + stat(resolve(__dirname, './binary/a-functor.js'), (err, stats) => { + expect(err).toBe(null); + expect(stats.isFile()).toBe(true); + + stat(resolve(__dirname, './binary/b-functor.js'), (err, stats) => { + expect(err).toBe(null); + expect(stats.isFile()).toBe(true); + done(); + }); + }); + }); +}); diff --git a/test/config/type/function-array/webpack.config.js b/test/config/type/function-array/webpack.config.js new file mode 100644 index 00000000000..5bd0287a4bb --- /dev/null +++ b/test/config/type/function-array/webpack.config.js @@ -0,0 +1,16 @@ +module.exports = () => [ + { + entry: './a', + output: { + path: __dirname + '/binary', + filename: 'a-functor.js', + }, + }, + { + entry: './b', + output: { + path: __dirname + '/binary', + filename: 'b-functor.js', + }, + }, +]; diff --git a/test/config/type/function-async/a.js b/test/config/type/function-async/a.js new file mode 100644 index 00000000000..ea51098c48f --- /dev/null +++ b/test/config/type/function-async/a.js @@ -0,0 +1 @@ +module.exports = 'a-function'; diff --git a/test/config/type/function-async/function-async.test.js b/test/config/type/function-async/function-async.test.js new file mode 100644 index 00000000000..3b8fa277d98 --- /dev/null +++ b/test/config/type/function-async/function-async.test.js @@ -0,0 +1,19 @@ +'use strict'; +const { stat } = require('fs'); +const { resolve } = require('path'); +const { run } = require('../../../utils/test-utils'); + +describe('function async', () => { + it('is able to understand a configuration file as a function', (done) => { + const { stderr, exitCode } = run(__dirname, ['-c', resolve(__dirname, 'webpack.config.js')], false); + + expect(stderr).toBeFalsy(); + expect(exitCode).toBe(0); + + stat(resolve(__dirname, './binary/functor.js'), (err, stats) => { + expect(err).toBe(null); + expect(stats.isFile()).toBe(true); + done(); + }); + }); +}); diff --git a/test/config/type/function-async/webpack.config.js b/test/config/type/function-async/webpack.config.js new file mode 100644 index 00000000000..6457b889f8c --- /dev/null +++ b/test/config/type/function-async/webpack.config.js @@ -0,0 +1,9 @@ +module.exports = async () => { + return { + entry: './a', + output: { + path: __dirname + '/binary', + filename: 'functor.js', + }, + }; +}; diff --git a/test/config/type/function-promise/a.js b/test/config/type/function-promise/a.js new file mode 100644 index 00000000000..ea51098c48f --- /dev/null +++ b/test/config/type/function-promise/a.js @@ -0,0 +1 @@ +module.exports = 'a-function'; diff --git a/test/config/type/function-promise/function-promise.test.js b/test/config/type/function-promise/function-promise.test.js new file mode 100644 index 00000000000..ba42b3c57e5 --- /dev/null +++ b/test/config/type/function-promise/function-promise.test.js @@ -0,0 +1,19 @@ +'use strict'; +const { stat } = require('fs'); +const { resolve } = require('path'); +const { run } = require('../../../utils/test-utils'); + +describe('function promise', () => { + it('is able to understand a configuration file as a function', (done) => { + const { stderr, exitCode } = run(__dirname, ['-c', resolve(__dirname, 'webpack.config.js')], false); + + expect(stderr).toBeFalsy(); + expect(exitCode).toBe(0); + + stat(resolve(__dirname, './binary/functor.js'), (err, stats) => { + expect(err).toBe(null); + expect(stats.isFile()).toBe(true); + done(); + }); + }); +}); diff --git a/test/config/type/function-promise/webpack.config.js b/test/config/type/function-promise/webpack.config.js new file mode 100644 index 00000000000..777459d6e0e --- /dev/null +++ b/test/config/type/function-promise/webpack.config.js @@ -0,0 +1,13 @@ +module.exports = () => { + return new Promise((resolve) => { + setTimeout(() => { + resolve({ + entry: './a', + output: { + path: __dirname + '/binary', + filename: 'functor.js', + }, + }); + }); + }, 0); +}; diff --git a/test/config/type/function/function-config.test.js b/test/config/type/function/function.test.js similarity index 92% rename from test/config/type/function/function-config.test.js rename to test/config/type/function/function.test.js index 224e2af730d..80f30ad08d1 100644 --- a/test/config/type/function/function-config.test.js +++ b/test/config/type/function/function.test.js @@ -3,7 +3,7 @@ const { stat } = require('fs'); const { resolve } = require('path'); const { run } = require('../../../utils/test-utils'); -describe('function configuration', () => { +describe('function', () => { it('is able to understand a configuration file as a function', (done) => { run(__dirname, ['-c', resolve(__dirname, 'webpack.config.js')], false); stat(resolve(__dirname, './binary/functor.js'), (err, stats) => { diff --git a/test/config/type/promise-array/a.js b/test/config/type/promise-array/a.js new file mode 100644 index 00000000000..4f7f5db3d4c --- /dev/null +++ b/test/config/type/promise-array/a.js @@ -0,0 +1 @@ +module.exports = 'a-promise'; diff --git a/test/config/type/promise-array/b.js b/test/config/type/promise-array/b.js new file mode 100644 index 00000000000..d4280020bd2 --- /dev/null +++ b/test/config/type/promise-array/b.js @@ -0,0 +1 @@ +module.exports = 'b-promise'; diff --git a/test/config/type/promise-array/promise-array.test.js b/test/config/type/promise-array/promise-array.test.js new file mode 100644 index 00000000000..ba99a92449b --- /dev/null +++ b/test/config/type/promise-array/promise-array.test.js @@ -0,0 +1,23 @@ +'use strict'; +const { stat } = require('fs'); +const { resolve } = require('path'); +const { run } = require('../../../utils/test-utils'); + +describe('promise array', () => { + it('is able to understand a configuration file as a promise', (done) => { + const { stdout, stderr } = run(__dirname, ['-c', './webpack.config.js'], false); + expect(stdout).toBeTruthy(); + expect(stderr).toBeFalsy(); + + stat(resolve(__dirname, './binary/a-promise.js'), (err, stats) => { + expect(err).toBe(null); + expect(stats.isFile()).toBe(true); + + stat(resolve(__dirname, './binary/b-promise.js'), (err, stats) => { + expect(err).toBe(null); + expect(stats.isFile()).toBe(true); + done(); + }); + }); + }); +}); diff --git a/test/config/type/promise-array/webpack.config.js b/test/config/type/promise-array/webpack.config.js new file mode 100644 index 00000000000..4779964e1af --- /dev/null +++ b/test/config/type/promise-array/webpack.config.js @@ -0,0 +1,20 @@ +module.exports = new Promise((resolve) => { + setTimeout(() => { + resolve([ + { + entry: './a', + output: { + path: __dirname + '/binary', + filename: 'a-promise.js', + }, + }, + { + entry: './b', + output: { + path: __dirname + '/binary', + filename: 'b-promise.js', + }, + }, + ]); + }, 0); +}); diff --git a/test/config/type/promise-function/a.js b/test/config/type/promise-function/a.js new file mode 100644 index 00000000000..4f7f5db3d4c --- /dev/null +++ b/test/config/type/promise-function/a.js @@ -0,0 +1 @@ +module.exports = 'a-promise'; diff --git a/test/config/type/promise-function/promise-function.test.js b/test/config/type/promise-function/promise-function.test.js new file mode 100644 index 00000000000..220e908bae5 --- /dev/null +++ b/test/config/type/promise-function/promise-function.test.js @@ -0,0 +1,19 @@ +'use strict'; +const { stat } = require('fs'); +const { resolve } = require('path'); +const { run } = require('../../../utils/test-utils'); + +describe('promise function', () => { + it('is able to understand a configuration file as a promise', (done) => { + const { stdout, stderr } = run(__dirname, ['-c', './webpack.config.js'], false); + console.log(stdout); + console.log(stderr); + expect(stdout).toBeTruthy(); + expect(stderr).toBeFalsy(); + stat(resolve(__dirname, './binary/promise.js'), (err, stats) => { + expect(err).toBe(null); + expect(stats.isFile()).toBe(true); + done(); + }); + }); +}); diff --git a/test/config/type/promise-function/webpack.config.js b/test/config/type/promise-function/webpack.config.js new file mode 100644 index 00000000000..f2881885ba2 --- /dev/null +++ b/test/config/type/promise-function/webpack.config.js @@ -0,0 +1,11 @@ +module.exports = new Promise((resolve) => { + setTimeout(() => { + resolve(() => ({ + entry: './a', + output: { + path: __dirname + '/binary', + filename: 'promise.js', + }, + })); + }, 0); +}); diff --git a/test/config/type/promise/promise-config.test.js b/test/config/type/promise/promise.test.js similarity index 93% rename from test/config/type/promise/promise-config.test.js rename to test/config/type/promise/promise.test.js index 061bdc92785..3938804bf66 100644 --- a/test/config/type/promise/promise-config.test.js +++ b/test/config/type/promise/promise.test.js @@ -3,7 +3,7 @@ const { stat } = require('fs'); const { resolve } = require('path'); const { run } = require('../../../utils/test-utils'); -describe('promise configuration', () => { +describe('promise', () => { it('is able to understand a configuration file as a promise', (done) => { const { stdout, stderr } = run(__dirname, ['-c', './webpack.config.js'], false); expect(stdout).toBeTruthy(); diff --git a/test/config/type/promise/webpack.config.js b/test/config/type/promise/webpack.config.js index f657e66b809..fdfbe448445 100644 --- a/test/config/type/promise/webpack.config.js +++ b/test/config/type/promise/webpack.config.js @@ -1,5 +1,5 @@ -module.exports = () => { - return new Promise((resolve) => { +module.exports = () => + new Promise((resolve) => { setTimeout(() => { resolve({ entry: './a', @@ -8,6 +8,5 @@ module.exports = () => { filename: 'promise.js', }, }); - }, 500); + }, 0); }); -}; diff --git a/yarn.lock b/yarn.lock index b38096ae911..ecf32d0fda8 100644 --- a/yarn.lock +++ b/yarn.lock @@ -9,28 +9,24 @@ dependencies: "@babel/highlight" "^7.10.4" -"@babel/compat-data@^7.10.4", "@babel/compat-data@^7.11.0": - version "7.11.0" - resolved "https://registry.yarnpkg.com/@babel/compat-data/-/compat-data-7.11.0.tgz#e9f73efe09af1355b723a7f39b11bad637d7c99c" - integrity sha512-TPSvJfv73ng0pfnEOh17bYMPQbI95+nGWc71Ss4vZdRBHTDqmM9Z8ZV4rYz8Ks7sfzc95n30k6ODIq5UGnXcYQ== - dependencies: - browserslist "^4.12.0" - invariant "^2.2.4" - semver "^5.5.0" +"@babel/compat-data@^7.12.0": + version "7.12.0" + resolved "https://registry.yarnpkg.com/@babel/compat-data/-/compat-data-7.12.0.tgz#443aea07a5aeba7942cb067de6b8272f2ab36b9e" + integrity sha512-jAbCtMANC9ptXxbSVXIqV/3H0bkh7iyyv6JS5lu10av45bcc2QmDNJXkASZCFwbBt75Q0AEq/BB+bNa3x1QgYQ== "@babel/core@^7.1.0", "@babel/core@^7.1.6", "@babel/core@^7.11.1", "@babel/core@^7.7.5": - version "7.11.6" - resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.11.6.tgz#3a9455dc7387ff1bac45770650bc13ba04a15651" - integrity sha512-Wpcv03AGnmkgm6uS6k8iwhIwTrcP0m17TL1n1sy7qD0qelDu4XNeW0dN0mHfa+Gei211yDaLoEe/VlbXQzM4Bg== + version "7.12.0" + resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.12.0.tgz#e42e07a086e978cdd4c61f4078d8230fb817cc86" + integrity sha512-iV7Gwg0DePKvdDZZWRTkj4MW+6/AbVWd4ZCg+zk8H1RVt5xBpUZS6vLQWwb3pyLg4BFTaGiQCPoJ4Ibmbne4fA== dependencies: "@babel/code-frame" "^7.10.4" - "@babel/generator" "^7.11.6" - "@babel/helper-module-transforms" "^7.11.0" + "@babel/generator" "^7.12.0" + "@babel/helper-module-transforms" "^7.12.0" "@babel/helpers" "^7.10.4" - "@babel/parser" "^7.11.5" + "@babel/parser" "^7.12.0" "@babel/template" "^7.10.4" - "@babel/traverse" "^7.11.5" - "@babel/types" "^7.11.5" + "@babel/traverse" "^7.12.0" + "@babel/types" "^7.12.0" convert-source-map "^1.7.0" debug "^4.1.0" gensync "^1.0.0-beta.1" @@ -40,12 +36,12 @@ semver "^5.4.1" source-map "^0.5.0" -"@babel/generator@^7.11.5", "@babel/generator@^7.11.6": - version "7.11.6" - resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.11.6.tgz#b868900f81b163b4d464ea24545c61cbac4dc620" - integrity sha512-DWtQ1PV3r+cLbySoHrwn9RWEgKMBLLma4OBQloPRyDYvc5msJM9kvTLo1YnlJd1P/ZuKbdli3ijr5q3FvAF3uA== +"@babel/generator@^7.12.0": + version "7.12.0" + resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.12.0.tgz#91a45f1c18ca8d895a35a04da1a4cf7ea3f37f98" + integrity sha512-8lnf4QcyiQMf5XQp47BltuMTocsOh6P0z/vueEh8GzhmWWlDbdvOoI5Ziddg0XYhmnx35HyByUW51/9NprF8cA== dependencies: - "@babel/types" "^7.11.5" + "@babel/types" "^7.12.0" jsesc "^2.5.1" source-map "^0.5.0" @@ -64,37 +60,36 @@ "@babel/helper-explode-assignable-expression" "^7.10.4" "@babel/types" "^7.10.4" -"@babel/helper-compilation-targets@^7.10.4": - version "7.10.4" - resolved "https://registry.yarnpkg.com/@babel/helper-compilation-targets/-/helper-compilation-targets-7.10.4.tgz#804ae8e3f04376607cc791b9d47d540276332bd2" - integrity sha512-a3rYhlsGV0UHNDvrtOXBg8/OpfV0OKTkxKPzIplS1zpx7CygDcWWxckxZeDd3gzPzC4kUT0A4nVFDK0wGMh4MQ== +"@babel/helper-compilation-targets@^7.12.0": + version "7.12.0" + resolved "https://registry.yarnpkg.com/@babel/helper-compilation-targets/-/helper-compilation-targets-7.12.0.tgz#c477d89a1f4d626c8149b9b88802f78d66d0c99a" + integrity sha512-NbDFJNjDgxE7IkrHp5gq2+Tr8bEdCLKYN90YDQEjMiTMUAFAcShNkaH8kydcmU0mEQTiQY0Ydy/+1xfS2OCEnw== dependencies: - "@babel/compat-data" "^7.10.4" + "@babel/compat-data" "^7.12.0" + "@babel/helper-validator-option" "^7.12.0" browserslist "^4.12.0" - invariant "^2.2.4" - levenary "^1.1.1" semver "^5.5.0" -"@babel/helper-create-class-features-plugin@^7.10.4", "@babel/helper-create-class-features-plugin@^7.10.5": - version "7.10.5" - resolved "https://registry.yarnpkg.com/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.10.5.tgz#9f61446ba80e8240b0a5c85c6fdac8459d6f259d" - integrity sha512-0nkdeijB7VlZoLT3r/mY3bUkw3T8WG/hNw+FATs/6+pG2039IJWjTYL0VTISqsNHMUTEnwbVnc89WIJX9Qed0A== +"@babel/helper-create-class-features-plugin@^7.10.4", "@babel/helper-create-class-features-plugin@^7.12.0": + version "7.12.0" + resolved "https://registry.yarnpkg.com/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.12.0.tgz#f3f2fc77bacc89e59ce6764daeabc1fb23e79a05" + integrity sha512-9tD1r9RK928vxvxcoNK8/7uwT7Q2DJZP1dnJmyMAJPwOF0yr8PPwqdpyw33lUpCfrJ765bOs5XNa4KSfUDWFSw== dependencies: "@babel/helper-function-name" "^7.10.4" - "@babel/helper-member-expression-to-functions" "^7.10.5" + "@babel/helper-member-expression-to-functions" "^7.12.0" "@babel/helper-optimise-call-expression" "^7.10.4" "@babel/helper-plugin-utils" "^7.10.4" - "@babel/helper-replace-supers" "^7.10.4" + "@babel/helper-replace-supers" "^7.12.0" "@babel/helper-split-export-declaration" "^7.10.4" "@babel/helper-create-regexp-features-plugin@^7.10.4": - version "7.10.4" - resolved "https://registry.yarnpkg.com/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.10.4.tgz#fdd60d88524659a0b6959c0579925e425714f3b8" - integrity sha512-2/hu58IEPKeoLF45DBwx3XFqsbCXmkdAay4spVr2x0jYgRxrSNp+ePwvSsy9g6YSaNDcKIQVPXk1Ov8S2edk2g== + version "7.12.0" + resolved "https://registry.yarnpkg.com/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.12.0.tgz#858cef57039f3b3a9012273597288a71e1dff8ca" + integrity sha512-YBqH+3wLcom+tko8/JLgRcG8DMqORgmjqNRNI751gTioJSZHWFybO1mRoLtJtWIlYSHY+zT9LqqnbbK1c3KIVQ== dependencies: "@babel/helper-annotate-as-pure" "^7.10.4" "@babel/helper-regex" "^7.10.4" - regexpu-core "^4.7.0" + regexpu-core "^4.7.1" "@babel/helper-define-map@^7.10.4": version "7.10.5" @@ -135,12 +130,12 @@ dependencies: "@babel/types" "^7.10.4" -"@babel/helper-member-expression-to-functions@^7.10.4", "@babel/helper-member-expression-to-functions@^7.10.5": - version "7.11.0" - resolved "https://registry.yarnpkg.com/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.11.0.tgz#ae69c83d84ee82f4b42f96e2a09410935a8f26df" - integrity sha512-JbFlKHFntRV5qKw3YC0CvQnDZ4XMwgzzBbld7Ly4Mj4cbFy3KywcR8NtNctRToMWJOVvLINJv525Gd6wwVEx/Q== +"@babel/helper-member-expression-to-functions@^7.12.0": + version "7.12.0" + resolved "https://registry.yarnpkg.com/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.12.0.tgz#48f605fa801764f3e5b2e301e49d35fe1820c4f3" + integrity sha512-I0d/bgzgzgLsJMk7UZ0TN2KV3OGjC/t/9Saz8PKb9jrcEAXhgjGysOgp4PDKydIKjUv/gj2St4ae+ov8l+T9Xg== dependencies: - "@babel/types" "^7.11.0" + "@babel/types" "^7.12.0" "@babel/helper-module-imports@^7.10.4": version "7.10.4" @@ -149,17 +144,19 @@ dependencies: "@babel/types" "^7.10.4" -"@babel/helper-module-transforms@^7.10.4", "@babel/helper-module-transforms@^7.10.5", "@babel/helper-module-transforms@^7.11.0": - version "7.11.0" - resolved "https://registry.yarnpkg.com/@babel/helper-module-transforms/-/helper-module-transforms-7.11.0.tgz#b16f250229e47211abdd84b34b64737c2ab2d359" - integrity sha512-02EVu8COMuTRO1TAzdMtpBPbe6aQ1w/8fePD2YgQmxZU4gpNWaL9gK3Jp7dxlkUlUCJOTaSeA+Hrm1BRQwqIhg== +"@babel/helper-module-transforms@^7.10.4", "@babel/helper-module-transforms@^7.10.5", "@babel/helper-module-transforms@^7.12.0": + version "7.12.0" + resolved "https://registry.yarnpkg.com/@babel/helper-module-transforms/-/helper-module-transforms-7.12.0.tgz#8ac7d9e8716f94549a42e577c5429391950e33f3" + integrity sha512-1ZTMoCiLSzTJLbq7mSaTHki4oIrBIf/dUbzdhwTrvtMU3ZNVKwQmGae3gSiqppo7G8HAgnXmc43rfEaD8yYLLQ== dependencies: "@babel/helper-module-imports" "^7.10.4" - "@babel/helper-replace-supers" "^7.10.4" + "@babel/helper-replace-supers" "^7.12.0" "@babel/helper-simple-access" "^7.10.4" "@babel/helper-split-export-declaration" "^7.11.0" + "@babel/helper-validator-identifier" "^7.10.4" "@babel/template" "^7.10.4" - "@babel/types" "^7.11.0" + "@babel/traverse" "^7.12.0" + "@babel/types" "^7.12.0" lodash "^4.17.19" "@babel/helper-optimise-call-expression@^7.10.4": @@ -191,15 +188,15 @@ "@babel/template" "^7.10.4" "@babel/types" "^7.10.4" -"@babel/helper-replace-supers@^7.10.4": - version "7.10.4" - resolved "https://registry.yarnpkg.com/@babel/helper-replace-supers/-/helper-replace-supers-7.10.4.tgz#d585cd9388ea06e6031e4cd44b6713cbead9e6cf" - integrity sha512-sPxZfFXocEymYTdVK1UNmFPBN+Hv5mJkLPsYWwGBxZAxaWfFu+xqp7b6qWD0yjNuNL2VKc6L5M18tOXUP7NU0A== +"@babel/helper-replace-supers@^7.10.4", "@babel/helper-replace-supers@^7.12.0": + version "7.12.0" + resolved "https://registry.yarnpkg.com/@babel/helper-replace-supers/-/helper-replace-supers-7.12.0.tgz#98d3f3eb779752e59c7422ab387c9b444323be60" + integrity sha512-9kycFdq2c9e7PXZOr2z/ZqTFF9OzFu287iFwYS+CiDVPuoTCfY8hoTsIqNQNetQjlqoRsRyJFrMG1uhGAR4EEw== dependencies: - "@babel/helper-member-expression-to-functions" "^7.10.4" + "@babel/helper-member-expression-to-functions" "^7.12.0" "@babel/helper-optimise-call-expression" "^7.10.4" - "@babel/traverse" "^7.10.4" - "@babel/types" "^7.10.4" + "@babel/traverse" "^7.12.0" + "@babel/types" "^7.12.0" "@babel/helper-simple-access@^7.10.4": version "7.10.4" @@ -228,6 +225,11 @@ resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.10.4.tgz#a78c7a7251e01f616512d31b10adcf52ada5e0d2" integrity sha512-3U9y+43hz7ZM+rzG24Qe2mufW5KhvFg/NhnNph+i9mgCtdTCtMJuI1TMkrIUiK7Ix4PYlRF9I5dhqaLYA/ADXw== +"@babel/helper-validator-option@^7.12.0": + version "7.12.0" + resolved "https://registry.yarnpkg.com/@babel/helper-validator-option/-/helper-validator-option-7.12.0.tgz#1d1fc48a9b69763da61b892774b0df89aee1c969" + integrity sha512-NRfKaAQw/JCMsTFUdJI6cp4MoJGGVBRQTRSiW1nwlGldNqzjB9jqWI0SZqQksC724dJoKqwG+QqfS9ib7SoVsw== + "@babel/helper-wrap-function@^7.10.4": version "7.10.4" resolved "https://registry.yarnpkg.com/@babel/helper-wrap-function/-/helper-wrap-function-7.10.4.tgz#8a6f701eab0ff39f765b5a1cfef409990e624b87" @@ -256,10 +258,10 @@ chalk "^2.0.0" js-tokens "^4.0.0" -"@babel/parser@^7.1.0", "@babel/parser@^7.1.6", "@babel/parser@^7.10.4", "@babel/parser@^7.11.5": - version "7.11.5" - resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.11.5.tgz#c7ff6303df71080ec7a4f5b8c003c58f1cf51037" - integrity sha512-X9rD8qqm695vgmeaQ4fvz/o3+Wk4ZzQvSHkDBgpYKxpD4qTAUm88ZKtHkVqIOsYFFbIQ6wQYhC6q7pjqVK0E0Q== +"@babel/parser@^7.1.0", "@babel/parser@^7.1.6", "@babel/parser@^7.10.4", "@babel/parser@^7.12.0": + version "7.12.0" + resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.12.0.tgz#2ad388f3960045b22f9b7d4bf85e80b15a1c9e3a" + integrity sha512-dYmySMYnlus2jwl7JnnajAj11obRStZoW9cG04wh4ZuhozDn11tDUrhHcUZ9iuNHqALAhh60XqNaYXpvuuE/Gg== "@babel/plugin-proposal-async-generator-functions@^7.10.4": version "7.10.5" @@ -286,10 +288,10 @@ "@babel/helper-plugin-utils" "^7.10.4" "@babel/plugin-syntax-dynamic-import" "^7.8.0" -"@babel/plugin-proposal-export-namespace-from@^7.10.4": - version "7.10.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-export-namespace-from/-/plugin-proposal-export-namespace-from-7.10.4.tgz#570d883b91031637b3e2958eea3c438e62c05f54" - integrity sha512-aNdf0LY6/3WXkhh0Fdb6Zk9j1NMD8ovj3F6r0+3j837Pn1S1PdNtcwJ5EG9WkVPNHPxyJDaxMaAOVq4eki0qbg== +"@babel/plugin-proposal-export-namespace-from@^7.12.0": + version "7.12.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-export-namespace-from/-/plugin-proposal-export-namespace-from-7.12.0.tgz#08b0f8100bbae1199a5f5294f38a1b0b8d8402fc" + integrity sha512-ao43U2ptSe+mIZAQo2nBV5Wx2Ie3i2XbLt8jCXZpv+bvLY1Twv0lak4YZ1Ps5OwbeLMAl3iOVScgGMOImBae1g== dependencies: "@babel/helper-plugin-utils" "^7.10.4" "@babel/plugin-syntax-export-namespace-from" "^7.8.3" @@ -302,26 +304,26 @@ "@babel/helper-plugin-utils" "^7.10.4" "@babel/plugin-syntax-json-strings" "^7.8.0" -"@babel/plugin-proposal-logical-assignment-operators@^7.11.0": - version "7.11.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-logical-assignment-operators/-/plugin-proposal-logical-assignment-operators-7.11.0.tgz#9f80e482c03083c87125dee10026b58527ea20c8" - integrity sha512-/f8p4z+Auz0Uaf+i8Ekf1iM7wUNLcViFUGiPxKeXvxTSl63B875YPiVdUDdem7hREcI0E0kSpEhS8tF5RphK7Q== +"@babel/plugin-proposal-logical-assignment-operators@^7.12.0": + version "7.12.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-logical-assignment-operators/-/plugin-proposal-logical-assignment-operators-7.12.0.tgz#830d8ff4984d800b2824e8eac0005ecb7430328e" + integrity sha512-dssjXHzdMQal4q6GCSwDTVPEbyBLdd9+7aSlzAkQbrGEKq5xG8pvhQ7u2ktUrCLRmzQphZnSzILBL5ta4xSRlA== dependencies: "@babel/helper-plugin-utils" "^7.10.4" "@babel/plugin-syntax-logical-assignment-operators" "^7.10.4" -"@babel/plugin-proposal-nullish-coalescing-operator@^7.10.4": - version "7.10.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-nullish-coalescing-operator/-/plugin-proposal-nullish-coalescing-operator-7.10.4.tgz#02a7e961fc32e6d5b2db0649e01bf80ddee7e04a" - integrity sha512-wq5n1M3ZUlHl9sqT2ok1T2/MTt6AXE0e1Lz4WzWBr95LsAZ5qDXe4KnFuauYyEyLiohvXFMdbsOTMyLZs91Zlw== +"@babel/plugin-proposal-nullish-coalescing-operator@^7.12.0": + version "7.12.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-nullish-coalescing-operator/-/plugin-proposal-nullish-coalescing-operator-7.12.0.tgz#d82174a531305df4d7079ce3782269b35b810b82" + integrity sha512-JpNWix2VP2ue31r72fKytTE13nPX1fxl1mudfTaTwcDhl3iExz5NZjQBq012b/BQ6URWoc/onI73pZdYlAfihg== dependencies: "@babel/helper-plugin-utils" "^7.10.4" "@babel/plugin-syntax-nullish-coalescing-operator" "^7.8.0" -"@babel/plugin-proposal-numeric-separator@^7.10.4": - version "7.10.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-numeric-separator/-/plugin-proposal-numeric-separator-7.10.4.tgz#ce1590ff0a65ad12970a609d78855e9a4c1aef06" - integrity sha512-73/G7QoRoeNkLZFxsoCCvlg4ezE4eM+57PnOqgaPOozd5myfj7p0muD1mRVJvbUWbOzD+q3No2bWbaKy+DJ8DA== +"@babel/plugin-proposal-numeric-separator@^7.12.0": + version "7.12.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-numeric-separator/-/plugin-proposal-numeric-separator-7.12.0.tgz#76de244152abaf2e72800ab0aebc9771f6de3e9a" + integrity sha512-iON65YmIy/IpEgteYJ4HfO2q30SLdIxiyjNNlsSjSl0tUxLhSH9PljE5r6sczwdW64ZZzznYNcezdcROB+rDDw== dependencies: "@babel/helper-plugin-utils" "^7.10.4" "@babel/plugin-syntax-numeric-separator" "^7.10.4" @@ -343,10 +345,10 @@ "@babel/helper-plugin-utils" "^7.10.4" "@babel/plugin-syntax-optional-catch-binding" "^7.8.0" -"@babel/plugin-proposal-optional-chaining@^7.11.0": - version "7.11.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-optional-chaining/-/plugin-proposal-optional-chaining-7.11.0.tgz#de5866d0646f6afdaab8a566382fe3a221755076" - integrity sha512-v9fZIu3Y8562RRwhm1BbMRxtqZNFmFA2EG+pT2diuU8PT3H6T/KXoZ54KgYisfOFZHV6PfvAiBIZ9Rcz+/JCxA== +"@babel/plugin-proposal-optional-chaining@^7.12.0": + version "7.12.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-optional-chaining/-/plugin-proposal-optional-chaining-7.12.0.tgz#0159b549f165016fc9f284b8607a58a37a3b71fe" + integrity sha512-CXu9aw32FH/MksqdKvhpiH8pSvxnXJ33E7I7BGNE9VzNRpWgpNzvPpds/tW9E0pjmX9+D1zAHRyHbtyeTboo2g== dependencies: "@babel/helper-plugin-utils" "^7.10.4" "@babel/helper-skip-transparent-expression-wrappers" "^7.11.0" @@ -617,14 +619,15 @@ "@babel/helper-simple-access" "^7.10.4" babel-plugin-dynamic-import-node "^2.3.3" -"@babel/plugin-transform-modules-systemjs@^7.10.4": - version "7.10.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.10.5.tgz#6270099c854066681bae9e05f87e1b9cadbe8c85" - integrity sha512-f4RLO/OL14/FP1AEbcsWMzpbUz6tssRaeQg11RH1BP/XnPpRoVwgeYViMFacnkaw4k4wjRSjn3ip1Uw9TaXuMw== +"@babel/plugin-transform-modules-systemjs@^7.12.0": + version "7.12.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.12.0.tgz#bca842db6980cfc98ae7d0f2c907c9b1df3f874e" + integrity sha512-h2fDMnwRwBiNMmTGAWqUo404Z3oLbrPE6hyATecyIbsEsrbM5gjLbfKQLb6hjiouMlGHH+yliYBbc4NPgWKE/g== dependencies: "@babel/helper-hoist-variables" "^7.10.4" - "@babel/helper-module-transforms" "^7.10.5" + "@babel/helper-module-transforms" "^7.12.0" "@babel/helper-plugin-utils" "^7.10.4" + "@babel/helper-validator-identifier" "^7.10.4" babel-plugin-dynamic-import-node "^2.3.3" "@babel/plugin-transform-modules-umd@^7.10.4": @@ -724,12 +727,12 @@ dependencies: "@babel/helper-plugin-utils" "^7.10.4" -"@babel/plugin-transform-typescript@^7.10.4": - version "7.11.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-typescript/-/plugin-transform-typescript-7.11.0.tgz#2b4879676af37342ebb278216dd090ac67f13abb" - integrity sha512-edJsNzTtvb3MaXQwj8403B7mZoGu9ElDJQZOKjGUnvilquxBA3IQoEIOvkX/1O8xfAsnHS/oQhe2w/IXrr+w0w== +"@babel/plugin-transform-typescript@^7.12.0": + version "7.12.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-typescript/-/plugin-transform-typescript-7.12.0.tgz#bd6422833a56e4268d8d599238f0b3c5e170078a" + integrity sha512-gahRNAWgE76hjI3TZPVEfV7vGjOCJi5ACd4eSoAItk/ErC114i2UHnk+1ScS2dOour0p6J6kB99hNFX2vzL2Ww== dependencies: - "@babel/helper-create-class-features-plugin" "^7.10.5" + "@babel/helper-create-class-features-plugin" "^7.12.0" "@babel/helper-plugin-utils" "^7.10.4" "@babel/plugin-syntax-typescript" "^7.10.4" @@ -749,25 +752,26 @@ "@babel/helper-plugin-utils" "^7.10.4" "@babel/preset-env@^7.1.6", "@babel/preset-env@^7.11.0": - version "7.11.5" - resolved "https://registry.yarnpkg.com/@babel/preset-env/-/preset-env-7.11.5.tgz#18cb4b9379e3e92ffea92c07471a99a2914e4272" - integrity sha512-kXqmW1jVcnB2cdueV+fyBM8estd5mlNfaQi6lwLgRwCby4edpavgbFhiBNjmWA3JpB/yZGSISa7Srf+TwxDQoA== + version "7.12.0" + resolved "https://registry.yarnpkg.com/@babel/preset-env/-/preset-env-7.12.0.tgz#7d2d0c4f4a14ca0fd7d905a741070ab4745177b7" + integrity sha512-jSIHvHSuF+hBUIrvA2/61yIzhH+ceLOXGLTH1nwPvQlso/lNxXsoE/nvrCzY5M77KRzhKegB1CvdhWPZmYDZ5A== dependencies: - "@babel/compat-data" "^7.11.0" - "@babel/helper-compilation-targets" "^7.10.4" + "@babel/compat-data" "^7.12.0" + "@babel/helper-compilation-targets" "^7.12.0" "@babel/helper-module-imports" "^7.10.4" "@babel/helper-plugin-utils" "^7.10.4" + "@babel/helper-validator-option" "^7.12.0" "@babel/plugin-proposal-async-generator-functions" "^7.10.4" "@babel/plugin-proposal-class-properties" "^7.10.4" "@babel/plugin-proposal-dynamic-import" "^7.10.4" - "@babel/plugin-proposal-export-namespace-from" "^7.10.4" + "@babel/plugin-proposal-export-namespace-from" "^7.12.0" "@babel/plugin-proposal-json-strings" "^7.10.4" - "@babel/plugin-proposal-logical-assignment-operators" "^7.11.0" - "@babel/plugin-proposal-nullish-coalescing-operator" "^7.10.4" - "@babel/plugin-proposal-numeric-separator" "^7.10.4" + "@babel/plugin-proposal-logical-assignment-operators" "^7.12.0" + "@babel/plugin-proposal-nullish-coalescing-operator" "^7.12.0" + "@babel/plugin-proposal-numeric-separator" "^7.12.0" "@babel/plugin-proposal-object-rest-spread" "^7.11.0" "@babel/plugin-proposal-optional-catch-binding" "^7.10.4" - "@babel/plugin-proposal-optional-chaining" "^7.11.0" + "@babel/plugin-proposal-optional-chaining" "^7.12.0" "@babel/plugin-proposal-private-methods" "^7.10.4" "@babel/plugin-proposal-unicode-property-regex" "^7.10.4" "@babel/plugin-syntax-async-generators" "^7.8.0" @@ -798,7 +802,7 @@ "@babel/plugin-transform-member-expression-literals" "^7.10.4" "@babel/plugin-transform-modules-amd" "^7.10.4" "@babel/plugin-transform-modules-commonjs" "^7.10.4" - "@babel/plugin-transform-modules-systemjs" "^7.10.4" + "@babel/plugin-transform-modules-systemjs" "^7.12.0" "@babel/plugin-transform-modules-umd" "^7.10.4" "@babel/plugin-transform-named-capturing-groups-regex" "^7.10.4" "@babel/plugin-transform-new-target" "^7.10.4" @@ -815,11 +819,9 @@ "@babel/plugin-transform-unicode-escapes" "^7.10.4" "@babel/plugin-transform-unicode-regex" "^7.10.4" "@babel/preset-modules" "^0.1.3" - "@babel/types" "^7.11.5" + "@babel/types" "^7.12.0" browserslist "^4.12.0" core-js-compat "^3.6.2" - invariant "^2.2.2" - levenary "^1.1.1" semver "^5.5.0" "@babel/preset-flow@^7.0.0": @@ -842,17 +844,17 @@ esutils "^2.0.2" "@babel/preset-typescript@^7.1.0": - version "7.10.4" - resolved "https://registry.yarnpkg.com/@babel/preset-typescript/-/preset-typescript-7.10.4.tgz#7d5d052e52a682480d6e2cc5aa31be61c8c25e36" - integrity sha512-SdYnvGPv+bLlwkF2VkJnaX/ni1sMNetcGI1+nThF1gyv6Ph8Qucc4ZZAjM5yZcE/AKRXIOTZz7eSRDWOEjPyRQ== + version "7.12.0" + resolved "https://registry.yarnpkg.com/@babel/preset-typescript/-/preset-typescript-7.12.0.tgz#3fe6b4958ca6fb0e086dc5574a27d0ced99185e8" + integrity sha512-2XVy4sy/zkP4gqmXW0TzSh/QwOniN2Cy3srhsD0TRBlMTOmjaYnWCWA6aWopwpcwfYkEKD6jKLLjYMq15zDNWg== dependencies: "@babel/helper-plugin-utils" "^7.10.4" - "@babel/plugin-transform-typescript" "^7.10.4" + "@babel/plugin-transform-typescript" "^7.12.0" "@babel/register@^7.0.0": - version "7.11.5" - resolved "https://registry.yarnpkg.com/@babel/register/-/register-7.11.5.tgz#79becf89e0ddd0fba8b92bc279bc0f5d2d7ce2ea" - integrity sha512-CAml0ioKX+kOAvBQDHa/+t1fgOt3qkTIz0TrRtRAT6XY0m5qYZXR85k6/sLCNPMGhYDlCFHCYuU0ybTJbvlC6w== + version "7.12.0" + resolved "https://registry.yarnpkg.com/@babel/register/-/register-7.12.0.tgz#fa5fa900bd79380ff508ae963a5766172d3a9e56" + integrity sha512-2F2v0qYSAwrGyK9mZ8lIoUluHRzLTgkJ2oRXlLV9GVe/ze/sTFBiOocLRMSJYDB2lLiABlVC+pZHlZ8qihO1Xg== dependencies: find-cache-dir "^2.0.0" lodash "^4.17.19" @@ -861,9 +863,9 @@ source-map-support "^0.5.16" "@babel/runtime@^7.11.2", "@babel/runtime@^7.8.4": - version "7.11.2" - resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.11.2.tgz#f549c13c754cc40b87644b9fa9f09a6a95fe0736" - integrity sha512-TeWkU52so0mPtDcaCTxNBI/IHiz0pZgr8VEFqXFtZWpYD08ZB6FaSwVAS8MKRQAP3bYKiVjwysOJgMFY28o6Tw== + version "7.12.0" + resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.12.0.tgz#98bd7666186969c04be893d747cf4a6c6c8fa6b0" + integrity sha512-lS4QLXQ2Vbw2ubfQjeQcn+BZgZ5+ROHW9f+DWjEp5Y+NHYmkRGKqHSJ1tuhbUauKu2nhZNTBIvsIQ8dXfY5Gjw== dependencies: regenerator-runtime "^0.13.4" @@ -876,25 +878,25 @@ "@babel/parser" "^7.10.4" "@babel/types" "^7.10.4" -"@babel/traverse@^7.1.0", "@babel/traverse@^7.10.4", "@babel/traverse@^7.11.5": - version "7.11.5" - resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.11.5.tgz#be777b93b518eb6d76ee2e1ea1d143daa11e61c3" - integrity sha512-EjiPXt+r7LiCZXEfRpSJd+jUMnBd4/9OUv7Nx3+0u9+eimMwJmG0Q98lw4/289JCoxSE8OolDMNZaaF/JZ69WQ== +"@babel/traverse@^7.1.0", "@babel/traverse@^7.10.4", "@babel/traverse@^7.12.0": + version "7.12.0" + resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.12.0.tgz#ed31953d6e708cdd34443de2fcdb55f72cdfb266" + integrity sha512-ZU9e79xpOukCNPkQ1UzR4gJKCruGckr6edd8v8lmKpSk8iakgUIvb+5ZtaKKV9f7O+x5r+xbMDDIbzVpUoiIuw== dependencies: "@babel/code-frame" "^7.10.4" - "@babel/generator" "^7.11.5" + "@babel/generator" "^7.12.0" "@babel/helper-function-name" "^7.10.4" "@babel/helper-split-export-declaration" "^7.11.0" - "@babel/parser" "^7.11.5" - "@babel/types" "^7.11.5" + "@babel/parser" "^7.12.0" + "@babel/types" "^7.12.0" debug "^4.1.0" globals "^11.1.0" lodash "^4.17.19" -"@babel/types@^7.0.0", "@babel/types@^7.10.4", "@babel/types@^7.10.5", "@babel/types@^7.11.0", "@babel/types@^7.11.5", "@babel/types@^7.3.0", "@babel/types@^7.3.3", "@babel/types@^7.4.4": - version "7.11.5" - resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.11.5.tgz#d9de577d01252d77c6800cee039ee64faf75662d" - integrity sha512-bvM7Qz6eKnJVFIn+1LPtjlBFPVN5jNDc1XmN15vWe7Q3DPBufWWsLiIvUu7xW87uTG6QoggpIDnUgLQvPheU+Q== +"@babel/types@^7.0.0", "@babel/types@^7.10.4", "@babel/types@^7.10.5", "@babel/types@^7.11.0", "@babel/types@^7.12.0", "@babel/types@^7.3.0", "@babel/types@^7.3.3", "@babel/types@^7.4.4": + version "7.12.0" + resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.12.0.tgz#b6b49f425ee59043fbc89c61b11a13d5eae7b5c6" + integrity sha512-ggIyFmT2zMaYRheOfPDQ4gz7QqV3B+t2rjqjbttDJxMcb7/LukvWCmlIl1sWcOxrvwpTDd+z0OytzqsbGeb3/g== dependencies: "@babel/helper-validator-identifier" "^7.10.4" lodash "^4.17.19" @@ -4690,9 +4692,9 @@ ejs@^3.0.1: jake "^10.6.1" electron-to-chromium@^1.3.571: - version "1.3.578" - resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.3.578.tgz#e6671936f4571a874eb26e2e833aa0b2c0b776e0" - integrity sha512-z4gU6dA1CbBJsAErW5swTGAaU2TBzc2mPAonJb00zqW1rOraDo2zfBMDRvaz9cVic+0JEZiYbHWPw/fTaZlG2Q== + version "1.3.579" + resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.3.579.tgz#58bf17499de6edf697e1442017d8569bce0d301a" + integrity sha512-9HaGm4UDxCtcmIqWWdv79pGgpRZWTqr+zg6kxp0MelSHfe1PNjrI8HXy1HgTSy4p0iQETGt8/ElqKFLW008BSA== elegant-spinner@^1.0.1: version "1.0.1" @@ -4841,9 +4843,9 @@ es6-promisify@^5.0.0: es6-promise "^4.0.3" escalade@^3.1.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/escalade/-/escalade-3.1.0.tgz#e8e2d7c7a8b76f6ee64c2181d6b8151441602d4e" - integrity sha512-mAk+hPSO8fLDkhV7V0dXazH5pDc6MrjBTPyD3VeKzxnVFjH1MIxbCdqGZB9O8+EwWakZs3ZCbDS4IpRt79V1ig== + version "3.1.1" + resolved "https://registry.yarnpkg.com/escalade/-/escalade-3.1.1.tgz#d8cfdc7000965c5a0174b4a82eaa5c0552742e40" + integrity sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw== escape-html@~1.0.3: version "1.0.3" @@ -6492,13 +6494,6 @@ interpret@^2.0.0: resolved "https://registry.yarnpkg.com/interpret/-/interpret-2.2.0.tgz#1a78a0b5965c40a5416d007ad6f50ad27c417df9" integrity sha512-Ju0Bz/cEia55xDwUWEa8+olFpCiQoypjnQySseKtmjNrnps3P+xfpUmGr90T7yjlVJmOtybRvPXhKMbHr+fWnw== -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== - dependencies: - loose-envify "^1.0.0" - invert-kv@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/invert-kv/-/invert-kv-2.0.0.tgz#7393f5afa59ec9ff5f67a27620d11c226e3eec02" @@ -7351,7 +7346,7 @@ jest@^25.2.3: import-local "^3.0.2" jest-cli "^25.5.4" -"js-tokens@^3.0.0 || ^4.0.0", js-tokens@^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== @@ -7602,13 +7597,6 @@ leven@^3.1.0: resolved "https://registry.yarnpkg.com/leven/-/leven-3.1.0.tgz#77891de834064cccba82ae7842bb6b14a13ed7f2" integrity sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A== -levenary@^1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/levenary/-/levenary-1.1.1.tgz#842a9ee98d2075aa7faeedbe32679e9205f46f77" - integrity sha512-mkAdOIt79FD6irqjYSs4rdbnlT5vRonMEvBVPVb3XmevfS8kgRXwfes0dhPdEtzTWD/1eNE/Bm/G1iRt6DcnQQ== - dependencies: - leven "^3.1.0" - levn@^0.3.0, levn@~0.3.0: version "0.3.0" resolved "https://registry.yarnpkg.com/levn/-/levn-0.3.0.tgz#3b09924edf9f083c0490fdd4c0bc4421e04764ee" @@ -7880,13 +7868,6 @@ lolex@^5.0.0: dependencies: "@sinonjs/commons" "^1.7.0" -loose-envify@^1.0.0: - version "1.4.0" - resolved "https://registry.yarnpkg.com/loose-envify/-/loose-envify-1.4.0.tgz#71ee51fa7be4caec1a63839f7e682d8132d30caf" - integrity sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q== - dependencies: - js-tokens "^3.0.0 || ^4.0.0" - loud-rejection@^1.0.0: version "1.6.0" resolved "https://registry.yarnpkg.com/loud-rejection/-/loud-rejection-1.6.0.tgz#5b46f80147edee578870f086d04821cf998e551f" @@ -8457,9 +8438,9 @@ mz@^2.5.0: thenify-all "^1.0.0" nan@^2.12.1: - version "2.14.1" - resolved "https://registry.yarnpkg.com/nan/-/nan-2.14.1.tgz#d7be34dfa3105b91494c3147089315eff8874b01" - integrity sha512-isWHgVjnFjh2x2yuJ/tj3JbwoHu3UC2dX5G/88Cm24yB6YopVgxvBObDY7n5xW6ExmFhJpSEQqFPvq9zaXc8Jw== + version "2.14.2" + resolved "https://registry.yarnpkg.com/nan/-/nan-2.14.2.tgz#f5376400695168f4cc694ac9393d0c9585eeea19" + integrity sha512-M2ufzIiINKCuDfBSAUr1vWQ+vuVcA9kqx8JJUsbQi6yf1uGRyb7HfpdfUr5qLXf3B/t8dPvcjhKMmlfnP47EzQ== nanomatch@^1.2.9: version "1.2.13" @@ -9792,7 +9773,7 @@ regexpp@^3.0.0: resolved "https://registry.yarnpkg.com/regexpp/-/regexpp-3.1.0.tgz#206d0ad0a5648cffbdb8ae46438f3dc51c9f78e2" integrity sha512-ZOIzd8yVsQQA7j8GCSlPGXwg5PfmA1mrq0JP4nGhh54LaKN3xdai/vHUDu74pKwV8OxseMS65u2NImosQcSD0Q== -regexpu-core@^4.7.0: +regexpu-core@^4.7.1: version "4.7.1" resolved "https://registry.yarnpkg.com/regexpu-core/-/regexpu-core-4.7.1.tgz#2dea5a9a07233298fbf0db91fa9abc4c6e0f8ad6" integrity sha512-ywH2VUraA44DZQuRKzARmw6S66mr48pQVva4LBeRhcOltJ6hExvWly5ZjFLYo67xbIxb6W1q4bAGtgfEl20zfQ== From 6f7716277e9183ee64cd065fe53dcf1dd1d8604d Mon Sep 17 00:00:00 2001 From: Alexander Krasnoyarov Date: Thu, 15 Oct 2020 14:31:28 +0300 Subject: [PATCH 09/21] chore: reduce package size (#1947) --- packages/info/package.json | 4 +--- packages/utils/package.json | 1 - packages/webpack-cli/package.json | 3 +++ yarn.lock | 10 +--------- 4 files changed, 5 insertions(+), 13 deletions(-) diff --git a/packages/info/package.json b/packages/info/package.json index 8865940d58c..66fe678814a 100644 --- a/packages/info/package.json +++ b/packages/info/package.json @@ -12,9 +12,7 @@ "lib" ], "dependencies": { - "colorette": "^1.2.1", - "envinfo": "^7.5.0", - "prettyjson": "^1.2.1" + "envinfo": "^7.7.3" }, "gitHead": "fb50f766851f500ca12867a2aa9de81fa6e368f9", "peerDependencies": { diff --git a/packages/utils/package.json b/packages/utils/package.json index ac406a37f8b..5022b06afe0 100644 --- a/packages/utils/package.json +++ b/packages/utils/package.json @@ -14,7 +14,6 @@ "dependencies": { "colorette": "^1.2.1", "cross-spawn": "^7.0.3", - "enquirer": "^2.3.6", "execa": "^4.0.0", "findup-sync": "^4.0.0", "global-modules": "^2.0.0", diff --git a/packages/webpack-cli/package.json b/packages/webpack-cli/package.json index e7c7f7fb794..e1291730c6a 100644 --- a/packages/webpack-cli/package.json +++ b/packages/webpack-cli/package.json @@ -57,6 +57,9 @@ }, "webpack-bundle-analyzer": { "optional": true + }, + "webpack-dev-server": { + "optional": true } }, "gitHead": "fb50f766851f500ca12867a2aa9de81fa6e368f9" diff --git a/yarn.lock b/yarn.lock index ecf32d0fda8..83ff3dc8e42 100644 --- a/yarn.lock +++ b/yarn.lock @@ -4750,7 +4750,7 @@ env-paths@^2.2.0: resolved "https://registry.yarnpkg.com/env-paths/-/env-paths-2.2.0.tgz#cdca557dc009152917d6166e2febe1f039685e43" integrity sha512-6u0VYSCo/OW6IoD5WCLLy9JUGARbamfSavcNXry/eu8aHVFei6CD3Sw+VGX5alea1i9pgPHW0mbu6Xj0uBh7gA== -envinfo@^7.3.1, envinfo@^7.5.0: +envinfo@^7.3.1, envinfo@^7.7.3: version "7.7.3" resolved "https://registry.yarnpkg.com/envinfo/-/envinfo-7.7.3.tgz#4b2d8622e3e7366afb8091b23ed95569ea0208cc" integrity sha512-46+j5QxbPWza0PB1i15nZx0xQ4I/EfQxg9J8Had3b408SV63nEtor2e+oiY63amTo9KTuh2a3XLObNwduxYwwA== @@ -9339,14 +9339,6 @@ pretty-format@^25.2.1, pretty-format@^25.5.0: ansi-styles "^4.0.0" react-is "^16.12.0" -prettyjson@^1.2.1: - version "1.2.1" - resolved "https://registry.yarnpkg.com/prettyjson/-/prettyjson-1.2.1.tgz#fcffab41d19cab4dfae5e575e64246619b12d289" - integrity sha1-/P+rQdGcq0365eV15kJGYZsS0ok= - dependencies: - colors "^1.1.2" - minimist "^1.2.0" - private@^0.1.8: version "0.1.8" resolved "https://registry.yarnpkg.com/private/-/private-0.1.8.tgz#2381edb3689f7a53d653190060fcf822d2f368ff" From 92ad475d4b9606b5db7c31dd3666658301c95597 Mon Sep 17 00:00:00 2001 From: Alexander Akait Date: Thu, 15 Oct 2020 20:36:26 +0300 Subject: [PATCH 10/21] fix: move init command to separate package (#1950) --- .../utils/__tests__/package-exists.test.js | 2 +- packages/webpack-cli/lib/utils/arg-parser.js | 4 +++- .../resolve-command.js} | 21 +++++++++++++++---- packages/webpack-cli/package.json | 4 +++- 4 files changed, 24 insertions(+), 7 deletions(-) rename packages/webpack-cli/lib/{commands/resolveCommand.js => utils/resolve-command.js} (65%) diff --git a/packages/webpack-cli/lib/utils/__tests__/package-exists.test.js b/packages/webpack-cli/lib/utils/__tests__/package-exists.test.js index 309f479c408..f16b263f695 100644 --- a/packages/webpack-cli/lib/utils/__tests__/package-exists.test.js +++ b/packages/webpack-cli/lib/utils/__tests__/package-exists.test.js @@ -2,7 +2,7 @@ jest.setMock('../prompt-installation', { promptInstallation: jest.fn(), }); -const ExternalCommand = require('../../commands/resolveCommand'); +const ExternalCommand = require('../resolve-command'); const { packageExists } = require('../package-exists'); const { promptInstallation } = require('../prompt-installation'); diff --git a/packages/webpack-cli/lib/utils/arg-parser.js b/packages/webpack-cli/lib/utils/arg-parser.js index c72ad1bd7d4..dc2fbe82729 100644 --- a/packages/webpack-cli/lib/utils/arg-parser.js +++ b/packages/webpack-cli/lib/utils/arg-parser.js @@ -28,8 +28,10 @@ const argParser = (options, args, argsOnly = false, name = '') => { .allowUnknownOption(true) .action(async () => { const cliArgs = args.slice(args.indexOf(cmd.name) + 1 || args.indexOf(cmd.alias) + 1); - return await require('../commands/resolveCommand')(defaultCommands[cmd.name], ...cliArgs); + + return await require('./resolve-command')(defaultCommands[cmd.name], ...cliArgs); }); + return parser; }, parser); diff --git a/packages/webpack-cli/lib/commands/resolveCommand.js b/packages/webpack-cli/lib/utils/resolve-command.js similarity index 65% rename from packages/webpack-cli/lib/commands/resolveCommand.js rename to packages/webpack-cli/lib/utils/resolve-command.js index fae1398cd03..0d115cd3a91 100644 --- a/packages/webpack-cli/lib/commands/resolveCommand.js +++ b/packages/webpack-cli/lib/utils/resolve-command.js @@ -1,13 +1,15 @@ const { yellow, cyan } = require('colorette'); -const logger = require('../utils/logger'); -const { packageExists } = require('../utils/package-exists'); -const { promptInstallation } = require('../utils/prompt-installation'); +const logger = require('./logger'); +const { packageExists } = require('./package-exists'); +const { promptInstallation } = require('./prompt-installation'); const packagePrefix = '@webpack-cli'; const run = async (name, ...args) => { const scopeName = packagePrefix + '/' + name; + let pkgLoc = packageExists(scopeName); + if (!pkgLoc) { try { pkgLoc = await promptInstallation(`${scopeName}`, () => { @@ -17,7 +19,18 @@ const run = async (name, ...args) => { logger.error(`Action Interrupted, use ${cyan('webpack-cli help')} to see possible commands.`); } } - return pkgLoc ? require(scopeName).default(...args) : null; + + if (!pkgLoc) { + return; + } + + let mod = require(scopeName); + + if (mod.default) { + mod = mod.default; + } + + return mod(...args); }; module.exports = run; diff --git a/packages/webpack-cli/package.json b/packages/webpack-cli/package.json index e1291730c6a..f162b699a1f 100644 --- a/packages/webpack-cli/package.json +++ b/packages/webpack-cli/package.json @@ -28,7 +28,6 @@ ], "dependencies": { "@webpack-cli/info": "^1.0.1", - "@webpack-cli/init": "^1.0.1", "@webpack-cli/serve": "^1.0.1", "ansi-escapes": "^4.3.1", "colorette": "^1.2.1", @@ -46,6 +45,9 @@ "webpack": "4.x.x || 5.x.x" }, "peerDependenciesMeta": { + "@webpack-cli/init": { + "optional": true + }, "@webpack-cli/generate-loader": { "optional": true }, From 564279e5b634a399647bcdb21449e5e6a7f0637e Mon Sep 17 00:00:00 2001 From: Alexander Akait Date: Thu, 15 Oct 2020 20:42:43 +0300 Subject: [PATCH 11/21] fix: run CLI after webpack installation (#1951) --- packages/webpack-cli/bin/cli.js | 20 ++++++++++++++------ 1 file changed, 14 insertions(+), 6 deletions(-) diff --git a/packages/webpack-cli/bin/cli.js b/packages/webpack-cli/bin/cli.js index e591bb25dc5..9b7bb3392cd 100755 --- a/packages/webpack-cli/bin/cli.js +++ b/packages/webpack-cli/bin/cli.js @@ -1,7 +1,9 @@ #!/usr/bin/env node 'use strict'; + require('v8-compile-cache'); + const importLocal = require('import-local'); const runCLI = require('../lib/bootstrap'); const { yellow } = require('colorette'); @@ -9,23 +11,29 @@ const { error, success } = require('../lib/utils/logger'); const { packageExists } = require('../lib/utils/package-exists'); const { promptInstallation } = require('../lib/utils/prompt-installation'); -// Prefer the local installation of webpack-cli +// Prefer the local installation of `webpack-cli` if (importLocal(__filename)) { return; } + process.title = 'webpack'; +const [, , ...rawArgs] = process.argv; + if (packageExists('webpack')) { - const [, , ...rawArgs] = process.argv; runCLI(rawArgs); } else { - promptInstallation('webpack', () => { + promptInstallation('webpack -W', () => { error(`It looks like ${yellow('webpack')} is not installed.`); }) - .then(() => success(`${yellow('webpack')} was installed sucessfully.`)) + .then(() => { + success(`${yellow('webpack')} was installed sucessfully.`); + + runCLI(rawArgs); + }) .catch(() => { - process.exitCode = 2; error(`Action Interrupted, Please try once again or install ${yellow('webpack')} manually.`); + + process.exit(2); }); - return; } From 9ba9d6f460fb25fb79d52f4360239b8c4b471451 Mon Sep 17 00:00:00 2001 From: Alexander Akait Date: Fri, 16 Oct 2020 16:16:21 +0300 Subject: [PATCH 12/21] fix: output stacktrace on errors (#1949) --- .github/workflows/nodejs.yml | 1 + packages/generators/src/addon-generator.ts | 5 +++-- packages/webpack-cli/lib/groups/ConfigGroup.js | 10 +++++----- .../webpack-cli/lib/utils/errors/ConfigError.js | 11 ----------- packages/webpack-cli/lib/utils/logger.js | 3 ++- test/config/absent/config-absent.test.js | 2 +- test/error/error.test.js | 14 ++++++++++++++ test/error/src/index.js | 1 + test/error/webpack.config.js | 9 +++++++++ .../config-absent/merge-config-absent.test.js | 2 +- test/merge/config/merge-config.test.js | 2 +- 11 files changed, 38 insertions(+), 22 deletions(-) delete mode 100644 packages/webpack-cli/lib/utils/errors/ConfigError.js create mode 100644 test/error/error.test.js create mode 100644 test/error/src/index.js create mode 100644 test/error/webpack.config.js diff --git a/.github/workflows/nodejs.yml b/.github/workflows/nodejs.yml index 9a0913a2de2..2c8c47b7d89 100644 --- a/.github/workflows/nodejs.yml +++ b/.github/workflows/nodejs.yml @@ -91,6 +91,7 @@ jobs: - name: Run tests for webpack version ${{ matrix.webpack-version }} run: | + yarn run lerna bootstrap yarn prepsuite yarn test:ci env: diff --git a/packages/generators/src/addon-generator.ts b/packages/generators/src/addon-generator.ts index 3cab6939dc3..10fb9936512 100644 --- a/packages/generators/src/addon-generator.ts +++ b/packages/generators/src/addon-generator.ts @@ -54,8 +54,9 @@ const addonGenerator = ( const pathToProjectDir: string = this.destinationPath(this.props.name); try { mkdirp.sync(pathToProjectDir); - } catch (err) { - logger.error('Failed to create directory', err); + } catch (error) { + logger.error('Failed to create directory'); + logger.error(error); } this.destinationRoot(pathToProjectDir); } diff --git a/packages/webpack-cli/lib/groups/ConfigGroup.js b/packages/webpack-cli/lib/groups/ConfigGroup.js index 58aa983d6a5..d98a6183154 100644 --- a/packages/webpack-cli/lib/groups/ConfigGroup.js +++ b/packages/webpack-cli/lib/groups/ConfigGroup.js @@ -3,7 +3,6 @@ const { resolve, extname } = require('path'); const webpackMerge = require('webpack-merge'); const { extensions, jsVariants } = require('interpret'); const rechoir = require('rechoir'); -const ConfigError = require('../utils/errors/ConfigError'); const logger = require('../utils/logger'); // Order defines the priority, in increasing order @@ -92,7 +91,8 @@ const resolveConfigFiles = async (args) => { const configFiles = getConfigInfoFromFileName(configPath); if (!configFiles.length) { - throw new ConfigError(`The specified config file doesn't exist in ${configPath}`); + logger.error(`The specified config file doesn't exist in ${configPath}`); + process.exit(2); } const foundConfig = configFiles[0]; @@ -230,12 +230,12 @@ const resolveConfigMerging = async (args) => { // either by passing multiple configs by flags or passing a // single config exporting an array if (!Array.isArray(configOptions)) { - throw new ConfigError('Atleast two configurations are required for merge.', 'MergeError'); + logger.error('At least two configurations are required for merge.'); + process.exit(2); } // We return a single config object which is passed to the compiler - const mergedOptions = configOptions.reduce((currentConfig, mergedConfig) => webpackMerge(currentConfig, mergedConfig), {}); - opts['options'] = mergedOptions; + opts['options'] = configOptions.reduce((currentConfig, mergedConfig) => webpackMerge(currentConfig, mergedConfig), {}); } }; diff --git a/packages/webpack-cli/lib/utils/errors/ConfigError.js b/packages/webpack-cli/lib/utils/errors/ConfigError.js deleted file mode 100644 index 3a7539c21bc..00000000000 --- a/packages/webpack-cli/lib/utils/errors/ConfigError.js +++ /dev/null @@ -1,11 +0,0 @@ -class ConfigError extends Error { - constructor(message, name) { - super(message); - this.name = name || 'ConfigError'; - // No need to show stack trace for known errors - this.stack = ''; - process.exitCode = 2; - } -} - -module.exports = ConfigError; diff --git a/packages/webpack-cli/lib/utils/logger.js b/packages/webpack-cli/lib/utils/logger.js index b1d76269d56..3afafc1ad44 100644 --- a/packages/webpack-cli/lib/utils/logger.js +++ b/packages/webpack-cli/lib/utils/logger.js @@ -1,7 +1,8 @@ +const util = require('util'); const { red, cyan, yellow, green } = require('colorette'); module.exports = { - error: (val) => console.error(`[webpack-cli] ${red(val)}`), + error: (val) => console.error(`[webpack-cli] ${red(util.format(val))}`), warn: (val) => console.warn(`[webpack-cli] ${yellow(val)}`), info: (val) => console.info(`[webpack-cli] ${cyan(val)}`), success: (val) => console.log(`[webpack-cli] ${green(val)}`), diff --git a/test/config/absent/config-absent.test.js b/test/config/absent/config-absent.test.js index 51bbea08355..f2c2ee6fc7c 100644 --- a/test/config/absent/config-absent.test.js +++ b/test/config/absent/config-absent.test.js @@ -11,7 +11,7 @@ describe('Config:', () => { expect(stdout).toBeFalsy(); const configPath = resolve(__dirname, 'webpack.config.js'); // Should contain the correct error message - expect(stderr).toContain(`ConfigError: The specified config file doesn't exist in ${configPath}`); + expect(stderr).toContain(`The specified config file doesn't exist in ${configPath}`); // Should not bundle expect(existsSync(resolve(__dirname, './binary/a.bundle.js'))).toBeFalsy(); }); diff --git a/test/error/error.test.js b/test/error/error.test.js new file mode 100644 index 00000000000..de30128d161 --- /dev/null +++ b/test/error/error.test.js @@ -0,0 +1,14 @@ +'use strict'; + +const { run } = require('../utils/test-utils'); + +describe('error', () => { + it('should log error with stacktrace', async () => { + const { stderr, stdout, exitCode } = await run(__dirname); + + expect(stderr).toContain('Error: test'); + expect(stderr).toMatch(/at .+ (.+)/); + expect(stdout).toBeFalsy(); + expect(exitCode).toBe(2); + }); +}); diff --git a/test/error/src/index.js b/test/error/src/index.js new file mode 100644 index 00000000000..d00e0a2e12f --- /dev/null +++ b/test/error/src/index.js @@ -0,0 +1 @@ +module.exports = 'foo'; \ No newline at end of file diff --git a/test/error/webpack.config.js b/test/error/webpack.config.js new file mode 100644 index 00000000000..25018a41285 --- /dev/null +++ b/test/error/webpack.config.js @@ -0,0 +1,9 @@ +module.exports = { + plugins: [ + { + apply() { + throw new Error('test'); + }, + }, + ], +}; diff --git a/test/merge/config-absent/merge-config-absent.test.js b/test/merge/config-absent/merge-config-absent.test.js index 13d2f962fb0..c595fb7e34c 100644 --- a/test/merge/config-absent/merge-config-absent.test.js +++ b/test/merge/config-absent/merge-config-absent.test.js @@ -13,7 +13,7 @@ describe('merge flag configuration', () => { // Since the process will exit, nothing on stdout expect(stdout).toBeFalsy(); // Confirm that the user is notified - expect(stderr).toContain(`MergeError: Atleast two configurations are required for merge.`); + expect(stderr).toContain('At least two configurations are required for merge.'); // Default config would be used expect(fs.existsSync(join(__dirname, './dist/merged.js'))).toBeFalsy(); // Since the process will exit so no compilation will be done diff --git a/test/merge/config/merge-config.test.js b/test/merge/config/merge-config.test.js index 36a31eed43e..926ff5e4bbb 100644 --- a/test/merge/config/merge-config.test.js +++ b/test/merge/config/merge-config.test.js @@ -22,7 +22,7 @@ describe('merge flag configuration', () => { }); it('fails when there are less than 2 configurations to merge', () => { const { stdout, stderr, exitCode } = run(__dirname, ['--config', './1.js', '-m'], false); - expect(stderr).toContain(`MergeError: Atleast two configurations are required for merge.`); + expect(stderr).toContain('At least two configurations are required for merge.'); expect(stdout).toBeFalsy(); expect(exitCode).toBe(2); }); From 97557bf6768fdde22d9e246dd06d6212f3472e04 Mon Sep 17 00:00:00 2001 From: "dependabot-preview[bot]" <27856297+dependabot-preview[bot]@users.noreply.github.com> Date: Fri, 16 Oct 2020 16:16:45 +0300 Subject: [PATCH 13/21] chore(deps-dev): bump @babel/preset-env from 7.12.0 to 7.12.1 (#1952) Bumps [@babel/preset-env](https://github.com/babel/babel/tree/HEAD/packages/babel-preset-env) from 7.12.0 to 7.12.1. - [Release notes](https://github.com/babel/babel/releases) - [Changelog](https://github.com/babel/babel/blob/main/CHANGELOG.md) - [Commits](https://github.com/babel/babel/commits/v7.12.1/packages/babel-preset-env) Signed-off-by: dependabot-preview[bot] Co-authored-by: dependabot-preview[bot] <27856297+dependabot-preview[bot]@users.noreply.github.com> --- yarn.lock | 687 ++++++++++++++++++++++++++++++------------------------ 1 file changed, 381 insertions(+), 306 deletions(-) diff --git a/yarn.lock b/yarn.lock index 83ff3dc8e42..db2814d9b68 100644 --- a/yarn.lock +++ b/yarn.lock @@ -9,10 +9,10 @@ dependencies: "@babel/highlight" "^7.10.4" -"@babel/compat-data@^7.12.0": - version "7.12.0" - resolved "https://registry.yarnpkg.com/@babel/compat-data/-/compat-data-7.12.0.tgz#443aea07a5aeba7942cb067de6b8272f2ab36b9e" - integrity sha512-jAbCtMANC9ptXxbSVXIqV/3H0bkh7iyyv6JS5lu10av45bcc2QmDNJXkASZCFwbBt75Q0AEq/BB+bNa3x1QgYQ== +"@babel/compat-data@^7.12.1": + version "7.12.1" + resolved "https://registry.yarnpkg.com/@babel/compat-data/-/compat-data-7.12.1.tgz#d7386a689aa0ddf06255005b4b991988021101a0" + integrity sha512-725AQupWJZ8ba0jbKceeFblZTY90McUBWMwHhkFQ9q1zKPJ95GUktljFcgcsIVwRnTnRKlcYzfiNImg5G9m6ZQ== "@babel/core@^7.1.0", "@babel/core@^7.1.6", "@babel/core@^7.11.1", "@babel/core@^7.7.5": version "7.12.0" @@ -45,6 +45,15 @@ jsesc "^2.5.1" source-map "^0.5.0" +"@babel/generator@^7.12.1": + version "7.12.1" + resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.12.1.tgz#0d70be32bdaa03d7c51c8597dda76e0df1f15468" + integrity sha512-DB+6rafIdc9o72Yc3/Ph5h+6hUjeOp66pF0naQBgUFFuPqzQwIlPTm3xZR7YNvduIMtkDIj2t21LSQwnbCrXvg== + dependencies: + "@babel/types" "^7.12.1" + jsesc "^2.5.1" + source-map "^0.5.0" + "@babel/helper-annotate-as-pure@^7.10.4": version "7.10.4" resolved "https://registry.yarnpkg.com/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.10.4.tgz#5bf0d495a3f757ac3bda48b5bf3b3ba309c72ba3" @@ -60,17 +69,17 @@ "@babel/helper-explode-assignable-expression" "^7.10.4" "@babel/types" "^7.10.4" -"@babel/helper-compilation-targets@^7.12.0": - version "7.12.0" - resolved "https://registry.yarnpkg.com/@babel/helper-compilation-targets/-/helper-compilation-targets-7.12.0.tgz#c477d89a1f4d626c8149b9b88802f78d66d0c99a" - integrity sha512-NbDFJNjDgxE7IkrHp5gq2+Tr8bEdCLKYN90YDQEjMiTMUAFAcShNkaH8kydcmU0mEQTiQY0Ydy/+1xfS2OCEnw== +"@babel/helper-compilation-targets@^7.12.1": + version "7.12.1" + resolved "https://registry.yarnpkg.com/@babel/helper-compilation-targets/-/helper-compilation-targets-7.12.1.tgz#310e352888fbdbdd8577be8dfdd2afb9e7adcf50" + integrity sha512-jtBEif7jsPwP27GPHs06v4WBV0KrE8a/P7n0N0sSvHn2hwUCYnolP/CLmz51IzAW4NlN+HuoBtb9QcwnRo9F/g== dependencies: - "@babel/compat-data" "^7.12.0" - "@babel/helper-validator-option" "^7.12.0" + "@babel/compat-data" "^7.12.1" + "@babel/helper-validator-option" "^7.12.1" browserslist "^4.12.0" semver "^5.5.0" -"@babel/helper-create-class-features-plugin@^7.10.4", "@babel/helper-create-class-features-plugin@^7.12.0": +"@babel/helper-create-class-features-plugin@^7.12.0": version "7.12.0" resolved "https://registry.yarnpkg.com/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.12.0.tgz#f3f2fc77bacc89e59ce6764daeabc1fb23e79a05" integrity sha512-9tD1r9RK928vxvxcoNK8/7uwT7Q2DJZP1dnJmyMAJPwOF0yr8PPwqdpyw33lUpCfrJ765bOs5XNa4KSfUDWFSw== @@ -82,10 +91,21 @@ "@babel/helper-replace-supers" "^7.12.0" "@babel/helper-split-export-declaration" "^7.10.4" -"@babel/helper-create-regexp-features-plugin@^7.10.4": - version "7.12.0" - resolved "https://registry.yarnpkg.com/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.12.0.tgz#858cef57039f3b3a9012273597288a71e1dff8ca" - integrity sha512-YBqH+3wLcom+tko8/JLgRcG8DMqORgmjqNRNI751gTioJSZHWFybO1mRoLtJtWIlYSHY+zT9LqqnbbK1c3KIVQ== +"@babel/helper-create-class-features-plugin@^7.12.1": + version "7.12.1" + resolved "https://registry.yarnpkg.com/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.12.1.tgz#3c45998f431edd4a9214c5f1d3ad1448a6137f6e" + integrity sha512-hkL++rWeta/OVOBTRJc9a5Azh5mt5WgZUGAKMD8JM141YsE08K//bp1unBBieO6rUKkIPyUE0USQ30jAy3Sk1w== + dependencies: + "@babel/helper-function-name" "^7.10.4" + "@babel/helper-member-expression-to-functions" "^7.12.1" + "@babel/helper-optimise-call-expression" "^7.10.4" + "@babel/helper-replace-supers" "^7.12.1" + "@babel/helper-split-export-declaration" "^7.10.4" + +"@babel/helper-create-regexp-features-plugin@^7.12.1": + version "7.12.1" + resolved "https://registry.yarnpkg.com/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.12.1.tgz#18b1302d4677f9dc4740fe8c9ed96680e29d37e8" + integrity sha512-rsZ4LGvFTZnzdNZR5HZdmJVuXK8834R5QkF3WvcnBhrlVtF0HSIUC6zbreL9MgjTywhKokn8RIYRiq99+DLAxA== dependencies: "@babel/helper-annotate-as-pure" "^7.10.4" "@babel/helper-regex" "^7.10.4" @@ -137,14 +157,21 @@ dependencies: "@babel/types" "^7.12.0" -"@babel/helper-module-imports@^7.10.4": - version "7.10.4" - resolved "https://registry.yarnpkg.com/@babel/helper-module-imports/-/helper-module-imports-7.10.4.tgz#4c5c54be04bd31670a7382797d75b9fa2e5b5620" - integrity sha512-nEQJHqYavI217oD9+s5MUBzk6x1IlvoS9WTPfgG43CbMEeStE0v+r+TucWdx8KFGowPGvyOkDT9+7DHedIDnVw== +"@babel/helper-member-expression-to-functions@^7.12.1": + version "7.12.1" + resolved "https://registry.yarnpkg.com/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.12.1.tgz#fba0f2fcff3fba00e6ecb664bb5e6e26e2d6165c" + integrity sha512-k0CIe3tXUKTRSoEx1LQEPFU9vRQfqHtl+kf8eNnDqb4AUJEy5pz6aIiog+YWtVm2jpggjS1laH68bPsR+KWWPQ== dependencies: - "@babel/types" "^7.10.4" + "@babel/types" "^7.12.1" + +"@babel/helper-module-imports@^7.10.4", "@babel/helper-module-imports@^7.12.1": + version "7.12.1" + resolved "https://registry.yarnpkg.com/@babel/helper-module-imports/-/helper-module-imports-7.12.1.tgz#1644c01591a15a2f084dd6d092d9430eb1d1216c" + integrity sha512-ZeC1TlMSvikvJNy1v/wPIazCu3NdOwgYZLIkmIyAsGhqkNpiDoQQRmaCK8YP4Pq3GPTLPV9WXaPCJKvx06JxKA== + dependencies: + "@babel/types" "^7.12.1" -"@babel/helper-module-transforms@^7.10.4", "@babel/helper-module-transforms@^7.10.5", "@babel/helper-module-transforms@^7.12.0": +"@babel/helper-module-transforms@^7.12.0": version "7.12.0" resolved "https://registry.yarnpkg.com/@babel/helper-module-transforms/-/helper-module-transforms-7.12.0.tgz#8ac7d9e8716f94549a42e577c5429391950e33f3" integrity sha512-1ZTMoCiLSzTJLbq7mSaTHki4oIrBIf/dUbzdhwTrvtMU3ZNVKwQmGae3gSiqppo7G8HAgnXmc43rfEaD8yYLLQ== @@ -159,6 +186,21 @@ "@babel/types" "^7.12.0" lodash "^4.17.19" +"@babel/helper-module-transforms@^7.12.1": + version "7.12.1" + resolved "https://registry.yarnpkg.com/@babel/helper-module-transforms/-/helper-module-transforms-7.12.1.tgz#7954fec71f5b32c48e4b303b437c34453fd7247c" + integrity sha512-QQzehgFAZ2bbISiCpmVGfiGux8YVFXQ0abBic2Envhej22DVXV9nCFaS5hIQbkyo1AdGb+gNME2TSh3hYJVV/w== + dependencies: + "@babel/helper-module-imports" "^7.12.1" + "@babel/helper-replace-supers" "^7.12.1" + "@babel/helper-simple-access" "^7.12.1" + "@babel/helper-split-export-declaration" "^7.11.0" + "@babel/helper-validator-identifier" "^7.10.4" + "@babel/template" "^7.10.4" + "@babel/traverse" "^7.12.1" + "@babel/types" "^7.12.1" + lodash "^4.17.19" + "@babel/helper-optimise-call-expression@^7.10.4": version "7.10.4" resolved "https://registry.yarnpkg.com/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.10.4.tgz#50dc96413d594f995a77905905b05893cd779673" @@ -178,17 +220,16 @@ dependencies: lodash "^4.17.19" -"@babel/helper-remap-async-to-generator@^7.10.4": - version "7.11.4" - resolved "https://registry.yarnpkg.com/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.11.4.tgz#4474ea9f7438f18575e30b0cac784045b402a12d" - integrity sha512-tR5vJ/vBa9wFy3m5LLv2faapJLnDFxNWff2SAYkSE4rLUdbp7CdObYFgI7wK4T/Mj4UzpjPwzR8Pzmr5m7MHGA== +"@babel/helper-remap-async-to-generator@^7.12.1": + version "7.12.1" + resolved "https://registry.yarnpkg.com/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.12.1.tgz#8c4dbbf916314f6047dc05e6a2217074238347fd" + integrity sha512-9d0KQCRM8clMPcDwo8SevNs+/9a8yWVVmaE80FGJcEP8N1qToREmWEGnBn8BUlJhYRFz6fqxeRL1sl5Ogsed7A== dependencies: "@babel/helper-annotate-as-pure" "^7.10.4" "@babel/helper-wrap-function" "^7.10.4" - "@babel/template" "^7.10.4" - "@babel/types" "^7.10.4" + "@babel/types" "^7.12.1" -"@babel/helper-replace-supers@^7.10.4", "@babel/helper-replace-supers@^7.12.0": +"@babel/helper-replace-supers@^7.12.0": version "7.12.0" resolved "https://registry.yarnpkg.com/@babel/helper-replace-supers/-/helper-replace-supers-7.12.0.tgz#98d3f3eb779752e59c7422ab387c9b444323be60" integrity sha512-9kycFdq2c9e7PXZOr2z/ZqTFF9OzFu287iFwYS+CiDVPuoTCfY8hoTsIqNQNetQjlqoRsRyJFrMG1uhGAR4EEw== @@ -198,6 +239,16 @@ "@babel/traverse" "^7.12.0" "@babel/types" "^7.12.0" +"@babel/helper-replace-supers@^7.12.1": + version "7.12.1" + resolved "https://registry.yarnpkg.com/@babel/helper-replace-supers/-/helper-replace-supers-7.12.1.tgz#f15c9cc897439281891e11d5ce12562ac0cf3fa9" + integrity sha512-zJjTvtNJnCFsCXVi5rUInstLd/EIVNmIKA1Q9ynESmMBWPWd+7sdR+G4/wdu+Mppfep0XLyG2m7EBPvjCeFyrw== + dependencies: + "@babel/helper-member-expression-to-functions" "^7.12.1" + "@babel/helper-optimise-call-expression" "^7.10.4" + "@babel/traverse" "^7.12.1" + "@babel/types" "^7.12.1" + "@babel/helper-simple-access@^7.10.4": version "7.10.4" resolved "https://registry.yarnpkg.com/@babel/helper-simple-access/-/helper-simple-access-7.10.4.tgz#0f5ccda2945277a2a7a2d3a821e15395edcf3461" @@ -206,12 +257,19 @@ "@babel/template" "^7.10.4" "@babel/types" "^7.10.4" -"@babel/helper-skip-transparent-expression-wrappers@^7.11.0": - version "7.11.0" - resolved "https://registry.yarnpkg.com/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.11.0.tgz#eec162f112c2f58d3af0af125e3bb57665146729" - integrity sha512-0XIdiQln4Elglgjbwo9wuJpL/K7AGCY26kmEt0+pRP0TAj4jjyNq1MjoRvikrTVqKcx4Gysxt4cXvVFXP/JO2Q== +"@babel/helper-simple-access@^7.12.1": + version "7.12.1" + resolved "https://registry.yarnpkg.com/@babel/helper-simple-access/-/helper-simple-access-7.12.1.tgz#32427e5aa61547d38eb1e6eaf5fd1426fdad9136" + integrity sha512-OxBp7pMrjVewSSC8fXDFrHrBcJATOOFssZwv16F3/6Xtc138GHybBfPbm9kfiqQHKhYQrlamWILwlDCeyMFEaA== dependencies: - "@babel/types" "^7.11.0" + "@babel/types" "^7.12.1" + +"@babel/helper-skip-transparent-expression-wrappers@^7.12.1": + version "7.12.1" + resolved "https://registry.yarnpkg.com/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.12.1.tgz#462dc63a7e435ade8468385c63d2b84cce4b3cbf" + integrity sha512-Mf5AUuhG1/OCChOJ/HcADmvcHM42WJockombn8ATJG3OnyiSxBK/Mm5x78BQWvmtXZKHgbjdGL2kin/HOLlZGA== + dependencies: + "@babel/types" "^7.12.1" "@babel/helper-split-export-declaration@^7.10.4", "@babel/helper-split-export-declaration@^7.11.0": version "7.11.0" @@ -225,10 +283,10 @@ resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.10.4.tgz#a78c7a7251e01f616512d31b10adcf52ada5e0d2" integrity sha512-3U9y+43hz7ZM+rzG24Qe2mufW5KhvFg/NhnNph+i9mgCtdTCtMJuI1TMkrIUiK7Ix4PYlRF9I5dhqaLYA/ADXw== -"@babel/helper-validator-option@^7.12.0": - version "7.12.0" - resolved "https://registry.yarnpkg.com/@babel/helper-validator-option/-/helper-validator-option-7.12.0.tgz#1d1fc48a9b69763da61b892774b0df89aee1c969" - integrity sha512-NRfKaAQw/JCMsTFUdJI6cp4MoJGGVBRQTRSiW1nwlGldNqzjB9jqWI0SZqQksC724dJoKqwG+QqfS9ib7SoVsw== +"@babel/helper-validator-option@^7.12.1": + version "7.12.1" + resolved "https://registry.yarnpkg.com/@babel/helper-validator-option/-/helper-validator-option-7.12.1.tgz#175567380c3e77d60ff98a54bb015fe78f2178d9" + integrity sha512-YpJabsXlJVWP0USHjnC/AQDTLlZERbON577YUVO/wLpqyj6HAtVYnWaQaN0iUN+1/tWn3c+uKKXjRut5115Y2A== "@babel/helper-wrap-function@^7.10.4": version "7.10.4" @@ -263,111 +321,116 @@ resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.12.0.tgz#2ad388f3960045b22f9b7d4bf85e80b15a1c9e3a" integrity sha512-dYmySMYnlus2jwl7JnnajAj11obRStZoW9cG04wh4ZuhozDn11tDUrhHcUZ9iuNHqALAhh60XqNaYXpvuuE/Gg== -"@babel/plugin-proposal-async-generator-functions@^7.10.4": - version "7.10.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.10.5.tgz#3491cabf2f7c179ab820606cec27fed15e0e8558" - integrity sha512-cNMCVezQbrRGvXJwm9fu/1sJj9bHdGAgKodZdLqOQIpfoH3raqmRPBM17+lh7CzhiKRRBrGtZL9WcjxSoGYUSg== +"@babel/parser@^7.12.1": + version "7.12.1" + resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.12.1.tgz#dc03f543a0ed51396d4081463df66ecb3a2efa53" + integrity sha512-xjZsx0sBjb6J2+QkoHI69UeD2EWbsyUW0WyZKOoJ9sBrQLxfOApWEefR9dIVOYJVj97VRXnLKLDvnn3dPDNgww== + +"@babel/plugin-proposal-async-generator-functions@^7.12.1": + version "7.12.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.12.1.tgz#dc6c1170e27d8aca99ff65f4925bd06b1c90550e" + integrity sha512-d+/o30tJxFxrA1lhzJqiUcEJdI6jKlNregCv5bASeGf2Q4MXmnwH7viDo7nhx1/ohf09oaH8j1GVYG/e3Yqk6A== dependencies: "@babel/helper-plugin-utils" "^7.10.4" - "@babel/helper-remap-async-to-generator" "^7.10.4" + "@babel/helper-remap-async-to-generator" "^7.12.1" "@babel/plugin-syntax-async-generators" "^7.8.0" -"@babel/plugin-proposal-class-properties@^7.1.0", "@babel/plugin-proposal-class-properties@^7.10.4": - version "7.10.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-class-properties/-/plugin-proposal-class-properties-7.10.4.tgz#a33bf632da390a59c7a8c570045d1115cd778807" - integrity sha512-vhwkEROxzcHGNu2mzUC0OFFNXdZ4M23ib8aRRcJSsW8BZK9pQMD7QB7csl97NBbgGZO7ZyHUyKDnxzOaP4IrCg== +"@babel/plugin-proposal-class-properties@^7.1.0", "@babel/plugin-proposal-class-properties@^7.12.1": + version "7.12.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-class-properties/-/plugin-proposal-class-properties-7.12.1.tgz#a082ff541f2a29a4821065b8add9346c0c16e5de" + integrity sha512-cKp3dlQsFsEs5CWKnN7BnSHOd0EOW8EKpEjkoz1pO2E5KzIDNV9Ros1b0CnmbVgAGXJubOYVBOGCT1OmJwOI7w== dependencies: - "@babel/helper-create-class-features-plugin" "^7.10.4" + "@babel/helper-create-class-features-plugin" "^7.12.1" "@babel/helper-plugin-utils" "^7.10.4" -"@babel/plugin-proposal-dynamic-import@^7.10.4": - version "7.10.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-dynamic-import/-/plugin-proposal-dynamic-import-7.10.4.tgz#ba57a26cb98b37741e9d5bca1b8b0ddf8291f17e" - integrity sha512-up6oID1LeidOOASNXgv/CFbgBqTuKJ0cJjz6An5tWD+NVBNlp3VNSBxv2ZdU7SYl3NxJC7agAQDApZusV6uFwQ== +"@babel/plugin-proposal-dynamic-import@^7.12.1": + version "7.12.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-dynamic-import/-/plugin-proposal-dynamic-import-7.12.1.tgz#43eb5c2a3487ecd98c5c8ea8b5fdb69a2749b2dc" + integrity sha512-a4rhUSZFuq5W8/OO8H7BL5zspjnc1FLd9hlOxIK/f7qG4a0qsqk8uvF/ywgBA8/OmjsapjpvaEOYItfGG1qIvQ== dependencies: "@babel/helper-plugin-utils" "^7.10.4" "@babel/plugin-syntax-dynamic-import" "^7.8.0" -"@babel/plugin-proposal-export-namespace-from@^7.12.0": - version "7.12.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-export-namespace-from/-/plugin-proposal-export-namespace-from-7.12.0.tgz#08b0f8100bbae1199a5f5294f38a1b0b8d8402fc" - integrity sha512-ao43U2ptSe+mIZAQo2nBV5Wx2Ie3i2XbLt8jCXZpv+bvLY1Twv0lak4YZ1Ps5OwbeLMAl3iOVScgGMOImBae1g== +"@babel/plugin-proposal-export-namespace-from@^7.12.1": + version "7.12.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-export-namespace-from/-/plugin-proposal-export-namespace-from-7.12.1.tgz#8b9b8f376b2d88f5dd774e4d24a5cc2e3679b6d4" + integrity sha512-6CThGf0irEkzujYS5LQcjBx8j/4aQGiVv7J9+2f7pGfxqyKh3WnmVJYW3hdrQjyksErMGBPQrCnHfOtna+WLbw== dependencies: "@babel/helper-plugin-utils" "^7.10.4" "@babel/plugin-syntax-export-namespace-from" "^7.8.3" -"@babel/plugin-proposal-json-strings@^7.10.4": - version "7.10.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-json-strings/-/plugin-proposal-json-strings-7.10.4.tgz#593e59c63528160233bd321b1aebe0820c2341db" - integrity sha512-fCL7QF0Jo83uy1K0P2YXrfX11tj3lkpN7l4dMv9Y9VkowkhkQDwFHFd8IiwyK5MZjE8UpbgokkgtcReH88Abaw== +"@babel/plugin-proposal-json-strings@^7.12.1": + version "7.12.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-json-strings/-/plugin-proposal-json-strings-7.12.1.tgz#d45423b517714eedd5621a9dfdc03fa9f4eb241c" + integrity sha512-GoLDUi6U9ZLzlSda2Df++VSqDJg3CG+dR0+iWsv6XRw1rEq+zwt4DirM9yrxW6XWaTpmai1cWJLMfM8qQJf+yw== dependencies: "@babel/helper-plugin-utils" "^7.10.4" "@babel/plugin-syntax-json-strings" "^7.8.0" -"@babel/plugin-proposal-logical-assignment-operators@^7.12.0": - version "7.12.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-logical-assignment-operators/-/plugin-proposal-logical-assignment-operators-7.12.0.tgz#830d8ff4984d800b2824e8eac0005ecb7430328e" - integrity sha512-dssjXHzdMQal4q6GCSwDTVPEbyBLdd9+7aSlzAkQbrGEKq5xG8pvhQ7u2ktUrCLRmzQphZnSzILBL5ta4xSRlA== +"@babel/plugin-proposal-logical-assignment-operators@^7.12.1": + version "7.12.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-logical-assignment-operators/-/plugin-proposal-logical-assignment-operators-7.12.1.tgz#f2c490d36e1b3c9659241034a5d2cd50263a2751" + integrity sha512-k8ZmVv0JU+4gcUGeCDZOGd0lCIamU/sMtIiX3UWnUc5yzgq6YUGyEolNYD+MLYKfSzgECPcqetVcJP9Afe/aCA== dependencies: "@babel/helper-plugin-utils" "^7.10.4" "@babel/plugin-syntax-logical-assignment-operators" "^7.10.4" -"@babel/plugin-proposal-nullish-coalescing-operator@^7.12.0": - version "7.12.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-nullish-coalescing-operator/-/plugin-proposal-nullish-coalescing-operator-7.12.0.tgz#d82174a531305df4d7079ce3782269b35b810b82" - integrity sha512-JpNWix2VP2ue31r72fKytTE13nPX1fxl1mudfTaTwcDhl3iExz5NZjQBq012b/BQ6URWoc/onI73pZdYlAfihg== +"@babel/plugin-proposal-nullish-coalescing-operator@^7.12.1": + version "7.12.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-nullish-coalescing-operator/-/plugin-proposal-nullish-coalescing-operator-7.12.1.tgz#3ed4fff31c015e7f3f1467f190dbe545cd7b046c" + integrity sha512-nZY0ESiaQDI1y96+jk6VxMOaL4LPo/QDHBqL+SF3/vl6dHkTwHlOI8L4ZwuRBHgakRBw5zsVylel7QPbbGuYgg== dependencies: "@babel/helper-plugin-utils" "^7.10.4" "@babel/plugin-syntax-nullish-coalescing-operator" "^7.8.0" -"@babel/plugin-proposal-numeric-separator@^7.12.0": - version "7.12.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-numeric-separator/-/plugin-proposal-numeric-separator-7.12.0.tgz#76de244152abaf2e72800ab0aebc9771f6de3e9a" - integrity sha512-iON65YmIy/IpEgteYJ4HfO2q30SLdIxiyjNNlsSjSl0tUxLhSH9PljE5r6sczwdW64ZZzznYNcezdcROB+rDDw== +"@babel/plugin-proposal-numeric-separator@^7.12.1": + version "7.12.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-numeric-separator/-/plugin-proposal-numeric-separator-7.12.1.tgz#0e2c6774c4ce48be412119b4d693ac777f7685a6" + integrity sha512-MR7Ok+Af3OhNTCxYVjJZHS0t97ydnJZt/DbR4WISO39iDnhiD8XHrY12xuSJ90FFEGjir0Fzyyn7g/zY6hxbxA== dependencies: "@babel/helper-plugin-utils" "^7.10.4" "@babel/plugin-syntax-numeric-separator" "^7.10.4" -"@babel/plugin-proposal-object-rest-spread@^7.0.0", "@babel/plugin-proposal-object-rest-spread@^7.11.0": - version "7.11.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.11.0.tgz#bd81f95a1f746760ea43b6c2d3d62b11790ad0af" - integrity sha512-wzch41N4yztwoRw0ak+37wxwJM2oiIiy6huGCoqkvSTA9acYWcPfn9Y4aJqmFFJ70KTJUu29f3DQ43uJ9HXzEA== +"@babel/plugin-proposal-object-rest-spread@^7.0.0", "@babel/plugin-proposal-object-rest-spread@^7.12.1": + version "7.12.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.12.1.tgz#def9bd03cea0f9b72283dac0ec22d289c7691069" + integrity sha512-s6SowJIjzlhx8o7lsFx5zmY4At6CTtDvgNQDdPzkBQucle58A6b/TTeEBYtyDgmcXjUTM+vE8YOGHZzzbc/ioA== dependencies: "@babel/helper-plugin-utils" "^7.10.4" "@babel/plugin-syntax-object-rest-spread" "^7.8.0" - "@babel/plugin-transform-parameters" "^7.10.4" + "@babel/plugin-transform-parameters" "^7.12.1" -"@babel/plugin-proposal-optional-catch-binding@^7.10.4": - version "7.10.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-optional-catch-binding/-/plugin-proposal-optional-catch-binding-7.10.4.tgz#31c938309d24a78a49d68fdabffaa863758554dd" - integrity sha512-LflT6nPh+GK2MnFiKDyLiqSqVHkQnVf7hdoAvyTnnKj9xB3docGRsdPuxp6qqqW19ifK3xgc9U5/FwrSaCNX5g== +"@babel/plugin-proposal-optional-catch-binding@^7.12.1": + version "7.12.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-optional-catch-binding/-/plugin-proposal-optional-catch-binding-7.12.1.tgz#ccc2421af64d3aae50b558a71cede929a5ab2942" + integrity sha512-hFvIjgprh9mMw5v42sJWLI1lzU5L2sznP805zeT6rySVRA0Y18StRhDqhSxlap0oVgItRsB6WSROp4YnJTJz0g== dependencies: "@babel/helper-plugin-utils" "^7.10.4" "@babel/plugin-syntax-optional-catch-binding" "^7.8.0" -"@babel/plugin-proposal-optional-chaining@^7.12.0": - version "7.12.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-optional-chaining/-/plugin-proposal-optional-chaining-7.12.0.tgz#0159b549f165016fc9f284b8607a58a37a3b71fe" - integrity sha512-CXu9aw32FH/MksqdKvhpiH8pSvxnXJ33E7I7BGNE9VzNRpWgpNzvPpds/tW9E0pjmX9+D1zAHRyHbtyeTboo2g== +"@babel/plugin-proposal-optional-chaining@^7.12.1": + version "7.12.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-optional-chaining/-/plugin-proposal-optional-chaining-7.12.1.tgz#cce122203fc8a32794296fc377c6dedaf4363797" + integrity sha512-c2uRpY6WzaVDzynVY9liyykS+kVU+WRZPMPYpkelXH8KBt1oXoI89kPbZKKG/jDT5UK92FTW2fZkZaJhdiBabw== dependencies: "@babel/helper-plugin-utils" "^7.10.4" - "@babel/helper-skip-transparent-expression-wrappers" "^7.11.0" + "@babel/helper-skip-transparent-expression-wrappers" "^7.12.1" "@babel/plugin-syntax-optional-chaining" "^7.8.0" -"@babel/plugin-proposal-private-methods@^7.10.4": - version "7.10.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-private-methods/-/plugin-proposal-private-methods-7.10.4.tgz#b160d972b8fdba5c7d111a145fc8c421fc2a6909" - integrity sha512-wh5GJleuI8k3emgTg5KkJK6kHNsGEr0uBTDBuQUBJwckk9xs1ez79ioheEVVxMLyPscB0LfkbVHslQqIzWV6Bw== +"@babel/plugin-proposal-private-methods@^7.12.1": + version "7.12.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-private-methods/-/plugin-proposal-private-methods-7.12.1.tgz#86814f6e7a21374c980c10d38b4493e703f4a389" + integrity sha512-mwZ1phvH7/NHK6Kf8LP7MYDogGV+DKB1mryFOEwx5EBNQrosvIczzZFTUmWaeujd5xT6G1ELYWUz3CutMhjE1w== dependencies: - "@babel/helper-create-class-features-plugin" "^7.10.4" + "@babel/helper-create-class-features-plugin" "^7.12.1" "@babel/helper-plugin-utils" "^7.10.4" -"@babel/plugin-proposal-unicode-property-regex@^7.10.4", "@babel/plugin-proposal-unicode-property-regex@^7.4.4": - version "7.10.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-unicode-property-regex/-/plugin-proposal-unicode-property-regex-7.10.4.tgz#4483cda53041ce3413b7fe2f00022665ddfaa75d" - integrity sha512-H+3fOgPnEXFL9zGYtKQe4IDOPKYlZdF1kqFDQRRb8PK4B8af1vAGK04tF5iQAAsui+mHNBQSAtd2/ndEDe9wuA== +"@babel/plugin-proposal-unicode-property-regex@^7.12.1", "@babel/plugin-proposal-unicode-property-regex@^7.4.4": + version "7.12.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-unicode-property-regex/-/plugin-proposal-unicode-property-regex-7.12.1.tgz#2a183958d417765b9eae334f47758e5d6a82e072" + integrity sha512-MYq+l+PvHuw/rKUz1at/vb6nCnQ2gmJBNaM62z0OgH7B2W1D9pvkpYtlti9bGtizNIU1K3zm4bZF9F91efVY0w== dependencies: - "@babel/helper-create-regexp-features-plugin" "^7.10.4" + "@babel/helper-create-regexp-features-plugin" "^7.12.1" "@babel/helper-plugin-utils" "^7.10.4" "@babel/plugin-syntax-async-generators@^7.8.0", "@babel/plugin-syntax-async-generators@^7.8.4": @@ -384,10 +447,10 @@ dependencies: "@babel/helper-plugin-utils" "^7.8.0" -"@babel/plugin-syntax-class-properties@^7.10.4", "@babel/plugin-syntax-class-properties@^7.8.3": - version "7.10.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-class-properties/-/plugin-syntax-class-properties-7.10.4.tgz#6644e6a0baa55a61f9e3231f6c9eeb6ee46c124c" - integrity sha512-GCSBF7iUle6rNugfURwNmCGG3Z/2+opxAMLs1nND4bhEG5PuxTIggDBoeYYSujAlLtsupzOHYJQgPS3pivwXIA== +"@babel/plugin-syntax-class-properties@^7.12.1", "@babel/plugin-syntax-class-properties@^7.8.3": + version "7.12.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-class-properties/-/plugin-syntax-class-properties-7.12.1.tgz#bcb297c5366e79bebadef509549cd93b04f19978" + integrity sha512-U40A76x5gTwmESz+qiqssqmeEsKvcSyvtgktrm0uzcARAmM9I1jR221f6Oq+GmHrcD+LvZDag1UTOTe2fL3TeA== dependencies: "@babel/helper-plugin-utils" "^7.10.4" @@ -468,10 +531,10 @@ dependencies: "@babel/helper-plugin-utils" "^7.8.0" -"@babel/plugin-syntax-top-level-await@^7.10.4": - version "7.10.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.10.4.tgz#4bbeb8917b54fcf768364e0a81f560e33a3ef57d" - integrity sha512-ni1brg4lXEmWyafKr0ccFWkJG0CeMt4WV1oyeBW6EFObF4oOHclbkj5cARxAPQyAQ2UTuplJyK4nfkXIMMFvsQ== +"@babel/plugin-syntax-top-level-await@^7.12.1": + version "7.12.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.12.1.tgz#dd6c0b357ac1bb142d98537450a319625d13d2a0" + integrity sha512-i7ooMZFS+a/Om0crxZodrTzNEPJHZrlMVGMTEpFAj6rYY/bKCddB0Dk/YxfPuYXOopuhKk/e1jV6h+WUU9XN3A== dependencies: "@babel/helper-plugin-utils" "^7.10.4" @@ -482,83 +545,83 @@ dependencies: "@babel/helper-plugin-utils" "^7.10.4" -"@babel/plugin-transform-arrow-functions@^7.10.4": - version "7.10.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.10.4.tgz#e22960d77e697c74f41c501d44d73dbf8a6a64cd" - integrity sha512-9J/oD1jV0ZCBcgnoFWFq1vJd4msoKb/TCpGNFyyLt0zABdcvgK3aYikZ8HjzB14c26bc7E3Q1yugpwGy2aTPNA== +"@babel/plugin-transform-arrow-functions@^7.12.1": + version "7.12.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.12.1.tgz#8083ffc86ac8e777fbe24b5967c4b2521f3cb2b3" + integrity sha512-5QB50qyN44fzzz4/qxDPQMBCTHgxg3n0xRBLJUmBlLoU/sFvxVWGZF/ZUfMVDQuJUKXaBhbupxIzIfZ6Fwk/0A== dependencies: "@babel/helper-plugin-utils" "^7.10.4" -"@babel/plugin-transform-async-to-generator@^7.10.4": - version "7.10.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.10.4.tgz#41a5017e49eb6f3cda9392a51eef29405b245a37" - integrity sha512-F6nREOan7J5UXTLsDsZG3DXmZSVofr2tGNwfdrVwkDWHfQckbQXnXSPfD7iO+c/2HGqycwyLST3DnZ16n+cBJQ== +"@babel/plugin-transform-async-to-generator@^7.12.1": + version "7.12.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.12.1.tgz#3849a49cc2a22e9743cbd6b52926d30337229af1" + integrity sha512-SDtqoEcarK1DFlRJ1hHRY5HvJUj5kX4qmtpMAm2QnhOlyuMC4TMdCRgW6WXpv93rZeYNeLP22y8Aq2dbcDRM1A== dependencies: - "@babel/helper-module-imports" "^7.10.4" + "@babel/helper-module-imports" "^7.12.1" "@babel/helper-plugin-utils" "^7.10.4" - "@babel/helper-remap-async-to-generator" "^7.10.4" + "@babel/helper-remap-async-to-generator" "^7.12.1" -"@babel/plugin-transform-block-scoped-functions@^7.10.4": - version "7.10.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.10.4.tgz#1afa595744f75e43a91af73b0d998ecfe4ebc2e8" - integrity sha512-WzXDarQXYYfjaV1szJvN3AD7rZgZzC1JtjJZ8dMHUyiK8mxPRahynp14zzNjU3VkPqPsO38CzxiWO1c9ARZ8JA== +"@babel/plugin-transform-block-scoped-functions@^7.12.1": + version "7.12.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.12.1.tgz#f2a1a365bde2b7112e0a6ded9067fdd7c07905d9" + integrity sha512-5OpxfuYnSgPalRpo8EWGPzIYf0lHBWORCkj5M0oLBwHdlux9Ri36QqGW3/LR13RSVOAoUUMzoPI/jpE4ABcHoA== dependencies: "@babel/helper-plugin-utils" "^7.10.4" -"@babel/plugin-transform-block-scoping@^7.10.4": - version "7.11.1" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.11.1.tgz#5b7efe98852bef8d652c0b28144cd93a9e4b5215" - integrity sha512-00dYeDE0EVEHuuM+26+0w/SCL0BH2Qy7LwHuI4Hi4MH5gkC8/AqMN5uWFJIsoXZrAphiMm1iXzBw6L2T+eA0ew== +"@babel/plugin-transform-block-scoping@^7.12.1": + version "7.12.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.12.1.tgz#f0ee727874b42a208a48a586b84c3d222c2bbef1" + integrity sha512-zJyAC9sZdE60r1nVQHblcfCj29Dh2Y0DOvlMkcqSo0ckqjiCwNiUezUKw+RjOCwGfpLRwnAeQ2XlLpsnGkvv9w== dependencies: "@babel/helper-plugin-utils" "^7.10.4" -"@babel/plugin-transform-classes@^7.10.4": - version "7.10.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-classes/-/plugin-transform-classes-7.10.4.tgz#405136af2b3e218bc4a1926228bc917ab1a0adc7" - integrity sha512-2oZ9qLjt161dn1ZE0Ms66xBncQH4In8Sqw1YWgBUZuGVJJS5c0OFZXL6dP2MRHrkU/eKhWg8CzFJhRQl50rQxA== +"@babel/plugin-transform-classes@^7.12.1": + version "7.12.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-classes/-/plugin-transform-classes-7.12.1.tgz#65e650fcaddd3d88ddce67c0f834a3d436a32db6" + integrity sha512-/74xkA7bVdzQTBeSUhLLJgYIcxw/dpEpCdRDiHgPJ3Mv6uC11UhjpOhl72CgqbBCmt1qtssCyB2xnJm1+PFjog== dependencies: "@babel/helper-annotate-as-pure" "^7.10.4" "@babel/helper-define-map" "^7.10.4" "@babel/helper-function-name" "^7.10.4" "@babel/helper-optimise-call-expression" "^7.10.4" "@babel/helper-plugin-utils" "^7.10.4" - "@babel/helper-replace-supers" "^7.10.4" + "@babel/helper-replace-supers" "^7.12.1" "@babel/helper-split-export-declaration" "^7.10.4" globals "^11.1.0" -"@babel/plugin-transform-computed-properties@^7.10.4": - version "7.10.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.10.4.tgz#9ded83a816e82ded28d52d4b4ecbdd810cdfc0eb" - integrity sha512-JFwVDXcP/hM/TbyzGq3l/XWGut7p46Z3QvqFMXTfk6/09m7xZHJUN9xHfsv7vqqD4YnfI5ueYdSJtXqqBLyjBw== +"@babel/plugin-transform-computed-properties@^7.12.1": + version "7.12.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.12.1.tgz#d68cf6c9b7f838a8a4144badbe97541ea0904852" + integrity sha512-vVUOYpPWB7BkgUWPo4C44mUQHpTZXakEqFjbv8rQMg7TC6S6ZhGZ3otQcRH6u7+adSlE5i0sp63eMC/XGffrzg== dependencies: "@babel/helper-plugin-utils" "^7.10.4" -"@babel/plugin-transform-destructuring@^7.10.4": - version "7.10.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.10.4.tgz#70ddd2b3d1bea83d01509e9bb25ddb3a74fc85e5" - integrity sha512-+WmfvyfsyF603iPa6825mq6Qrb7uLjTOsa3XOFzlYcYDHSS4QmpOWOL0NNBY5qMbvrcf3tq0Cw+v4lxswOBpgA== +"@babel/plugin-transform-destructuring@^7.12.1": + version "7.12.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.12.1.tgz#b9a570fe0d0a8d460116413cb4f97e8e08b2f847" + integrity sha512-fRMYFKuzi/rSiYb2uRLiUENJOKq4Gnl+6qOv5f8z0TZXg3llUwUhsNNwrwaT/6dUhJTzNpBr+CUvEWBtfNY1cw== dependencies: "@babel/helper-plugin-utils" "^7.10.4" -"@babel/plugin-transform-dotall-regex@^7.10.4", "@babel/plugin-transform-dotall-regex@^7.4.4": - version "7.10.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.10.4.tgz#469c2062105c1eb6a040eaf4fac4b488078395ee" - integrity sha512-ZEAVvUTCMlMFAbASYSVQoxIbHm2OkG2MseW6bV2JjIygOjdVv8tuxrCTzj1+Rynh7ODb8GivUy7dzEXzEhuPaA== +"@babel/plugin-transform-dotall-regex@^7.12.1", "@babel/plugin-transform-dotall-regex@^7.4.4": + version "7.12.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.12.1.tgz#a1d16c14862817b6409c0a678d6f9373ca9cd975" + integrity sha512-B2pXeRKoLszfEW7J4Hg9LoFaWEbr/kzo3teWHmtFCszjRNa/b40f9mfeqZsIDLLt/FjwQ6pz/Gdlwy85xNckBA== dependencies: - "@babel/helper-create-regexp-features-plugin" "^7.10.4" + "@babel/helper-create-regexp-features-plugin" "^7.12.1" "@babel/helper-plugin-utils" "^7.10.4" -"@babel/plugin-transform-duplicate-keys@^7.10.4": - version "7.10.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.10.4.tgz#697e50c9fee14380fe843d1f306b295617431e47" - integrity sha512-GL0/fJnmgMclHiBTTWXNlYjYsA7rDrtsazHG6mglaGSTh0KsrW04qml+Bbz9FL0LcJIRwBWL5ZqlNHKTkU3xAA== +"@babel/plugin-transform-duplicate-keys@^7.12.1": + version "7.12.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.12.1.tgz#745661baba295ac06e686822797a69fbaa2ca228" + integrity sha512-iRght0T0HztAb/CazveUpUQrZY+aGKKaWXMJ4uf9YJtqxSUe09j3wteztCUDRHs+SRAL7yMuFqUsLoAKKzgXjw== dependencies: "@babel/helper-plugin-utils" "^7.10.4" -"@babel/plugin-transform-exponentiation-operator@^7.10.4": - version "7.10.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.10.4.tgz#5ae338c57f8cf4001bdb35607ae66b92d665af2e" - integrity sha512-S5HgLVgkBcRdyQAHbKj+7KyuWx8C6t5oETmUuwz1pt3WTWJhsUV0WIIXuVvfXMxl/QQyHKlSCNNtaIamG8fysw== +"@babel/plugin-transform-exponentiation-operator@^7.12.1": + version "7.12.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.12.1.tgz#b0f2ed356ba1be1428ecaf128ff8a24f02830ae0" + integrity sha512-7tqwy2bv48q+c1EHbXK0Zx3KXd2RVQp6OC7PbwFNt/dPTAV3Lu5sWtWuAj8owr5wqtWnqHfl2/mJlUmqkChKug== dependencies: "@babel/helper-builder-binary-assignment-operator-visitor" "^7.10.4" "@babel/helper-plugin-utils" "^7.10.4" @@ -571,159 +634,157 @@ "@babel/helper-plugin-utils" "^7.10.4" "@babel/plugin-syntax-flow" "^7.10.4" -"@babel/plugin-transform-for-of@^7.10.4": - version "7.10.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.10.4.tgz#c08892e8819d3a5db29031b115af511dbbfebae9" - integrity sha512-ItdQfAzu9AlEqmusA/65TqJ79eRcgGmpPPFvBnGILXZH975G0LNjP1yjHvGgfuCxqrPPueXOPe+FsvxmxKiHHQ== +"@babel/plugin-transform-for-of@^7.12.1": + version "7.12.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.12.1.tgz#07640f28867ed16f9511c99c888291f560921cfa" + integrity sha512-Zaeq10naAsuHo7heQvyV0ptj4dlZJwZgNAtBYBnu5nNKJoW62m0zKcIEyVECrUKErkUkg6ajMy4ZfnVZciSBhg== dependencies: "@babel/helper-plugin-utils" "^7.10.4" -"@babel/plugin-transform-function-name@^7.10.4": - version "7.10.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.10.4.tgz#6a467880e0fc9638514ba369111811ddbe2644b7" - integrity sha512-OcDCq2y5+E0dVD5MagT5X+yTRbcvFjDI2ZVAottGH6tzqjx/LKpgkUepu3hp/u4tZBzxxpNGwLsAvGBvQ2mJzg== +"@babel/plugin-transform-function-name@^7.12.1": + version "7.12.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.12.1.tgz#2ec76258c70fe08c6d7da154003a480620eba667" + integrity sha512-JF3UgJUILoFrFMEnOJLJkRHSk6LUSXLmEFsA23aR2O5CSLUxbeUX1IZ1YQ7Sn0aXb601Ncwjx73a+FVqgcljVw== dependencies: "@babel/helper-function-name" "^7.10.4" "@babel/helper-plugin-utils" "^7.10.4" -"@babel/plugin-transform-literals@^7.10.4": - version "7.10.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-literals/-/plugin-transform-literals-7.10.4.tgz#9f42ba0841100a135f22712d0e391c462f571f3c" - integrity sha512-Xd/dFSTEVuUWnyZiMu76/InZxLTYilOSr1UlHV+p115Z/Le2Fi1KXkJUYz0b42DfndostYlPub3m8ZTQlMaiqQ== +"@babel/plugin-transform-literals@^7.12.1": + version "7.12.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-literals/-/plugin-transform-literals-7.12.1.tgz#d73b803a26b37017ddf9d3bb8f4dc58bfb806f57" + integrity sha512-+PxVGA+2Ag6uGgL0A5f+9rklOnnMccwEBzwYFL3EUaKuiyVnUipyXncFcfjSkbimLrODoqki1U9XxZzTvfN7IQ== dependencies: "@babel/helper-plugin-utils" "^7.10.4" -"@babel/plugin-transform-member-expression-literals@^7.10.4": - version "7.10.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.10.4.tgz#b1ec44fcf195afcb8db2c62cd8e551c881baf8b7" - integrity sha512-0bFOvPyAoTBhtcJLr9VcwZqKmSjFml1iVxvPL0ReomGU53CX53HsM4h2SzckNdkQcHox1bpAqzxBI1Y09LlBSw== +"@babel/plugin-transform-member-expression-literals@^7.12.1": + version "7.12.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.12.1.tgz#496038602daf1514a64d43d8e17cbb2755e0c3ad" + integrity sha512-1sxePl6z9ad0gFMB9KqmYofk34flq62aqMt9NqliS/7hPEpURUCMbyHXrMPlo282iY7nAvUB1aQd5mg79UD9Jg== dependencies: "@babel/helper-plugin-utils" "^7.10.4" -"@babel/plugin-transform-modules-amd@^7.10.4": - version "7.10.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.10.5.tgz#1b9cddaf05d9e88b3aad339cb3e445c4f020a9b1" - integrity sha512-elm5uruNio7CTLFItVC/rIzKLfQ17+fX7EVz5W0TMgIHFo1zY0Ozzx+lgwhL4plzl8OzVn6Qasx5DeEFyoNiRw== +"@babel/plugin-transform-modules-amd@^7.12.1": + version "7.12.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.12.1.tgz#3154300b026185666eebb0c0ed7f8415fefcf6f9" + integrity sha512-tDW8hMkzad5oDtzsB70HIQQRBiTKrhfgwC/KkJeGsaNFTdWhKNt/BiE8c5yj19XiGyrxpbkOfH87qkNg1YGlOQ== dependencies: - "@babel/helper-module-transforms" "^7.10.5" + "@babel/helper-module-transforms" "^7.12.1" "@babel/helper-plugin-utils" "^7.10.4" babel-plugin-dynamic-import-node "^2.3.3" -"@babel/plugin-transform-modules-commonjs@^7.10.4": - version "7.10.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.10.4.tgz#66667c3eeda1ebf7896d41f1f16b17105a2fbca0" - integrity sha512-Xj7Uq5o80HDLlW64rVfDBhao6OX89HKUmb+9vWYaLXBZOma4gA6tw4Ni1O5qVDoZWUV0fxMYA0aYzOawz0l+1w== +"@babel/plugin-transform-modules-commonjs@^7.12.1": + version "7.12.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.12.1.tgz#fa403124542636c786cf9b460a0ffbb48a86e648" + integrity sha512-dY789wq6l0uLY8py9c1B48V8mVL5gZh/+PQ5ZPrylPYsnAvnEMjqsUXkuoDVPeVK+0VyGar+D08107LzDQ6pag== dependencies: - "@babel/helper-module-transforms" "^7.10.4" + "@babel/helper-module-transforms" "^7.12.1" "@babel/helper-plugin-utils" "^7.10.4" - "@babel/helper-simple-access" "^7.10.4" + "@babel/helper-simple-access" "^7.12.1" babel-plugin-dynamic-import-node "^2.3.3" -"@babel/plugin-transform-modules-systemjs@^7.12.0": - version "7.12.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.12.0.tgz#bca842db6980cfc98ae7d0f2c907c9b1df3f874e" - integrity sha512-h2fDMnwRwBiNMmTGAWqUo404Z3oLbrPE6hyATecyIbsEsrbM5gjLbfKQLb6hjiouMlGHH+yliYBbc4NPgWKE/g== +"@babel/plugin-transform-modules-systemjs@^7.12.1": + version "7.12.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.12.1.tgz#663fea620d593c93f214a464cd399bf6dc683086" + integrity sha512-Hn7cVvOavVh8yvW6fLwveFqSnd7rbQN3zJvoPNyNaQSvgfKmDBO9U1YL9+PCXGRlZD9tNdWTy5ACKqMuzyn32Q== dependencies: "@babel/helper-hoist-variables" "^7.10.4" - "@babel/helper-module-transforms" "^7.12.0" + "@babel/helper-module-transforms" "^7.12.1" "@babel/helper-plugin-utils" "^7.10.4" "@babel/helper-validator-identifier" "^7.10.4" babel-plugin-dynamic-import-node "^2.3.3" -"@babel/plugin-transform-modules-umd@^7.10.4": - version "7.10.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.10.4.tgz#9a8481fe81b824654b3a0b65da3df89f3d21839e" - integrity sha512-mohW5q3uAEt8T45YT7Qc5ws6mWgJAaL/8BfWD9Dodo1A3RKWli8wTS+WiQ/knF+tXlPirW/1/MqzzGfCExKECA== +"@babel/plugin-transform-modules-umd@^7.12.1": + version "7.12.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.12.1.tgz#eb5a218d6b1c68f3d6217b8fa2cc82fec6547902" + integrity sha512-aEIubCS0KHKM0zUos5fIoQm+AZUMt1ZvMpqz0/H5qAQ7vWylr9+PLYurT+Ic7ID/bKLd4q8hDovaG3Zch2uz5Q== dependencies: - "@babel/helper-module-transforms" "^7.10.4" + "@babel/helper-module-transforms" "^7.12.1" "@babel/helper-plugin-utils" "^7.10.4" -"@babel/plugin-transform-named-capturing-groups-regex@^7.10.4": - version "7.10.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.10.4.tgz#78b4d978810b6f3bcf03f9e318f2fc0ed41aecb6" - integrity sha512-V6LuOnD31kTkxQPhKiVYzYC/Jgdq53irJC/xBSmqcNcqFGV+PER4l6rU5SH2Vl7bH9mLDHcc0+l9HUOe4RNGKA== +"@babel/plugin-transform-named-capturing-groups-regex@^7.12.1": + version "7.12.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.12.1.tgz#b407f5c96be0d9f5f88467497fa82b30ac3e8753" + integrity sha512-tB43uQ62RHcoDp9v2Nsf+dSM8sbNodbEicbQNA53zHz8pWUhsgHSJCGpt7daXxRydjb0KnfmB+ChXOv3oADp1Q== dependencies: - "@babel/helper-create-regexp-features-plugin" "^7.10.4" + "@babel/helper-create-regexp-features-plugin" "^7.12.1" -"@babel/plugin-transform-new-target@^7.10.4": - version "7.10.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.10.4.tgz#9097d753cb7b024cb7381a3b2e52e9513a9c6888" - integrity sha512-YXwWUDAH/J6dlfwqlWsztI2Puz1NtUAubXhOPLQ5gjR/qmQ5U96DY4FQO8At33JN4XPBhrjB8I4eMmLROjjLjw== +"@babel/plugin-transform-new-target@^7.12.1": + version "7.12.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.12.1.tgz#80073f02ee1bb2d365c3416490e085c95759dec0" + integrity sha512-+eW/VLcUL5L9IvJH7rT1sT0CzkdUTvPrXC2PXTn/7z7tXLBuKvezYbGdxD5WMRoyvyaujOq2fWoKl869heKjhw== dependencies: "@babel/helper-plugin-utils" "^7.10.4" -"@babel/plugin-transform-object-super@^7.10.4": - version "7.10.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.10.4.tgz#d7146c4d139433e7a6526f888c667e314a093894" - integrity sha512-5iTw0JkdRdJvr7sY0vHqTpnruUpTea32JHmq/atIWqsnNussbRzjEDyWep8UNztt1B5IusBYg8Irb0bLbiEBCQ== +"@babel/plugin-transform-object-super@^7.12.1": + version "7.12.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.12.1.tgz#4ea08696b8d2e65841d0c7706482b048bed1066e" + integrity sha512-AvypiGJH9hsquNUn+RXVcBdeE3KHPZexWRdimhuV59cSoOt5kFBmqlByorAeUlGG2CJWd0U+4ZtNKga/TB0cAw== dependencies: "@babel/helper-plugin-utils" "^7.10.4" - "@babel/helper-replace-supers" "^7.10.4" + "@babel/helper-replace-supers" "^7.12.1" -"@babel/plugin-transform-parameters@^7.10.4": - version "7.10.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.10.5.tgz#59d339d58d0b1950435f4043e74e2510005e2c4a" - integrity sha512-xPHwUj5RdFV8l1wuYiu5S9fqWGM2DrYc24TMvUiRrPVm+SM3XeqU9BcokQX/kEUe+p2RBwy+yoiR1w/Blq6ubw== +"@babel/plugin-transform-parameters@^7.12.1": + version "7.12.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.12.1.tgz#d2e963b038771650c922eff593799c96d853255d" + integrity sha512-xq9C5EQhdPK23ZeCdMxl8bbRnAgHFrw5EOC3KJUsSylZqdkCaFEXxGSBuTSObOpiiHHNyb82es8M1QYgfQGfNg== dependencies: - "@babel/helper-get-function-arity" "^7.10.4" "@babel/helper-plugin-utils" "^7.10.4" -"@babel/plugin-transform-property-literals@^7.10.4": - version "7.10.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.10.4.tgz#f6fe54b6590352298785b83edd815d214c42e3c0" - integrity sha512-ofsAcKiUxQ8TY4sScgsGeR2vJIsfrzqvFb9GvJ5UdXDzl+MyYCaBj/FGzXuv7qE0aJcjWMILny1epqelnFlz8g== +"@babel/plugin-transform-property-literals@^7.12.1": + version "7.12.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.12.1.tgz#41bc81200d730abb4456ab8b3fbd5537b59adecd" + integrity sha512-6MTCR/mZ1MQS+AwZLplX4cEySjCpnIF26ToWo942nqn8hXSm7McaHQNeGx/pt7suI1TWOWMfa/NgBhiqSnX0cQ== dependencies: "@babel/helper-plugin-utils" "^7.10.4" -"@babel/plugin-transform-regenerator@^7.10.4": - version "7.10.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.10.4.tgz#2015e59d839074e76838de2159db421966fd8b63" - integrity sha512-3thAHwtor39A7C04XucbMg17RcZ3Qppfxr22wYzZNcVIkPHfpM9J0SO8zuCV6SZa265kxBJSrfKTvDCYqBFXGw== +"@babel/plugin-transform-regenerator@^7.12.1": + version "7.12.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.12.1.tgz#5f0a28d842f6462281f06a964e88ba8d7ab49753" + integrity sha512-gYrHqs5itw6i4PflFX3OdBPMQdPbF4bj2REIUxlMRUFk0/ZOAIpDFuViuxPjUL7YC8UPnf+XG7/utJvqXdPKng== dependencies: regenerator-transform "^0.14.2" -"@babel/plugin-transform-reserved-words@^7.10.4": - version "7.10.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.10.4.tgz#8f2682bcdcef9ed327e1b0861585d7013f8a54dd" - integrity sha512-hGsw1O6Rew1fkFbDImZIEqA8GoidwTAilwCyWqLBM9f+e/u/sQMQu7uX6dyokfOayRuuVfKOW4O7HvaBWM+JlQ== +"@babel/plugin-transform-reserved-words@^7.12.1": + version "7.12.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.12.1.tgz#6fdfc8cc7edcc42b36a7c12188c6787c873adcd8" + integrity sha512-pOnUfhyPKvZpVyBHhSBoX8vfA09b7r00Pmm1sH+29ae2hMTKVmSp4Ztsr8KBKjLjx17H0eJqaRC3bR2iThM54A== dependencies: "@babel/helper-plugin-utils" "^7.10.4" -"@babel/plugin-transform-shorthand-properties@^7.10.4": - version "7.10.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.10.4.tgz#9fd25ec5cdd555bb7f473e5e6ee1c971eede4dd6" - integrity sha512-AC2K/t7o07KeTIxMoHneyX90v3zkm5cjHJEokrPEAGEy3UCp8sLKfnfOIGdZ194fyN4wfX/zZUWT9trJZ0qc+Q== +"@babel/plugin-transform-shorthand-properties@^7.12.1": + version "7.12.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.12.1.tgz#0bf9cac5550fce0cfdf043420f661d645fdc75e3" + integrity sha512-GFZS3c/MhX1OusqB1MZ1ct2xRzX5ppQh2JU1h2Pnfk88HtFTM+TWQqJNfwkmxtPQtb/s1tk87oENfXJlx7rSDw== dependencies: "@babel/helper-plugin-utils" "^7.10.4" -"@babel/plugin-transform-spread@^7.11.0": - version "7.11.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-spread/-/plugin-transform-spread-7.11.0.tgz#fa84d300f5e4f57752fe41a6d1b3c554f13f17cc" - integrity sha512-UwQYGOqIdQJe4aWNyS7noqAnN2VbaczPLiEtln+zPowRNlD+79w3oi2TWfYe0eZgd+gjZCbsydN7lzWysDt+gw== +"@babel/plugin-transform-spread@^7.12.1": + version "7.12.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-spread/-/plugin-transform-spread-7.12.1.tgz#527f9f311be4ec7fdc2b79bb89f7bf884b3e1e1e" + integrity sha512-vuLp8CP0BE18zVYjsEBZ5xoCecMK6LBMMxYzJnh01rxQRvhNhH1csMMmBfNo5tGpGO+NhdSNW2mzIvBu3K1fng== dependencies: "@babel/helper-plugin-utils" "^7.10.4" - "@babel/helper-skip-transparent-expression-wrappers" "^7.11.0" + "@babel/helper-skip-transparent-expression-wrappers" "^7.12.1" -"@babel/plugin-transform-sticky-regex@^7.10.4": - version "7.10.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.10.4.tgz#8f3889ee8657581130a29d9cc91d7c73b7c4a28d" - integrity sha512-Ddy3QZfIbEV0VYcVtFDCjeE4xwVTJWTmUtorAJkn6u/92Z/nWJNV+mILyqHKrUxXYKA2EoCilgoPePymKL4DvQ== +"@babel/plugin-transform-sticky-regex@^7.12.1": + version "7.12.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.12.1.tgz#5c24cf50de396d30e99afc8d1c700e8bce0f5caf" + integrity sha512-CiUgKQ3AGVk7kveIaPEET1jNDhZZEl1RPMWdTBE1799bdz++SwqDHStmxfCtDfBhQgCl38YRiSnrMuUMZIWSUQ== dependencies: "@babel/helper-plugin-utils" "^7.10.4" "@babel/helper-regex" "^7.10.4" -"@babel/plugin-transform-template-literals@^7.10.4": - version "7.10.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.10.5.tgz#78bc5d626a6642db3312d9d0f001f5e7639fde8c" - integrity sha512-V/lnPGIb+KT12OQikDvgSuesRX14ck5FfJXt6+tXhdkJ+Vsd0lDCVtF6jcB4rNClYFzaB2jusZ+lNISDk2mMMw== +"@babel/plugin-transform-template-literals@^7.12.1": + version "7.12.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.12.1.tgz#b43ece6ed9a79c0c71119f576d299ef09d942843" + integrity sha512-b4Zx3KHi+taXB1dVRBhVJtEPi9h1THCeKmae2qP0YdUHIFhVjtpqqNfxeVAa1xeHVhAy4SbHxEwx5cltAu5apw== dependencies: - "@babel/helper-annotate-as-pure" "^7.10.4" "@babel/helper-plugin-utils" "^7.10.4" -"@babel/plugin-transform-typeof-symbol@^7.10.4": - version "7.10.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.10.4.tgz#9509f1a7eec31c4edbffe137c16cc33ff0bc5bfc" - integrity sha512-QqNgYwuuW0y0H+kUE/GWSR45t/ccRhe14Fs/4ZRouNNQsyd4o3PG4OtHiIrepbM2WKUBDAXKCAK/Lk4VhzTaGA== +"@babel/plugin-transform-typeof-symbol@^7.12.1": + version "7.12.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.12.1.tgz#9ca6be343d42512fbc2e68236a82ae64bc7af78a" + integrity sha512-EPGgpGy+O5Kg5pJFNDKuxt9RdmTgj5sgrus2XVeMp/ZIbOESadgILUbm50SNpghOh3/6yrbsH+NB5+WJTmsA7Q== dependencies: "@babel/helper-plugin-utils" "^7.10.4" @@ -736,46 +797,46 @@ "@babel/helper-plugin-utils" "^7.10.4" "@babel/plugin-syntax-typescript" "^7.10.4" -"@babel/plugin-transform-unicode-escapes@^7.10.4": - version "7.10.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.10.4.tgz#feae523391c7651ddac115dae0a9d06857892007" - integrity sha512-y5XJ9waMti2J+e7ij20e+aH+fho7Wb7W8rNuu72aKRwCHFqQdhkdU2lo3uZ9tQuboEJcUFayXdARhcxLQ3+6Fg== +"@babel/plugin-transform-unicode-escapes@^7.12.1": + version "7.12.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.12.1.tgz#5232b9f81ccb07070b7c3c36c67a1b78f1845709" + integrity sha512-I8gNHJLIc7GdApm7wkVnStWssPNbSRMPtgHdmH3sRM1zopz09UWPS4x5V4n1yz/MIWTVnJ9sp6IkuXdWM4w+2Q== dependencies: "@babel/helper-plugin-utils" "^7.10.4" -"@babel/plugin-transform-unicode-regex@^7.10.4": - version "7.10.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.10.4.tgz#e56d71f9282fac6db09c82742055576d5e6d80a8" - integrity sha512-wNfsc4s8N2qnIwpO/WP2ZiSyjfpTamT2C9V9FDH/Ljub9zw6P3SjkXcFmc0RQUt96k2fmIvtla2MMjgTwIAC+A== +"@babel/plugin-transform-unicode-regex@^7.12.1": + version "7.12.1" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.12.1.tgz#cc9661f61390db5c65e3febaccefd5c6ac3faecb" + integrity sha512-SqH4ClNngh/zGwHZOOQMTD+e8FGWexILV+ePMyiDJttAWRh5dhDL8rcl5lSgU3Huiq6Zn6pWTMvdPAb21Dwdyg== dependencies: - "@babel/helper-create-regexp-features-plugin" "^7.10.4" + "@babel/helper-create-regexp-features-plugin" "^7.12.1" "@babel/helper-plugin-utils" "^7.10.4" "@babel/preset-env@^7.1.6", "@babel/preset-env@^7.11.0": - version "7.12.0" - resolved "https://registry.yarnpkg.com/@babel/preset-env/-/preset-env-7.12.0.tgz#7d2d0c4f4a14ca0fd7d905a741070ab4745177b7" - integrity sha512-jSIHvHSuF+hBUIrvA2/61yIzhH+ceLOXGLTH1nwPvQlso/lNxXsoE/nvrCzY5M77KRzhKegB1CvdhWPZmYDZ5A== + version "7.12.1" + resolved "https://registry.yarnpkg.com/@babel/preset-env/-/preset-env-7.12.1.tgz#9c7e5ca82a19efc865384bb4989148d2ee5d7ac2" + integrity sha512-H8kxXmtPaAGT7TyBvSSkoSTUK6RHh61So05SyEbpmr0MCZrsNYn7mGMzzeYoOUCdHzww61k8XBft2TaES+xPLg== dependencies: - "@babel/compat-data" "^7.12.0" - "@babel/helper-compilation-targets" "^7.12.0" - "@babel/helper-module-imports" "^7.10.4" + "@babel/compat-data" "^7.12.1" + "@babel/helper-compilation-targets" "^7.12.1" + "@babel/helper-module-imports" "^7.12.1" "@babel/helper-plugin-utils" "^7.10.4" - "@babel/helper-validator-option" "^7.12.0" - "@babel/plugin-proposal-async-generator-functions" "^7.10.4" - "@babel/plugin-proposal-class-properties" "^7.10.4" - "@babel/plugin-proposal-dynamic-import" "^7.10.4" - "@babel/plugin-proposal-export-namespace-from" "^7.12.0" - "@babel/plugin-proposal-json-strings" "^7.10.4" - "@babel/plugin-proposal-logical-assignment-operators" "^7.12.0" - "@babel/plugin-proposal-nullish-coalescing-operator" "^7.12.0" - "@babel/plugin-proposal-numeric-separator" "^7.12.0" - "@babel/plugin-proposal-object-rest-spread" "^7.11.0" - "@babel/plugin-proposal-optional-catch-binding" "^7.10.4" - "@babel/plugin-proposal-optional-chaining" "^7.12.0" - "@babel/plugin-proposal-private-methods" "^7.10.4" - "@babel/plugin-proposal-unicode-property-regex" "^7.10.4" + "@babel/helper-validator-option" "^7.12.1" + "@babel/plugin-proposal-async-generator-functions" "^7.12.1" + "@babel/plugin-proposal-class-properties" "^7.12.1" + "@babel/plugin-proposal-dynamic-import" "^7.12.1" + "@babel/plugin-proposal-export-namespace-from" "^7.12.1" + "@babel/plugin-proposal-json-strings" "^7.12.1" + "@babel/plugin-proposal-logical-assignment-operators" "^7.12.1" + "@babel/plugin-proposal-nullish-coalescing-operator" "^7.12.1" + "@babel/plugin-proposal-numeric-separator" "^7.12.1" + "@babel/plugin-proposal-object-rest-spread" "^7.12.1" + "@babel/plugin-proposal-optional-catch-binding" "^7.12.1" + "@babel/plugin-proposal-optional-chaining" "^7.12.1" + "@babel/plugin-proposal-private-methods" "^7.12.1" + "@babel/plugin-proposal-unicode-property-regex" "^7.12.1" "@babel/plugin-syntax-async-generators" "^7.8.0" - "@babel/plugin-syntax-class-properties" "^7.10.4" + "@babel/plugin-syntax-class-properties" "^7.12.1" "@babel/plugin-syntax-dynamic-import" "^7.8.0" "@babel/plugin-syntax-export-namespace-from" "^7.8.3" "@babel/plugin-syntax-json-strings" "^7.8.0" @@ -785,42 +846,41 @@ "@babel/plugin-syntax-object-rest-spread" "^7.8.0" "@babel/plugin-syntax-optional-catch-binding" "^7.8.0" "@babel/plugin-syntax-optional-chaining" "^7.8.0" - "@babel/plugin-syntax-top-level-await" "^7.10.4" - "@babel/plugin-transform-arrow-functions" "^7.10.4" - "@babel/plugin-transform-async-to-generator" "^7.10.4" - "@babel/plugin-transform-block-scoped-functions" "^7.10.4" - "@babel/plugin-transform-block-scoping" "^7.10.4" - "@babel/plugin-transform-classes" "^7.10.4" - "@babel/plugin-transform-computed-properties" "^7.10.4" - "@babel/plugin-transform-destructuring" "^7.10.4" - "@babel/plugin-transform-dotall-regex" "^7.10.4" - "@babel/plugin-transform-duplicate-keys" "^7.10.4" - "@babel/plugin-transform-exponentiation-operator" "^7.10.4" - "@babel/plugin-transform-for-of" "^7.10.4" - "@babel/plugin-transform-function-name" "^7.10.4" - "@babel/plugin-transform-literals" "^7.10.4" - "@babel/plugin-transform-member-expression-literals" "^7.10.4" - "@babel/plugin-transform-modules-amd" "^7.10.4" - "@babel/plugin-transform-modules-commonjs" "^7.10.4" - "@babel/plugin-transform-modules-systemjs" "^7.12.0" - "@babel/plugin-transform-modules-umd" "^7.10.4" - "@babel/plugin-transform-named-capturing-groups-regex" "^7.10.4" - "@babel/plugin-transform-new-target" "^7.10.4" - "@babel/plugin-transform-object-super" "^7.10.4" - "@babel/plugin-transform-parameters" "^7.10.4" - "@babel/plugin-transform-property-literals" "^7.10.4" - "@babel/plugin-transform-regenerator" "^7.10.4" - "@babel/plugin-transform-reserved-words" "^7.10.4" - "@babel/plugin-transform-shorthand-properties" "^7.10.4" - "@babel/plugin-transform-spread" "^7.11.0" - "@babel/plugin-transform-sticky-regex" "^7.10.4" - "@babel/plugin-transform-template-literals" "^7.10.4" - "@babel/plugin-transform-typeof-symbol" "^7.10.4" - "@babel/plugin-transform-unicode-escapes" "^7.10.4" - "@babel/plugin-transform-unicode-regex" "^7.10.4" + "@babel/plugin-syntax-top-level-await" "^7.12.1" + "@babel/plugin-transform-arrow-functions" "^7.12.1" + "@babel/plugin-transform-async-to-generator" "^7.12.1" + "@babel/plugin-transform-block-scoped-functions" "^7.12.1" + "@babel/plugin-transform-block-scoping" "^7.12.1" + "@babel/plugin-transform-classes" "^7.12.1" + "@babel/plugin-transform-computed-properties" "^7.12.1" + "@babel/plugin-transform-destructuring" "^7.12.1" + "@babel/plugin-transform-dotall-regex" "^7.12.1" + "@babel/plugin-transform-duplicate-keys" "^7.12.1" + "@babel/plugin-transform-exponentiation-operator" "^7.12.1" + "@babel/plugin-transform-for-of" "^7.12.1" + "@babel/plugin-transform-function-name" "^7.12.1" + "@babel/plugin-transform-literals" "^7.12.1" + "@babel/plugin-transform-member-expression-literals" "^7.12.1" + "@babel/plugin-transform-modules-amd" "^7.12.1" + "@babel/plugin-transform-modules-commonjs" "^7.12.1" + "@babel/plugin-transform-modules-systemjs" "^7.12.1" + "@babel/plugin-transform-modules-umd" "^7.12.1" + "@babel/plugin-transform-named-capturing-groups-regex" "^7.12.1" + "@babel/plugin-transform-new-target" "^7.12.1" + "@babel/plugin-transform-object-super" "^7.12.1" + "@babel/plugin-transform-parameters" "^7.12.1" + "@babel/plugin-transform-property-literals" "^7.12.1" + "@babel/plugin-transform-regenerator" "^7.12.1" + "@babel/plugin-transform-reserved-words" "^7.12.1" + "@babel/plugin-transform-shorthand-properties" "^7.12.1" + "@babel/plugin-transform-spread" "^7.12.1" + "@babel/plugin-transform-sticky-regex" "^7.12.1" + "@babel/plugin-transform-template-literals" "^7.12.1" + "@babel/plugin-transform-typeof-symbol" "^7.12.1" + "@babel/plugin-transform-unicode-escapes" "^7.12.1" + "@babel/plugin-transform-unicode-regex" "^7.12.1" "@babel/preset-modules" "^0.1.3" - "@babel/types" "^7.12.0" - browserslist "^4.12.0" + "@babel/types" "^7.12.1" core-js-compat "^3.6.2" semver "^5.5.0" @@ -893,10 +953,25 @@ globals "^11.1.0" lodash "^4.17.19" -"@babel/types@^7.0.0", "@babel/types@^7.10.4", "@babel/types@^7.10.5", "@babel/types@^7.11.0", "@babel/types@^7.12.0", "@babel/types@^7.3.0", "@babel/types@^7.3.3", "@babel/types@^7.4.4": - version "7.12.0" - resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.12.0.tgz#b6b49f425ee59043fbc89c61b11a13d5eae7b5c6" - integrity sha512-ggIyFmT2zMaYRheOfPDQ4gz7QqV3B+t2rjqjbttDJxMcb7/LukvWCmlIl1sWcOxrvwpTDd+z0OytzqsbGeb3/g== +"@babel/traverse@^7.12.1": + version "7.12.1" + resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.12.1.tgz#941395e0c5cc86d5d3e75caa095d3924526f0c1e" + integrity sha512-MA3WPoRt1ZHo2ZmoGKNqi20YnPt0B1S0GTZEPhhd+hw2KGUzBlHuVunj6K4sNuK+reEvyiPwtp0cpaqLzJDmAw== + dependencies: + "@babel/code-frame" "^7.10.4" + "@babel/generator" "^7.12.1" + "@babel/helper-function-name" "^7.10.4" + "@babel/helper-split-export-declaration" "^7.11.0" + "@babel/parser" "^7.12.1" + "@babel/types" "^7.12.1" + debug "^4.1.0" + globals "^11.1.0" + lodash "^4.17.19" + +"@babel/types@^7.0.0", "@babel/types@^7.10.4", "@babel/types@^7.10.5", "@babel/types@^7.11.0", "@babel/types@^7.12.0", "@babel/types@^7.12.1", "@babel/types@^7.3.0", "@babel/types@^7.3.3", "@babel/types@^7.4.4": + version "7.12.1" + resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.12.1.tgz#e109d9ab99a8de735be287ee3d6a9947a190c4ae" + integrity sha512-BzSY3NJBKM4kyatSOWh3D/JJ2O3CVzBybHWxtgxnggaxEuaSTTDqeiSb/xk9lrkw2Tbqyivw5ZU4rT+EfznQsA== dependencies: "@babel/helper-validator-identifier" "^7.10.4" lodash "^4.17.19" From cc081a256181e34137a89d2e9d37b04280b3f180 Mon Sep 17 00:00:00 2001 From: Anshuman Verma Date: Fri, 16 Oct 2020 19:37:46 +0530 Subject: [PATCH 14/21] feat: allow passing strings in env flag (#1939) --- .../webpack-cli/lib/groups/ConfigGroup.js | 12 +--- packages/webpack-cli/lib/utils/arg-parser.js | 22 +++++++ packages/webpack-cli/lib/utils/cli-flags.js | 2 +- .../function-with-env.test.js | 63 +++++++++++++++++++ .../function-with-env/webpack.env.config.js | 32 ++++++++++ .../promise-function/promise-function.test.js | 2 - 6 files changed, 119 insertions(+), 14 deletions(-) create mode 100644 test/config/type/function-with-env/webpack.env.config.js diff --git a/packages/webpack-cli/lib/groups/ConfigGroup.js b/packages/webpack-cli/lib/groups/ConfigGroup.js index d98a6183154..beac89662e8 100644 --- a/packages/webpack-cli/lib/groups/ConfigGroup.js +++ b/packages/webpack-cli/lib/groups/ConfigGroup.js @@ -167,17 +167,7 @@ const finalize = async (moduleObj, args) => { // `Promise` may return `Function` if (typeof rawConfig === 'function') { // when config is a function, pass the env from args to the config function - let envs; - - if (Array.isArray(env)) { - envs = env.reduce((envObject, envOption) => { - envObject[envOption] = true; - - return envObject; - }, {}); - } - - rawConfig = await rawConfig(envs, args); + rawConfig = await rawConfig(env, args); } return rawConfig; diff --git a/packages/webpack-cli/lib/utils/arg-parser.js b/packages/webpack-cli/lib/utils/arg-parser.js index dc2fbe82729..e60e1833b02 100644 --- a/packages/webpack-cli/lib/utils/arg-parser.js +++ b/packages/webpack-cli/lib/utils/arg-parser.js @@ -92,6 +92,28 @@ const argParser = (options, args, argsOnly = false, name = '') => { // a multiple argument parsing function const multiArg = (value, previous = []) => previous.concat([value]); parserInstance.option(flagsWithType, option.description, multiArg, option.defaultValue).action(() => {}); + } else if (option.multipleType) { + // for options which accept multiple types like env + // so you can do `--env platform=staging --env production` + // { platform: "staging", production: true } + const multiArg = (value, previous = {}) => { + // this ensures we're only splitting by the first `=` + const [allKeys, val] = value.split(/=(.+)/, 2); + const splitKeys = allKeys.split(/\.(?!$)/); + let prevRef = previous; + splitKeys.forEach((someKey, index) => { + if (!prevRef[someKey]) prevRef[someKey] = {}; + if ('string' === typeof prevRef[someKey]) { + prevRef[someKey] = {}; + } + if (index === splitKeys.length - 1) { + prevRef[someKey] = val || true; + } + prevRef = prevRef[someKey]; + }); + return previous; + }; + parserInstance.option(flagsWithType, option.description, multiArg, option.defaultValue).action(() => {}); } else { // Prevent default behavior for standalone options parserInstance.option(flagsWithType, option.description, option.defaultValue).action(() => {}); diff --git a/packages/webpack-cli/lib/utils/cli-flags.js b/packages/webpack-cli/lib/utils/cli-flags.js index 0f5f508169a..807d94c0677 100644 --- a/packages/webpack-cli/lib/utils/cli-flags.js +++ b/packages/webpack-cli/lib/utils/cli-flags.js @@ -205,7 +205,7 @@ const core = [ name: 'env', usage: '--env', type: String, - multiple: true, + multipleType: true, description: 'Environment passed to the configuration when it is a function', }, { diff --git a/test/config/type/function-with-env/function-with-env.test.js b/test/config/type/function-with-env/function-with-env.test.js index fae211de366..bbb878377ee 100644 --- a/test/config/type/function-with-env/function-with-env.test.js +++ b/test/config/type/function-with-env/function-with-env.test.js @@ -4,6 +4,13 @@ const { resolve } = require('path'); const { run } = require('../../../utils/test-utils'); describe('function configuration', () => { + it('should throw when env is not supplied', () => { + const { stderr, stdout, exitCode } = run(__dirname, ['--env'], false); + expect(stdout).toBeFalsy(); + expect(stderr).toBeTruthy(); + expect(stderr).toContain(`option '--env ' argument missing`); + expect(exitCode).toEqual(1); + }); it('is able to understand a configuration file as a function', () => { const { stderr, stdout } = run(__dirname, ['--env', 'isProd']); expect(stderr).toBeFalsy(); @@ -18,6 +25,62 @@ describe('function configuration', () => { // Should generate the appropriate files expect(existsSync(resolve(__dirname, './bin/dev.js'))).toBeTruthy(); }); + it('Supports passing string in env', () => { + const { stderr, stdout } = run(__dirname, [ + '--env', + 'environment=production', + '--env', + 'app.title=Luffy', + '-c', + 'webpack.env.config.js', + ]); + expect(stderr).toBeFalsy(); + expect(stdout).toBeTruthy(); + // Should generate the appropriate files + expect(existsSync(resolve(__dirname, './bin/Luffy.js'))).toBeTruthy(); + }); + it('Supports long nested values in env', () => { + const { stderr, stdout } = run(__dirname, [ + '--env', + 'file.name.is.this=Atsumu', + '--env', + 'environment=production', + '-c', + 'webpack.env.config.js', + ]); + expect(stderr).toBeFalsy(); + expect(stdout).toBeTruthy(); + // Should generate the appropriate files + expect(existsSync(resolve(__dirname, './bin/Atsumu.js'))).toBeTruthy(); + }); + it('Supports multiple equal in a string', () => { + const { stderr, stdout } = run(__dirname, [ + '--env', + 'file=name=is=Eren', + '--env', + 'environment=multipleq', + '-c', + 'webpack.env.config.js', + ]); + expect(stderr).toBeFalsy(); + expect(stdout).toBeTruthy(); + // Should generate the appropriate files + expect(existsSync(resolve(__dirname, './bin/name=is=Eren.js'))).toBeTruthy(); + }); + it('Supports dot at the end', () => { + const { stderr, stdout } = run(__dirname, ['--env', 'name.=Hisoka', '--env', 'environment=dot', '-c', 'webpack.env.config.js']); + expect(stderr).toBeFalsy(); + expect(stdout).toBeTruthy(); + // Should generate the appropriate files + expect(existsSync(resolve(__dirname, './bin/Hisoka.js'))).toBeTruthy(); + }); + it('Supports dot at the end', () => { + const { stderr, stdout } = run(__dirname, ['--env', 'name.', '--env', 'environment=dot', '-c', 'webpack.env.config.js']); + expect(stderr).toBeFalsy(); + expect(stdout).toBeTruthy(); + // Should generate the appropriate files + expect(existsSync(resolve(__dirname, './bin/true.js'))).toBeTruthy(); + }); it('is able to understand multiple env flags', (done) => { const { stderr, stdout } = run(__dirname, ['--env', 'isDev', '--env', 'verboseStats', '--env', 'envMessage']); expect(stderr).toBeFalsy(); diff --git a/test/config/type/function-with-env/webpack.env.config.js b/test/config/type/function-with-env/webpack.env.config.js new file mode 100644 index 00000000000..b131cf9866d --- /dev/null +++ b/test/config/type/function-with-env/webpack.env.config.js @@ -0,0 +1,32 @@ +module.exports = (env) => { + const { environment, app, file } = env; + const customName = file && file.name && file.name.is && file.name.is.this; + const appTitle = app && app.title; + if (environment === 'production') { + return { + entry: './a.js', + output: { + filename: `${customName ? customName : appTitle}.js`, + }, + }; + } + if (environment === 'multipleq') { + const { file } = env; + return { + entry: './a.js', + output: { + filename: `${file}.js`, + }, + }; + } + if (environment === 'dot') { + const file = env['name.']; + return { + entry: './a.js', + output: { + filename: `${file}.js`, + }, + }; + } + return {}; +}; diff --git a/test/config/type/promise-function/promise-function.test.js b/test/config/type/promise-function/promise-function.test.js index 220e908bae5..ad5f372201e 100644 --- a/test/config/type/promise-function/promise-function.test.js +++ b/test/config/type/promise-function/promise-function.test.js @@ -6,8 +6,6 @@ const { run } = require('../../../utils/test-utils'); describe('promise function', () => { it('is able to understand a configuration file as a promise', (done) => { const { stdout, stderr } = run(__dirname, ['-c', './webpack.config.js'], false); - console.log(stdout); - console.log(stderr); expect(stdout).toBeTruthy(); expect(stderr).toBeFalsy(); stat(resolve(__dirname, './binary/promise.js'), (err, stats) => { From e032ef86e90dad0ae907364cff1834c73f832cf7 Mon Sep 17 00:00:00 2001 From: Alexander Akait Date: Sat, 17 Oct 2020 17:05:52 +0300 Subject: [PATCH 15/21] refactor: code --- packages/webpack-cli/lib/bootstrap.js | 2 + packages/webpack-cli/lib/utils/Compiler.js | 167 ----------------- packages/webpack-cli/lib/utils/interactive.js | 13 +- packages/webpack-cli/lib/webpack-cli.js | 176 ++++++++++++++++-- 4 files changed, 170 insertions(+), 188 deletions(-) delete mode 100644 packages/webpack-cli/lib/utils/Compiler.js diff --git a/packages/webpack-cli/lib/bootstrap.js b/packages/webpack-cli/lib/bootstrap.js index c73b0f2ab29..20e60ab7617 100644 --- a/packages/webpack-cli/lib/bootstrap.js +++ b/packages/webpack-cli/lib/bootstrap.js @@ -7,7 +7,9 @@ const logger = require('./utils/logger'); const { isCommandUsed } = require('./utils/arg-utils'); const cliExecuter = require('./utils/cli-executer'); const argParser = require('./utils/arg-parser'); + require('./utils/process-log'); + process.title = 'webpack-cli'; // Create a new instance of the CLI object diff --git a/packages/webpack-cli/lib/utils/Compiler.js b/packages/webpack-cli/lib/utils/Compiler.js deleted file mode 100644 index 0b9bc34098f..00000000000 --- a/packages/webpack-cli/lib/utils/Compiler.js +++ /dev/null @@ -1,167 +0,0 @@ -const { options: coloretteOptions } = require('colorette'); -const { packageExists } = require('./package-exists'); -const webpack = packageExists('webpack') ? require('webpack') : undefined; -const logger = require('./logger'); -const { writeFileSync } = require('fs'); - -class Compiler { - constructor() { - this.compilerOptions = {}; - } - - async createCompiler(options) { - try { - this.compiler = await webpack(options); - this.compilerOptions = options; - } catch (error) { - // https://github.com/webpack/webpack/blob/master/lib/index.js#L267 - // https://github.com/webpack/webpack/blob/v4.44.2/lib/webpack.js#L90 - const ValidationError = webpack.ValidationError ? webpack.ValidationError : webpack.WebpackOptionsValidationError; - - // In case of schema errors print and exit process - // For webpack@4 and webpack@5 - if (error instanceof ValidationError) { - logger.error(error.message); - } else { - logger.error(error); - } - - process.exit(2); - } - } - - get getCompiler() { - return this.compiler; - } - - async webpackInstance(opts) { - const { outputOptions, options } = opts; - - if (outputOptions.interactive) { - const interactive = require('./interactive'); - - return interactive(options, outputOptions); - } - - const compilers = this.compiler.compilers ? this.compiler.compilers : [this.compiler]; - const isWatchMode = Boolean(compilers.find((compiler) => compiler.options.watch)); - const isRawOutput = typeof outputOptions.json === 'undefined'; - - if (isRawOutput) { - for (const compiler of compilers) { - if (outputOptions.progress) { - const { ProgressPlugin } = webpack; - - let progressPluginExists; - - if (compiler.options.plugins) { - progressPluginExists = Boolean(compiler.options.plugins.find((e) => e instanceof ProgressPlugin)); - } - - if (!progressPluginExists) { - new ProgressPlugin().apply(compiler); - } - } - } - - this.compiler.hooks.watchRun.tap('watchInfo', (compilation) => { - if (compilation.options.bail && isWatchMode) { - logger.warn('You are using "bail" with "watch". "bail" will still exit webpack when the first error is found.'); - } - - logger.success(`Compilation${compilation.name ? `${compilation.name}` : ''} starting...`); - }); - this.compiler.hooks.done.tap('watchInfo', (compilation) => { - logger.success(`Compilation${compilation.name ? `${compilation.name}` : ''} finished`); - }); - } - - const callback = (error, stats) => { - if (error) { - logger.error(error); - process.exit(1); - } - - if (stats.hasErrors()) { - process.exitCode = 1; - } - - const getStatsOptions = (stats) => { - // TODO remove after drop webpack@4 - if (webpack.Stats && webpack.Stats.presetToOptions) { - if (!stats) { - stats = {}; - } else if (typeof stats === 'boolean' || typeof stats === 'string') { - stats = webpack.Stats.presetToOptions(stats); - } - } - - stats.colors = typeof stats.colors !== 'undefined' ? stats.colors : coloretteOptions.enabled; - - return stats; - }; - - const foundStats = this.compiler.compilers - ? { children: this.compiler.compilers.map((compiler) => getStatsOptions(compiler.options.stats)) } - : getStatsOptions(this.compiler.options.stats); - - if (outputOptions.json === true) { - process.stdout.write(JSON.stringify(stats.toJson(foundStats), null, 2) + '\n'); - } else if (typeof outputOptions.json === 'string') { - const JSONStats = JSON.stringify(stats.toJson(foundStats), null, 2); - - try { - writeFileSync(outputOptions.json, JSONStats); - logger.success(`stats are successfully stored as json to ${outputOptions.json}`); - } catch (error) { - logger.error(error); - - process.exit(2); - } - } else { - logger.raw(`${stats.toString(foundStats)}`); - } - - if (isWatchMode) { - logger.success('watching files for updates...'); - } - }; - - if (isWatchMode) { - const watchOptions = (this.compiler.options && this.compiler.options.watchOptions) || {}; - - if (watchOptions.stdin) { - process.stdin.on('end', function () { - process.exit(); - }); - process.stdin.resume(); - } - - return new Promise((resolve) => { - this.compiler.watch(watchOptions, (error, stats) => { - callback(error, stats); - - resolve(); - }); - }); - } else { - return new Promise((resolve) => { - this.compiler.run((error, stats) => { - if (this.compiler.close) { - this.compiler.close(() => { - callback(error, stats); - - resolve(); - }); - } else { - callback(error, stats); - - resolve(); - } - }); - }); - } - } -} - -module.exports = { Compiler }; diff --git a/packages/webpack-cli/lib/utils/interactive.js b/packages/webpack-cli/lib/utils/interactive.js index e18b5c3ebbf..e6213f4b67d 100644 --- a/packages/webpack-cli/lib/utils/interactive.js +++ b/packages/webpack-cli/lib/utils/interactive.js @@ -1,5 +1,4 @@ const { gray, bold, white, cyan, yellow } = require('colorette'); -const webpack = require('./Compiler'); const ansiEscapes = require('ansi-escapes'); const readline = require('readline'); @@ -96,7 +95,7 @@ const ENTER_KEY = '\n'; const B_KEY = 'b'; const C_KEY = 'c'; -module.exports = async function (config, outputOptions) { +module.exports = async function (compiler, config, outputOptions) { const stdin = process.stdin; stdin.setEncoding('utf-8'); stdin.setRawMode(true); @@ -104,11 +103,8 @@ module.exports = async function (config, outputOptions) { outputOptions.interactive = false; - const webpackCompilation = await webpack({ options: config, outputOptions }); - /* if(errors) { - Hngggg -} */ - state.push(webpackCompilation); + state.push(compiler); + setupInteractive(); const isExitCtrl = (key) => key.ctrl && key.name === 'c'; @@ -164,8 +160,7 @@ module.exports = async function (config, outputOptions) { if (state.length) { state.pop(); } - const webpackCompilation = await webpack({ options: config, outputOptions }); - state.push(webpackCompilation); + state.push(compiler); informActions(); isSub = true; return; diff --git a/packages/webpack-cli/lib/webpack-cli.js b/packages/webpack-cli/lib/webpack-cli.js index f6079011096..07bdf950c40 100644 --- a/packages/webpack-cli/lib/webpack-cli.js +++ b/packages/webpack-cli/lib/webpack-cli.js @@ -1,11 +1,15 @@ +const { packageExists } = require('./utils/package-exists'); +const webpack = packageExists('webpack') ? require('webpack') : undefined; +const logger = require('./utils/logger'); const webpackMerge = require('webpack-merge'); const GroupHelper = require('./utils/GroupHelper'); -const { Compiler } = require('./utils/Compiler'); const { groups, core } = require('./utils/cli-flags'); const argParser = require('./utils/arg-parser'); const { outputStrategy } = require('./utils/merge-strategies'); const { toKebabCase } = require('./utils/helpers'); const assignFlagDefaults = require('./utils/flag-defaults'); +const { writeFileSync } = require('fs'); +const { options: coloretteOptions } = require('colorette'); // CLI arg resolvers const handleConfigResolution = require('./groups/ConfigGroup'); @@ -19,7 +23,6 @@ class WebpackCLI extends GroupHelper { constructor() { super(); this.groupMap = new Map(); - this.compilation = new Compiler(); this.compilerConfiguration = {}; this.outputConfiguration = {}; } @@ -205,24 +208,173 @@ class WebpackCLI extends GroupHelper { async processArgs(args, cliOptions) { this.setMappedGroups(args, cliOptions); this.resolveGroups(args); - const groupResult = await this.runOptionGroups(args); - return groupResult; + + return this.runOptionGroups(args); + } + + createCompiler(options) { + let compiler; + + try { + compiler = webpack(options); + } catch (error) { + // https://github.com/webpack/webpack/blob/master/lib/index.js#L267 + // https://github.com/webpack/webpack/blob/v4.44.2/lib/webpack.js#L90 + const ValidationError = webpack.ValidationError ? webpack.ValidationError : webpack.WebpackOptionsValidationError; + + // In case of schema errors print and exit process + // For webpack@4 and webpack@5 + if (error instanceof ValidationError) { + logger.error(error.message); + } else { + logger.error(error); + } + + process.exit(2); + } + + return compiler; } async getCompiler(args, cliOptions) { await this.processArgs(args, cliOptions); - await this.compilation.createCompiler(this.compilerConfiguration); - return this.compilation.compiler; + + return this.createCompiler(this.compilerConfiguration); } async run(args, cliOptions) { await this.processArgs(args, cliOptions); - await this.compilation.createCompiler(this.compilerConfiguration); - const webpack = await this.compilation.webpackInstance({ - options: this.compilerConfiguration, - outputOptions: this.outputConfiguration, - }); - return webpack; + + const compiler = this.createCompiler(this.compilerConfiguration); + + const options = this.compilerConfiguration; + const outputOptions = this.outputConfiguration; + + if (outputOptions.interactive) { + const interactive = require('./utils/interactive'); + + return interactive(compiler, options, outputOptions); + } + + const compilers = compiler.compilers ? compiler.compilers : [compiler]; + const isWatchMode = Boolean(compilers.find((compiler) => compiler.options.watch)); + const isRawOutput = typeof outputOptions.json === 'undefined'; + + if (isRawOutput) { + for (const compiler of compilers) { + if (outputOptions.progress) { + const { ProgressPlugin } = webpack; + + let progressPluginExists; + + if (compiler.options.plugins) { + progressPluginExists = Boolean(compiler.options.plugins.find((e) => e instanceof ProgressPlugin)); + } + + if (!progressPluginExists) { + new ProgressPlugin().apply(compiler); + } + } + } + + compiler.hooks.watchRun.tap('watchInfo', (compilation) => { + if (compilation.options.bail && isWatchMode) { + logger.warn('You are using "bail" with "watch". "bail" will still exit webpack when the first error is found.'); + } + + logger.success(`Compilation${compilation.name ? `${compilation.name}` : ''} starting...`); + }); + compiler.hooks.done.tap('watchInfo', (compilation) => { + logger.success(`Compilation${compilation.name ? `${compilation.name}` : ''} finished`); + }); + } + + const callback = (error, stats) => { + if (error) { + logger.error(error); + process.exit(1); + } + + if (stats.hasErrors()) { + process.exitCode = 1; + } + + const getStatsOptions = (stats) => { + // TODO remove after drop webpack@4 + if (webpack.Stats && webpack.Stats.presetToOptions) { + if (!stats) { + stats = {}; + } else if (typeof stats === 'boolean' || typeof stats === 'string') { + stats = webpack.Stats.presetToOptions(stats); + } + } + + stats.colors = typeof stats.colors !== 'undefined' ? stats.colors : coloretteOptions.enabled; + + return stats; + }; + + const foundStats = compiler.compilers + ? { children: compiler.compilers.map((compiler) => getStatsOptions(compiler.options.stats)) } + : getStatsOptions(compiler.options.stats); + + if (outputOptions.json === true) { + process.stdout.write(JSON.stringify(stats.toJson(foundStats), null, 2) + '\n'); + } else if (typeof outputOptions.json === 'string') { + const JSONStats = JSON.stringify(stats.toJson(foundStats), null, 2); + + try { + writeFileSync(outputOptions.json, JSONStats); + + logger.success(`stats are successfully stored as json to ${outputOptions.json}`); + } catch (error) { + logger.error(error); + + process.exit(2); + } + } else { + logger.raw(`${stats.toString(foundStats)}`); + } + + if (isWatchMode) { + logger.success('watching files for updates...'); + } + }; + + if (isWatchMode) { + const watchOptions = (compiler.options && compiler.options.watchOptions) || {}; + + if (watchOptions.stdin) { + process.stdin.on('end', function () { + process.exit(); + }); + process.stdin.resume(); + } + + return new Promise((resolve) => { + compiler.watch(watchOptions, (error, stats) => { + callback(error, stats); + + resolve(); + }); + }); + } else { + return new Promise((resolve) => { + compiler.run((error, stats) => { + if (compiler.close) { + compiler.close(() => { + callback(error, stats); + + resolve(); + }); + } else { + callback(error, stats); + + resolve(); + } + }); + }); + } } } From 0be24984953e695319845d708e52447f0355d49a Mon Sep 17 00:00:00 2001 From: "dependabot-preview[bot]" <27856297+dependabot-preview[bot]@users.noreply.github.com> Date: Sat, 17 Oct 2020 17:22:18 +0300 Subject: [PATCH 16/21] chore(deps-dev): bump webpack from 5.1.0 to 5.1.3 (#1959) Bumps [webpack](https://github.com/webpack/webpack) from 5.1.0 to 5.1.3. - [Release notes](https://github.com/webpack/webpack/releases) - [Commits](https://github.com/webpack/webpack/compare/v5.1.0...v5.1.3) Signed-off-by: dependabot-preview[bot] Co-authored-by: dependabot-preview[bot] <27856297+dependabot-preview[bot]@users.noreply.github.com> --- yarn.lock | 155 +++++------------------------------------------------- 1 file changed, 13 insertions(+), 142 deletions(-) diff --git a/yarn.lock b/yarn.lock index db2814d9b68..886b01523eb 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2105,13 +2105,6 @@ "@nodelib/fs.scandir" "2.1.3" fastq "^1.6.0" -"@npmcli/move-file@^1.0.1": - version "1.0.1" - resolved "https://registry.yarnpkg.com/@npmcli/move-file/-/move-file-1.0.1.tgz#de103070dac0f48ce49cf6693c23af59c0f70464" - integrity sha512-Uv6h1sT+0DrblvIrolFtbvM1FgWm+/sy4B3pvLp67Zys+thcukzS5ekn7HsZFGpWP4Q3fYJCljbWQE/XivMRLw== - dependencies: - mkdirp "^1.0.4" - "@octokit/auth-token@^2.4.0": version "2.4.2" resolved "https://registry.yarnpkg.com/@octokit/auth-token/-/auth-token-2.4.2.tgz#10d0ae979b100fa6b72fa0e8e63e27e6d0dbff8a" @@ -3538,29 +3531,6 @@ cacache@^12.0.0, cacache@^12.0.3: unique-filename "^1.1.1" y18n "^4.0.0" -cacache@^15.0.5: - version "15.0.5" - resolved "https://registry.yarnpkg.com/cacache/-/cacache-15.0.5.tgz#69162833da29170d6732334643c60e005f5f17d0" - integrity sha512-lloiL22n7sOjEEXdL8NAjTgv9a1u43xICE9/203qonkZUCj5X1UEWIdf2/Y0d6QcCtMzbKQyhrcDbdvlZTs/+A== - dependencies: - "@npmcli/move-file" "^1.0.1" - chownr "^2.0.0" - fs-minipass "^2.0.0" - glob "^7.1.4" - infer-owner "^1.0.4" - lru-cache "^6.0.0" - minipass "^3.1.1" - minipass-collect "^1.0.2" - minipass-flush "^1.0.5" - minipass-pipeline "^1.2.2" - mkdirp "^1.0.3" - p-map "^4.0.0" - promise-inflight "^1.0.1" - rimraf "^3.0.2" - ssri "^8.0.0" - tar "^6.0.2" - unique-filename "^1.1.1" - cache-base@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/cache-base/-/cache-base-1.0.1.tgz#0a7f46416831c8b662ee36fe4e7c59d76f666ab2" @@ -3759,11 +3729,6 @@ chownr@^1.1.1, chownr@^1.1.2: resolved "https://registry.yarnpkg.com/chownr/-/chownr-1.1.4.tgz#6fc9d7b42d32a583596337666e7d08084da2cc6b" integrity sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg== -chownr@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/chownr/-/chownr-2.0.0.tgz#15bfbe53d2eab4cf70f18a8cd68ebe5b3cb1dece" - integrity sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ== - chrome-trace-event@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/chrome-trace-event/-/chrome-trace-event-1.0.2.tgz#234090ee97c7d4ad1a2c4beae27505deffc608a4" @@ -5455,15 +5420,6 @@ find-cache-dir@^2.0.0: make-dir "^2.0.0" pkg-dir "^3.0.0" -find-cache-dir@^3.3.1: - version "3.3.1" - resolved "https://registry.yarnpkg.com/find-cache-dir/-/find-cache-dir-3.3.1.tgz#89b33fad4a4670daa94f855f7fbe31d6d84fe880" - integrity sha512-t2GDMt3oGC/v+BMwzmllWDuJF/xcDtE5j/fCGbqDD7OLuJkj0cfh1YSA5VKPvwMeLFLNDBkwOKZ2X85jGLVftQ== - dependencies: - commondir "^1.0.1" - make-dir "^3.0.2" - pkg-dir "^4.1.0" - find-config@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/find-config/-/find-config-1.0.0.tgz#eafa2b9bc07fa9c90e9a0c3ef9cecf1cc800f530" @@ -5651,13 +5607,6 @@ fs-minipass@^1.2.5: dependencies: minipass "^2.6.0" -fs-minipass@^2.0.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/fs-minipass/-/fs-minipass-2.1.0.tgz#7f5036fdbf12c63c169190cbe4199c852271f9fb" - integrity sha512-V/JgOLFCS+R6Vcq0slCuaeWEdNC3ouDlJMNIsacH2VtALiu9mV4LPrHc5cDl8k5aw6J8jwgWWpiTo5RYhmIzvg== - dependencies: - minipass "^3.0.0" - fs-write-stream-atomic@^1.0.8: version "1.0.10" resolved "https://registry.yarnpkg.com/fs-write-stream-atomic/-/fs-write-stream-atomic-1.0.10.tgz#b47df53493ef911df75731e70a9ded0189db40c9" @@ -7968,13 +7917,6 @@ lru-cache@^5.1.1: dependencies: yallist "^3.0.2" -lru-cache@^6.0.0: - version "6.0.0" - resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-6.0.0.tgz#6d6fe6570ebd96aaf90fcad1dafa3b2566db3a94" - integrity sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA== - dependencies: - yallist "^4.0.0" - macos-release@^2.2.0: version "2.4.1" resolved "https://registry.yarnpkg.com/macos-release/-/macos-release-2.4.1.tgz#64033d0ec6a5e6375155a74b1a1eba8e509820ac" @@ -7995,7 +7937,7 @@ make-dir@^2.0.0, make-dir@^2.1.0: pify "^4.0.1" semver "^5.6.0" -make-dir@^3.0.0, make-dir@^3.0.2: +make-dir@^3.0.0: version "3.1.0" resolved "https://registry.yarnpkg.com/make-dir/-/make-dir-3.1.0.tgz#415e967046b3a7f1d185277d84aa58203726a13f" integrity sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw== @@ -8328,27 +8270,6 @@ minimist@^1.1.1, minimist@^1.1.3, minimist@^1.2.0, minimist@^1.2.5: resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.5.tgz#67d66014b66a6a8aaa0c083c5fd58df4e4e97602" integrity sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw== -minipass-collect@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/minipass-collect/-/minipass-collect-1.0.2.tgz#22b813bf745dc6edba2576b940022ad6edc8c617" - integrity sha512-6T6lH0H8OG9kITm/Jm6tdooIbogG9e0tLgpY6mphXSm/A9u8Nq1ryBG+Qspiub9LjWlBPsPS3tWQ/Botq4FdxA== - dependencies: - minipass "^3.0.0" - -minipass-flush@^1.0.5: - version "1.0.5" - resolved "https://registry.yarnpkg.com/minipass-flush/-/minipass-flush-1.0.5.tgz#82e7135d7e89a50ffe64610a787953c4c4cbb373" - integrity sha512-JmQSYYpPUqX5Jyn1mXaRwOda1uQ8HP5KAT/oDSLCzt1BYRhQU0/hDtsB1ufZfEEzMZ9aAVmsBw8+FWsIXlClWw== - dependencies: - minipass "^3.0.0" - -minipass-pipeline@^1.2.2: - version "1.2.4" - resolved "https://registry.yarnpkg.com/minipass-pipeline/-/minipass-pipeline-1.2.4.tgz#68472f79711c084657c067c5c6ad93cddea8214c" - integrity sha512-xuIq7cIOt09RPRJ19gdi4b+RiNvDFYe5JH+ggNvBqGqpQXcru3PcRmOZuHBKWK1Txf9+cQ+HMVN4d6z46LZP7A== - dependencies: - minipass "^3.0.0" - minipass@^2.3.5, minipass@^2.6.0, minipass@^2.8.6, minipass@^2.9.0: version "2.9.0" resolved "https://registry.yarnpkg.com/minipass/-/minipass-2.9.0.tgz#e713762e7d3e32fed803115cf93e04bca9fcc9a6" @@ -8357,13 +8278,6 @@ minipass@^2.3.5, minipass@^2.6.0, minipass@^2.8.6, minipass@^2.9.0: safe-buffer "^5.1.2" yallist "^3.0.0" -minipass@^3.0.0, minipass@^3.1.1: - version "3.1.3" - resolved "https://registry.yarnpkg.com/minipass/-/minipass-3.1.3.tgz#7d42ff1f39635482e15f9cdb53184deebd5815fd" - integrity sha512-Mgd2GdMVzY+x3IJ+oHnVM+KG3lA5c8tnabyJKmHSaG2kAGpudxuOf8ToDkhumF7UzME7DecbQE9uOZhNm7PuJg== - dependencies: - yallist "^4.0.0" - minizlib@^1.2.1: version "1.3.3" resolved "https://registry.yarnpkg.com/minizlib/-/minizlib-1.3.3.tgz#2290de96818a34c29551c8a8d301216bd65a861d" @@ -8371,14 +8285,6 @@ minizlib@^1.2.1: dependencies: minipass "^2.9.0" -minizlib@^2.1.1: - version "2.1.2" - resolved "https://registry.yarnpkg.com/minizlib/-/minizlib-2.1.2.tgz#e90d3466ba209b932451508a11ce3d3632145931" - integrity sha512-bAxsR8BVfj60DWXHE3u30oHzfl4G7khkSuPW+qvpd7jFRHm7dLxOjUk1EHACJ/hxLY8phGJ0YhYHZo7jil7Qdg== - dependencies: - minipass "^3.0.0" - yallist "^4.0.0" - mississippi@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/mississippi/-/mississippi-3.0.0.tgz#ea0a3291f97e0b5e8776b363d5f0a12d94c67022" @@ -9344,7 +9250,7 @@ pkg-dir@^3.0.0: dependencies: find-up "^3.0.0" -pkg-dir@^4.1.0, pkg-dir@^4.2.0: +pkg-dir@^4.2.0: version "4.2.0" resolved "https://registry.yarnpkg.com/pkg-dir/-/pkg-dir-4.2.0.tgz#f099133df7ede422e81d1d8448270eeb3e4261f3" integrity sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ== @@ -10502,7 +10408,7 @@ sort-keys@^2.0.0: dependencies: is-plain-obj "^1.0.0" -source-list-map@^2.0.0, source-list-map@^2.0.1: +source-list-map@^2.0.1: version "2.0.1" resolved "https://registry.yarnpkg.com/source-list-map/-/source-list-map-2.0.1.tgz#3993bd873bfc48479cca9ea3a547835c7c154b34" integrity sha512-qnQ7gVMxGNxsiL4lEuJwe/To8UnK7fAnmbGEEH8RpLouuKbeEm0lhbQVFIrNSuB+G7tVrAlVsZgETT5nljf+Iw== @@ -10643,13 +10549,6 @@ ssri@^6.0.0, ssri@^6.0.1: dependencies: figgy-pudding "^3.5.1" -ssri@^8.0.0: - version "8.0.0" - resolved "https://registry.yarnpkg.com/ssri/-/ssri-8.0.0.tgz#79ca74e21f8ceaeddfcb4b90143c458b8d988808" - integrity sha512-aq/pz989nxVYwn16Tsbj1TqFpD5LLrQxHf5zaHuieFV+R0Bbr4y8qUsOA45hXT/N4/9UNXTarBjnjVmjSOVaAA== - dependencies: - minipass "^3.1.1" - stack-utils@^1.0.1: version "1.0.2" resolved "https://registry.yarnpkg.com/stack-utils/-/stack-utils-1.0.2.tgz#33eba3897788558bebfc2db059dc158ec36cebb8" @@ -10963,18 +10862,6 @@ tar@^4.4.10, tar@^4.4.12, tar@^4.4.8: safe-buffer "^5.1.2" yallist "^3.0.3" -tar@^6.0.2: - version "6.0.5" - resolved "https://registry.yarnpkg.com/tar/-/tar-6.0.5.tgz#bde815086e10b39f1dcd298e89d596e1535e200f" - integrity sha512-0b4HOimQHj9nXNEAA7zWwMM91Zhhba3pspja6sQbgTpynOJf+bkjBnfybNYzbpLbnwXnbyB4LOREvlyXLkCHSg== - dependencies: - chownr "^2.0.0" - fs-minipass "^2.0.0" - minipass "^3.0.0" - minizlib "^2.1.1" - mkdirp "^1.0.3" - yallist "^4.0.0" - temp-dir@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/temp-dir/-/temp-dir-1.0.0.tgz#0a7c0ea26d3a39afa7e0ebea9c1fc0bc4daa011d" @@ -11014,22 +10901,19 @@ terminal-link@^2.0.0: ansi-escapes "^4.2.1" supports-hyperlinks "^2.0.0" -terser-webpack-plugin@^4.1.0: - version "4.2.3" - resolved "https://registry.yarnpkg.com/terser-webpack-plugin/-/terser-webpack-plugin-4.2.3.tgz#28daef4a83bd17c1db0297070adc07fc8cfc6a9a" - integrity sha512-jTgXh40RnvOrLQNgIkwEKnQ8rmHjHK4u+6UBEi+W+FPmvb+uo+chJXntKe7/3lW5mNysgSWD60KyesnhW8D6MQ== +terser-webpack-plugin@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/terser-webpack-plugin/-/terser-webpack-plugin-5.0.0.tgz#88f58d27d1c8244965c59540d3ccda1598fc958c" + integrity sha512-rf7l5a9xamIVX3enQeTl0MY2MNeZClo5yPX/tVPy22oY0nzu0b45h7JqyFi/bygqKWtzXMnml0u12mArhQPsBQ== dependencies: - cacache "^15.0.5" - find-cache-dir "^3.3.1" jest-worker "^26.5.0" p-limit "^3.0.2" schema-utils "^3.0.0" serialize-javascript "^5.0.1" source-map "^0.6.1" - terser "^5.3.4" - webpack-sources "^1.4.3" + terser "^5.3.5" -terser@^5.3.4: +terser@^5.3.5: version "5.3.5" resolved "https://registry.yarnpkg.com/terser/-/terser-5.3.5.tgz#9e080baa0568f96654621b20eb9effa440b1484e" integrity sha512-Qw3CZAMmmfU824AoGKalx+riwocSI5Cs0PoGp9RdSLfmxkmJgyBxqLBP/isDNtFyhHnitikvRMZzyVgeq+U+Tg== @@ -11713,14 +11597,6 @@ webpack-merge@^4.2.2: dependencies: lodash "^4.17.15" -webpack-sources@^1.4.3: - version "1.4.3" - resolved "https://registry.yarnpkg.com/webpack-sources/-/webpack-sources-1.4.3.tgz#eedd8ec0b928fbf1cbfe994e22d2d890f330a933" - integrity sha512-lgTS3Xhv1lCOKo7SA5TjKXMjpSM4sBjNV5+q2bqesbSPs5FjGmU6jjtBSkX9b4qW87vDIsCIlUPOEhbZrMdjeQ== - dependencies: - source-list-map "^2.0.0" - source-map "~0.6.1" - webpack-sources@^2.0.1: version "2.0.1" resolved "https://registry.yarnpkg.com/webpack-sources/-/webpack-sources-2.0.1.tgz#1467f6e692ddce91e88b8044c44347b1087bbd4f" @@ -11730,9 +11606,9 @@ webpack-sources@^2.0.1: source-map "^0.6.1" webpack@^5.1.0: - version "5.1.0" - resolved "https://registry.yarnpkg.com/webpack/-/webpack-5.1.0.tgz#7ba2fc8f587ecf0a412477d2e977b3a8818db83c" - integrity sha512-ZJDq7dpVs479C6zCSF/CwOVsqqobjCusa+BgbXCEROZMS0RcBzQzDgc+hB2YXye8Y/JOvcFwJIqsVtTyHW7t8A== + version "5.1.3" + resolved "https://registry.yarnpkg.com/webpack/-/webpack-5.1.3.tgz#a6e4fd250ef2513f94844ae5d8f7570215a2ac49" + integrity sha512-bNBF5EOpt5a6NeCBFu0+8KJtG61cVmOb2b/a5tPNRLz3OWgDpHMbmnDkaSm3nf/UQ6ufw4PWYGVsVOAi8UfL2A== dependencies: "@types/eslint-scope" "^3.7.0" "@types/estree" "^0.0.45" @@ -11755,7 +11631,7 @@ webpack@^5.1.0: pkg-dir "^4.2.0" schema-utils "^3.0.0" tapable "^2.0.0" - terser-webpack-plugin "^4.1.0" + terser-webpack-plugin "^5.0.0" watchpack "^2.0.0" webpack-sources "^2.0.1" @@ -11998,11 +11874,6 @@ yallist@^3.0.0, yallist@^3.0.2, yallist@^3.0.3: resolved "https://registry.yarnpkg.com/yallist/-/yallist-3.1.1.tgz#dbb7daf9bfd8bac9ab45ebf602b8cbad0d5d08fd" integrity sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g== -yallist@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/yallist/-/yallist-4.0.0.tgz#9bb92790d9c0effec63be73519e11a35019a3a72" - integrity sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A== - yaml@^1.10.0: version "1.10.0" resolved "https://registry.yarnpkg.com/yaml/-/yaml-1.10.0.tgz#3b593add944876077d4d683fee01081bd9fff31e" From 2e6c9571b43de0e25c36a75bc5882bf1ea252cf0 Mon Sep 17 00:00:00 2001 From: "dependabot-preview[bot]" <27856297+dependabot-preview[bot]@users.noreply.github.com> Date: Sat, 17 Oct 2020 17:22:27 +0300 Subject: [PATCH 17/21] chore(deps-dev): bump @babel/core from 7.12.0 to 7.12.3 (#1960) Bumps [@babel/core](https://github.com/babel/babel/tree/HEAD/packages/babel-core) from 7.12.0 to 7.12.3. - [Release notes](https://github.com/babel/babel/releases) - [Changelog](https://github.com/babel/babel/blob/main/CHANGELOG.md) - [Commits](https://github.com/babel/babel/commits/v7.12.3/packages/babel-core) Signed-off-by: dependabot-preview[bot] Co-authored-by: dependabot-preview[bot] <27856297+dependabot-preview[bot]@users.noreply.github.com> --- yarn.lock | 94 +++++++++++++------------------------------------------ 1 file changed, 21 insertions(+), 73 deletions(-) diff --git a/yarn.lock b/yarn.lock index 886b01523eb..c387d778126 100644 --- a/yarn.lock +++ b/yarn.lock @@ -15,18 +15,18 @@ integrity sha512-725AQupWJZ8ba0jbKceeFblZTY90McUBWMwHhkFQ9q1zKPJ95GUktljFcgcsIVwRnTnRKlcYzfiNImg5G9m6ZQ== "@babel/core@^7.1.0", "@babel/core@^7.1.6", "@babel/core@^7.11.1", "@babel/core@^7.7.5": - version "7.12.0" - resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.12.0.tgz#e42e07a086e978cdd4c61f4078d8230fb817cc86" - integrity sha512-iV7Gwg0DePKvdDZZWRTkj4MW+6/AbVWd4ZCg+zk8H1RVt5xBpUZS6vLQWwb3pyLg4BFTaGiQCPoJ4Ibmbne4fA== + version "7.12.3" + resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.12.3.tgz#1b436884e1e3bff6fb1328dc02b208759de92ad8" + integrity sha512-0qXcZYKZp3/6N2jKYVxZv0aNCsxTSVCiK72DTiTYZAu7sjg73W0/aynWjMbiGd87EQL4WyA8reiJVh92AVla9g== dependencies: "@babel/code-frame" "^7.10.4" - "@babel/generator" "^7.12.0" - "@babel/helper-module-transforms" "^7.12.0" - "@babel/helpers" "^7.10.4" - "@babel/parser" "^7.12.0" + "@babel/generator" "^7.12.1" + "@babel/helper-module-transforms" "^7.12.1" + "@babel/helpers" "^7.12.1" + "@babel/parser" "^7.12.3" "@babel/template" "^7.10.4" - "@babel/traverse" "^7.12.0" - "@babel/types" "^7.12.0" + "@babel/traverse" "^7.12.1" + "@babel/types" "^7.12.1" convert-source-map "^1.7.0" debug "^4.1.0" gensync "^1.0.0-beta.1" @@ -36,15 +36,6 @@ semver "^5.4.1" source-map "^0.5.0" -"@babel/generator@^7.12.0": - version "7.12.0" - resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.12.0.tgz#91a45f1c18ca8d895a35a04da1a4cf7ea3f37f98" - integrity sha512-8lnf4QcyiQMf5XQp47BltuMTocsOh6P0z/vueEh8GzhmWWlDbdvOoI5Ziddg0XYhmnx35HyByUW51/9NprF8cA== - dependencies: - "@babel/types" "^7.12.0" - jsesc "^2.5.1" - source-map "^0.5.0" - "@babel/generator@^7.12.1": version "7.12.1" resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.12.1.tgz#0d70be32bdaa03d7c51c8597dda76e0df1f15468" @@ -164,28 +155,13 @@ dependencies: "@babel/types" "^7.12.1" -"@babel/helper-module-imports@^7.10.4", "@babel/helper-module-imports@^7.12.1": +"@babel/helper-module-imports@^7.12.1": version "7.12.1" resolved "https://registry.yarnpkg.com/@babel/helper-module-imports/-/helper-module-imports-7.12.1.tgz#1644c01591a15a2f084dd6d092d9430eb1d1216c" integrity sha512-ZeC1TlMSvikvJNy1v/wPIazCu3NdOwgYZLIkmIyAsGhqkNpiDoQQRmaCK8YP4Pq3GPTLPV9WXaPCJKvx06JxKA== dependencies: "@babel/types" "^7.12.1" -"@babel/helper-module-transforms@^7.12.0": - version "7.12.0" - resolved "https://registry.yarnpkg.com/@babel/helper-module-transforms/-/helper-module-transforms-7.12.0.tgz#8ac7d9e8716f94549a42e577c5429391950e33f3" - integrity sha512-1ZTMoCiLSzTJLbq7mSaTHki4oIrBIf/dUbzdhwTrvtMU3ZNVKwQmGae3gSiqppo7G8HAgnXmc43rfEaD8yYLLQ== - dependencies: - "@babel/helper-module-imports" "^7.10.4" - "@babel/helper-replace-supers" "^7.12.0" - "@babel/helper-simple-access" "^7.10.4" - "@babel/helper-split-export-declaration" "^7.11.0" - "@babel/helper-validator-identifier" "^7.10.4" - "@babel/template" "^7.10.4" - "@babel/traverse" "^7.12.0" - "@babel/types" "^7.12.0" - lodash "^4.17.19" - "@babel/helper-module-transforms@^7.12.1": version "7.12.1" resolved "https://registry.yarnpkg.com/@babel/helper-module-transforms/-/helper-module-transforms-7.12.1.tgz#7954fec71f5b32c48e4b303b437c34453fd7247c" @@ -249,14 +225,6 @@ "@babel/traverse" "^7.12.1" "@babel/types" "^7.12.1" -"@babel/helper-simple-access@^7.10.4": - version "7.10.4" - resolved "https://registry.yarnpkg.com/@babel/helper-simple-access/-/helper-simple-access-7.10.4.tgz#0f5ccda2945277a2a7a2d3a821e15395edcf3461" - integrity sha512-0fMy72ej/VEvF8ULmX6yb5MtHG4uH4Dbd6I/aHDb/JVg0bbivwt9Wg+h3uMvX+QSFtwr5MeItvazbrc4jtRAXw== - dependencies: - "@babel/template" "^7.10.4" - "@babel/types" "^7.10.4" - "@babel/helper-simple-access@^7.12.1": version "7.12.1" resolved "https://registry.yarnpkg.com/@babel/helper-simple-access/-/helper-simple-access-7.12.1.tgz#32427e5aa61547d38eb1e6eaf5fd1426fdad9136" @@ -298,14 +266,14 @@ "@babel/traverse" "^7.10.4" "@babel/types" "^7.10.4" -"@babel/helpers@^7.10.4": - version "7.10.4" - resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.10.4.tgz#2abeb0d721aff7c0a97376b9e1f6f65d7a475044" - integrity sha512-L2gX/XeUONeEbI78dXSrJzGdz4GQ+ZTA/aazfUsFaWjSe95kiCuOZ5HsXvkiw3iwF+mFHSRUfJU8t6YavocdXA== +"@babel/helpers@^7.12.1": + version "7.12.1" + resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.12.1.tgz#8a8261c1d438ec18cb890434df4ec768734c1e79" + integrity sha512-9JoDSBGoWtmbay98efmT2+mySkwjzeFeAL9BuWNoVQpkPFQF8SIIFUfY5os9u8wVzglzoiPRSW7cuJmBDUt43g== dependencies: "@babel/template" "^7.10.4" - "@babel/traverse" "^7.10.4" - "@babel/types" "^7.10.4" + "@babel/traverse" "^7.12.1" + "@babel/types" "^7.12.1" "@babel/highlight@^7.10.4": version "7.10.4" @@ -316,15 +284,10 @@ chalk "^2.0.0" js-tokens "^4.0.0" -"@babel/parser@^7.1.0", "@babel/parser@^7.1.6", "@babel/parser@^7.10.4", "@babel/parser@^7.12.0": - version "7.12.0" - resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.12.0.tgz#2ad388f3960045b22f9b7d4bf85e80b15a1c9e3a" - integrity sha512-dYmySMYnlus2jwl7JnnajAj11obRStZoW9cG04wh4ZuhozDn11tDUrhHcUZ9iuNHqALAhh60XqNaYXpvuuE/Gg== - -"@babel/parser@^7.12.1": - version "7.12.1" - resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.12.1.tgz#dc03f543a0ed51396d4081463df66ecb3a2efa53" - integrity sha512-xjZsx0sBjb6J2+QkoHI69UeD2EWbsyUW0WyZKOoJ9sBrQLxfOApWEefR9dIVOYJVj97VRXnLKLDvnn3dPDNgww== +"@babel/parser@^7.1.0", "@babel/parser@^7.1.6", "@babel/parser@^7.10.4", "@babel/parser@^7.12.1", "@babel/parser@^7.12.3": + version "7.12.3" + resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.12.3.tgz#a305415ebe7a6c7023b40b5122a0662d928334cd" + integrity sha512-kFsOS0IbsuhO5ojF8Hc8z/8vEIOkylVBrjiZUbLTE3XFe0Qi+uu6HjzQixkFaqr0ZPAMZcBVxEwmsnsLPZ2Xsw== "@babel/plugin-proposal-async-generator-functions@^7.12.1": version "7.12.1" @@ -938,22 +901,7 @@ "@babel/parser" "^7.10.4" "@babel/types" "^7.10.4" -"@babel/traverse@^7.1.0", "@babel/traverse@^7.10.4", "@babel/traverse@^7.12.0": - version "7.12.0" - resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.12.0.tgz#ed31953d6e708cdd34443de2fcdb55f72cdfb266" - integrity sha512-ZU9e79xpOukCNPkQ1UzR4gJKCruGckr6edd8v8lmKpSk8iakgUIvb+5ZtaKKV9f7O+x5r+xbMDDIbzVpUoiIuw== - dependencies: - "@babel/code-frame" "^7.10.4" - "@babel/generator" "^7.12.0" - "@babel/helper-function-name" "^7.10.4" - "@babel/helper-split-export-declaration" "^7.11.0" - "@babel/parser" "^7.12.0" - "@babel/types" "^7.12.0" - debug "^4.1.0" - globals "^11.1.0" - lodash "^4.17.19" - -"@babel/traverse@^7.12.1": +"@babel/traverse@^7.1.0", "@babel/traverse@^7.10.4", "@babel/traverse@^7.12.0", "@babel/traverse@^7.12.1": version "7.12.1" resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.12.1.tgz#941395e0c5cc86d5d3e75caa095d3924526f0c1e" integrity sha512-MA3WPoRt1ZHo2ZmoGKNqi20YnPt0B1S0GTZEPhhd+hw2KGUzBlHuVunj6K4sNuK+reEvyiPwtp0cpaqLzJDmAw== From d8674ce689bb3e22773563eed4c2c6e5d1120706 Mon Sep 17 00:00:00 2001 From: "dependabot-preview[bot]" <27856297+dependabot-preview[bot]@users.noreply.github.com> Date: Sat, 17 Oct 2020 17:36:36 +0300 Subject: [PATCH 18/21] chore(deps-dev): bump lint-staged from 10.4.0 to 10.4.2 (#1961) Bumps [lint-staged](https://github.com/okonet/lint-staged) from 10.4.0 to 10.4.2. - [Release notes](https://github.com/okonet/lint-staged/releases) - [Commits](https://github.com/okonet/lint-staged/compare/v10.4.0...v10.4.2) Signed-off-by: dependabot-preview[bot] Co-authored-by: dependabot-preview[bot] <27856297+dependabot-preview[bot]@users.noreply.github.com> --- yarn.lock | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/yarn.lock b/yarn.lock index c387d778126..f23c5affa7e 100644 --- a/yarn.lock +++ b/yarn.lock @@ -7583,9 +7583,9 @@ lines-and-columns@^1.1.6: integrity sha1-HADHQ7QzzQpOgHWPe2SldEDZ/wA= lint-staged@^10.2.11: - version "10.4.0" - resolved "https://registry.yarnpkg.com/lint-staged/-/lint-staged-10.4.0.tgz#d18628f737328e0bbbf87d183f4020930e9a984e" - integrity sha512-uaiX4U5yERUSiIEQc329vhCTDDwUcSvKdRLsNomkYLRzijk3v8V9GWm2Nz0RMVB87VcuzLvtgy6OsjoH++QHIg== + version "10.4.2" + resolved "https://registry.yarnpkg.com/lint-staged/-/lint-staged-10.4.2.tgz#9fee4635c4b5ddb845746f237c6d43494ccd21c1" + integrity sha512-OLCA9K1hS+Sl179SO6kX0JtnsaKj/MZalEhUj5yAgXsb63qPI/Gfn6Ua1KuZdbfkZNEu3/n5C/obYCu70IMt9g== dependencies: chalk "^4.1.0" cli-truncate "^2.1.0" From fa739a6de3e4b97fc821139d1f2af99e8ed8c66c Mon Sep 17 00:00:00 2001 From: "dependabot-preview[bot]" <27856297+dependabot-preview[bot]@users.noreply.github.com> Date: Sat, 17 Oct 2020 17:36:47 +0300 Subject: [PATCH 19/21] chore(deps-dev): bump @types/yeoman-generator from 4.11.2 to 4.11.3 (#1962) Bumps [@types/yeoman-generator](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/yeoman-generator) from 4.11.2 to 4.11.3. - [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases) - [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/yeoman-generator) Signed-off-by: dependabot-preview[bot] Co-authored-by: dependabot-preview[bot] <27856297+dependabot-preview[bot]@users.noreply.github.com> --- yarn.lock | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/yarn.lock b/yarn.lock index f23c5affa7e..171b210c31b 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2541,9 +2541,9 @@ rxjs ">=6.4.0" "@types/yeoman-generator@*", "@types/yeoman-generator@^4.11.2": - version "4.11.2" - resolved "https://registry.yarnpkg.com/@types/yeoman-generator/-/yeoman-generator-4.11.2.tgz#c46b294a46fc8b3a5c46dff8a8712eaad02a7665" - integrity sha512-9QYsdVTLlUHg+aiDT1uqWf63oQXedCT4ty5L4KC4nd8gsp1Ef9UdXxpcc4yBU9ciRf4DqE1pViqxc6LTSosdsg== + version "4.11.3" + resolved "https://registry.yarnpkg.com/@types/yeoman-generator/-/yeoman-generator-4.11.3.tgz#3b4c0040cf0c28237dd9f535a15c620d3f68c5f4" + integrity sha512-bZRBRahUEs10YhPC4zTKwX5h1mfoFT4Qvav+z0WyT37SgKK9IgIozn8/k6IF9h9PNkxpAhFcER5llwdzCyFZnw== dependencies: "@types/debug" "*" "@types/ejs" "*" From 90b45835d71620dee9539b9c024d56e84150f6aa Mon Sep 17 00:00:00 2001 From: "dependabot-preview[bot]" <27856297+dependabot-preview[bot]@users.noreply.github.com> Date: Sat, 17 Oct 2020 17:36:55 +0300 Subject: [PATCH 20/21] chore(deps-dev): bump @types/yeoman-test from 2.0.4 to 2.0.5 (#1963) Bumps [@types/yeoman-test](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/yeoman-test) from 2.0.4 to 2.0.5. - [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases) - [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/yeoman-test) Signed-off-by: dependabot-preview[bot] Co-authored-by: dependabot-preview[bot] <27856297+dependabot-preview[bot]@users.noreply.github.com> --- yarn.lock | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/yarn.lock b/yarn.lock index 171b210c31b..7568463a40f 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2553,9 +2553,9 @@ rxjs ">=6.4.0" "@types/yeoman-test@^2.0.3": - version "2.0.4" - resolved "https://registry.yarnpkg.com/@types/yeoman-test/-/yeoman-test-2.0.4.tgz#4c85e8cf95490411351e1bad57d1a2d6e71a5300" - integrity sha512-yUj8MGfEDFwhvUVy0JYdlYc+LMmx833am5iWcif2CYxh7L3qPmb+bMg+079i37WuGvvL8bifeDP+9ev4LDVAXA== + version "2.0.5" + resolved "https://registry.yarnpkg.com/@types/yeoman-test/-/yeoman-test-2.0.5.tgz#91131a779237b599e477de555b607a2e850b4c71" + integrity sha512-BYJFfJ8o341YnOOkzm0Qw3v3C8t/3WSMXTYUepSa7IIBG+PFU14/v+X90llzaNBYjpvDCjhj16H7GY2R874IiQ== dependencies: "@types/yeoman-generator" "*" From e3fa60b1c58726ec208b81149c17144613052874 Mon Sep 17 00:00:00 2001 From: evilebottnawi Date: Mon, 19 Oct 2020 15:59:25 +0300 Subject: [PATCH 21/21] chore(release): publish new version - @webpack-cli/generate-loader@1.0.2 - @webpack-cli/generate-plugin@1.0.2 - @webpack-cli/generators@1.0.2 - @webpack-cli/info@1.0.2 - @webpack-cli/init@1.0.2 - @webpack-cli/migrate@1.0.2 - @webpack-cli/utils@1.0.2 - webpack-cli@4.1.0 - @webpack-cli/webpack-scaffold@1.0.2 --- packages/generate-loader/CHANGELOG.md | 4 ++++ packages/generate-loader/package.json | 4 ++-- packages/generate-plugin/CHANGELOG.md | 4 ++++ packages/generate-plugin/package.json | 4 ++-- packages/generators/CHANGELOG.md | 6 ++++++ packages/generators/package.json | 6 +++--- packages/info/CHANGELOG.md | 4 ++++ packages/info/package.json | 2 +- packages/init/CHANGELOG.md | 4 ++++ packages/init/package.json | 6 +++--- packages/migrate/CHANGELOG.md | 4 ++++ packages/migrate/package.json | 4 ++-- packages/utils/CHANGELOG.md | 4 ++++ packages/utils/package.json | 2 +- packages/webpack-cli/CHANGELOG.md | 17 +++++++++++++++++ packages/webpack-cli/package.json | 4 ++-- packages/webpack-scaffold/CHANGELOG.md | 6 ++++++ packages/webpack-scaffold/package.json | 2 +- 18 files changed, 70 insertions(+), 17 deletions(-) diff --git a/packages/generate-loader/CHANGELOG.md b/packages/generate-loader/CHANGELOG.md index a747463170d..f6f137046de 100644 --- a/packages/generate-loader/CHANGELOG.md +++ b/packages/generate-loader/CHANGELOG.md @@ -3,6 +3,10 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +## [1.0.2](https://github.com/webpack/webpack-cli/compare/@webpack-cli/generate-loader@1.0.1...@webpack-cli/generate-loader@1.0.2) (2020-10-19) + +**Note:** Version bump only for package @webpack-cli/generate-loader + ## [1.0.1](https://github.com/webpack/webpack-cli/compare/@webpack-cli/generate-loader@1.0.1-rc.1...@webpack-cli/generate-loader@1.0.1) (2020-10-10) ### Bug Fixes diff --git a/packages/generate-loader/package.json b/packages/generate-loader/package.json index 015d836d9dd..69b6e741566 100644 --- a/packages/generate-loader/package.json +++ b/packages/generate-loader/package.json @@ -1,6 +1,6 @@ { "name": "@webpack-cli/generate-loader", - "version": "1.0.1", + "version": "1.0.2", "description": "A scaffold for generating a loader", "main": "lib/index.js", "types": "lib/index.d.ts", @@ -18,7 +18,7 @@ "templates" ], "dependencies": { - "@webpack-cli/generators": "^1.0.1", + "@webpack-cli/generators": "^1.0.2", "yeoman-environment": "^2.10.3" }, "peerDependencies": { diff --git a/packages/generate-plugin/CHANGELOG.md b/packages/generate-plugin/CHANGELOG.md index b0a61771178..3021a3e02a7 100644 --- a/packages/generate-plugin/CHANGELOG.md +++ b/packages/generate-plugin/CHANGELOG.md @@ -3,6 +3,10 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +## [1.0.2](https://github.com/webpack/webpack-cli/compare/@webpack-cli/generate-plugin@1.0.1...@webpack-cli/generate-plugin@1.0.2) (2020-10-19) + +**Note:** Version bump only for package @webpack-cli/generate-plugin + ## [1.0.1](https://github.com/webpack/webpack-cli/compare/@webpack-cli/generate-plugin@1.0.1-rc.1...@webpack-cli/generate-plugin@1.0.1) (2020-10-10) ### Bug Fixes diff --git a/packages/generate-plugin/package.json b/packages/generate-plugin/package.json index 7344e4ef449..1dffd191dd5 100644 --- a/packages/generate-plugin/package.json +++ b/packages/generate-plugin/package.json @@ -1,6 +1,6 @@ { "name": "@webpack-cli/generate-plugin", - "version": "1.0.1", + "version": "1.0.2", "description": "A scaffold for generating a plugin", "main": "lib/index.js", "types": "lib/index.d.ts", @@ -18,7 +18,7 @@ "templates" ], "dependencies": { - "@webpack-cli/generators": "^1.0.1", + "@webpack-cli/generators": "^1.0.2", "yeoman-environment": "^2.10.3" }, "peerDependencies": { diff --git a/packages/generators/CHANGELOG.md b/packages/generators/CHANGELOG.md index 6fc991b24ca..609dd559028 100644 --- a/packages/generators/CHANGELOG.md +++ b/packages/generators/CHANGELOG.md @@ -3,6 +3,12 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +## [1.0.2](https://github.com/webpack/webpack-cli/compare/@webpack-cli/generators@1.0.1...@webpack-cli/generators@1.0.2) (2020-10-19) + +### Bug Fixes + +- output stacktrace on errors ([#1949](https://github.com/webpack/webpack-cli/issues/1949)) ([9ba9d6f](https://github.com/webpack/webpack-cli/commit/9ba9d6f460fb25fb79d52f4360239b8c4b471451)) + ## [1.0.1](https://github.com/webpack/webpack-cli/compare/@webpack-cli/generators@1.0.1-rc.1...@webpack-cli/generators@1.0.1) (2020-10-10) ### Bug Fixes diff --git a/packages/generators/package.json b/packages/generators/package.json index ea2a7c562a5..1fb24fe7d30 100644 --- a/packages/generators/package.json +++ b/packages/generators/package.json @@ -1,6 +1,6 @@ { "name": "@webpack-cli/generators", - "version": "1.0.1", + "version": "1.0.2", "description": "Webpack-CLI generators", "main": "lib/index.js", "types": "lib/index.d.ts", @@ -14,8 +14,8 @@ "templates" ], "dependencies": { - "@webpack-cli/utils": "^1.0.1", - "@webpack-cli/webpack-scaffold": "^1.0.1", + "@webpack-cli/utils": "^1.0.2", + "@webpack-cli/webpack-scaffold": "^1.0.2", "colorette": "^1.2.1", "log-symbols": "^4.0.0", "mkdirp": "^1.0.4", diff --git a/packages/info/CHANGELOG.md b/packages/info/CHANGELOG.md index 470ed5bac1f..17a07d5a558 100644 --- a/packages/info/CHANGELOG.md +++ b/packages/info/CHANGELOG.md @@ -3,6 +3,10 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +## [1.0.2](https://github.com/webpack/webpack-cli/compare/@webpack-cli/info@1.0.1...@webpack-cli/info@1.0.2) (2020-10-19) + +**Note:** Version bump only for package @webpack-cli/info + ## [1.0.1](https://github.com/webpack/webpack-cli/compare/@webpack-cli/info@1.0.1-rc.1...@webpack-cli/info@1.0.1) (2020-10-10) **Note:** Version bump only for package @webpack-cli/info diff --git a/packages/info/package.json b/packages/info/package.json index 66fe678814a..c58d97bdd4d 100644 --- a/packages/info/package.json +++ b/packages/info/package.json @@ -1,6 +1,6 @@ { "name": "@webpack-cli/info", - "version": "1.0.1", + "version": "1.0.2", "description": "Outputs info about system and webpack config", "main": "lib/index.js", "types": "lib/index.d.ts", diff --git a/packages/init/CHANGELOG.md b/packages/init/CHANGELOG.md index 01069257808..2876ca46540 100644 --- a/packages/init/CHANGELOG.md +++ b/packages/init/CHANGELOG.md @@ -3,6 +3,10 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +## [1.0.2](https://github.com/webpack/webpack-cli/compare/@webpack-cli/init@1.0.1...@webpack-cli/init@1.0.2) (2020-10-19) + +**Note:** Version bump only for package @webpack-cli/init + ## [1.0.1](https://github.com/webpack/webpack-cli/compare/@webpack-cli/init@1.0.1-rc.1...@webpack-cli/init@1.0.1) (2020-10-10) **Note:** Version bump only for package @webpack-cli/init diff --git a/packages/init/package.json b/packages/init/package.json index bb20ca69297..9d95ee69556 100644 --- a/packages/init/package.json +++ b/packages/init/package.json @@ -1,6 +1,6 @@ { "name": "@webpack-cli/init", - "version": "1.0.1", + "version": "1.0.2", "description": "init command for webpack-cli", "main": "lib/index.js", "types": "lib/index.d.ts", @@ -12,8 +12,8 @@ "lib" ], "dependencies": { - "@webpack-cli/generators": "^1.0.1", - "@webpack-cli/utils": "^1.0.1" + "@webpack-cli/generators": "^1.0.2", + "@webpack-cli/utils": "^1.0.2" }, "peerDependencies": { "webpack": "4.x.x || 5.x.x", diff --git a/packages/migrate/CHANGELOG.md b/packages/migrate/CHANGELOG.md index 1a534acbd28..1896dad1798 100644 --- a/packages/migrate/CHANGELOG.md +++ b/packages/migrate/CHANGELOG.md @@ -3,6 +3,10 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +## [1.0.2](https://github.com/webpack/webpack-cli/compare/@webpack-cli/migrate@1.0.1...@webpack-cli/migrate@1.0.2) (2020-10-19) + +**Note:** Version bump only for package @webpack-cli/migrate + ## [1.0.1](https://github.com/webpack/webpack-cli/compare/@webpack-cli/migrate@1.0.1-rc.1...@webpack-cli/migrate@1.0.1) (2020-10-10) **Note:** Version bump only for package @webpack-cli/migrate diff --git a/packages/migrate/package.json b/packages/migrate/package.json index fd196ef163c..705eacf544d 100644 --- a/packages/migrate/package.json +++ b/packages/migrate/package.json @@ -1,6 +1,6 @@ { "name": "@webpack-cli/migrate", - "version": "1.0.1", + "version": "1.0.2", "description": "Migrate command for webpack-cli", "main": "lib/index.js", "types": "lib/index.d.ts", @@ -12,7 +12,7 @@ "lib" ], "dependencies": { - "@webpack-cli/utils": "^1.0.1", + "@webpack-cli/utils": "^1.0.2", "colorette": "^1.2.1", "diff": "^4.0.2", "inquirer": "^7.1.0", diff --git a/packages/utils/CHANGELOG.md b/packages/utils/CHANGELOG.md index 91c8199e7b8..6d302c95d4d 100644 --- a/packages/utils/CHANGELOG.md +++ b/packages/utils/CHANGELOG.md @@ -3,6 +3,10 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +## [1.0.2](https://github.com/webpack/webpack-cli/compare/@webpack-cli/utils@1.0.1...@webpack-cli/utils@1.0.2) (2020-10-19) + +**Note:** Version bump only for package @webpack-cli/utils + ## [1.0.1](https://github.com/webpack/webpack-cli/compare/@webpack-cli/utils@1.0.1-rc.1...@webpack-cli/utils@1.0.1) (2020-10-10) ### Bug Fixes diff --git a/packages/utils/package.json b/packages/utils/package.json index 5022b06afe0..26ad2dc1b04 100644 --- a/packages/utils/package.json +++ b/packages/utils/package.json @@ -1,6 +1,6 @@ { "name": "@webpack-cli/utils", - "version": "1.0.1", + "version": "1.0.2", "description": "webpack-cli utility files", "main": "lib/index.js", "types": "lib/index.d.ts", diff --git a/packages/webpack-cli/CHANGELOG.md b/packages/webpack-cli/CHANGELOG.md index 71a62eadcb6..a1a2772cbee 100644 --- a/packages/webpack-cli/CHANGELOG.md +++ b/packages/webpack-cli/CHANGELOG.md @@ -3,6 +3,23 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [4.1.0](https://github.com/webpack/webpack-cli/compare/webpack-cli@4.0.0...webpack-cli@4.1.0) (2020-10-19) + +### Bug Fixes + +- avoid unnecessary stringify ([#1920](https://github.com/webpack/webpack-cli/issues/1920)) ([5ef1e7b](https://github.com/webpack/webpack-cli/commit/5ef1e7b074390406b76cb3e25dd90f045e1bd8a2)) +- colored output ([#1944](https://github.com/webpack/webpack-cli/issues/1944)) ([2bbbb14](https://github.com/webpack/webpack-cli/commit/2bbbb14ca9a404f2205c0f5a5515e73832ee6173)) +- move init command to separate package ([#1950](https://github.com/webpack/webpack-cli/issues/1950)) ([92ad475](https://github.com/webpack/webpack-cli/commit/92ad475d4b9606b5db7c31dd3666658301c95597)) +- output stacktrace on errors ([#1949](https://github.com/webpack/webpack-cli/issues/1949)) ([9ba9d6f](https://github.com/webpack/webpack-cli/commit/9ba9d6f460fb25fb79d52f4360239b8c4b471451)) +- run CLI after webpack installation ([#1951](https://github.com/webpack/webpack-cli/issues/1951)) ([564279e](https://github.com/webpack/webpack-cli/commit/564279e5b634a399647bcdb21449e5e6a7f0637e)) +- support any config name ([#1926](https://github.com/webpack/webpack-cli/issues/1926)) ([6f95b26](https://github.com/webpack/webpack-cli/commit/6f95b267bf6a3a3e71360f4de176a4ebbec3afa1)) +- support array of functions and promises ([#1946](https://github.com/webpack/webpack-cli/issues/1946)) ([2ace39b](https://github.com/webpack/webpack-cli/commit/2ace39b06117f558c0d8528cea9248253cbdf593)) +- watch mode and options ([#1931](https://github.com/webpack/webpack-cli/issues/1931)) ([258219a](https://github.com/webpack/webpack-cli/commit/258219a3bb606b228636e6373a3d20413c1f660e)) + +### Features + +- allow passing strings in env flag ([#1939](https://github.com/webpack/webpack-cli/issues/1939)) ([cc081a2](https://github.com/webpack/webpack-cli/commit/cc081a256181e34137a89d2e9d37b04280b3f180)) + # [4.0.0](https://github.com/webpack/webpack-cli/compare/webpack-cli@4.0.0-rc.1...webpack-cli@4.0.0) (2020-10-10) ### Bug Fixes diff --git a/packages/webpack-cli/package.json b/packages/webpack-cli/package.json index f162b699a1f..d6024055b6a 100644 --- a/packages/webpack-cli/package.json +++ b/packages/webpack-cli/package.json @@ -1,6 +1,6 @@ { "name": "webpack-cli", - "version": "4.0.0", + "version": "4.1.0", "description": "CLI for webpack & friends", "license": "MIT", "repository": { @@ -27,7 +27,7 @@ "lib" ], "dependencies": { - "@webpack-cli/info": "^1.0.1", + "@webpack-cli/info": "^1.0.2", "@webpack-cli/serve": "^1.0.1", "ansi-escapes": "^4.3.1", "colorette": "^1.2.1", diff --git a/packages/webpack-scaffold/CHANGELOG.md b/packages/webpack-scaffold/CHANGELOG.md index fc7e3d971af..a2c8f691a00 100644 --- a/packages/webpack-scaffold/CHANGELOG.md +++ b/packages/webpack-scaffold/CHANGELOG.md @@ -3,6 +3,12 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +## [1.0.2](https://github.com/webpack/webpack-cli/compare/@webpack-cli/webpack-scaffold@1.0.1...@webpack-cli/webpack-scaffold@1.0.2) (2020-10-19) + +### Bug Fixes + +- support array of functions and promises ([#1946](https://github.com/webpack/webpack-cli/issues/1946)) ([2ace39b](https://github.com/webpack/webpack-cli/commit/2ace39b06117f558c0d8528cea9248253cbdf593)) + ## [1.0.1](https://github.com/webpack/webpack-cli/compare/@webpack-cli/webpack-scaffold@1.0.1-rc.1...@webpack-cli/webpack-scaffold@1.0.1) (2020-10-10) ### Bug Fixes diff --git a/packages/webpack-scaffold/package.json b/packages/webpack-scaffold/package.json index 8f7f4c9180a..76dee7085f2 100644 --- a/packages/webpack-scaffold/package.json +++ b/packages/webpack-scaffold/package.json @@ -1,6 +1,6 @@ { "name": "@webpack-cli/webpack-scaffold", - "version": "1.0.1", + "version": "1.0.2", "description": "Utility files for webpack-scaffold", "main": "lib/index.js", "types": "lib/index.d.ts",