From 8471ac24dde3d7e874995f8ab4814cc94b4179e1 Mon Sep 17 00:00:00 2001 From: Tobias Koppers Date: Fri, 16 Apr 2021 17:24:47 +0200 Subject: [PATCH 01/30] feat: add experimental support for `importModule`, improve perfomance (#737) --- .github/workflows/nodejs.yml | 70 + README.md | 27 +- package-lock.json | 56 +- package.json | 2 +- src/index.js | 22 +- src/loader-options.json | 3 + src/loader.js | 273 ++-- src/plugin-options.json | 4 + test/TestCases.test.js | 22 +- ...idate-loader-options.test.js.snap.webpack4 | 16 +- ...idate-loader-options.test.js.snap.webpack5 | 16 +- ...idate-plugin-options.test.js.snap.webpack4 | 16 +- ...idate-plugin-options.test.js.snap.webpack5 | 16 +- ...auxiliaryAssets-815babffe97b00a1f30b.woff2 | 1 + .../auxiliaryAssets-a0de923c946d4ccb38b0.ttf | 1 + .../auxiliaryAssets-d4c409dfe110747b1763.woff | 1 + test/cases/auxiliaryAssets/test.filter.js | 3 +- .../webpack-5-importModule/0.async.css | 4 + .../expected/webpack-5-importModule/main.css | 4 + .../0.bb36c53eabba881e0081.css | 4 + .../expected/webpack-5-importModule/async.js | 13 + .../bb36c53eabba881e0081.css | 4 + .../expected/webpack-5-importModule/main.js | 347 ++++ .../webpack-5-importModule/0.async.css | 4 + .../expected/webpack-5-importModule/main.css | 4 + .../15a667c7583f9b9ec41d.css | 8 + .../ffa19619c12a79d133f4.css | 4 + .../1.main.a7263f8f763dcf4051bc.css | 4 + .../2.main.a85c9b6a9dce223262b9.css | 4 + .../webpack-5-importModule/common.css | 8 + .../expected/webpack-5-importModule/common.js | 171 ++ .../webpack-5-importModule/entry1.css | 8 + .../expected/webpack-5-importModule/entry1.js | 51 + .../webpack-5-importModule/common.css | 4 + .../expected/webpack-5-importModule/common.js | 153 ++ .../webpack-5-importModule/entry1.css | 4 + .../expected/webpack-5-importModule/entry1.js | 30 + .../expected/webpack-5-importModule/main.css | 6 + .../webpack-5-importModule/main.css.map | 1 + .../expected/webpack-5-importModule/main.css | 4 + .../expected/webpack-5-importModule/main.css | 12 + .../expected/webpack-5-importModule/main.js | 93 ++ .../expected/webpack-5-importModule/main.css | 12 + .../expected/webpack-5-importModule/main.js | 38 + .../expected/webpack-5-importModule/main.css | 12 + .../expected/webpack-5-importModule/main.js | 89 + .../webpack-5-importModule/0.main.css | 4 + .../expected/webpack-5-importModule/main.css | 4 + .../expected/webpack-5-importModule/main.css | 24 + .../expected/webpack-5-importModule/main.js | 1454 +++++++++++++++++ test/cases/hmr/expected/webpack-5/main.js | 7 +- .../expected/webpack-5-importModule/1.css | 4 + .../expected/webpack-5-importModule/1.js | 12 + .../expected/webpack-5-importModule/main.js | 331 ++++ .../expected/webpack-5-importModule/1.css | 4 + .../expected/webpack-5-importModule/1.js | 12 + .../expected/webpack-5-importModule/main.js | 326 ++++ .../expected/webpack-5-importModule/1.css | 4 + .../expected/webpack-5-importModule/1.js | 12 + .../expected/webpack-5-importModule/main.js | 325 ++++ .../style.229314c8bccc7c31e2f3.1.css | 4 + .../style.334e3250146c69e0e055.2.css | 5 + .../main.a7263f8f763dcf4051bc.css | 4 + .../webpack-5-importModule/runtime~main.js | 323 ++++ .../expected/webpack-5-importModule/2.css | 4 + .../expected/webpack-5-importModule/2.js | 1 + test/helpers/snapshotResolver.js | 8 +- test/manual/webpack.config.js | 6 + 68 files changed, 4328 insertions(+), 199 deletions(-) create mode 100644 test/cases/auxiliaryAssets/expected/webpack-5-importModule/auxiliaryAssets-815babffe97b00a1f30b.woff2 create mode 100644 test/cases/auxiliaryAssets/expected/webpack-5-importModule/auxiliaryAssets-a0de923c946d4ccb38b0.ttf create mode 100644 test/cases/auxiliaryAssets/expected/webpack-5-importModule/auxiliaryAssets-d4c409dfe110747b1763.woff create mode 100644 test/cases/chunkFilename-as-function/expected/webpack-5-importModule/0.async.css create mode 100644 test/cases/chunkFilename-as-function/expected/webpack-5-importModule/main.css create mode 100644 test/cases/chunkFilename-fullhash/expected/webpack-5-importModule/0.bb36c53eabba881e0081.css create mode 100644 test/cases/chunkFilename-fullhash/expected/webpack-5-importModule/async.js create mode 100644 test/cases/chunkFilename-fullhash/expected/webpack-5-importModule/bb36c53eabba881e0081.css create mode 100644 test/cases/chunkFilename-fullhash/expected/webpack-5-importModule/main.js create mode 100644 test/cases/chunkFilename/expected/webpack-5-importModule/0.async.css create mode 100644 test/cases/chunkFilename/expected/webpack-5-importModule/main.css create mode 100644 test/cases/contenthash-multiple-entries/expected/webpack-5-importModule/15a667c7583f9b9ec41d.css create mode 100644 test/cases/contenthash-multiple-entries/expected/webpack-5-importModule/ffa19619c12a79d133f4.css create mode 100644 test/cases/contenthash/expected/webpack-5-importModule/1.main.a7263f8f763dcf4051bc.css create mode 100644 test/cases/contenthash/expected/webpack-5-importModule/2.main.a85c9b6a9dce223262b9.css create mode 100644 test/cases/dependOn-multiple-files-per-entry/expected/webpack-5-importModule/common.css create mode 100644 test/cases/dependOn-multiple-files-per-entry/expected/webpack-5-importModule/common.js create mode 100644 test/cases/dependOn-multiple-files-per-entry/expected/webpack-5-importModule/entry1.css create mode 100644 test/cases/dependOn-multiple-files-per-entry/expected/webpack-5-importModule/entry1.js create mode 100644 test/cases/dependOn/expected/webpack-5-importModule/common.css create mode 100644 test/cases/dependOn/expected/webpack-5-importModule/common.js create mode 100644 test/cases/dependOn/expected/webpack-5-importModule/entry1.css create mode 100644 test/cases/dependOn/expected/webpack-5-importModule/entry1.js create mode 100644 test/cases/devtool-source-map-from-loaders/expected/webpack-5-importModule/main.css create mode 100644 test/cases/devtool-source-map-from-loaders/expected/webpack-5-importModule/main.css.map create mode 100644 test/cases/devtool-source-map-no-source-maps-from-loaders/expected/webpack-5-importModule/main.css create mode 100644 test/cases/es-module-concatenation-modules/expected/webpack-5-importModule/main.css create mode 100644 test/cases/es-module-concatenation-modules/expected/webpack-5-importModule/main.js create mode 100644 test/cases/es-module-concatenation/expected/webpack-5-importModule/main.css create mode 100644 test/cases/es-module-concatenation/expected/webpack-5-importModule/main.js create mode 100644 test/cases/es-named-export/expected/webpack-5-importModule/main.css create mode 100644 test/cases/es-named-export/expected/webpack-5-importModule/main.js create mode 100644 test/cases/filename-without-template/expected/webpack-5-importModule/0.main.css create mode 100644 test/cases/filename-without-template/expected/webpack-5-importModule/main.css create mode 100644 test/cases/hmr/expected/webpack-5-importModule/main.css create mode 100644 test/cases/hmr/expected/webpack-5-importModule/main.js create mode 100644 test/cases/insert-function/expected/webpack-5-importModule/1.css create mode 100644 test/cases/insert-function/expected/webpack-5-importModule/1.js create mode 100644 test/cases/insert-function/expected/webpack-5-importModule/main.js create mode 100644 test/cases/insert-string/expected/webpack-5-importModule/1.css create mode 100644 test/cases/insert-string/expected/webpack-5-importModule/1.js create mode 100644 test/cases/insert-string/expected/webpack-5-importModule/main.js create mode 100644 test/cases/insert-undefined/expected/webpack-5-importModule/1.css create mode 100644 test/cases/insert-undefined/expected/webpack-5-importModule/1.js create mode 100644 test/cases/insert-undefined/expected/webpack-5-importModule/main.js create mode 100644 test/cases/js-hash/expected/webpack-5-importModule/style.229314c8bccc7c31e2f3.1.css create mode 100644 test/cases/js-hash/expected/webpack-5-importModule/style.334e3250146c69e0e055.2.css create mode 100644 test/cases/runtime/expected/webpack-5-importModule/main.a7263f8f763dcf4051bc.css create mode 100644 test/cases/runtime/expected/webpack-5-importModule/runtime~main.js create mode 100644 test/cases/split-chunks-all/expected/webpack-5-importModule/2.css create mode 100644 test/cases/split-chunks-all/expected/webpack-5-importModule/2.js diff --git a/.github/workflows/nodejs.yml b/.github/workflows/nodejs.yml index 2d349884..b7e3c225 100644 --- a/.github/workflows/nodejs.yml +++ b/.github/workflows/nodejs.yml @@ -80,6 +80,18 @@ jobs: if: matrix.os == 'windows-latest' run: npm i -g npm + - name: Get npm cache directory + id: npm-cache + run: | + echo "::set-output name=dir::$(npm config get cache)" + + - uses: actions/cache@v1 + with: + path: ${{ steps.npm-cache.outputs.dir }} + key: ${{ runner.os }}-node-${{ hashFiles('**/package-lock.json') }} + restore-keys: | + ${{ runner.os }}-node- + - name: Install dependencies run: npm i @@ -93,3 +105,61 @@ jobs: uses: codecov/codecov-action@v1 with: token: ${{ secrets.CODECOV_TOKEN }} + + test2: + name: Test - ${{ matrix.os }} - Node v${{ matrix.node-version }}, Webpack latest, experimentalUseImportModule + + strategy: + matrix: + os: [ubuntu-latest, windows-latest, macos-latest] + node-version: [10.x, 12.x, 14.x] + + runs-on: ${{ matrix.os }} + + steps: + - name: Setup Git + if: matrix.os == 'windows-latest' + run: git config --global core.autocrlf input + + - uses: actions/checkout@v2 + + - name: Use Node.js ${{ matrix.node-version }} + uses: actions/setup-node@v1 + with: + node-version: ${{ matrix.node-version }} + + - name: Use latest NPM on ubuntu/macos + if: matrix.os == 'ubuntu-latest' || matrix.os == 'macos-latest' + run: sudo npm i -g npm + + - name: Use latest NPM on windows + if: matrix.os == 'windows-latest' + run: npm i -g npm + + - name: Get npm cache directory + id: npm-cache + run: | + echo "::set-output name=dir::$(npm config get cache)" + + - uses: actions/cache@v1 + with: + path: ${{ steps.npm-cache.outputs.dir }} + key: ${{ runner.os }}-node-${{ hashFiles('**/package-lock.json') }} + restore-keys: | + ${{ runner.os }}-node- + + - name: Install dependencies + run: npm i + + - name: Install webpack latest + run: npm i webpack@latest + + - name: Run tests for webpack version latest with experimentalUseImportModule + run: npm run test:coverage -- --ci + env: + EXPERIMENTAL_USE_IMPORT_MODULE: 'true' + + - name: Submit coverage data to codecov + uses: codecov/codecov-action@v1 + with: + token: ${{ secrets.CODECOV_TOKEN }} diff --git a/README.md b/README.md index 995114aa..3934aeeb 100644 --- a/README.md +++ b/README.md @@ -75,14 +75,15 @@ module.exports = { ### Plugin Options -| Name | Type | Default | Description | -| :-----------------------------------: | :------------------: | :-----------------------------------: | :--------------------------------------------------------- | -| **[`filename`](#filename)** | `{String\|Function}` | `[name].css` | This option determines the name of each output CSS file | -| **[`chunkFilename`](#chunkFilename)** | `{String\|Function}` | `based on filename` | This option determines the name of non-entry chunk files | -| **[`ignoreOrder`](#ignoreOrder)** | `{Boolean}` | `false` | Remove Order Warnings | -| **[`insert`](#insert)** | `{String\|Function}` | `document.head.appendChild(linkTag);` | Inserts `` at the given position | -| **[`attributes`](#attributes)** | `{Object}` | `{}` | Adds custom attributes to tag | -| **[`linkType`](#linkType)** | `{String\|Boolean}` | `text/css` | Allows loading asynchronous chunks with a custom link type | +| Name | Type | Default | Description | +| :---------------------------------------------------------------: | :------------------: | :-----------------------------------: | :---------------------------------------------------------------------------- | +| **[`filename`](#filename)** | `{String\|Function}` | `[name].css` | This option determines the name of each output CSS file | +| **[`chunkFilename`](#chunkFilename)** | `{String\|Function}` | `based on filename` | This option determines the name of non-entry chunk files | +| **[`ignoreOrder`](#ignoreOrder)** | `{Boolean}` | `false` | Remove Order Warnings | +| **[`insert`](#insert)** | `{String\|Function}` | `document.head.appendChild(linkTag);` | Inserts `` at the given position | +| **[`attributes`](#attributes)** | `{Object}` | `{}` | Adds custom attributes to tag | +| **[`linkType`](#linkType)** | `{String\|Boolean}` | `text/css` | Allows loading asynchronous chunks with a custom link type | +| **[`experimentalUseImportModule`](#experimentalUseImportModule)** | `{Boolean}` | `false` | Use an experimental webpack API to execute modules instead of child compilers | #### `filename` @@ -256,6 +257,16 @@ module.exports = { }; ``` +#### `experimentalUseImportModule` + +Use an experimental webpack API to execute modules instead of child compilers. + +This improves performance and memory usage a lot, but isn't as stable as the normal approach. + +When combined with `experiments.layers`, this adds a `layer` option to the loader options to specify the layer of the css execution. + +You need to have at least webpack 5.33.2. + ### Loader Options | Name | Type | Default | Description | diff --git a/package-lock.json b/package-lock.json index 3b902153..2b44129f 100644 --- a/package-lock.json +++ b/package-lock.json @@ -5,7 +5,7 @@ "requires": true, "packages": { "": { - "version": "1.3.9", + "version": "1.4.1", "license": "MIT", "dependencies": { "loader-utils": "^2.0.0", @@ -39,7 +39,7 @@ "npm-run-all": "^4.1.5", "prettier": "^2.2.1", "standard-version": "^9.1.0", - "webpack": "^5.27.1", + "webpack": "^5.33.2", "webpack-cli": "^4.5.0", "webpack-dev-server": "^3.7.2" }, @@ -2779,9 +2779,9 @@ } }, "node_modules/@types/eslint": { - "version": "7.2.7", - "resolved": "https://registry.npmjs.org/@types/eslint/-/eslint-7.2.7.tgz", - "integrity": "sha512-EHXbc1z2GoQRqHaAT7+grxlTJ3WE2YNeD6jlpPoRc83cCoThRY+NUWjCUZaYmk51OICkPXn2hhphcWcWXgNW0Q==", + "version": "7.2.9", + "resolved": "https://registry.npmjs.org/@types/eslint/-/eslint-7.2.9.tgz", + "integrity": "sha512-SdAAXZNvWfhtf3X3y1cbbCZhP3xyPh7mfTvzV6CgfWc/ZhiHpyr9bVroe2/RCHIf7gczaNcprhaBLsx0CCJHQA==", "dev": true, "dependencies": { "@types/estree": "*", @@ -17789,10 +17789,11 @@ } }, "node_modules/webpack": { - "version": "5.27.1", - "resolved": "https://registry.npmjs.org/webpack/-/webpack-5.27.1.tgz", - "integrity": "sha512-rxIDsPZ3Apl3JcqiemiLmWH+hAq04YeOXqvCxNZOnTp8ZgM9NEPtbu4CaMfMEf9KShnx/Ym8uLGmM6P4XnwCoA==", + "version": "5.33.2", + "resolved": "https://registry.npmjs.org/webpack/-/webpack-5.33.2.tgz", + "integrity": "sha512-X4b7F1sYBmJx8mlh2B7mV5szEkE0jYNJ2y3akgAP0ERi0vLCG1VvdsIxt8lFd4st6SUy0lf7W0CCQS566MBpJg==", "dev": true, + "license": "MIT", "dependencies": { "@types/eslint-scope": "^3.7.0", "@types/estree": "^0.0.46", @@ -18539,9 +18540,9 @@ } }, "node_modules/webpack/node_modules/acorn": { - "version": "8.1.0", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.1.0.tgz", - "integrity": "sha512-LWCF/Wn0nfHOmJ9rzQApGnxnvgfROzGilS8936rqN/lfcYkY9MYZzdMqN+2NJ4SlTc+m5HiSa+kNfDtI64dwUA==", + "version": "8.1.1", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.1.1.tgz", + "integrity": "sha512-xYiIVjNuqtKXMxlRMDc6mZUhXehod4a3gbZ1qRlM7icK4EbxUFNLhWoPblCvFtB2Y9CIqHP3CF/rdxLItaQv8g==", "dev": true, "bin": { "acorn": "bin/acorn" @@ -18550,15 +18551,6 @@ "node": ">=0.4.0" } }, - "node_modules/webpack/node_modules/source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/webpack/node_modules/webpack-sources": { "version": "2.2.0", "resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-2.2.0.tgz", @@ -21084,9 +21076,9 @@ } }, "@types/eslint": { - "version": "7.2.7", - "resolved": "https://registry.npmjs.org/@types/eslint/-/eslint-7.2.7.tgz", - "integrity": "sha512-EHXbc1z2GoQRqHaAT7+grxlTJ3WE2YNeD6jlpPoRc83cCoThRY+NUWjCUZaYmk51OICkPXn2hhphcWcWXgNW0Q==", + "version": "7.2.9", + "resolved": "https://registry.npmjs.org/@types/eslint/-/eslint-7.2.9.tgz", + "integrity": "sha512-SdAAXZNvWfhtf3X3y1cbbCZhP3xyPh7mfTvzV6CgfWc/ZhiHpyr9bVroe2/RCHIf7gczaNcprhaBLsx0CCJHQA==", "dev": true, "requires": { "@types/estree": "*", @@ -32748,9 +32740,9 @@ "dev": true }, "webpack": { - "version": "5.27.1", - "resolved": "https://registry.npmjs.org/webpack/-/webpack-5.27.1.tgz", - "integrity": "sha512-rxIDsPZ3Apl3JcqiemiLmWH+hAq04YeOXqvCxNZOnTp8ZgM9NEPtbu4CaMfMEf9KShnx/Ym8uLGmM6P4XnwCoA==", + "version": "5.33.2", + "resolved": "https://registry.npmjs.org/webpack/-/webpack-5.33.2.tgz", + "integrity": "sha512-X4b7F1sYBmJx8mlh2B7mV5szEkE0jYNJ2y3akgAP0ERi0vLCG1VvdsIxt8lFd4st6SUy0lf7W0CCQS566MBpJg==", "dev": true, "requires": { "@types/eslint-scope": "^3.7.0", @@ -32779,15 +32771,9 @@ }, "dependencies": { "acorn": { - "version": "8.1.0", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.1.0.tgz", - "integrity": "sha512-LWCF/Wn0nfHOmJ9rzQApGnxnvgfROzGilS8936rqN/lfcYkY9MYZzdMqN+2NJ4SlTc+m5HiSa+kNfDtI64dwUA==", - "dev": true - }, - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "version": "8.1.1", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.1.1.tgz", + "integrity": "sha512-xYiIVjNuqtKXMxlRMDc6mZUhXehod4a3gbZ1qRlM7icK4EbxUFNLhWoPblCvFtB2Y9CIqHP3CF/rdxLItaQv8g==", "dev": true }, "webpack-sources": { diff --git a/package.json b/package.json index 26abd63e..d9fdec3b 100644 --- a/package.json +++ b/package.json @@ -73,7 +73,7 @@ "npm-run-all": "^4.1.5", "prettier": "^2.2.1", "standard-version": "^9.1.0", - "webpack": "^5.27.1", + "webpack": "^5.33.2", "webpack-cli": "^4.5.0", "webpack-dev-server": "^3.7.2" }, diff --git a/src/index.js b/src/index.js index c5483c46..4c1b009a 100644 --- a/src/index.js +++ b/src/index.js @@ -309,7 +309,11 @@ class MiniCssExtractPlugin { this._sortedModulesCache = new WeakMap(); this.options = Object.assign( - { filename: DEFAULT_FILENAME, ignoreOrder: false }, + { + filename: DEFAULT_FILENAME, + ignoreOrder: false, + experimentalUseImportModule: false, + }, options ); @@ -355,6 +359,18 @@ class MiniCssExtractPlugin { : // eslint-disable-next-line global-require require('webpack'); + if (this.options.experimentalUseImportModule) { + if (!compiler.options.experiments) { + throw new Error( + 'experimentalUseImportModule is only support for webpack >= 5.32.0' + ); + } + if (typeof compiler.options.experiments.executeModule === 'undefined') { + // eslint-disable-next-line no-param-reassign + compiler.options.experiments.executeModule = true; + } + } + // TODO bug in webpack, remove it after it will be fixed // webpack tries to `require` loader firstly when serializer doesn't found if ( @@ -399,7 +415,9 @@ class MiniCssExtractPlugin { normalModuleHook.tap(pluginName, (loaderContext) => { // eslint-disable-next-line no-param-reassign - loaderContext[pluginSymbol] = true; + loaderContext[pluginSymbol] = { + experimentalUseImportModule: this.options.experimentalUseImportModule, + }; }); }); diff --git a/src/loader-options.json b/src/loader-options.json index a863e270..08b6933c 100644 --- a/src/loader-options.json +++ b/src/loader-options.json @@ -18,6 +18,9 @@ "esModule": { "type": "boolean" }, + "layer": { + "type": "string" + }, "modules": { "type": "object", "additionalProperties": false, diff --git a/src/loader.js b/src/loader.js index ee8ee4c5..238700de 100644 --- a/src/loader.js +++ b/src/loader.js @@ -39,7 +39,8 @@ export function pitch(request) { const callback = this.async(); - if (!this[pluginSymbol]) { + const optionsFromPlugin = this[pluginSymbol]; + if (!optionsFromPlugin) { callback( new Error( "You forgot to add 'mini-css-extract-plugin' plugin (i.e. `{ plugins: [new MiniCssExtractPlugin()] }`), please read https://github.com/webpack-contrib/mini-css-extract-plugin#getting-started" @@ -49,11 +50,130 @@ export function pitch(request) { return; } - const loaders = this.loaders.slice(this.loaderIndex + 1); + // TODO simplify after drop webpack v4 + // eslint-disable-next-line global-require + const webpack = this._compiler.webpack || require('webpack'); - this.addDependency(this.resourcePath); + const handleExports = (originalExports, compilation, assets, assetsInfo) => { + let locals; + + const esModule = + typeof options.esModule !== 'undefined' ? options.esModule : true; + const namedExport = + esModule && options.modules && options.modules.namedExport; + + const addDependencies = (dependencies) => { + if (!Array.isArray(dependencies) && dependencies != null) { + throw new Error( + `Exported value was not extracted as an array: ${JSON.stringify( + dependencies + )}` + ); + } + + const identifierCountMap = new Map(); + const emit = typeof options.emit !== 'undefined' ? options.emit : true; + let lastDep; + + for (const dependency of dependencies) { + if (!dependency.identifier || !emit) { + // eslint-disable-next-line no-continue + continue; + } + + const count = identifierCountMap.get(dependency.identifier) || 0; + const CssDependency = MiniCssExtractPlugin.getCssDependency(webpack); + + this._module.addDependency( + (lastDep = new CssDependency(dependency, dependency.context, count)) + ); + identifierCountMap.set(dependency.identifier, count + 1); + } + + if (lastDep && assets) { + lastDep.assets = assets; + lastDep.assetsInfo = assetsInfo; + } + }; + + try { + // eslint-disable-next-line no-underscore-dangle + exports = originalExports.__esModule + ? originalExports.default + : originalExports; + + if (namedExport) { + Object.keys(originalExports).forEach((key) => { + if (key !== 'default') { + if (!locals) { + locals = {}; + } + + locals[key] = originalExports[key]; + } + }); + } else { + locals = exports && exports.locals; + } + + let dependencies; + + if (!Array.isArray(exports)) { + dependencies = [[null, exports]]; + } else { + dependencies = exports.map(([id, content, media, sourceMap]) => { + let identifier = id; + let context; + if (compilation) { + const module = findModuleById(compilation, id); + identifier = module.identifier(); + ({ context } = module); + } else { + // TODO check if this context is used somewhere + context = this.rootContext; + } + + return { + identifier, + context, + content: Buffer.from(content), + media, + sourceMap: sourceMap + ? Buffer.from(JSON.stringify(sourceMap)) + : // eslint-disable-next-line no-undefined + undefined, + }; + }); + } + + addDependencies(dependencies); + } catch (e) { + return callback(e); + } + + const result = locals + ? namedExport + ? Object.keys(locals) + .map( + (key) => `\nexport const ${key} = ${JSON.stringify(locals[key])};` + ) + .join('') + : `\n${ + esModule ? 'export default' : 'module.exports =' + } ${JSON.stringify(locals)};` + : esModule + ? `\nexport {};` + : ''; + + let resultSource = `// extracted by ${pluginName}`; + + resultSource += this.hot + ? hotLoader(result, { context: this.context, options, locals }) + : result; + + return callback(null, resultSource); + }; - const childFilename = '*'; const publicPath = typeof options.publicPath === 'string' ? options.publicPath === 'auto' @@ -67,6 +187,39 @@ export function pitch(request) { ? '' : this._compilation.outputOptions.publicPath; + if (optionsFromPlugin.experimentalUseImportModule) { + if (!this.importModule) { + callback( + new Error( + "You are using experimentalUseImportModule but 'this.importModule' is not available in loader context. You need to have at least webpack 5.33.2." + ) + ); + return; + } + this.importModule( + `${this.resourcePath}.webpack[javascript/auto]!=!${request}`, + { + layer: options.layer, + publicPath, + }, + (err, exports) => { + if (err) { + callback(err); + return; + } + + handleExports(exports); + } + ); + return; + } + + const loaders = this.loaders.slice(this.loaderIndex + 1); + + this.addDependency(this.resourcePath); + + const childFilename = '*'; + const outputOptions = { filename: childFilename, publicPath, @@ -77,10 +230,6 @@ export function pitch(request) { outputOptions ); - // TODO simplify after drop webpack v4 - // eslint-disable-next-line global-require - const webpack = this._compiler.webpack || require('webpack'); - const { NodeTemplatePlugin } = webpack.node; const NodeTargetPlugin = webpack.node.NodeTargetPlugin ? webpack.node.NodeTargetPlugin @@ -195,40 +344,6 @@ export function pitch(request) { assetsInfo.set(asset.name, asset.info); } - const addDependencies = (dependencies) => { - if (!Array.isArray(dependencies) && dependencies != null) { - throw new Error( - `Exported value was not extracted as an array: ${JSON.stringify( - dependencies - )}` - ); - } - - const identifierCountMap = new Map(); - const emit = typeof options.emit !== 'undefined' ? options.emit : true; - let lastDep; - - for (const dependency of dependencies) { - if (!dependency.identifier || !emit) { - // eslint-disable-next-line no-continue - continue; - } - - const count = identifierCountMap.get(dependency.identifier) || 0; - const CssDependency = MiniCssExtractPlugin.getCssDependency(webpack); - - this._module.addDependency( - (lastDep = new CssDependency(dependency, dependency.context, count)) - ); - identifierCountMap.set(dependency.identifier, count + 1); - } - - if (lastDep) { - lastDep.assets = assets; - lastDep.assetsInfo = assetsInfo; - } - }; - if (error) { return callback(error); } @@ -249,82 +364,14 @@ export function pitch(request) { return callback(new Error("Didn't get a result from child compiler")); } - let locals; - - const esModule = - typeof options.esModule !== 'undefined' ? options.esModule : true; - const namedExport = - esModule && options.modules && options.modules.namedExport; - + let originalExports; try { - const originalExports = evalModuleCode(this, source, request); - - // eslint-disable-next-line no-underscore-dangle - exports = originalExports.__esModule - ? originalExports.default - : originalExports; - - if (namedExport) { - Object.keys(originalExports).forEach((key) => { - if (key !== 'default') { - if (!locals) { - locals = {}; - } - - locals[key] = originalExports[key]; - } - }); - } else { - locals = exports && exports.locals; - } - - let dependencies; - - if (!Array.isArray(exports)) { - dependencies = [[null, exports]]; - } else { - dependencies = exports.map(([id, content, media, sourceMap]) => { - const module = findModuleById(compilation, id); - - return { - identifier: module.identifier(), - context: module.context, - content: Buffer.from(content), - media, - sourceMap: sourceMap - ? Buffer.from(JSON.stringify(sourceMap)) - : // eslint-disable-next-line no-undefined - undefined, - }; - }); - } - - addDependencies(dependencies); + originalExports = evalModuleCode(this, source, request); } catch (e) { return callback(e); } - const result = locals - ? namedExport - ? Object.keys(locals) - .map( - (key) => `\nexport const ${key} = ${JSON.stringify(locals[key])};` - ) - .join('') - : `\n${ - esModule ? 'export default' : 'module.exports =' - } ${JSON.stringify(locals)};` - : esModule - ? `\nexport {};` - : ''; - - let resultSource = `// extracted by ${pluginName}`; - - resultSource += this.hot - ? hotLoader(result, { context: this.context, options, locals }) - : result; - - return callback(null, resultSource); + return handleExports(originalExports, compilation, assets, assetsInfo); }); } diff --git a/src/plugin-options.json b/src/plugin-options.json index 04e5c9ed..509803a6 100644 --- a/src/plugin-options.json +++ b/src/plugin-options.json @@ -22,6 +22,10 @@ } ] }, + "experimentalUseImportModule": { + "description": "Enable the experimental importModule approach instead of using child compilers. This uses less memory and is faster.", + "type": "boolean" + }, "ignoreOrder": { "type": "boolean" }, diff --git a/test/TestCases.test.js b/test/TestCases.test.js index f1e5e57a..691f39da 100644 --- a/test/TestCases.test.js +++ b/test/TestCases.test.js @@ -7,6 +7,8 @@ import path from 'path'; import webpack from 'webpack'; +import Self from '../src/index'; + function clearDirectory(dirPath) { let files; @@ -111,14 +113,26 @@ describe('TestCases', () => { { mode: 'none', context: directoryForCase, + }, + config, + { output: Object.assign( { path: outputDirectoryForCase, }, config.output ), - }, - config + plugins: + config.plugins && + config.plugins.map((p) => { + if (p.constructor === Self) { + const { options } = p; + options.experimentalUseImportModule = !!process.env + .EXPERIMENTAL_USE_IMPORT_MODULE; + } + return p; + }), + } ); } @@ -175,7 +189,9 @@ describe('TestCases', () => { const expectedDirectory = path.resolve(directoryForCase, 'expected'); const expectedDirectoryByVersion = path.join( expectedDirectory, - `webpack-${webpack.version[0]}` + `webpack-${webpack.version[0]}${ + process.env.EXPERIMENTAL_USE_IMPORT_MODULE ? '-importModule' : '' + }` ); if (/^hmr/.test(directory)) { diff --git a/test/__snapshots__/validate-loader-options.test.js.snap.webpack4 b/test/__snapshots__/validate-loader-options.test.js.snap.webpack4 index a8a95996..208df811 100644 --- a/test/__snapshots__/validate-loader-options.test.js.snap.webpack4 +++ b/test/__snapshots__/validate-loader-options.test.js.snap.webpack4 @@ -29,47 +29,47 @@ exports[`validate options should throw an error on the "publicPath" option with exports[`validate options should throw an error on the "unknown" option with "/test/" value 1`] = ` "Invalid options object. Mini CSS Extract Plugin Loader has been initialized using an options object that does not match the API schema. - options has an unknown property 'unknown'. These properties are valid: - object { publicPath?, emit?, esModule?, modules? }" + object { publicPath?, emit?, esModule?, layer?, modules? }" `; exports[`validate options should throw an error on the "unknown" option with "[]" value 1`] = ` "Invalid options object. Mini CSS Extract Plugin Loader has been initialized using an options object that does not match the API schema. - options has an unknown property 'unknown'. These properties are valid: - object { publicPath?, emit?, esModule?, modules? }" + object { publicPath?, emit?, esModule?, layer?, modules? }" `; exports[`validate options should throw an error on the "unknown" option with "{"foo":"bar"}" value 1`] = ` "Invalid options object. Mini CSS Extract Plugin Loader has been initialized using an options object that does not match the API schema. - options has an unknown property 'unknown'. These properties are valid: - object { publicPath?, emit?, esModule?, modules? }" + object { publicPath?, emit?, esModule?, layer?, modules? }" `; exports[`validate options should throw an error on the "unknown" option with "{}" value 1`] = ` "Invalid options object. Mini CSS Extract Plugin Loader has been initialized using an options object that does not match the API schema. - options has an unknown property 'unknown'. These properties are valid: - object { publicPath?, emit?, esModule?, modules? }" + object { publicPath?, emit?, esModule?, layer?, modules? }" `; exports[`validate options should throw an error on the "unknown" option with "1" value 1`] = ` "Invalid options object. Mini CSS Extract Plugin Loader has been initialized using an options object that does not match the API schema. - options has an unknown property 'unknown'. These properties are valid: - object { publicPath?, emit?, esModule?, modules? }" + object { publicPath?, emit?, esModule?, layer?, modules? }" `; exports[`validate options should throw an error on the "unknown" option with "false" value 1`] = ` "Invalid options object. Mini CSS Extract Plugin Loader has been initialized using an options object that does not match the API schema. - options has an unknown property 'unknown'. These properties are valid: - object { publicPath?, emit?, esModule?, modules? }" + object { publicPath?, emit?, esModule?, layer?, modules? }" `; exports[`validate options should throw an error on the "unknown" option with "test" value 1`] = ` "Invalid options object. Mini CSS Extract Plugin Loader has been initialized using an options object that does not match the API schema. - options has an unknown property 'unknown'. These properties are valid: - object { publicPath?, emit?, esModule?, modules? }" + object { publicPath?, emit?, esModule?, layer?, modules? }" `; exports[`validate options should throw an error on the "unknown" option with "true" value 1`] = ` "Invalid options object. Mini CSS Extract Plugin Loader has been initialized using an options object that does not match the API schema. - options has an unknown property 'unknown'. These properties are valid: - object { publicPath?, emit?, esModule?, modules? }" + object { publicPath?, emit?, esModule?, layer?, modules? }" `; diff --git a/test/__snapshots__/validate-loader-options.test.js.snap.webpack5 b/test/__snapshots__/validate-loader-options.test.js.snap.webpack5 index a8a95996..208df811 100644 --- a/test/__snapshots__/validate-loader-options.test.js.snap.webpack5 +++ b/test/__snapshots__/validate-loader-options.test.js.snap.webpack5 @@ -29,47 +29,47 @@ exports[`validate options should throw an error on the "publicPath" option with exports[`validate options should throw an error on the "unknown" option with "/test/" value 1`] = ` "Invalid options object. Mini CSS Extract Plugin Loader has been initialized using an options object that does not match the API schema. - options has an unknown property 'unknown'. These properties are valid: - object { publicPath?, emit?, esModule?, modules? }" + object { publicPath?, emit?, esModule?, layer?, modules? }" `; exports[`validate options should throw an error on the "unknown" option with "[]" value 1`] = ` "Invalid options object. Mini CSS Extract Plugin Loader has been initialized using an options object that does not match the API schema. - options has an unknown property 'unknown'. These properties are valid: - object { publicPath?, emit?, esModule?, modules? }" + object { publicPath?, emit?, esModule?, layer?, modules? }" `; exports[`validate options should throw an error on the "unknown" option with "{"foo":"bar"}" value 1`] = ` "Invalid options object. Mini CSS Extract Plugin Loader has been initialized using an options object that does not match the API schema. - options has an unknown property 'unknown'. These properties are valid: - object { publicPath?, emit?, esModule?, modules? }" + object { publicPath?, emit?, esModule?, layer?, modules? }" `; exports[`validate options should throw an error on the "unknown" option with "{}" value 1`] = ` "Invalid options object. Mini CSS Extract Plugin Loader has been initialized using an options object that does not match the API schema. - options has an unknown property 'unknown'. These properties are valid: - object { publicPath?, emit?, esModule?, modules? }" + object { publicPath?, emit?, esModule?, layer?, modules? }" `; exports[`validate options should throw an error on the "unknown" option with "1" value 1`] = ` "Invalid options object. Mini CSS Extract Plugin Loader has been initialized using an options object that does not match the API schema. - options has an unknown property 'unknown'. These properties are valid: - object { publicPath?, emit?, esModule?, modules? }" + object { publicPath?, emit?, esModule?, layer?, modules? }" `; exports[`validate options should throw an error on the "unknown" option with "false" value 1`] = ` "Invalid options object. Mini CSS Extract Plugin Loader has been initialized using an options object that does not match the API schema. - options has an unknown property 'unknown'. These properties are valid: - object { publicPath?, emit?, esModule?, modules? }" + object { publicPath?, emit?, esModule?, layer?, modules? }" `; exports[`validate options should throw an error on the "unknown" option with "test" value 1`] = ` "Invalid options object. Mini CSS Extract Plugin Loader has been initialized using an options object that does not match the API schema. - options has an unknown property 'unknown'. These properties are valid: - object { publicPath?, emit?, esModule?, modules? }" + object { publicPath?, emit?, esModule?, layer?, modules? }" `; exports[`validate options should throw an error on the "unknown" option with "true" value 1`] = ` "Invalid options object. Mini CSS Extract Plugin Loader has been initialized using an options object that does not match the API schema. - options has an unknown property 'unknown'. These properties are valid: - object { publicPath?, emit?, esModule?, modules? }" + object { publicPath?, emit?, esModule?, layer?, modules? }" `; diff --git a/test/__snapshots__/validate-plugin-options.test.js.snap.webpack4 b/test/__snapshots__/validate-plugin-options.test.js.snap.webpack4 index 8d9e1b45..7da02d24 100644 --- a/test/__snapshots__/validate-plugin-options.test.js.snap.webpack4 +++ b/test/__snapshots__/validate-plugin-options.test.js.snap.webpack4 @@ -99,47 +99,47 @@ exports[`validate options should throw an error on the "linkType" option with "i exports[`validate options should throw an error on the "unknown" option with "/test/" value 1`] = ` "Invalid options object. Mini CSS Extract Plugin has been initialized using an options object that does not match the API schema. - options has an unknown property 'unknown'. These properties are valid: - object { filename?, chunkFilename?, ignoreOrder?, insert?, attributes?, linkType? }" + object { filename?, chunkFilename?, experimentalUseImportModule?, ignoreOrder?, insert?, attributes?, linkType? }" `; exports[`validate options should throw an error on the "unknown" option with "[]" value 1`] = ` "Invalid options object. Mini CSS Extract Plugin has been initialized using an options object that does not match the API schema. - options has an unknown property 'unknown'. These properties are valid: - object { filename?, chunkFilename?, ignoreOrder?, insert?, attributes?, linkType? }" + object { filename?, chunkFilename?, experimentalUseImportModule?, ignoreOrder?, insert?, attributes?, linkType? }" `; exports[`validate options should throw an error on the "unknown" option with "{"foo":"bar"}" value 1`] = ` "Invalid options object. Mini CSS Extract Plugin has been initialized using an options object that does not match the API schema. - options has an unknown property 'unknown'. These properties are valid: - object { filename?, chunkFilename?, ignoreOrder?, insert?, attributes?, linkType? }" + object { filename?, chunkFilename?, experimentalUseImportModule?, ignoreOrder?, insert?, attributes?, linkType? }" `; exports[`validate options should throw an error on the "unknown" option with "{}" value 1`] = ` "Invalid options object. Mini CSS Extract Plugin has been initialized using an options object that does not match the API schema. - options has an unknown property 'unknown'. These properties are valid: - object { filename?, chunkFilename?, ignoreOrder?, insert?, attributes?, linkType? }" + object { filename?, chunkFilename?, experimentalUseImportModule?, ignoreOrder?, insert?, attributes?, linkType? }" `; exports[`validate options should throw an error on the "unknown" option with "1" value 1`] = ` "Invalid options object. Mini CSS Extract Plugin has been initialized using an options object that does not match the API schema. - options has an unknown property 'unknown'. These properties are valid: - object { filename?, chunkFilename?, ignoreOrder?, insert?, attributes?, linkType? }" + object { filename?, chunkFilename?, experimentalUseImportModule?, ignoreOrder?, insert?, attributes?, linkType? }" `; exports[`validate options should throw an error on the "unknown" option with "false" value 1`] = ` "Invalid options object. Mini CSS Extract Plugin has been initialized using an options object that does not match the API schema. - options has an unknown property 'unknown'. These properties are valid: - object { filename?, chunkFilename?, ignoreOrder?, insert?, attributes?, linkType? }" + object { filename?, chunkFilename?, experimentalUseImportModule?, ignoreOrder?, insert?, attributes?, linkType? }" `; exports[`validate options should throw an error on the "unknown" option with "test" value 1`] = ` "Invalid options object. Mini CSS Extract Plugin has been initialized using an options object that does not match the API schema. - options has an unknown property 'unknown'. These properties are valid: - object { filename?, chunkFilename?, ignoreOrder?, insert?, attributes?, linkType? }" + object { filename?, chunkFilename?, experimentalUseImportModule?, ignoreOrder?, insert?, attributes?, linkType? }" `; exports[`validate options should throw an error on the "unknown" option with "true" value 1`] = ` "Invalid options object. Mini CSS Extract Plugin has been initialized using an options object that does not match the API schema. - options has an unknown property 'unknown'. These properties are valid: - object { filename?, chunkFilename?, ignoreOrder?, insert?, attributes?, linkType? }" + object { filename?, chunkFilename?, experimentalUseImportModule?, ignoreOrder?, insert?, attributes?, linkType? }" `; diff --git a/test/__snapshots__/validate-plugin-options.test.js.snap.webpack5 b/test/__snapshots__/validate-plugin-options.test.js.snap.webpack5 index 8d9e1b45..7da02d24 100644 --- a/test/__snapshots__/validate-plugin-options.test.js.snap.webpack5 +++ b/test/__snapshots__/validate-plugin-options.test.js.snap.webpack5 @@ -99,47 +99,47 @@ exports[`validate options should throw an error on the "linkType" option with "i exports[`validate options should throw an error on the "unknown" option with "/test/" value 1`] = ` "Invalid options object. Mini CSS Extract Plugin has been initialized using an options object that does not match the API schema. - options has an unknown property 'unknown'. These properties are valid: - object { filename?, chunkFilename?, ignoreOrder?, insert?, attributes?, linkType? }" + object { filename?, chunkFilename?, experimentalUseImportModule?, ignoreOrder?, insert?, attributes?, linkType? }" `; exports[`validate options should throw an error on the "unknown" option with "[]" value 1`] = ` "Invalid options object. Mini CSS Extract Plugin has been initialized using an options object that does not match the API schema. - options has an unknown property 'unknown'. These properties are valid: - object { filename?, chunkFilename?, ignoreOrder?, insert?, attributes?, linkType? }" + object { filename?, chunkFilename?, experimentalUseImportModule?, ignoreOrder?, insert?, attributes?, linkType? }" `; exports[`validate options should throw an error on the "unknown" option with "{"foo":"bar"}" value 1`] = ` "Invalid options object. Mini CSS Extract Plugin has been initialized using an options object that does not match the API schema. - options has an unknown property 'unknown'. These properties are valid: - object { filename?, chunkFilename?, ignoreOrder?, insert?, attributes?, linkType? }" + object { filename?, chunkFilename?, experimentalUseImportModule?, ignoreOrder?, insert?, attributes?, linkType? }" `; exports[`validate options should throw an error on the "unknown" option with "{}" value 1`] = ` "Invalid options object. Mini CSS Extract Plugin has been initialized using an options object that does not match the API schema. - options has an unknown property 'unknown'. These properties are valid: - object { filename?, chunkFilename?, ignoreOrder?, insert?, attributes?, linkType? }" + object { filename?, chunkFilename?, experimentalUseImportModule?, ignoreOrder?, insert?, attributes?, linkType? }" `; exports[`validate options should throw an error on the "unknown" option with "1" value 1`] = ` "Invalid options object. Mini CSS Extract Plugin has been initialized using an options object that does not match the API schema. - options has an unknown property 'unknown'. These properties are valid: - object { filename?, chunkFilename?, ignoreOrder?, insert?, attributes?, linkType? }" + object { filename?, chunkFilename?, experimentalUseImportModule?, ignoreOrder?, insert?, attributes?, linkType? }" `; exports[`validate options should throw an error on the "unknown" option with "false" value 1`] = ` "Invalid options object. Mini CSS Extract Plugin has been initialized using an options object that does not match the API schema. - options has an unknown property 'unknown'. These properties are valid: - object { filename?, chunkFilename?, ignoreOrder?, insert?, attributes?, linkType? }" + object { filename?, chunkFilename?, experimentalUseImportModule?, ignoreOrder?, insert?, attributes?, linkType? }" `; exports[`validate options should throw an error on the "unknown" option with "test" value 1`] = ` "Invalid options object. Mini CSS Extract Plugin has been initialized using an options object that does not match the API schema. - options has an unknown property 'unknown'. These properties are valid: - object { filename?, chunkFilename?, ignoreOrder?, insert?, attributes?, linkType? }" + object { filename?, chunkFilename?, experimentalUseImportModule?, ignoreOrder?, insert?, attributes?, linkType? }" `; exports[`validate options should throw an error on the "unknown" option with "true" value 1`] = ` "Invalid options object. Mini CSS Extract Plugin has been initialized using an options object that does not match the API schema. - options has an unknown property 'unknown'. These properties are valid: - object { filename?, chunkFilename?, ignoreOrder?, insert?, attributes?, linkType? }" + object { filename?, chunkFilename?, experimentalUseImportModule?, ignoreOrder?, insert?, attributes?, linkType? }" `; diff --git a/test/cases/auxiliaryAssets/expected/webpack-5-importModule/auxiliaryAssets-815babffe97b00a1f30b.woff2 b/test/cases/auxiliaryAssets/expected/webpack-5-importModule/auxiliaryAssets-815babffe97b00a1f30b.woff2 new file mode 100644 index 00000000..ddca5526 --- /dev/null +++ b/test/cases/auxiliaryAssets/expected/webpack-5-importModule/auxiliaryAssets-815babffe97b00a1f30b.woff2 @@ -0,0 +1 @@ +auxiliaryAssets-815babffe97b00a1f30b.woff2 \ No newline at end of file diff --git a/test/cases/auxiliaryAssets/expected/webpack-5-importModule/auxiliaryAssets-a0de923c946d4ccb38b0.ttf b/test/cases/auxiliaryAssets/expected/webpack-5-importModule/auxiliaryAssets-a0de923c946d4ccb38b0.ttf new file mode 100644 index 00000000..16502c45 --- /dev/null +++ b/test/cases/auxiliaryAssets/expected/webpack-5-importModule/auxiliaryAssets-a0de923c946d4ccb38b0.ttf @@ -0,0 +1 @@ +auxiliaryAssets-a0de923c946d4ccb38b0.ttf \ No newline at end of file diff --git a/test/cases/auxiliaryAssets/expected/webpack-5-importModule/auxiliaryAssets-d4c409dfe110747b1763.woff b/test/cases/auxiliaryAssets/expected/webpack-5-importModule/auxiliaryAssets-d4c409dfe110747b1763.woff new file mode 100644 index 00000000..deeb500c --- /dev/null +++ b/test/cases/auxiliaryAssets/expected/webpack-5-importModule/auxiliaryAssets-d4c409dfe110747b1763.woff @@ -0,0 +1 @@ +auxiliaryAssets-d4c409dfe110747b1763.woff \ No newline at end of file diff --git a/test/cases/auxiliaryAssets/test.filter.js b/test/cases/auxiliaryAssets/test.filter.js index 042a0256..20341d78 100644 --- a/test/cases/auxiliaryAssets/test.filter.js +++ b/test/cases/auxiliaryAssets/test.filter.js @@ -1,3 +1,4 @@ const webpack = require('webpack'); -module.exports = () => webpack.version[0] !== '4'; +module.exports = () => + webpack.version[0] !== '4' && !process.env.EXPERIMENTAL_USE_IMPORT_MODULE; diff --git a/test/cases/chunkFilename-as-function/expected/webpack-5-importModule/0.async.css b/test/cases/chunkFilename-as-function/expected/webpack-5-importModule/0.async.css new file mode 100644 index 00000000..e665100a --- /dev/null +++ b/test/cases/chunkFilename-as-function/expected/webpack-5-importModule/0.async.css @@ -0,0 +1,4 @@ +.async { + color: red; +} + diff --git a/test/cases/chunkFilename-as-function/expected/webpack-5-importModule/main.css b/test/cases/chunkFilename-as-function/expected/webpack-5-importModule/main.css new file mode 100644 index 00000000..cebc5c1c --- /dev/null +++ b/test/cases/chunkFilename-as-function/expected/webpack-5-importModule/main.css @@ -0,0 +1,4 @@ +body { + background: red; +} + diff --git a/test/cases/chunkFilename-fullhash/expected/webpack-5-importModule/0.bb36c53eabba881e0081.css b/test/cases/chunkFilename-fullhash/expected/webpack-5-importModule/0.bb36c53eabba881e0081.css new file mode 100644 index 00000000..e665100a --- /dev/null +++ b/test/cases/chunkFilename-fullhash/expected/webpack-5-importModule/0.bb36c53eabba881e0081.css @@ -0,0 +1,4 @@ +.async { + color: red; +} + diff --git a/test/cases/chunkFilename-fullhash/expected/webpack-5-importModule/async.js b/test/cases/chunkFilename-fullhash/expected/webpack-5-importModule/async.js new file mode 100644 index 00000000..15bac459 --- /dev/null +++ b/test/cases/chunkFilename-fullhash/expected/webpack-5-importModule/async.js @@ -0,0 +1,13 @@ +(self["webpackChunk"] = self["webpackChunk"] || []).push([[0],{ + +/***/ 2: +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +// extracted by mini-css-extract-plugin + + +/***/ }) + +}]); \ No newline at end of file diff --git a/test/cases/chunkFilename-fullhash/expected/webpack-5-importModule/bb36c53eabba881e0081.css b/test/cases/chunkFilename-fullhash/expected/webpack-5-importModule/bb36c53eabba881e0081.css new file mode 100644 index 00000000..cebc5c1c --- /dev/null +++ b/test/cases/chunkFilename-fullhash/expected/webpack-5-importModule/bb36c53eabba881e0081.css @@ -0,0 +1,4 @@ +body { + background: red; +} + diff --git a/test/cases/chunkFilename-fullhash/expected/webpack-5-importModule/main.js b/test/cases/chunkFilename-fullhash/expected/webpack-5-importModule/main.js new file mode 100644 index 00000000..fd023ff4 --- /dev/null +++ b/test/cases/chunkFilename-fullhash/expected/webpack-5-importModule/main.js @@ -0,0 +1,347 @@ +/******/ (() => { // webpackBootstrap +/******/ "use strict"; +/******/ var __webpack_modules__ = ([ +/* 0 */, +/* 1 */ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.r(__webpack_exports__); +// extracted by mini-css-extract-plugin + + +/***/ }) +/******/ ]); +/************************************************************************/ +/******/ // The module cache +/******/ var __webpack_module_cache__ = {}; +/******/ +/******/ // The require function +/******/ function __webpack_require__(moduleId) { +/******/ // Check if module is in cache +/******/ var cachedModule = __webpack_module_cache__[moduleId]; +/******/ if (cachedModule !== undefined) { +/******/ return cachedModule.exports; +/******/ } +/******/ // Create a new module (and put it into the cache) +/******/ var module = __webpack_module_cache__[moduleId] = { +/******/ // no module.id needed +/******/ // no module.loaded needed +/******/ exports: {} +/******/ }; +/******/ +/******/ // Execute the module function +/******/ __webpack_modules__[moduleId](module, module.exports, __webpack_require__); +/******/ +/******/ // Return the exports of the module +/******/ return module.exports; +/******/ } +/******/ +/******/ // expose the modules object (__webpack_modules__) +/******/ __webpack_require__.m = __webpack_modules__; +/******/ +/************************************************************************/ +/******/ /* webpack/runtime/ensure chunk */ +/******/ (() => { +/******/ __webpack_require__.f = {}; +/******/ // This file contains only the entry chunk. +/******/ // The chunk loading function for additional chunks +/******/ __webpack_require__.e = (chunkId) => { +/******/ return Promise.all(Object.keys(__webpack_require__.f).reduce((promises, key) => { +/******/ __webpack_require__.f[key](chunkId, promises); +/******/ return promises; +/******/ }, [])); +/******/ }; +/******/ })(); +/******/ +/******/ /* webpack/runtime/get javascript chunk filename */ +/******/ (() => { +/******/ // This function allow to reference async chunks +/******/ __webpack_require__.u = (chunkId) => { +/******/ // return url for filenames based on template +/******/ return "" + "async" + ".js"; +/******/ }; +/******/ })(); +/******/ +/******/ /* webpack/runtime/get mini-css chunk filename */ +/******/ (() => { +/******/ // This function allow to reference all chunks +/******/ __webpack_require__.miniCssF = (chunkId) => { +/******/ // return url for filenames based on template +/******/ return "" + chunkId + "." + __webpack_require__.h() + ".css"; +/******/ }; +/******/ })(); +/******/ +/******/ /* webpack/runtime/getFullHash */ +/******/ (() => { +/******/ __webpack_require__.h = () => ("bb36c53eabba881e0081") +/******/ })(); +/******/ +/******/ /* webpack/runtime/global */ +/******/ (() => { +/******/ __webpack_require__.g = (function() { +/******/ if (typeof globalThis === 'object') return globalThis; +/******/ try { +/******/ return this || new Function('return this')(); +/******/ } catch (e) { +/******/ if (typeof window === 'object') return window; +/******/ } +/******/ })(); +/******/ })(); +/******/ +/******/ /* webpack/runtime/hasOwnProperty shorthand */ +/******/ (() => { +/******/ __webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop)) +/******/ })(); +/******/ +/******/ /* webpack/runtime/load script */ +/******/ (() => { +/******/ var inProgress = {}; +/******/ // data-webpack is not used as build has no uniqueName +/******/ // loadScript function to load a script via script tag +/******/ __webpack_require__.l = (url, done, key, chunkId) => { +/******/ if(inProgress[url]) { inProgress[url].push(done); return; } +/******/ var script, needAttach; +/******/ if(key !== undefined) { +/******/ var scripts = document.getElementsByTagName("script"); +/******/ for(var i = 0; i < scripts.length; i++) { +/******/ var s = scripts[i]; +/******/ if(s.getAttribute("src") == url) { script = s; break; } +/******/ } +/******/ } +/******/ if(!script) { +/******/ needAttach = true; +/******/ script = document.createElement('script'); +/******/ +/******/ script.charset = 'utf-8'; +/******/ script.timeout = 120; +/******/ if (__webpack_require__.nc) { +/******/ script.setAttribute("nonce", __webpack_require__.nc); +/******/ } +/******/ +/******/ script.src = url; +/******/ } +/******/ inProgress[url] = [done]; +/******/ var onScriptComplete = (prev, event) => { +/******/ // avoid mem leaks in IE. +/******/ script.onerror = script.onload = null; +/******/ clearTimeout(timeout); +/******/ var doneFns = inProgress[url]; +/******/ delete inProgress[url]; +/******/ script.parentNode && script.parentNode.removeChild(script); +/******/ doneFns && doneFns.forEach((fn) => (fn(event))); +/******/ if(prev) return prev(event); +/******/ } +/******/ ; +/******/ var timeout = setTimeout(onScriptComplete.bind(null, undefined, { type: 'timeout', target: script }), 120000); +/******/ script.onerror = onScriptComplete.bind(null, script.onerror); +/******/ script.onload = onScriptComplete.bind(null, script.onload); +/******/ needAttach && document.head.appendChild(script); +/******/ }; +/******/ })(); +/******/ +/******/ /* webpack/runtime/make namespace object */ +/******/ (() => { +/******/ // define __esModule on exports +/******/ __webpack_require__.r = (exports) => { +/******/ if(typeof Symbol !== 'undefined' && Symbol.toStringTag) { +/******/ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' }); +/******/ } +/******/ Object.defineProperty(exports, '__esModule', { value: true }); +/******/ }; +/******/ })(); +/******/ +/******/ /* webpack/runtime/publicPath */ +/******/ (() => { +/******/ var scriptUrl; +/******/ if (__webpack_require__.g.importScripts) scriptUrl = __webpack_require__.g.location + ""; +/******/ var document = __webpack_require__.g.document; +/******/ if (!scriptUrl && document) { +/******/ if (document.currentScript) +/******/ scriptUrl = document.currentScript.src +/******/ if (!scriptUrl) { +/******/ var scripts = document.getElementsByTagName("script"); +/******/ if(scripts.length) scriptUrl = scripts[scripts.length - 1].src +/******/ } +/******/ } +/******/ // When supporting browsers where an automatic publicPath is not supported you must specify an output.publicPath manually via configuration +/******/ // or pass an empty string ("") and set the __webpack_public_path__ variable from your code to use your own logic. +/******/ if (!scriptUrl) throw new Error("Automatic publicPath is not supported in this browser"); +/******/ scriptUrl = scriptUrl.replace(/#.*$/, "").replace(/\?.*$/, "").replace(/\/[^\/]+$/, "/"); +/******/ __webpack_require__.p = scriptUrl; +/******/ })(); +/******/ +/******/ /* webpack/runtime/css loading */ +/******/ (() => { +/******/ var createStylesheet = (chunkId, fullhref, resolve, reject) => { +/******/ var linkTag = document.createElement("link"); +/******/ +/******/ linkTag.rel = "stylesheet"; +/******/ linkTag.type = "text/css"; +/******/ var onLinkComplete = (event) => { +/******/ // avoid mem leaks. +/******/ linkTag.onerror = linkTag.onload = null; +/******/ if (event.type === 'load') { +/******/ resolve(); +/******/ } else { +/******/ var errorType = event && (event.type === 'load' ? 'missing' : event.type); +/******/ var realHref = event && event.target && event.target.href || fullhref; +/******/ var err = new Error("Loading CSS chunk " + chunkId + " failed.\n(" + realHref + ")"); +/******/ err.code = "CSS_CHUNK_LOAD_FAILED"; +/******/ err.type = errorType; +/******/ err.request = realHref; +/******/ linkTag.parentNode.removeChild(linkTag) +/******/ reject(err); +/******/ } +/******/ } +/******/ linkTag.onerror = linkTag.onload = onLinkComplete; +/******/ linkTag.href = fullhref; +/******/ +/******/ document.head.appendChild(linkTag); +/******/ return linkTag; +/******/ }; +/******/ var findStylesheet = (href, fullhref) => { +/******/ var existingLinkTags = document.getElementsByTagName("link"); +/******/ for(var i = 0; i < existingLinkTags.length; i++) { +/******/ var tag = existingLinkTags[i]; +/******/ var dataHref = tag.getAttribute("data-href") || tag.getAttribute("href"); +/******/ if(tag.rel === "stylesheet" && (dataHref === href || dataHref === fullhref)) return tag; +/******/ } +/******/ var existingStyleTags = document.getElementsByTagName("style"); +/******/ for(var i = 0; i < existingStyleTags.length; i++) { +/******/ var tag = existingStyleTags[i]; +/******/ var dataHref = tag.getAttribute("data-href"); +/******/ if(dataHref === href || dataHref === fullhref) return tag; +/******/ } +/******/ }; +/******/ var loadStylesheet = (chunkId) => { +/******/ return new Promise((resolve, reject) => { +/******/ var href = __webpack_require__.miniCssF(chunkId); +/******/ var fullhref = __webpack_require__.p + href; +/******/ if(findStylesheet(href, fullhref)) return resolve(); +/******/ createStylesheet(chunkId, fullhref, resolve, reject); +/******/ }); +/******/ } +/******/ // object to store loaded CSS chunks +/******/ var installedCssChunks = { +/******/ 1: 0 +/******/ }; +/******/ +/******/ __webpack_require__.f.miniCss = (chunkId, promises) => { +/******/ var cssChunks = {"0":1}; +/******/ if(installedCssChunks[chunkId]) promises.push(installedCssChunks[chunkId]); +/******/ else if(installedCssChunks[chunkId] !== 0 && cssChunks[chunkId]) { +/******/ promises.push(installedCssChunks[chunkId] = loadStylesheet(chunkId).then(() => { +/******/ installedCssChunks[chunkId] = 0; +/******/ }, (e) => { +/******/ delete installedCssChunks[chunkId]; +/******/ throw e; +/******/ })); +/******/ } +/******/ }; +/******/ +/******/ // no hmr +/******/ })(); +/******/ +/******/ /* webpack/runtime/jsonp chunk loading */ +/******/ (() => { +/******/ // no baseURI +/******/ +/******/ // object to store loaded and loading chunks +/******/ // undefined = chunk not loaded, null = chunk preloaded/prefetched +/******/ // [resolve, reject, Promise] = chunk loading, 0 = chunk loaded +/******/ var installedChunks = { +/******/ 1: 0 +/******/ }; +/******/ +/******/ __webpack_require__.f.j = (chunkId, promises) => { +/******/ // JSONP chunk loading for javascript +/******/ var installedChunkData = __webpack_require__.o(installedChunks, chunkId) ? installedChunks[chunkId] : undefined; +/******/ if(installedChunkData !== 0) { // 0 means "already installed". +/******/ +/******/ // a Promise means "currently loading". +/******/ if(installedChunkData) { +/******/ promises.push(installedChunkData[2]); +/******/ } else { +/******/ if(true) { // all chunks have JS +/******/ // setup Promise in chunk cache +/******/ var promise = new Promise((resolve, reject) => (installedChunkData = installedChunks[chunkId] = [resolve, reject])); +/******/ promises.push(installedChunkData[2] = promise); +/******/ +/******/ // start chunk loading +/******/ var url = __webpack_require__.p + __webpack_require__.u(chunkId); +/******/ // create error before stack unwound to get useful stacktrace later +/******/ var error = new Error(); +/******/ var loadingEnded = (event) => { +/******/ if(__webpack_require__.o(installedChunks, chunkId)) { +/******/ installedChunkData = installedChunks[chunkId]; +/******/ if(installedChunkData !== 0) installedChunks[chunkId] = undefined; +/******/ if(installedChunkData) { +/******/ var errorType = event && (event.type === 'load' ? 'missing' : event.type); +/******/ var realSrc = event && event.target && event.target.src; +/******/ error.message = 'Loading chunk ' + chunkId + ' failed.\n(' + errorType + ': ' + realSrc + ')'; +/******/ error.name = 'ChunkLoadError'; +/******/ error.type = errorType; +/******/ error.request = realSrc; +/******/ installedChunkData[1](error); +/******/ } +/******/ } +/******/ }; +/******/ __webpack_require__.l(url, loadingEnded, "chunk-" + chunkId, chunkId); +/******/ } else installedChunks[chunkId] = 0; +/******/ } +/******/ } +/******/ }; +/******/ +/******/ // no prefetching +/******/ +/******/ // no preloaded +/******/ +/******/ // no HMR +/******/ +/******/ // no HMR manifest +/******/ +/******/ // no on chunks loaded +/******/ +/******/ // install a JSONP callback for chunk loading +/******/ var webpackJsonpCallback = (parentChunkLoadingFunction, data) => { +/******/ var [chunkIds, moreModules, runtime] = data; +/******/ // add "moreModules" to the modules object, +/******/ // then flag all "chunkIds" as loaded and fire callback +/******/ var moduleId, chunkId, i = 0; +/******/ for(moduleId in moreModules) { +/******/ if(__webpack_require__.o(moreModules, moduleId)) { +/******/ __webpack_require__.m[moduleId] = moreModules[moduleId]; +/******/ } +/******/ } +/******/ if(runtime) runtime(__webpack_require__); +/******/ if(parentChunkLoadingFunction) parentChunkLoadingFunction(data); +/******/ for(;i < chunkIds.length; i++) { +/******/ chunkId = chunkIds[i]; +/******/ if(__webpack_require__.o(installedChunks, chunkId) && installedChunks[chunkId]) { +/******/ installedChunks[chunkId][0](); +/******/ } +/******/ installedChunks[chunkIds[i]] = 0; +/******/ } +/******/ +/******/ } +/******/ +/******/ var chunkLoadingGlobal = self["webpackChunk"] = self["webpackChunk"] || []; +/******/ chunkLoadingGlobal.forEach(webpackJsonpCallback.bind(null, 0)); +/******/ chunkLoadingGlobal.push = webpackJsonpCallback.bind(null, chunkLoadingGlobal.push.bind(chunkLoadingGlobal)); +/******/ })(); +/******/ +/************************************************************************/ +var __webpack_exports__ = {}; +// This entry need to be wrapped in an IIFE because it need to be isolated against other modules in the chunk. +(() => { +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _style_css__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(1); + + +/* eslint-disable-next-line no-unused-expressions */ +__webpack_require__.e(/* import() | async */ 0).then(__webpack_require__.bind(__webpack_require__, 2)); + +})(); + +/******/ })() +; \ No newline at end of file diff --git a/test/cases/chunkFilename/expected/webpack-5-importModule/0.async.css b/test/cases/chunkFilename/expected/webpack-5-importModule/0.async.css new file mode 100644 index 00000000..e665100a --- /dev/null +++ b/test/cases/chunkFilename/expected/webpack-5-importModule/0.async.css @@ -0,0 +1,4 @@ +.async { + color: red; +} + diff --git a/test/cases/chunkFilename/expected/webpack-5-importModule/main.css b/test/cases/chunkFilename/expected/webpack-5-importModule/main.css new file mode 100644 index 00000000..cebc5c1c --- /dev/null +++ b/test/cases/chunkFilename/expected/webpack-5-importModule/main.css @@ -0,0 +1,4 @@ +body { + background: red; +} + diff --git a/test/cases/contenthash-multiple-entries/expected/webpack-5-importModule/15a667c7583f9b9ec41d.css b/test/cases/contenthash-multiple-entries/expected/webpack-5-importModule/15a667c7583f9b9ec41d.css new file mode 100644 index 00000000..c6856116 --- /dev/null +++ b/test/cases/contenthash-multiple-entries/expected/webpack-5-importModule/15a667c7583f9b9ec41d.css @@ -0,0 +1,8 @@ +.styleA { + background: red; +} + +.styleB { + background: blue; +} + diff --git a/test/cases/contenthash-multiple-entries/expected/webpack-5-importModule/ffa19619c12a79d133f4.css b/test/cases/contenthash-multiple-entries/expected/webpack-5-importModule/ffa19619c12a79d133f4.css new file mode 100644 index 00000000..95d70a8e --- /dev/null +++ b/test/cases/contenthash-multiple-entries/expected/webpack-5-importModule/ffa19619c12a79d133f4.css @@ -0,0 +1,4 @@ +.styleA { + background: red; +} + diff --git a/test/cases/contenthash/expected/webpack-5-importModule/1.main.a7263f8f763dcf4051bc.css b/test/cases/contenthash/expected/webpack-5-importModule/1.main.a7263f8f763dcf4051bc.css new file mode 100644 index 00000000..cebc5c1c --- /dev/null +++ b/test/cases/contenthash/expected/webpack-5-importModule/1.main.a7263f8f763dcf4051bc.css @@ -0,0 +1,4 @@ +body { + background: red; +} + diff --git a/test/cases/contenthash/expected/webpack-5-importModule/2.main.a85c9b6a9dce223262b9.css b/test/cases/contenthash/expected/webpack-5-importModule/2.main.a85c9b6a9dce223262b9.css new file mode 100644 index 00000000..ec3b88b5 --- /dev/null +++ b/test/cases/contenthash/expected/webpack-5-importModule/2.main.a85c9b6a9dce223262b9.css @@ -0,0 +1,4 @@ +body { + background: green; +} + diff --git a/test/cases/dependOn-multiple-files-per-entry/expected/webpack-5-importModule/common.css b/test/cases/dependOn-multiple-files-per-entry/expected/webpack-5-importModule/common.css new file mode 100644 index 00000000..7b8c3886 --- /dev/null +++ b/test/cases/dependOn-multiple-files-per-entry/expected/webpack-5-importModule/common.css @@ -0,0 +1,8 @@ +.styleC { + background: red; +} + +.styleD { + background: blue; +} + diff --git a/test/cases/dependOn-multiple-files-per-entry/expected/webpack-5-importModule/common.js b/test/cases/dependOn-multiple-files-per-entry/expected/webpack-5-importModule/common.js new file mode 100644 index 00000000..b6d76b78 --- /dev/null +++ b/test/cases/dependOn-multiple-files-per-entry/expected/webpack-5-importModule/common.js @@ -0,0 +1,171 @@ +/******/ (() => { // webpackBootstrap +/******/ "use strict"; +/******/ var __webpack_modules__ = ([ +/* 0 */, +/* 1 */ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.r(__webpack_exports__); +// extracted by mini-css-extract-plugin + + +/***/ }), +/* 2 */, +/* 3 */ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.r(__webpack_exports__); +// extracted by mini-css-extract-plugin + + +/***/ }) +/******/ ]); +/************************************************************************/ +/******/ // The module cache +/******/ var __webpack_module_cache__ = {}; +/******/ +/******/ // The require function +/******/ function __webpack_require__(moduleId) { +/******/ // Check if module is in cache +/******/ var cachedModule = __webpack_module_cache__[moduleId]; +/******/ if (cachedModule !== undefined) { +/******/ return cachedModule.exports; +/******/ } +/******/ // Create a new module (and put it into the cache) +/******/ var module = __webpack_module_cache__[moduleId] = { +/******/ // no module.id needed +/******/ // no module.loaded needed +/******/ exports: {} +/******/ }; +/******/ +/******/ // Execute the module function +/******/ __webpack_modules__[moduleId](module, module.exports, __webpack_require__); +/******/ +/******/ // Return the exports of the module +/******/ return module.exports; +/******/ } +/******/ +/******/ // expose the modules object (__webpack_modules__) +/******/ __webpack_require__.m = __webpack_modules__; +/******/ +/************************************************************************/ +/******/ /* webpack/runtime/chunk loaded */ +/******/ (() => { +/******/ var deferred = []; +/******/ __webpack_require__.O = (result, chunkIds, fn, priority) => { +/******/ if(chunkIds) { +/******/ priority = priority || 0; +/******/ for(var i = deferred.length; i > 0 && deferred[i - 1][2] > priority; i--) deferred[i] = deferred[i - 1]; +/******/ deferred[i] = [chunkIds, fn, priority]; +/******/ return; +/******/ } +/******/ var notFulfilled = Infinity; +/******/ for (var i = 0; i < deferred.length; i++) { +/******/ var [chunkIds, fn, priority] = deferred[i]; +/******/ var fulfilled = true; +/******/ for (var j = 0; j < chunkIds.length; j++) { +/******/ if ((priority & 1 === 0 || notFulfilled >= priority) && Object.keys(__webpack_require__.O).every((key) => (__webpack_require__.O[key](chunkIds[j])))) { +/******/ chunkIds.splice(j--, 1); +/******/ } else { +/******/ fulfilled = false; +/******/ if(priority < notFulfilled) notFulfilled = priority; +/******/ } +/******/ } +/******/ if(fulfilled) { +/******/ deferred.splice(i--, 1) +/******/ result = fn(); +/******/ } +/******/ } +/******/ return result; +/******/ }; +/******/ })(); +/******/ +/******/ /* webpack/runtime/hasOwnProperty shorthand */ +/******/ (() => { +/******/ __webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop)) +/******/ })(); +/******/ +/******/ /* webpack/runtime/make namespace object */ +/******/ (() => { +/******/ // define __esModule on exports +/******/ __webpack_require__.r = (exports) => { +/******/ if(typeof Symbol !== 'undefined' && Symbol.toStringTag) { +/******/ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' }); +/******/ } +/******/ Object.defineProperty(exports, '__esModule', { value: true }); +/******/ }; +/******/ })(); +/******/ +/******/ /* webpack/runtime/jsonp chunk loading */ +/******/ (() => { +/******/ // no baseURI +/******/ +/******/ // object to store loaded and loading chunks +/******/ // undefined = chunk not loaded, null = chunk preloaded/prefetched +/******/ // [resolve, reject, Promise] = chunk loading, 0 = chunk loaded +/******/ var installedChunks = { +/******/ 0: 0 +/******/ }; +/******/ +/******/ // no chunk on demand loading +/******/ +/******/ // no prefetching +/******/ +/******/ // no preloaded +/******/ +/******/ // no HMR +/******/ +/******/ // no HMR manifest +/******/ +/******/ __webpack_require__.O.j = (chunkId) => (installedChunks[chunkId] === 0); +/******/ +/******/ // install a JSONP callback for chunk loading +/******/ var webpackJsonpCallback = (parentChunkLoadingFunction, data) => { +/******/ var [chunkIds, moreModules, runtime] = data; +/******/ // add "moreModules" to the modules object, +/******/ // then flag all "chunkIds" as loaded and fire callback +/******/ var moduleId, chunkId, i = 0; +/******/ for(moduleId in moreModules) { +/******/ if(__webpack_require__.o(moreModules, moduleId)) { +/******/ __webpack_require__.m[moduleId] = moreModules[moduleId]; +/******/ } +/******/ } +/******/ if(runtime) runtime(__webpack_require__); +/******/ if(parentChunkLoadingFunction) parentChunkLoadingFunction(data); +/******/ for(;i < chunkIds.length; i++) { +/******/ chunkId = chunkIds[i]; +/******/ if(__webpack_require__.o(installedChunks, chunkId) && installedChunks[chunkId]) { +/******/ installedChunks[chunkId][0](); +/******/ } +/******/ installedChunks[chunkIds[i]] = 0; +/******/ } +/******/ __webpack_require__.O(); +/******/ } +/******/ +/******/ var chunkLoadingGlobal = self["webpackChunk"] = self["webpackChunk"] || []; +/******/ chunkLoadingGlobal.forEach(webpackJsonpCallback.bind(null, 0)); +/******/ chunkLoadingGlobal.push = webpackJsonpCallback.bind(null, chunkLoadingGlobal.push.bind(chunkLoadingGlobal)); +/******/ })(); +/******/ +/************************************************************************/ +var __webpack_exports__ = {}; +// This entry need to be wrapped in an IIFE because it need to be isolated against other entry modules. +(() => { +var __webpack_exports__ = {}; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _styleC_css__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(1); + + +})(); + +// This entry need to be wrapped in an IIFE because it need to be isolated against other entry modules. +(() => { +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _styleD_css__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(3); + + +})(); + +__webpack_require__.O(); +/******/ })() +; \ No newline at end of file diff --git a/test/cases/dependOn-multiple-files-per-entry/expected/webpack-5-importModule/entry1.css b/test/cases/dependOn-multiple-files-per-entry/expected/webpack-5-importModule/entry1.css new file mode 100644 index 00000000..bd9b41d3 --- /dev/null +++ b/test/cases/dependOn-multiple-files-per-entry/expected/webpack-5-importModule/entry1.css @@ -0,0 +1,8 @@ +.styleB { + background: blue; +} + +.styleA { + background: red; +} + diff --git a/test/cases/dependOn-multiple-files-per-entry/expected/webpack-5-importModule/entry1.js b/test/cases/dependOn-multiple-files-per-entry/expected/webpack-5-importModule/entry1.js new file mode 100644 index 00000000..d31bf3c4 --- /dev/null +++ b/test/cases/dependOn-multiple-files-per-entry/expected/webpack-5-importModule/entry1.js @@ -0,0 +1,51 @@ +(self["webpackChunk"] = self["webpackChunk"] || []).push([[1],[ +/* 0 */, +/* 1 */, +/* 2 */, +/* 3 */, +/* 4 */ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _styleB_css__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(5); + + + +/***/ }), +/* 5 */ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +// extracted by mini-css-extract-plugin + + +/***/ }), +/* 6 */ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _styleA_css__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(7); + + + +/***/ }), +/* 7 */ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +// extracted by mini-css-extract-plugin + + +/***/ }) +], +/******/ __webpack_require__ => { // webpackRuntimeModules +/******/ "use strict"; +/******/ +/******/ var __webpack_exec__ = (moduleId) => (__webpack_require__(__webpack_require__.s = moduleId)) +/******/ var __webpack_exports__ = (__webpack_exec__(6), __webpack_exec__(4)); +/******/ } +]); \ No newline at end of file diff --git a/test/cases/dependOn/expected/webpack-5-importModule/common.css b/test/cases/dependOn/expected/webpack-5-importModule/common.css new file mode 100644 index 00000000..bbb56596 --- /dev/null +++ b/test/cases/dependOn/expected/webpack-5-importModule/common.css @@ -0,0 +1,4 @@ +.styleB { + background: blue; +} + diff --git a/test/cases/dependOn/expected/webpack-5-importModule/common.js b/test/cases/dependOn/expected/webpack-5-importModule/common.js new file mode 100644 index 00000000..d36ae66a --- /dev/null +++ b/test/cases/dependOn/expected/webpack-5-importModule/common.js @@ -0,0 +1,153 @@ +/******/ (() => { // webpackBootstrap +/******/ "use strict"; +/******/ var __webpack_modules__ = ([ +/* 0 */, +/* 1 */ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.r(__webpack_exports__); +// extracted by mini-css-extract-plugin + + +/***/ }) +/******/ ]); +/************************************************************************/ +/******/ // The module cache +/******/ var __webpack_module_cache__ = {}; +/******/ +/******/ // The require function +/******/ function __webpack_require__(moduleId) { +/******/ // Check if module is in cache +/******/ var cachedModule = __webpack_module_cache__[moduleId]; +/******/ if (cachedModule !== undefined) { +/******/ return cachedModule.exports; +/******/ } +/******/ // Create a new module (and put it into the cache) +/******/ var module = __webpack_module_cache__[moduleId] = { +/******/ // no module.id needed +/******/ // no module.loaded needed +/******/ exports: {} +/******/ }; +/******/ +/******/ // Execute the module function +/******/ __webpack_modules__[moduleId](module, module.exports, __webpack_require__); +/******/ +/******/ // Return the exports of the module +/******/ return module.exports; +/******/ } +/******/ +/******/ // expose the modules object (__webpack_modules__) +/******/ __webpack_require__.m = __webpack_modules__; +/******/ +/************************************************************************/ +/******/ /* webpack/runtime/chunk loaded */ +/******/ (() => { +/******/ var deferred = []; +/******/ __webpack_require__.O = (result, chunkIds, fn, priority) => { +/******/ if(chunkIds) { +/******/ priority = priority || 0; +/******/ for(var i = deferred.length; i > 0 && deferred[i - 1][2] > priority; i--) deferred[i] = deferred[i - 1]; +/******/ deferred[i] = [chunkIds, fn, priority]; +/******/ return; +/******/ } +/******/ var notFulfilled = Infinity; +/******/ for (var i = 0; i < deferred.length; i++) { +/******/ var [chunkIds, fn, priority] = deferred[i]; +/******/ var fulfilled = true; +/******/ for (var j = 0; j < chunkIds.length; j++) { +/******/ if ((priority & 1 === 0 || notFulfilled >= priority) && Object.keys(__webpack_require__.O).every((key) => (__webpack_require__.O[key](chunkIds[j])))) { +/******/ chunkIds.splice(j--, 1); +/******/ } else { +/******/ fulfilled = false; +/******/ if(priority < notFulfilled) notFulfilled = priority; +/******/ } +/******/ } +/******/ if(fulfilled) { +/******/ deferred.splice(i--, 1) +/******/ result = fn(); +/******/ } +/******/ } +/******/ return result; +/******/ }; +/******/ })(); +/******/ +/******/ /* webpack/runtime/hasOwnProperty shorthand */ +/******/ (() => { +/******/ __webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop)) +/******/ })(); +/******/ +/******/ /* webpack/runtime/make namespace object */ +/******/ (() => { +/******/ // define __esModule on exports +/******/ __webpack_require__.r = (exports) => { +/******/ if(typeof Symbol !== 'undefined' && Symbol.toStringTag) { +/******/ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' }); +/******/ } +/******/ Object.defineProperty(exports, '__esModule', { value: true }); +/******/ }; +/******/ })(); +/******/ +/******/ /* webpack/runtime/jsonp chunk loading */ +/******/ (() => { +/******/ // no baseURI +/******/ +/******/ // object to store loaded and loading chunks +/******/ // undefined = chunk not loaded, null = chunk preloaded/prefetched +/******/ // [resolve, reject, Promise] = chunk loading, 0 = chunk loaded +/******/ var installedChunks = { +/******/ 0: 0 +/******/ }; +/******/ +/******/ // no chunk on demand loading +/******/ +/******/ // no prefetching +/******/ +/******/ // no preloaded +/******/ +/******/ // no HMR +/******/ +/******/ // no HMR manifest +/******/ +/******/ __webpack_require__.O.j = (chunkId) => (installedChunks[chunkId] === 0); +/******/ +/******/ // install a JSONP callback for chunk loading +/******/ var webpackJsonpCallback = (parentChunkLoadingFunction, data) => { +/******/ var [chunkIds, moreModules, runtime] = data; +/******/ // add "moreModules" to the modules object, +/******/ // then flag all "chunkIds" as loaded and fire callback +/******/ var moduleId, chunkId, i = 0; +/******/ for(moduleId in moreModules) { +/******/ if(__webpack_require__.o(moreModules, moduleId)) { +/******/ __webpack_require__.m[moduleId] = moreModules[moduleId]; +/******/ } +/******/ } +/******/ if(runtime) runtime(__webpack_require__); +/******/ if(parentChunkLoadingFunction) parentChunkLoadingFunction(data); +/******/ for(;i < chunkIds.length; i++) { +/******/ chunkId = chunkIds[i]; +/******/ if(__webpack_require__.o(installedChunks, chunkId) && installedChunks[chunkId]) { +/******/ installedChunks[chunkId][0](); +/******/ } +/******/ installedChunks[chunkIds[i]] = 0; +/******/ } +/******/ __webpack_require__.O(); +/******/ } +/******/ +/******/ var chunkLoadingGlobal = self["webpackChunk"] = self["webpackChunk"] || []; +/******/ chunkLoadingGlobal.forEach(webpackJsonpCallback.bind(null, 0)); +/******/ chunkLoadingGlobal.push = webpackJsonpCallback.bind(null, chunkLoadingGlobal.push.bind(chunkLoadingGlobal)); +/******/ })(); +/******/ +/************************************************************************/ +var __webpack_exports__ = {}; +// This entry need to be wrapped in an IIFE because it need to be isolated against other modules in the chunk. +(() => { +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _styleB_css__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(1); + + +})(); + +__webpack_require__.O(); +/******/ })() +; \ No newline at end of file diff --git a/test/cases/dependOn/expected/webpack-5-importModule/entry1.css b/test/cases/dependOn/expected/webpack-5-importModule/entry1.css new file mode 100644 index 00000000..95d70a8e --- /dev/null +++ b/test/cases/dependOn/expected/webpack-5-importModule/entry1.css @@ -0,0 +1,4 @@ +.styleA { + background: red; +} + diff --git a/test/cases/dependOn/expected/webpack-5-importModule/entry1.js b/test/cases/dependOn/expected/webpack-5-importModule/entry1.js new file mode 100644 index 00000000..b66131d3 --- /dev/null +++ b/test/cases/dependOn/expected/webpack-5-importModule/entry1.js @@ -0,0 +1,30 @@ +(self["webpackChunk"] = self["webpackChunk"] || []).push([[1],[ +/* 0 */, +/* 1 */, +/* 2 */ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _styleA_css__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(3); + + + +/***/ }), +/* 3 */ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +// extracted by mini-css-extract-plugin + + +/***/ }) +], +/******/ __webpack_require__ => { // webpackRuntimeModules +/******/ "use strict"; +/******/ +/******/ var __webpack_exec__ = (moduleId) => (__webpack_require__(__webpack_require__.s = moduleId)) +/******/ var __webpack_exports__ = (__webpack_exec__(2)); +/******/ } +]); \ No newline at end of file diff --git a/test/cases/devtool-source-map-from-loaders/expected/webpack-5-importModule/main.css b/test/cases/devtool-source-map-from-loaders/expected/webpack-5-importModule/main.css new file mode 100644 index 00000000..8f8cf968 --- /dev/null +++ b/test/cases/devtool-source-map-from-loaders/expected/webpack-5-importModule/main.css @@ -0,0 +1,6 @@ +body { + background: red; +} + + +/*# sourceMappingURL=main.css.map*/ \ No newline at end of file diff --git a/test/cases/devtool-source-map-from-loaders/expected/webpack-5-importModule/main.css.map b/test/cases/devtool-source-map-from-loaders/expected/webpack-5-importModule/main.css.map new file mode 100644 index 00000000..bb767168 --- /dev/null +++ b/test/cases/devtool-source-map-from-loaders/expected/webpack-5-importModule/main.css.map @@ -0,0 +1 @@ +{"version":3,"sources":["webpack:///./style.css"],"names":[],"mappings":"AAAA;EACE,eAAe;AACjB","file":"main.css","sourcesContent":["body {\n background: red;\n}\n"],"sourceRoot":""} \ No newline at end of file diff --git a/test/cases/devtool-source-map-no-source-maps-from-loaders/expected/webpack-5-importModule/main.css b/test/cases/devtool-source-map-no-source-maps-from-loaders/expected/webpack-5-importModule/main.css new file mode 100644 index 00000000..cebc5c1c --- /dev/null +++ b/test/cases/devtool-source-map-no-source-maps-from-loaders/expected/webpack-5-importModule/main.css @@ -0,0 +1,4 @@ +body { + background: red; +} + diff --git a/test/cases/es-module-concatenation-modules/expected/webpack-5-importModule/main.css b/test/cases/es-module-concatenation-modules/expected/webpack-5-importModule/main.css new file mode 100644 index 00000000..414d12e5 --- /dev/null +++ b/test/cases/es-module-concatenation-modules/expected/webpack-5-importModule/main.css @@ -0,0 +1,12 @@ +.foo__a { + background: red; +} + +.foo__b { + background: green; +} + +.foo__c { + background: blue; +} + diff --git a/test/cases/es-module-concatenation-modules/expected/webpack-5-importModule/main.js b/test/cases/es-module-concatenation-modules/expected/webpack-5-importModule/main.js new file mode 100644 index 00000000..4f1059be --- /dev/null +++ b/test/cases/es-module-concatenation-modules/expected/webpack-5-importModule/main.js @@ -0,0 +1,93 @@ +/******/ (() => { // webpackBootstrap +/******/ "use strict"; +/******/ // The require scope +/******/ var __webpack_require__ = {}; +/******/ +/************************************************************************/ +/******/ /* webpack/runtime/define property getters */ +/******/ (() => { +/******/ // define getter functions for harmony exports +/******/ __webpack_require__.d = (exports, definition) => { +/******/ for(var key in definition) { +/******/ if(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) { +/******/ Object.defineProperty(exports, key, { enumerable: true, get: definition[key] }); +/******/ } +/******/ } +/******/ }; +/******/ })(); +/******/ +/******/ /* webpack/runtime/hasOwnProperty shorthand */ +/******/ (() => { +/******/ __webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop)) +/******/ })(); +/******/ +/******/ /* webpack/runtime/make namespace object */ +/******/ (() => { +/******/ // define __esModule on exports +/******/ __webpack_require__.r = (exports) => { +/******/ if(typeof Symbol !== 'undefined' && Symbol.toStringTag) { +/******/ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' }); +/******/ } +/******/ Object.defineProperty(exports, '__esModule', { value: true }); +/******/ }; +/******/ })(); +/******/ +/************************************************************************/ +var __webpack_exports__ = {}; +// ESM COMPAT FLAG +__webpack_require__.r(__webpack_exports__); + +// EXPORTS +__webpack_require__.d(__webpack_exports__, { + "a": () => (/* reexport */ a_namespaceObject), + "b": () => (/* reexport */ b_namespaceObject), + "c": () => (/* reexport */ c) +}); + +// NAMESPACE OBJECT: ./a.css +var a_namespaceObject = {}; +__webpack_require__.r(a_namespaceObject); +__webpack_require__.d(a_namespaceObject, { + "a": () => (a) +}); + +// NAMESPACE OBJECT: ./b.css +var b_namespaceObject = {}; +__webpack_require__.r(b_namespaceObject); +__webpack_require__.d(b_namespaceObject, { + "b": () => (b) +}); + +// NAMESPACE OBJECT: ./index.js +var index_namespaceObject = {}; +__webpack_require__.r(index_namespaceObject); +__webpack_require__.d(index_namespaceObject, { + "a": () => (a_namespaceObject), + "b": () => (b_namespaceObject), + "c": () => (c) +}); + +;// CONCATENATED MODULE: ./a.css +// extracted by mini-css-extract-plugin +const a = "foo__a"; +;// CONCATENATED MODULE: ./b.css +// extracted by mini-css-extract-plugin +const b = "foo__b"; +;// CONCATENATED MODULE: ./c.css +// extracted by mini-css-extract-plugin +const c = "foo__c"; +;// CONCATENATED MODULE: ./index.js +/* eslint-disable import/no-namespace */ + + + + + + + + +// eslint-disable-next-line no-console +console.log(index_namespaceObject); + +/******/ })() +; \ No newline at end of file diff --git a/test/cases/es-module-concatenation/expected/webpack-5-importModule/main.css b/test/cases/es-module-concatenation/expected/webpack-5-importModule/main.css new file mode 100644 index 00000000..a5728976 --- /dev/null +++ b/test/cases/es-module-concatenation/expected/webpack-5-importModule/main.css @@ -0,0 +1,12 @@ +.a { + background: red; +} + +.b { + background: green; +} + +.c { + background: blue; +} + diff --git a/test/cases/es-module-concatenation/expected/webpack-5-importModule/main.js b/test/cases/es-module-concatenation/expected/webpack-5-importModule/main.js new file mode 100644 index 00000000..394a6125 --- /dev/null +++ b/test/cases/es-module-concatenation/expected/webpack-5-importModule/main.js @@ -0,0 +1,38 @@ +/******/ (() => { // webpackBootstrap +/******/ "use strict"; +/******/ // The require scope +/******/ var __webpack_require__ = {}; +/******/ +/************************************************************************/ +/******/ /* webpack/runtime/make namespace object */ +/******/ (() => { +/******/ // define __esModule on exports +/******/ __webpack_require__.r = (exports) => { +/******/ if(typeof Symbol !== 'undefined' && Symbol.toStringTag) { +/******/ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' }); +/******/ } +/******/ Object.defineProperty(exports, '__esModule', { value: true }); +/******/ }; +/******/ })(); +/******/ +/************************************************************************/ +var __webpack_exports__ = {}; +// ESM COMPAT FLAG +__webpack_require__.r(__webpack_exports__); + +;// CONCATENATED MODULE: ./a.css +// extracted by mini-css-extract-plugin + +;// CONCATENATED MODULE: ./b.css +// extracted by mini-css-extract-plugin + +;// CONCATENATED MODULE: ./c.css +// extracted by mini-css-extract-plugin + +;// CONCATENATED MODULE: ./index.js + + + + +/******/ })() +; \ No newline at end of file diff --git a/test/cases/es-named-export/expected/webpack-5-importModule/main.css b/test/cases/es-named-export/expected/webpack-5-importModule/main.css new file mode 100644 index 00000000..aa9b1569 --- /dev/null +++ b/test/cases/es-named-export/expected/webpack-5-importModule/main.css @@ -0,0 +1,12 @@ +.foo__style__a-class { + background: red; +} + +.foo__style__b__class { + color: green; +} + +.foo__style__cClass { + color: blue; +} + diff --git a/test/cases/es-named-export/expected/webpack-5-importModule/main.js b/test/cases/es-named-export/expected/webpack-5-importModule/main.js new file mode 100644 index 00000000..5017ec83 --- /dev/null +++ b/test/cases/es-named-export/expected/webpack-5-importModule/main.js @@ -0,0 +1,89 @@ +/******/ (() => { // webpackBootstrap +/******/ "use strict"; +/******/ var __webpack_modules__ = ([ +/* 0 */, +/* 1 */ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "aClass": () => (/* binding */ aClass), +/* harmony export */ "bClass": () => (/* binding */ bClass), +/* harmony export */ "cClass": () => (/* binding */ cClass) +/* harmony export */ }); +// extracted by mini-css-extract-plugin +const aClass = "foo__style__a-class"; +const bClass = "foo__style__b__class"; +const cClass = "foo__style__cClass"; + +/***/ }) +/******/ ]); +/************************************************************************/ +/******/ // The module cache +/******/ var __webpack_module_cache__ = {}; +/******/ +/******/ // The require function +/******/ function __webpack_require__(moduleId) { +/******/ // Check if module is in cache +/******/ var cachedModule = __webpack_module_cache__[moduleId]; +/******/ if (cachedModule !== undefined) { +/******/ return cachedModule.exports; +/******/ } +/******/ // Create a new module (and put it into the cache) +/******/ var module = __webpack_module_cache__[moduleId] = { +/******/ // no module.id needed +/******/ // no module.loaded needed +/******/ exports: {} +/******/ }; +/******/ +/******/ // Execute the module function +/******/ __webpack_modules__[moduleId](module, module.exports, __webpack_require__); +/******/ +/******/ // Return the exports of the module +/******/ return module.exports; +/******/ } +/******/ +/************************************************************************/ +/******/ /* webpack/runtime/define property getters */ +/******/ (() => { +/******/ // define getter functions for harmony exports +/******/ __webpack_require__.d = (exports, definition) => { +/******/ for(var key in definition) { +/******/ if(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) { +/******/ Object.defineProperty(exports, key, { enumerable: true, get: definition[key] }); +/******/ } +/******/ } +/******/ }; +/******/ })(); +/******/ +/******/ /* webpack/runtime/hasOwnProperty shorthand */ +/******/ (() => { +/******/ __webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop)) +/******/ })(); +/******/ +/******/ /* webpack/runtime/make namespace object */ +/******/ (() => { +/******/ // define __esModule on exports +/******/ __webpack_require__.r = (exports) => { +/******/ if(typeof Symbol !== 'undefined' && Symbol.toStringTag) { +/******/ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' }); +/******/ } +/******/ Object.defineProperty(exports, '__esModule', { value: true }); +/******/ }; +/******/ })(); +/******/ +/************************************************************************/ +var __webpack_exports__ = {}; +// This entry need to be wrapped in an IIFE because it need to be isolated against other modules in the chunk. +(() => { +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _style_css__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(1); + + +// eslint-disable-next-line no-console +console.log({ css: _style_css__WEBPACK_IMPORTED_MODULE_0__.default, aClass: _style_css__WEBPACK_IMPORTED_MODULE_0__.aClass, bClass: _style_css__WEBPACK_IMPORTED_MODULE_0__.bClass, cClass: _style_css__WEBPACK_IMPORTED_MODULE_0__.cClass }); + +})(); + +/******/ })() +; \ No newline at end of file diff --git a/test/cases/filename-without-template/expected/webpack-5-importModule/0.main.css b/test/cases/filename-without-template/expected/webpack-5-importModule/0.main.css new file mode 100644 index 00000000..e665100a --- /dev/null +++ b/test/cases/filename-without-template/expected/webpack-5-importModule/0.main.css @@ -0,0 +1,4 @@ +.async { + color: red; +} + diff --git a/test/cases/filename-without-template/expected/webpack-5-importModule/main.css b/test/cases/filename-without-template/expected/webpack-5-importModule/main.css new file mode 100644 index 00000000..cebc5c1c --- /dev/null +++ b/test/cases/filename-without-template/expected/webpack-5-importModule/main.css @@ -0,0 +1,4 @@ +body { + background: red; +} + diff --git a/test/cases/hmr/expected/webpack-5-importModule/main.css b/test/cases/hmr/expected/webpack-5-importModule/main.css new file mode 100644 index 00000000..6f77cc07 --- /dev/null +++ b/test/cases/hmr/expected/webpack-5-importModule/main.css @@ -0,0 +1,24 @@ +@import url(https://some/other/external/css); +@import url(https://some/external/css); +body { + background: red; +} + +.c { + background: red; +} + +.c { + color: yellow; +} + +.b { + background: red; +} + +.b { + color: yellow; +} + + + diff --git a/test/cases/hmr/expected/webpack-5-importModule/main.js b/test/cases/hmr/expected/webpack-5-importModule/main.js new file mode 100644 index 00000000..1642f5af --- /dev/null +++ b/test/cases/hmr/expected/webpack-5-importModule/main.js @@ -0,0 +1,1454 @@ +/******/ (() => { // webpackBootstrap +/******/ var __webpack_modules__ = ([ +/* 0 */ +/***/ ((module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +// extracted by mini-css-extract-plugin + + if(true) { + // + var cssReload = __webpack_require__(1)(module.id, {"locals":false}); + module.hot.dispose(cssReload); + module.hot.accept(undefined, cssReload); + } + + +/***/ }), +/* 1 */ +/***/ ((module, __unused_webpack_exports, __webpack_require__) => { + +/* eslint-env browser */ +/* + eslint-disable + no-console, + func-names +*/ + +const normalizeUrl = __webpack_require__(2); + +const srcByModuleId = Object.create(null); + +const noDocument = typeof document === 'undefined'; + +const { forEach } = Array.prototype; + +function debounce(fn, time) { + let timeout = 0; + + return function () { + const self = this; + // eslint-disable-next-line prefer-rest-params + const args = arguments; + + const functionCall = function functionCall() { + return fn.apply(self, args); + }; + + clearTimeout(timeout); + timeout = setTimeout(functionCall, time); + }; +} + +function noop() {} + +function getCurrentScriptUrl(moduleId) { + let src = srcByModuleId[moduleId]; + + if (!src) { + if (document.currentScript) { + ({ src } = document.currentScript); + } else { + const scripts = document.getElementsByTagName('script'); + const lastScriptTag = scripts[scripts.length - 1]; + + if (lastScriptTag) { + ({ src } = lastScriptTag); + } + } + + srcByModuleId[moduleId] = src; + } + + return function (fileMap) { + if (!src) { + return null; + } + + const splitResult = src.split(/([^\\/]+)\.js$/); + const filename = splitResult && splitResult[1]; + + if (!filename) { + return [src.replace('.js', '.css')]; + } + + if (!fileMap) { + return [src.replace('.js', '.css')]; + } + + return fileMap.split(',').map((mapRule) => { + const reg = new RegExp(`${filename}\\.js$`, 'g'); + + return normalizeUrl( + src.replace(reg, `${mapRule.replace(/{fileName}/g, filename)}.css`) + ); + }); + }; +} + +function updateCss(el, url) { + if (!url) { + if (!el.href) { + return; + } + + // eslint-disable-next-line + url = el.href.split('?')[0]; + } + + if (!isUrlRequest(url)) { + return; + } + + if (el.isLoaded === false) { + // We seem to be about to replace a css link that hasn't loaded yet. + // We're probably changing the same file more than once. + return; + } + + if (!url || !(url.indexOf('.css') > -1)) { + return; + } + + // eslint-disable-next-line no-param-reassign + el.visited = true; + + const newEl = el.cloneNode(); + + newEl.isLoaded = false; + + newEl.addEventListener('load', () => { + if (newEl.isLoaded) { + return; + } + + newEl.isLoaded = true; + el.parentNode.removeChild(el); + }); + + newEl.addEventListener('error', () => { + if (newEl.isLoaded) { + return; + } + + newEl.isLoaded = true; + el.parentNode.removeChild(el); + }); + + newEl.href = `${url}?${Date.now()}`; + + if (el.nextSibling) { + el.parentNode.insertBefore(newEl, el.nextSibling); + } else { + el.parentNode.appendChild(newEl); + } +} + +function getReloadUrl(href, src) { + let ret; + + // eslint-disable-next-line no-param-reassign + href = normalizeUrl(href, { stripWWW: false }); + + // eslint-disable-next-line array-callback-return + src.some((url) => { + if (href.indexOf(src) > -1) { + ret = url; + } + }); + + return ret; +} + +function reloadStyle(src) { + if (!src) { + return false; + } + + const elements = document.querySelectorAll('link'); + let loaded = false; + + forEach.call(elements, (el) => { + if (!el.href) { + return; + } + + const url = getReloadUrl(el.href, src); + + if (!isUrlRequest(url)) { + return; + } + + if (el.visited === true) { + return; + } + + if (url) { + updateCss(el, url); + + loaded = true; + } + }); + + return loaded; +} + +function reloadAll() { + const elements = document.querySelectorAll('link'); + + forEach.call(elements, (el) => { + if (el.visited === true) { + return; + } + + updateCss(el); + }); +} + +function isUrlRequest(url) { + // An URL is not an request if + + // It is not http or https + if (!/^https?:/i.test(url)) { + return false; + } + + return true; +} + +module.exports = function (moduleId, options) { + if (noDocument) { + console.log('no window.document found, will not HMR CSS'); + + return noop; + } + + const getScriptSrc = getCurrentScriptUrl(moduleId); + + function update() { + const src = getScriptSrc(options.filename); + const reloaded = reloadStyle(src); + + if (options.locals) { + console.log('[HMR] Detected local css modules. Reload all css'); + + reloadAll(); + + return; + } + + if (reloaded) { + console.log('[HMR] css reload %s', src.join(' ')); + } else { + console.log('[HMR] Reload all css'); + + reloadAll(); + } + } + + return debounce(update, 50); +}; + + +/***/ }), +/* 2 */ +/***/ ((module) => { + +/* eslint-disable */ + +function normalizeUrl(pathComponents) { + return pathComponents + .reduce(function (accumulator, item) { + switch (item) { + case '..': + accumulator.pop(); + break; + case '.': + break; + default: + accumulator.push(item); + } + + return accumulator; + }, []) + .join('/'); +} + +module.exports = function (urlString) { + urlString = urlString.trim(); + + if (/^data:/i.test(urlString)) { + return urlString; + } + + var protocol = + urlString.indexOf('//') !== -1 ? urlString.split('//')[0] + '//' : ''; + var components = urlString.replace(new RegExp(protocol, 'i'), '').split('/'); + var host = components[0].toLowerCase().replace(/\.$/, ''); + + components[0] = ''; + + var path = normalizeUrl(components); + + return protocol + host + path; +}; + + +/***/ }) +/******/ ]); +/************************************************************************/ +/******/ // The module cache +/******/ var __webpack_module_cache__ = {}; +/******/ +/******/ // The require function +/******/ function __webpack_require__(moduleId) { +/******/ // Check if module is in cache +/******/ var cachedModule = __webpack_module_cache__[moduleId]; +/******/ if (cachedModule !== undefined) { +/******/ if (cachedModule.error !== undefined) throw cachedModule.error; +/******/ return cachedModule.exports; +/******/ } +/******/ // Create a new module (and put it into the cache) +/******/ var module = __webpack_module_cache__[moduleId] = { +/******/ id: moduleId, +/******/ // no module.loaded needed +/******/ exports: {} +/******/ }; +/******/ +/******/ // Execute the module function +/******/ try { +/******/ var execOptions = { id: moduleId, module: module, factory: __webpack_modules__[moduleId], require: __webpack_require__ }; +/******/ __webpack_require__.i.forEach(function(handler) { handler(execOptions); }); +/******/ module = execOptions.module; +/******/ execOptions.factory.call(module.exports, module, module.exports, execOptions.require); +/******/ } catch(e) { +/******/ module.error = e; +/******/ throw e; +/******/ } +/******/ +/******/ // Return the exports of the module +/******/ return module.exports; +/******/ } +/******/ +/******/ // expose the modules object (__webpack_modules__) +/******/ __webpack_require__.m = __webpack_modules__; +/******/ +/******/ // expose the module cache +/******/ __webpack_require__.c = __webpack_module_cache__; +/******/ +/******/ // expose the module execution interceptor +/******/ __webpack_require__.i = []; +/******/ +/************************************************************************/ +/******/ /* webpack/runtime/get javascript update chunk filename */ +/******/ (() => { +/******/ // This function allow to reference all chunks +/******/ __webpack_require__.hu = (chunkId) => { +/******/ // return url for filenames based on template +/******/ return "" + chunkId + "." + __webpack_require__.h() + ".hot-update.js"; +/******/ }; +/******/ })(); +/******/ +/******/ /* webpack/runtime/get mini-css chunk filename */ +/******/ (() => { +/******/ // This function allow to reference all chunks +/******/ __webpack_require__.miniCssF = (chunkId) => { +/******/ // return url for filenames based on template +/******/ return undefined; +/******/ }; +/******/ })(); +/******/ +/******/ /* webpack/runtime/get update manifest filename */ +/******/ (() => { +/******/ __webpack_require__.hmrF = () => ("main." + __webpack_require__.h() + ".hot-update.json"); +/******/ })(); +/******/ +/******/ /* webpack/runtime/getFullHash */ +/******/ (() => { +/******/ __webpack_require__.h = () => ("xxxxxxxxxxxxxxxxxxxxxx") +/******/ })(); +/******/ +/******/ /* webpack/runtime/global */ +/******/ (() => { +/******/ __webpack_require__.g = (function() { +/******/ if (typeof globalThis === 'object') return globalThis; +/******/ try { +/******/ return this || new Function('return this')(); +/******/ } catch (e) { +/******/ if (typeof window === 'object') return window; +/******/ } +/******/ })(); +/******/ })(); +/******/ +/******/ /* webpack/runtime/hasOwnProperty shorthand */ +/******/ (() => { +/******/ __webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop)) +/******/ })(); +/******/ +/******/ /* webpack/runtime/load script */ +/******/ (() => { +/******/ var inProgress = {}; +/******/ // data-webpack is not used as build has no uniqueName +/******/ // loadScript function to load a script via script tag +/******/ __webpack_require__.l = (url, done, key, chunkId) => { +/******/ if(inProgress[url]) { inProgress[url].push(done); return; } +/******/ var script, needAttach; +/******/ if(key !== undefined) { +/******/ var scripts = document.getElementsByTagName("script"); +/******/ for(var i = 0; i < scripts.length; i++) { +/******/ var s = scripts[i]; +/******/ if(s.getAttribute("src") == url) { script = s; break; } +/******/ } +/******/ } +/******/ if(!script) { +/******/ needAttach = true; +/******/ script = document.createElement('script'); +/******/ +/******/ script.charset = 'utf-8'; +/******/ script.timeout = 120; +/******/ if (__webpack_require__.nc) { +/******/ script.setAttribute("nonce", __webpack_require__.nc); +/******/ } +/******/ +/******/ script.src = url; +/******/ } +/******/ inProgress[url] = [done]; +/******/ var onScriptComplete = (prev, event) => { +/******/ // avoid mem leaks in IE. +/******/ script.onerror = script.onload = null; +/******/ clearTimeout(timeout); +/******/ var doneFns = inProgress[url]; +/******/ delete inProgress[url]; +/******/ script.parentNode && script.parentNode.removeChild(script); +/******/ doneFns && doneFns.forEach((fn) => (fn(event))); +/******/ if(prev) return prev(event); +/******/ } +/******/ ; +/******/ var timeout = setTimeout(onScriptComplete.bind(null, undefined, { type: 'timeout', target: script }), 120000); +/******/ script.onerror = onScriptComplete.bind(null, script.onerror); +/******/ script.onload = onScriptComplete.bind(null, script.onload); +/******/ needAttach && document.head.appendChild(script); +/******/ }; +/******/ })(); +/******/ +/******/ /* webpack/runtime/make namespace object */ +/******/ (() => { +/******/ // define __esModule on exports +/******/ __webpack_require__.r = (exports) => { +/******/ if(typeof Symbol !== 'undefined' && Symbol.toStringTag) { +/******/ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' }); +/******/ } +/******/ Object.defineProperty(exports, '__esModule', { value: true }); +/******/ }; +/******/ })(); +/******/ +/******/ /* webpack/runtime/hot module replacement */ +/******/ (() => { +/******/ var currentModuleData = {}; +/******/ var installedModules = __webpack_require__.c; +/******/ +/******/ // module and require creation +/******/ var currentChildModule; +/******/ var currentParents = []; +/******/ +/******/ // status +/******/ var registeredStatusHandlers = []; +/******/ var currentStatus = "idle"; +/******/ +/******/ // while downloading +/******/ var blockingPromises; +/******/ +/******/ // The update info +/******/ var currentUpdateApplyHandlers; +/******/ var queuedInvalidatedModules; +/******/ +/******/ // eslint-disable-next-line no-unused-vars +/******/ __webpack_require__.hmrD = currentModuleData; +/******/ +/******/ __webpack_require__.i.push(function (options) { +/******/ var module = options.module; +/******/ var require = createRequire(options.require, options.id); +/******/ module.hot = createModuleHotObject(options.id, module); +/******/ module.parents = currentParents; +/******/ module.children = []; +/******/ currentParents = []; +/******/ options.require = require; +/******/ }); +/******/ +/******/ __webpack_require__.hmrC = {}; +/******/ __webpack_require__.hmrI = {}; +/******/ +/******/ function createRequire(require, moduleId) { +/******/ var me = installedModules[moduleId]; +/******/ if (!me) return require; +/******/ var fn = function (request) { +/******/ if (me.hot.active) { +/******/ if (installedModules[request]) { +/******/ var parents = installedModules[request].parents; +/******/ if (parents.indexOf(moduleId) === -1) { +/******/ parents.push(moduleId); +/******/ } +/******/ } else { +/******/ currentParents = [moduleId]; +/******/ currentChildModule = request; +/******/ } +/******/ if (me.children.indexOf(request) === -1) { +/******/ me.children.push(request); +/******/ } +/******/ } else { +/******/ console.warn( +/******/ "[HMR] unexpected require(" + +/******/ request + +/******/ ") from disposed module " + +/******/ moduleId +/******/ ); +/******/ currentParents = []; +/******/ } +/******/ return require(request); +/******/ }; +/******/ var createPropertyDescriptor = function (name) { +/******/ return { +/******/ configurable: true, +/******/ enumerable: true, +/******/ get: function () { +/******/ return require[name]; +/******/ }, +/******/ set: function (value) { +/******/ require[name] = value; +/******/ } +/******/ }; +/******/ }; +/******/ for (var name in require) { +/******/ if (Object.prototype.hasOwnProperty.call(require, name) && name !== "e") { +/******/ Object.defineProperty(fn, name, createPropertyDescriptor(name)); +/******/ } +/******/ } +/******/ fn.e = function (chunkId) { +/******/ return trackBlockingPromise(require.e(chunkId)); +/******/ }; +/******/ return fn; +/******/ } +/******/ +/******/ function createModuleHotObject(moduleId, me) { +/******/ var _main = currentChildModule !== moduleId; +/******/ var hot = { +/******/ // private stuff +/******/ _acceptedDependencies: {}, +/******/ _acceptedErrorHandlers: {}, +/******/ _declinedDependencies: {}, +/******/ _selfAccepted: false, +/******/ _selfDeclined: false, +/******/ _selfInvalidated: false, +/******/ _disposeHandlers: [], +/******/ _main: _main, +/******/ _requireSelf: function () { +/******/ currentParents = me.parents.slice(); +/******/ currentChildModule = _main ? undefined : moduleId; +/******/ __webpack_require__(moduleId); +/******/ }, +/******/ +/******/ // Module API +/******/ active: true, +/******/ accept: function (dep, callback, errorHandler) { +/******/ if (dep === undefined) hot._selfAccepted = true; +/******/ else if (typeof dep === "function") hot._selfAccepted = dep; +/******/ else if (typeof dep === "object" && dep !== null) { +/******/ for (var i = 0; i < dep.length; i++) { +/******/ hot._acceptedDependencies[dep[i]] = callback || function () {}; +/******/ hot._acceptedErrorHandlers[dep[i]] = errorHandler; +/******/ } +/******/ } else { +/******/ hot._acceptedDependencies[dep] = callback || function () {}; +/******/ hot._acceptedErrorHandlers[dep] = errorHandler; +/******/ } +/******/ }, +/******/ decline: function (dep) { +/******/ if (dep === undefined) hot._selfDeclined = true; +/******/ else if (typeof dep === "object" && dep !== null) +/******/ for (var i = 0; i < dep.length; i++) +/******/ hot._declinedDependencies[dep[i]] = true; +/******/ else hot._declinedDependencies[dep] = true; +/******/ }, +/******/ dispose: function (callback) { +/******/ hot._disposeHandlers.push(callback); +/******/ }, +/******/ addDisposeHandler: function (callback) { +/******/ hot._disposeHandlers.push(callback); +/******/ }, +/******/ removeDisposeHandler: function (callback) { +/******/ var idx = hot._disposeHandlers.indexOf(callback); +/******/ if (idx >= 0) hot._disposeHandlers.splice(idx, 1); +/******/ }, +/******/ invalidate: function () { +/******/ this._selfInvalidated = true; +/******/ switch (currentStatus) { +/******/ case "idle": +/******/ currentUpdateApplyHandlers = []; +/******/ Object.keys(__webpack_require__.hmrI).forEach(function (key) { +/******/ __webpack_require__.hmrI[key]( +/******/ moduleId, +/******/ currentUpdateApplyHandlers +/******/ ); +/******/ }); +/******/ setStatus("ready"); +/******/ break; +/******/ case "ready": +/******/ Object.keys(__webpack_require__.hmrI).forEach(function (key) { +/******/ __webpack_require__.hmrI[key]( +/******/ moduleId, +/******/ currentUpdateApplyHandlers +/******/ ); +/******/ }); +/******/ break; +/******/ case "prepare": +/******/ case "check": +/******/ case "dispose": +/******/ case "apply": +/******/ (queuedInvalidatedModules = queuedInvalidatedModules || []).push( +/******/ moduleId +/******/ ); +/******/ break; +/******/ default: +/******/ // ignore requests in error states +/******/ break; +/******/ } +/******/ }, +/******/ +/******/ // Management API +/******/ check: hotCheck, +/******/ apply: hotApply, +/******/ status: function (l) { +/******/ if (!l) return currentStatus; +/******/ registeredStatusHandlers.push(l); +/******/ }, +/******/ addStatusHandler: function (l) { +/******/ registeredStatusHandlers.push(l); +/******/ }, +/******/ removeStatusHandler: function (l) { +/******/ var idx = registeredStatusHandlers.indexOf(l); +/******/ if (idx >= 0) registeredStatusHandlers.splice(idx, 1); +/******/ }, +/******/ +/******/ //inherit from previous dispose call +/******/ data: currentModuleData[moduleId] +/******/ }; +/******/ currentChildModule = undefined; +/******/ return hot; +/******/ } +/******/ +/******/ function setStatus(newStatus) { +/******/ currentStatus = newStatus; +/******/ for (var i = 0; i < registeredStatusHandlers.length; i++) +/******/ registeredStatusHandlers[i].call(null, newStatus); +/******/ } +/******/ +/******/ function trackBlockingPromise(promise) { +/******/ switch (currentStatus) { +/******/ case "ready": +/******/ setStatus("prepare"); +/******/ blockingPromises.push(promise); +/******/ waitForBlockingPromises(function () { +/******/ setStatus("ready"); +/******/ }); +/******/ return promise; +/******/ case "prepare": +/******/ blockingPromises.push(promise); +/******/ return promise; +/******/ default: +/******/ return promise; +/******/ } +/******/ } +/******/ +/******/ function waitForBlockingPromises(fn) { +/******/ if (blockingPromises.length === 0) return fn(); +/******/ var blocker = blockingPromises; +/******/ blockingPromises = []; +/******/ return Promise.all(blocker).then(function () { +/******/ return waitForBlockingPromises(fn); +/******/ }); +/******/ } +/******/ +/******/ function hotCheck(applyOnUpdate) { +/******/ if (currentStatus !== "idle") { +/******/ throw new Error("check() is only allowed in idle status"); +/******/ } +/******/ setStatus("check"); +/******/ return __webpack_require__.hmrM().then(function (update) { +/******/ if (!update) { +/******/ setStatus(applyInvalidatedModules() ? "ready" : "idle"); +/******/ return null; +/******/ } +/******/ +/******/ setStatus("prepare"); +/******/ +/******/ var updatedModules = []; +/******/ blockingPromises = []; +/******/ currentUpdateApplyHandlers = []; +/******/ +/******/ return Promise.all( +/******/ Object.keys(__webpack_require__.hmrC).reduce(function ( +/******/ promises, +/******/ key +/******/ ) { +/******/ __webpack_require__.hmrC[key]( +/******/ update.c, +/******/ update.r, +/******/ update.m, +/******/ promises, +/******/ currentUpdateApplyHandlers, +/******/ updatedModules +/******/ ); +/******/ return promises; +/******/ }, +/******/ []) +/******/ ).then(function () { +/******/ return waitForBlockingPromises(function () { +/******/ if (applyOnUpdate) { +/******/ return internalApply(applyOnUpdate); +/******/ } else { +/******/ setStatus("ready"); +/******/ +/******/ return updatedModules; +/******/ } +/******/ }); +/******/ }); +/******/ }); +/******/ } +/******/ +/******/ function hotApply(options) { +/******/ if (currentStatus !== "ready") { +/******/ return Promise.resolve().then(function () { +/******/ throw new Error("apply() is only allowed in ready status"); +/******/ }); +/******/ } +/******/ return internalApply(options); +/******/ } +/******/ +/******/ function internalApply(options) { +/******/ options = options || {}; +/******/ +/******/ applyInvalidatedModules(); +/******/ +/******/ var results = currentUpdateApplyHandlers.map(function (handler) { +/******/ return handler(options); +/******/ }); +/******/ currentUpdateApplyHandlers = undefined; +/******/ +/******/ var errors = results +/******/ .map(function (r) { +/******/ return r.error; +/******/ }) +/******/ .filter(Boolean); +/******/ +/******/ if (errors.length > 0) { +/******/ setStatus("abort"); +/******/ return Promise.resolve().then(function () { +/******/ throw errors[0]; +/******/ }); +/******/ } +/******/ +/******/ // Now in "dispose" phase +/******/ setStatus("dispose"); +/******/ +/******/ results.forEach(function (result) { +/******/ if (result.dispose) result.dispose(); +/******/ }); +/******/ +/******/ // Now in "apply" phase +/******/ setStatus("apply"); +/******/ +/******/ var error; +/******/ var reportError = function (err) { +/******/ if (!error) error = err; +/******/ }; +/******/ +/******/ var outdatedModules = []; +/******/ results.forEach(function (result) { +/******/ if (result.apply) { +/******/ var modules = result.apply(reportError); +/******/ if (modules) { +/******/ for (var i = 0; i < modules.length; i++) { +/******/ outdatedModules.push(modules[i]); +/******/ } +/******/ } +/******/ } +/******/ }); +/******/ +/******/ // handle errors in accept handlers and self accepted module load +/******/ if (error) { +/******/ setStatus("fail"); +/******/ return Promise.resolve().then(function () { +/******/ throw error; +/******/ }); +/******/ } +/******/ +/******/ if (queuedInvalidatedModules) { +/******/ return internalApply(options).then(function (list) { +/******/ outdatedModules.forEach(function (moduleId) { +/******/ if (list.indexOf(moduleId) < 0) list.push(moduleId); +/******/ }); +/******/ return list; +/******/ }); +/******/ } +/******/ +/******/ setStatus("idle"); +/******/ return Promise.resolve(outdatedModules); +/******/ } +/******/ +/******/ function applyInvalidatedModules() { +/******/ if (queuedInvalidatedModules) { +/******/ if (!currentUpdateApplyHandlers) currentUpdateApplyHandlers = []; +/******/ Object.keys(__webpack_require__.hmrI).forEach(function (key) { +/******/ queuedInvalidatedModules.forEach(function (moduleId) { +/******/ __webpack_require__.hmrI[key]( +/******/ moduleId, +/******/ currentUpdateApplyHandlers +/******/ ); +/******/ }); +/******/ }); +/******/ queuedInvalidatedModules = undefined; +/******/ return true; +/******/ } +/******/ } +/******/ })(); +/******/ +/******/ /* webpack/runtime/publicPath */ +/******/ (() => { +/******/ var scriptUrl; +/******/ if (__webpack_require__.g.importScripts) scriptUrl = __webpack_require__.g.location + ""; +/******/ var document = __webpack_require__.g.document; +/******/ if (!scriptUrl && document) { +/******/ if (document.currentScript) +/******/ scriptUrl = document.currentScript.src +/******/ if (!scriptUrl) { +/******/ var scripts = document.getElementsByTagName("script"); +/******/ if(scripts.length) scriptUrl = scripts[scripts.length - 1].src +/******/ } +/******/ } +/******/ // When supporting browsers where an automatic publicPath is not supported you must specify an output.publicPath manually via configuration +/******/ // or pass an empty string ("") and set the __webpack_public_path__ variable from your code to use your own logic. +/******/ if (!scriptUrl) throw new Error("Automatic publicPath is not supported in this browser"); +/******/ scriptUrl = scriptUrl.replace(/#.*$/, "").replace(/\?.*$/, "").replace(/\/[^\/]+$/, "/"); +/******/ __webpack_require__.p = scriptUrl; +/******/ })(); +/******/ +/******/ /* webpack/runtime/css loading */ +/******/ (() => { +/******/ var createStylesheet = (chunkId, fullhref, resolve, reject) => { +/******/ var linkTag = document.createElement("link"); +/******/ +/******/ linkTag.rel = "stylesheet"; +/******/ linkTag.type = "text/css"; +/******/ var onLinkComplete = (event) => { +/******/ // avoid mem leaks. +/******/ linkTag.onerror = linkTag.onload = null; +/******/ if (event.type === 'load') { +/******/ resolve(); +/******/ } else { +/******/ var errorType = event && (event.type === 'load' ? 'missing' : event.type); +/******/ var realHref = event && event.target && event.target.href || fullhref; +/******/ var err = new Error("Loading CSS chunk " + chunkId + " failed.\n(" + realHref + ")"); +/******/ err.code = "CSS_CHUNK_LOAD_FAILED"; +/******/ err.type = errorType; +/******/ err.request = realHref; +/******/ linkTag.parentNode.removeChild(linkTag) +/******/ reject(err); +/******/ } +/******/ } +/******/ linkTag.onerror = linkTag.onload = onLinkComplete; +/******/ linkTag.href = fullhref; +/******/ +/******/ document.head.appendChild(linkTag); +/******/ return linkTag; +/******/ }; +/******/ var findStylesheet = (href, fullhref) => { +/******/ var existingLinkTags = document.getElementsByTagName("link"); +/******/ for(var i = 0; i < existingLinkTags.length; i++) { +/******/ var tag = existingLinkTags[i]; +/******/ var dataHref = tag.getAttribute("data-href") || tag.getAttribute("href"); +/******/ if(tag.rel === "stylesheet" && (dataHref === href || dataHref === fullhref)) return tag; +/******/ } +/******/ var existingStyleTags = document.getElementsByTagName("style"); +/******/ for(var i = 0; i < existingStyleTags.length; i++) { +/******/ var tag = existingStyleTags[i]; +/******/ var dataHref = tag.getAttribute("data-href"); +/******/ if(dataHref === href || dataHref === fullhref) return tag; +/******/ } +/******/ }; +/******/ var loadStylesheet = (chunkId) => { +/******/ return new Promise((resolve, reject) => { +/******/ var href = __webpack_require__.miniCssF(chunkId); +/******/ var fullhref = __webpack_require__.p + href; +/******/ if(findStylesheet(href, fullhref)) return resolve(); +/******/ createStylesheet(chunkId, fullhref, resolve, reject); +/******/ }); +/******/ } +/******/ // no chunk loading +/******/ +/******/ var oldTags = []; +/******/ var newTags = []; +/******/ var applyHandler = (options) => { +/******/ return { dispose: () => { +/******/ for(var i = 0; i < oldTags.length; i++) { +/******/ var oldTag = oldTags[i]; +/******/ if(oldTag.parentNode) oldTag.parentNode.removeChild(oldTag); +/******/ } +/******/ oldTags.length = 0; +/******/ }, apply: () => { +/******/ for(var i = 0; i < newTags.length; i++) newTags[i].rel = "stylesheet"; +/******/ newTags.length = 0; +/******/ } }; +/******/ } +/******/ __webpack_require__.hmrC.miniCss = (chunkIds, removedChunks, removedModules, promises, applyHandlers, updatedModulesList) => { +/******/ applyHandlers.push(applyHandler); +/******/ chunkIds.forEach((chunkId) => { +/******/ var href = __webpack_require__.miniCssF(chunkId); +/******/ var fullhref = __webpack_require__.p + href; +/******/ var oldTag = findStylesheet(href, fullhref); +/******/ if(!oldTag) return; +/******/ promises.push(new Promise((resolve, reject) => { +/******/ var tag = createStylesheet(chunkId, fullhref, () => { +/******/ tag.as = "style"; +/******/ tag.rel = "preload"; +/******/ resolve(); +/******/ }, reject); +/******/ oldTags.push(oldTag); +/******/ newTags.push(tag); +/******/ })); +/******/ }); +/******/ } +/******/ })(); +/******/ +/******/ /* webpack/runtime/jsonp chunk loading */ +/******/ (() => { +/******/ // no baseURI +/******/ +/******/ // object to store loaded and loading chunks +/******/ // undefined = chunk not loaded, null = chunk preloaded/prefetched +/******/ // [resolve, reject, Promise] = chunk loading, 0 = chunk loaded +/******/ var installedChunks = { +/******/ 0: 0 +/******/ }; +/******/ +/******/ // no chunk on demand loading +/******/ +/******/ // no prefetching +/******/ +/******/ // no preloaded +/******/ +/******/ var currentUpdatedModulesList; +/******/ var waitingUpdateResolves = {}; +/******/ function loadUpdateChunk(chunkId) { +/******/ return new Promise((resolve, reject) => { +/******/ waitingUpdateResolves[chunkId] = resolve; +/******/ // start update chunk loading +/******/ var url = __webpack_require__.p + __webpack_require__.hu(chunkId); +/******/ // create error before stack unwound to get useful stacktrace later +/******/ var error = new Error(); +/******/ var loadingEnded = (event) => { +/******/ if(waitingUpdateResolves[chunkId]) { +/******/ waitingUpdateResolves[chunkId] = undefined +/******/ var errorType = event && (event.type === 'load' ? 'missing' : event.type); +/******/ var realSrc = event && event.target && event.target.src; +/******/ error.message = 'Loading hot update chunk ' + chunkId + ' failed.\n(' + errorType + ': ' + realSrc + ')'; +/******/ error.name = 'ChunkLoadError'; +/******/ error.type = errorType; +/******/ error.request = realSrc; +/******/ reject(error); +/******/ } +/******/ }; +/******/ __webpack_require__.l(url, loadingEnded); +/******/ }); +/******/ } +/******/ +/******/ self["webpackHotUpdate"] = (chunkId, moreModules, runtime) => { +/******/ for(var moduleId in moreModules) { +/******/ if(__webpack_require__.o(moreModules, moduleId)) { +/******/ currentUpdate[moduleId] = moreModules[moduleId]; +/******/ if(currentUpdatedModulesList) currentUpdatedModulesList.push(moduleId); +/******/ } +/******/ } +/******/ if(runtime) currentUpdateRuntime.push(runtime); +/******/ if(waitingUpdateResolves[chunkId]) { +/******/ waitingUpdateResolves[chunkId](); +/******/ waitingUpdateResolves[chunkId] = undefined; +/******/ } +/******/ }; +/******/ +/******/ var currentUpdateChunks; +/******/ var currentUpdate; +/******/ var currentUpdateRemovedChunks; +/******/ var currentUpdateRuntime; +/******/ function applyHandler(options) { +/******/ if (__webpack_require__.f) delete __webpack_require__.f.jsonpHmr; +/******/ currentUpdateChunks = undefined; +/******/ function getAffectedModuleEffects(updateModuleId) { +/******/ var outdatedModules = [updateModuleId]; +/******/ var outdatedDependencies = {}; +/******/ +/******/ var queue = outdatedModules.map(function (id) { +/******/ return { +/******/ chain: [id], +/******/ id: id +/******/ }; +/******/ }); +/******/ while (queue.length > 0) { +/******/ var queueItem = queue.pop(); +/******/ var moduleId = queueItem.id; +/******/ var chain = queueItem.chain; +/******/ var module = __webpack_require__.c[moduleId]; +/******/ if ( +/******/ !module || +/******/ (module.hot._selfAccepted && !module.hot._selfInvalidated) +/******/ ) +/******/ continue; +/******/ if (module.hot._selfDeclined) { +/******/ return { +/******/ type: "self-declined", +/******/ chain: chain, +/******/ moduleId: moduleId +/******/ }; +/******/ } +/******/ if (module.hot._main) { +/******/ return { +/******/ type: "unaccepted", +/******/ chain: chain, +/******/ moduleId: moduleId +/******/ }; +/******/ } +/******/ for (var i = 0; i < module.parents.length; i++) { +/******/ var parentId = module.parents[i]; +/******/ var parent = __webpack_require__.c[parentId]; +/******/ if (!parent) continue; +/******/ if (parent.hot._declinedDependencies[moduleId]) { +/******/ return { +/******/ type: "declined", +/******/ chain: chain.concat([parentId]), +/******/ moduleId: moduleId, +/******/ parentId: parentId +/******/ }; +/******/ } +/******/ if (outdatedModules.indexOf(parentId) !== -1) continue; +/******/ if (parent.hot._acceptedDependencies[moduleId]) { +/******/ if (!outdatedDependencies[parentId]) +/******/ outdatedDependencies[parentId] = []; +/******/ addAllToSet(outdatedDependencies[parentId], [moduleId]); +/******/ continue; +/******/ } +/******/ delete outdatedDependencies[parentId]; +/******/ outdatedModules.push(parentId); +/******/ queue.push({ +/******/ chain: chain.concat([parentId]), +/******/ id: parentId +/******/ }); +/******/ } +/******/ } +/******/ +/******/ return { +/******/ type: "accepted", +/******/ moduleId: updateModuleId, +/******/ outdatedModules: outdatedModules, +/******/ outdatedDependencies: outdatedDependencies +/******/ }; +/******/ } +/******/ +/******/ function addAllToSet(a, b) { +/******/ for (var i = 0; i < b.length; i++) { +/******/ var item = b[i]; +/******/ if (a.indexOf(item) === -1) a.push(item); +/******/ } +/******/ } +/******/ +/******/ // at begin all updates modules are outdated +/******/ // the "outdated" status can propagate to parents if they don't accept the children +/******/ var outdatedDependencies = {}; +/******/ var outdatedModules = []; +/******/ var appliedUpdate = {}; +/******/ +/******/ var warnUnexpectedRequire = function warnUnexpectedRequire(module) { +/******/ console.warn( +/******/ "[HMR] unexpected require(" + module.id + ") to disposed module" +/******/ ); +/******/ }; +/******/ +/******/ for (var moduleId in currentUpdate) { +/******/ if (__webpack_require__.o(currentUpdate, moduleId)) { +/******/ var newModuleFactory = currentUpdate[moduleId]; +/******/ /** @type {TODO} */ +/******/ var result; +/******/ if (newModuleFactory) { +/******/ result = getAffectedModuleEffects(moduleId); +/******/ } else { +/******/ result = { +/******/ type: "disposed", +/******/ moduleId: moduleId +/******/ }; +/******/ } +/******/ /** @type {Error|false} */ +/******/ var abortError = false; +/******/ var doApply = false; +/******/ var doDispose = false; +/******/ var chainInfo = ""; +/******/ if (result.chain) { +/******/ chainInfo = "\nUpdate propagation: " + result.chain.join(" -> "); +/******/ } +/******/ switch (result.type) { +/******/ case "self-declined": +/******/ if (options.onDeclined) options.onDeclined(result); +/******/ if (!options.ignoreDeclined) +/******/ abortError = new Error( +/******/ "Aborted because of self decline: " + +/******/ result.moduleId + +/******/ chainInfo +/******/ ); +/******/ break; +/******/ case "declined": +/******/ if (options.onDeclined) options.onDeclined(result); +/******/ if (!options.ignoreDeclined) +/******/ abortError = new Error( +/******/ "Aborted because of declined dependency: " + +/******/ result.moduleId + +/******/ " in " + +/******/ result.parentId + +/******/ chainInfo +/******/ ); +/******/ break; +/******/ case "unaccepted": +/******/ if (options.onUnaccepted) options.onUnaccepted(result); +/******/ if (!options.ignoreUnaccepted) +/******/ abortError = new Error( +/******/ "Aborted because " + moduleId + " is not accepted" + chainInfo +/******/ ); +/******/ break; +/******/ case "accepted": +/******/ if (options.onAccepted) options.onAccepted(result); +/******/ doApply = true; +/******/ break; +/******/ case "disposed": +/******/ if (options.onDisposed) options.onDisposed(result); +/******/ doDispose = true; +/******/ break; +/******/ default: +/******/ throw new Error("Unexception type " + result.type); +/******/ } +/******/ if (abortError) { +/******/ return { +/******/ error: abortError +/******/ }; +/******/ } +/******/ if (doApply) { +/******/ appliedUpdate[moduleId] = newModuleFactory; +/******/ addAllToSet(outdatedModules, result.outdatedModules); +/******/ for (moduleId in result.outdatedDependencies) { +/******/ if (__webpack_require__.o(result.outdatedDependencies, moduleId)) { +/******/ if (!outdatedDependencies[moduleId]) +/******/ outdatedDependencies[moduleId] = []; +/******/ addAllToSet( +/******/ outdatedDependencies[moduleId], +/******/ result.outdatedDependencies[moduleId] +/******/ ); +/******/ } +/******/ } +/******/ } +/******/ if (doDispose) { +/******/ addAllToSet(outdatedModules, [result.moduleId]); +/******/ appliedUpdate[moduleId] = warnUnexpectedRequire; +/******/ } +/******/ } +/******/ } +/******/ currentUpdate = undefined; +/******/ +/******/ // Store self accepted outdated modules to require them later by the module system +/******/ var outdatedSelfAcceptedModules = []; +/******/ for (var j = 0; j < outdatedModules.length; j++) { +/******/ var outdatedModuleId = outdatedModules[j]; +/******/ var module = __webpack_require__.c[outdatedModuleId]; +/******/ if ( +/******/ module && +/******/ (module.hot._selfAccepted || module.hot._main) && +/******/ // removed self-accepted modules should not be required +/******/ appliedUpdate[outdatedModuleId] !== warnUnexpectedRequire && +/******/ // when called invalidate self-accepting is not possible +/******/ !module.hot._selfInvalidated +/******/ ) { +/******/ outdatedSelfAcceptedModules.push({ +/******/ module: outdatedModuleId, +/******/ require: module.hot._requireSelf, +/******/ errorHandler: module.hot._selfAccepted +/******/ }); +/******/ } +/******/ } +/******/ +/******/ var moduleOutdatedDependencies; +/******/ +/******/ return { +/******/ dispose: function () { +/******/ currentUpdateRemovedChunks.forEach(function (chunkId) { +/******/ delete installedChunks[chunkId]; +/******/ }); +/******/ currentUpdateRemovedChunks = undefined; +/******/ +/******/ var idx; +/******/ var queue = outdatedModules.slice(); +/******/ while (queue.length > 0) { +/******/ var moduleId = queue.pop(); +/******/ var module = __webpack_require__.c[moduleId]; +/******/ if (!module) continue; +/******/ +/******/ var data = {}; +/******/ +/******/ // Call dispose handlers +/******/ var disposeHandlers = module.hot._disposeHandlers; +/******/ for (j = 0; j < disposeHandlers.length; j++) { +/******/ disposeHandlers[j].call(null, data); +/******/ } +/******/ __webpack_require__.hmrD[moduleId] = data; +/******/ +/******/ // disable module (this disables requires from this module) +/******/ module.hot.active = false; +/******/ +/******/ // remove module from cache +/******/ delete __webpack_require__.c[moduleId]; +/******/ +/******/ // when disposing there is no need to call dispose handler +/******/ delete outdatedDependencies[moduleId]; +/******/ +/******/ // remove "parents" references from all children +/******/ for (j = 0; j < module.children.length; j++) { +/******/ var child = __webpack_require__.c[module.children[j]]; +/******/ if (!child) continue; +/******/ idx = child.parents.indexOf(moduleId); +/******/ if (idx >= 0) { +/******/ child.parents.splice(idx, 1); +/******/ } +/******/ } +/******/ } +/******/ +/******/ // remove outdated dependency from module children +/******/ var dependency; +/******/ for (var outdatedModuleId in outdatedDependencies) { +/******/ if (__webpack_require__.o(outdatedDependencies, outdatedModuleId)) { +/******/ module = __webpack_require__.c[outdatedModuleId]; +/******/ if (module) { +/******/ moduleOutdatedDependencies = +/******/ outdatedDependencies[outdatedModuleId]; +/******/ for (j = 0; j < moduleOutdatedDependencies.length; j++) { +/******/ dependency = moduleOutdatedDependencies[j]; +/******/ idx = module.children.indexOf(dependency); +/******/ if (idx >= 0) module.children.splice(idx, 1); +/******/ } +/******/ } +/******/ } +/******/ } +/******/ }, +/******/ apply: function (reportError) { +/******/ // insert new code +/******/ for (var updateModuleId in appliedUpdate) { +/******/ if (__webpack_require__.o(appliedUpdate, updateModuleId)) { +/******/ __webpack_require__.m[updateModuleId] = appliedUpdate[updateModuleId]; +/******/ } +/******/ } +/******/ +/******/ // run new runtime modules +/******/ for (var i = 0; i < currentUpdateRuntime.length; i++) { +/******/ currentUpdateRuntime[i](__webpack_require__); +/******/ } +/******/ +/******/ // call accept handlers +/******/ for (var outdatedModuleId in outdatedDependencies) { +/******/ if (__webpack_require__.o(outdatedDependencies, outdatedModuleId)) { +/******/ var module = __webpack_require__.c[outdatedModuleId]; +/******/ if (module) { +/******/ moduleOutdatedDependencies = +/******/ outdatedDependencies[outdatedModuleId]; +/******/ var callbacks = []; +/******/ var errorHandlers = []; +/******/ var dependenciesForCallbacks = []; +/******/ for (var j = 0; j < moduleOutdatedDependencies.length; j++) { +/******/ var dependency = moduleOutdatedDependencies[j]; +/******/ var acceptCallback = +/******/ module.hot._acceptedDependencies[dependency]; +/******/ var errorHandler = +/******/ module.hot._acceptedErrorHandlers[dependency]; +/******/ if (acceptCallback) { +/******/ if (callbacks.indexOf(acceptCallback) !== -1) continue; +/******/ callbacks.push(acceptCallback); +/******/ errorHandlers.push(errorHandler); +/******/ dependenciesForCallbacks.push(dependency); +/******/ } +/******/ } +/******/ for (var k = 0; k < callbacks.length; k++) { +/******/ try { +/******/ callbacks[k].call(null, moduleOutdatedDependencies); +/******/ } catch (err) { +/******/ if (typeof errorHandlers[k] === "function") { +/******/ try { +/******/ errorHandlers[k](err, { +/******/ moduleId: outdatedModuleId, +/******/ dependencyId: dependenciesForCallbacks[k] +/******/ }); +/******/ } catch (err2) { +/******/ if (options.onErrored) { +/******/ options.onErrored({ +/******/ type: "accept-error-handler-errored", +/******/ moduleId: outdatedModuleId, +/******/ dependencyId: dependenciesForCallbacks[k], +/******/ error: err2, +/******/ originalError: err +/******/ }); +/******/ } +/******/ if (!options.ignoreErrored) { +/******/ reportError(err2); +/******/ reportError(err); +/******/ } +/******/ } +/******/ } else { +/******/ if (options.onErrored) { +/******/ options.onErrored({ +/******/ type: "accept-errored", +/******/ moduleId: outdatedModuleId, +/******/ dependencyId: dependenciesForCallbacks[k], +/******/ error: err +/******/ }); +/******/ } +/******/ if (!options.ignoreErrored) { +/******/ reportError(err); +/******/ } +/******/ } +/******/ } +/******/ } +/******/ } +/******/ } +/******/ } +/******/ +/******/ // Load self accepted modules +/******/ for (var o = 0; o < outdatedSelfAcceptedModules.length; o++) { +/******/ var item = outdatedSelfAcceptedModules[o]; +/******/ var moduleId = item.module; +/******/ try { +/******/ item.require(moduleId); +/******/ } catch (err) { +/******/ if (typeof item.errorHandler === "function") { +/******/ try { +/******/ item.errorHandler(err, { +/******/ moduleId: moduleId, +/******/ module: __webpack_require__.c[moduleId] +/******/ }); +/******/ } catch (err2) { +/******/ if (options.onErrored) { +/******/ options.onErrored({ +/******/ type: "self-accept-error-handler-errored", +/******/ moduleId: moduleId, +/******/ error: err2, +/******/ originalError: err +/******/ }); +/******/ } +/******/ if (!options.ignoreErrored) { +/******/ reportError(err2); +/******/ reportError(err); +/******/ } +/******/ } +/******/ } else { +/******/ if (options.onErrored) { +/******/ options.onErrored({ +/******/ type: "self-accept-errored", +/******/ moduleId: moduleId, +/******/ error: err +/******/ }); +/******/ } +/******/ if (!options.ignoreErrored) { +/******/ reportError(err); +/******/ } +/******/ } +/******/ } +/******/ } +/******/ +/******/ return outdatedModules; +/******/ } +/******/ }; +/******/ } +/******/ __webpack_require__.hmrI.jsonp = function (moduleId, applyHandlers) { +/******/ if (!currentUpdate) { +/******/ currentUpdate = {}; +/******/ currentUpdateRuntime = []; +/******/ currentUpdateRemovedChunks = []; +/******/ applyHandlers.push(applyHandler); +/******/ } +/******/ if (!__webpack_require__.o(currentUpdate, moduleId)) { +/******/ currentUpdate[moduleId] = __webpack_require__.m[moduleId]; +/******/ } +/******/ }; +/******/ __webpack_require__.hmrC.jsonp = function ( +/******/ chunkIds, +/******/ removedChunks, +/******/ removedModules, +/******/ promises, +/******/ applyHandlers, +/******/ updatedModulesList +/******/ ) { +/******/ applyHandlers.push(applyHandler); +/******/ currentUpdateChunks = {}; +/******/ currentUpdateRemovedChunks = removedChunks; +/******/ currentUpdate = removedModules.reduce(function (obj, key) { +/******/ obj[key] = false; +/******/ return obj; +/******/ }, {}); +/******/ currentUpdateRuntime = []; +/******/ chunkIds.forEach(function (chunkId) { +/******/ if ( +/******/ __webpack_require__.o(installedChunks, chunkId) && +/******/ installedChunks[chunkId] !== undefined +/******/ ) { +/******/ promises.push(loadUpdateChunk(chunkId, updatedModulesList)); +/******/ currentUpdateChunks[chunkId] = true; +/******/ } +/******/ }); +/******/ if (__webpack_require__.f) { +/******/ __webpack_require__.f.jsonpHmr = function (chunkId, promises) { +/******/ if ( +/******/ currentUpdateChunks && +/******/ !__webpack_require__.o(currentUpdateChunks, chunkId) && +/******/ __webpack_require__.o(installedChunks, chunkId) && +/******/ installedChunks[chunkId] !== undefined +/******/ ) { +/******/ promises.push(loadUpdateChunk(chunkId)); +/******/ currentUpdateChunks[chunkId] = true; +/******/ } +/******/ }; +/******/ } +/******/ }; +/******/ +/******/ __webpack_require__.hmrM = () => { +/******/ if (typeof fetch === "undefined") throw new Error("No browser support: need fetch API"); +/******/ return fetch(__webpack_require__.p + __webpack_require__.hmrF()).then((response) => { +/******/ if(response.status === 404) return; // no update available +/******/ if(!response.ok) throw new Error("Failed to fetch update manifest " + response.statusText); +/******/ return response.json(); +/******/ }); +/******/ }; +/******/ +/******/ // no on chunks loaded +/******/ +/******/ // no jsonp function +/******/ })(); +/******/ +/************************************************************************/ +/******/ +/******/ // module cache are used so entry inlining is disabled +/******/ // startup +/******/ // Load entry module and return exports +/******/ var __webpack_exports__ = __webpack_require__(0); +/******/ +/******/ })() +; \ No newline at end of file diff --git a/test/cases/hmr/expected/webpack-5/main.js b/test/cases/hmr/expected/webpack-5/main.js index ae52744f..1642f5af 100644 --- a/test/cases/hmr/expected/webpack-5/main.js +++ b/test/cases/hmr/expected/webpack-5/main.js @@ -541,6 +541,7 @@ module.exports = function (urlString) { /******/ } /******/ /******/ function createModuleHotObject(moduleId, me) { +/******/ var _main = currentChildModule !== moduleId; /******/ var hot = { /******/ // private stuff /******/ _acceptedDependencies: {}, @@ -550,10 +551,10 @@ module.exports = function (urlString) { /******/ _selfDeclined: false, /******/ _selfInvalidated: false, /******/ _disposeHandlers: [], -/******/ _main: currentChildModule !== moduleId, +/******/ _main: _main, /******/ _requireSelf: function () { /******/ currentParents = me.parents.slice(); -/******/ currentChildModule = moduleId; +/******/ currentChildModule = _main ? undefined : moduleId; /******/ __webpack_require__(moduleId); /******/ }, /******/ @@ -1175,7 +1176,7 @@ module.exports = function (urlString) { /******/ var module = __webpack_require__.c[outdatedModuleId]; /******/ if ( /******/ module && -/******/ module.hot._selfAccepted && +/******/ (module.hot._selfAccepted || module.hot._main) && /******/ // removed self-accepted modules should not be required /******/ appliedUpdate[outdatedModuleId] !== warnUnexpectedRequire && /******/ // when called invalidate self-accepting is not possible diff --git a/test/cases/insert-function/expected/webpack-5-importModule/1.css b/test/cases/insert-function/expected/webpack-5-importModule/1.css new file mode 100644 index 00000000..cebc5c1c --- /dev/null +++ b/test/cases/insert-function/expected/webpack-5-importModule/1.css @@ -0,0 +1,4 @@ +body { + background: red; +} + diff --git a/test/cases/insert-function/expected/webpack-5-importModule/1.js b/test/cases/insert-function/expected/webpack-5-importModule/1.js new file mode 100644 index 00000000..df8cbd2a --- /dev/null +++ b/test/cases/insert-function/expected/webpack-5-importModule/1.js @@ -0,0 +1,12 @@ +(self["webpackChunk"] = self["webpackChunk"] || []).push([[1],[ +/* 0 */, +/* 1 */ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +// extracted by mini-css-extract-plugin + + +/***/ }) +]]); \ No newline at end of file diff --git a/test/cases/insert-function/expected/webpack-5-importModule/main.js b/test/cases/insert-function/expected/webpack-5-importModule/main.js new file mode 100644 index 00000000..0dcaf369 --- /dev/null +++ b/test/cases/insert-function/expected/webpack-5-importModule/main.js @@ -0,0 +1,331 @@ +/******/ (() => { // webpackBootstrap +/******/ var __webpack_modules__ = ({}); +/************************************************************************/ +/******/ // The module cache +/******/ var __webpack_module_cache__ = {}; +/******/ +/******/ // The require function +/******/ function __webpack_require__(moduleId) { +/******/ // Check if module is in cache +/******/ var cachedModule = __webpack_module_cache__[moduleId]; +/******/ if (cachedModule !== undefined) { +/******/ return cachedModule.exports; +/******/ } +/******/ // Create a new module (and put it into the cache) +/******/ var module = __webpack_module_cache__[moduleId] = { +/******/ // no module.id needed +/******/ // no module.loaded needed +/******/ exports: {} +/******/ }; +/******/ +/******/ // Execute the module function +/******/ __webpack_modules__[moduleId](module, module.exports, __webpack_require__); +/******/ +/******/ // Return the exports of the module +/******/ return module.exports; +/******/ } +/******/ +/******/ // expose the modules object (__webpack_modules__) +/******/ __webpack_require__.m = __webpack_modules__; +/******/ +/************************************************************************/ +/******/ /* webpack/runtime/ensure chunk */ +/******/ (() => { +/******/ __webpack_require__.f = {}; +/******/ // This file contains only the entry chunk. +/******/ // The chunk loading function for additional chunks +/******/ __webpack_require__.e = (chunkId) => { +/******/ return Promise.all(Object.keys(__webpack_require__.f).reduce((promises, key) => { +/******/ __webpack_require__.f[key](chunkId, promises); +/******/ return promises; +/******/ }, [])); +/******/ }; +/******/ })(); +/******/ +/******/ /* webpack/runtime/get javascript chunk filename */ +/******/ (() => { +/******/ // This function allow to reference async chunks +/******/ __webpack_require__.u = (chunkId) => { +/******/ // return url for filenames based on template +/******/ return "" + chunkId + ".js"; +/******/ }; +/******/ })(); +/******/ +/******/ /* webpack/runtime/get mini-css chunk filename */ +/******/ (() => { +/******/ // This function allow to reference all chunks +/******/ __webpack_require__.miniCssF = (chunkId) => { +/******/ // return url for filenames based on template +/******/ return "" + chunkId + ".css"; +/******/ }; +/******/ })(); +/******/ +/******/ /* webpack/runtime/global */ +/******/ (() => { +/******/ __webpack_require__.g = (function() { +/******/ if (typeof globalThis === 'object') return globalThis; +/******/ try { +/******/ return this || new Function('return this')(); +/******/ } catch (e) { +/******/ if (typeof window === 'object') return window; +/******/ } +/******/ })(); +/******/ })(); +/******/ +/******/ /* webpack/runtime/hasOwnProperty shorthand */ +/******/ (() => { +/******/ __webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop)) +/******/ })(); +/******/ +/******/ /* webpack/runtime/load script */ +/******/ (() => { +/******/ var inProgress = {}; +/******/ // data-webpack is not used as build has no uniqueName +/******/ // loadScript function to load a script via script tag +/******/ __webpack_require__.l = (url, done, key, chunkId) => { +/******/ if(inProgress[url]) { inProgress[url].push(done); return; } +/******/ var script, needAttach; +/******/ if(key !== undefined) { +/******/ var scripts = document.getElementsByTagName("script"); +/******/ for(var i = 0; i < scripts.length; i++) { +/******/ var s = scripts[i]; +/******/ if(s.getAttribute("src") == url) { script = s; break; } +/******/ } +/******/ } +/******/ if(!script) { +/******/ needAttach = true; +/******/ script = document.createElement('script'); +/******/ +/******/ script.charset = 'utf-8'; +/******/ script.timeout = 120; +/******/ if (__webpack_require__.nc) { +/******/ script.setAttribute("nonce", __webpack_require__.nc); +/******/ } +/******/ +/******/ script.src = url; +/******/ } +/******/ inProgress[url] = [done]; +/******/ var onScriptComplete = (prev, event) => { +/******/ // avoid mem leaks in IE. +/******/ script.onerror = script.onload = null; +/******/ clearTimeout(timeout); +/******/ var doneFns = inProgress[url]; +/******/ delete inProgress[url]; +/******/ script.parentNode && script.parentNode.removeChild(script); +/******/ doneFns && doneFns.forEach((fn) => (fn(event))); +/******/ if(prev) return prev(event); +/******/ } +/******/ ; +/******/ var timeout = setTimeout(onScriptComplete.bind(null, undefined, { type: 'timeout', target: script }), 120000); +/******/ script.onerror = onScriptComplete.bind(null, script.onerror); +/******/ script.onload = onScriptComplete.bind(null, script.onload); +/******/ needAttach && document.head.appendChild(script); +/******/ }; +/******/ })(); +/******/ +/******/ /* webpack/runtime/make namespace object */ +/******/ (() => { +/******/ // define __esModule on exports +/******/ __webpack_require__.r = (exports) => { +/******/ if(typeof Symbol !== 'undefined' && Symbol.toStringTag) { +/******/ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' }); +/******/ } +/******/ Object.defineProperty(exports, '__esModule', { value: true }); +/******/ }; +/******/ })(); +/******/ +/******/ /* webpack/runtime/publicPath */ +/******/ (() => { +/******/ var scriptUrl; +/******/ if (__webpack_require__.g.importScripts) scriptUrl = __webpack_require__.g.location + ""; +/******/ var document = __webpack_require__.g.document; +/******/ if (!scriptUrl && document) { +/******/ if (document.currentScript) +/******/ scriptUrl = document.currentScript.src +/******/ if (!scriptUrl) { +/******/ var scripts = document.getElementsByTagName("script"); +/******/ if(scripts.length) scriptUrl = scripts[scripts.length - 1].src +/******/ } +/******/ } +/******/ // When supporting browsers where an automatic publicPath is not supported you must specify an output.publicPath manually via configuration +/******/ // or pass an empty string ("") and set the __webpack_public_path__ variable from your code to use your own logic. +/******/ if (!scriptUrl) throw new Error("Automatic publicPath is not supported in this browser"); +/******/ scriptUrl = scriptUrl.replace(/#.*$/, "").replace(/\?.*$/, "").replace(/\/[^\/]+$/, "/"); +/******/ __webpack_require__.p = scriptUrl; +/******/ })(); +/******/ +/******/ /* webpack/runtime/css loading */ +/******/ (() => { +/******/ var createStylesheet = (chunkId, fullhref, resolve, reject) => { +/******/ var linkTag = document.createElement("link"); +/******/ +/******/ linkTag.rel = "stylesheet"; +/******/ linkTag.type = "text/css"; +/******/ var onLinkComplete = (event) => { +/******/ // avoid mem leaks. +/******/ linkTag.onerror = linkTag.onload = null; +/******/ if (event.type === 'load') { +/******/ resolve(); +/******/ } else { +/******/ var errorType = event && (event.type === 'load' ? 'missing' : event.type); +/******/ var realHref = event && event.target && event.target.href || fullhref; +/******/ var err = new Error("Loading CSS chunk " + chunkId + " failed.\n(" + realHref + ")"); +/******/ err.code = "CSS_CHUNK_LOAD_FAILED"; +/******/ err.type = errorType; +/******/ err.request = realHref; +/******/ linkTag.parentNode.removeChild(linkTag) +/******/ reject(err); +/******/ } +/******/ } +/******/ linkTag.onerror = linkTag.onload = onLinkComplete; +/******/ linkTag.href = fullhref; +/******/ +/******/ (function (linkTag) { +/******/ const reference = document.querySelector('.hot-reload'); +/******/ +/******/ if (reference) { +/******/ reference.parentNode.insertBefore(linkTag, reference); +/******/ } +/******/ })(linkTag) +/******/ return linkTag; +/******/ }; +/******/ var findStylesheet = (href, fullhref) => { +/******/ var existingLinkTags = document.getElementsByTagName("link"); +/******/ for(var i = 0; i < existingLinkTags.length; i++) { +/******/ var tag = existingLinkTags[i]; +/******/ var dataHref = tag.getAttribute("data-href") || tag.getAttribute("href"); +/******/ if(tag.rel === "stylesheet" && (dataHref === href || dataHref === fullhref)) return tag; +/******/ } +/******/ var existingStyleTags = document.getElementsByTagName("style"); +/******/ for(var i = 0; i < existingStyleTags.length; i++) { +/******/ var tag = existingStyleTags[i]; +/******/ var dataHref = tag.getAttribute("data-href"); +/******/ if(dataHref === href || dataHref === fullhref) return tag; +/******/ } +/******/ }; +/******/ var loadStylesheet = (chunkId) => { +/******/ return new Promise((resolve, reject) => { +/******/ var href = __webpack_require__.miniCssF(chunkId); +/******/ var fullhref = __webpack_require__.p + href; +/******/ if(findStylesheet(href, fullhref)) return resolve(); +/******/ createStylesheet(chunkId, fullhref, resolve, reject); +/******/ }); +/******/ } +/******/ // object to store loaded CSS chunks +/******/ var installedCssChunks = { +/******/ 0: 0 +/******/ }; +/******/ +/******/ __webpack_require__.f.miniCss = (chunkId, promises) => { +/******/ var cssChunks = {"1":1}; +/******/ if(installedCssChunks[chunkId]) promises.push(installedCssChunks[chunkId]); +/******/ else if(installedCssChunks[chunkId] !== 0 && cssChunks[chunkId]) { +/******/ promises.push(installedCssChunks[chunkId] = loadStylesheet(chunkId).then(() => { +/******/ installedCssChunks[chunkId] = 0; +/******/ }, (e) => { +/******/ delete installedCssChunks[chunkId]; +/******/ throw e; +/******/ })); +/******/ } +/******/ }; +/******/ +/******/ // no hmr +/******/ })(); +/******/ +/******/ /* webpack/runtime/jsonp chunk loading */ +/******/ (() => { +/******/ // no baseURI +/******/ +/******/ // object to store loaded and loading chunks +/******/ // undefined = chunk not loaded, null = chunk preloaded/prefetched +/******/ // [resolve, reject, Promise] = chunk loading, 0 = chunk loaded +/******/ var installedChunks = { +/******/ 0: 0 +/******/ }; +/******/ +/******/ __webpack_require__.f.j = (chunkId, promises) => { +/******/ // JSONP chunk loading for javascript +/******/ var installedChunkData = __webpack_require__.o(installedChunks, chunkId) ? installedChunks[chunkId] : undefined; +/******/ if(installedChunkData !== 0) { // 0 means "already installed". +/******/ +/******/ // a Promise means "currently loading". +/******/ if(installedChunkData) { +/******/ promises.push(installedChunkData[2]); +/******/ } else { +/******/ if(true) { // all chunks have JS +/******/ // setup Promise in chunk cache +/******/ var promise = new Promise((resolve, reject) => (installedChunkData = installedChunks[chunkId] = [resolve, reject])); +/******/ promises.push(installedChunkData[2] = promise); +/******/ +/******/ // start chunk loading +/******/ var url = __webpack_require__.p + __webpack_require__.u(chunkId); +/******/ // create error before stack unwound to get useful stacktrace later +/******/ var error = new Error(); +/******/ var loadingEnded = (event) => { +/******/ if(__webpack_require__.o(installedChunks, chunkId)) { +/******/ installedChunkData = installedChunks[chunkId]; +/******/ if(installedChunkData !== 0) installedChunks[chunkId] = undefined; +/******/ if(installedChunkData) { +/******/ var errorType = event && (event.type === 'load' ? 'missing' : event.type); +/******/ var realSrc = event && event.target && event.target.src; +/******/ error.message = 'Loading chunk ' + chunkId + ' failed.\n(' + errorType + ': ' + realSrc + ')'; +/******/ error.name = 'ChunkLoadError'; +/******/ error.type = errorType; +/******/ error.request = realSrc; +/******/ installedChunkData[1](error); +/******/ } +/******/ } +/******/ }; +/******/ __webpack_require__.l(url, loadingEnded, "chunk-" + chunkId, chunkId); +/******/ } else installedChunks[chunkId] = 0; +/******/ } +/******/ } +/******/ }; +/******/ +/******/ // no prefetching +/******/ +/******/ // no preloaded +/******/ +/******/ // no HMR +/******/ +/******/ // no HMR manifest +/******/ +/******/ // no on chunks loaded +/******/ +/******/ // install a JSONP callback for chunk loading +/******/ var webpackJsonpCallback = (parentChunkLoadingFunction, data) => { +/******/ var [chunkIds, moreModules, runtime] = data; +/******/ // add "moreModules" to the modules object, +/******/ // then flag all "chunkIds" as loaded and fire callback +/******/ var moduleId, chunkId, i = 0; +/******/ for(moduleId in moreModules) { +/******/ if(__webpack_require__.o(moreModules, moduleId)) { +/******/ __webpack_require__.m[moduleId] = moreModules[moduleId]; +/******/ } +/******/ } +/******/ if(runtime) runtime(__webpack_require__); +/******/ if(parentChunkLoadingFunction) parentChunkLoadingFunction(data); +/******/ for(;i < chunkIds.length; i++) { +/******/ chunkId = chunkIds[i]; +/******/ if(__webpack_require__.o(installedChunks, chunkId) && installedChunks[chunkId]) { +/******/ installedChunks[chunkId][0](); +/******/ } +/******/ installedChunks[chunkIds[i]] = 0; +/******/ } +/******/ +/******/ } +/******/ +/******/ var chunkLoadingGlobal = self["webpackChunk"] = self["webpackChunk"] || []; +/******/ chunkLoadingGlobal.forEach(webpackJsonpCallback.bind(null, 0)); +/******/ chunkLoadingGlobal.push = webpackJsonpCallback.bind(null, chunkLoadingGlobal.push.bind(chunkLoadingGlobal)); +/******/ })(); +/******/ +/************************************************************************/ +var __webpack_exports__ = {}; +/* eslint-env browser */ + +// eslint-disable-next-line +__webpack_require__.e(/* import() */ 1).then(__webpack_require__.bind(__webpack_require__, 1)); + +/******/ })() +; \ No newline at end of file diff --git a/test/cases/insert-string/expected/webpack-5-importModule/1.css b/test/cases/insert-string/expected/webpack-5-importModule/1.css new file mode 100644 index 00000000..cebc5c1c --- /dev/null +++ b/test/cases/insert-string/expected/webpack-5-importModule/1.css @@ -0,0 +1,4 @@ +body { + background: red; +} + diff --git a/test/cases/insert-string/expected/webpack-5-importModule/1.js b/test/cases/insert-string/expected/webpack-5-importModule/1.js new file mode 100644 index 00000000..df8cbd2a --- /dev/null +++ b/test/cases/insert-string/expected/webpack-5-importModule/1.js @@ -0,0 +1,12 @@ +(self["webpackChunk"] = self["webpackChunk"] || []).push([[1],[ +/* 0 */, +/* 1 */ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +// extracted by mini-css-extract-plugin + + +/***/ }) +]]); \ No newline at end of file diff --git a/test/cases/insert-string/expected/webpack-5-importModule/main.js b/test/cases/insert-string/expected/webpack-5-importModule/main.js new file mode 100644 index 00000000..4d61b5dc --- /dev/null +++ b/test/cases/insert-string/expected/webpack-5-importModule/main.js @@ -0,0 +1,326 @@ +/******/ (() => { // webpackBootstrap +/******/ var __webpack_modules__ = ({}); +/************************************************************************/ +/******/ // The module cache +/******/ var __webpack_module_cache__ = {}; +/******/ +/******/ // The require function +/******/ function __webpack_require__(moduleId) { +/******/ // Check if module is in cache +/******/ var cachedModule = __webpack_module_cache__[moduleId]; +/******/ if (cachedModule !== undefined) { +/******/ return cachedModule.exports; +/******/ } +/******/ // Create a new module (and put it into the cache) +/******/ var module = __webpack_module_cache__[moduleId] = { +/******/ // no module.id needed +/******/ // no module.loaded needed +/******/ exports: {} +/******/ }; +/******/ +/******/ // Execute the module function +/******/ __webpack_modules__[moduleId](module, module.exports, __webpack_require__); +/******/ +/******/ // Return the exports of the module +/******/ return module.exports; +/******/ } +/******/ +/******/ // expose the modules object (__webpack_modules__) +/******/ __webpack_require__.m = __webpack_modules__; +/******/ +/************************************************************************/ +/******/ /* webpack/runtime/ensure chunk */ +/******/ (() => { +/******/ __webpack_require__.f = {}; +/******/ // This file contains only the entry chunk. +/******/ // The chunk loading function for additional chunks +/******/ __webpack_require__.e = (chunkId) => { +/******/ return Promise.all(Object.keys(__webpack_require__.f).reduce((promises, key) => { +/******/ __webpack_require__.f[key](chunkId, promises); +/******/ return promises; +/******/ }, [])); +/******/ }; +/******/ })(); +/******/ +/******/ /* webpack/runtime/get javascript chunk filename */ +/******/ (() => { +/******/ // This function allow to reference async chunks +/******/ __webpack_require__.u = (chunkId) => { +/******/ // return url for filenames based on template +/******/ return "" + chunkId + ".js"; +/******/ }; +/******/ })(); +/******/ +/******/ /* webpack/runtime/get mini-css chunk filename */ +/******/ (() => { +/******/ // This function allow to reference all chunks +/******/ __webpack_require__.miniCssF = (chunkId) => { +/******/ // return url for filenames based on template +/******/ return "" + chunkId + ".css"; +/******/ }; +/******/ })(); +/******/ +/******/ /* webpack/runtime/global */ +/******/ (() => { +/******/ __webpack_require__.g = (function() { +/******/ if (typeof globalThis === 'object') return globalThis; +/******/ try { +/******/ return this || new Function('return this')(); +/******/ } catch (e) { +/******/ if (typeof window === 'object') return window; +/******/ } +/******/ })(); +/******/ })(); +/******/ +/******/ /* webpack/runtime/hasOwnProperty shorthand */ +/******/ (() => { +/******/ __webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop)) +/******/ })(); +/******/ +/******/ /* webpack/runtime/load script */ +/******/ (() => { +/******/ var inProgress = {}; +/******/ // data-webpack is not used as build has no uniqueName +/******/ // loadScript function to load a script via script tag +/******/ __webpack_require__.l = (url, done, key, chunkId) => { +/******/ if(inProgress[url]) { inProgress[url].push(done); return; } +/******/ var script, needAttach; +/******/ if(key !== undefined) { +/******/ var scripts = document.getElementsByTagName("script"); +/******/ for(var i = 0; i < scripts.length; i++) { +/******/ var s = scripts[i]; +/******/ if(s.getAttribute("src") == url) { script = s; break; } +/******/ } +/******/ } +/******/ if(!script) { +/******/ needAttach = true; +/******/ script = document.createElement('script'); +/******/ +/******/ script.charset = 'utf-8'; +/******/ script.timeout = 120; +/******/ if (__webpack_require__.nc) { +/******/ script.setAttribute("nonce", __webpack_require__.nc); +/******/ } +/******/ +/******/ script.src = url; +/******/ } +/******/ inProgress[url] = [done]; +/******/ var onScriptComplete = (prev, event) => { +/******/ // avoid mem leaks in IE. +/******/ script.onerror = script.onload = null; +/******/ clearTimeout(timeout); +/******/ var doneFns = inProgress[url]; +/******/ delete inProgress[url]; +/******/ script.parentNode && script.parentNode.removeChild(script); +/******/ doneFns && doneFns.forEach((fn) => (fn(event))); +/******/ if(prev) return prev(event); +/******/ } +/******/ ; +/******/ var timeout = setTimeout(onScriptComplete.bind(null, undefined, { type: 'timeout', target: script }), 120000); +/******/ script.onerror = onScriptComplete.bind(null, script.onerror); +/******/ script.onload = onScriptComplete.bind(null, script.onload); +/******/ needAttach && document.head.appendChild(script); +/******/ }; +/******/ })(); +/******/ +/******/ /* webpack/runtime/make namespace object */ +/******/ (() => { +/******/ // define __esModule on exports +/******/ __webpack_require__.r = (exports) => { +/******/ if(typeof Symbol !== 'undefined' && Symbol.toStringTag) { +/******/ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' }); +/******/ } +/******/ Object.defineProperty(exports, '__esModule', { value: true }); +/******/ }; +/******/ })(); +/******/ +/******/ /* webpack/runtime/publicPath */ +/******/ (() => { +/******/ var scriptUrl; +/******/ if (__webpack_require__.g.importScripts) scriptUrl = __webpack_require__.g.location + ""; +/******/ var document = __webpack_require__.g.document; +/******/ if (!scriptUrl && document) { +/******/ if (document.currentScript) +/******/ scriptUrl = document.currentScript.src +/******/ if (!scriptUrl) { +/******/ var scripts = document.getElementsByTagName("script"); +/******/ if(scripts.length) scriptUrl = scripts[scripts.length - 1].src +/******/ } +/******/ } +/******/ // When supporting browsers where an automatic publicPath is not supported you must specify an output.publicPath manually via configuration +/******/ // or pass an empty string ("") and set the __webpack_public_path__ variable from your code to use your own logic. +/******/ if (!scriptUrl) throw new Error("Automatic publicPath is not supported in this browser"); +/******/ scriptUrl = scriptUrl.replace(/#.*$/, "").replace(/\?.*$/, "").replace(/\/[^\/]+$/, "/"); +/******/ __webpack_require__.p = scriptUrl; +/******/ })(); +/******/ +/******/ /* webpack/runtime/css loading */ +/******/ (() => { +/******/ var createStylesheet = (chunkId, fullhref, resolve, reject) => { +/******/ var linkTag = document.createElement("link"); +/******/ +/******/ linkTag.rel = "stylesheet"; +/******/ linkTag.type = "text/css"; +/******/ var onLinkComplete = (event) => { +/******/ // avoid mem leaks. +/******/ linkTag.onerror = linkTag.onload = null; +/******/ if (event.type === 'load') { +/******/ resolve(); +/******/ } else { +/******/ var errorType = event && (event.type === 'load' ? 'missing' : event.type); +/******/ var realHref = event && event.target && event.target.href || fullhref; +/******/ var err = new Error("Loading CSS chunk " + chunkId + " failed.\n(" + realHref + ")"); +/******/ err.code = "CSS_CHUNK_LOAD_FAILED"; +/******/ err.type = errorType; +/******/ err.request = realHref; +/******/ linkTag.parentNode.removeChild(linkTag) +/******/ reject(err); +/******/ } +/******/ } +/******/ linkTag.onerror = linkTag.onload = onLinkComplete; +/******/ linkTag.href = fullhref; +/******/ +/******/ var target = document.querySelector("script[src='1.js']"); +/******/ target.parentNode.insertBefore(linkTag, target.nextSibling); +/******/ return linkTag; +/******/ }; +/******/ var findStylesheet = (href, fullhref) => { +/******/ var existingLinkTags = document.getElementsByTagName("link"); +/******/ for(var i = 0; i < existingLinkTags.length; i++) { +/******/ var tag = existingLinkTags[i]; +/******/ var dataHref = tag.getAttribute("data-href") || tag.getAttribute("href"); +/******/ if(tag.rel === "stylesheet" && (dataHref === href || dataHref === fullhref)) return tag; +/******/ } +/******/ var existingStyleTags = document.getElementsByTagName("style"); +/******/ for(var i = 0; i < existingStyleTags.length; i++) { +/******/ var tag = existingStyleTags[i]; +/******/ var dataHref = tag.getAttribute("data-href"); +/******/ if(dataHref === href || dataHref === fullhref) return tag; +/******/ } +/******/ }; +/******/ var loadStylesheet = (chunkId) => { +/******/ return new Promise((resolve, reject) => { +/******/ var href = __webpack_require__.miniCssF(chunkId); +/******/ var fullhref = __webpack_require__.p + href; +/******/ if(findStylesheet(href, fullhref)) return resolve(); +/******/ createStylesheet(chunkId, fullhref, resolve, reject); +/******/ }); +/******/ } +/******/ // object to store loaded CSS chunks +/******/ var installedCssChunks = { +/******/ 0: 0 +/******/ }; +/******/ +/******/ __webpack_require__.f.miniCss = (chunkId, promises) => { +/******/ var cssChunks = {"1":1}; +/******/ if(installedCssChunks[chunkId]) promises.push(installedCssChunks[chunkId]); +/******/ else if(installedCssChunks[chunkId] !== 0 && cssChunks[chunkId]) { +/******/ promises.push(installedCssChunks[chunkId] = loadStylesheet(chunkId).then(() => { +/******/ installedCssChunks[chunkId] = 0; +/******/ }, (e) => { +/******/ delete installedCssChunks[chunkId]; +/******/ throw e; +/******/ })); +/******/ } +/******/ }; +/******/ +/******/ // no hmr +/******/ })(); +/******/ +/******/ /* webpack/runtime/jsonp chunk loading */ +/******/ (() => { +/******/ // no baseURI +/******/ +/******/ // object to store loaded and loading chunks +/******/ // undefined = chunk not loaded, null = chunk preloaded/prefetched +/******/ // [resolve, reject, Promise] = chunk loading, 0 = chunk loaded +/******/ var installedChunks = { +/******/ 0: 0 +/******/ }; +/******/ +/******/ __webpack_require__.f.j = (chunkId, promises) => { +/******/ // JSONP chunk loading for javascript +/******/ var installedChunkData = __webpack_require__.o(installedChunks, chunkId) ? installedChunks[chunkId] : undefined; +/******/ if(installedChunkData !== 0) { // 0 means "already installed". +/******/ +/******/ // a Promise means "currently loading". +/******/ if(installedChunkData) { +/******/ promises.push(installedChunkData[2]); +/******/ } else { +/******/ if(true) { // all chunks have JS +/******/ // setup Promise in chunk cache +/******/ var promise = new Promise((resolve, reject) => (installedChunkData = installedChunks[chunkId] = [resolve, reject])); +/******/ promises.push(installedChunkData[2] = promise); +/******/ +/******/ // start chunk loading +/******/ var url = __webpack_require__.p + __webpack_require__.u(chunkId); +/******/ // create error before stack unwound to get useful stacktrace later +/******/ var error = new Error(); +/******/ var loadingEnded = (event) => { +/******/ if(__webpack_require__.o(installedChunks, chunkId)) { +/******/ installedChunkData = installedChunks[chunkId]; +/******/ if(installedChunkData !== 0) installedChunks[chunkId] = undefined; +/******/ if(installedChunkData) { +/******/ var errorType = event && (event.type === 'load' ? 'missing' : event.type); +/******/ var realSrc = event && event.target && event.target.src; +/******/ error.message = 'Loading chunk ' + chunkId + ' failed.\n(' + errorType + ': ' + realSrc + ')'; +/******/ error.name = 'ChunkLoadError'; +/******/ error.type = errorType; +/******/ error.request = realSrc; +/******/ installedChunkData[1](error); +/******/ } +/******/ } +/******/ }; +/******/ __webpack_require__.l(url, loadingEnded, "chunk-" + chunkId, chunkId); +/******/ } else installedChunks[chunkId] = 0; +/******/ } +/******/ } +/******/ }; +/******/ +/******/ // no prefetching +/******/ +/******/ // no preloaded +/******/ +/******/ // no HMR +/******/ +/******/ // no HMR manifest +/******/ +/******/ // no on chunks loaded +/******/ +/******/ // install a JSONP callback for chunk loading +/******/ var webpackJsonpCallback = (parentChunkLoadingFunction, data) => { +/******/ var [chunkIds, moreModules, runtime] = data; +/******/ // add "moreModules" to the modules object, +/******/ // then flag all "chunkIds" as loaded and fire callback +/******/ var moduleId, chunkId, i = 0; +/******/ for(moduleId in moreModules) { +/******/ if(__webpack_require__.o(moreModules, moduleId)) { +/******/ __webpack_require__.m[moduleId] = moreModules[moduleId]; +/******/ } +/******/ } +/******/ if(runtime) runtime(__webpack_require__); +/******/ if(parentChunkLoadingFunction) parentChunkLoadingFunction(data); +/******/ for(;i < chunkIds.length; i++) { +/******/ chunkId = chunkIds[i]; +/******/ if(__webpack_require__.o(installedChunks, chunkId) && installedChunks[chunkId]) { +/******/ installedChunks[chunkId][0](); +/******/ } +/******/ installedChunks[chunkIds[i]] = 0; +/******/ } +/******/ +/******/ } +/******/ +/******/ var chunkLoadingGlobal = self["webpackChunk"] = self["webpackChunk"] || []; +/******/ chunkLoadingGlobal.forEach(webpackJsonpCallback.bind(null, 0)); +/******/ chunkLoadingGlobal.push = webpackJsonpCallback.bind(null, chunkLoadingGlobal.push.bind(chunkLoadingGlobal)); +/******/ })(); +/******/ +/************************************************************************/ +var __webpack_exports__ = {}; +/* eslint-env browser */ + +// eslint-disable-next-line +__webpack_require__.e(/* import() */ 1).then(__webpack_require__.bind(__webpack_require__, 1)); + +/******/ })() +; \ No newline at end of file diff --git a/test/cases/insert-undefined/expected/webpack-5-importModule/1.css b/test/cases/insert-undefined/expected/webpack-5-importModule/1.css new file mode 100644 index 00000000..cebc5c1c --- /dev/null +++ b/test/cases/insert-undefined/expected/webpack-5-importModule/1.css @@ -0,0 +1,4 @@ +body { + background: red; +} + diff --git a/test/cases/insert-undefined/expected/webpack-5-importModule/1.js b/test/cases/insert-undefined/expected/webpack-5-importModule/1.js new file mode 100644 index 00000000..df8cbd2a --- /dev/null +++ b/test/cases/insert-undefined/expected/webpack-5-importModule/1.js @@ -0,0 +1,12 @@ +(self["webpackChunk"] = self["webpackChunk"] || []).push([[1],[ +/* 0 */, +/* 1 */ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +// extracted by mini-css-extract-plugin + + +/***/ }) +]]); \ No newline at end of file diff --git a/test/cases/insert-undefined/expected/webpack-5-importModule/main.js b/test/cases/insert-undefined/expected/webpack-5-importModule/main.js new file mode 100644 index 00000000..b998720c --- /dev/null +++ b/test/cases/insert-undefined/expected/webpack-5-importModule/main.js @@ -0,0 +1,325 @@ +/******/ (() => { // webpackBootstrap +/******/ var __webpack_modules__ = ({}); +/************************************************************************/ +/******/ // The module cache +/******/ var __webpack_module_cache__ = {}; +/******/ +/******/ // The require function +/******/ function __webpack_require__(moduleId) { +/******/ // Check if module is in cache +/******/ var cachedModule = __webpack_module_cache__[moduleId]; +/******/ if (cachedModule !== undefined) { +/******/ return cachedModule.exports; +/******/ } +/******/ // Create a new module (and put it into the cache) +/******/ var module = __webpack_module_cache__[moduleId] = { +/******/ // no module.id needed +/******/ // no module.loaded needed +/******/ exports: {} +/******/ }; +/******/ +/******/ // Execute the module function +/******/ __webpack_modules__[moduleId](module, module.exports, __webpack_require__); +/******/ +/******/ // Return the exports of the module +/******/ return module.exports; +/******/ } +/******/ +/******/ // expose the modules object (__webpack_modules__) +/******/ __webpack_require__.m = __webpack_modules__; +/******/ +/************************************************************************/ +/******/ /* webpack/runtime/ensure chunk */ +/******/ (() => { +/******/ __webpack_require__.f = {}; +/******/ // This file contains only the entry chunk. +/******/ // The chunk loading function for additional chunks +/******/ __webpack_require__.e = (chunkId) => { +/******/ return Promise.all(Object.keys(__webpack_require__.f).reduce((promises, key) => { +/******/ __webpack_require__.f[key](chunkId, promises); +/******/ return promises; +/******/ }, [])); +/******/ }; +/******/ })(); +/******/ +/******/ /* webpack/runtime/get javascript chunk filename */ +/******/ (() => { +/******/ // This function allow to reference async chunks +/******/ __webpack_require__.u = (chunkId) => { +/******/ // return url for filenames based on template +/******/ return "" + chunkId + ".js"; +/******/ }; +/******/ })(); +/******/ +/******/ /* webpack/runtime/get mini-css chunk filename */ +/******/ (() => { +/******/ // This function allow to reference all chunks +/******/ __webpack_require__.miniCssF = (chunkId) => { +/******/ // return url for filenames based on template +/******/ return "" + chunkId + ".css"; +/******/ }; +/******/ })(); +/******/ +/******/ /* webpack/runtime/global */ +/******/ (() => { +/******/ __webpack_require__.g = (function() { +/******/ if (typeof globalThis === 'object') return globalThis; +/******/ try { +/******/ return this || new Function('return this')(); +/******/ } catch (e) { +/******/ if (typeof window === 'object') return window; +/******/ } +/******/ })(); +/******/ })(); +/******/ +/******/ /* webpack/runtime/hasOwnProperty shorthand */ +/******/ (() => { +/******/ __webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop)) +/******/ })(); +/******/ +/******/ /* webpack/runtime/load script */ +/******/ (() => { +/******/ var inProgress = {}; +/******/ // data-webpack is not used as build has no uniqueName +/******/ // loadScript function to load a script via script tag +/******/ __webpack_require__.l = (url, done, key, chunkId) => { +/******/ if(inProgress[url]) { inProgress[url].push(done); return; } +/******/ var script, needAttach; +/******/ if(key !== undefined) { +/******/ var scripts = document.getElementsByTagName("script"); +/******/ for(var i = 0; i < scripts.length; i++) { +/******/ var s = scripts[i]; +/******/ if(s.getAttribute("src") == url) { script = s; break; } +/******/ } +/******/ } +/******/ if(!script) { +/******/ needAttach = true; +/******/ script = document.createElement('script'); +/******/ +/******/ script.charset = 'utf-8'; +/******/ script.timeout = 120; +/******/ if (__webpack_require__.nc) { +/******/ script.setAttribute("nonce", __webpack_require__.nc); +/******/ } +/******/ +/******/ script.src = url; +/******/ } +/******/ inProgress[url] = [done]; +/******/ var onScriptComplete = (prev, event) => { +/******/ // avoid mem leaks in IE. +/******/ script.onerror = script.onload = null; +/******/ clearTimeout(timeout); +/******/ var doneFns = inProgress[url]; +/******/ delete inProgress[url]; +/******/ script.parentNode && script.parentNode.removeChild(script); +/******/ doneFns && doneFns.forEach((fn) => (fn(event))); +/******/ if(prev) return prev(event); +/******/ } +/******/ ; +/******/ var timeout = setTimeout(onScriptComplete.bind(null, undefined, { type: 'timeout', target: script }), 120000); +/******/ script.onerror = onScriptComplete.bind(null, script.onerror); +/******/ script.onload = onScriptComplete.bind(null, script.onload); +/******/ needAttach && document.head.appendChild(script); +/******/ }; +/******/ })(); +/******/ +/******/ /* webpack/runtime/make namespace object */ +/******/ (() => { +/******/ // define __esModule on exports +/******/ __webpack_require__.r = (exports) => { +/******/ if(typeof Symbol !== 'undefined' && Symbol.toStringTag) { +/******/ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' }); +/******/ } +/******/ Object.defineProperty(exports, '__esModule', { value: true }); +/******/ }; +/******/ })(); +/******/ +/******/ /* webpack/runtime/publicPath */ +/******/ (() => { +/******/ var scriptUrl; +/******/ if (__webpack_require__.g.importScripts) scriptUrl = __webpack_require__.g.location + ""; +/******/ var document = __webpack_require__.g.document; +/******/ if (!scriptUrl && document) { +/******/ if (document.currentScript) +/******/ scriptUrl = document.currentScript.src +/******/ if (!scriptUrl) { +/******/ var scripts = document.getElementsByTagName("script"); +/******/ if(scripts.length) scriptUrl = scripts[scripts.length - 1].src +/******/ } +/******/ } +/******/ // When supporting browsers where an automatic publicPath is not supported you must specify an output.publicPath manually via configuration +/******/ // or pass an empty string ("") and set the __webpack_public_path__ variable from your code to use your own logic. +/******/ if (!scriptUrl) throw new Error("Automatic publicPath is not supported in this browser"); +/******/ scriptUrl = scriptUrl.replace(/#.*$/, "").replace(/\?.*$/, "").replace(/\/[^\/]+$/, "/"); +/******/ __webpack_require__.p = scriptUrl; +/******/ })(); +/******/ +/******/ /* webpack/runtime/css loading */ +/******/ (() => { +/******/ var createStylesheet = (chunkId, fullhref, resolve, reject) => { +/******/ var linkTag = document.createElement("link"); +/******/ +/******/ linkTag.rel = "stylesheet"; +/******/ linkTag.type = "text/css"; +/******/ var onLinkComplete = (event) => { +/******/ // avoid mem leaks. +/******/ linkTag.onerror = linkTag.onload = null; +/******/ if (event.type === 'load') { +/******/ resolve(); +/******/ } else { +/******/ var errorType = event && (event.type === 'load' ? 'missing' : event.type); +/******/ var realHref = event && event.target && event.target.href || fullhref; +/******/ var err = new Error("Loading CSS chunk " + chunkId + " failed.\n(" + realHref + ")"); +/******/ err.code = "CSS_CHUNK_LOAD_FAILED"; +/******/ err.type = errorType; +/******/ err.request = realHref; +/******/ linkTag.parentNode.removeChild(linkTag) +/******/ reject(err); +/******/ } +/******/ } +/******/ linkTag.onerror = linkTag.onload = onLinkComplete; +/******/ linkTag.href = fullhref; +/******/ +/******/ document.head.appendChild(linkTag); +/******/ return linkTag; +/******/ }; +/******/ var findStylesheet = (href, fullhref) => { +/******/ var existingLinkTags = document.getElementsByTagName("link"); +/******/ for(var i = 0; i < existingLinkTags.length; i++) { +/******/ var tag = existingLinkTags[i]; +/******/ var dataHref = tag.getAttribute("data-href") || tag.getAttribute("href"); +/******/ if(tag.rel === "stylesheet" && (dataHref === href || dataHref === fullhref)) return tag; +/******/ } +/******/ var existingStyleTags = document.getElementsByTagName("style"); +/******/ for(var i = 0; i < existingStyleTags.length; i++) { +/******/ var tag = existingStyleTags[i]; +/******/ var dataHref = tag.getAttribute("data-href"); +/******/ if(dataHref === href || dataHref === fullhref) return tag; +/******/ } +/******/ }; +/******/ var loadStylesheet = (chunkId) => { +/******/ return new Promise((resolve, reject) => { +/******/ var href = __webpack_require__.miniCssF(chunkId); +/******/ var fullhref = __webpack_require__.p + href; +/******/ if(findStylesheet(href, fullhref)) return resolve(); +/******/ createStylesheet(chunkId, fullhref, resolve, reject); +/******/ }); +/******/ } +/******/ // object to store loaded CSS chunks +/******/ var installedCssChunks = { +/******/ 0: 0 +/******/ }; +/******/ +/******/ __webpack_require__.f.miniCss = (chunkId, promises) => { +/******/ var cssChunks = {"1":1}; +/******/ if(installedCssChunks[chunkId]) promises.push(installedCssChunks[chunkId]); +/******/ else if(installedCssChunks[chunkId] !== 0 && cssChunks[chunkId]) { +/******/ promises.push(installedCssChunks[chunkId] = loadStylesheet(chunkId).then(() => { +/******/ installedCssChunks[chunkId] = 0; +/******/ }, (e) => { +/******/ delete installedCssChunks[chunkId]; +/******/ throw e; +/******/ })); +/******/ } +/******/ }; +/******/ +/******/ // no hmr +/******/ })(); +/******/ +/******/ /* webpack/runtime/jsonp chunk loading */ +/******/ (() => { +/******/ // no baseURI +/******/ +/******/ // object to store loaded and loading chunks +/******/ // undefined = chunk not loaded, null = chunk preloaded/prefetched +/******/ // [resolve, reject, Promise] = chunk loading, 0 = chunk loaded +/******/ var installedChunks = { +/******/ 0: 0 +/******/ }; +/******/ +/******/ __webpack_require__.f.j = (chunkId, promises) => { +/******/ // JSONP chunk loading for javascript +/******/ var installedChunkData = __webpack_require__.o(installedChunks, chunkId) ? installedChunks[chunkId] : undefined; +/******/ if(installedChunkData !== 0) { // 0 means "already installed". +/******/ +/******/ // a Promise means "currently loading". +/******/ if(installedChunkData) { +/******/ promises.push(installedChunkData[2]); +/******/ } else { +/******/ if(true) { // all chunks have JS +/******/ // setup Promise in chunk cache +/******/ var promise = new Promise((resolve, reject) => (installedChunkData = installedChunks[chunkId] = [resolve, reject])); +/******/ promises.push(installedChunkData[2] = promise); +/******/ +/******/ // start chunk loading +/******/ var url = __webpack_require__.p + __webpack_require__.u(chunkId); +/******/ // create error before stack unwound to get useful stacktrace later +/******/ var error = new Error(); +/******/ var loadingEnded = (event) => { +/******/ if(__webpack_require__.o(installedChunks, chunkId)) { +/******/ installedChunkData = installedChunks[chunkId]; +/******/ if(installedChunkData !== 0) installedChunks[chunkId] = undefined; +/******/ if(installedChunkData) { +/******/ var errorType = event && (event.type === 'load' ? 'missing' : event.type); +/******/ var realSrc = event && event.target && event.target.src; +/******/ error.message = 'Loading chunk ' + chunkId + ' failed.\n(' + errorType + ': ' + realSrc + ')'; +/******/ error.name = 'ChunkLoadError'; +/******/ error.type = errorType; +/******/ error.request = realSrc; +/******/ installedChunkData[1](error); +/******/ } +/******/ } +/******/ }; +/******/ __webpack_require__.l(url, loadingEnded, "chunk-" + chunkId, chunkId); +/******/ } else installedChunks[chunkId] = 0; +/******/ } +/******/ } +/******/ }; +/******/ +/******/ // no prefetching +/******/ +/******/ // no preloaded +/******/ +/******/ // no HMR +/******/ +/******/ // no HMR manifest +/******/ +/******/ // no on chunks loaded +/******/ +/******/ // install a JSONP callback for chunk loading +/******/ var webpackJsonpCallback = (parentChunkLoadingFunction, data) => { +/******/ var [chunkIds, moreModules, runtime] = data; +/******/ // add "moreModules" to the modules object, +/******/ // then flag all "chunkIds" as loaded and fire callback +/******/ var moduleId, chunkId, i = 0; +/******/ for(moduleId in moreModules) { +/******/ if(__webpack_require__.o(moreModules, moduleId)) { +/******/ __webpack_require__.m[moduleId] = moreModules[moduleId]; +/******/ } +/******/ } +/******/ if(runtime) runtime(__webpack_require__); +/******/ if(parentChunkLoadingFunction) parentChunkLoadingFunction(data); +/******/ for(;i < chunkIds.length; i++) { +/******/ chunkId = chunkIds[i]; +/******/ if(__webpack_require__.o(installedChunks, chunkId) && installedChunks[chunkId]) { +/******/ installedChunks[chunkId][0](); +/******/ } +/******/ installedChunks[chunkIds[i]] = 0; +/******/ } +/******/ +/******/ } +/******/ +/******/ var chunkLoadingGlobal = self["webpackChunk"] = self["webpackChunk"] || []; +/******/ chunkLoadingGlobal.forEach(webpackJsonpCallback.bind(null, 0)); +/******/ chunkLoadingGlobal.push = webpackJsonpCallback.bind(null, chunkLoadingGlobal.push.bind(chunkLoadingGlobal)); +/******/ })(); +/******/ +/************************************************************************/ +var __webpack_exports__ = {}; +/* eslint-env browser */ + +// eslint-disable-next-line +__webpack_require__.e(/* import() */ 1).then(__webpack_require__.bind(__webpack_require__, 1)); + +/******/ })() +; \ No newline at end of file diff --git a/test/cases/js-hash/expected/webpack-5-importModule/style.229314c8bccc7c31e2f3.1.css b/test/cases/js-hash/expected/webpack-5-importModule/style.229314c8bccc7c31e2f3.1.css new file mode 100644 index 00000000..acf4122a --- /dev/null +++ b/test/cases/js-hash/expected/webpack-5-importModule/style.229314c8bccc7c31e2f3.1.css @@ -0,0 +1,4 @@ +.dDtFvCqivX5dncL54de5D { + background: red; +} + diff --git a/test/cases/js-hash/expected/webpack-5-importModule/style.334e3250146c69e0e055.2.css b/test/cases/js-hash/expected/webpack-5-importModule/style.334e3250146c69e0e055.2.css new file mode 100644 index 00000000..825e4b99 --- /dev/null +++ b/test/cases/js-hash/expected/webpack-5-importModule/style.334e3250146c69e0e055.2.css @@ -0,0 +1,5 @@ + +.dDtFvCqivX5dncL54de5D { + background: green; +} + diff --git a/test/cases/runtime/expected/webpack-5-importModule/main.a7263f8f763dcf4051bc.css b/test/cases/runtime/expected/webpack-5-importModule/main.a7263f8f763dcf4051bc.css new file mode 100644 index 00000000..cebc5c1c --- /dev/null +++ b/test/cases/runtime/expected/webpack-5-importModule/main.a7263f8f763dcf4051bc.css @@ -0,0 +1,4 @@ +body { + background: red; +} + diff --git a/test/cases/runtime/expected/webpack-5-importModule/runtime~main.js b/test/cases/runtime/expected/webpack-5-importModule/runtime~main.js new file mode 100644 index 00000000..512b1c4b --- /dev/null +++ b/test/cases/runtime/expected/webpack-5-importModule/runtime~main.js @@ -0,0 +1,323 @@ +/******/ (() => { // webpackBootstrap +/******/ "use strict"; +/******/ var __webpack_modules__ = ({}); +/************************************************************************/ +/******/ // The module cache +/******/ var __webpack_module_cache__ = {}; +/******/ +/******/ // The require function +/******/ function __webpack_require__(moduleId) { +/******/ // Check if module is in cache +/******/ var cachedModule = __webpack_module_cache__[moduleId]; +/******/ if (cachedModule !== undefined) { +/******/ return cachedModule.exports; +/******/ } +/******/ // Create a new module (and put it into the cache) +/******/ var module = __webpack_module_cache__[moduleId] = { +/******/ // no module.id needed +/******/ // no module.loaded needed +/******/ exports: {} +/******/ }; +/******/ +/******/ // Execute the module function +/******/ __webpack_modules__[moduleId](module, module.exports, __webpack_require__); +/******/ +/******/ // Return the exports of the module +/******/ return module.exports; +/******/ } +/******/ +/******/ // expose the modules object (__webpack_modules__) +/******/ __webpack_require__.m = __webpack_modules__; +/******/ +/************************************************************************/ +/******/ /* webpack/runtime/chunk loaded */ +/******/ (() => { +/******/ var deferred = []; +/******/ __webpack_require__.O = (result, chunkIds, fn, priority) => { +/******/ if(chunkIds) { +/******/ priority = priority || 0; +/******/ for(var i = deferred.length; i > 0 && deferred[i - 1][2] > priority; i--) deferred[i] = deferred[i - 1]; +/******/ deferred[i] = [chunkIds, fn, priority]; +/******/ return; +/******/ } +/******/ var notFulfilled = Infinity; +/******/ for (var i = 0; i < deferred.length; i++) { +/******/ var [chunkIds, fn, priority] = deferred[i]; +/******/ var fulfilled = true; +/******/ for (var j = 0; j < chunkIds.length; j++) { +/******/ if ((priority & 1 === 0 || notFulfilled >= priority) && Object.keys(__webpack_require__.O).every((key) => (__webpack_require__.O[key](chunkIds[j])))) { +/******/ chunkIds.splice(j--, 1); +/******/ } else { +/******/ fulfilled = false; +/******/ if(priority < notFulfilled) notFulfilled = priority; +/******/ } +/******/ } +/******/ if(fulfilled) { +/******/ deferred.splice(i--, 1) +/******/ result = fn(); +/******/ } +/******/ } +/******/ return result; +/******/ }; +/******/ })(); +/******/ +/******/ /* webpack/runtime/create fake namespace object */ +/******/ (() => { +/******/ var getProto = Object.getPrototypeOf ? (obj) => (Object.getPrototypeOf(obj)) : (obj) => (obj.__proto__); +/******/ var leafPrototypes; +/******/ // create a fake namespace object +/******/ // mode & 1: value is a module id, require it +/******/ // mode & 2: merge all properties of value into the ns +/******/ // mode & 4: return value when already ns object +/******/ // mode & 16: return value when it's Promise-like +/******/ // mode & 8|1: behave like require +/******/ __webpack_require__.t = function(value, mode) { +/******/ if(mode & 1) value = this(value); +/******/ if(mode & 8) return value; +/******/ if(typeof value === 'object' && value) { +/******/ if((mode & 4) && value.__esModule) return value; +/******/ if((mode & 16) && typeof value.then === 'function') return value; +/******/ } +/******/ var ns = Object.create(null); +/******/ __webpack_require__.r(ns); +/******/ var def = {}; +/******/ leafPrototypes = leafPrototypes || [null, getProto({}), getProto([]), getProto(getProto)]; +/******/ for(var current = mode & 2 && value; typeof current == 'object' && !~leafPrototypes.indexOf(current); current = getProto(current)) { +/******/ Object.getOwnPropertyNames(current).forEach((key) => (def[key] = () => (value[key]))); +/******/ } +/******/ def['default'] = () => (value); +/******/ __webpack_require__.d(ns, def); +/******/ return ns; +/******/ }; +/******/ })(); +/******/ +/******/ /* webpack/runtime/define property getters */ +/******/ (() => { +/******/ // define getter functions for harmony exports +/******/ __webpack_require__.d = (exports, definition) => { +/******/ for(var key in definition) { +/******/ if(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) { +/******/ Object.defineProperty(exports, key, { enumerable: true, get: definition[key] }); +/******/ } +/******/ } +/******/ }; +/******/ })(); +/******/ +/******/ /* webpack/runtime/ensure chunk */ +/******/ (() => { +/******/ __webpack_require__.f = {}; +/******/ // This file contains only the entry chunk. +/******/ // The chunk loading function for additional chunks +/******/ __webpack_require__.e = (chunkId) => { +/******/ return Promise.all(Object.keys(__webpack_require__.f).reduce((promises, key) => { +/******/ __webpack_require__.f[key](chunkId, promises); +/******/ return promises; +/******/ }, [])); +/******/ }; +/******/ })(); +/******/ +/******/ /* webpack/runtime/get javascript chunk filename */ +/******/ (() => { +/******/ // This function allow to reference async chunks +/******/ __webpack_require__.u = (chunkId) => { +/******/ // return url for filenames based on template +/******/ return "" + chunkId + ".js"; +/******/ }; +/******/ })(); +/******/ +/******/ /* webpack/runtime/get mini-css chunk filename */ +/******/ (() => { +/******/ // This function allow to reference all chunks +/******/ __webpack_require__.miniCssF = (chunkId) => { +/******/ // return url for filenames based on template +/******/ return "" + "main" + "." + "a7263f8f763dcf4051bc" + ".css"; +/******/ }; +/******/ })(); +/******/ +/******/ /* webpack/runtime/global */ +/******/ (() => { +/******/ __webpack_require__.g = (function() { +/******/ if (typeof globalThis === 'object') return globalThis; +/******/ try { +/******/ return this || new Function('return this')(); +/******/ } catch (e) { +/******/ if (typeof window === 'object') return window; +/******/ } +/******/ })(); +/******/ })(); +/******/ +/******/ /* webpack/runtime/hasOwnProperty shorthand */ +/******/ (() => { +/******/ __webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop)) +/******/ })(); +/******/ +/******/ /* webpack/runtime/load script */ +/******/ (() => { +/******/ var inProgress = {}; +/******/ // data-webpack is not used as build has no uniqueName +/******/ // loadScript function to load a script via script tag +/******/ __webpack_require__.l = (url, done, key, chunkId) => { +/******/ if(inProgress[url]) { inProgress[url].push(done); return; } +/******/ var script, needAttach; +/******/ if(key !== undefined) { +/******/ var scripts = document.getElementsByTagName("script"); +/******/ for(var i = 0; i < scripts.length; i++) { +/******/ var s = scripts[i]; +/******/ if(s.getAttribute("src") == url) { script = s; break; } +/******/ } +/******/ } +/******/ if(!script) { +/******/ needAttach = true; +/******/ script = document.createElement('script'); +/******/ +/******/ script.charset = 'utf-8'; +/******/ script.timeout = 120; +/******/ if (__webpack_require__.nc) { +/******/ script.setAttribute("nonce", __webpack_require__.nc); +/******/ } +/******/ +/******/ script.src = url; +/******/ } +/******/ inProgress[url] = [done]; +/******/ var onScriptComplete = (prev, event) => { +/******/ // avoid mem leaks in IE. +/******/ script.onerror = script.onload = null; +/******/ clearTimeout(timeout); +/******/ var doneFns = inProgress[url]; +/******/ delete inProgress[url]; +/******/ script.parentNode && script.parentNode.removeChild(script); +/******/ doneFns && doneFns.forEach((fn) => (fn(event))); +/******/ if(prev) return prev(event); +/******/ } +/******/ ; +/******/ var timeout = setTimeout(onScriptComplete.bind(null, undefined, { type: 'timeout', target: script }), 120000); +/******/ script.onerror = onScriptComplete.bind(null, script.onerror); +/******/ script.onload = onScriptComplete.bind(null, script.onload); +/******/ needAttach && document.head.appendChild(script); +/******/ }; +/******/ })(); +/******/ +/******/ /* webpack/runtime/make namespace object */ +/******/ (() => { +/******/ // define __esModule on exports +/******/ __webpack_require__.r = (exports) => { +/******/ if(typeof Symbol !== 'undefined' && Symbol.toStringTag) { +/******/ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' }); +/******/ } +/******/ Object.defineProperty(exports, '__esModule', { value: true }); +/******/ }; +/******/ })(); +/******/ +/******/ /* webpack/runtime/publicPath */ +/******/ (() => { +/******/ var scriptUrl; +/******/ if (__webpack_require__.g.importScripts) scriptUrl = __webpack_require__.g.location + ""; +/******/ var document = __webpack_require__.g.document; +/******/ if (!scriptUrl && document) { +/******/ if (document.currentScript) +/******/ scriptUrl = document.currentScript.src +/******/ if (!scriptUrl) { +/******/ var scripts = document.getElementsByTagName("script"); +/******/ if(scripts.length) scriptUrl = scripts[scripts.length - 1].src +/******/ } +/******/ } +/******/ // When supporting browsers where an automatic publicPath is not supported you must specify an output.publicPath manually via configuration +/******/ // or pass an empty string ("") and set the __webpack_public_path__ variable from your code to use your own logic. +/******/ if (!scriptUrl) throw new Error("Automatic publicPath is not supported in this browser"); +/******/ scriptUrl = scriptUrl.replace(/#.*$/, "").replace(/\?.*$/, "").replace(/\/[^\/]+$/, "/"); +/******/ __webpack_require__.p = scriptUrl; +/******/ })(); +/******/ +/******/ /* webpack/runtime/jsonp chunk loading */ +/******/ (() => { +/******/ // no baseURI +/******/ +/******/ // object to store loaded and loading chunks +/******/ // undefined = chunk not loaded, null = chunk preloaded/prefetched +/******/ // [resolve, reject, Promise] = chunk loading, 0 = chunk loaded +/******/ var installedChunks = { +/******/ 1: 0 +/******/ }; +/******/ +/******/ __webpack_require__.f.j = (chunkId, promises) => { +/******/ // JSONP chunk loading for javascript +/******/ var installedChunkData = __webpack_require__.o(installedChunks, chunkId) ? installedChunks[chunkId] : undefined; +/******/ if(installedChunkData !== 0) { // 0 means "already installed". +/******/ +/******/ // a Promise means "currently loading". +/******/ if(installedChunkData) { +/******/ promises.push(installedChunkData[2]); +/******/ } else { +/******/ if(1 != chunkId) { +/******/ // setup Promise in chunk cache +/******/ var promise = new Promise((resolve, reject) => (installedChunkData = installedChunks[chunkId] = [resolve, reject])); +/******/ promises.push(installedChunkData[2] = promise); +/******/ +/******/ // start chunk loading +/******/ var url = __webpack_require__.p + __webpack_require__.u(chunkId); +/******/ // create error before stack unwound to get useful stacktrace later +/******/ var error = new Error(); +/******/ var loadingEnded = (event) => { +/******/ if(__webpack_require__.o(installedChunks, chunkId)) { +/******/ installedChunkData = installedChunks[chunkId]; +/******/ if(installedChunkData !== 0) installedChunks[chunkId] = undefined; +/******/ if(installedChunkData) { +/******/ var errorType = event && (event.type === 'load' ? 'missing' : event.type); +/******/ var realSrc = event && event.target && event.target.src; +/******/ error.message = 'Loading chunk ' + chunkId + ' failed.\n(' + errorType + ': ' + realSrc + ')'; +/******/ error.name = 'ChunkLoadError'; +/******/ error.type = errorType; +/******/ error.request = realSrc; +/******/ installedChunkData[1](error); +/******/ } +/******/ } +/******/ }; +/******/ __webpack_require__.l(url, loadingEnded, "chunk-" + chunkId, chunkId); +/******/ } else installedChunks[chunkId] = 0; +/******/ } +/******/ } +/******/ }; +/******/ +/******/ // no prefetching +/******/ +/******/ // no preloaded +/******/ +/******/ // no HMR +/******/ +/******/ // no HMR manifest +/******/ +/******/ __webpack_require__.O.j = (chunkId) => (installedChunks[chunkId] === 0); +/******/ +/******/ // install a JSONP callback for chunk loading +/******/ var webpackJsonpCallback = (parentChunkLoadingFunction, data) => { +/******/ var [chunkIds, moreModules, runtime] = data; +/******/ // add "moreModules" to the modules object, +/******/ // then flag all "chunkIds" as loaded and fire callback +/******/ var moduleId, chunkId, i = 0; +/******/ for(moduleId in moreModules) { +/******/ if(__webpack_require__.o(moreModules, moduleId)) { +/******/ __webpack_require__.m[moduleId] = moreModules[moduleId]; +/******/ } +/******/ } +/******/ if(runtime) runtime(__webpack_require__); +/******/ if(parentChunkLoadingFunction) parentChunkLoadingFunction(data); +/******/ for(;i < chunkIds.length; i++) { +/******/ chunkId = chunkIds[i]; +/******/ if(__webpack_require__.o(installedChunks, chunkId) && installedChunks[chunkId]) { +/******/ installedChunks[chunkId][0](); +/******/ } +/******/ installedChunks[chunkIds[i]] = 0; +/******/ } +/******/ __webpack_require__.O(); +/******/ } +/******/ +/******/ var chunkLoadingGlobal = self["webpackChunk"] = self["webpackChunk"] || []; +/******/ chunkLoadingGlobal.forEach(webpackJsonpCallback.bind(null, 0)); +/******/ chunkLoadingGlobal.push = webpackJsonpCallback.bind(null, chunkLoadingGlobal.push.bind(chunkLoadingGlobal)); +/******/ })(); +/******/ +/************************************************************************/ +var __webpack_exports__ = {}; +__webpack_require__.O(); +/******/ })() +; \ No newline at end of file diff --git a/test/cases/split-chunks-all/expected/webpack-5-importModule/2.css b/test/cases/split-chunks-all/expected/webpack-5-importModule/2.css new file mode 100644 index 00000000..cebc5c1c --- /dev/null +++ b/test/cases/split-chunks-all/expected/webpack-5-importModule/2.css @@ -0,0 +1,4 @@ +body { + background: red; +} + diff --git a/test/cases/split-chunks-all/expected/webpack-5-importModule/2.js b/test/cases/split-chunks-all/expected/webpack-5-importModule/2.js new file mode 100644 index 00000000..c8d4dd4f --- /dev/null +++ b/test/cases/split-chunks-all/expected/webpack-5-importModule/2.js @@ -0,0 +1 @@ +MISSING diff --git a/test/helpers/snapshotResolver.js b/test/helpers/snapshotResolver.js index 742ee5b6..bb368528 100644 --- a/test/helpers/snapshotResolver.js +++ b/test/helpers/snapshotResolver.js @@ -7,7 +7,13 @@ const [webpackVersion] = webpack.version; const snapshotExtension = `.snap.webpack${webpackVersion}`; // eslint-disable-next-line no-console -console.log('Current webpack version:', webpackVersion); +console.log( + 'Current webpack version:', + webpackVersion, + process.env.EXPERIMENTAL_USE_IMPORT_MODULE + ? '(experimental use importModule)' + : '' +); module.exports = { resolveSnapshotPath: (testPath) => diff --git a/test/manual/webpack.config.js b/test/manual/webpack.config.js index 06412542..3b4bf633 100644 --- a/test/manual/webpack.config.js +++ b/test/manual/webpack.config.js @@ -10,6 +10,11 @@ const ENABLE_ES_MODULE = ? Boolean(process.env.ES_MODULE) : true; +const ENABLE_EXPERIMENTAL_USE_IMPORT_MODULE = + typeof process.env.EXPERIMENTAL_USE_IMPORT_MODULE !== 'undefined' + ? Boolean(process.env.EXPERIMENTAL_USE_IMPORT_MODULE) + : true; + module.exports = { mode: 'development', output: { @@ -58,6 +63,7 @@ module.exports = { new Self({ filename: '[name].css', chunkFilename: '[name].chunk.css', + experimentalUseImportModule: ENABLE_EXPERIMENTAL_USE_IMPORT_MODULE, }), ], devServer: { From b50224e8c3ba7560357884a48c3f0b90de6ca526 Mon Sep 17 00:00:00 2001 From: evilebottnawi Date: Sat, 17 Apr 2021 18:12:22 +0300 Subject: [PATCH 02/30] chore(release): 1.5.0 --- CHANGELOG.md | 7 +++++++ package-lock.json | 2 +- package.json | 2 +- 3 files changed, 9 insertions(+), 2 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index c1b031f9..6ad0771d 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,6 +2,13 @@ All notable changes to this project will be documented in this file. See [standard-version](https://github.com/conventional-changelog/standard-version) for commit guidelines. +## [1.5.0](https://github.com/webpack-contrib/mini-css-extract-plugin/compare/v1.4.1...v1.5.0) (2021-04-17) + + +### Features + +* add experimental support for `importModule`, improve perfomance ([#737](https://github.com/webpack-contrib/mini-css-extract-plugin/issues/737)) ([8471ac2](https://github.com/webpack-contrib/mini-css-extract-plugin/commit/8471ac24dde3d7e874995f8ab4814cc94b4179e1)) + ### [1.4.1](https://github.com/webpack-contrib/mini-css-extract-plugin/compare/v1.4.0...v1.4.1) (2021-04-07) diff --git a/package-lock.json b/package-lock.json index 2b44129f..80241f03 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,6 +1,6 @@ { "name": "mini-css-extract-plugin", - "version": "1.4.1", + "version": "1.5.0", "lockfileVersion": 2, "requires": true, "packages": { diff --git a/package.json b/package.json index d9fdec3b..ebdd97ae 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "mini-css-extract-plugin", - "version": "1.4.1", + "version": "1.5.0", "description": "extracts CSS into separate files", "license": "MIT", "repository": "webpack-contrib/mini-css-extract-plugin", From aff99fa75bab8493c8cf3e7f6c6e9f28a32df37e Mon Sep 17 00:00:00 2001 From: Sam Chen Date: Sat, 17 Apr 2021 23:54:08 +0800 Subject: [PATCH 03/30] docs: add example for experimentalUseImportModule (#743) --- README.md | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) diff --git a/README.md b/README.md index 3934aeeb..c288ae62 100644 --- a/README.md +++ b/README.md @@ -267,6 +267,28 @@ When combined with `experiments.layers`, this adds a `layer` option to the loade You need to have at least webpack 5.33.2. +**webpack.config.js** + +```js +const MiniCssExtractPlugin = require('mini-css-extract-plugin'); + +module.exports = { + plugins: [ + new MiniCssExtractPlugin({ + experimentalUseImportModule: true, + }), + ], + module: { + rules: [ + { + test: /\.css$/i, + use: [MiniCssExtractPlugin.loader, 'css-loader'], + }, + ], + }, +}; +``` + ### Loader Options | Name | Type | Default | Description | From 8171439000f458dc681f2339bfccda459ecf3fc7 Mon Sep 17 00:00:00 2001 From: Carl von Buelow Date: Tue, 20 Apr 2021 07:15:46 -0400 Subject: [PATCH 04/30] docs: improve readme (#745) --- README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index c288ae62..ebba9f88 100644 --- a/README.md +++ b/README.md @@ -544,9 +544,9 @@ module.exports = { ### Common use case `mini-css-extract-plugin` is more often used in `production` mode to get separate css files. -For `development` mode (including `webpack-dev-server`) you can use `style-loader`, because it injects CSS into the DOM using multiple and works faster. +For `development` mode (including `webpack-dev-server`) you can use `style-loader`, because it injects CSS into the DOM using multiple `` and works faster. -> i Do not use together `style-loader` and `mini-css-extract-plugin`. +> ⚠️ Do not use `style-loader` and `mini-css-extract-plugin` together. **webpack.config.js** From e0d834db477e6085a9ddcfefac5af2f2b629dc1a Mon Sep 17 00:00:00 2001 From: Alexander Akait <4567934+alexander-akait@users.noreply.github.com> Date: Wed, 28 Apr 2021 16:21:45 +0300 Subject: [PATCH 05/30] test: update snapshots --- package-lock.json | 2443 +++++++++-------- ...81e0081.css => 0.acd0bc1ae24d05fdac73.css} | 0 ...a881e0081.css => acd0bc1ae24d05fdac73.css} | 0 .../expected/webpack-5-importModule/main.js | 4 +- ...8fbe3ca.css => 0.4ecab8e2ff0fe228a728.css} | 0 ...8e8fbe3ca.css => 4ecab8e2ff0fe228a728.css} | 0 .../expected/webpack-5/main.js | 4 +- .../expected/webpack-5-importModule/common.js | 4 +- .../expected/webpack-5/common.js | 4 +- .../expected/webpack-5-importModule/common.js | 4 +- .../dependOn/expected/webpack-5/common.js | 4 +- .../expected/webpack-5-importModule/main.js | 2 +- .../expected/webpack-5/main.js | 2 +- .../expected/webpack-5-importModule/main.js | 2 +- .../insert-string/expected/webpack-5/main.js | 2 +- .../expected/webpack-5-importModule/main.js | 2 +- .../expected/webpack-5/main.js | 2 +- .../webpack-5-importModule/runtime~main.js | 8 +- .../expected/webpack-5/runtime~main.js | 8 +- 19 files changed, 1260 insertions(+), 1235 deletions(-) rename test/cases/chunkFilename-fullhash/expected/webpack-5-importModule/{0.bb36c53eabba881e0081.css => 0.acd0bc1ae24d05fdac73.css} (100%) rename test/cases/chunkFilename-fullhash/expected/webpack-5-importModule/{bb36c53eabba881e0081.css => acd0bc1ae24d05fdac73.css} (100%) rename test/cases/chunkFilename-fullhash/expected/webpack-5/{0.07119853b0d8e8fbe3ca.css => 0.4ecab8e2ff0fe228a728.css} (100%) rename test/cases/chunkFilename-fullhash/expected/webpack-5/{07119853b0d8e8fbe3ca.css => 4ecab8e2ff0fe228a728.css} (100%) diff --git a/package-lock.json b/package-lock.json index 80241f03..9904c5ed 100644 --- a/package-lock.json +++ b/package-lock.json @@ -5,7 +5,7 @@ "requires": true, "packages": { "": { - "version": "1.4.1", + "version": "1.5.0", "license": "MIT", "dependencies": { "loader-utils": "^2.0.0", @@ -55,16 +55,15 @@ } }, "node_modules/@babel/cli": { - "version": "7.13.10", - "resolved": "https://registry.npmjs.org/@babel/cli/-/cli-7.13.10.tgz", - "integrity": "sha512-lYSBC7B4B9hJ7sv0Ojx1BrGhuzCoOIYfLjd+Xpd4rOzdS+a47yi8voV8vFkfjlZR1N5qZO7ixOCbobUdT304PQ==", + "version": "7.13.16", + "resolved": "https://registry.npmjs.org/@babel/cli/-/cli-7.13.16.tgz", + "integrity": "sha512-cL9tllhqvsQ6r1+d9Invf7nNXg/3BlfL1vvvL/AdH9fZ2l5j0CeBcoq6UjsqHpvyN1v5nXSZgqJZoGeK+ZOAbw==", "dev": true, "dependencies": { "commander": "^4.0.1", "convert-source-map": "^1.1.0", "fs-readdir-recursive": "^1.1.0", "glob": "^7.0.0", - "lodash": "^4.17.19", "make-dir": "^2.1.0", "slash": "^2.0.0", "source-map": "^0.5.0" @@ -91,31 +90,30 @@ } }, "node_modules/@babel/compat-data": { - "version": "7.13.11", - "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.13.11.tgz", - "integrity": "sha512-BwKEkO+2a67DcFeS3RLl0Z3Gs2OvdXewuWjc1Hfokhb5eQWP9YRYH1/+VrVZvql2CfjOiNGqSAFOYt4lsqTHzg==", + "version": "7.13.15", + "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.13.15.tgz", + "integrity": "sha512-ltnibHKR1VnrU4ymHyQ/CXtNXI6yZC0oJThyW78Hft8XndANwi+9H+UIklBDraIjFEJzw8wmcM427oDd9KS5wA==", "dev": true }, "node_modules/@babel/core": { - "version": "7.13.10", - "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.13.10.tgz", - "integrity": "sha512-bfIYcT0BdKeAZrovpMqX2Mx5NrgAckGbwT982AkdS5GNfn3KMGiprlBAtmBcFZRUmpaufS6WZFP8trvx8ptFDw==", + "version": "7.13.16", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.13.16.tgz", + "integrity": "sha512-sXHpixBiWWFti0AV2Zq7avpTasr6sIAu7Y396c608541qAU2ui4a193m0KSQmfPSKFZLnQ3cvlKDOm3XkuXm3Q==", "dev": true, "dependencies": { "@babel/code-frame": "^7.12.13", - "@babel/generator": "^7.13.9", - "@babel/helper-compilation-targets": "^7.13.10", - "@babel/helper-module-transforms": "^7.13.0", - "@babel/helpers": "^7.13.10", - "@babel/parser": "^7.13.10", + "@babel/generator": "^7.13.16", + "@babel/helper-compilation-targets": "^7.13.16", + "@babel/helper-module-transforms": "^7.13.14", + "@babel/helpers": "^7.13.16", + "@babel/parser": "^7.13.16", "@babel/template": "^7.12.13", - "@babel/traverse": "^7.13.0", - "@babel/types": "^7.13.0", + "@babel/traverse": "^7.13.15", + "@babel/types": "^7.13.16", "convert-source-map": "^1.7.0", "debug": "^4.1.0", "gensync": "^1.0.0-beta.2", "json5": "^2.1.2", - "lodash": "^4.17.19", "semver": "^6.3.0", "source-map": "^0.5.0" }, @@ -128,12 +126,12 @@ } }, "node_modules/@babel/generator": { - "version": "7.13.9", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.13.9.tgz", - "integrity": "sha512-mHOOmY0Axl/JCTkxTU6Lf5sWOg/v8nUa+Xkt4zMTftX0wqmb6Sh7J8gvcehBw7q0AhrhAR+FDacKjCZ2X8K+Sw==", + "version": "7.13.16", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.13.16.tgz", + "integrity": "sha512-grBBR75UnKOcUWMp8WoDxNsWCFl//XCK6HWTrBQKTr5SV9f5g0pNOjdyzi/DTBv12S9GnYPInIXQBTky7OXEMg==", "dev": true, "dependencies": { - "@babel/types": "^7.13.0", + "@babel/types": "^7.13.16", "jsesc": "^2.5.1", "source-map": "^0.5.0" } @@ -158,12 +156,12 @@ } }, "node_modules/@babel/helper-compilation-targets": { - "version": "7.13.10", - "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.13.10.tgz", - "integrity": "sha512-/Xju7Qg1GQO4mHZ/Kcs6Au7gfafgZnwm+a7sy/ow/tV1sHeraRUHbjdat8/UvDor4Tez+siGKDk6zIKtCPKVJA==", + "version": "7.13.16", + "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.13.16.tgz", + "integrity": "sha512-3gmkYIrpqsLlieFwjkGgLaSHmhnvlAYzZLlYVjlW+QwI+1zE17kGxuJGmIqDQdYp56XdmGeD+Bswx0UTyG18xA==", "dev": true, "dependencies": { - "@babel/compat-data": "^7.13.8", + "@babel/compat-data": "^7.13.15", "@babel/helper-validator-option": "^7.12.17", "browserslist": "^4.14.5", "semver": "^6.3.0" @@ -202,9 +200,9 @@ } }, "node_modules/@babel/helper-define-polyfill-provider": { - "version": "0.1.5", - "resolved": "https://registry.npmjs.org/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.1.5.tgz", - "integrity": "sha512-nXuzCSwlJ/WKr8qxzW816gwyT6VZgiJG17zR40fou70yfAcqjoNyTLl/DQ+FExw5Hx5KNqshmN8Ldl/r2N7cTg==", + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.2.0.tgz", + "integrity": "sha512-JT8tHuFjKBo8NnaUbblz7mIu1nnvUDiHVjXXkulZULyidvo/7P6TY7+YqpV37IfF+KUFxmlK04elKtGKXaiVgw==", "dev": true, "dependencies": { "@babel/helper-compilation-targets": "^7.13.0", @@ -250,48 +248,47 @@ } }, "node_modules/@babel/helper-hoist-variables": { - "version": "7.13.0", - "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.13.0.tgz", - "integrity": "sha512-0kBzvXiIKfsCA0y6cFEIJf4OdzfpRuNk4+YTeHZpGGc666SATFKTz6sRncwFnQk7/ugJ4dSrCj6iJuvW4Qwr2g==", + "version": "7.13.16", + "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.13.16.tgz", + "integrity": "sha512-1eMtTrXtrwscjcAeO4BVK+vvkxaLJSPFz1w1KLawz6HLNi9bPFGBNwwDyVfiu1Tv/vRRFYfoGaKhmAQPGPn5Wg==", "dev": true, "dependencies": { - "@babel/traverse": "^7.13.0", - "@babel/types": "^7.13.0" + "@babel/traverse": "^7.13.15", + "@babel/types": "^7.13.16" } }, "node_modules/@babel/helper-member-expression-to-functions": { - "version": "7.13.0", - "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.13.0.tgz", - "integrity": "sha512-yvRf8Ivk62JwisqV1rFRMxiSMDGnN6KH1/mDMmIrij4jztpQNRoHqqMG3U6apYbGRPJpgPalhva9Yd06HlUxJQ==", + "version": "7.13.12", + "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.13.12.tgz", + "integrity": "sha512-48ql1CLL59aKbU94Y88Xgb2VFy7a95ykGRbJJaaVv+LX5U8wFpLfiGXJJGUozsmA1oEh/o5Bp60Voq7ACyA/Sw==", "dev": true, "dependencies": { - "@babel/types": "^7.13.0" + "@babel/types": "^7.13.12" } }, "node_modules/@babel/helper-module-imports": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.12.13.tgz", - "integrity": "sha512-NGmfvRp9Rqxy0uHSSVP+SRIW1q31a7Ji10cLBcqSDUngGentY4FRiHOFZFE1CLU5eiL0oE8reH7Tg1y99TDM/g==", + "version": "7.13.12", + "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.13.12.tgz", + "integrity": "sha512-4cVvR2/1B693IuOvSI20xqqa/+bl7lqAMR59R4iu39R9aOX8/JoYY1sFaNvUMyMBGnHdwvJgUrzNLoUZxXypxA==", "dev": true, "dependencies": { - "@babel/types": "^7.12.13" + "@babel/types": "^7.13.12" } }, "node_modules/@babel/helper-module-transforms": { - "version": "7.13.0", - "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.13.0.tgz", - "integrity": "sha512-Ls8/VBwH577+pw7Ku1QkUWIyRRNHpYlts7+qSqBBFCW3I8QteB9DxfcZ5YJpOwH6Ihe/wn8ch7fMGOP1OhEIvw==", + "version": "7.13.14", + "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.13.14.tgz", + "integrity": "sha512-QuU/OJ0iAOSIatyVZmfqB0lbkVP0kDRiKj34xy+QNsnVZi/PA6BoSoreeqnxxa9EHFAIL0R9XOaAR/G9WlIy5g==", "dev": true, "dependencies": { - "@babel/helper-module-imports": "^7.12.13", - "@babel/helper-replace-supers": "^7.13.0", - "@babel/helper-simple-access": "^7.12.13", + "@babel/helper-module-imports": "^7.13.12", + "@babel/helper-replace-supers": "^7.13.12", + "@babel/helper-simple-access": "^7.13.12", "@babel/helper-split-export-declaration": "^7.12.13", "@babel/helper-validator-identifier": "^7.12.11", "@babel/template": "^7.12.13", - "@babel/traverse": "^7.13.0", - "@babel/types": "^7.13.0", - "lodash": "^4.17.19" + "@babel/traverse": "^7.13.13", + "@babel/types": "^7.13.14" } }, "node_modules/@babel/helper-optimise-call-expression": { @@ -321,24 +318,24 @@ } }, "node_modules/@babel/helper-replace-supers": { - "version": "7.13.0", - "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.13.0.tgz", - "integrity": "sha512-Segd5me1+Pz+rmN/NFBOplMbZG3SqRJOBlY+mA0SxAv6rjj7zJqr1AVr3SfzUVTLCv7ZLU5FycOM/SBGuLPbZw==", + "version": "7.13.12", + "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.13.12.tgz", + "integrity": "sha512-Gz1eiX+4yDO8mT+heB94aLVNCL+rbuT2xy4YfyNqu8F+OI6vMvJK891qGBTqL9Uc8wxEvRW92Id6G7sDen3fFw==", "dev": true, "dependencies": { - "@babel/helper-member-expression-to-functions": "^7.13.0", + "@babel/helper-member-expression-to-functions": "^7.13.12", "@babel/helper-optimise-call-expression": "^7.12.13", "@babel/traverse": "^7.13.0", - "@babel/types": "^7.13.0" + "@babel/types": "^7.13.12" } }, "node_modules/@babel/helper-simple-access": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.12.13.tgz", - "integrity": "sha512-0ski5dyYIHEfwpWGx5GPWhH35j342JaflmCeQmsPWcrOQDtCN6C1zKAVRFVbK53lPW2c9TsuLLSUDf0tIGJ5hA==", + "version": "7.13.12", + "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.13.12.tgz", + "integrity": "sha512-7FEjbrx5SL9cWvXioDbnlYTppcZGuCY6ow3/D5vMggb2Ywgu4dMrpTJX0JdQAIcRRUElOIxF3yEooa9gUb9ZbA==", "dev": true, "dependencies": { - "@babel/types": "^7.12.13" + "@babel/types": "^7.13.12" } }, "node_modules/@babel/helper-skip-transparent-expression-wrappers": { @@ -384,14 +381,14 @@ } }, "node_modules/@babel/helpers": { - "version": "7.13.10", - "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.13.10.tgz", - "integrity": "sha512-4VO883+MWPDUVRF3PhiLBUFHoX/bsLTGFpFK/HqvvfBZz2D57u9XzPVNFVBTc0PW/CWR9BXTOKt8NF4DInUHcQ==", + "version": "7.13.17", + "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.13.17.tgz", + "integrity": "sha512-Eal4Gce4kGijo1/TGJdqp3WuhllaMLSrW6XcL0ulyUAQOuxHcCafZE8KHg9857gcTehsm/v7RcOx2+jp0Ryjsg==", "dev": true, "dependencies": { "@babel/template": "^7.12.13", - "@babel/traverse": "^7.13.0", - "@babel/types": "^7.13.0" + "@babel/traverse": "^7.13.17", + "@babel/types": "^7.13.17" } }, "node_modules/@babel/highlight": { @@ -406,9 +403,9 @@ } }, "node_modules/@babel/parser": { - "version": "7.13.11", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.13.11.tgz", - "integrity": "sha512-PhuoqeHoO9fc4ffMEVk4qb/w/s2iOSWohvbHxLtxui0eBg3Lg5gN1U8wp1V1u61hOWkPQJJyJzGH6Y+grwkq8Q==", + "version": "7.13.16", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.13.16.tgz", + "integrity": "sha512-6bAg36mCwuqLO0hbR+z7PHuqWiCeP7Dzg73OpQwsAB1Eb8HnGEz5xYBzCfbu+YjoaJsJs+qheDxVAuqbt3ILEw==", "dev": true, "bin": { "parser": "bin/babel-parser.js" @@ -417,10 +414,24 @@ "node": ">=6.0.0" } }, + "node_modules/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": { + "version": "7.13.12", + "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/-/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.13.12.tgz", + "integrity": "sha512-d0u3zWKcoZf379fOeJdr1a5WPDny4aOFZ6hlfKivgK0LY7ZxNfoaHL2fWwdGtHyVvra38FC+HVYkO+byfSA8AQ==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.13.0", + "@babel/helper-skip-transparent-expression-wrappers": "^7.12.1", + "@babel/plugin-proposal-optional-chaining": "^7.13.12" + }, + "peerDependencies": { + "@babel/core": "^7.13.0" + } + }, "node_modules/@babel/plugin-proposal-async-generator-functions": { - "version": "7.13.8", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.13.8.tgz", - "integrity": "sha512-rPBnhj+WgoSmgq+4gQUtXx/vOcU+UYtjy1AA/aeD61Hwj410fwYyqfUcRP3lR8ucgliVJL/G7sXcNUecC75IXA==", + "version": "7.13.15", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.13.15.tgz", + "integrity": "sha512-VapibkWzFeoa6ubXy/NgV5U2U4MVnUlvnx6wo1XhlsaTrLYWE0UFpDQsVrmn22q5CzeloqJ8gEMHSKxuee6ZdA==", "dev": true, "dependencies": { "@babel/helper-plugin-utils": "^7.13.0", @@ -552,9 +563,9 @@ } }, "node_modules/@babel/plugin-proposal-optional-chaining": { - "version": "7.13.8", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-optional-chaining/-/plugin-proposal-optional-chaining-7.13.8.tgz", - "integrity": "sha512-hpbBwbTgd7Cz1QryvwJZRo1U0k1q8uyBmeXOSQUjdg/A2TASkhR/rz7AyqZ/kS8kbpsNA80rOYbxySBJAqmhhQ==", + "version": "7.13.12", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-optional-chaining/-/plugin-proposal-optional-chaining-7.13.12.tgz", + "integrity": "sha512-fcEdKOkIB7Tf4IxrgEVeFC4zeJSTr78no9wTdBuZZbqF64kzllU0ybo2zrzm7gUQfxGhBgq4E39oRs8Zx/RMYQ==", "dev": true, "dependencies": { "@babel/helper-plugin-utils": "^7.13.0", @@ -801,12 +812,12 @@ } }, "node_modules/@babel/plugin-transform-block-scoping": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.12.13.tgz", - "integrity": "sha512-Pxwe0iqWJX4fOOM2kEZeUuAxHMWb9nK+9oh5d11bsLoB0xMg+mkDpt0eYuDZB7ETrY9bbcVlKUGTOGWy7BHsMQ==", + "version": "7.13.16", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.13.16.tgz", + "integrity": "sha512-ad3PHUxGnfWF4Efd3qFuznEtZKoBp0spS+DgqzVzRPV7urEBvPLue3y2j80w4Jf2YLzZHj8TOv/Lmvdmh3b2xg==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.12.13" + "@babel/helper-plugin-utils": "^7.13.0" }, "peerDependencies": { "@babel/core": "^7.0.0-0" @@ -843,9 +854,9 @@ } }, "node_modules/@babel/plugin-transform-destructuring": { - "version": "7.13.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.13.0.tgz", - "integrity": "sha512-zym5em7tePoNT9s964c0/KU3JPPnuq7VhIxPRefJ4/s82cD+q1mgKfuGRDMCPL0HTyKz4dISuQlCusfgCJ86HA==", + "version": "7.13.17", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.13.17.tgz", + "integrity": "sha512-UAUqiLv+uRLO+xuBKKMEpC+t7YRNVRqBsWWq1yKXbBZBje/t3IXCiSinZhjn/DC3qzBfICeYd2EFGEbHsh5RLA==", "dev": true, "dependencies": { "@babel/helper-plugin-utils": "^7.13.0" @@ -1061,9 +1072,9 @@ } }, "node_modules/@babel/plugin-transform-regenerator": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.12.13.tgz", - "integrity": "sha512-lxb2ZAvSLyJ2PEe47hoGWPmW22v7CtSl9jW8mingV4H2sEX/JOcrAj2nPuGWi56ERUm2bUpjKzONAuT6HCn2EA==", + "version": "7.13.15", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.13.15.tgz", + "integrity": "sha512-Bk9cOLSz8DiurcMETZ8E2YtIVJbFCPGW28DJWUakmyVWtQSm6Wsf0p4B4BfEr/eL2Nkhe/CICiUiMOCi1TPhuQ==", "dev": true, "dependencies": { "regenerator-transform": "^0.14.2" @@ -1171,16 +1182,17 @@ } }, "node_modules/@babel/preset-env": { - "version": "7.13.10", - "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.13.10.tgz", - "integrity": "sha512-nOsTScuoRghRtUsRr/c69d042ysfPHcu+KOB4A9aAO9eJYqrkat+LF8G1yp1HD18QiwixT2CisZTr/0b3YZPXQ==", + "version": "7.13.15", + "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.13.15.tgz", + "integrity": "sha512-D4JAPMXcxk69PKe81jRJ21/fP/uYdcTZ3hJDF5QX2HSI9bBxxYw/dumdR6dGumhjxlprHPE4XWoPaqzZUVy2MA==", "dev": true, "dependencies": { - "@babel/compat-data": "^7.13.8", - "@babel/helper-compilation-targets": "^7.13.10", + "@babel/compat-data": "^7.13.15", + "@babel/helper-compilation-targets": "^7.13.13", "@babel/helper-plugin-utils": "^7.13.0", "@babel/helper-validator-option": "^7.12.17", - "@babel/plugin-proposal-async-generator-functions": "^7.13.8", + "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": "^7.13.12", + "@babel/plugin-proposal-async-generator-functions": "^7.13.15", "@babel/plugin-proposal-class-properties": "^7.13.0", "@babel/plugin-proposal-dynamic-import": "^7.13.8", "@babel/plugin-proposal-export-namespace-from": "^7.12.13", @@ -1190,7 +1202,7 @@ "@babel/plugin-proposal-numeric-separator": "^7.12.13", "@babel/plugin-proposal-object-rest-spread": "^7.13.8", "@babel/plugin-proposal-optional-catch-binding": "^7.13.8", - "@babel/plugin-proposal-optional-chaining": "^7.13.8", + "@babel/plugin-proposal-optional-chaining": "^7.13.12", "@babel/plugin-proposal-private-methods": "^7.13.0", "@babel/plugin-proposal-unicode-property-regex": "^7.12.13", "@babel/plugin-syntax-async-generators": "^7.8.4", @@ -1228,7 +1240,7 @@ "@babel/plugin-transform-object-super": "^7.12.13", "@babel/plugin-transform-parameters": "^7.13.0", "@babel/plugin-transform-property-literals": "^7.12.13", - "@babel/plugin-transform-regenerator": "^7.12.13", + "@babel/plugin-transform-regenerator": "^7.13.15", "@babel/plugin-transform-reserved-words": "^7.12.13", "@babel/plugin-transform-shorthand-properties": "^7.12.13", "@babel/plugin-transform-spread": "^7.13.0", @@ -1238,10 +1250,10 @@ "@babel/plugin-transform-unicode-escapes": "^7.12.13", "@babel/plugin-transform-unicode-regex": "^7.12.13", "@babel/preset-modules": "^0.1.4", - "@babel/types": "^7.13.0", - "babel-plugin-polyfill-corejs2": "^0.1.4", - "babel-plugin-polyfill-corejs3": "^0.1.3", - "babel-plugin-polyfill-regenerator": "^0.1.2", + "@babel/types": "^7.13.14", + "babel-plugin-polyfill-corejs2": "^0.2.0", + "babel-plugin-polyfill-corejs3": "^0.2.0", + "babel-plugin-polyfill-regenerator": "^0.2.0", "core-js-compat": "^3.9.0", "semver": "^6.3.0" }, @@ -1266,9 +1278,9 @@ } }, "node_modules/@babel/runtime": { - "version": "7.13.10", - "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.13.10.tgz", - "integrity": "sha512-4QPkjJq6Ns3V/RgpEahRk+AGfL0eO6RHHtTWoNNr5mO49G6B5+X6d6THgWEAvTrznU5xYpbAlVKRYcsCgh/Akw==", + "version": "7.13.17", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.13.17.tgz", + "integrity": "sha512-NCdgJEelPTSh+FEFylhnP1ylq848l1z9t9N0j1Lfbcw0+KXGjsTvUmkxy+voLLXB5SOKMbLLx4jxYliGrYQseA==", "dev": true, "dependencies": { "regenerator-runtime": "^0.13.4" @@ -1286,30 +1298,28 @@ } }, "node_modules/@babel/traverse": { - "version": "7.13.0", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.13.0.tgz", - "integrity": "sha512-xys5xi5JEhzC3RzEmSGrs/b3pJW/o87SypZ+G/PhaE7uqVQNv/jlmVIBXuoh5atqQ434LfXV+sf23Oxj0bchJQ==", + "version": "7.13.17", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.13.17.tgz", + "integrity": "sha512-BMnZn0R+X6ayqm3C3To7o1j7Q020gWdqdyP50KEoVqaCO2c/Im7sYZSmVgvefp8TTMQ+9CtwuBp0Z1CZ8V3Pvg==", "dev": true, "dependencies": { "@babel/code-frame": "^7.12.13", - "@babel/generator": "^7.13.0", + "@babel/generator": "^7.13.16", "@babel/helper-function-name": "^7.12.13", "@babel/helper-split-export-declaration": "^7.12.13", - "@babel/parser": "^7.13.0", - "@babel/types": "^7.13.0", + "@babel/parser": "^7.13.16", + "@babel/types": "^7.13.17", "debug": "^4.1.0", - "globals": "^11.1.0", - "lodash": "^4.17.19" + "globals": "^11.1.0" } }, "node_modules/@babel/types": { - "version": "7.13.0", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.13.0.tgz", - "integrity": "sha512-hE+HE8rnG1Z6Wzo+MhaKE5lM5eMx71T4EHJgku2E3xIfaULhDcxiiRxUYgwX8qwP1BBSlag+TdGOt6JAidIZTA==", + "version": "7.13.17", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.13.17.tgz", + "integrity": "sha512-RawydLgxbOPDlTLJNtoIypwdmAy//uQIzlKt2+iBiJaRlVuI6QLUxVAyWGNfOzp8Yu4L4lLIacoCyTNtpb4wiA==", "dev": true, "dependencies": { "@babel/helper-validator-identifier": "^7.12.11", - "lodash": "^4.17.19", "to-fast-properties": "^2.0.0" } }, @@ -1336,16 +1346,16 @@ } }, "node_modules/@commitlint/cli": { - "version": "12.0.1", - "resolved": "https://registry.npmjs.org/@commitlint/cli/-/cli-12.0.1.tgz", - "integrity": "sha512-V+cMYNHJOr40XT9Kvz3Vrz1Eh7QE1rjQrUbifawDAqcOrBJFuoXwU2SAcRtYFCSqFy9EhbreQGhZFs8dYb90KA==", + "version": "12.1.1", + "resolved": "https://registry.npmjs.org/@commitlint/cli/-/cli-12.1.1.tgz", + "integrity": "sha512-SB67/s6VJ50seoPx/Sr2gj1fMzKrx+udgarecGdr8h43ah+M2e22gjQJ7xHv5KwyPQ+6ug1YOMCL34ubT4zupQ==", "dev": true, "dependencies": { - "@commitlint/format": "^12.0.1", - "@commitlint/lint": "^12.0.1", - "@commitlint/load": "^12.0.1", - "@commitlint/read": "^12.0.1", - "@commitlint/types": "^12.0.1", + "@commitlint/format": "^12.1.1", + "@commitlint/lint": "^12.1.1", + "@commitlint/load": "^12.1.1", + "@commitlint/read": "^12.1.1", + "@commitlint/types": "^12.1.1", "get-stdin": "8.0.0", "lodash": "^4.17.19", "resolve-from": "5.0.0", @@ -1360,9 +1370,9 @@ } }, "node_modules/@commitlint/config-conventional": { - "version": "12.0.1", - "resolved": "https://registry.npmjs.org/@commitlint/config-conventional/-/config-conventional-12.0.1.tgz", - "integrity": "sha512-1ZhB135lh47zVmf1orwcjxuKuam11fJIH/bdVxW9XiQv8XPwC6iIp19knfl8FcOT78AVBnes1z6EVxgUeP2/4Q==", + "version": "12.1.1", + "resolved": "https://registry.npmjs.org/@commitlint/config-conventional/-/config-conventional-12.1.1.tgz", + "integrity": "sha512-15CqbXMsQiEb0qbzjEHe2OkzaXPYSp7RxaS6KoSVk/4W0QiigquavQ+M0huBZze92h0lMS6Pxoq4AJ5CQ3D+iQ==", "dev": true, "dependencies": { "conventional-changelog-conventionalcommits": "^4.3.1" @@ -1372,12 +1382,12 @@ } }, "node_modules/@commitlint/ensure": { - "version": "12.0.1", - "resolved": "https://registry.npmjs.org/@commitlint/ensure/-/ensure-12.0.1.tgz", - "integrity": "sha512-XdBq+q1YBBDxWIAEjE3Y1YMbzhUnUuSLAEWD8SU1xsvEpQXWRYwDlMBRkjO7funNWTdL0ZQSkZDzme70imYjbw==", + "version": "12.1.1", + "resolved": "https://registry.npmjs.org/@commitlint/ensure/-/ensure-12.1.1.tgz", + "integrity": "sha512-XEUQvUjzBVQM7Uv8vYz+c7PDukFvx0AvQEyX/V+PaTkCK/xPvexu7FLbFwvypjSt9BPMf+T/rhB1hVmldkd6lw==", "dev": true, "dependencies": { - "@commitlint/types": "^12.0.1", + "@commitlint/types": "^12.1.1", "lodash": "^4.17.19" }, "engines": { @@ -1385,21 +1395,21 @@ } }, "node_modules/@commitlint/execute-rule": { - "version": "12.0.1", - "resolved": "https://registry.npmjs.org/@commitlint/execute-rule/-/execute-rule-12.0.1.tgz", - "integrity": "sha512-JzyweYfZlFLtXpgP+btzSY3YAkGPg61TqUSYQqBr4+5IaVf1FruMm5v4D5eLu9dAJuNKUfHbM3AEfuEPiZ79pg==", + "version": "12.1.1", + "resolved": "https://registry.npmjs.org/@commitlint/execute-rule/-/execute-rule-12.1.1.tgz", + "integrity": "sha512-6mplMGvLCKF5LieL7BRhydpg32tm6LICnWQADrWU4S5g9PKi2utNvhiaiuNPoHUXr29RdbNaGNcyyPv8DSjJsQ==", "dev": true, "engines": { "node": ">=v10" } }, "node_modules/@commitlint/format": { - "version": "12.0.1", - "resolved": "https://registry.npmjs.org/@commitlint/format/-/format-12.0.1.tgz", - "integrity": "sha512-rF79ipAxR8yFzPzG5tRoEZ//MRkyxCXj4JhpEjtdaCMBAXMssI8uazn3e5D8z4UFgSDe9qOnL0OmQvql7HTMoA==", + "version": "12.1.1", + "resolved": "https://registry.npmjs.org/@commitlint/format/-/format-12.1.1.tgz", + "integrity": "sha512-bTAoOryTFLqls17JTaRwk2WDVOP0NwuG4F/JPK8RaF6DMZNVQTfajkgTxFENNZRnESfau1BvivvEXfUAW2ZsvA==", "dev": true, "dependencies": { - "@commitlint/types": "^12.0.1", + "@commitlint/types": "^12.1.1", "chalk": "^4.0.0" }, "engines": { @@ -1422,9 +1432,9 @@ } }, "node_modules/@commitlint/format/node_modules/chalk": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.0.tgz", - "integrity": "sha512-qwx12AxXe2Q5xQ43Ac//I6v5aXTipYrSESdOgzrN+9XjgEpyjpKuvSGaN4qE93f7TQTlerQQ8S+EQ0EyDoVL1A==", + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.1.tgz", + "integrity": "sha512-diHzdDKxcU+bAsUboHLPEDQiw0qEe0qd7SYUn3HgcFlWgbDcfLGswOHYeGrHKzG9z6UYf01d9VFMfZxPM1xZSg==", "dev": true, "dependencies": { "ansi-styles": "^4.1.0", @@ -1477,22 +1487,22 @@ } }, "node_modules/@commitlint/is-ignored": { - "version": "12.0.1", - "resolved": "https://registry.npmjs.org/@commitlint/is-ignored/-/is-ignored-12.0.1.tgz", - "integrity": "sha512-AplfLn5mX/kWTIiSolcOhTYcgphuGLX8FUr+HmyHBEqUkO36jt0z9caysH47fqU71ePtH63v1DWm+RYQ5RPDjg==", + "version": "12.1.1", + "resolved": "https://registry.npmjs.org/@commitlint/is-ignored/-/is-ignored-12.1.1.tgz", + "integrity": "sha512-Sn4fsnWX+wLAJOD/UZeoVruB98te1TyPYRiDEq0MhRJAQIrP+7jE/O3/ass68AAMq00HvH3OK9kt4UBXggcGjA==", "dev": true, "dependencies": { - "@commitlint/types": "^12.0.1", - "semver": "7.3.4" + "@commitlint/types": "^12.1.1", + "semver": "7.3.5" }, "engines": { "node": ">=v10" } }, "node_modules/@commitlint/is-ignored/node_modules/semver": { - "version": "7.3.4", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.4.tgz", - "integrity": "sha512-tCfb2WLjqFAtXn4KEdxIhalnRtoKFN7nAwj0B3ZXCbQloV2tq5eDbcTmT68JJD3nRJq24/XgxtQKFIpQdtvmVw==", + "version": "7.3.5", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.5.tgz", + "integrity": "sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==", "dev": true, "dependencies": { "lru-cache": "^6.0.0" @@ -1505,29 +1515,29 @@ } }, "node_modules/@commitlint/lint": { - "version": "12.0.1", - "resolved": "https://registry.npmjs.org/@commitlint/lint/-/lint-12.0.1.tgz", - "integrity": "sha512-1lKyRCq4ahJrY+Xxo8LsqCbALeJkodtEfpmYHeA5HpPMnK7lRSplLqOLcTCjoPfd4vO+gl6aDEZN+ow3YGQBOg==", + "version": "12.1.1", + "resolved": "https://registry.npmjs.org/@commitlint/lint/-/lint-12.1.1.tgz", + "integrity": "sha512-FFFPpku/E0svL1jaUVqosuZJDDWiNWYBlUw5ZEljh3MwWRcoaWtMIX5bseX+IvHpFZsCTAiBs1kCgNulCi0UvA==", "dev": true, "dependencies": { - "@commitlint/is-ignored": "^12.0.1", - "@commitlint/parse": "^12.0.1", - "@commitlint/rules": "^12.0.1", - "@commitlint/types": "^12.0.1" + "@commitlint/is-ignored": "^12.1.1", + "@commitlint/parse": "^12.1.1", + "@commitlint/rules": "^12.1.1", + "@commitlint/types": "^12.1.1" }, "engines": { "node": ">=v10" } }, "node_modules/@commitlint/load": { - "version": "12.0.1", - "resolved": "https://registry.npmjs.org/@commitlint/load/-/load-12.0.1.tgz", - "integrity": "sha512-dX8KdCWn7w0bTkkk3zKQpe9X8vsTRa5EM+1ffF313wCX9b6tGa9vujhEHCkSzKAbbE2tFV64CHZygE7rtlHdIA==", + "version": "12.1.1", + "resolved": "https://registry.npmjs.org/@commitlint/load/-/load-12.1.1.tgz", + "integrity": "sha512-qOQtgNdJRULUQWP9jkpTwhj7aEtnqUtqeUpbQ9rjS+GIUST65HZbteNUX4S0mAEGPWqy2aK5xGd73cUfFSvuuw==", "dev": true, "dependencies": { - "@commitlint/execute-rule": "^12.0.1", - "@commitlint/resolve-extends": "^12.0.1", - "@commitlint/types": "^12.0.1", + "@commitlint/execute-rule": "^12.1.1", + "@commitlint/resolve-extends": "^12.1.1", + "@commitlint/types": "^12.1.1", "chalk": "^4.0.0", "cosmiconfig": "^7.0.0", "lodash": "^4.17.19", @@ -1553,9 +1563,9 @@ } }, "node_modules/@commitlint/load/node_modules/chalk": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.0.tgz", - "integrity": "sha512-qwx12AxXe2Q5xQ43Ac//I6v5aXTipYrSESdOgzrN+9XjgEpyjpKuvSGaN4qE93f7TQTlerQQ8S+EQ0EyDoVL1A==", + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.1.tgz", + "integrity": "sha512-diHzdDKxcU+bAsUboHLPEDQiw0qEe0qd7SYUn3HgcFlWgbDcfLGswOHYeGrHKzG9z6UYf01d9VFMfZxPM1xZSg==", "dev": true, "dependencies": { "ansi-styles": "^4.1.0", @@ -1608,21 +1618,21 @@ } }, "node_modules/@commitlint/message": { - "version": "12.0.1", - "resolved": "https://registry.npmjs.org/@commitlint/message/-/message-12.0.1.tgz", - "integrity": "sha512-fXuoxRC+NT1wEQi6p8oHfT7wvWIRgTk+udlRJnWTjmMpiYzVnMmmZfasdShirWr4TtxQtMyL+5DVgh7Y98kURw==", + "version": "12.1.1", + "resolved": "https://registry.npmjs.org/@commitlint/message/-/message-12.1.1.tgz", + "integrity": "sha512-RakDSLAiOligXjhbLahV8HowF4K75pZIcs0+Ii9Q8Gz5H3DWf1Ngit7alFTWfcbf/+DTjSzVPov5HiwQZPIBUg==", "dev": true, "engines": { "node": ">=v10" } }, "node_modules/@commitlint/parse": { - "version": "12.0.1", - "resolved": "https://registry.npmjs.org/@commitlint/parse/-/parse-12.0.1.tgz", - "integrity": "sha512-7oEGASmzBnHir5jSIR7KephXrKh7rIi9a6RpH1tOT+CIENYvhe8EDtIy29qMt+RLa2LlaPF7YrAgaJRfzG0YDQ==", + "version": "12.1.1", + "resolved": "https://registry.npmjs.org/@commitlint/parse/-/parse-12.1.1.tgz", + "integrity": "sha512-nuljIvAbBDr93DgL0wCArftEIhjSghawAwhvrKNV9FFcqAJqfVqitwMxJrNDCQ5pgUMCSKULLOEv+dA0bLlTEQ==", "dev": true, "dependencies": { - "@commitlint/types": "^12.0.1", + "@commitlint/types": "^12.1.1", "conventional-changelog-angular": "^5.0.11", "conventional-commits-parser": "^3.0.0" }, @@ -1631,13 +1641,13 @@ } }, "node_modules/@commitlint/read": { - "version": "12.0.1", - "resolved": "https://registry.npmjs.org/@commitlint/read/-/read-12.0.1.tgz", - "integrity": "sha512-baa0YeD4QOctEuthLpExQSi9xPiw0kDPfUVHqp8I88iuIXJECeS8S1+1GBiz89e8dLN9zmEE+sN9vtJHdAp9YA==", + "version": "12.1.1", + "resolved": "https://registry.npmjs.org/@commitlint/read/-/read-12.1.1.tgz", + "integrity": "sha512-1k0CQEoZIdixvmqZRKEcWdj2XiKS7SlizEOJ1SE99Qui5d5FlBey8eaooTGgmpR6zObpIHJehtEPzM3VzUT3qA==", "dev": true, "dependencies": { - "@commitlint/top-level": "^12.0.1", - "@commitlint/types": "^12.0.1", + "@commitlint/top-level": "^12.1.1", + "@commitlint/types": "^12.1.1", "fs-extra": "^9.0.0", "git-raw-commits": "^2.0.0" }, @@ -1646,9 +1656,9 @@ } }, "node_modules/@commitlint/resolve-extends": { - "version": "12.0.1", - "resolved": "https://registry.npmjs.org/@commitlint/resolve-extends/-/resolve-extends-12.0.1.tgz", - "integrity": "sha512-Mvg0GDi/68Cqw893ha8uhxE8myHfPmiSSSi7d1x4VJNR4hoS37lBdX89kyx4i9NPmLfviY2cUJKTyK8ZrFznZw==", + "version": "12.1.1", + "resolved": "https://registry.npmjs.org/@commitlint/resolve-extends/-/resolve-extends-12.1.1.tgz", + "integrity": "sha512-/DXRt0S0U3o9lq5cc8OL1Lkx0IjW0HcDWjUkUXshAajBIKBYSJB8x/loNCi1krNEJ8SwLXUEFt5OLxNO6wE9yQ==", "dev": true, "dependencies": { "import-fresh": "^3.0.0", @@ -1661,33 +1671,33 @@ } }, "node_modules/@commitlint/rules": { - "version": "12.0.1", - "resolved": "https://registry.npmjs.org/@commitlint/rules/-/rules-12.0.1.tgz", - "integrity": "sha512-A5O0ubNGugZR9WWxk5IVOLo07lpdUwhG5WkAW2lYpgZ7Z/2U4PLob9b4Ih1eHbQu+gnVeFr91k7F0DrpM7B8EQ==", + "version": "12.1.1", + "resolved": "https://registry.npmjs.org/@commitlint/rules/-/rules-12.1.1.tgz", + "integrity": "sha512-oCcLF/ykcJfhM2DeeaDyrgdaiuKsqIPNocugdPj2WEyhSYqmx1/u18CV96LAtW+WyyiOLCCeiZwiQutx3T5nXg==", "dev": true, "dependencies": { - "@commitlint/ensure": "^12.0.1", - "@commitlint/message": "^12.0.1", - "@commitlint/to-lines": "^12.0.1", - "@commitlint/types": "^12.0.1" + "@commitlint/ensure": "^12.1.1", + "@commitlint/message": "^12.1.1", + "@commitlint/to-lines": "^12.1.1", + "@commitlint/types": "^12.1.1" }, "engines": { "node": ">=v10" } }, "node_modules/@commitlint/to-lines": { - "version": "12.0.1", - "resolved": "https://registry.npmjs.org/@commitlint/to-lines/-/to-lines-12.0.1.tgz", - "integrity": "sha512-XwcJ1jY7x2fhudzbGMpNQkTSMVrxWrI8bRMbVe3Abuu7RfYpFf7VXAlhtnLfxBoagaK7RxjC2+eRidp/3txQBg==", + "version": "12.1.1", + "resolved": "https://registry.npmjs.org/@commitlint/to-lines/-/to-lines-12.1.1.tgz", + "integrity": "sha512-W23AH2XF5rI27MOAPSSr0TUDoRe7ZbFoRtYhFnPu2MBmcuDA9Tmfd9N5sM2tBXtdE26uq3SazwKqGt1OoGAilQ==", "dev": true, "engines": { "node": ">=v10" } }, "node_modules/@commitlint/top-level": { - "version": "12.0.1", - "resolved": "https://registry.npmjs.org/@commitlint/top-level/-/top-level-12.0.1.tgz", - "integrity": "sha512-rHdgt7U24GEau2/9i2vEAbksxkBRiVjHj5ECFL5dd0AJOIvaK++vMg4EF/ME0X/1yd9qVTHTNOl2Q4tTFK7VBQ==", + "version": "12.1.1", + "resolved": "https://registry.npmjs.org/@commitlint/top-level/-/top-level-12.1.1.tgz", + "integrity": "sha512-g7uRbr81QEIg+pbii0OkE17Zh/2C/f6dSmiMDVRn1S0+hNHR1bENCh18hVUKcV/qKTUsKkFlhhWXM9mQBfxQJw==", "dev": true, "dependencies": { "find-up": "^5.0.0" @@ -1697,9 +1707,9 @@ } }, "node_modules/@commitlint/types": { - "version": "12.0.1", - "resolved": "https://registry.npmjs.org/@commitlint/types/-/types-12.0.1.tgz", - "integrity": "sha512-FsNDMV0W7D19/ZbR412klpqAilXASx75Neqh7jPtK278IEwdukOg3vth1r5kTm+BjDScM7wMUEOwIW3NNfAtwg==", + "version": "12.1.1", + "resolved": "https://registry.npmjs.org/@commitlint/types/-/types-12.1.1.tgz", + "integrity": "sha512-+qGH+s2Lo6qwacV2X3/ZypZwaAI84ift+1HBjXdXtI/q0F5NtmXucV3lcQOTviMTNiJhq4qWON2fjci2NItASw==", "dev": true, "dependencies": { "chalk": "^4.0.0" @@ -1724,9 +1734,9 @@ } }, "node_modules/@commitlint/types/node_modules/chalk": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.0.tgz", - "integrity": "sha512-qwx12AxXe2Q5xQ43Ac//I6v5aXTipYrSESdOgzrN+9XjgEpyjpKuvSGaN4qE93f7TQTlerQQ8S+EQ0EyDoVL1A==", + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.1.tgz", + "integrity": "sha512-diHzdDKxcU+bAsUboHLPEDQiw0qEe0qd7SYUn3HgcFlWgbDcfLGswOHYeGrHKzG9z6UYf01d9VFMfZxPM1xZSg==", "dev": true, "dependencies": { "ansi-styles": "^4.1.0", @@ -1941,9 +1951,9 @@ } }, "node_modules/@jest/console/node_modules/chalk": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.0.tgz", - "integrity": "sha512-qwx12AxXe2Q5xQ43Ac//I6v5aXTipYrSESdOgzrN+9XjgEpyjpKuvSGaN4qE93f7TQTlerQQ8S+EQ0EyDoVL1A==", + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.1.tgz", + "integrity": "sha512-diHzdDKxcU+bAsUboHLPEDQiw0qEe0qd7SYUn3HgcFlWgbDcfLGswOHYeGrHKzG9z6UYf01d9VFMfZxPM1xZSg==", "dev": true, "dependencies": { "ansi-styles": "^4.1.0", @@ -2071,9 +2081,9 @@ } }, "node_modules/@jest/core/node_modules/chalk": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.0.tgz", - "integrity": "sha512-qwx12AxXe2Q5xQ43Ac//I6v5aXTipYrSESdOgzrN+9XjgEpyjpKuvSGaN4qE93f7TQTlerQQ8S+EQ0EyDoVL1A==", + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.1.tgz", + "integrity": "sha512-diHzdDKxcU+bAsUboHLPEDQiw0qEe0qd7SYUn3HgcFlWgbDcfLGswOHYeGrHKzG9z6UYf01d9VFMfZxPM1xZSg==", "dev": true, "dependencies": { "ansi-styles": "^4.1.0", @@ -2135,16 +2145,16 @@ } }, "node_modules/@jest/core/node_modules/micromatch": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.2.tgz", - "integrity": "sha512-y7FpHSbMUMoyPbYUSzO6PaZ6FyRnQOpHuKwbo1G+Knck95XVU4QAiKdGEnj5wwoS7PlOgthX/09u5iFJ+aYf5Q==", + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.4.tgz", + "integrity": "sha512-pRmzw/XUcwXGpD9aI9q/0XOwLNygjETJ8y0ao0wdqprrzDa4YnxLcz7fQRZr8voh8V10kGhABbNcHVk5wHgWwg==", "dev": true, "dependencies": { "braces": "^3.0.1", - "picomatch": "^2.0.5" + "picomatch": "^2.2.3" }, "engines": { - "node": ">=8" + "node": ">=8.6" } }, "node_modules/@jest/core/node_modules/slash": { @@ -2280,9 +2290,9 @@ } }, "node_modules/@jest/reporters/node_modules/chalk": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.0.tgz", - "integrity": "sha512-qwx12AxXe2Q5xQ43Ac//I6v5aXTipYrSESdOgzrN+9XjgEpyjpKuvSGaN4qE93f7TQTlerQQ8S+EQ0EyDoVL1A==", + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.1.tgz", + "integrity": "sha512-diHzdDKxcU+bAsUboHLPEDQiw0qEe0qd7SYUn3HgcFlWgbDcfLGswOHYeGrHKzG9z6UYf01d9VFMfZxPM1xZSg==", "dev": true, "dependencies": { "ansi-styles": "^4.1.0", @@ -2460,9 +2470,9 @@ } }, "node_modules/@jest/transform/node_modules/chalk": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.0.tgz", - "integrity": "sha512-qwx12AxXe2Q5xQ43Ac//I6v5aXTipYrSESdOgzrN+9XjgEpyjpKuvSGaN4qE93f7TQTlerQQ8S+EQ0EyDoVL1A==", + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.1.tgz", + "integrity": "sha512-diHzdDKxcU+bAsUboHLPEDQiw0qEe0qd7SYUn3HgcFlWgbDcfLGswOHYeGrHKzG9z6UYf01d9VFMfZxPM1xZSg==", "dev": true, "dependencies": { "ansi-styles": "^4.1.0", @@ -2524,16 +2534,16 @@ } }, "node_modules/@jest/transform/node_modules/micromatch": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.2.tgz", - "integrity": "sha512-y7FpHSbMUMoyPbYUSzO6PaZ6FyRnQOpHuKwbo1G+Knck95XVU4QAiKdGEnj5wwoS7PlOgthX/09u5iFJ+aYf5Q==", + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.4.tgz", + "integrity": "sha512-pRmzw/XUcwXGpD9aI9q/0XOwLNygjETJ8y0ao0wdqprrzDa4YnxLcz7fQRZr8voh8V10kGhABbNcHVk5wHgWwg==", "dev": true, "dependencies": { "braces": "^3.0.1", - "picomatch": "^2.0.5" + "picomatch": "^2.2.3" }, "engines": { - "node": ">=8" + "node": ">=8.6" } }, "node_modules/@jest/transform/node_modules/slash": { @@ -2610,9 +2620,9 @@ } }, "node_modules/@jest/types/node_modules/chalk": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.0.tgz", - "integrity": "sha512-qwx12AxXe2Q5xQ43Ac//I6v5aXTipYrSESdOgzrN+9XjgEpyjpKuvSGaN4qE93f7TQTlerQQ8S+EQ0EyDoVL1A==", + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.1.tgz", + "integrity": "sha512-diHzdDKxcU+bAsUboHLPEDQiw0qEe0qd7SYUn3HgcFlWgbDcfLGswOHYeGrHKzG9z6UYf01d9VFMfZxPM1xZSg==", "dev": true, "dependencies": { "ansi-styles": "^4.1.0", @@ -2720,9 +2730,9 @@ } }, "node_modules/@sinonjs/commons": { - "version": "1.8.2", - "resolved": "https://registry.npmjs.org/@sinonjs/commons/-/commons-1.8.2.tgz", - "integrity": "sha512-sruwd86RJHdsVf/AtBoijDmUqJp3B6hF/DGC23C+JaegnDHaZyewCjoVGTdg3J0uz3Zs7NnIT05OBOmML72lQw==", + "version": "1.8.3", + "resolved": "https://registry.npmjs.org/@sinonjs/commons/-/commons-1.8.3.tgz", + "integrity": "sha512-xkNcLAn/wZaX14RPlwizcKicDk9G3F8m2nU3L7Ukm5zBgTwiT0wsoFAHx9Jq56fJA1z/7uKGtCRu16sOUCLIHQ==", "dev": true, "dependencies": { "type-detect": "4.0.8" @@ -2779,9 +2789,9 @@ } }, "node_modules/@types/eslint": { - "version": "7.2.9", - "resolved": "https://registry.npmjs.org/@types/eslint/-/eslint-7.2.9.tgz", - "integrity": "sha512-SdAAXZNvWfhtf3X3y1cbbCZhP3xyPh7mfTvzV6CgfWc/ZhiHpyr9bVroe2/RCHIf7gczaNcprhaBLsx0CCJHQA==", + "version": "7.2.10", + "resolved": "https://registry.npmjs.org/@types/eslint/-/eslint-7.2.10.tgz", + "integrity": "sha512-kUEPnMKrqbtpCq/KTaGFFKAcz6Ethm2EjCoKIDaCmfRBWLbFuTcOJfTlorwbnboXBzahqWLgUp1BQeKHiJzPUQ==", "dev": true, "dependencies": { "@types/estree": "*", @@ -2799,9 +2809,9 @@ } }, "node_modules/@types/estree": { - "version": "0.0.46", - "resolved": "https://registry.npmjs.org/@types/estree/-/estree-0.0.46.tgz", - "integrity": "sha512-laIjwTQaD+5DukBZaygQ79K1Z0jb1bPEMRrkXSLjtCcZm+abyp5YbrqpSLzD42FwWW6gK/aS4NYpJ804nG2brg==", + "version": "0.0.47", + "resolved": "https://registry.npmjs.org/@types/estree/-/estree-0.0.47.tgz", + "integrity": "sha512-c5ciR06jK8u9BstrmJyO97m+klJrrhCf9u3rLu3DEAJBirxRqSCvDQoYKmxuYwQI5SZChAWu+tq9oVlGRuzPAg==", "dev": true }, "node_modules/@types/glob": { @@ -2859,9 +2869,9 @@ "dev": true }, "node_modules/@types/minimatch": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/@types/minimatch/-/minimatch-3.0.3.tgz", - "integrity": "sha512-tHq6qdbT9U1IRSGf14CL0pUlULksvY9OZ+5eEgl1N7t+OA3tGvNpxJCzuKQlsNgCVwbAs670L1vcVQi8j9HjnA==", + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/@types/minimatch/-/minimatch-3.0.4.tgz", + "integrity": "sha512-1z8k4wzFnNjVK/tlxvrWuK5WMt6mydWWP7+zvH5eFep4oj+UkrfiJTRtjCeBXNpwaA/FYqqtb4/QS4ianFpIRA==", "dev": true }, "node_modules/@types/minimist": { @@ -2871,9 +2881,9 @@ "dev": true }, "node_modules/@types/node": { - "version": "14.14.35", - "resolved": "https://registry.npmjs.org/@types/node/-/node-14.14.35.tgz", - "integrity": "sha512-Lt+wj8NVPx0zUmUwumiVXapmaLUcAk3yPuHCFVXras9k5VT9TdhJqKqGVUQCD60OTMCl0qxJ57OiTL0Mic3Iag==", + "version": "15.0.1", + "resolved": "https://registry.npmjs.org/@types/node/-/node-15.0.1.tgz", + "integrity": "sha512-TMkXt0Ck1y0KKsGr9gJtWGjttxlZnnvDtphxUOSd0bfaR6Q1jle+sPvrzNR1urqYTWMinoKvjKfXUGsumaO1PA==", "dev": true }, "node_modules/@types/normalize-package-data": { @@ -3062,9 +3072,9 @@ } }, "node_modules/@webpack-cli/configtest": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@webpack-cli/configtest/-/configtest-1.0.1.tgz", - "integrity": "sha512-B+4uBUYhpzDXmwuo3V9yBH6cISwxEI4J+NO5ggDaGEEHb0osY/R7MzeKc0bHURXQuZjMM4qD+bSJCKIuI3eNBQ==", + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/@webpack-cli/configtest/-/configtest-1.0.2.tgz", + "integrity": "sha512-3OBzV2fBGZ5TBfdW50cha1lHDVf9vlvRXnjpVbJBa20pSZQaSkMJZiwA8V2vD9ogyeXn8nU5s5A6mHyf5jhMzA==", "dev": true, "peerDependencies": { "webpack": "4.x.x || 5.x.x", @@ -3072,9 +3082,9 @@ } }, "node_modules/@webpack-cli/info": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/@webpack-cli/info/-/info-1.2.2.tgz", - "integrity": "sha512-5U9kUJHnwU+FhKH4PWGZuBC1hTEPYyxGSL5jjoBI96Gx8qcYJGOikpiIpFoTq8mmgX3im2zAo2wanv/alD74KQ==", + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/@webpack-cli/info/-/info-1.2.3.tgz", + "integrity": "sha512-lLek3/T7u40lTqzCGpC6CAbY6+vXhdhmwFRxZLMnRm6/sIF/7qMpT8MocXCRQfz0JAh63wpbXLMnsQ5162WS7Q==", "dev": true, "dependencies": { "envinfo": "^7.7.3" @@ -3084,9 +3094,9 @@ } }, "node_modules/@webpack-cli/serve": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/@webpack-cli/serve/-/serve-1.3.0.tgz", - "integrity": "sha512-k2p2VrONcYVX1wRRrf0f3X2VGltLWcv+JzXRBDmvCxGlCeESx4OXw91TsWeKOkp784uNoVQo313vxJFHXPPwfw==", + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/@webpack-cli/serve/-/serve-1.3.1.tgz", + "integrity": "sha512-0qXvpeYO6vaNoRBI52/UsbcaBydJCggoBBnIo/ovQQdn6fug0BgwsjorV1hVS7fMqGVTZGcVxv8334gjmbj5hw==", "dev": true, "peerDependencies": { "webpack-cli": "4.x.x" @@ -3259,12 +3269,12 @@ } }, "node_modules/ansi-escapes": { - "version": "4.3.1", - "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.1.tgz", - "integrity": "sha512-JWF7ocqNrp8u9oqpgV+wH5ftbt+cfvv+PTjOvKLT3AdYly/LmORARfEVT1iyjwN+4MqE5UmVKoAdIBqeoCHgLA==", + "version": "4.3.2", + "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.2.tgz", + "integrity": "sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==", "dev": true, "dependencies": { - "type-fest": "^0.11.0" + "type-fest": "^0.21.3" }, "engines": { "node": ">=8" @@ -3625,9 +3635,9 @@ } }, "node_modules/babel-jest/node_modules/chalk": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.0.tgz", - "integrity": "sha512-qwx12AxXe2Q5xQ43Ac//I6v5aXTipYrSESdOgzrN+9XjgEpyjpKuvSGaN4qE93f7TQTlerQQ8S+EQ0EyDoVL1A==", + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.1.tgz", + "integrity": "sha512-diHzdDKxcU+bAsUboHLPEDQiw0qEe0qd7SYUn3HgcFlWgbDcfLGswOHYeGrHKzG9z6UYf01d9VFMfZxPM1xZSg==", "dev": true, "dependencies": { "ansi-styles": "^4.1.0", @@ -3729,13 +3739,13 @@ } }, "node_modules/babel-plugin-polyfill-corejs2": { - "version": "0.1.10", - "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.1.10.tgz", - "integrity": "sha512-DO95wD4g0A8KRaHKi0D51NdGXzvpqVLnLu5BTvDlpqUEpTmeEtypgC1xqesORaWmiUOQI14UHKlzNd9iZ2G3ZA==", + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.2.0.tgz", + "integrity": "sha512-9bNwiR0dS881c5SHnzCmmGlMkJLl0OUZvxrxHo9w/iNoRuqaPjqlvBf4HrovXtQs/au5yKkpcdgfT1cC5PAZwg==", "dev": true, "dependencies": { - "@babel/compat-data": "^7.13.0", - "@babel/helper-define-polyfill-provider": "^0.1.5", + "@babel/compat-data": "^7.13.11", + "@babel/helper-define-polyfill-provider": "^0.2.0", "semver": "^6.1.1" }, "peerDependencies": { @@ -3743,25 +3753,25 @@ } }, "node_modules/babel-plugin-polyfill-corejs3": { - "version": "0.1.7", - "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.1.7.tgz", - "integrity": "sha512-u+gbS9bbPhZWEeyy1oR/YaaSpod/KDT07arZHb80aTpl8H5ZBq+uN1nN9/xtX7jQyfLdPfoqI4Rue/MQSWJquw==", + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.2.0.tgz", + "integrity": "sha512-zZyi7p3BCUyzNxLx8KV61zTINkkV65zVkDAFNZmrTCRVhjo1jAS+YLvDJ9Jgd/w2tsAviCwFHReYfxO3Iql8Yg==", "dev": true, "dependencies": { - "@babel/helper-define-polyfill-provider": "^0.1.5", - "core-js-compat": "^3.8.1" + "@babel/helper-define-polyfill-provider": "^0.2.0", + "core-js-compat": "^3.9.1" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, "node_modules/babel-plugin-polyfill-regenerator": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.1.6.tgz", - "integrity": "sha512-OUrYG9iKPKz8NxswXbRAdSwF0GhRdIEMTloQATJi4bDuFqrXaXcCUT/VGNrr8pBcjMh1RxZ7Xt9cytVJTJfvMg==", + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.2.0.tgz", + "integrity": "sha512-J7vKbCuD2Xi/eEHxquHN14bXAW9CXtecwuLrOIDJtcZzTaPzV1VdEfoUf9AzcRBMolKUQKM9/GVojeh0hFiqMg==", "dev": true, "dependencies": { - "@babel/helper-define-polyfill-provider": "^0.1.5" + "@babel/helper-define-polyfill-provider": "^0.2.0" }, "peerDependencies": { "@babel/core": "^7.0.0-0" @@ -3807,9 +3817,9 @@ } }, "node_modules/balanced-match": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz", - "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=", + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", + "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", "dev": true }, "node_modules/base": { @@ -4010,16 +4020,16 @@ "dev": true }, "node_modules/browserslist": { - "version": "4.16.3", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.16.3.tgz", - "integrity": "sha512-vIyhWmIkULaq04Gt93txdh+j02yX/JzlyhLYbV3YQCn/zvES3JnY7TifHHvvr1w5hTDluNKMkV05cs4vy8Q7sw==", + "version": "4.16.5", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.16.5.tgz", + "integrity": "sha512-C2HAjrM1AI/djrpAUU/tr4pml1DqLIzJKSLDBXBrNErl9ZCCTXdhwxdJjYc16953+mBWf7Lw+uUJgpgb8cN71A==", "dev": true, "dependencies": { - "caniuse-lite": "^1.0.30001181", - "colorette": "^1.2.1", - "electron-to-chromium": "^1.3.649", + "caniuse-lite": "^1.0.30001214", + "colorette": "^1.2.2", + "electron-to-chromium": "^1.3.719", "escalade": "^3.1.1", - "node-releases": "^1.1.70" + "node-releases": "^1.1.71" }, "bin": { "browserslist": "cli.js" @@ -4131,9 +4141,9 @@ } }, "node_modules/caniuse-lite": { - "version": "1.0.30001204", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001204.tgz", - "integrity": "sha512-JUdjWpcxfJ9IPamy2f5JaRDCaqJOxDzOSKtbdx4rH9VivMd1vIzoPumsJa9LoMIi4Fx2BV2KZOxWhNkBjaYivQ==", + "version": "1.0.30001219", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001219.tgz", + "integrity": "sha512-c0yixVG4v9KBc/tQ2rlbB3A/bgBFRvl8h8M4IeUbqCca4gsiCfvtaheUssbnux/Mb66Vjz7x8yYjDgYcNQOhyQ==", "dev": true }, "node_modules/caporal": { @@ -4220,9 +4230,9 @@ } }, "node_modules/chokidar/node_modules/anymatch": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.1.tgz", - "integrity": "sha512-mM8522psRCqzV+6LhomX5wgp25YVibjh8Wj23I5RPkPppSVSjyKD2A2mBJmWGa+KN7f2D6LNh9jkBCeyLktzjg==", + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.2.tgz", + "integrity": "sha512-P43ePfOAIupkguHUycrc4qJ9kz8ZiuOUijaETwX7THt0Y/GNK7v0aa8rY816xWjZ7rJdA5XdMcpVFTKMq+RvWg==", "dev": true, "optional": true, "dependencies": { @@ -4332,13 +4342,10 @@ } }, "node_modules/chrome-trace-event": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/chrome-trace-event/-/chrome-trace-event-1.0.2.tgz", - "integrity": "sha512-9e/zx1jw7B4CO+c/RXoCsfg/x1AfUBioy4owYH0bJprEYAx5hRFLRhWBqHAG57D0ZM4H7vxbP7bPe0VwhQRYDQ==", + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/chrome-trace-event/-/chrome-trace-event-1.0.3.tgz", + "integrity": "sha512-p3KULyQg4S7NIHixdwbGX+nFHkoBiA4YQmyWtjb8XngSKV124nJmRysgAeujbUVb15vh+RvFUfCPqU7rXk+hZg==", "dev": true, - "dependencies": { - "tslib": "^1.9.0" - }, "engines": { "node": ">=6.0" } @@ -5143,12 +5150,12 @@ } }, "node_modules/core-js-compat": { - "version": "3.9.1", - "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.9.1.tgz", - "integrity": "sha512-jXAirMQxrkbiiLsCx9bQPJFA6llDadKMpYrBJQJ3/c4/vsPP/fAf29h24tviRlvwUL6AmY5CHLu2GvjuYviQqA==", + "version": "3.11.0", + "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.11.0.tgz", + "integrity": "sha512-3wsN9YZJohOSDCjVB0GequOyHax8zFiogSX3XWLE28M1Ew7dTU57tgHjIylSBKSIouwmLBp3g61sKMz/q3xEGA==", "dev": true, "dependencies": { - "browserslist": "^4.16.3", + "browserslist": "^4.16.4", "semver": "7.0.0" }, "funding": { @@ -5220,23 +5227,22 @@ } }, "node_modules/css-loader": { - "version": "5.1.3", - "resolved": "https://registry.npmjs.org/css-loader/-/css-loader-5.1.3.tgz", - "integrity": "sha512-CoPZvyh8sLiGARK3gqczpfdedbM74klGWurF2CsNZ2lhNaXdLIUks+3Mfax3WBeRuHoglU+m7KG/+7gY6G4aag==", + "version": "5.2.4", + "resolved": "https://registry.npmjs.org/css-loader/-/css-loader-5.2.4.tgz", + "integrity": "sha512-OFYGyINCKkdQsTrSYxzGSFnGS4gNjcXkKkQgWxK138jgnPt+lepxdjSZNc8sHAl5vP3DhsJUxufWIjOwI8PMMw==", "dev": true, "dependencies": { "camelcase": "^6.2.0", - "cssesc": "^3.0.0", "icss-utils": "^5.1.0", "loader-utils": "^2.0.0", - "postcss": "^8.2.8", + "postcss": "^8.2.10", "postcss-modules-extract-imports": "^3.0.0", "postcss-modules-local-by-default": "^4.0.0", "postcss-modules-scope": "^3.0.0", "postcss-modules-values": "^4.0.0", "postcss-value-parser": "^4.1.0", "schema-utils": "^3.0.0", - "semver": "^7.3.4" + "semver": "^7.3.5" }, "engines": { "node": ">= 10.13.0" @@ -5262,9 +5268,9 @@ } }, "node_modules/css-loader/node_modules/semver": { - "version": "7.3.4", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.4.tgz", - "integrity": "sha512-tCfb2WLjqFAtXn4KEdxIhalnRtoKFN7nAwj0B3ZXCbQloV2tq5eDbcTmT68JJD3nRJq24/XgxtQKFIpQdtvmVw==", + "version": "7.3.5", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.5.tgz", + "integrity": "sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==", "dev": true, "dependencies": { "lru-cache": "^6.0.0" @@ -5728,9 +5734,9 @@ } }, "node_modules/del-cli/node_modules/hosted-git-info": { - "version": "2.8.8", - "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.8.tgz", - "integrity": "sha512-f/wzC2QaWBs7t9IYqB4T3sR1xviIViXJRJTWBlx2Gf3g0Xi5vI7Yy4koXQ1c9OYDGHN9sBy1DQ2AB8fqZBWhUg==", + "version": "2.8.9", + "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.9.tgz", + "integrity": "sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw==", "dev": true }, "node_modules/del-cli/node_modules/ignore": { @@ -6168,9 +6174,9 @@ "dev": true }, "node_modules/electron-to-chromium": { - "version": "1.3.693", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.693.tgz", - "integrity": "sha512-vUdsE8yyeu30RecppQtI+XTz2++LWLVEIYmzeCaCRLSdtKZ2eXqdJcrs85KwLiPOPVc6PELgWyXBsfqIvzGZag==", + "version": "1.3.723", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.723.tgz", + "integrity": "sha512-L+WXyXI7c7+G1V8ANzRsPI5giiimLAUDC6Zs1ojHHPhYXb3k/iTABFmWjivEtsWrRQymjnO66/rO2ZTABGdmWg==", "dev": true }, "node_modules/emittery": { @@ -6218,9 +6224,9 @@ } }, "node_modules/enhanced-resolve": { - "version": "5.7.0", - "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.7.0.tgz", - "integrity": "sha512-6njwt/NsZFUKhM6j9U8hzVyD4E4r0x7NQzhTCbcWOJ0IQjNSAoalWmb0AE51Wn+fwan5qVESWi7t2ToBxs9vrw==", + "version": "5.8.0", + "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.8.0.tgz", + "integrity": "sha512-Sl3KRpJA8OpprrtaIswVki3cWPiPKxXuFxJXBp+zNb6s6VwNWwFRUdtmzd2ReUut8n+sCPx7QCtQ7w5wfJhSgQ==", "dev": true, "dependencies": { "graceful-fs": "^4.2.4", @@ -6243,9 +6249,9 @@ } }, "node_modules/envinfo": { - "version": "7.7.4", - "resolved": "https://registry.npmjs.org/envinfo/-/envinfo-7.7.4.tgz", - "integrity": "sha512-TQXTYFVVwwluWSFis6K2XKxgrD22jEv0FTuLCQI+OjH7rn93+iY0fSSFM5lrSxFY+H1+B0/cvvlamr3UsBivdQ==", + "version": "7.8.1", + "resolved": "https://registry.npmjs.org/envinfo/-/envinfo-7.8.1.tgz", + "integrity": "sha512-/o+BXHmB7ocbHEAs6F2EnG0ogybVVUdkRunTT2glZU9XAaGmhqskrvKwqXuDfNjEO0LZKWdejEEpnq8aM0tOaw==", "dev": true, "bin": { "envinfo": "dist/cli.js" @@ -6462,9 +6468,9 @@ } }, "node_modules/eslint": { - "version": "7.22.0", - "resolved": "https://registry.npmjs.org/eslint/-/eslint-7.22.0.tgz", - "integrity": "sha512-3VawOtjSJUQiiqac8MQc+w457iGLfuNGLFn8JmF051tTKbh5/x/0vlcEj8OgDCaw7Ysa2Jn8paGshV7x2abKXg==", + "version": "7.25.0", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-7.25.0.tgz", + "integrity": "sha512-TVpSovpvCNpLURIScDRB6g5CYu/ZFq9GfX2hLNIV4dSBKxIWojeDODvYl3t0k0VtMxYeR8OXPCFE5+oHMlGfhw==", "dev": true, "dependencies": { "@babel/code-frame": "7.12.11", @@ -6516,9 +6522,9 @@ } }, "node_modules/eslint-config-prettier": { - "version": "8.1.0", - "resolved": "https://registry.npmjs.org/eslint-config-prettier/-/eslint-config-prettier-8.1.0.tgz", - "integrity": "sha512-oKMhGv3ihGbCIimCAjqkdzx2Q+jthoqnXSP+d86M9tptwugycmTFdVR4IpLgq2c4SHifbwO90z2fQ8/Aio73yw==", + "version": "8.3.0", + "resolved": "https://registry.npmjs.org/eslint-config-prettier/-/eslint-config-prettier-8.3.0.tgz", + "integrity": "sha512-BgZuLUSeKzvlL/VUjx/Yb787VQ26RU3gGjA3iiFvdsp/2bMfVIWUVP7tjxtjS0e+HP409cPlPvNkQloz8C91ew==", "dev": true, "bin": { "eslint-config-prettier": "bin/cli.js" @@ -6697,9 +6703,9 @@ } }, "node_modules/eslint/node_modules/chalk": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.0.tgz", - "integrity": "sha512-qwx12AxXe2Q5xQ43Ac//I6v5aXTipYrSESdOgzrN+9XjgEpyjpKuvSGaN4qE93f7TQTlerQQ8S+EQ0EyDoVL1A==", + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.1.tgz", + "integrity": "sha512-diHzdDKxcU+bAsUboHLPEDQiw0qEe0qd7SYUn3HgcFlWgbDcfLGswOHYeGrHKzG9z6UYf01d9VFMfZxPM1xZSg==", "dev": true, "dependencies": { "ansi-styles": "^4.1.0", @@ -6752,9 +6758,9 @@ } }, "node_modules/eslint/node_modules/globals": { - "version": "13.7.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-13.7.0.tgz", - "integrity": "sha512-Aipsz6ZKRxa/xQkZhNg0qIWXT6x6rD46f6x/PCnBomlttdIyAPak4YD9jTmKpZ72uROSMU87qJtcgpgHaVchiA==", + "version": "13.8.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-13.8.0.tgz", + "integrity": "sha512-rHtdA6+PDBIjeEvA91rpqzEvk/k3/i7EeNQiryiWuJH0Hw9cpyJMAt2jtbAwUaRdhD+573X4vWw6IcjKPasi9Q==", "dev": true, "dependencies": { "type-fest": "^0.20.2" @@ -6776,9 +6782,9 @@ } }, "node_modules/eslint/node_modules/semver": { - "version": "7.3.4", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.4.tgz", - "integrity": "sha512-tCfb2WLjqFAtXn4KEdxIhalnRtoKFN7nAwj0B3ZXCbQloV2tq5eDbcTmT68JJD3nRJq24/XgxtQKFIpQdtvmVw==", + "version": "7.3.5", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.5.tgz", + "integrity": "sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==", "dev": true, "dependencies": { "lru-cache": "^6.0.0" @@ -6950,9 +6956,9 @@ } }, "node_modules/exec-sh": { - "version": "0.3.5", - "resolved": "https://registry.npmjs.org/exec-sh/-/exec-sh-0.3.5.tgz", - "integrity": "sha512-0hzpaUazv4mEccxdn3TXC+HWNeVXNKMCJRK6E7Xyg+LwGAYI3yFag6jTkd4injV+kChYDQS1ftqDhnDVWNhU8A==", + "version": "0.3.6", + "resolved": "https://registry.npmjs.org/exec-sh/-/exec-sh-0.3.6.tgz", + "integrity": "sha512-nQn+hI3yp+oD0huYhKwvYI32+JFeq+XkNcD1GAo3Y/MjxsfVGmrrzrnzjWiNY6f+pUCP440fThsFh5gZrRAU/w==", "dev": true }, "node_modules/execa": { @@ -7355,16 +7361,16 @@ } }, "node_modules/fast-glob/node_modules/micromatch": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.2.tgz", - "integrity": "sha512-y7FpHSbMUMoyPbYUSzO6PaZ6FyRnQOpHuKwbo1G+Knck95XVU4QAiKdGEnj5wwoS7PlOgthX/09u5iFJ+aYf5Q==", + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.4.tgz", + "integrity": "sha512-pRmzw/XUcwXGpD9aI9q/0XOwLNygjETJ8y0ao0wdqprrzDa4YnxLcz7fQRZr8voh8V10kGhABbNcHVk5wHgWwg==", "dev": true, "dependencies": { "braces": "^3.0.1", - "picomatch": "^2.0.5" + "picomatch": "^2.2.3" }, "engines": { - "node": ">=8" + "node": ">=8.6" } }, "node_modules/fast-glob/node_modules/to-regex-range": { @@ -7564,9 +7570,9 @@ "dev": true }, "node_modules/follow-redirects": { - "version": "1.13.3", - "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.13.3.tgz", - "integrity": "sha512-DUgl6+HDzB0iEptNQEXLx/KhTmDb8tZUHSeLqpnjpknR70H0nC2t9N73BK6fN4hOvJ84pKlIQVQ4k5FFlBedKA==", + "version": "1.14.0", + "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.14.0.tgz", + "integrity": "sha512-0vRwd7RKQBTt+mgu87mtYeofLFZpTas2S9zY+jIeuLJMNvudIgF52nr19q40HOwH5RrhWIPuj9puybzSJiRrVg==", "dev": true, "funding": [ { @@ -7673,9 +7679,9 @@ } }, "node_modules/fs-monkey": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/fs-monkey/-/fs-monkey-1.0.1.tgz", - "integrity": "sha512-fcSa+wyTqZa46iWweI7/ZiUfegOZl0SG8+dltIwFXo7+zYU9J9kpS3NB6pZcSlJdhvIwp81Adx2XhZorncxiaA==", + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/fs-monkey/-/fs-monkey-1.0.3.tgz", + "integrity": "sha512-cybjIfiiE+pTWicSCLFHSrXZ6EilF30oh91FDP9S2B051prEa7QWfrVTQm10/dDpswBDXZugPa1Ogu8Yh+HV0Q==", "dev": true }, "node_modules/fs-readdir-recursive": { @@ -7837,9 +7843,9 @@ } }, "node_modules/get-pkg-repo/node_modules/hosted-git-info": { - "version": "2.8.8", - "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.8.tgz", - "integrity": "sha512-f/wzC2QaWBs7t9IYqB4T3sR1xviIViXJRJTWBlx2Gf3g0Xi5vI7Yy4koXQ1c9OYDGHN9sBy1DQ2AB8fqZBWhUg==", + "version": "2.8.9", + "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.9.tgz", + "integrity": "sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw==", "dev": true }, "node_modules/get-pkg-repo/node_modules/indent-string": { @@ -8462,9 +8468,9 @@ } }, "node_modules/hosted-git-info": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-4.0.1.tgz", - "integrity": "sha512-eT7NrxAsppPRQEBSwKSosReE+v8OzABwEScQYk5d4uxaEPlzxTIku7LINXtBGalthkLhJnq5lBI89PfK43zAKg==", + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-4.0.2.tgz", + "integrity": "sha512-c9OGXbZ3guC/xOlCg1Ci/VgWlwsqDv1yMQL1CWqXDL0hDjXuNcq0zuR4xqPSuasI3kqFDhqSyTjREz5gzq0fXg==", "dev": true, "dependencies": { "lru-cache": "^6.0.0" @@ -8774,12 +8780,6 @@ "node": ">=8" } }, - "node_modules/indexes-of": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/indexes-of/-/indexes-of-1.0.1.tgz", - "integrity": "sha1-8w9xbI4r00bHtn0985FVZqfAVgc=", - "dev": true - }, "node_modules/inflight": { "version": "1.0.6", "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", @@ -9125,9 +9125,9 @@ } }, "node_modules/is-core-module": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.2.0.tgz", - "integrity": "sha512-XRAfAdyyY5F5cOXn7hYQDqh2Xmii+DEfIcQGxK/uNwMHhIkPWO0g8msXcbzLe+MpGoR951MlqM/2iIlU4vKDdQ==", + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.3.0.tgz", + "integrity": "sha512-xSphU2KG9867tsYdLD4RWQ1VqdFl4HTO9Thf3I/3dLEfr0dbPTWKsuCKrgqMljg4nPE+Gq0VCnzT3gr0CyBmsw==", "dev": true, "dependencies": { "has": "^1.0.3" @@ -9193,9 +9193,9 @@ } }, "node_modules/is-docker": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/is-docker/-/is-docker-2.1.1.tgz", - "integrity": "sha512-ZOoqiXfEwtGknTiuDEy8pN2CfE3TxMHprvNer1mXiqwkOT77Rw3YVrUQ52EqAOU3QAWDQ+bQdx7HJzrv7LS2Hw==", + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/is-docker/-/is-docker-2.2.1.tgz", + "integrity": "sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ==", "dev": true, "optional": true, "bin": { @@ -9377,9 +9377,9 @@ } }, "node_modules/is-potential-custom-element-name": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-potential-custom-element-name/-/is-potential-custom-element-name-1.0.0.tgz", - "integrity": "sha1-DFLlS8yjkbssSUsh6GJtczbG45c=", + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-potential-custom-element-name/-/is-potential-custom-element-name-1.0.1.tgz", + "integrity": "sha512-bCYeRA2rVibKZd+s2625gGnGF/t7DSqDs4dP7CrLA1m7jKWz6pps0LpYLJN8Q64HtmPKJ1hrN3nzPNKFEKOUiQ==", "dev": true }, "node_modules/is-regex": { @@ -9712,9 +9712,9 @@ } }, "node_modules/jest-cli/node_modules/chalk": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.0.tgz", - "integrity": "sha512-qwx12AxXe2Q5xQ43Ac//I6v5aXTipYrSESdOgzrN+9XjgEpyjpKuvSGaN4qE93f7TQTlerQQ8S+EQ0EyDoVL1A==", + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.1.tgz", + "integrity": "sha512-diHzdDKxcU+bAsUboHLPEDQiw0qEe0qd7SYUn3HgcFlWgbDcfLGswOHYeGrHKzG9z6UYf01d9VFMfZxPM1xZSg==", "dev": true, "dependencies": { "ansi-styles": "^4.1.0", @@ -9858,9 +9858,9 @@ } }, "node_modules/jest-cli/node_modules/y18n": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.1.tgz", - "integrity": "sha512-wNcy4NvjMYL8gogWWYAO7ZFWFfHcbdbE57tZO8e4cbpj8tfUcwrwqSl3ad8HxpYWCdXcJUCeKKZS62Av1affwQ==", + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.3.tgz", + "integrity": "sha512-JKhqTOwSrqNA1NY5lSztJ1GrBiUodLMmIZuLiDaMRJ+itFd+ABVE8XBjOvIWL+rSqNDC74LCSFmlb/U4UZ4hJQ==", "dev": true }, "node_modules/jest-cli/node_modules/yargs": { @@ -9963,9 +9963,9 @@ } }, "node_modules/jest-config/node_modules/chalk": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.0.tgz", - "integrity": "sha512-qwx12AxXe2Q5xQ43Ac//I6v5aXTipYrSESdOgzrN+9XjgEpyjpKuvSGaN4qE93f7TQTlerQQ8S+EQ0EyDoVL1A==", + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.1.tgz", + "integrity": "sha512-diHzdDKxcU+bAsUboHLPEDQiw0qEe0qd7SYUn3HgcFlWgbDcfLGswOHYeGrHKzG9z6UYf01d9VFMfZxPM1xZSg==", "dev": true, "dependencies": { "ansi-styles": "^4.1.0", @@ -10027,16 +10027,16 @@ } }, "node_modules/jest-config/node_modules/micromatch": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.2.tgz", - "integrity": "sha512-y7FpHSbMUMoyPbYUSzO6PaZ6FyRnQOpHuKwbo1G+Knck95XVU4QAiKdGEnj5wwoS7PlOgthX/09u5iFJ+aYf5Q==", + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.4.tgz", + "integrity": "sha512-pRmzw/XUcwXGpD9aI9q/0XOwLNygjETJ8y0ao0wdqprrzDa4YnxLcz7fQRZr8voh8V10kGhABbNcHVk5wHgWwg==", "dev": true, "dependencies": { "braces": "^3.0.1", - "picomatch": "^2.0.5" + "picomatch": "^2.2.3" }, "engines": { - "node": ">=8" + "node": ">=8.6" } }, "node_modules/jest-config/node_modules/supports-color": { @@ -10094,9 +10094,9 @@ } }, "node_modules/jest-diff/node_modules/chalk": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.0.tgz", - "integrity": "sha512-qwx12AxXe2Q5xQ43Ac//I6v5aXTipYrSESdOgzrN+9XjgEpyjpKuvSGaN4qE93f7TQTlerQQ8S+EQ0EyDoVL1A==", + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.1.tgz", + "integrity": "sha512-diHzdDKxcU+bAsUboHLPEDQiw0qEe0qd7SYUn3HgcFlWgbDcfLGswOHYeGrHKzG9z6UYf01d9VFMfZxPM1xZSg==", "dev": true, "dependencies": { "ansi-styles": "^4.1.0", @@ -10192,9 +10192,9 @@ } }, "node_modules/jest-each/node_modules/chalk": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.0.tgz", - "integrity": "sha512-qwx12AxXe2Q5xQ43Ac//I6v5aXTipYrSESdOgzrN+9XjgEpyjpKuvSGaN4qE93f7TQTlerQQ8S+EQ0EyDoVL1A==", + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.1.tgz", + "integrity": "sha512-diHzdDKxcU+bAsUboHLPEDQiw0qEe0qd7SYUn3HgcFlWgbDcfLGswOHYeGrHKzG9z6UYf01d9VFMfZxPM1xZSg==", "dev": true, "dependencies": { "ansi-styles": "^4.1.0", @@ -10318,9 +10318,9 @@ } }, "node_modules/jest-haste-map/node_modules/anymatch": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.1.tgz", - "integrity": "sha512-mM8522psRCqzV+6LhomX5wgp25YVibjh8Wj23I5RPkPppSVSjyKD2A2mBJmWGa+KN7f2D6LNh9jkBCeyLktzjg==", + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.2.tgz", + "integrity": "sha512-P43ePfOAIupkguHUycrc4qJ9kz8ZiuOUijaETwX7THt0Y/GNK7v0aa8rY816xWjZ7rJdA5XdMcpVFTKMq+RvWg==", "dev": true, "dependencies": { "normalize-path": "^3.0.0", @@ -10364,16 +10364,16 @@ } }, "node_modules/jest-haste-map/node_modules/micromatch": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.2.tgz", - "integrity": "sha512-y7FpHSbMUMoyPbYUSzO6PaZ6FyRnQOpHuKwbo1G+Knck95XVU4QAiKdGEnj5wwoS7PlOgthX/09u5iFJ+aYf5Q==", + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.4.tgz", + "integrity": "sha512-pRmzw/XUcwXGpD9aI9q/0XOwLNygjETJ8y0ao0wdqprrzDa4YnxLcz7fQRZr8voh8V10kGhABbNcHVk5wHgWwg==", "dev": true, "dependencies": { "braces": "^3.0.1", - "picomatch": "^2.0.5" + "picomatch": "^2.2.3" }, "engines": { - "node": ">=8" + "node": ">=8.6" } }, "node_modules/jest-haste-map/node_modules/to-regex-range": { @@ -10433,9 +10433,9 @@ } }, "node_modules/jest-jasmine2/node_modules/chalk": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.0.tgz", - "integrity": "sha512-qwx12AxXe2Q5xQ43Ac//I6v5aXTipYrSESdOgzrN+9XjgEpyjpKuvSGaN4qE93f7TQTlerQQ8S+EQ0EyDoVL1A==", + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.1.tgz", + "integrity": "sha512-diHzdDKxcU+bAsUboHLPEDQiw0qEe0qd7SYUn3HgcFlWgbDcfLGswOHYeGrHKzG9z6UYf01d9VFMfZxPM1xZSg==", "dev": true, "dependencies": { "ansi-styles": "^4.1.0", @@ -10531,9 +10531,9 @@ } }, "node_modules/jest-matcher-utils/node_modules/chalk": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.0.tgz", - "integrity": "sha512-qwx12AxXe2Q5xQ43Ac//I6v5aXTipYrSESdOgzrN+9XjgEpyjpKuvSGaN4qE93f7TQTlerQQ8S+EQ0EyDoVL1A==", + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.1.tgz", + "integrity": "sha512-diHzdDKxcU+bAsUboHLPEDQiw0qEe0qd7SYUn3HgcFlWgbDcfLGswOHYeGrHKzG9z6UYf01d9VFMfZxPM1xZSg==", "dev": true, "dependencies": { "ansi-styles": "^4.1.0", @@ -10633,9 +10633,9 @@ } }, "node_modules/jest-message-util/node_modules/chalk": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.0.tgz", - "integrity": "sha512-qwx12AxXe2Q5xQ43Ac//I6v5aXTipYrSESdOgzrN+9XjgEpyjpKuvSGaN4qE93f7TQTlerQQ8S+EQ0EyDoVL1A==", + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.1.tgz", + "integrity": "sha512-diHzdDKxcU+bAsUboHLPEDQiw0qEe0qd7SYUn3HgcFlWgbDcfLGswOHYeGrHKzG9z6UYf01d9VFMfZxPM1xZSg==", "dev": true, "dependencies": { "ansi-styles": "^4.1.0", @@ -10697,16 +10697,16 @@ } }, "node_modules/jest-message-util/node_modules/micromatch": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.2.tgz", - "integrity": "sha512-y7FpHSbMUMoyPbYUSzO6PaZ6FyRnQOpHuKwbo1G+Knck95XVU4QAiKdGEnj5wwoS7PlOgthX/09u5iFJ+aYf5Q==", + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.4.tgz", + "integrity": "sha512-pRmzw/XUcwXGpD9aI9q/0XOwLNygjETJ8y0ao0wdqprrzDa4YnxLcz7fQRZr8voh8V10kGhABbNcHVk5wHgWwg==", "dev": true, "dependencies": { "braces": "^3.0.1", - "picomatch": "^2.0.5" + "picomatch": "^2.2.3" }, "engines": { - "node": ">=8" + "node": ">=8.6" } }, "node_modules/jest-message-util/node_modules/slash": { @@ -10830,9 +10830,9 @@ } }, "node_modules/jest-resolve/node_modules/chalk": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.0.tgz", - "integrity": "sha512-qwx12AxXe2Q5xQ43Ac//I6v5aXTipYrSESdOgzrN+9XjgEpyjpKuvSGaN4qE93f7TQTlerQQ8S+EQ0EyDoVL1A==", + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.1.tgz", + "integrity": "sha512-diHzdDKxcU+bAsUboHLPEDQiw0qEe0qd7SYUn3HgcFlWgbDcfLGswOHYeGrHKzG9z6UYf01d9VFMfZxPM1xZSg==", "dev": true, "dependencies": { "ansi-styles": "^4.1.0", @@ -10886,9 +10886,9 @@ } }, "node_modules/jest-resolve/node_modules/hosted-git-info": { - "version": "2.8.8", - "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.8.tgz", - "integrity": "sha512-f/wzC2QaWBs7t9IYqB4T3sR1xviIViXJRJTWBlx2Gf3g0Xi5vI7Yy4koXQ1c9OYDGHN9sBy1DQ2AB8fqZBWhUg==", + "version": "2.8.9", + "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.9.tgz", + "integrity": "sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw==", "dev": true }, "node_modules/jest-resolve/node_modules/locate-path": { @@ -11069,9 +11069,9 @@ } }, "node_modules/jest-runner/node_modules/chalk": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.0.tgz", - "integrity": "sha512-qwx12AxXe2Q5xQ43Ac//I6v5aXTipYrSESdOgzrN+9XjgEpyjpKuvSGaN4qE93f7TQTlerQQ8S+EQ0EyDoVL1A==", + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.1.tgz", + "integrity": "sha512-diHzdDKxcU+bAsUboHLPEDQiw0qEe0qd7SYUn3HgcFlWgbDcfLGswOHYeGrHKzG9z6UYf01d9VFMfZxPM1xZSg==", "dev": true, "dependencies": { "ansi-styles": "^4.1.0", @@ -11180,9 +11180,9 @@ } }, "node_modules/jest-runtime/node_modules/chalk": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.0.tgz", - "integrity": "sha512-qwx12AxXe2Q5xQ43Ac//I6v5aXTipYrSESdOgzrN+9XjgEpyjpKuvSGaN4qE93f7TQTlerQQ8S+EQ0EyDoVL1A==", + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.1.tgz", + "integrity": "sha512-diHzdDKxcU+bAsUboHLPEDQiw0qEe0qd7SYUn3HgcFlWgbDcfLGswOHYeGrHKzG9z6UYf01d9VFMfZxPM1xZSg==", "dev": true, "dependencies": { "ansi-styles": "^4.1.0", @@ -11335,9 +11335,9 @@ } }, "node_modules/jest-runtime/node_modules/y18n": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.1.tgz", - "integrity": "sha512-wNcy4NvjMYL8gogWWYAO7ZFWFfHcbdbE57tZO8e4cbpj8tfUcwrwqSl3ad8HxpYWCdXcJUCeKKZS62Av1affwQ==", + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.3.tgz", + "integrity": "sha512-JKhqTOwSrqNA1NY5lSztJ1GrBiUodLMmIZuLiDaMRJ+itFd+ABVE8XBjOvIWL+rSqNDC74LCSFmlb/U4UZ4hJQ==", "dev": true }, "node_modules/jest-runtime/node_modules/yargs": { @@ -11431,9 +11431,9 @@ } }, "node_modules/jest-snapshot/node_modules/chalk": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.0.tgz", - "integrity": "sha512-qwx12AxXe2Q5xQ43Ac//I6v5aXTipYrSESdOgzrN+9XjgEpyjpKuvSGaN4qE93f7TQTlerQQ8S+EQ0EyDoVL1A==", + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.1.tgz", + "integrity": "sha512-diHzdDKxcU+bAsUboHLPEDQiw0qEe0qd7SYUn3HgcFlWgbDcfLGswOHYeGrHKzG9z6UYf01d9VFMfZxPM1xZSg==", "dev": true, "dependencies": { "ansi-styles": "^4.1.0", @@ -11474,9 +11474,9 @@ } }, "node_modules/jest-snapshot/node_modules/semver": { - "version": "7.3.4", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.4.tgz", - "integrity": "sha512-tCfb2WLjqFAtXn4KEdxIhalnRtoKFN7nAwj0B3ZXCbQloV2tq5eDbcTmT68JJD3nRJq24/XgxtQKFIpQdtvmVw==", + "version": "7.3.5", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.5.tgz", + "integrity": "sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==", "dev": true, "dependencies": { "lru-cache": "^6.0.0" @@ -11545,9 +11545,9 @@ } }, "node_modules/jest-util/node_modules/chalk": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.0.tgz", - "integrity": "sha512-qwx12AxXe2Q5xQ43Ac//I6v5aXTipYrSESdOgzrN+9XjgEpyjpKuvSGaN4qE93f7TQTlerQQ8S+EQ0EyDoVL1A==", + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.1.tgz", + "integrity": "sha512-diHzdDKxcU+bAsUboHLPEDQiw0qEe0qd7SYUn3HgcFlWgbDcfLGswOHYeGrHKzG9z6UYf01d9VFMfZxPM1xZSg==", "dev": true, "dependencies": { "ansi-styles": "^4.1.0", @@ -11609,16 +11609,16 @@ } }, "node_modules/jest-util/node_modules/micromatch": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.2.tgz", - "integrity": "sha512-y7FpHSbMUMoyPbYUSzO6PaZ6FyRnQOpHuKwbo1G+Knck95XVU4QAiKdGEnj5wwoS7PlOgthX/09u5iFJ+aYf5Q==", + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.4.tgz", + "integrity": "sha512-pRmzw/XUcwXGpD9aI9q/0XOwLNygjETJ8y0ao0wdqprrzDa4YnxLcz7fQRZr8voh8V10kGhABbNcHVk5wHgWwg==", "dev": true, "dependencies": { "braces": "^3.0.1", - "picomatch": "^2.0.5" + "picomatch": "^2.2.3" }, "engines": { - "node": ">=8" + "node": ">=8.6" } }, "node_modules/jest-util/node_modules/supports-color": { @@ -11690,9 +11690,9 @@ } }, "node_modules/jest-validate/node_modules/chalk": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.0.tgz", - "integrity": "sha512-qwx12AxXe2Q5xQ43Ac//I6v5aXTipYrSESdOgzrN+9XjgEpyjpKuvSGaN4qE93f7TQTlerQQ8S+EQ0EyDoVL1A==", + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.1.tgz", + "integrity": "sha512-diHzdDKxcU+bAsUboHLPEDQiw0qEe0qd7SYUn3HgcFlWgbDcfLGswOHYeGrHKzG9z6UYf01d9VFMfZxPM1xZSg==", "dev": true, "dependencies": { "ansi-styles": "^4.1.0", @@ -11778,9 +11778,9 @@ } }, "node_modules/jest-watcher/node_modules/chalk": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.0.tgz", - "integrity": "sha512-qwx12AxXe2Q5xQ43Ac//I6v5aXTipYrSESdOgzrN+9XjgEpyjpKuvSGaN4qE93f7TQTlerQQ8S+EQ0EyDoVL1A==", + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.1.tgz", + "integrity": "sha512-diHzdDKxcU+bAsUboHLPEDQiw0qEe0qd7SYUn3HgcFlWgbDcfLGswOHYeGrHKzG9z6UYf01d9VFMfZxPM1xZSg==", "dev": true, "dependencies": { "ansi-styles": "^4.1.0", @@ -11900,13 +11900,13 @@ "dev": true }, "node_modules/jsdom": { - "version": "16.5.1", - "resolved": "https://registry.npmjs.org/jsdom/-/jsdom-16.5.1.tgz", - "integrity": "sha512-pF73EOsJgwZekbDHEY5VO/yKXUkab/DuvrQB/ANVizbr6UAHJsDdHXuotZYwkJSGQl1JM+ivXaqY+XBDDL4TiA==", + "version": "16.5.3", + "resolved": "https://registry.npmjs.org/jsdom/-/jsdom-16.5.3.tgz", + "integrity": "sha512-Qj1H+PEvUsOtdPJ056ewXM4UJPCi4hhLA8wpiz9F2YvsRBhuFsXxtrIFAgGBDynQA9isAMGE91PfUYbdMPXuTA==", "dev": true, "dependencies": { "abab": "^2.0.5", - "acorn": "^8.0.5", + "acorn": "^8.1.0", "acorn-globals": "^6.0.0", "cssom": "^0.4.4", "cssstyle": "^2.3.0", @@ -11928,7 +11928,7 @@ "webidl-conversions": "^6.1.0", "whatwg-encoding": "^1.0.5", "whatwg-mimetype": "^2.3.0", - "whatwg-url": "^8.0.0", + "whatwg-url": "^8.5.0", "ws": "^7.4.4", "xml-name-validator": "^3.0.0" }, @@ -11945,9 +11945,9 @@ } }, "node_modules/jsdom/node_modules/acorn": { - "version": "8.1.0", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.1.0.tgz", - "integrity": "sha512-LWCF/Wn0nfHOmJ9rzQApGnxnvgfROzGilS8936rqN/lfcYkY9MYZzdMqN+2NJ4SlTc+m5HiSa+kNfDtI64dwUA==", + "version": "8.2.1", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.2.1.tgz", + "integrity": "sha512-z716cpm5TX4uzOzILx8PavOE6C6DKshHDw1aQN52M/yNSqE9s5O8SMfyhCCfCJ3HmTL0NkVOi+8a/55T7YB3bg==", "dev": true, "bin": { "acorn": "bin/acorn" @@ -12187,9 +12187,9 @@ } }, "node_modules/lint-staged/node_modules/chalk": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.0.tgz", - "integrity": "sha512-qwx12AxXe2Q5xQ43Ac//I6v5aXTipYrSESdOgzrN+9XjgEpyjpKuvSGaN4qE93f7TQTlerQQ8S+EQ0EyDoVL1A==", + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.1.tgz", + "integrity": "sha512-diHzdDKxcU+bAsUboHLPEDQiw0qEe0qd7SYUn3HgcFlWgbDcfLGswOHYeGrHKzG9z6UYf01d9VFMfZxPM1xZSg==", "dev": true, "dependencies": { "ansi-styles": "^4.1.0", @@ -12260,16 +12260,16 @@ } }, "node_modules/lint-staged/node_modules/micromatch": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.2.tgz", - "integrity": "sha512-y7FpHSbMUMoyPbYUSzO6PaZ6FyRnQOpHuKwbo1G+Knck95XVU4QAiKdGEnj5wwoS7PlOgthX/09u5iFJ+aYf5Q==", + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.4.tgz", + "integrity": "sha512-pRmzw/XUcwXGpD9aI9q/0XOwLNygjETJ8y0ao0wdqprrzDa4YnxLcz7fQRZr8voh8V10kGhABbNcHVk5wHgWwg==", "dev": true, "dependencies": { "braces": "^3.0.1", - "picomatch": "^2.0.5" + "picomatch": "^2.2.3" }, "engines": { - "node": ">=8" + "node": ">=8.6" } }, "node_modules/lint-staged/node_modules/supports-color": { @@ -12297,18 +12297,18 @@ } }, "node_modules/listr2": { - "version": "3.4.3", - "resolved": "https://registry.npmjs.org/listr2/-/listr2-3.4.3.tgz", - "integrity": "sha512-wZmkzNiuinOfwrGqAwTCcPw6aKQGTAMGXwG5xeU1WpDjJNeBA35jGBeWxR3OF+R6Yl5Y3dRG+3vE8t6PDcSNHA==", + "version": "3.8.1", + "resolved": "https://registry.npmjs.org/listr2/-/listr2-3.8.1.tgz", + "integrity": "sha512-75vMLokDIEoZIXp3FE3P7U4yi7BRroZb7Az9+XBq+wGGnvq70QPT+BX41aSrROUMLuVan9l3aAjdeXWgaFyFEw==", "dev": true, "dependencies": { - "chalk": "^4.1.0", + "chalk": "^4.1.1", "cli-truncate": "^2.1.0", "figures": "^3.2.0", "indent-string": "^4.0.0", "log-update": "^4.0.0", "p-map": "^4.0.0", - "rxjs": "^6.6.6", + "rxjs": "^6.6.7", "through": "^2.3.8", "wrap-ansi": "^7.0.0" }, @@ -12335,9 +12335,9 @@ } }, "node_modules/listr2/node_modules/chalk": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.0.tgz", - "integrity": "sha512-qwx12AxXe2Q5xQ43Ac//I6v5aXTipYrSESdOgzrN+9XjgEpyjpKuvSGaN4qE93f7TQTlerQQ8S+EQ0EyDoVL1A==", + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.1.tgz", + "integrity": "sha512-diHzdDKxcU+bAsUboHLPEDQiw0qEe0qd7SYUn3HgcFlWgbDcfLGswOHYeGrHKzG9z6UYf01d9VFMfZxPM1xZSg==", "dev": true, "dependencies": { "ansi-styles": "^4.1.0", @@ -12484,6 +12484,12 @@ "integrity": "sha1-soqmKIorn8ZRA1x3EfZathkDMaY=", "dev": true }, + "node_modules/lodash.clonedeep": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/lodash.clonedeep/-/lodash.clonedeep-4.5.0.tgz", + "integrity": "sha1-4j8/nE+Pvd6HJSnBBxhXoIblzO8=", + "dev": true + }, "node_modules/lodash.debounce": { "version": "4.0.8", "resolved": "https://registry.npmjs.org/lodash.debounce/-/lodash.debounce-4.0.8.tgz", @@ -12496,6 +12502,12 @@ "integrity": "sha1-nMtOUF1Ia5FlE0V3KIWi3yf9AXw=", "dev": true }, + "node_modules/lodash.flatten": { + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/lodash.flatten/-/lodash.flatten-4.4.0.tgz", + "integrity": "sha1-8xwiIlqWMtK7+OSt2+8kCqdlph8=", + "dev": true + }, "node_modules/lodash.ismatch": { "version": "4.4.0", "resolved": "https://registry.npmjs.org/lodash.ismatch/-/lodash.ismatch-4.4.0.tgz", @@ -12520,10 +12532,10 @@ "integrity": "sha1-0uPuv/DZ05rVD1y9G1KnvOa7YRs=", "dev": true }, - "node_modules/lodash.sortby": { - "version": "4.7.0", - "resolved": "https://registry.npmjs.org/lodash.sortby/-/lodash.sortby-4.7.0.tgz", - "integrity": "sha1-7dFMgk4sycHgsKG0K7UhBRakJDg=", + "node_modules/lodash.truncate": { + "version": "4.4.2", + "resolved": "https://registry.npmjs.org/lodash.truncate/-/lodash.truncate-4.4.2.tgz", + "integrity": "sha1-WjUNoLERO4N+z//VgSy+WNbq4ZM=", "dev": true }, "node_modules/lodash.uniq": { @@ -12564,9 +12576,9 @@ } }, "node_modules/log-symbols/node_modules/chalk": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.0.tgz", - "integrity": "sha512-qwx12AxXe2Q5xQ43Ac//I6v5aXTipYrSESdOgzrN+9XjgEpyjpKuvSGaN4qE93f7TQTlerQQ8S+EQ0EyDoVL1A==", + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.1.tgz", + "integrity": "sha512-diHzdDKxcU+bAsUboHLPEDQiw0qEe0qd7SYUn3HgcFlWgbDcfLGswOHYeGrHKzG9z6UYf01d9VFMfZxPM1xZSg==", "dev": true, "dependencies": { "ansi-styles": "^4.1.0", @@ -12793,9 +12805,9 @@ } }, "node_modules/map-obj": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/map-obj/-/map-obj-4.2.0.tgz", - "integrity": "sha512-NAq0fCmZYGz9UFEQyndp7sisrow4GroyGeKluyKC/chuITZsPyOyC1UJZPJlVFImhXdROIP5xqouRLThT3BbpQ==", + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/map-obj/-/map-obj-4.2.1.tgz", + "integrity": "sha512-+WA2/1sPmDj1dlvvJmB5G6JKfY9dpn7EVBUL06+y6PoljPkh+6V1QihwxNkbcGxCRjt2b0F9K0taiCuo7MbdFQ==", "dev": true, "engines": { "node": ">=8" @@ -12826,12 +12838,12 @@ } }, "node_modules/memfs": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/memfs/-/memfs-3.2.0.tgz", - "integrity": "sha512-f/xxz2TpdKv6uDn6GtHee8ivFyxwxmPuXatBb1FBwxYNuVpbM3k/Y1Z+vC0mH/dIXXrukYfe3qe5J32Dfjg93A==", + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/memfs/-/memfs-3.2.2.tgz", + "integrity": "sha512-RE0CwmIM3CEvpcdK3rZ19BC4E6hv9kADkMN5rPduRak58cNArWLi/9jFLsa4rhsjfVxMP3v0jO7FHXq7SvFY5Q==", "dev": true, "dependencies": { - "fs-monkey": "1.0.1" + "fs-monkey": "1.0.3" }, "engines": { "node": ">= 4.0.0" @@ -12895,9 +12907,9 @@ } }, "node_modules/meow/node_modules/hosted-git-info": { - "version": "2.8.8", - "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.8.tgz", - "integrity": "sha512-f/wzC2QaWBs7t9IYqB4T3sR1xviIViXJRJTWBlx2Gf3g0Xi5vI7Yy4koXQ1c9OYDGHN9sBy1DQ2AB8fqZBWhUg==", + "version": "2.8.9", + "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.9.tgz", + "integrity": "sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw==", "dev": true }, "node_modules/meow/node_modules/locate-path": { @@ -13132,21 +13144,21 @@ } }, "node_modules/mime-db": { - "version": "1.46.0", - "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.46.0.tgz", - "integrity": "sha512-svXaP8UQRZ5K7or+ZmfNhg2xX3yKDMUzqadsSqi4NCH/KomcH75MAMYAGVlvXn4+b/xOPhS3I2uHKRUzvjY7BQ==", + "version": "1.47.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.47.0.tgz", + "integrity": "sha512-QBmA/G2y+IfeS4oktet3qRZ+P5kPhCKRXxXnQEudYqUaEioAU1/Lq2us3D/t1Jfo4hE9REQPrbB7K5sOczJVIw==", "dev": true, "engines": { "node": ">= 0.6" } }, "node_modules/mime-types": { - "version": "2.1.29", - "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.29.tgz", - "integrity": "sha512-Y/jMt/S5sR9OaqteJtslsFZKWOIIqMACsJSiHghlCAyhf7jfVYjKBmLiX8OgpWeW+fjJ2b+Az69aPFPkUOY6xQ==", + "version": "2.1.30", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.30.tgz", + "integrity": "sha512-crmjA4bLtR8m9qLpHvgxSChT+XoSlZi8J4n/aIdn3z92e/U47Z0V/yl+Wh9W046GgFVAmoNR/fmdbZYcSSIUeg==", "dev": true, "dependencies": { - "mime-db": "1.46.0" + "mime-db": "1.47.0" }, "engines": { "node": ">= 0.6" @@ -13435,9 +13447,9 @@ } }, "node_modules/node-notifier/node_modules/semver": { - "version": "7.3.4", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.4.tgz", - "integrity": "sha512-tCfb2WLjqFAtXn4KEdxIhalnRtoKFN7nAwj0B3ZXCbQloV2tq5eDbcTmT68JJD3nRJq24/XgxtQKFIpQdtvmVw==", + "version": "7.3.5", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.5.tgz", + "integrity": "sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==", "dev": true, "optional": true, "dependencies": { @@ -13472,9 +13484,9 @@ } }, "node_modules/normalize-package-data/node_modules/semver": { - "version": "7.3.4", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.4.tgz", - "integrity": "sha512-tCfb2WLjqFAtXn4KEdxIhalnRtoKFN7nAwj0B3ZXCbQloV2tq5eDbcTmT68JJD3nRJq24/XgxtQKFIpQdtvmVw==", + "version": "7.3.5", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.5.tgz", + "integrity": "sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==", "dev": true, "dependencies": { "lru-cache": "^6.0.0" @@ -13726,9 +13738,9 @@ } }, "node_modules/object-inspect": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.9.0.tgz", - "integrity": "sha512-i3Bp9iTqwhaLZBxGkRfo5ZbE07BQRT7MGu8+nNgwW9ItGp1TzCTw2DLEoWwjClxBjOFI/hWljTAmYGCEwmtnOw==", + "version": "1.10.2", + "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.10.2.tgz", + "integrity": "sha512-gz58rdPpadwztRrPjZE9DZLOABUpTGdcANUgOwBFO1C+HZZhePoP83M65WGDmbpwFYJSWqavbl4SgDn4k8RYTA==", "dev": true, "funding": { "url": "https://github.com/sponsors/ljharb" @@ -14149,9 +14161,9 @@ "dev": true }, "node_modules/picomatch": { - "version": "2.2.2", - "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.2.2.tgz", - "integrity": "sha512-q0M/9eZHzmr0AulXyPwNfZjtwZ/RBZlbN3K3CErVrk50T2ASYI7Bye0EvekFY3IP1Nt2DHu0re+V2ZHIpMkuWg==", + "version": "2.2.3", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.2.3.tgz", + "integrity": "sha512-KpELjfwcCDUb9PeigTs2mBJzXUPzAuP2oPcA989He8Rte0+YUAjw1JVedDhuTKPkHjSYzMN3npC9luThGYEKdg==", "dev": true, "engines": { "node": ">=8.6" @@ -14347,13 +14359,13 @@ } }, "node_modules/postcss": { - "version": "8.2.8", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.2.8.tgz", - "integrity": "sha512-1F0Xb2T21xET7oQV9eKuctbM9S7BC0fetoHCc4H13z0PT6haiRLP4T0ZY4XWh7iLP0usgqykT6p9B2RtOf4FPw==", + "version": "8.2.13", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.2.13.tgz", + "integrity": "sha512-FCE5xLH+hjbzRdpbRb1IMCvPv9yZx2QnDarBEYSN0N0HYk+TcXsEhwdFcFb+SRWOKzKGErhIEbBK2ogyLdTtfQ==", "dev": true, "dependencies": { "colorette": "^1.2.2", - "nanoid": "^3.1.20", + "nanoid": "^3.1.22", "source-map": "^0.6.1" }, "engines": { @@ -14424,14 +14436,12 @@ } }, "node_modules/postcss-selector-parser": { - "version": "6.0.4", - "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.0.4.tgz", - "integrity": "sha512-gjMeXBempyInaBqpp8gODmwZ52WaYsVOsfr4L4lDQ7n3ncD6mEyySiDtgzCT+NYC0mmeOLvtsF8iaEf0YT6dBw==", + "version": "6.0.5", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.0.5.tgz", + "integrity": "sha512-aFYPoYmXbZ1V6HZaSvat08M97A8HqO6Pjz+PiNpw/DhuRrC72XWAdp3hL6wusDCN31sSmcZyMGa2hZEuX+Xfhg==", "dev": true, "dependencies": { "cssesc": "^3.0.0", - "indexes-of": "^1.0.1", - "uniq": "^1.0.1", "util-deprecate": "^1.0.2" }, "engines": { @@ -14551,9 +14561,9 @@ } }, "node_modules/prompts": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/prompts/-/prompts-2.4.0.tgz", - "integrity": "sha512-awZAKrk3vN6CroQukBL+R9051a4R3zCZBlJm/HBfrSZ8iTpYix3VX1vU4mveiLpiwmOJT4wokTF9m6HUk4KqWQ==", + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/prompts/-/prompts-2.4.1.tgz", + "integrity": "sha512-EQyfIuO2hPDsX1L/blblV+H7I0knhgAd82cVneCwcdND9B8AuCDuRcBH6yIcG4dFzlOUqbazQqwGjx5xmsNLuQ==", "dev": true, "dependencies": { "kleur": "^3.0.3", @@ -14712,9 +14722,9 @@ } }, "node_modules/react-is": { - "version": "17.0.1", - "resolved": "https://registry.npmjs.org/react-is/-/react-is-17.0.1.tgz", - "integrity": "sha512-NAnt2iGDXohE5LI7uBnLnqvLQMtzhkiAOLXTmv+qnF9Ky7xAPcX8Up/xWIhxvLVGJvuLiNc4xQLtuqDRzb4fSA==", + "version": "17.0.2", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-17.0.2.tgz", + "integrity": "sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w==", "dev": true }, "node_modules/read-pkg": { @@ -14757,9 +14767,9 @@ } }, "node_modules/read-pkg-up/node_modules/hosted-git-info": { - "version": "2.8.8", - "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.8.tgz", - "integrity": "sha512-f/wzC2QaWBs7t9IYqB4T3sR1xviIViXJRJTWBlx2Gf3g0Xi5vI7Yy4koXQ1c9OYDGHN9sBy1DQ2AB8fqZBWhUg==", + "version": "2.8.9", + "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.9.tgz", + "integrity": "sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw==", "dev": true }, "node_modules/read-pkg-up/node_modules/load-json-file": { @@ -14910,9 +14920,9 @@ } }, "node_modules/read-pkg/node_modules/hosted-git-info": { - "version": "2.8.8", - "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.8.tgz", - "integrity": "sha512-f/wzC2QaWBs7t9IYqB4T3sR1xviIViXJRJTWBlx2Gf3g0Xi5vI7Yy4koXQ1c9OYDGHN9sBy1DQ2AB8fqZBWhUg==", + "version": "2.8.9", + "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.9.tgz", + "integrity": "sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw==", "dev": true }, "node_modules/read-pkg/node_modules/normalize-package-data": { @@ -15134,9 +15144,9 @@ "dev": true }, "node_modules/regjsparser": { - "version": "0.6.7", - "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.6.7.tgz", - "integrity": "sha512-ib77G0uxsA2ovgiYbCVGx4Pv3PSttAx2vIwidqQzbL2U5S4Q+j00HdSAneSBuyVcMvEnTXMjiGgB+DlXozVhpQ==", + "version": "0.6.9", + "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.6.9.tgz", + "integrity": "sha512-ZqbNRz1SNjLAiYuwY0zoXW8Ne675IX5q+YHioAGbCw4X96Mjl2+dcX9B2ciaeyYjViDAfvIjFpQjJgLttTEERQ==", "dev": true, "dependencies": { "jsesc": "~0.5.0" @@ -15161,9 +15171,9 @@ "dev": true }, "node_modules/repeat-element": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/repeat-element/-/repeat-element-1.1.3.tgz", - "integrity": "sha512-ahGq0ZnV5m5XtZLMb+vP76kcAM5nkLqk0lpqAuojSKGgQtn4eRi4ZZGm2olo2zKFH+sMsWaqOCW1dqAnOru72g==", + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/repeat-element/-/repeat-element-1.1.4.tgz", + "integrity": "sha512-LFiNfRcSu7KK3evMyYOuCzv3L10TW7yC1G2/+StMjK8Y6Vqd2MG7r/Qjw4ghtuCOjFvlnms/iMmLqpvW/ES/WQ==", "dev": true, "engines": { "node": ">=0.10.0" @@ -15477,9 +15487,9 @@ "dev": true }, "node_modules/rxjs": { - "version": "6.6.6", - "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.6.6.tgz", - "integrity": "sha512-/oTwee4N4iWzAMAL9xdGKjkEHmIwupR3oXbQjCKywF1BeFohswF3vZdogbmEF6pZkOsXTzWkrZszrWpQTByYVg==", + "version": "6.6.7", + "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.6.7.tgz", + "integrity": "sha512-hTdwr+7yYNIT5n4AMYp85KA6yw2Va0FLa3Rguvbpa4W3I5xynaBZo41cM3XM+4Q6fRMj3sBYIR1VAmZMXYJvRQ==", "dev": true, "dependencies": { "tslib": "^1.9.0" @@ -16148,9 +16158,9 @@ } }, "node_modules/sockjs-client": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/sockjs-client/-/sockjs-client-1.5.0.tgz", - "integrity": "sha512-8Dt3BDi4FYNrCFGTL/HtwVzkARrENdwOUf1ZoW/9p3M8lZdFT35jVdrHza+qgxuG9H3/shR4cuX/X9umUrjP8Q==", + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/sockjs-client/-/sockjs-client-1.5.1.tgz", + "integrity": "sha512-VnVAb663fosipI/m6pqRXakEOw7nvd7TUgdr3PlR/8V2I95QIdwT8L4nMxhyU8SmDBHYXU1TOElaKOmKLfYzeQ==", "dev": true, "dependencies": { "debug": "^3.2.6", @@ -16158,7 +16168,7 @@ "faye-websocket": "^0.11.3", "inherits": "^2.0.4", "json3": "^3.3.3", - "url-parse": "^1.4.7" + "url-parse": "^1.5.1" } }, "node_modules/sockjs-client/node_modules/debug": { @@ -16467,9 +16477,9 @@ } }, "node_modules/standard-version": { - "version": "9.1.1", - "resolved": "https://registry.npmjs.org/standard-version/-/standard-version-9.1.1.tgz", - "integrity": "sha512-PF9JnRauBwH7DAkmefYu1mB2Kx0MVG13udqDTFmDUiogbyikBAHBdMrVuauxtAb2YIkyZ3FMYCNv0hqUKMOPww==", + "version": "9.2.0", + "resolved": "https://registry.npmjs.org/standard-version/-/standard-version-9.2.0.tgz", + "integrity": "sha512-utJcqjk/wR4sePSwDoRcc5CzJ6S+kec5Hd0+1TJI+j1TRYuuptweAnEUdkkjGf2vYoGab2ezefyVtW065HZ1Uw==", "dev": true, "dependencies": { "chalk": "^2.4.2", @@ -16496,9 +16506,9 @@ } }, "node_modules/standard-version/node_modules/semver": { - "version": "7.3.4", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.4.tgz", - "integrity": "sha512-tCfb2WLjqFAtXn4KEdxIhalnRtoKFN7nAwj0B3ZXCbQloV2tq5eDbcTmT68JJD3nRJq24/XgxtQKFIpQdtvmVw==", + "version": "7.3.5", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.5.tgz", + "integrity": "sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==", "dev": true, "dependencies": { "lru-cache": "^6.0.0" @@ -16822,9 +16832,9 @@ } }, "node_modules/supports-hyperlinks": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/supports-hyperlinks/-/supports-hyperlinks-2.1.0.tgz", - "integrity": "sha512-zoE5/e+dnEijk6ASB6/qrK+oYdm2do1hjoLWrqUC/8WEIW1gbxFcKuBof7sW8ArN6e+AYvsE8HBGiVRWL/F5CA==", + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/supports-hyperlinks/-/supports-hyperlinks-2.2.0.tgz", + "integrity": "sha512-6sXEzV5+I5j8Bmq9/vUphGRM/RJNT9SCURJLjwfOg51heRtguGWDzcaBlgAzKhQa0EVNpPEKzQuBwZ8S8WaCeQ==", "dev": true, "dependencies": { "has-flag": "^4.0.0", @@ -16862,24 +16872,27 @@ "dev": true }, "node_modules/table": { - "version": "6.0.7", - "resolved": "https://registry.npmjs.org/table/-/table-6.0.7.tgz", - "integrity": "sha512-rxZevLGTUzWna/qBLObOe16kB2RTnnbhciwgPbMMlazz1yZGVEgnZK762xyVdVznhqxrfCeBMmMkgOOaPwjH7g==", + "version": "6.6.0", + "resolved": "https://registry.npmjs.org/table/-/table-6.6.0.tgz", + "integrity": "sha512-iZMtp5tUvcnAdtHpZTWLPF0M7AgiQsURR2DwmxnJwSy8I3+cY+ozzVvYha3BOLG2TB+L0CqjIz+91htuj6yCXg==", "dev": true, "dependencies": { - "ajv": "^7.0.2", - "lodash": "^4.17.20", + "ajv": "^8.0.1", + "lodash.clonedeep": "^4.5.0", + "lodash.flatten": "^4.4.0", + "lodash.truncate": "^4.4.2", "slice-ansi": "^4.0.0", - "string-width": "^4.2.0" + "string-width": "^4.2.0", + "strip-ansi": "^6.0.0" }, "engines": { "node": ">=10.0.0" } }, "node_modules/table/node_modules/ajv": { - "version": "7.2.3", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-7.2.3.tgz", - "integrity": "sha512-idv5WZvKVXDqKralOImQgPM9v6WOdLNa0IY3B3doOjw/YxRGT8I+allIJ6kd7Uaj+SF1xZUSU+nPM5aDNBVtnw==", + "version": "8.2.0", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.2.0.tgz", + "integrity": "sha512-WSNGFuyWd//XO8n/m/EaOlNLtO0yL8EXT/74LqT4khdhpZjP7lkj/kT5uwRmGitKEVp/Oj7ZUHeGfPtgHhQ5CA==", "dev": true, "dependencies": { "fast-deep-equal": "^3.1.1", @@ -17022,9 +17035,9 @@ } }, "node_modules/terser": { - "version": "5.6.1", - "resolved": "https://registry.npmjs.org/terser/-/terser-5.6.1.tgz", - "integrity": "sha512-yv9YLFQQ+3ZqgWCUk+pvNJwgUTdlIxUk1WTN+RnaFJe2L7ipG2csPT0ra2XRm7Cs8cxN7QXmK1rFzEwYEQkzXw==", + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/terser/-/terser-5.7.0.tgz", + "integrity": "sha512-HP5/9hp2UaZt5fYkuhNBR8YyRcT8juw8+uFbAme53iN9hblvKnLUTKkmwJG6ocWpIKf8UK4DoeWG4ty0J6S6/g==", "dev": true, "dependencies": { "commander": "^2.20.0", @@ -17389,12 +17402,12 @@ } }, "node_modules/type-fest": { - "version": "0.11.0", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.11.0.tgz", - "integrity": "sha512-OdjXJxnCN1AvyLSzeKIgXTXxV+99ZuXl3Hpo9XpJAv9MBcHrrJOQ5kV7ypXOuQie+AmWG25hLbiKdwYTifzcfQ==", + "version": "0.21.3", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.21.3.tgz", + "integrity": "sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==", "dev": true, "engines": { - "node": ">=8" + "node": ">=10" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" @@ -17429,9 +17442,9 @@ } }, "node_modules/uglify-js": { - "version": "3.13.2", - "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-3.13.2.tgz", - "integrity": "sha512-SbMu4D2Vo95LMC/MetNaso1194M1htEA+JrqE9Hk+G2DhI+itfS9TRu9ZKeCahLDNa/J3n4MqUJ/fOHMzQpRWw==", + "version": "3.13.4", + "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-3.13.4.tgz", + "integrity": "sha512-kv7fCkIXyQIilD5/yQy8O+uagsYIOt5cZvs890W40/e/rvjMSzJw81o9Bg0tkURxzZBROtDQhW2LFjOGoK3RZw==", "dev": true, "optional": true, "bin": { @@ -17442,15 +17455,18 @@ } }, "node_modules/unbox-primitive": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.0.0.tgz", - "integrity": "sha512-P/51NX+JXyxK/aigg1/ZgyccdAxm5K1+n8+tvqSntjOivPt19gvm1VC49RWYetsiub8WViUchdxl/KWHHB0kzA==", + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.0.1.tgz", + "integrity": "sha512-tZU/3NqK3dA5gpE1KtyiJUrEB0lxnGkMFHptJ7q6ewdZ8s12QrODwNbhIJStmJkd1QDXa1NRA8aF2A1zk/Ypyw==", "dev": true, "dependencies": { "function-bind": "^1.1.1", - "has-bigints": "^1.0.0", - "has-symbols": "^1.0.0", - "which-boxed-primitive": "^1.0.1" + "has-bigints": "^1.0.1", + "has-symbols": "^1.0.2", + "which-boxed-primitive": "^1.0.2" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, "node_modules/unicode-canonical-property-names-ecmascript": { @@ -17508,12 +17524,6 @@ "node": ">=0.10.0" } }, - "node_modules/uniq": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/uniq/-/uniq-1.0.1.tgz", - "integrity": "sha1-sxxa6CVIRKOoKBVBzisEuGWnNP8=", - "dev": true - }, "node_modules/universalify": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.0.tgz", @@ -17672,9 +17682,9 @@ "dev": true }, "node_modules/v8-to-istanbul": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/v8-to-istanbul/-/v8-to-istanbul-7.1.0.tgz", - "integrity": "sha512-uXUVqNUCLa0AH1vuVxzi+MI4RfxEOKt9pBgKwHbgH7st8Kv2P1m+jvWNnektzBh5QShF3ODgKmUFCf38LnVz1g==", + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/v8-to-istanbul/-/v8-to-istanbul-7.1.1.tgz", + "integrity": "sha512-p0BB09E5FRjx0ELN6RgusIPsSPhtgexSRcKETybEs6IGOTXJSZqfwxp7r//55nnu0f1AxltY5VvdVqy2vZf9AA==", "dev": true, "dependencies": { "@types/istanbul-lib-coverage": "^2.0.1", @@ -17789,21 +17799,20 @@ } }, "node_modules/webpack": { - "version": "5.33.2", - "resolved": "https://registry.npmjs.org/webpack/-/webpack-5.33.2.tgz", - "integrity": "sha512-X4b7F1sYBmJx8mlh2B7mV5szEkE0jYNJ2y3akgAP0ERi0vLCG1VvdsIxt8lFd4st6SUy0lf7W0CCQS566MBpJg==", + "version": "5.36.0", + "resolved": "https://registry.npmjs.org/webpack/-/webpack-5.36.0.tgz", + "integrity": "sha512-HdOhLXClUEwTnzQnzpSG9iL00ej23ojvfnGpF49ba0MkuAT2q+WhQilHFFJHOIVRBqbzakQ1vCWQV2K+QLX0Qw==", "dev": true, - "license": "MIT", "dependencies": { "@types/eslint-scope": "^3.7.0", - "@types/estree": "^0.0.46", + "@types/estree": "^0.0.47", "@webassemblyjs/ast": "1.11.0", "@webassemblyjs/wasm-edit": "1.11.0", "@webassemblyjs/wasm-parser": "1.11.0", - "acorn": "^8.0.4", + "acorn": "^8.2.1", "browserslist": "^4.14.5", "chrome-trace-event": "^1.0.2", - "enhanced-resolve": "^5.7.0", + "enhanced-resolve": "^5.8.0", "es-module-lexer": "^0.4.0", "eslint-scope": "^5.1.1", "events": "^3.2.0", @@ -17836,15 +17845,15 @@ } }, "node_modules/webpack-cli": { - "version": "4.5.0", - "resolved": "https://registry.npmjs.org/webpack-cli/-/webpack-cli-4.5.0.tgz", - "integrity": "sha512-wXg/ef6Ibstl2f50mnkcHblRPN/P9J4Nlod5Hg9HGFgSeF8rsqDGHJeVe4aR26q9l62TUJi6vmvC2Qz96YJw1Q==", + "version": "4.6.0", + "resolved": "https://registry.npmjs.org/webpack-cli/-/webpack-cli-4.6.0.tgz", + "integrity": "sha512-9YV+qTcGMjQFiY7Nb1kmnupvb1x40lfpj8pwdO/bom+sQiP4OBMKjHq29YQrlDWDPZO9r/qWaRRywKaRDKqBTA==", "dev": true, "dependencies": { "@discoveryjs/json-ext": "^0.5.0", - "@webpack-cli/configtest": "^1.0.1", - "@webpack-cli/info": "^1.2.2", - "@webpack-cli/serve": "^1.3.0", + "@webpack-cli/configtest": "^1.0.2", + "@webpack-cli/info": "^1.2.3", + "@webpack-cli/serve": "^1.3.1", "colorette": "^1.2.1", "commander": "^7.0.0", "enquirer": "^2.3.6", @@ -17869,9 +17878,6 @@ "@webpack-cli/generators": { "optional": true }, - "@webpack-cli/init": { - "optional": true - }, "@webpack-cli/migrate": { "optional": true }, @@ -17916,9 +17922,9 @@ } }, "node_modules/webpack-cli/node_modules/get-stream": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.0.tgz", - "integrity": "sha512-A1B3Bh1UmL0bidM/YX2NsCOTnGJePL9rO/M+Mw3m9f2gUpfokS0hi5Eah0WSUEWZdZhIZtMjkIYS7mDfOqNHbg==", + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz", + "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==", "dev": true, "engines": { "node": ">=10" @@ -18445,9 +18451,9 @@ } }, "node_modules/webpack-dev-server/node_modules/y18n": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.1.tgz", - "integrity": "sha512-wNcy4NvjMYL8gogWWYAO7ZFWFfHcbdbE57tZO8e4cbpj8tfUcwrwqSl3ad8HxpYWCdXcJUCeKKZS62Av1affwQ==", + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.3.tgz", + "integrity": "sha512-JKhqTOwSrqNA1NY5lSztJ1GrBiUodLMmIZuLiDaMRJ+itFd+ABVE8XBjOvIWL+rSqNDC74LCSFmlb/U4UZ4hJQ==", "dev": true }, "node_modules/webpack-dev-server/node_modules/yargs": { @@ -18540,9 +18546,9 @@ } }, "node_modules/webpack/node_modules/acorn": { - "version": "8.1.1", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.1.1.tgz", - "integrity": "sha512-xYiIVjNuqtKXMxlRMDc6mZUhXehod4a3gbZ1qRlM7icK4EbxUFNLhWoPblCvFtB2Y9CIqHP3CF/rdxLItaQv8g==", + "version": "8.2.1", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.2.1.tgz", + "integrity": "sha512-z716cpm5TX4uzOzILx8PavOE6C6DKshHDw1aQN52M/yNSqE9s5O8SMfyhCCfCJ3HmTL0NkVOi+8a/55T7YB3bg==", "dev": true, "bin": { "acorn": "bin/acorn" @@ -18551,6 +18557,15 @@ "node": ">=0.4.0" } }, + "node_modules/webpack/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/webpack/node_modules/webpack-sources": { "version": "2.2.0", "resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-2.2.0.tgz", @@ -18603,12 +18618,12 @@ "dev": true }, "node_modules/whatwg-url": { - "version": "8.4.0", - "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-8.4.0.tgz", - "integrity": "sha512-vwTUFf6V4zhcPkWp/4CQPr1TW9Ml6SF4lVyaIMBdJw5i6qUUJ1QWM4Z6YYVkfka0OUIzVo/0aNtGVGk256IKWw==", + "version": "8.5.0", + "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-8.5.0.tgz", + "integrity": "sha512-fy+R77xWv0AiqfLl4nuGUlQ3/6b5uNfQ4WAbGQVMYshCTCCPK9psC1nWh3XHuxGVCtlcDDQPQW1csmmIQo+fwg==", "dev": true, "dependencies": { - "lodash.sortby": "^4.7.0", + "lodash": "^4.7.0", "tr46": "^2.0.2", "webidl-conversions": "^6.1.0" }, @@ -18789,9 +18804,9 @@ } }, "node_modules/ws": { - "version": "7.4.4", - "resolved": "https://registry.npmjs.org/ws/-/ws-7.4.4.tgz", - "integrity": "sha512-Qm8k8ojNQIMx7S+Zp8u/uHOx7Qazv3Yv4q68MiWWWOJhiwG5W3x7iqmRtJo8xxrciZUY4vRxUTJCKuRnF28ZZw==", + "version": "7.4.5", + "resolved": "https://registry.npmjs.org/ws/-/ws-7.4.5.tgz", + "integrity": "sha512-xzyu3hFvomRfXKH8vOFMU3OguG6oOvhXMo3xsGy3xWExqaM2dxBbVxuD99O7m3ZUFMvvscsZDqxfgMaRr/Nr1g==", "dev": true, "engines": { "node": ">=8.3.0" @@ -18831,9 +18846,9 @@ } }, "node_modules/y18n": { - "version": "5.0.5", - "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.5.tgz", - "integrity": "sha512-hsRUr4FFrvhhRH12wOdfs38Gy7k2FFzB9qgN9v3aLykRq0dRcdcpz5C9FxdS2NuhOrI/628b/KSTJ3rwHysYSg==", + "version": "5.0.8", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", + "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==", "dev": true, "engines": { "node": ">=10" @@ -18910,9 +18925,9 @@ }, "dependencies": { "@babel/cli": { - "version": "7.13.10", - "resolved": "https://registry.npmjs.org/@babel/cli/-/cli-7.13.10.tgz", - "integrity": "sha512-lYSBC7B4B9hJ7sv0Ojx1BrGhuzCoOIYfLjd+Xpd4rOzdS+a47yi8voV8vFkfjlZR1N5qZO7ixOCbobUdT304PQ==", + "version": "7.13.16", + "resolved": "https://registry.npmjs.org/@babel/cli/-/cli-7.13.16.tgz", + "integrity": "sha512-cL9tllhqvsQ6r1+d9Invf7nNXg/3BlfL1vvvL/AdH9fZ2l5j0CeBcoq6UjsqHpvyN1v5nXSZgqJZoGeK+ZOAbw==", "dev": true, "requires": { "@nicolo-ribaudo/chokidar-2": "2.1.8-no-fsevents", @@ -18921,7 +18936,6 @@ "convert-source-map": "^1.1.0", "fs-readdir-recursive": "^1.1.0", "glob": "^7.0.0", - "lodash": "^4.17.19", "make-dir": "^2.1.0", "slash": "^2.0.0", "source-map": "^0.5.0" @@ -18937,42 +18951,41 @@ } }, "@babel/compat-data": { - "version": "7.13.11", - "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.13.11.tgz", - "integrity": "sha512-BwKEkO+2a67DcFeS3RLl0Z3Gs2OvdXewuWjc1Hfokhb5eQWP9YRYH1/+VrVZvql2CfjOiNGqSAFOYt4lsqTHzg==", + "version": "7.13.15", + "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.13.15.tgz", + "integrity": "sha512-ltnibHKR1VnrU4ymHyQ/CXtNXI6yZC0oJThyW78Hft8XndANwi+9H+UIklBDraIjFEJzw8wmcM427oDd9KS5wA==", "dev": true }, "@babel/core": { - "version": "7.13.10", - "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.13.10.tgz", - "integrity": "sha512-bfIYcT0BdKeAZrovpMqX2Mx5NrgAckGbwT982AkdS5GNfn3KMGiprlBAtmBcFZRUmpaufS6WZFP8trvx8ptFDw==", + "version": "7.13.16", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.13.16.tgz", + "integrity": "sha512-sXHpixBiWWFti0AV2Zq7avpTasr6sIAu7Y396c608541qAU2ui4a193m0KSQmfPSKFZLnQ3cvlKDOm3XkuXm3Q==", "dev": true, "requires": { "@babel/code-frame": "^7.12.13", - "@babel/generator": "^7.13.9", - "@babel/helper-compilation-targets": "^7.13.10", - "@babel/helper-module-transforms": "^7.13.0", - "@babel/helpers": "^7.13.10", - "@babel/parser": "^7.13.10", + "@babel/generator": "^7.13.16", + "@babel/helper-compilation-targets": "^7.13.16", + "@babel/helper-module-transforms": "^7.13.14", + "@babel/helpers": "^7.13.16", + "@babel/parser": "^7.13.16", "@babel/template": "^7.12.13", - "@babel/traverse": "^7.13.0", - "@babel/types": "^7.13.0", + "@babel/traverse": "^7.13.15", + "@babel/types": "^7.13.16", "convert-source-map": "^1.7.0", "debug": "^4.1.0", "gensync": "^1.0.0-beta.2", "json5": "^2.1.2", - "lodash": "^4.17.19", "semver": "^6.3.0", "source-map": "^0.5.0" } }, "@babel/generator": { - "version": "7.13.9", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.13.9.tgz", - "integrity": "sha512-mHOOmY0Axl/JCTkxTU6Lf5sWOg/v8nUa+Xkt4zMTftX0wqmb6Sh7J8gvcehBw7q0AhrhAR+FDacKjCZ2X8K+Sw==", + "version": "7.13.16", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.13.16.tgz", + "integrity": "sha512-grBBR75UnKOcUWMp8WoDxNsWCFl//XCK6HWTrBQKTr5SV9f5g0pNOjdyzi/DTBv12S9GnYPInIXQBTky7OXEMg==", "dev": true, "requires": { - "@babel/types": "^7.13.0", + "@babel/types": "^7.13.16", "jsesc": "^2.5.1", "source-map": "^0.5.0" } @@ -18997,12 +19010,12 @@ } }, "@babel/helper-compilation-targets": { - "version": "7.13.10", - "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.13.10.tgz", - "integrity": "sha512-/Xju7Qg1GQO4mHZ/Kcs6Au7gfafgZnwm+a7sy/ow/tV1sHeraRUHbjdat8/UvDor4Tez+siGKDk6zIKtCPKVJA==", + "version": "7.13.16", + "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.13.16.tgz", + "integrity": "sha512-3gmkYIrpqsLlieFwjkGgLaSHmhnvlAYzZLlYVjlW+QwI+1zE17kGxuJGmIqDQdYp56XdmGeD+Bswx0UTyG18xA==", "dev": true, "requires": { - "@babel/compat-data": "^7.13.8", + "@babel/compat-data": "^7.13.15", "@babel/helper-validator-option": "^7.12.17", "browserslist": "^4.14.5", "semver": "^6.3.0" @@ -19032,9 +19045,9 @@ } }, "@babel/helper-define-polyfill-provider": { - "version": "0.1.5", - "resolved": "https://registry.npmjs.org/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.1.5.tgz", - "integrity": "sha512-nXuzCSwlJ/WKr8qxzW816gwyT6VZgiJG17zR40fou70yfAcqjoNyTLl/DQ+FExw5Hx5KNqshmN8Ldl/r2N7cTg==", + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.2.0.tgz", + "integrity": "sha512-JT8tHuFjKBo8NnaUbblz7mIu1nnvUDiHVjXXkulZULyidvo/7P6TY7+YqpV37IfF+KUFxmlK04elKtGKXaiVgw==", "dev": true, "requires": { "@babel/helper-compilation-targets": "^7.13.0", @@ -19077,48 +19090,47 @@ } }, "@babel/helper-hoist-variables": { - "version": "7.13.0", - "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.13.0.tgz", - "integrity": "sha512-0kBzvXiIKfsCA0y6cFEIJf4OdzfpRuNk4+YTeHZpGGc666SATFKTz6sRncwFnQk7/ugJ4dSrCj6iJuvW4Qwr2g==", + "version": "7.13.16", + "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.13.16.tgz", + "integrity": "sha512-1eMtTrXtrwscjcAeO4BVK+vvkxaLJSPFz1w1KLawz6HLNi9bPFGBNwwDyVfiu1Tv/vRRFYfoGaKhmAQPGPn5Wg==", "dev": true, "requires": { - "@babel/traverse": "^7.13.0", - "@babel/types": "^7.13.0" + "@babel/traverse": "^7.13.15", + "@babel/types": "^7.13.16" } }, "@babel/helper-member-expression-to-functions": { - "version": "7.13.0", - "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.13.0.tgz", - "integrity": "sha512-yvRf8Ivk62JwisqV1rFRMxiSMDGnN6KH1/mDMmIrij4jztpQNRoHqqMG3U6apYbGRPJpgPalhva9Yd06HlUxJQ==", + "version": "7.13.12", + "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.13.12.tgz", + "integrity": "sha512-48ql1CLL59aKbU94Y88Xgb2VFy7a95ykGRbJJaaVv+LX5U8wFpLfiGXJJGUozsmA1oEh/o5Bp60Voq7ACyA/Sw==", "dev": true, "requires": { - "@babel/types": "^7.13.0" + "@babel/types": "^7.13.12" } }, "@babel/helper-module-imports": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.12.13.tgz", - "integrity": "sha512-NGmfvRp9Rqxy0uHSSVP+SRIW1q31a7Ji10cLBcqSDUngGentY4FRiHOFZFE1CLU5eiL0oE8reH7Tg1y99TDM/g==", + "version": "7.13.12", + "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.13.12.tgz", + "integrity": "sha512-4cVvR2/1B693IuOvSI20xqqa/+bl7lqAMR59R4iu39R9aOX8/JoYY1sFaNvUMyMBGnHdwvJgUrzNLoUZxXypxA==", "dev": true, "requires": { - "@babel/types": "^7.12.13" + "@babel/types": "^7.13.12" } }, "@babel/helper-module-transforms": { - "version": "7.13.0", - "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.13.0.tgz", - "integrity": "sha512-Ls8/VBwH577+pw7Ku1QkUWIyRRNHpYlts7+qSqBBFCW3I8QteB9DxfcZ5YJpOwH6Ihe/wn8ch7fMGOP1OhEIvw==", + "version": "7.13.14", + "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.13.14.tgz", + "integrity": "sha512-QuU/OJ0iAOSIatyVZmfqB0lbkVP0kDRiKj34xy+QNsnVZi/PA6BoSoreeqnxxa9EHFAIL0R9XOaAR/G9WlIy5g==", "dev": true, "requires": { - "@babel/helper-module-imports": "^7.12.13", - "@babel/helper-replace-supers": "^7.13.0", - "@babel/helper-simple-access": "^7.12.13", + "@babel/helper-module-imports": "^7.13.12", + "@babel/helper-replace-supers": "^7.13.12", + "@babel/helper-simple-access": "^7.13.12", "@babel/helper-split-export-declaration": "^7.12.13", "@babel/helper-validator-identifier": "^7.12.11", "@babel/template": "^7.12.13", - "@babel/traverse": "^7.13.0", - "@babel/types": "^7.13.0", - "lodash": "^4.17.19" + "@babel/traverse": "^7.13.13", + "@babel/types": "^7.13.14" } }, "@babel/helper-optimise-call-expression": { @@ -19148,24 +19160,24 @@ } }, "@babel/helper-replace-supers": { - "version": "7.13.0", - "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.13.0.tgz", - "integrity": "sha512-Segd5me1+Pz+rmN/NFBOplMbZG3SqRJOBlY+mA0SxAv6rjj7zJqr1AVr3SfzUVTLCv7ZLU5FycOM/SBGuLPbZw==", + "version": "7.13.12", + "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.13.12.tgz", + "integrity": "sha512-Gz1eiX+4yDO8mT+heB94aLVNCL+rbuT2xy4YfyNqu8F+OI6vMvJK891qGBTqL9Uc8wxEvRW92Id6G7sDen3fFw==", "dev": true, "requires": { - "@babel/helper-member-expression-to-functions": "^7.13.0", + "@babel/helper-member-expression-to-functions": "^7.13.12", "@babel/helper-optimise-call-expression": "^7.12.13", "@babel/traverse": "^7.13.0", - "@babel/types": "^7.13.0" + "@babel/types": "^7.13.12" } }, "@babel/helper-simple-access": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.12.13.tgz", - "integrity": "sha512-0ski5dyYIHEfwpWGx5GPWhH35j342JaflmCeQmsPWcrOQDtCN6C1zKAVRFVbK53lPW2c9TsuLLSUDf0tIGJ5hA==", + "version": "7.13.12", + "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.13.12.tgz", + "integrity": "sha512-7FEjbrx5SL9cWvXioDbnlYTppcZGuCY6ow3/D5vMggb2Ywgu4dMrpTJX0JdQAIcRRUElOIxF3yEooa9gUb9ZbA==", "dev": true, "requires": { - "@babel/types": "^7.12.13" + "@babel/types": "^7.13.12" } }, "@babel/helper-skip-transparent-expression-wrappers": { @@ -19211,14 +19223,14 @@ } }, "@babel/helpers": { - "version": "7.13.10", - "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.13.10.tgz", - "integrity": "sha512-4VO883+MWPDUVRF3PhiLBUFHoX/bsLTGFpFK/HqvvfBZz2D57u9XzPVNFVBTc0PW/CWR9BXTOKt8NF4DInUHcQ==", + "version": "7.13.17", + "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.13.17.tgz", + "integrity": "sha512-Eal4Gce4kGijo1/TGJdqp3WuhllaMLSrW6XcL0ulyUAQOuxHcCafZE8KHg9857gcTehsm/v7RcOx2+jp0Ryjsg==", "dev": true, "requires": { "@babel/template": "^7.12.13", - "@babel/traverse": "^7.13.0", - "@babel/types": "^7.13.0" + "@babel/traverse": "^7.13.17", + "@babel/types": "^7.13.17" } }, "@babel/highlight": { @@ -19233,15 +19245,26 @@ } }, "@babel/parser": { - "version": "7.13.11", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.13.11.tgz", - "integrity": "sha512-PhuoqeHoO9fc4ffMEVk4qb/w/s2iOSWohvbHxLtxui0eBg3Lg5gN1U8wp1V1u61hOWkPQJJyJzGH6Y+grwkq8Q==", + "version": "7.13.16", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.13.16.tgz", + "integrity": "sha512-6bAg36mCwuqLO0hbR+z7PHuqWiCeP7Dzg73OpQwsAB1Eb8HnGEz5xYBzCfbu+YjoaJsJs+qheDxVAuqbt3ILEw==", "dev": true }, + "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": { + "version": "7.13.12", + "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/-/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.13.12.tgz", + "integrity": "sha512-d0u3zWKcoZf379fOeJdr1a5WPDny4aOFZ6hlfKivgK0LY7ZxNfoaHL2fWwdGtHyVvra38FC+HVYkO+byfSA8AQ==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.13.0", + "@babel/helper-skip-transparent-expression-wrappers": "^7.12.1", + "@babel/plugin-proposal-optional-chaining": "^7.13.12" + } + }, "@babel/plugin-proposal-async-generator-functions": { - "version": "7.13.8", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.13.8.tgz", - "integrity": "sha512-rPBnhj+WgoSmgq+4gQUtXx/vOcU+UYtjy1AA/aeD61Hwj410fwYyqfUcRP3lR8ucgliVJL/G7sXcNUecC75IXA==", + "version": "7.13.15", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.13.15.tgz", + "integrity": "sha512-VapibkWzFeoa6ubXy/NgV5U2U4MVnUlvnx6wo1XhlsaTrLYWE0UFpDQsVrmn22q5CzeloqJ8gEMHSKxuee6ZdA==", "dev": true, "requires": { "@babel/helper-plugin-utils": "^7.13.0", @@ -19343,9 +19366,9 @@ } }, "@babel/plugin-proposal-optional-chaining": { - "version": "7.13.8", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-optional-chaining/-/plugin-proposal-optional-chaining-7.13.8.tgz", - "integrity": "sha512-hpbBwbTgd7Cz1QryvwJZRo1U0k1q8uyBmeXOSQUjdg/A2TASkhR/rz7AyqZ/kS8kbpsNA80rOYbxySBJAqmhhQ==", + "version": "7.13.12", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-optional-chaining/-/plugin-proposal-optional-chaining-7.13.12.tgz", + "integrity": "sha512-fcEdKOkIB7Tf4IxrgEVeFC4zeJSTr78no9wTdBuZZbqF64kzllU0ybo2zrzm7gUQfxGhBgq4E39oRs8Zx/RMYQ==", "dev": true, "requires": { "@babel/helper-plugin-utils": "^7.13.0", @@ -19529,12 +19552,12 @@ } }, "@babel/plugin-transform-block-scoping": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.12.13.tgz", - "integrity": "sha512-Pxwe0iqWJX4fOOM2kEZeUuAxHMWb9nK+9oh5d11bsLoB0xMg+mkDpt0eYuDZB7ETrY9bbcVlKUGTOGWy7BHsMQ==", + "version": "7.13.16", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.13.16.tgz", + "integrity": "sha512-ad3PHUxGnfWF4Efd3qFuznEtZKoBp0spS+DgqzVzRPV7urEBvPLue3y2j80w4Jf2YLzZHj8TOv/Lmvdmh3b2xg==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.12.13" + "@babel/helper-plugin-utils": "^7.13.0" } }, "@babel/plugin-transform-classes": { @@ -19562,9 +19585,9 @@ } }, "@babel/plugin-transform-destructuring": { - "version": "7.13.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.13.0.tgz", - "integrity": "sha512-zym5em7tePoNT9s964c0/KU3JPPnuq7VhIxPRefJ4/s82cD+q1mgKfuGRDMCPL0HTyKz4dISuQlCusfgCJ86HA==", + "version": "7.13.17", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.13.17.tgz", + "integrity": "sha512-UAUqiLv+uRLO+xuBKKMEpC+t7YRNVRqBsWWq1yKXbBZBje/t3IXCiSinZhjn/DC3qzBfICeYd2EFGEbHsh5RLA==", "dev": true, "requires": { "@babel/helper-plugin-utils": "^7.13.0" @@ -19729,9 +19752,9 @@ } }, "@babel/plugin-transform-regenerator": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.12.13.tgz", - "integrity": "sha512-lxb2ZAvSLyJ2PEe47hoGWPmW22v7CtSl9jW8mingV4H2sEX/JOcrAj2nPuGWi56ERUm2bUpjKzONAuT6HCn2EA==", + "version": "7.13.15", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.13.15.tgz", + "integrity": "sha512-Bk9cOLSz8DiurcMETZ8E2YtIVJbFCPGW28DJWUakmyVWtQSm6Wsf0p4B4BfEr/eL2Nkhe/CICiUiMOCi1TPhuQ==", "dev": true, "requires": { "regenerator-transform": "^0.14.2" @@ -19812,16 +19835,17 @@ } }, "@babel/preset-env": { - "version": "7.13.10", - "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.13.10.tgz", - "integrity": "sha512-nOsTScuoRghRtUsRr/c69d042ysfPHcu+KOB4A9aAO9eJYqrkat+LF8G1yp1HD18QiwixT2CisZTr/0b3YZPXQ==", + "version": "7.13.15", + "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.13.15.tgz", + "integrity": "sha512-D4JAPMXcxk69PKe81jRJ21/fP/uYdcTZ3hJDF5QX2HSI9bBxxYw/dumdR6dGumhjxlprHPE4XWoPaqzZUVy2MA==", "dev": true, "requires": { - "@babel/compat-data": "^7.13.8", - "@babel/helper-compilation-targets": "^7.13.10", + "@babel/compat-data": "^7.13.15", + "@babel/helper-compilation-targets": "^7.13.13", "@babel/helper-plugin-utils": "^7.13.0", "@babel/helper-validator-option": "^7.12.17", - "@babel/plugin-proposal-async-generator-functions": "^7.13.8", + "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": "^7.13.12", + "@babel/plugin-proposal-async-generator-functions": "^7.13.15", "@babel/plugin-proposal-class-properties": "^7.13.0", "@babel/plugin-proposal-dynamic-import": "^7.13.8", "@babel/plugin-proposal-export-namespace-from": "^7.12.13", @@ -19831,7 +19855,7 @@ "@babel/plugin-proposal-numeric-separator": "^7.12.13", "@babel/plugin-proposal-object-rest-spread": "^7.13.8", "@babel/plugin-proposal-optional-catch-binding": "^7.13.8", - "@babel/plugin-proposal-optional-chaining": "^7.13.8", + "@babel/plugin-proposal-optional-chaining": "^7.13.12", "@babel/plugin-proposal-private-methods": "^7.13.0", "@babel/plugin-proposal-unicode-property-regex": "^7.12.13", "@babel/plugin-syntax-async-generators": "^7.8.4", @@ -19869,7 +19893,7 @@ "@babel/plugin-transform-object-super": "^7.12.13", "@babel/plugin-transform-parameters": "^7.13.0", "@babel/plugin-transform-property-literals": "^7.12.13", - "@babel/plugin-transform-regenerator": "^7.12.13", + "@babel/plugin-transform-regenerator": "^7.13.15", "@babel/plugin-transform-reserved-words": "^7.12.13", "@babel/plugin-transform-shorthand-properties": "^7.12.13", "@babel/plugin-transform-spread": "^7.13.0", @@ -19879,10 +19903,10 @@ "@babel/plugin-transform-unicode-escapes": "^7.12.13", "@babel/plugin-transform-unicode-regex": "^7.12.13", "@babel/preset-modules": "^0.1.4", - "@babel/types": "^7.13.0", - "babel-plugin-polyfill-corejs2": "^0.1.4", - "babel-plugin-polyfill-corejs3": "^0.1.3", - "babel-plugin-polyfill-regenerator": "^0.1.2", + "@babel/types": "^7.13.14", + "babel-plugin-polyfill-corejs2": "^0.2.0", + "babel-plugin-polyfill-corejs3": "^0.2.0", + "babel-plugin-polyfill-regenerator": "^0.2.0", "core-js-compat": "^3.9.0", "semver": "^6.3.0" } @@ -19901,9 +19925,9 @@ } }, "@babel/runtime": { - "version": "7.13.10", - "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.13.10.tgz", - "integrity": "sha512-4QPkjJq6Ns3V/RgpEahRk+AGfL0eO6RHHtTWoNNr5mO49G6B5+X6d6THgWEAvTrznU5xYpbAlVKRYcsCgh/Akw==", + "version": "7.13.17", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.13.17.tgz", + "integrity": "sha512-NCdgJEelPTSh+FEFylhnP1ylq848l1z9t9N0j1Lfbcw0+KXGjsTvUmkxy+voLLXB5SOKMbLLx4jxYliGrYQseA==", "dev": true, "requires": { "regenerator-runtime": "^0.13.4" @@ -19921,30 +19945,28 @@ } }, "@babel/traverse": { - "version": "7.13.0", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.13.0.tgz", - "integrity": "sha512-xys5xi5JEhzC3RzEmSGrs/b3pJW/o87SypZ+G/PhaE7uqVQNv/jlmVIBXuoh5atqQ434LfXV+sf23Oxj0bchJQ==", + "version": "7.13.17", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.13.17.tgz", + "integrity": "sha512-BMnZn0R+X6ayqm3C3To7o1j7Q020gWdqdyP50KEoVqaCO2c/Im7sYZSmVgvefp8TTMQ+9CtwuBp0Z1CZ8V3Pvg==", "dev": true, "requires": { "@babel/code-frame": "^7.12.13", - "@babel/generator": "^7.13.0", + "@babel/generator": "^7.13.16", "@babel/helper-function-name": "^7.12.13", "@babel/helper-split-export-declaration": "^7.12.13", - "@babel/parser": "^7.13.0", - "@babel/types": "^7.13.0", + "@babel/parser": "^7.13.16", + "@babel/types": "^7.13.17", "debug": "^4.1.0", - "globals": "^11.1.0", - "lodash": "^4.17.19" + "globals": "^11.1.0" } }, "@babel/types": { - "version": "7.13.0", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.13.0.tgz", - "integrity": "sha512-hE+HE8rnG1Z6Wzo+MhaKE5lM5eMx71T4EHJgku2E3xIfaULhDcxiiRxUYgwX8qwP1BBSlag+TdGOt6JAidIZTA==", + "version": "7.13.17", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.13.17.tgz", + "integrity": "sha512-RawydLgxbOPDlTLJNtoIypwdmAy//uQIzlKt2+iBiJaRlVuI6QLUxVAyWGNfOzp8Yu4L4lLIacoCyTNtpb4wiA==", "dev": true, "requires": { "@babel/helper-validator-identifier": "^7.12.11", - "lodash": "^4.17.19", "to-fast-properties": "^2.0.0" } }, @@ -19965,16 +19987,16 @@ } }, "@commitlint/cli": { - "version": "12.0.1", - "resolved": "https://registry.npmjs.org/@commitlint/cli/-/cli-12.0.1.tgz", - "integrity": "sha512-V+cMYNHJOr40XT9Kvz3Vrz1Eh7QE1rjQrUbifawDAqcOrBJFuoXwU2SAcRtYFCSqFy9EhbreQGhZFs8dYb90KA==", + "version": "12.1.1", + "resolved": "https://registry.npmjs.org/@commitlint/cli/-/cli-12.1.1.tgz", + "integrity": "sha512-SB67/s6VJ50seoPx/Sr2gj1fMzKrx+udgarecGdr8h43ah+M2e22gjQJ7xHv5KwyPQ+6ug1YOMCL34ubT4zupQ==", "dev": true, "requires": { - "@commitlint/format": "^12.0.1", - "@commitlint/lint": "^12.0.1", - "@commitlint/load": "^12.0.1", - "@commitlint/read": "^12.0.1", - "@commitlint/types": "^12.0.1", + "@commitlint/format": "^12.1.1", + "@commitlint/lint": "^12.1.1", + "@commitlint/load": "^12.1.1", + "@commitlint/read": "^12.1.1", + "@commitlint/types": "^12.1.1", "get-stdin": "8.0.0", "lodash": "^4.17.19", "resolve-from": "5.0.0", @@ -19983,37 +20005,37 @@ } }, "@commitlint/config-conventional": { - "version": "12.0.1", - "resolved": "https://registry.npmjs.org/@commitlint/config-conventional/-/config-conventional-12.0.1.tgz", - "integrity": "sha512-1ZhB135lh47zVmf1orwcjxuKuam11fJIH/bdVxW9XiQv8XPwC6iIp19knfl8FcOT78AVBnes1z6EVxgUeP2/4Q==", + "version": "12.1.1", + "resolved": "https://registry.npmjs.org/@commitlint/config-conventional/-/config-conventional-12.1.1.tgz", + "integrity": "sha512-15CqbXMsQiEb0qbzjEHe2OkzaXPYSp7RxaS6KoSVk/4W0QiigquavQ+M0huBZze92h0lMS6Pxoq4AJ5CQ3D+iQ==", "dev": true, "requires": { "conventional-changelog-conventionalcommits": "^4.3.1" } }, "@commitlint/ensure": { - "version": "12.0.1", - "resolved": "https://registry.npmjs.org/@commitlint/ensure/-/ensure-12.0.1.tgz", - "integrity": "sha512-XdBq+q1YBBDxWIAEjE3Y1YMbzhUnUuSLAEWD8SU1xsvEpQXWRYwDlMBRkjO7funNWTdL0ZQSkZDzme70imYjbw==", + "version": "12.1.1", + "resolved": "https://registry.npmjs.org/@commitlint/ensure/-/ensure-12.1.1.tgz", + "integrity": "sha512-XEUQvUjzBVQM7Uv8vYz+c7PDukFvx0AvQEyX/V+PaTkCK/xPvexu7FLbFwvypjSt9BPMf+T/rhB1hVmldkd6lw==", "dev": true, "requires": { - "@commitlint/types": "^12.0.1", + "@commitlint/types": "^12.1.1", "lodash": "^4.17.19" } }, "@commitlint/execute-rule": { - "version": "12.0.1", - "resolved": "https://registry.npmjs.org/@commitlint/execute-rule/-/execute-rule-12.0.1.tgz", - "integrity": "sha512-JzyweYfZlFLtXpgP+btzSY3YAkGPg61TqUSYQqBr4+5IaVf1FruMm5v4D5eLu9dAJuNKUfHbM3AEfuEPiZ79pg==", + "version": "12.1.1", + "resolved": "https://registry.npmjs.org/@commitlint/execute-rule/-/execute-rule-12.1.1.tgz", + "integrity": "sha512-6mplMGvLCKF5LieL7BRhydpg32tm6LICnWQADrWU4S5g9PKi2utNvhiaiuNPoHUXr29RdbNaGNcyyPv8DSjJsQ==", "dev": true }, "@commitlint/format": { - "version": "12.0.1", - "resolved": "https://registry.npmjs.org/@commitlint/format/-/format-12.0.1.tgz", - "integrity": "sha512-rF79ipAxR8yFzPzG5tRoEZ//MRkyxCXj4JhpEjtdaCMBAXMssI8uazn3e5D8z4UFgSDe9qOnL0OmQvql7HTMoA==", + "version": "12.1.1", + "resolved": "https://registry.npmjs.org/@commitlint/format/-/format-12.1.1.tgz", + "integrity": "sha512-bTAoOryTFLqls17JTaRwk2WDVOP0NwuG4F/JPK8RaF6DMZNVQTfajkgTxFENNZRnESfau1BvivvEXfUAW2ZsvA==", "dev": true, "requires": { - "@commitlint/types": "^12.0.1", + "@commitlint/types": "^12.1.1", "chalk": "^4.0.0" }, "dependencies": { @@ -20027,9 +20049,9 @@ } }, "chalk": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.0.tgz", - "integrity": "sha512-qwx12AxXe2Q5xQ43Ac//I6v5aXTipYrSESdOgzrN+9XjgEpyjpKuvSGaN4qE93f7TQTlerQQ8S+EQ0EyDoVL1A==", + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.1.tgz", + "integrity": "sha512-diHzdDKxcU+bAsUboHLPEDQiw0qEe0qd7SYUn3HgcFlWgbDcfLGswOHYeGrHKzG9z6UYf01d9VFMfZxPM1xZSg==", "dev": true, "requires": { "ansi-styles": "^4.1.0", @@ -20069,19 +20091,19 @@ } }, "@commitlint/is-ignored": { - "version": "12.0.1", - "resolved": "https://registry.npmjs.org/@commitlint/is-ignored/-/is-ignored-12.0.1.tgz", - "integrity": "sha512-AplfLn5mX/kWTIiSolcOhTYcgphuGLX8FUr+HmyHBEqUkO36jt0z9caysH47fqU71ePtH63v1DWm+RYQ5RPDjg==", + "version": "12.1.1", + "resolved": "https://registry.npmjs.org/@commitlint/is-ignored/-/is-ignored-12.1.1.tgz", + "integrity": "sha512-Sn4fsnWX+wLAJOD/UZeoVruB98te1TyPYRiDEq0MhRJAQIrP+7jE/O3/ass68AAMq00HvH3OK9kt4UBXggcGjA==", "dev": true, "requires": { - "@commitlint/types": "^12.0.1", - "semver": "7.3.4" + "@commitlint/types": "^12.1.1", + "semver": "7.3.5" }, "dependencies": { "semver": { - "version": "7.3.4", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.4.tgz", - "integrity": "sha512-tCfb2WLjqFAtXn4KEdxIhalnRtoKFN7nAwj0B3ZXCbQloV2tq5eDbcTmT68JJD3nRJq24/XgxtQKFIpQdtvmVw==", + "version": "7.3.5", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.5.tgz", + "integrity": "sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==", "dev": true, "requires": { "lru-cache": "^6.0.0" @@ -20090,26 +20112,26 @@ } }, "@commitlint/lint": { - "version": "12.0.1", - "resolved": "https://registry.npmjs.org/@commitlint/lint/-/lint-12.0.1.tgz", - "integrity": "sha512-1lKyRCq4ahJrY+Xxo8LsqCbALeJkodtEfpmYHeA5HpPMnK7lRSplLqOLcTCjoPfd4vO+gl6aDEZN+ow3YGQBOg==", + "version": "12.1.1", + "resolved": "https://registry.npmjs.org/@commitlint/lint/-/lint-12.1.1.tgz", + "integrity": "sha512-FFFPpku/E0svL1jaUVqosuZJDDWiNWYBlUw5ZEljh3MwWRcoaWtMIX5bseX+IvHpFZsCTAiBs1kCgNulCi0UvA==", "dev": true, "requires": { - "@commitlint/is-ignored": "^12.0.1", - "@commitlint/parse": "^12.0.1", - "@commitlint/rules": "^12.0.1", - "@commitlint/types": "^12.0.1" + "@commitlint/is-ignored": "^12.1.1", + "@commitlint/parse": "^12.1.1", + "@commitlint/rules": "^12.1.1", + "@commitlint/types": "^12.1.1" } }, "@commitlint/load": { - "version": "12.0.1", - "resolved": "https://registry.npmjs.org/@commitlint/load/-/load-12.0.1.tgz", - "integrity": "sha512-dX8KdCWn7w0bTkkk3zKQpe9X8vsTRa5EM+1ffF313wCX9b6tGa9vujhEHCkSzKAbbE2tFV64CHZygE7rtlHdIA==", + "version": "12.1.1", + "resolved": "https://registry.npmjs.org/@commitlint/load/-/load-12.1.1.tgz", + "integrity": "sha512-qOQtgNdJRULUQWP9jkpTwhj7aEtnqUtqeUpbQ9rjS+GIUST65HZbteNUX4S0mAEGPWqy2aK5xGd73cUfFSvuuw==", "dev": true, "requires": { - "@commitlint/execute-rule": "^12.0.1", - "@commitlint/resolve-extends": "^12.0.1", - "@commitlint/types": "^12.0.1", + "@commitlint/execute-rule": "^12.1.1", + "@commitlint/resolve-extends": "^12.1.1", + "@commitlint/types": "^12.1.1", "chalk": "^4.0.0", "cosmiconfig": "^7.0.0", "lodash": "^4.17.19", @@ -20126,9 +20148,9 @@ } }, "chalk": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.0.tgz", - "integrity": "sha512-qwx12AxXe2Q5xQ43Ac//I6v5aXTipYrSESdOgzrN+9XjgEpyjpKuvSGaN4qE93f7TQTlerQQ8S+EQ0EyDoVL1A==", + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.1.tgz", + "integrity": "sha512-diHzdDKxcU+bAsUboHLPEDQiw0qEe0qd7SYUn3HgcFlWgbDcfLGswOHYeGrHKzG9z6UYf01d9VFMfZxPM1xZSg==", "dev": true, "requires": { "ansi-styles": "^4.1.0", @@ -20168,38 +20190,38 @@ } }, "@commitlint/message": { - "version": "12.0.1", - "resolved": "https://registry.npmjs.org/@commitlint/message/-/message-12.0.1.tgz", - "integrity": "sha512-fXuoxRC+NT1wEQi6p8oHfT7wvWIRgTk+udlRJnWTjmMpiYzVnMmmZfasdShirWr4TtxQtMyL+5DVgh7Y98kURw==", + "version": "12.1.1", + "resolved": "https://registry.npmjs.org/@commitlint/message/-/message-12.1.1.tgz", + "integrity": "sha512-RakDSLAiOligXjhbLahV8HowF4K75pZIcs0+Ii9Q8Gz5H3DWf1Ngit7alFTWfcbf/+DTjSzVPov5HiwQZPIBUg==", "dev": true }, "@commitlint/parse": { - "version": "12.0.1", - "resolved": "https://registry.npmjs.org/@commitlint/parse/-/parse-12.0.1.tgz", - "integrity": "sha512-7oEGASmzBnHir5jSIR7KephXrKh7rIi9a6RpH1tOT+CIENYvhe8EDtIy29qMt+RLa2LlaPF7YrAgaJRfzG0YDQ==", + "version": "12.1.1", + "resolved": "https://registry.npmjs.org/@commitlint/parse/-/parse-12.1.1.tgz", + "integrity": "sha512-nuljIvAbBDr93DgL0wCArftEIhjSghawAwhvrKNV9FFcqAJqfVqitwMxJrNDCQ5pgUMCSKULLOEv+dA0bLlTEQ==", "dev": true, "requires": { - "@commitlint/types": "^12.0.1", + "@commitlint/types": "^12.1.1", "conventional-changelog-angular": "^5.0.11", "conventional-commits-parser": "^3.0.0" } }, "@commitlint/read": { - "version": "12.0.1", - "resolved": "https://registry.npmjs.org/@commitlint/read/-/read-12.0.1.tgz", - "integrity": "sha512-baa0YeD4QOctEuthLpExQSi9xPiw0kDPfUVHqp8I88iuIXJECeS8S1+1GBiz89e8dLN9zmEE+sN9vtJHdAp9YA==", + "version": "12.1.1", + "resolved": "https://registry.npmjs.org/@commitlint/read/-/read-12.1.1.tgz", + "integrity": "sha512-1k0CQEoZIdixvmqZRKEcWdj2XiKS7SlizEOJ1SE99Qui5d5FlBey8eaooTGgmpR6zObpIHJehtEPzM3VzUT3qA==", "dev": true, "requires": { - "@commitlint/top-level": "^12.0.1", - "@commitlint/types": "^12.0.1", + "@commitlint/top-level": "^12.1.1", + "@commitlint/types": "^12.1.1", "fs-extra": "^9.0.0", "git-raw-commits": "^2.0.0" } }, "@commitlint/resolve-extends": { - "version": "12.0.1", - "resolved": "https://registry.npmjs.org/@commitlint/resolve-extends/-/resolve-extends-12.0.1.tgz", - "integrity": "sha512-Mvg0GDi/68Cqw893ha8uhxE8myHfPmiSSSi7d1x4VJNR4hoS37lBdX89kyx4i9NPmLfviY2cUJKTyK8ZrFznZw==", + "version": "12.1.1", + "resolved": "https://registry.npmjs.org/@commitlint/resolve-extends/-/resolve-extends-12.1.1.tgz", + "integrity": "sha512-/DXRt0S0U3o9lq5cc8OL1Lkx0IjW0HcDWjUkUXshAajBIKBYSJB8x/loNCi1krNEJ8SwLXUEFt5OLxNO6wE9yQ==", "dev": true, "requires": { "import-fresh": "^3.0.0", @@ -20209,36 +20231,36 @@ } }, "@commitlint/rules": { - "version": "12.0.1", - "resolved": "https://registry.npmjs.org/@commitlint/rules/-/rules-12.0.1.tgz", - "integrity": "sha512-A5O0ubNGugZR9WWxk5IVOLo07lpdUwhG5WkAW2lYpgZ7Z/2U4PLob9b4Ih1eHbQu+gnVeFr91k7F0DrpM7B8EQ==", + "version": "12.1.1", + "resolved": "https://registry.npmjs.org/@commitlint/rules/-/rules-12.1.1.tgz", + "integrity": "sha512-oCcLF/ykcJfhM2DeeaDyrgdaiuKsqIPNocugdPj2WEyhSYqmx1/u18CV96LAtW+WyyiOLCCeiZwiQutx3T5nXg==", "dev": true, "requires": { - "@commitlint/ensure": "^12.0.1", - "@commitlint/message": "^12.0.1", - "@commitlint/to-lines": "^12.0.1", - "@commitlint/types": "^12.0.1" + "@commitlint/ensure": "^12.1.1", + "@commitlint/message": "^12.1.1", + "@commitlint/to-lines": "^12.1.1", + "@commitlint/types": "^12.1.1" } }, "@commitlint/to-lines": { - "version": "12.0.1", - "resolved": "https://registry.npmjs.org/@commitlint/to-lines/-/to-lines-12.0.1.tgz", - "integrity": "sha512-XwcJ1jY7x2fhudzbGMpNQkTSMVrxWrI8bRMbVe3Abuu7RfYpFf7VXAlhtnLfxBoagaK7RxjC2+eRidp/3txQBg==", + "version": "12.1.1", + "resolved": "https://registry.npmjs.org/@commitlint/to-lines/-/to-lines-12.1.1.tgz", + "integrity": "sha512-W23AH2XF5rI27MOAPSSr0TUDoRe7ZbFoRtYhFnPu2MBmcuDA9Tmfd9N5sM2tBXtdE26uq3SazwKqGt1OoGAilQ==", "dev": true }, "@commitlint/top-level": { - "version": "12.0.1", - "resolved": "https://registry.npmjs.org/@commitlint/top-level/-/top-level-12.0.1.tgz", - "integrity": "sha512-rHdgt7U24GEau2/9i2vEAbksxkBRiVjHj5ECFL5dd0AJOIvaK++vMg4EF/ME0X/1yd9qVTHTNOl2Q4tTFK7VBQ==", + "version": "12.1.1", + "resolved": "https://registry.npmjs.org/@commitlint/top-level/-/top-level-12.1.1.tgz", + "integrity": "sha512-g7uRbr81QEIg+pbii0OkE17Zh/2C/f6dSmiMDVRn1S0+hNHR1bENCh18hVUKcV/qKTUsKkFlhhWXM9mQBfxQJw==", "dev": true, "requires": { "find-up": "^5.0.0" } }, "@commitlint/types": { - "version": "12.0.1", - "resolved": "https://registry.npmjs.org/@commitlint/types/-/types-12.0.1.tgz", - "integrity": "sha512-FsNDMV0W7D19/ZbR412klpqAilXASx75Neqh7jPtK278IEwdukOg3vth1r5kTm+BjDScM7wMUEOwIW3NNfAtwg==", + "version": "12.1.1", + "resolved": "https://registry.npmjs.org/@commitlint/types/-/types-12.1.1.tgz", + "integrity": "sha512-+qGH+s2Lo6qwacV2X3/ZypZwaAI84ift+1HBjXdXtI/q0F5NtmXucV3lcQOTviMTNiJhq4qWON2fjci2NItASw==", "dev": true, "requires": { "chalk": "^4.0.0" @@ -20254,9 +20276,9 @@ } }, "chalk": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.0.tgz", - "integrity": "sha512-qwx12AxXe2Q5xQ43Ac//I6v5aXTipYrSESdOgzrN+9XjgEpyjpKuvSGaN4qE93f7TQTlerQQ8S+EQ0EyDoVL1A==", + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.1.tgz", + "integrity": "sha512-diHzdDKxcU+bAsUboHLPEDQiw0qEe0qd7SYUn3HgcFlWgbDcfLGswOHYeGrHKzG9z6UYf01d9VFMfZxPM1xZSg==", "dev": true, "requires": { "ansi-styles": "^4.1.0", @@ -20417,9 +20439,9 @@ } }, "chalk": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.0.tgz", - "integrity": "sha512-qwx12AxXe2Q5xQ43Ac//I6v5aXTipYrSESdOgzrN+9XjgEpyjpKuvSGaN4qE93f7TQTlerQQ8S+EQ0EyDoVL1A==", + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.1.tgz", + "integrity": "sha512-diHzdDKxcU+bAsUboHLPEDQiw0qEe0qd7SYUn3HgcFlWgbDcfLGswOHYeGrHKzG9z6UYf01d9VFMfZxPM1xZSg==", "dev": true, "requires": { "ansi-styles": "^4.1.0", @@ -20519,9 +20541,9 @@ } }, "chalk": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.0.tgz", - "integrity": "sha512-qwx12AxXe2Q5xQ43Ac//I6v5aXTipYrSESdOgzrN+9XjgEpyjpKuvSGaN4qE93f7TQTlerQQ8S+EQ0EyDoVL1A==", + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.1.tgz", + "integrity": "sha512-diHzdDKxcU+bAsUboHLPEDQiw0qEe0qd7SYUn3HgcFlWgbDcfLGswOHYeGrHKzG9z6UYf01d9VFMfZxPM1xZSg==", "dev": true, "requires": { "ansi-styles": "^4.1.0", @@ -20565,13 +20587,13 @@ "dev": true }, "micromatch": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.2.tgz", - "integrity": "sha512-y7FpHSbMUMoyPbYUSzO6PaZ6FyRnQOpHuKwbo1G+Knck95XVU4QAiKdGEnj5wwoS7PlOgthX/09u5iFJ+aYf5Q==", + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.4.tgz", + "integrity": "sha512-pRmzw/XUcwXGpD9aI9q/0XOwLNygjETJ8y0ao0wdqprrzDa4YnxLcz7fQRZr8voh8V10kGhABbNcHVk5wHgWwg==", "dev": true, "requires": { "braces": "^3.0.1", - "picomatch": "^2.0.5" + "picomatch": "^2.2.3" } }, "slash": { @@ -20680,9 +20702,9 @@ } }, "chalk": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.0.tgz", - "integrity": "sha512-qwx12AxXe2Q5xQ43Ac//I6v5aXTipYrSESdOgzrN+9XjgEpyjpKuvSGaN4qE93f7TQTlerQQ8S+EQ0EyDoVL1A==", + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.1.tgz", + "integrity": "sha512-diHzdDKxcU+bAsUboHLPEDQiw0qEe0qd7SYUn3HgcFlWgbDcfLGswOHYeGrHKzG9z6UYf01d9VFMfZxPM1xZSg==", "dev": true, "requires": { "ansi-styles": "^4.1.0", @@ -20819,9 +20841,9 @@ } }, "chalk": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.0.tgz", - "integrity": "sha512-qwx12AxXe2Q5xQ43Ac//I6v5aXTipYrSESdOgzrN+9XjgEpyjpKuvSGaN4qE93f7TQTlerQQ8S+EQ0EyDoVL1A==", + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.1.tgz", + "integrity": "sha512-diHzdDKxcU+bAsUboHLPEDQiw0qEe0qd7SYUn3HgcFlWgbDcfLGswOHYeGrHKzG9z6UYf01d9VFMfZxPM1xZSg==", "dev": true, "requires": { "ansi-styles": "^4.1.0", @@ -20865,13 +20887,13 @@ "dev": true }, "micromatch": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.2.tgz", - "integrity": "sha512-y7FpHSbMUMoyPbYUSzO6PaZ6FyRnQOpHuKwbo1G+Knck95XVU4QAiKdGEnj5wwoS7PlOgthX/09u5iFJ+aYf5Q==", + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.4.tgz", + "integrity": "sha512-pRmzw/XUcwXGpD9aI9q/0XOwLNygjETJ8y0ao0wdqprrzDa4YnxLcz7fQRZr8voh8V10kGhABbNcHVk5wHgWwg==", "dev": true, "requires": { "braces": "^3.0.1", - "picomatch": "^2.0.5" + "picomatch": "^2.2.3" } }, "slash": { @@ -20929,9 +20951,9 @@ } }, "chalk": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.0.tgz", - "integrity": "sha512-qwx12AxXe2Q5xQ43Ac//I6v5aXTipYrSESdOgzrN+9XjgEpyjpKuvSGaN4qE93f7TQTlerQQ8S+EQ0EyDoVL1A==", + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.1.tgz", + "integrity": "sha512-diHzdDKxcU+bAsUboHLPEDQiw0qEe0qd7SYUn3HgcFlWgbDcfLGswOHYeGrHKzG9z6UYf01d9VFMfZxPM1xZSg==", "dev": true, "requires": { "ansi-styles": "^4.1.0", @@ -21017,9 +21039,9 @@ } }, "@sinonjs/commons": { - "version": "1.8.2", - "resolved": "https://registry.npmjs.org/@sinonjs/commons/-/commons-1.8.2.tgz", - "integrity": "sha512-sruwd86RJHdsVf/AtBoijDmUqJp3B6hF/DGC23C+JaegnDHaZyewCjoVGTdg3J0uz3Zs7NnIT05OBOmML72lQw==", + "version": "1.8.3", + "resolved": "https://registry.npmjs.org/@sinonjs/commons/-/commons-1.8.3.tgz", + "integrity": "sha512-xkNcLAn/wZaX14RPlwizcKicDk9G3F8m2nU3L7Ukm5zBgTwiT0wsoFAHx9Jq56fJA1z/7uKGtCRu16sOUCLIHQ==", "dev": true, "requires": { "type-detect": "4.0.8" @@ -21076,9 +21098,9 @@ } }, "@types/eslint": { - "version": "7.2.9", - "resolved": "https://registry.npmjs.org/@types/eslint/-/eslint-7.2.9.tgz", - "integrity": "sha512-SdAAXZNvWfhtf3X3y1cbbCZhP3xyPh7mfTvzV6CgfWc/ZhiHpyr9bVroe2/RCHIf7gczaNcprhaBLsx0CCJHQA==", + "version": "7.2.10", + "resolved": "https://registry.npmjs.org/@types/eslint/-/eslint-7.2.10.tgz", + "integrity": "sha512-kUEPnMKrqbtpCq/KTaGFFKAcz6Ethm2EjCoKIDaCmfRBWLbFuTcOJfTlorwbnboXBzahqWLgUp1BQeKHiJzPUQ==", "dev": true, "requires": { "@types/estree": "*", @@ -21096,9 +21118,9 @@ } }, "@types/estree": { - "version": "0.0.46", - "resolved": "https://registry.npmjs.org/@types/estree/-/estree-0.0.46.tgz", - "integrity": "sha512-laIjwTQaD+5DukBZaygQ79K1Z0jb1bPEMRrkXSLjtCcZm+abyp5YbrqpSLzD42FwWW6gK/aS4NYpJ804nG2brg==", + "version": "0.0.47", + "resolved": "https://registry.npmjs.org/@types/estree/-/estree-0.0.47.tgz", + "integrity": "sha512-c5ciR06jK8u9BstrmJyO97m+klJrrhCf9u3rLu3DEAJBirxRqSCvDQoYKmxuYwQI5SZChAWu+tq9oVlGRuzPAg==", "dev": true }, "@types/glob": { @@ -21156,9 +21178,9 @@ "dev": true }, "@types/minimatch": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/@types/minimatch/-/minimatch-3.0.3.tgz", - "integrity": "sha512-tHq6qdbT9U1IRSGf14CL0pUlULksvY9OZ+5eEgl1N7t+OA3tGvNpxJCzuKQlsNgCVwbAs670L1vcVQi8j9HjnA==", + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/@types/minimatch/-/minimatch-3.0.4.tgz", + "integrity": "sha512-1z8k4wzFnNjVK/tlxvrWuK5WMt6mydWWP7+zvH5eFep4oj+UkrfiJTRtjCeBXNpwaA/FYqqtb4/QS4ianFpIRA==", "dev": true }, "@types/minimist": { @@ -21168,9 +21190,9 @@ "dev": true }, "@types/node": { - "version": "14.14.35", - "resolved": "https://registry.npmjs.org/@types/node/-/node-14.14.35.tgz", - "integrity": "sha512-Lt+wj8NVPx0zUmUwumiVXapmaLUcAk3yPuHCFVXras9k5VT9TdhJqKqGVUQCD60OTMCl0qxJ57OiTL0Mic3Iag==", + "version": "15.0.1", + "resolved": "https://registry.npmjs.org/@types/node/-/node-15.0.1.tgz", + "integrity": "sha512-TMkXt0Ck1y0KKsGr9gJtWGjttxlZnnvDtphxUOSd0bfaR6Q1jle+sPvrzNR1urqYTWMinoKvjKfXUGsumaO1PA==", "dev": true }, "@types/normalize-package-data": { @@ -21359,25 +21381,25 @@ } }, "@webpack-cli/configtest": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@webpack-cli/configtest/-/configtest-1.0.1.tgz", - "integrity": "sha512-B+4uBUYhpzDXmwuo3V9yBH6cISwxEI4J+NO5ggDaGEEHb0osY/R7MzeKc0bHURXQuZjMM4qD+bSJCKIuI3eNBQ==", + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/@webpack-cli/configtest/-/configtest-1.0.2.tgz", + "integrity": "sha512-3OBzV2fBGZ5TBfdW50cha1lHDVf9vlvRXnjpVbJBa20pSZQaSkMJZiwA8V2vD9ogyeXn8nU5s5A6mHyf5jhMzA==", "dev": true, "requires": {} }, "@webpack-cli/info": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/@webpack-cli/info/-/info-1.2.2.tgz", - "integrity": "sha512-5U9kUJHnwU+FhKH4PWGZuBC1hTEPYyxGSL5jjoBI96Gx8qcYJGOikpiIpFoTq8mmgX3im2zAo2wanv/alD74KQ==", + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/@webpack-cli/info/-/info-1.2.3.tgz", + "integrity": "sha512-lLek3/T7u40lTqzCGpC6CAbY6+vXhdhmwFRxZLMnRm6/sIF/7qMpT8MocXCRQfz0JAh63wpbXLMnsQ5162WS7Q==", "dev": true, "requires": { "envinfo": "^7.7.3" } }, "@webpack-cli/serve": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/@webpack-cli/serve/-/serve-1.3.0.tgz", - "integrity": "sha512-k2p2VrONcYVX1wRRrf0f3X2VGltLWcv+JzXRBDmvCxGlCeESx4OXw91TsWeKOkp784uNoVQo313vxJFHXPPwfw==", + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/@webpack-cli/serve/-/serve-1.3.1.tgz", + "integrity": "sha512-0qXvpeYO6vaNoRBI52/UsbcaBydJCggoBBnIo/ovQQdn6fug0BgwsjorV1hVS7fMqGVTZGcVxv8334gjmbj5hw==", "dev": true, "requires": {} }, @@ -21506,12 +21528,12 @@ "dev": true }, "ansi-escapes": { - "version": "4.3.1", - "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.1.tgz", - "integrity": "sha512-JWF7ocqNrp8u9oqpgV+wH5ftbt+cfvv+PTjOvKLT3AdYly/LmORARfEVT1iyjwN+4MqE5UmVKoAdIBqeoCHgLA==", + "version": "4.3.2", + "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.2.tgz", + "integrity": "sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==", "dev": true, "requires": { - "type-fest": "^0.11.0" + "type-fest": "^0.21.3" } }, "ansi-html": { @@ -21777,9 +21799,9 @@ } }, "chalk": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.0.tgz", - "integrity": "sha512-qwx12AxXe2Q5xQ43Ac//I6v5aXTipYrSESdOgzrN+9XjgEpyjpKuvSGaN4qE93f7TQTlerQQ8S+EQ0EyDoVL1A==", + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.1.tgz", + "integrity": "sha512-diHzdDKxcU+bAsUboHLPEDQiw0qEe0qd7SYUn3HgcFlWgbDcfLGswOHYeGrHKzG9z6UYf01d9VFMfZxPM1xZSg==", "dev": true, "requires": { "ansi-styles": "^4.1.0", @@ -21859,33 +21881,33 @@ } }, "babel-plugin-polyfill-corejs2": { - "version": "0.1.10", - "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.1.10.tgz", - "integrity": "sha512-DO95wD4g0A8KRaHKi0D51NdGXzvpqVLnLu5BTvDlpqUEpTmeEtypgC1xqesORaWmiUOQI14UHKlzNd9iZ2G3ZA==", + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.2.0.tgz", + "integrity": "sha512-9bNwiR0dS881c5SHnzCmmGlMkJLl0OUZvxrxHo9w/iNoRuqaPjqlvBf4HrovXtQs/au5yKkpcdgfT1cC5PAZwg==", "dev": true, "requires": { - "@babel/compat-data": "^7.13.0", - "@babel/helper-define-polyfill-provider": "^0.1.5", + "@babel/compat-data": "^7.13.11", + "@babel/helper-define-polyfill-provider": "^0.2.0", "semver": "^6.1.1" } }, "babel-plugin-polyfill-corejs3": { - "version": "0.1.7", - "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.1.7.tgz", - "integrity": "sha512-u+gbS9bbPhZWEeyy1oR/YaaSpod/KDT07arZHb80aTpl8H5ZBq+uN1nN9/xtX7jQyfLdPfoqI4Rue/MQSWJquw==", + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.2.0.tgz", + "integrity": "sha512-zZyi7p3BCUyzNxLx8KV61zTINkkV65zVkDAFNZmrTCRVhjo1jAS+YLvDJ9Jgd/w2tsAviCwFHReYfxO3Iql8Yg==", "dev": true, "requires": { - "@babel/helper-define-polyfill-provider": "^0.1.5", - "core-js-compat": "^3.8.1" + "@babel/helper-define-polyfill-provider": "^0.2.0", + "core-js-compat": "^3.9.1" } }, "babel-plugin-polyfill-regenerator": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.1.6.tgz", - "integrity": "sha512-OUrYG9iKPKz8NxswXbRAdSwF0GhRdIEMTloQATJi4bDuFqrXaXcCUT/VGNrr8pBcjMh1RxZ7Xt9cytVJTJfvMg==", + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.2.0.tgz", + "integrity": "sha512-J7vKbCuD2Xi/eEHxquHN14bXAW9CXtecwuLrOIDJtcZzTaPzV1VdEfoUf9AzcRBMolKUQKM9/GVojeh0hFiqMg==", "dev": true, "requires": { - "@babel/helper-define-polyfill-provider": "^0.1.5" + "@babel/helper-define-polyfill-provider": "^0.2.0" } }, "babel-preset-current-node-syntax": { @@ -21919,9 +21941,9 @@ } }, "balanced-match": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz", - "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=", + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", + "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", "dev": true }, "base": { @@ -22095,16 +22117,16 @@ "dev": true }, "browserslist": { - "version": "4.16.3", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.16.3.tgz", - "integrity": "sha512-vIyhWmIkULaq04Gt93txdh+j02yX/JzlyhLYbV3YQCn/zvES3JnY7TifHHvvr1w5hTDluNKMkV05cs4vy8Q7sw==", + "version": "4.16.5", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.16.5.tgz", + "integrity": "sha512-C2HAjrM1AI/djrpAUU/tr4pml1DqLIzJKSLDBXBrNErl9ZCCTXdhwxdJjYc16953+mBWf7Lw+uUJgpgb8cN71A==", "dev": true, "requires": { - "caniuse-lite": "^1.0.30001181", - "colorette": "^1.2.1", - "electron-to-chromium": "^1.3.649", + "caniuse-lite": "^1.0.30001214", + "colorette": "^1.2.2", + "electron-to-chromium": "^1.3.719", "escalade": "^3.1.1", - "node-releases": "^1.1.70" + "node-releases": "^1.1.71" } }, "bser": { @@ -22185,9 +22207,9 @@ } }, "caniuse-lite": { - "version": "1.0.30001204", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001204.tgz", - "integrity": "sha512-JUdjWpcxfJ9IPamy2f5JaRDCaqJOxDzOSKtbdx4rH9VivMd1vIzoPumsJa9LoMIi4Fx2BV2KZOxWhNkBjaYivQ==", + "version": "1.0.30001219", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001219.tgz", + "integrity": "sha512-c0yixVG4v9KBc/tQ2rlbB3A/bgBFRvl8h8M4IeUbqCca4gsiCfvtaheUssbnux/Mb66Vjz7x8yYjDgYcNQOhyQ==", "dev": true }, "caporal": { @@ -22257,9 +22279,9 @@ }, "dependencies": { "anymatch": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.1.tgz", - "integrity": "sha512-mM8522psRCqzV+6LhomX5wgp25YVibjh8Wj23I5RPkPppSVSjyKD2A2mBJmWGa+KN7f2D6LNh9jkBCeyLktzjg==", + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.2.tgz", + "integrity": "sha512-P43ePfOAIupkguHUycrc4qJ9kz8ZiuOUijaETwX7THt0Y/GNK7v0aa8rY816xWjZ7rJdA5XdMcpVFTKMq+RvWg==", "dev": true, "optional": true, "requires": { @@ -22344,13 +22366,10 @@ } }, "chrome-trace-event": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/chrome-trace-event/-/chrome-trace-event-1.0.2.tgz", - "integrity": "sha512-9e/zx1jw7B4CO+c/RXoCsfg/x1AfUBioy4owYH0bJprEYAx5hRFLRhWBqHAG57D0ZM4H7vxbP7bPe0VwhQRYDQ==", - "dev": true, - "requires": { - "tslib": "^1.9.0" - } + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/chrome-trace-event/-/chrome-trace-event-1.0.3.tgz", + "integrity": "sha512-p3KULyQg4S7NIHixdwbGX+nFHkoBiA4YQmyWtjb8XngSKV124nJmRysgAeujbUVb15vh+RvFUfCPqU7rXk+hZg==", + "dev": true }, "ci-info": { "version": "2.0.0", @@ -22994,12 +23013,12 @@ "dev": true }, "core-js-compat": { - "version": "3.9.1", - "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.9.1.tgz", - "integrity": "sha512-jXAirMQxrkbiiLsCx9bQPJFA6llDadKMpYrBJQJ3/c4/vsPP/fAf29h24tviRlvwUL6AmY5CHLu2GvjuYviQqA==", + "version": "3.11.0", + "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.11.0.tgz", + "integrity": "sha512-3wsN9YZJohOSDCjVB0GequOyHax8zFiogSX3XWLE28M1Ew7dTU57tgHjIylSBKSIouwmLBp3g61sKMz/q3xEGA==", "dev": true, "requires": { - "browserslist": "^4.16.3", + "browserslist": "^4.16.4", "semver": "7.0.0" }, "dependencies": { @@ -23051,23 +23070,22 @@ } }, "css-loader": { - "version": "5.1.3", - "resolved": "https://registry.npmjs.org/css-loader/-/css-loader-5.1.3.tgz", - "integrity": "sha512-CoPZvyh8sLiGARK3gqczpfdedbM74klGWurF2CsNZ2lhNaXdLIUks+3Mfax3WBeRuHoglU+m7KG/+7gY6G4aag==", + "version": "5.2.4", + "resolved": "https://registry.npmjs.org/css-loader/-/css-loader-5.2.4.tgz", + "integrity": "sha512-OFYGyINCKkdQsTrSYxzGSFnGS4gNjcXkKkQgWxK138jgnPt+lepxdjSZNc8sHAl5vP3DhsJUxufWIjOwI8PMMw==", "dev": true, "requires": { "camelcase": "^6.2.0", - "cssesc": "^3.0.0", "icss-utils": "^5.1.0", "loader-utils": "^2.0.0", - "postcss": "^8.2.8", + "postcss": "^8.2.10", "postcss-modules-extract-imports": "^3.0.0", "postcss-modules-local-by-default": "^4.0.0", "postcss-modules-scope": "^3.0.0", "postcss-modules-values": "^4.0.0", "postcss-value-parser": "^4.1.0", "schema-utils": "^3.0.0", - "semver": "^7.3.4" + "semver": "^7.3.5" }, "dependencies": { "camelcase": { @@ -23077,9 +23095,9 @@ "dev": true }, "semver": { - "version": "7.3.4", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.4.tgz", - "integrity": "sha512-tCfb2WLjqFAtXn4KEdxIhalnRtoKFN7nAwj0B3ZXCbQloV2tq5eDbcTmT68JJD3nRJq24/XgxtQKFIpQdtvmVw==", + "version": "7.3.5", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.5.tgz", + "integrity": "sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==", "dev": true, "requires": { "lru-cache": "^6.0.0" @@ -23436,9 +23454,9 @@ } }, "hosted-git-info": { - "version": "2.8.8", - "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.8.tgz", - "integrity": "sha512-f/wzC2QaWBs7t9IYqB4T3sR1xviIViXJRJTWBlx2Gf3g0Xi5vI7Yy4koXQ1c9OYDGHN9sBy1DQ2AB8fqZBWhUg==", + "version": "2.8.9", + "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.9.tgz", + "integrity": "sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw==", "dev": true }, "ignore": { @@ -23772,9 +23790,9 @@ "dev": true }, "electron-to-chromium": { - "version": "1.3.693", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.693.tgz", - "integrity": "sha512-vUdsE8yyeu30RecppQtI+XTz2++LWLVEIYmzeCaCRLSdtKZ2eXqdJcrs85KwLiPOPVc6PELgWyXBsfqIvzGZag==", + "version": "1.3.723", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.723.tgz", + "integrity": "sha512-L+WXyXI7c7+G1V8ANzRsPI5giiimLAUDC6Zs1ojHHPhYXb3k/iTABFmWjivEtsWrRQymjnO66/rO2ZTABGdmWg==", "dev": true }, "emittery": { @@ -23810,9 +23828,9 @@ } }, "enhanced-resolve": { - "version": "5.7.0", - "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.7.0.tgz", - "integrity": "sha512-6njwt/NsZFUKhM6j9U8hzVyD4E4r0x7NQzhTCbcWOJ0IQjNSAoalWmb0AE51Wn+fwan5qVESWi7t2ToBxs9vrw==", + "version": "5.8.0", + "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.8.0.tgz", + "integrity": "sha512-Sl3KRpJA8OpprrtaIswVki3cWPiPKxXuFxJXBp+zNb6s6VwNWwFRUdtmzd2ReUut8n+sCPx7QCtQ7w5wfJhSgQ==", "dev": true, "requires": { "graceful-fs": "^4.2.4", @@ -23829,9 +23847,9 @@ } }, "envinfo": { - "version": "7.7.4", - "resolved": "https://registry.npmjs.org/envinfo/-/envinfo-7.7.4.tgz", - "integrity": "sha512-TQXTYFVVwwluWSFis6K2XKxgrD22jEv0FTuLCQI+OjH7rn93+iY0fSSFM5lrSxFY+H1+B0/cvvlamr3UsBivdQ==", + "version": "7.8.1", + "resolved": "https://registry.npmjs.org/envinfo/-/envinfo-7.8.1.tgz", + "integrity": "sha512-/o+BXHmB7ocbHEAs6F2EnG0ogybVVUdkRunTT2glZU9XAaGmhqskrvKwqXuDfNjEO0LZKWdejEEpnq8aM0tOaw==", "dev": true }, "errno": { @@ -23990,9 +24008,9 @@ } }, "eslint": { - "version": "7.22.0", - "resolved": "https://registry.npmjs.org/eslint/-/eslint-7.22.0.tgz", - "integrity": "sha512-3VawOtjSJUQiiqac8MQc+w457iGLfuNGLFn8JmF051tTKbh5/x/0vlcEj8OgDCaw7Ysa2Jn8paGshV7x2abKXg==", + "version": "7.25.0", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-7.25.0.tgz", + "integrity": "sha512-TVpSovpvCNpLURIScDRB6g5CYu/ZFq9GfX2hLNIV4dSBKxIWojeDODvYl3t0k0VtMxYeR8OXPCFE5+oHMlGfhw==", "dev": true, "requires": { "@babel/code-frame": "7.12.11", @@ -24053,9 +24071,9 @@ } }, "chalk": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.0.tgz", - "integrity": "sha512-qwx12AxXe2Q5xQ43Ac//I6v5aXTipYrSESdOgzrN+9XjgEpyjpKuvSGaN4qE93f7TQTlerQQ8S+EQ0EyDoVL1A==", + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.1.tgz", + "integrity": "sha512-diHzdDKxcU+bAsUboHLPEDQiw0qEe0qd7SYUn3HgcFlWgbDcfLGswOHYeGrHKzG9z6UYf01d9VFMfZxPM1xZSg==", "dev": true, "requires": { "ansi-styles": "^4.1.0", @@ -24093,9 +24111,9 @@ } }, "globals": { - "version": "13.7.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-13.7.0.tgz", - "integrity": "sha512-Aipsz6ZKRxa/xQkZhNg0qIWXT6x6rD46f6x/PCnBomlttdIyAPak4YD9jTmKpZ72uROSMU87qJtcgpgHaVchiA==", + "version": "13.8.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-13.8.0.tgz", + "integrity": "sha512-rHtdA6+PDBIjeEvA91rpqzEvk/k3/i7EeNQiryiWuJH0Hw9cpyJMAt2jtbAwUaRdhD+573X4vWw6IcjKPasi9Q==", "dev": true, "requires": { "type-fest": "^0.20.2" @@ -24108,9 +24126,9 @@ "dev": true }, "semver": { - "version": "7.3.4", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.4.tgz", - "integrity": "sha512-tCfb2WLjqFAtXn4KEdxIhalnRtoKFN7nAwj0B3ZXCbQloV2tq5eDbcTmT68JJD3nRJq24/XgxtQKFIpQdtvmVw==", + "version": "7.3.5", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.5.tgz", + "integrity": "sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==", "dev": true, "requires": { "lru-cache": "^6.0.0" @@ -24134,9 +24152,9 @@ } }, "eslint-config-prettier": { - "version": "8.1.0", - "resolved": "https://registry.npmjs.org/eslint-config-prettier/-/eslint-config-prettier-8.1.0.tgz", - "integrity": "sha512-oKMhGv3ihGbCIimCAjqkdzx2Q+jthoqnXSP+d86M9tptwugycmTFdVR4IpLgq2c4SHifbwO90z2fQ8/Aio73yw==", + "version": "8.3.0", + "resolved": "https://registry.npmjs.org/eslint-config-prettier/-/eslint-config-prettier-8.3.0.tgz", + "integrity": "sha512-BgZuLUSeKzvlL/VUjx/Yb787VQ26RU3gGjA3iiFvdsp/2bMfVIWUVP7tjxtjS0e+HP409cPlPvNkQloz8C91ew==", "dev": true, "requires": {} }, @@ -24366,9 +24384,9 @@ } }, "exec-sh": { - "version": "0.3.5", - "resolved": "https://registry.npmjs.org/exec-sh/-/exec-sh-0.3.5.tgz", - "integrity": "sha512-0hzpaUazv4mEccxdn3TXC+HWNeVXNKMCJRK6E7Xyg+LwGAYI3yFag6jTkd4injV+kChYDQS1ftqDhnDVWNhU8A==", + "version": "0.3.6", + "resolved": "https://registry.npmjs.org/exec-sh/-/exec-sh-0.3.6.tgz", + "integrity": "sha512-nQn+hI3yp+oD0huYhKwvYI32+JFeq+XkNcD1GAo3Y/MjxsfVGmrrzrnzjWiNY6f+pUCP440fThsFh5gZrRAU/w==", "dev": true }, "execa": { @@ -24703,13 +24721,13 @@ "dev": true }, "micromatch": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.2.tgz", - "integrity": "sha512-y7FpHSbMUMoyPbYUSzO6PaZ6FyRnQOpHuKwbo1G+Knck95XVU4QAiKdGEnj5wwoS7PlOgthX/09u5iFJ+aYf5Q==", + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.4.tgz", + "integrity": "sha512-pRmzw/XUcwXGpD9aI9q/0XOwLNygjETJ8y0ao0wdqprrzDa4YnxLcz7fQRZr8voh8V10kGhABbNcHVk5wHgWwg==", "dev": true, "requires": { "braces": "^3.0.1", - "picomatch": "^2.0.5" + "picomatch": "^2.2.3" } }, "to-regex-range": { @@ -24873,9 +24891,9 @@ "dev": true }, "follow-redirects": { - "version": "1.13.3", - "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.13.3.tgz", - "integrity": "sha512-DUgl6+HDzB0iEptNQEXLx/KhTmDb8tZUHSeLqpnjpknR70H0nC2t9N73BK6fN4hOvJ84pKlIQVQ4k5FFlBedKA==", + "version": "1.14.0", + "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.14.0.tgz", + "integrity": "sha512-0vRwd7RKQBTt+mgu87mtYeofLFZpTas2S9zY+jIeuLJMNvudIgF52nr19q40HOwH5RrhWIPuj9puybzSJiRrVg==", "dev": true }, "for-in": { @@ -24944,9 +24962,9 @@ } }, "fs-monkey": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/fs-monkey/-/fs-monkey-1.0.1.tgz", - "integrity": "sha512-fcSa+wyTqZa46iWweI7/ZiUfegOZl0SG8+dltIwFXo7+zYU9J9kpS3NB6pZcSlJdhvIwp81Adx2XhZorncxiaA==", + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/fs-monkey/-/fs-monkey-1.0.3.tgz", + "integrity": "sha512-cybjIfiiE+pTWicSCLFHSrXZ6EilF30oh91FDP9S2B051prEa7QWfrVTQm10/dDpswBDXZugPa1Ogu8Yh+HV0Q==", "dev": true }, "fs-readdir-recursive": { @@ -25074,9 +25092,9 @@ "dev": true }, "hosted-git-info": { - "version": "2.8.8", - "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.8.tgz", - "integrity": "sha512-f/wzC2QaWBs7t9IYqB4T3sR1xviIViXJRJTWBlx2Gf3g0Xi5vI7Yy4koXQ1c9OYDGHN9sBy1DQ2AB8fqZBWhUg==", + "version": "2.8.9", + "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.9.tgz", + "integrity": "sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw==", "dev": true }, "indent-string": { @@ -25554,9 +25572,9 @@ } }, "hosted-git-info": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-4.0.1.tgz", - "integrity": "sha512-eT7NrxAsppPRQEBSwKSosReE+v8OzABwEScQYk5d4uxaEPlzxTIku7LINXtBGalthkLhJnq5lBI89PfK43zAKg==", + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-4.0.2.tgz", + "integrity": "sha512-c9OGXbZ3guC/xOlCg1Ci/VgWlwsqDv1yMQL1CWqXDL0hDjXuNcq0zuR4xqPSuasI3kqFDhqSyTjREz5gzq0fXg==", "dev": true, "requires": { "lru-cache": "^6.0.0" @@ -25784,12 +25802,6 @@ "integrity": "sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==", "dev": true }, - "indexes-of": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/indexes-of/-/indexes-of-1.0.1.tgz", - "integrity": "sha1-8w9xbI4r00bHtn0985FVZqfAVgc=", - "dev": true - }, "inflight": { "version": "1.0.6", "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", @@ -26055,9 +26067,9 @@ } }, "is-core-module": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.2.0.tgz", - "integrity": "sha512-XRAfAdyyY5F5cOXn7hYQDqh2Xmii+DEfIcQGxK/uNwMHhIkPWO0g8msXcbzLe+MpGoR951MlqM/2iIlU4vKDdQ==", + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.3.0.tgz", + "integrity": "sha512-xSphU2KG9867tsYdLD4RWQ1VqdFl4HTO9Thf3I/3dLEfr0dbPTWKsuCKrgqMljg4nPE+Gq0VCnzT3gr0CyBmsw==", "dev": true, "requires": { "has": "^1.0.3" @@ -26106,9 +26118,9 @@ } }, "is-docker": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/is-docker/-/is-docker-2.1.1.tgz", - "integrity": "sha512-ZOoqiXfEwtGknTiuDEy8pN2CfE3TxMHprvNer1mXiqwkOT77Rw3YVrUQ52EqAOU3QAWDQ+bQdx7HJzrv7LS2Hw==", + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/is-docker/-/is-docker-2.2.1.tgz", + "integrity": "sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ==", "dev": true, "optional": true }, @@ -26226,9 +26238,9 @@ } }, "is-potential-custom-element-name": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-potential-custom-element-name/-/is-potential-custom-element-name-1.0.0.tgz", - "integrity": "sha1-DFLlS8yjkbssSUsh6GJtczbG45c=", + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-potential-custom-element-name/-/is-potential-custom-element-name-1.0.1.tgz", + "integrity": "sha512-bCYeRA2rVibKZd+s2625gGnGF/t7DSqDs4dP7CrLA1m7jKWz6pps0LpYLJN8Q64HtmPKJ1hrN3nzPNKFEKOUiQ==", "dev": true }, "is-regex": { @@ -26472,9 +26484,9 @@ } }, "chalk": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.0.tgz", - "integrity": "sha512-qwx12AxXe2Q5xQ43Ac//I6v5aXTipYrSESdOgzrN+9XjgEpyjpKuvSGaN4qE93f7TQTlerQQ8S+EQ0EyDoVL1A==", + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.1.tgz", + "integrity": "sha512-diHzdDKxcU+bAsUboHLPEDQiw0qEe0qd7SYUn3HgcFlWgbDcfLGswOHYeGrHKzG9z6UYf01d9VFMfZxPM1xZSg==", "dev": true, "requires": { "ansi-styles": "^4.1.0", @@ -26582,9 +26594,9 @@ } }, "y18n": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.1.tgz", - "integrity": "sha512-wNcy4NvjMYL8gogWWYAO7ZFWFfHcbdbE57tZO8e4cbpj8tfUcwrwqSl3ad8HxpYWCdXcJUCeKKZS62Av1affwQ==", + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.3.tgz", + "integrity": "sha512-JKhqTOwSrqNA1NY5lSztJ1GrBiUodLMmIZuLiDaMRJ+itFd+ABVE8XBjOvIWL+rSqNDC74LCSFmlb/U4UZ4hJQ==", "dev": true }, "yargs": { @@ -26663,9 +26675,9 @@ } }, "chalk": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.0.tgz", - "integrity": "sha512-qwx12AxXe2Q5xQ43Ac//I6v5aXTipYrSESdOgzrN+9XjgEpyjpKuvSGaN4qE93f7TQTlerQQ8S+EQ0EyDoVL1A==", + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.1.tgz", + "integrity": "sha512-diHzdDKxcU+bAsUboHLPEDQiw0qEe0qd7SYUn3HgcFlWgbDcfLGswOHYeGrHKzG9z6UYf01d9VFMfZxPM1xZSg==", "dev": true, "requires": { "ansi-styles": "^4.1.0", @@ -26709,13 +26721,13 @@ "dev": true }, "micromatch": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.2.tgz", - "integrity": "sha512-y7FpHSbMUMoyPbYUSzO6PaZ6FyRnQOpHuKwbo1G+Knck95XVU4QAiKdGEnj5wwoS7PlOgthX/09u5iFJ+aYf5Q==", + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.4.tgz", + "integrity": "sha512-pRmzw/XUcwXGpD9aI9q/0XOwLNygjETJ8y0ao0wdqprrzDa4YnxLcz7fQRZr8voh8V10kGhABbNcHVk5wHgWwg==", "dev": true, "requires": { "braces": "^3.0.1", - "picomatch": "^2.0.5" + "picomatch": "^2.2.3" } }, "supports-color": { @@ -26760,9 +26772,9 @@ } }, "chalk": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.0.tgz", - "integrity": "sha512-qwx12AxXe2Q5xQ43Ac//I6v5aXTipYrSESdOgzrN+9XjgEpyjpKuvSGaN4qE93f7TQTlerQQ8S+EQ0EyDoVL1A==", + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.1.tgz", + "integrity": "sha512-diHzdDKxcU+bAsUboHLPEDQiw0qEe0qd7SYUn3HgcFlWgbDcfLGswOHYeGrHKzG9z6UYf01d9VFMfZxPM1xZSg==", "dev": true, "requires": { "ansi-styles": "^4.1.0", @@ -26833,9 +26845,9 @@ } }, "chalk": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.0.tgz", - "integrity": "sha512-qwx12AxXe2Q5xQ43Ac//I6v5aXTipYrSESdOgzrN+9XjgEpyjpKuvSGaN4qE93f7TQTlerQQ8S+EQ0EyDoVL1A==", + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.1.tgz", + "integrity": "sha512-diHzdDKxcU+bAsUboHLPEDQiw0qEe0qd7SYUn3HgcFlWgbDcfLGswOHYeGrHKzG9z6UYf01d9VFMfZxPM1xZSg==", "dev": true, "requires": { "ansi-styles": "^4.1.0", @@ -26932,9 +26944,9 @@ }, "dependencies": { "anymatch": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.1.tgz", - "integrity": "sha512-mM8522psRCqzV+6LhomX5wgp25YVibjh8Wj23I5RPkPppSVSjyKD2A2mBJmWGa+KN7f2D6LNh9jkBCeyLktzjg==", + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.2.tgz", + "integrity": "sha512-P43ePfOAIupkguHUycrc4qJ9kz8ZiuOUijaETwX7THt0Y/GNK7v0aa8rY816xWjZ7rJdA5XdMcpVFTKMq+RvWg==", "dev": true, "requires": { "normalize-path": "^3.0.0", @@ -26966,13 +26978,13 @@ "dev": true }, "micromatch": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.2.tgz", - "integrity": "sha512-y7FpHSbMUMoyPbYUSzO6PaZ6FyRnQOpHuKwbo1G+Knck95XVU4QAiKdGEnj5wwoS7PlOgthX/09u5iFJ+aYf5Q==", + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.4.tgz", + "integrity": "sha512-pRmzw/XUcwXGpD9aI9q/0XOwLNygjETJ8y0ao0wdqprrzDa4YnxLcz7fQRZr8voh8V10kGhABbNcHVk5wHgWwg==", "dev": true, "requires": { "braces": "^3.0.1", - "picomatch": "^2.0.5" + "picomatch": "^2.2.3" } }, "to-regex-range": { @@ -27022,9 +27034,9 @@ } }, "chalk": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.0.tgz", - "integrity": "sha512-qwx12AxXe2Q5xQ43Ac//I6v5aXTipYrSESdOgzrN+9XjgEpyjpKuvSGaN4qE93f7TQTlerQQ8S+EQ0EyDoVL1A==", + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.1.tgz", + "integrity": "sha512-diHzdDKxcU+bAsUboHLPEDQiw0qEe0qd7SYUn3HgcFlWgbDcfLGswOHYeGrHKzG9z6UYf01d9VFMfZxPM1xZSg==", "dev": true, "requires": { "ansi-styles": "^4.1.0", @@ -27095,9 +27107,9 @@ } }, "chalk": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.0.tgz", - "integrity": "sha512-qwx12AxXe2Q5xQ43Ac//I6v5aXTipYrSESdOgzrN+9XjgEpyjpKuvSGaN4qE93f7TQTlerQQ8S+EQ0EyDoVL1A==", + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.1.tgz", + "integrity": "sha512-diHzdDKxcU+bAsUboHLPEDQiw0qEe0qd7SYUn3HgcFlWgbDcfLGswOHYeGrHKzG9z6UYf01d9VFMfZxPM1xZSg==", "dev": true, "requires": { "ansi-styles": "^4.1.0", @@ -27172,9 +27184,9 @@ } }, "chalk": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.0.tgz", - "integrity": "sha512-qwx12AxXe2Q5xQ43Ac//I6v5aXTipYrSESdOgzrN+9XjgEpyjpKuvSGaN4qE93f7TQTlerQQ8S+EQ0EyDoVL1A==", + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.1.tgz", + "integrity": "sha512-diHzdDKxcU+bAsUboHLPEDQiw0qEe0qd7SYUn3HgcFlWgbDcfLGswOHYeGrHKzG9z6UYf01d9VFMfZxPM1xZSg==", "dev": true, "requires": { "ansi-styles": "^4.1.0", @@ -27218,13 +27230,13 @@ "dev": true }, "micromatch": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.2.tgz", - "integrity": "sha512-y7FpHSbMUMoyPbYUSzO6PaZ6FyRnQOpHuKwbo1G+Knck95XVU4QAiKdGEnj5wwoS7PlOgthX/09u5iFJ+aYf5Q==", + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.4.tgz", + "integrity": "sha512-pRmzw/XUcwXGpD9aI9q/0XOwLNygjETJ8y0ao0wdqprrzDa4YnxLcz7fQRZr8voh8V10kGhABbNcHVk5wHgWwg==", "dev": true, "requires": { "braces": "^3.0.1", - "picomatch": "^2.0.5" + "picomatch": "^2.2.3" } }, "slash": { @@ -27302,9 +27314,9 @@ } }, "chalk": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.0.tgz", - "integrity": "sha512-qwx12AxXe2Q5xQ43Ac//I6v5aXTipYrSESdOgzrN+9XjgEpyjpKuvSGaN4qE93f7TQTlerQQ8S+EQ0EyDoVL1A==", + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.1.tgz", + "integrity": "sha512-diHzdDKxcU+bAsUboHLPEDQiw0qEe0qd7SYUn3HgcFlWgbDcfLGswOHYeGrHKzG9z6UYf01d9VFMfZxPM1xZSg==", "dev": true, "requires": { "ansi-styles": "^4.1.0", @@ -27343,9 +27355,9 @@ "dev": true }, "hosted-git-info": { - "version": "2.8.8", - "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.8.tgz", - "integrity": "sha512-f/wzC2QaWBs7t9IYqB4T3sR1xviIViXJRJTWBlx2Gf3g0Xi5vI7Yy4koXQ1c9OYDGHN9sBy1DQ2AB8fqZBWhUg==", + "version": "2.8.9", + "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.9.tgz", + "integrity": "sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw==", "dev": true }, "locate-path": { @@ -27496,9 +27508,9 @@ } }, "chalk": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.0.tgz", - "integrity": "sha512-qwx12AxXe2Q5xQ43Ac//I6v5aXTipYrSESdOgzrN+9XjgEpyjpKuvSGaN4qE93f7TQTlerQQ8S+EQ0EyDoVL1A==", + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.1.tgz", + "integrity": "sha512-diHzdDKxcU+bAsUboHLPEDQiw0qEe0qd7SYUn3HgcFlWgbDcfLGswOHYeGrHKzG9z6UYf01d9VFMfZxPM1xZSg==", "dev": true, "requires": { "ansi-styles": "^4.1.0", @@ -27582,9 +27594,9 @@ } }, "chalk": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.0.tgz", - "integrity": "sha512-qwx12AxXe2Q5xQ43Ac//I6v5aXTipYrSESdOgzrN+9XjgEpyjpKuvSGaN4qE93f7TQTlerQQ8S+EQ0EyDoVL1A==", + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.1.tgz", + "integrity": "sha512-diHzdDKxcU+bAsUboHLPEDQiw0qEe0qd7SYUn3HgcFlWgbDcfLGswOHYeGrHKzG9z6UYf01d9VFMfZxPM1xZSg==", "dev": true, "requires": { "ansi-styles": "^4.1.0", @@ -27698,9 +27710,9 @@ } }, "y18n": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.1.tgz", - "integrity": "sha512-wNcy4NvjMYL8gogWWYAO7ZFWFfHcbdbE57tZO8e4cbpj8tfUcwrwqSl3ad8HxpYWCdXcJUCeKKZS62Av1affwQ==", + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.3.tgz", + "integrity": "sha512-JKhqTOwSrqNA1NY5lSztJ1GrBiUodLMmIZuLiDaMRJ+itFd+ABVE8XBjOvIWL+rSqNDC74LCSFmlb/U4UZ4hJQ==", "dev": true }, "yargs": { @@ -27778,9 +27790,9 @@ } }, "chalk": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.0.tgz", - "integrity": "sha512-qwx12AxXe2Q5xQ43Ac//I6v5aXTipYrSESdOgzrN+9XjgEpyjpKuvSGaN4qE93f7TQTlerQQ8S+EQ0EyDoVL1A==", + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.1.tgz", + "integrity": "sha512-diHzdDKxcU+bAsUboHLPEDQiw0qEe0qd7SYUn3HgcFlWgbDcfLGswOHYeGrHKzG9z6UYf01d9VFMfZxPM1xZSg==", "dev": true, "requires": { "ansi-styles": "^4.1.0", @@ -27809,9 +27821,9 @@ "dev": true }, "semver": { - "version": "7.3.4", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.4.tgz", - "integrity": "sha512-tCfb2WLjqFAtXn4KEdxIhalnRtoKFN7nAwj0B3ZXCbQloV2tq5eDbcTmT68JJD3nRJq24/XgxtQKFIpQdtvmVw==", + "version": "7.3.5", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.5.tgz", + "integrity": "sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==", "dev": true, "requires": { "lru-cache": "^6.0.0" @@ -27861,9 +27873,9 @@ } }, "chalk": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.0.tgz", - "integrity": "sha512-qwx12AxXe2Q5xQ43Ac//I6v5aXTipYrSESdOgzrN+9XjgEpyjpKuvSGaN4qE93f7TQTlerQQ8S+EQ0EyDoVL1A==", + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.1.tgz", + "integrity": "sha512-diHzdDKxcU+bAsUboHLPEDQiw0qEe0qd7SYUn3HgcFlWgbDcfLGswOHYeGrHKzG9z6UYf01d9VFMfZxPM1xZSg==", "dev": true, "requires": { "ansi-styles": "^4.1.0", @@ -27907,13 +27919,13 @@ "dev": true }, "micromatch": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.2.tgz", - "integrity": "sha512-y7FpHSbMUMoyPbYUSzO6PaZ6FyRnQOpHuKwbo1G+Knck95XVU4QAiKdGEnj5wwoS7PlOgthX/09u5iFJ+aYf5Q==", + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.4.tgz", + "integrity": "sha512-pRmzw/XUcwXGpD9aI9q/0XOwLNygjETJ8y0ao0wdqprrzDa4YnxLcz7fQRZr8voh8V10kGhABbNcHVk5wHgWwg==", "dev": true, "requires": { "braces": "^3.0.1", - "picomatch": "^2.0.5" + "picomatch": "^2.2.3" } }, "supports-color": { @@ -27966,9 +27978,9 @@ "dev": true }, "chalk": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.0.tgz", - "integrity": "sha512-qwx12AxXe2Q5xQ43Ac//I6v5aXTipYrSESdOgzrN+9XjgEpyjpKuvSGaN4qE93f7TQTlerQQ8S+EQ0EyDoVL1A==", + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.1.tgz", + "integrity": "sha512-diHzdDKxcU+bAsUboHLPEDQiw0qEe0qd7SYUn3HgcFlWgbDcfLGswOHYeGrHKzG9z6UYf01d9VFMfZxPM1xZSg==", "dev": true, "requires": { "ansi-styles": "^4.1.0", @@ -28032,9 +28044,9 @@ } }, "chalk": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.0.tgz", - "integrity": "sha512-qwx12AxXe2Q5xQ43Ac//I6v5aXTipYrSESdOgzrN+9XjgEpyjpKuvSGaN4qE93f7TQTlerQQ8S+EQ0EyDoVL1A==", + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.1.tgz", + "integrity": "sha512-diHzdDKxcU+bAsUboHLPEDQiw0qEe0qd7SYUn3HgcFlWgbDcfLGswOHYeGrHKzG9z6UYf01d9VFMfZxPM1xZSg==", "dev": true, "requires": { "ansi-styles": "^4.1.0", @@ -28131,13 +28143,13 @@ "dev": true }, "jsdom": { - "version": "16.5.1", - "resolved": "https://registry.npmjs.org/jsdom/-/jsdom-16.5.1.tgz", - "integrity": "sha512-pF73EOsJgwZekbDHEY5VO/yKXUkab/DuvrQB/ANVizbr6UAHJsDdHXuotZYwkJSGQl1JM+ivXaqY+XBDDL4TiA==", + "version": "16.5.3", + "resolved": "https://registry.npmjs.org/jsdom/-/jsdom-16.5.3.tgz", + "integrity": "sha512-Qj1H+PEvUsOtdPJ056ewXM4UJPCi4hhLA8wpiz9F2YvsRBhuFsXxtrIFAgGBDynQA9isAMGE91PfUYbdMPXuTA==", "dev": true, "requires": { "abab": "^2.0.5", - "acorn": "^8.0.5", + "acorn": "^8.1.0", "acorn-globals": "^6.0.0", "cssom": "^0.4.4", "cssstyle": "^2.3.0", @@ -28159,15 +28171,15 @@ "webidl-conversions": "^6.1.0", "whatwg-encoding": "^1.0.5", "whatwg-mimetype": "^2.3.0", - "whatwg-url": "^8.0.0", + "whatwg-url": "^8.5.0", "ws": "^7.4.4", "xml-name-validator": "^3.0.0" }, "dependencies": { "acorn": { - "version": "8.1.0", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.1.0.tgz", - "integrity": "sha512-LWCF/Wn0nfHOmJ9rzQApGnxnvgfROzGilS8936rqN/lfcYkY9MYZzdMqN+2NJ4SlTc+m5HiSa+kNfDtI64dwUA==", + "version": "8.2.1", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.2.1.tgz", + "integrity": "sha512-z716cpm5TX4uzOzILx8PavOE6C6DKshHDw1aQN52M/yNSqE9s5O8SMfyhCCfCJ3HmTL0NkVOi+8a/55T7YB3bg==", "dev": true } } @@ -28350,9 +28362,9 @@ } }, "chalk": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.0.tgz", - "integrity": "sha512-qwx12AxXe2Q5xQ43Ac//I6v5aXTipYrSESdOgzrN+9XjgEpyjpKuvSGaN4qE93f7TQTlerQQ8S+EQ0EyDoVL1A==", + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.1.tgz", + "integrity": "sha512-diHzdDKxcU+bAsUboHLPEDQiw0qEe0qd7SYUn3HgcFlWgbDcfLGswOHYeGrHKzG9z6UYf01d9VFMfZxPM1xZSg==", "dev": true, "requires": { "ansi-styles": "^4.1.0", @@ -28402,13 +28414,13 @@ "dev": true }, "micromatch": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.2.tgz", - "integrity": "sha512-y7FpHSbMUMoyPbYUSzO6PaZ6FyRnQOpHuKwbo1G+Knck95XVU4QAiKdGEnj5wwoS7PlOgthX/09u5iFJ+aYf5Q==", + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.4.tgz", + "integrity": "sha512-pRmzw/XUcwXGpD9aI9q/0XOwLNygjETJ8y0ao0wdqprrzDa4YnxLcz7fQRZr8voh8V10kGhABbNcHVk5wHgWwg==", "dev": true, "requires": { "braces": "^3.0.1", - "picomatch": "^2.0.5" + "picomatch": "^2.2.3" } }, "supports-color": { @@ -28432,18 +28444,18 @@ } }, "listr2": { - "version": "3.4.3", - "resolved": "https://registry.npmjs.org/listr2/-/listr2-3.4.3.tgz", - "integrity": "sha512-wZmkzNiuinOfwrGqAwTCcPw6aKQGTAMGXwG5xeU1WpDjJNeBA35jGBeWxR3OF+R6Yl5Y3dRG+3vE8t6PDcSNHA==", + "version": "3.8.1", + "resolved": "https://registry.npmjs.org/listr2/-/listr2-3.8.1.tgz", + "integrity": "sha512-75vMLokDIEoZIXp3FE3P7U4yi7BRroZb7Az9+XBq+wGGnvq70QPT+BX41aSrROUMLuVan9l3aAjdeXWgaFyFEw==", "dev": true, "requires": { - "chalk": "^4.1.0", + "chalk": "^4.1.1", "cli-truncate": "^2.1.0", "figures": "^3.2.0", "indent-string": "^4.0.0", "log-update": "^4.0.0", "p-map": "^4.0.0", - "rxjs": "^6.6.6", + "rxjs": "^6.6.7", "through": "^2.3.8", "wrap-ansi": "^7.0.0" }, @@ -28458,9 +28470,9 @@ } }, "chalk": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.0.tgz", - "integrity": "sha512-qwx12AxXe2Q5xQ43Ac//I6v5aXTipYrSESdOgzrN+9XjgEpyjpKuvSGaN4qE93f7TQTlerQQ8S+EQ0EyDoVL1A==", + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.1.tgz", + "integrity": "sha512-diHzdDKxcU+bAsUboHLPEDQiw0qEe0qd7SYUn3HgcFlWgbDcfLGswOHYeGrHKzG9z6UYf01d9VFMfZxPM1xZSg==", "dev": true, "requires": { "ansi-styles": "^4.1.0", @@ -28572,6 +28584,12 @@ "integrity": "sha1-soqmKIorn8ZRA1x3EfZathkDMaY=", "dev": true }, + "lodash.clonedeep": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/lodash.clonedeep/-/lodash.clonedeep-4.5.0.tgz", + "integrity": "sha1-4j8/nE+Pvd6HJSnBBxhXoIblzO8=", + "dev": true + }, "lodash.debounce": { "version": "4.0.8", "resolved": "https://registry.npmjs.org/lodash.debounce/-/lodash.debounce-4.0.8.tgz", @@ -28584,6 +28602,12 @@ "integrity": "sha1-nMtOUF1Ia5FlE0V3KIWi3yf9AXw=", "dev": true }, + "lodash.flatten": { + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/lodash.flatten/-/lodash.flatten-4.4.0.tgz", + "integrity": "sha1-8xwiIlqWMtK7+OSt2+8kCqdlph8=", + "dev": true + }, "lodash.ismatch": { "version": "4.4.0", "resolved": "https://registry.npmjs.org/lodash.ismatch/-/lodash.ismatch-4.4.0.tgz", @@ -28608,10 +28632,10 @@ "integrity": "sha1-0uPuv/DZ05rVD1y9G1KnvOa7YRs=", "dev": true }, - "lodash.sortby": { - "version": "4.7.0", - "resolved": "https://registry.npmjs.org/lodash.sortby/-/lodash.sortby-4.7.0.tgz", - "integrity": "sha1-7dFMgk4sycHgsKG0K7UhBRakJDg=", + "lodash.truncate": { + "version": "4.4.2", + "resolved": "https://registry.npmjs.org/lodash.truncate/-/lodash.truncate-4.4.2.tgz", + "integrity": "sha1-WjUNoLERO4N+z//VgSy+WNbq4ZM=", "dev": true }, "lodash.uniq": { @@ -28640,9 +28664,9 @@ } }, "chalk": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.0.tgz", - "integrity": "sha512-qwx12AxXe2Q5xQ43Ac//I6v5aXTipYrSESdOgzrN+9XjgEpyjpKuvSGaN4qE93f7TQTlerQQ8S+EQ0EyDoVL1A==", + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.1.tgz", + "integrity": "sha512-diHzdDKxcU+bAsUboHLPEDQiw0qEe0qd7SYUn3HgcFlWgbDcfLGswOHYeGrHKzG9z6UYf01d9VFMfZxPM1xZSg==", "dev": true, "requires": { "ansi-styles": "^4.1.0", @@ -28811,9 +28835,9 @@ "dev": true }, "map-obj": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/map-obj/-/map-obj-4.2.0.tgz", - "integrity": "sha512-NAq0fCmZYGz9UFEQyndp7sisrow4GroyGeKluyKC/chuITZsPyOyC1UJZPJlVFImhXdROIP5xqouRLThT3BbpQ==", + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/map-obj/-/map-obj-4.2.1.tgz", + "integrity": "sha512-+WA2/1sPmDj1dlvvJmB5G6JKfY9dpn7EVBUL06+y6PoljPkh+6V1QihwxNkbcGxCRjt2b0F9K0taiCuo7MbdFQ==", "dev": true }, "map-visit": { @@ -28832,12 +28856,12 @@ "dev": true }, "memfs": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/memfs/-/memfs-3.2.0.tgz", - "integrity": "sha512-f/xxz2TpdKv6uDn6GtHee8ivFyxwxmPuXatBb1FBwxYNuVpbM3k/Y1Z+vC0mH/dIXXrukYfe3qe5J32Dfjg93A==", + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/memfs/-/memfs-3.2.2.tgz", + "integrity": "sha512-RE0CwmIM3CEvpcdK3rZ19BC4E6hv9kADkMN5rPduRak58cNArWLi/9jFLsa4rhsjfVxMP3v0jO7FHXq7SvFY5Q==", "dev": true, "requires": { - "fs-monkey": "1.0.1" + "fs-monkey": "1.0.3" } }, "memory-fs": { @@ -28886,9 +28910,9 @@ } }, "hosted-git-info": { - "version": "2.8.8", - "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.8.tgz", - "integrity": "sha512-f/wzC2QaWBs7t9IYqB4T3sR1xviIViXJRJTWBlx2Gf3g0Xi5vI7Yy4koXQ1c9OYDGHN9sBy1DQ2AB8fqZBWhUg==", + "version": "2.8.9", + "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.9.tgz", + "integrity": "sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw==", "dev": true }, "locate-path": { @@ -29071,18 +29095,18 @@ "dev": true }, "mime-db": { - "version": "1.46.0", - "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.46.0.tgz", - "integrity": "sha512-svXaP8UQRZ5K7or+ZmfNhg2xX3yKDMUzqadsSqi4NCH/KomcH75MAMYAGVlvXn4+b/xOPhS3I2uHKRUzvjY7BQ==", + "version": "1.47.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.47.0.tgz", + "integrity": "sha512-QBmA/G2y+IfeS4oktet3qRZ+P5kPhCKRXxXnQEudYqUaEioAU1/Lq2us3D/t1Jfo4hE9REQPrbB7K5sOczJVIw==", "dev": true }, "mime-types": { - "version": "2.1.29", - "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.29.tgz", - "integrity": "sha512-Y/jMt/S5sR9OaqteJtslsFZKWOIIqMACsJSiHghlCAyhf7jfVYjKBmLiX8OgpWeW+fjJ2b+Az69aPFPkUOY6xQ==", + "version": "2.1.30", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.30.tgz", + "integrity": "sha512-crmjA4bLtR8m9qLpHvgxSChT+XoSlZi8J4n/aIdn3z92e/U47Z0V/yl+Wh9W046GgFVAmoNR/fmdbZYcSSIUeg==", "dev": true, "requires": { - "mime-db": "1.46.0" + "mime-db": "1.47.0" } }, "mimic-fn": { @@ -29317,9 +29341,9 @@ }, "dependencies": { "semver": { - "version": "7.3.4", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.4.tgz", - "integrity": "sha512-tCfb2WLjqFAtXn4KEdxIhalnRtoKFN7nAwj0B3ZXCbQloV2tq5eDbcTmT68JJD3nRJq24/XgxtQKFIpQdtvmVw==", + "version": "7.3.5", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.5.tgz", + "integrity": "sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==", "dev": true, "optional": true, "requires": { @@ -29347,9 +29371,9 @@ }, "dependencies": { "semver": { - "version": "7.3.4", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.4.tgz", - "integrity": "sha512-tCfb2WLjqFAtXn4KEdxIhalnRtoKFN7nAwj0B3ZXCbQloV2tq5eDbcTmT68JJD3nRJq24/XgxtQKFIpQdtvmVw==", + "version": "7.3.5", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.5.tgz", + "integrity": "sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==", "dev": true, "requires": { "lru-cache": "^6.0.0" @@ -29541,9 +29565,9 @@ } }, "object-inspect": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.9.0.tgz", - "integrity": "sha512-i3Bp9iTqwhaLZBxGkRfo5ZbE07BQRT7MGu8+nNgwW9ItGp1TzCTw2DLEoWwjClxBjOFI/hWljTAmYGCEwmtnOw==", + "version": "1.10.2", + "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.10.2.tgz", + "integrity": "sha512-gz58rdPpadwztRrPjZE9DZLOABUpTGdcANUgOwBFO1C+HZZhePoP83M65WGDmbpwFYJSWqavbl4SgDn4k8RYTA==", "dev": true }, "object-is": { @@ -29849,9 +29873,9 @@ "dev": true }, "picomatch": { - "version": "2.2.2", - "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.2.2.tgz", - "integrity": "sha512-q0M/9eZHzmr0AulXyPwNfZjtwZ/RBZlbN3K3CErVrk50T2ASYI7Bye0EvekFY3IP1Nt2DHu0re+V2ZHIpMkuWg==", + "version": "2.2.3", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.2.3.tgz", + "integrity": "sha512-KpELjfwcCDUb9PeigTs2mBJzXUPzAuP2oPcA989He8Rte0+YUAjw1JVedDhuTKPkHjSYzMN3npC9luThGYEKdg==", "dev": true }, "pidtree": { @@ -29995,13 +30019,13 @@ "dev": true }, "postcss": { - "version": "8.2.8", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.2.8.tgz", - "integrity": "sha512-1F0Xb2T21xET7oQV9eKuctbM9S7BC0fetoHCc4H13z0PT6haiRLP4T0ZY4XWh7iLP0usgqykT6p9B2RtOf4FPw==", + "version": "8.2.13", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.2.13.tgz", + "integrity": "sha512-FCE5xLH+hjbzRdpbRb1IMCvPv9yZx2QnDarBEYSN0N0HYk+TcXsEhwdFcFb+SRWOKzKGErhIEbBK2ogyLdTtfQ==", "dev": true, "requires": { "colorette": "^1.2.2", - "nanoid": "^3.1.20", + "nanoid": "^3.1.22", "source-map": "^0.6.1" }, "dependencies": { @@ -30050,14 +30074,12 @@ } }, "postcss-selector-parser": { - "version": "6.0.4", - "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.0.4.tgz", - "integrity": "sha512-gjMeXBempyInaBqpp8gODmwZ52WaYsVOsfr4L4lDQ7n3ncD6mEyySiDtgzCT+NYC0mmeOLvtsF8iaEf0YT6dBw==", + "version": "6.0.5", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.0.5.tgz", + "integrity": "sha512-aFYPoYmXbZ1V6HZaSvat08M97A8HqO6Pjz+PiNpw/DhuRrC72XWAdp3hL6wusDCN31sSmcZyMGa2hZEuX+Xfhg==", "dev": true, "requires": { "cssesc": "^3.0.0", - "indexes-of": "^1.0.1", - "uniq": "^1.0.1", "util-deprecate": "^1.0.2" } }, @@ -30140,9 +30162,9 @@ "dev": true }, "prompts": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/prompts/-/prompts-2.4.0.tgz", - "integrity": "sha512-awZAKrk3vN6CroQukBL+R9051a4R3zCZBlJm/HBfrSZ8iTpYix3VX1vU4mveiLpiwmOJT4wokTF9m6HUk4KqWQ==", + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/prompts/-/prompts-2.4.1.tgz", + "integrity": "sha512-EQyfIuO2hPDsX1L/blblV+H7I0knhgAd82cVneCwcdND9B8AuCDuRcBH6yIcG4dFzlOUqbazQqwGjx5xmsNLuQ==", "dev": true, "requires": { "kleur": "^3.0.3", @@ -30258,9 +30280,9 @@ } }, "react-is": { - "version": "17.0.1", - "resolved": "https://registry.npmjs.org/react-is/-/react-is-17.0.1.tgz", - "integrity": "sha512-NAnt2iGDXohE5LI7uBnLnqvLQMtzhkiAOLXTmv+qnF9Ky7xAPcX8Up/xWIhxvLVGJvuLiNc4xQLtuqDRzb4fSA==", + "version": "17.0.2", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-17.0.2.tgz", + "integrity": "sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w==", "dev": true }, "read-pkg": { @@ -30275,9 +30297,9 @@ }, "dependencies": { "hosted-git-info": { - "version": "2.8.8", - "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.8.tgz", - "integrity": "sha512-f/wzC2QaWBs7t9IYqB4T3sR1xviIViXJRJTWBlx2Gf3g0Xi5vI7Yy4koXQ1c9OYDGHN9sBy1DQ2AB8fqZBWhUg==", + "version": "2.8.9", + "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.9.tgz", + "integrity": "sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw==", "dev": true }, "normalize-package-data": { @@ -30335,9 +30357,9 @@ } }, "hosted-git-info": { - "version": "2.8.8", - "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.8.tgz", - "integrity": "sha512-f/wzC2QaWBs7t9IYqB4T3sR1xviIViXJRJTWBlx2Gf3g0Xi5vI7Yy4koXQ1c9OYDGHN9sBy1DQ2AB8fqZBWhUg==", + "version": "2.8.9", + "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.9.tgz", + "integrity": "sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw==", "dev": true }, "load-json-file": { @@ -30596,9 +30618,9 @@ "dev": true }, "regjsparser": { - "version": "0.6.7", - "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.6.7.tgz", - "integrity": "sha512-ib77G0uxsA2ovgiYbCVGx4Pv3PSttAx2vIwidqQzbL2U5S4Q+j00HdSAneSBuyVcMvEnTXMjiGgB+DlXozVhpQ==", + "version": "0.6.9", + "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.6.9.tgz", + "integrity": "sha512-ZqbNRz1SNjLAiYuwY0zoXW8Ne675IX5q+YHioAGbCw4X96Mjl2+dcX9B2ciaeyYjViDAfvIjFpQjJgLttTEERQ==", "dev": true, "requires": { "jsesc": "~0.5.0" @@ -30619,9 +30641,9 @@ "dev": true }, "repeat-element": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/repeat-element/-/repeat-element-1.1.3.tgz", - "integrity": "sha512-ahGq0ZnV5m5XtZLMb+vP76kcAM5nkLqk0lpqAuojSKGgQtn4eRi4ZZGm2olo2zKFH+sMsWaqOCW1dqAnOru72g==", + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/repeat-element/-/repeat-element-1.1.4.tgz", + "integrity": "sha512-LFiNfRcSu7KK3evMyYOuCzv3L10TW7yC1G2/+StMjK8Y6Vqd2MG7r/Qjw4ghtuCOjFvlnms/iMmLqpvW/ES/WQ==", "dev": true }, "repeat-string": { @@ -30846,9 +30868,9 @@ "dev": true }, "rxjs": { - "version": "6.6.6", - "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.6.6.tgz", - "integrity": "sha512-/oTwee4N4iWzAMAL9xdGKjkEHmIwupR3oXbQjCKywF1BeFohswF3vZdogbmEF6pZkOsXTzWkrZszrWpQTByYVg==", + "version": "6.6.7", + "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.6.7.tgz", + "integrity": "sha512-hTdwr+7yYNIT5n4AMYp85KA6yw2Va0FLa3Rguvbpa4W3I5xynaBZo41cM3XM+4Q6fRMj3sBYIR1VAmZMXYJvRQ==", "dev": true, "requires": { "tslib": "^1.9.0" @@ -31416,9 +31438,9 @@ } }, "sockjs-client": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/sockjs-client/-/sockjs-client-1.5.0.tgz", - "integrity": "sha512-8Dt3BDi4FYNrCFGTL/HtwVzkARrENdwOUf1ZoW/9p3M8lZdFT35jVdrHza+qgxuG9H3/shR4cuX/X9umUrjP8Q==", + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/sockjs-client/-/sockjs-client-1.5.1.tgz", + "integrity": "sha512-VnVAb663fosipI/m6pqRXakEOw7nvd7TUgdr3PlR/8V2I95QIdwT8L4nMxhyU8SmDBHYXU1TOElaKOmKLfYzeQ==", "dev": true, "requires": { "debug": "^3.2.6", @@ -31426,7 +31448,7 @@ "faye-websocket": "^0.11.3", "inherits": "^2.0.4", "json3": "^3.3.3", - "url-parse": "^1.4.7" + "url-parse": "^1.5.1" }, "dependencies": { "debug": { @@ -31692,9 +31714,9 @@ } }, "standard-version": { - "version": "9.1.1", - "resolved": "https://registry.npmjs.org/standard-version/-/standard-version-9.1.1.tgz", - "integrity": "sha512-PF9JnRauBwH7DAkmefYu1mB2Kx0MVG13udqDTFmDUiogbyikBAHBdMrVuauxtAb2YIkyZ3FMYCNv0hqUKMOPww==", + "version": "9.2.0", + "resolved": "https://registry.npmjs.org/standard-version/-/standard-version-9.2.0.tgz", + "integrity": "sha512-utJcqjk/wR4sePSwDoRcc5CzJ6S+kec5Hd0+1TJI+j1TRYuuptweAnEUdkkjGf2vYoGab2ezefyVtW065HZ1Uw==", "dev": true, "requires": { "chalk": "^2.4.2", @@ -31715,9 +31737,9 @@ }, "dependencies": { "semver": { - "version": "7.3.4", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.4.tgz", - "integrity": "sha512-tCfb2WLjqFAtXn4KEdxIhalnRtoKFN7nAwj0B3ZXCbQloV2tq5eDbcTmT68JJD3nRJq24/XgxtQKFIpQdtvmVw==", + "version": "7.3.5", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.5.tgz", + "integrity": "sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==", "dev": true, "requires": { "lru-cache": "^6.0.0" @@ -31961,9 +31983,9 @@ } }, "supports-hyperlinks": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/supports-hyperlinks/-/supports-hyperlinks-2.1.0.tgz", - "integrity": "sha512-zoE5/e+dnEijk6ASB6/qrK+oYdm2do1hjoLWrqUC/8WEIW1gbxFcKuBof7sW8ArN6e+AYvsE8HBGiVRWL/F5CA==", + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/supports-hyperlinks/-/supports-hyperlinks-2.2.0.tgz", + "integrity": "sha512-6sXEzV5+I5j8Bmq9/vUphGRM/RJNT9SCURJLjwfOg51heRtguGWDzcaBlgAzKhQa0EVNpPEKzQuBwZ8S8WaCeQ==", "dev": true, "requires": { "has-flag": "^4.0.0", @@ -31994,21 +32016,24 @@ "dev": true }, "table": { - "version": "6.0.7", - "resolved": "https://registry.npmjs.org/table/-/table-6.0.7.tgz", - "integrity": "sha512-rxZevLGTUzWna/qBLObOe16kB2RTnnbhciwgPbMMlazz1yZGVEgnZK762xyVdVznhqxrfCeBMmMkgOOaPwjH7g==", + "version": "6.6.0", + "resolved": "https://registry.npmjs.org/table/-/table-6.6.0.tgz", + "integrity": "sha512-iZMtp5tUvcnAdtHpZTWLPF0M7AgiQsURR2DwmxnJwSy8I3+cY+ozzVvYha3BOLG2TB+L0CqjIz+91htuj6yCXg==", "dev": true, "requires": { - "ajv": "^7.0.2", - "lodash": "^4.17.20", + "ajv": "^8.0.1", + "lodash.clonedeep": "^4.5.0", + "lodash.flatten": "^4.4.0", + "lodash.truncate": "^4.4.2", "slice-ansi": "^4.0.0", - "string-width": "^4.2.0" + "string-width": "^4.2.0", + "strip-ansi": "^6.0.0" }, "dependencies": { "ajv": { - "version": "7.2.3", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-7.2.3.tgz", - "integrity": "sha512-idv5WZvKVXDqKralOImQgPM9v6WOdLNa0IY3B3doOjw/YxRGT8I+allIJ6kd7Uaj+SF1xZUSU+nPM5aDNBVtnw==", + "version": "8.2.0", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.2.0.tgz", + "integrity": "sha512-WSNGFuyWd//XO8n/m/EaOlNLtO0yL8EXT/74LqT4khdhpZjP7lkj/kT5uwRmGitKEVp/Oj7ZUHeGfPtgHhQ5CA==", "dev": true, "requires": { "fast-deep-equal": "^3.1.1", @@ -32121,9 +32146,9 @@ } }, "terser": { - "version": "5.6.1", - "resolved": "https://registry.npmjs.org/terser/-/terser-5.6.1.tgz", - "integrity": "sha512-yv9YLFQQ+3ZqgWCUk+pvNJwgUTdlIxUk1WTN+RnaFJe2L7ipG2csPT0ra2XRm7Cs8cxN7QXmK1rFzEwYEQkzXw==", + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/terser/-/terser-5.7.0.tgz", + "integrity": "sha512-HP5/9hp2UaZt5fYkuhNBR8YyRcT8juw8+uFbAme53iN9hblvKnLUTKkmwJG6ocWpIKf8UK4DoeWG4ty0J6S6/g==", "dev": true, "requires": { "commander": "^2.20.0", @@ -32415,9 +32440,9 @@ "dev": true }, "type-fest": { - "version": "0.11.0", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.11.0.tgz", - "integrity": "sha512-OdjXJxnCN1AvyLSzeKIgXTXxV+99ZuXl3Hpo9XpJAv9MBcHrrJOQ5kV7ypXOuQie+AmWG25hLbiKdwYTifzcfQ==", + "version": "0.21.3", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.21.3.tgz", + "integrity": "sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==", "dev": true }, "type-is": { @@ -32446,22 +32471,22 @@ } }, "uglify-js": { - "version": "3.13.2", - "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-3.13.2.tgz", - "integrity": "sha512-SbMu4D2Vo95LMC/MetNaso1194M1htEA+JrqE9Hk+G2DhI+itfS9TRu9ZKeCahLDNa/J3n4MqUJ/fOHMzQpRWw==", + "version": "3.13.4", + "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-3.13.4.tgz", + "integrity": "sha512-kv7fCkIXyQIilD5/yQy8O+uagsYIOt5cZvs890W40/e/rvjMSzJw81o9Bg0tkURxzZBROtDQhW2LFjOGoK3RZw==", "dev": true, "optional": true }, "unbox-primitive": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.0.0.tgz", - "integrity": "sha512-P/51NX+JXyxK/aigg1/ZgyccdAxm5K1+n8+tvqSntjOivPt19gvm1VC49RWYetsiub8WViUchdxl/KWHHB0kzA==", + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.0.1.tgz", + "integrity": "sha512-tZU/3NqK3dA5gpE1KtyiJUrEB0lxnGkMFHptJ7q6ewdZ8s12QrODwNbhIJStmJkd1QDXa1NRA8aF2A1zk/Ypyw==", "dev": true, "requires": { "function-bind": "^1.1.1", - "has-bigints": "^1.0.0", - "has-symbols": "^1.0.0", - "which-boxed-primitive": "^1.0.1" + "has-bigints": "^1.0.1", + "has-symbols": "^1.0.2", + "which-boxed-primitive": "^1.0.2" } }, "unicode-canonical-property-names-ecmascript": { @@ -32504,12 +32529,6 @@ "set-value": "^2.0.1" } }, - "uniq": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/uniq/-/uniq-1.0.1.tgz", - "integrity": "sha1-sxxa6CVIRKOoKBVBzisEuGWnNP8=", - "dev": true - }, "universalify": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.0.tgz", @@ -32642,9 +32661,9 @@ "dev": true }, "v8-to-istanbul": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/v8-to-istanbul/-/v8-to-istanbul-7.1.0.tgz", - "integrity": "sha512-uXUVqNUCLa0AH1vuVxzi+MI4RfxEOKt9pBgKwHbgH7st8Kv2P1m+jvWNnektzBh5QShF3ODgKmUFCf38LnVz1g==", + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/v8-to-istanbul/-/v8-to-istanbul-7.1.1.tgz", + "integrity": "sha512-p0BB09E5FRjx0ELN6RgusIPsSPhtgexSRcKETybEs6IGOTXJSZqfwxp7r//55nnu0f1AxltY5VvdVqy2vZf9AA==", "dev": true, "requires": { "@types/istanbul-lib-coverage": "^2.0.1", @@ -32740,20 +32759,20 @@ "dev": true }, "webpack": { - "version": "5.33.2", - "resolved": "https://registry.npmjs.org/webpack/-/webpack-5.33.2.tgz", - "integrity": "sha512-X4b7F1sYBmJx8mlh2B7mV5szEkE0jYNJ2y3akgAP0ERi0vLCG1VvdsIxt8lFd4st6SUy0lf7W0CCQS566MBpJg==", + "version": "5.36.0", + "resolved": "https://registry.npmjs.org/webpack/-/webpack-5.36.0.tgz", + "integrity": "sha512-HdOhLXClUEwTnzQnzpSG9iL00ej23ojvfnGpF49ba0MkuAT2q+WhQilHFFJHOIVRBqbzakQ1vCWQV2K+QLX0Qw==", "dev": true, "requires": { "@types/eslint-scope": "^3.7.0", - "@types/estree": "^0.0.46", + "@types/estree": "^0.0.47", "@webassemblyjs/ast": "1.11.0", "@webassemblyjs/wasm-edit": "1.11.0", "@webassemblyjs/wasm-parser": "1.11.0", - "acorn": "^8.0.4", + "acorn": "^8.2.1", "browserslist": "^4.14.5", "chrome-trace-event": "^1.0.2", - "enhanced-resolve": "^5.7.0", + "enhanced-resolve": "^5.8.0", "es-module-lexer": "^0.4.0", "eslint-scope": "^5.1.1", "events": "^3.2.0", @@ -32771,9 +32790,15 @@ }, "dependencies": { "acorn": { - "version": "8.1.1", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.1.1.tgz", - "integrity": "sha512-xYiIVjNuqtKXMxlRMDc6mZUhXehod4a3gbZ1qRlM7icK4EbxUFNLhWoPblCvFtB2Y9CIqHP3CF/rdxLItaQv8g==", + "version": "8.2.1", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.2.1.tgz", + "integrity": "sha512-z716cpm5TX4uzOzILx8PavOE6C6DKshHDw1aQN52M/yNSqE9s5O8SMfyhCCfCJ3HmTL0NkVOi+8a/55T7YB3bg==", + "dev": true + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", "dev": true }, "webpack-sources": { @@ -32789,15 +32814,15 @@ } }, "webpack-cli": { - "version": "4.5.0", - "resolved": "https://registry.npmjs.org/webpack-cli/-/webpack-cli-4.5.0.tgz", - "integrity": "sha512-wXg/ef6Ibstl2f50mnkcHblRPN/P9J4Nlod5Hg9HGFgSeF8rsqDGHJeVe4aR26q9l62TUJi6vmvC2Qz96YJw1Q==", + "version": "4.6.0", + "resolved": "https://registry.npmjs.org/webpack-cli/-/webpack-cli-4.6.0.tgz", + "integrity": "sha512-9YV+qTcGMjQFiY7Nb1kmnupvb1x40lfpj8pwdO/bom+sQiP4OBMKjHq29YQrlDWDPZO9r/qWaRRywKaRDKqBTA==", "dev": true, "requires": { "@discoveryjs/json-ext": "^0.5.0", - "@webpack-cli/configtest": "^1.0.1", - "@webpack-cli/info": "^1.2.2", - "@webpack-cli/serve": "^1.3.0", + "@webpack-cli/configtest": "^1.0.2", + "@webpack-cli/info": "^1.2.3", + "@webpack-cli/serve": "^1.3.1", "colorette": "^1.2.1", "commander": "^7.0.0", "enquirer": "^2.3.6", @@ -32834,9 +32859,9 @@ } }, "get-stream": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.0.tgz", - "integrity": "sha512-A1B3Bh1UmL0bidM/YX2NsCOTnGJePL9rO/M+Mw3m9f2gUpfokS0hi5Eah0WSUEWZdZhIZtMjkIYS7mDfOqNHbg==", + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz", + "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==", "dev": true }, "human-signals": { @@ -33233,9 +33258,9 @@ } }, "y18n": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.1.tgz", - "integrity": "sha512-wNcy4NvjMYL8gogWWYAO7ZFWFfHcbdbE57tZO8e4cbpj8tfUcwrwqSl3ad8HxpYWCdXcJUCeKKZS62Av1affwQ==", + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.3.tgz", + "integrity": "sha512-JKhqTOwSrqNA1NY5lSztJ1GrBiUodLMmIZuLiDaMRJ+itFd+ABVE8XBjOvIWL+rSqNDC74LCSFmlb/U4UZ4hJQ==", "dev": true }, "yargs": { @@ -33351,12 +33376,12 @@ "dev": true }, "whatwg-url": { - "version": "8.4.0", - "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-8.4.0.tgz", - "integrity": "sha512-vwTUFf6V4zhcPkWp/4CQPr1TW9Ml6SF4lVyaIMBdJw5i6qUUJ1QWM4Z6YYVkfka0OUIzVo/0aNtGVGk256IKWw==", + "version": "8.5.0", + "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-8.5.0.tgz", + "integrity": "sha512-fy+R77xWv0AiqfLl4nuGUlQ3/6b5uNfQ4WAbGQVMYshCTCCPK9psC1nWh3XHuxGVCtlcDDQPQW1csmmIQo+fwg==", "dev": true, "requires": { - "lodash.sortby": "^4.7.0", + "lodash": "^4.7.0", "tr46": "^2.0.2", "webidl-conversions": "^6.1.0" } @@ -33502,9 +33527,9 @@ } }, "ws": { - "version": "7.4.4", - "resolved": "https://registry.npmjs.org/ws/-/ws-7.4.4.tgz", - "integrity": "sha512-Qm8k8ojNQIMx7S+Zp8u/uHOx7Qazv3Yv4q68MiWWWOJhiwG5W3x7iqmRtJo8xxrciZUY4vRxUTJCKuRnF28ZZw==", + "version": "7.4.5", + "resolved": "https://registry.npmjs.org/ws/-/ws-7.4.5.tgz", + "integrity": "sha512-xzyu3hFvomRfXKH8vOFMU3OguG6oOvhXMo3xsGy3xWExqaM2dxBbVxuD99O7m3ZUFMvvscsZDqxfgMaRr/Nr1g==", "dev": true, "requires": {} }, @@ -33527,9 +33552,9 @@ "dev": true }, "y18n": { - "version": "5.0.5", - "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.5.tgz", - "integrity": "sha512-hsRUr4FFrvhhRH12wOdfs38Gy7k2FFzB9qgN9v3aLykRq0dRcdcpz5C9FxdS2NuhOrI/628b/KSTJ3rwHysYSg==", + "version": "5.0.8", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", + "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==", "dev": true }, "yallist": { diff --git a/test/cases/chunkFilename-fullhash/expected/webpack-5-importModule/0.bb36c53eabba881e0081.css b/test/cases/chunkFilename-fullhash/expected/webpack-5-importModule/0.acd0bc1ae24d05fdac73.css similarity index 100% rename from test/cases/chunkFilename-fullhash/expected/webpack-5-importModule/0.bb36c53eabba881e0081.css rename to test/cases/chunkFilename-fullhash/expected/webpack-5-importModule/0.acd0bc1ae24d05fdac73.css diff --git a/test/cases/chunkFilename-fullhash/expected/webpack-5-importModule/bb36c53eabba881e0081.css b/test/cases/chunkFilename-fullhash/expected/webpack-5-importModule/acd0bc1ae24d05fdac73.css similarity index 100% rename from test/cases/chunkFilename-fullhash/expected/webpack-5-importModule/bb36c53eabba881e0081.css rename to test/cases/chunkFilename-fullhash/expected/webpack-5-importModule/acd0bc1ae24d05fdac73.css diff --git a/test/cases/chunkFilename-fullhash/expected/webpack-5-importModule/main.js b/test/cases/chunkFilename-fullhash/expected/webpack-5-importModule/main.js index fd023ff4..ae56615a 100644 --- a/test/cases/chunkFilename-fullhash/expected/webpack-5-importModule/main.js +++ b/test/cases/chunkFilename-fullhash/expected/webpack-5-importModule/main.js @@ -73,7 +73,7 @@ __webpack_require__.r(__webpack_exports__); /******/ /******/ /* webpack/runtime/getFullHash */ /******/ (() => { -/******/ __webpack_require__.h = () => ("bb36c53eabba881e0081") +/******/ __webpack_require__.h = () => ("acd0bc1ae24d05fdac73") /******/ })(); /******/ /******/ /* webpack/runtime/global */ @@ -313,7 +313,7 @@ __webpack_require__.r(__webpack_exports__); /******/ __webpack_require__.m[moduleId] = moreModules[moduleId]; /******/ } /******/ } -/******/ if(runtime) runtime(__webpack_require__); +/******/ if(runtime) var result = runtime(__webpack_require__); /******/ if(parentChunkLoadingFunction) parentChunkLoadingFunction(data); /******/ for(;i < chunkIds.length; i++) { /******/ chunkId = chunkIds[i]; diff --git a/test/cases/chunkFilename-fullhash/expected/webpack-5/0.07119853b0d8e8fbe3ca.css b/test/cases/chunkFilename-fullhash/expected/webpack-5/0.4ecab8e2ff0fe228a728.css similarity index 100% rename from test/cases/chunkFilename-fullhash/expected/webpack-5/0.07119853b0d8e8fbe3ca.css rename to test/cases/chunkFilename-fullhash/expected/webpack-5/0.4ecab8e2ff0fe228a728.css diff --git a/test/cases/chunkFilename-fullhash/expected/webpack-5/07119853b0d8e8fbe3ca.css b/test/cases/chunkFilename-fullhash/expected/webpack-5/4ecab8e2ff0fe228a728.css similarity index 100% rename from test/cases/chunkFilename-fullhash/expected/webpack-5/07119853b0d8e8fbe3ca.css rename to test/cases/chunkFilename-fullhash/expected/webpack-5/4ecab8e2ff0fe228a728.css diff --git a/test/cases/chunkFilename-fullhash/expected/webpack-5/main.js b/test/cases/chunkFilename-fullhash/expected/webpack-5/main.js index 6ec953d4..878d4ecc 100644 --- a/test/cases/chunkFilename-fullhash/expected/webpack-5/main.js +++ b/test/cases/chunkFilename-fullhash/expected/webpack-5/main.js @@ -73,7 +73,7 @@ __webpack_require__.r(__webpack_exports__); /******/ /******/ /* webpack/runtime/getFullHash */ /******/ (() => { -/******/ __webpack_require__.h = () => ("07119853b0d8e8fbe3ca") +/******/ __webpack_require__.h = () => ("4ecab8e2ff0fe228a728") /******/ })(); /******/ /******/ /* webpack/runtime/global */ @@ -313,7 +313,7 @@ __webpack_require__.r(__webpack_exports__); /******/ __webpack_require__.m[moduleId] = moreModules[moduleId]; /******/ } /******/ } -/******/ if(runtime) runtime(__webpack_require__); +/******/ if(runtime) var result = runtime(__webpack_require__); /******/ if(parentChunkLoadingFunction) parentChunkLoadingFunction(data); /******/ for(;i < chunkIds.length; i++) { /******/ chunkId = chunkIds[i]; diff --git a/test/cases/dependOn-multiple-files-per-entry/expected/webpack-5-importModule/common.js b/test/cases/dependOn-multiple-files-per-entry/expected/webpack-5-importModule/common.js index b6d76b78..c61498f1 100644 --- a/test/cases/dependOn-multiple-files-per-entry/expected/webpack-5-importModule/common.js +++ b/test/cases/dependOn-multiple-files-per-entry/expected/webpack-5-importModule/common.js @@ -130,7 +130,7 @@ __webpack_require__.r(__webpack_exports__); /******/ __webpack_require__.m[moduleId] = moreModules[moduleId]; /******/ } /******/ } -/******/ if(runtime) runtime(__webpack_require__); +/******/ if(runtime) var result = runtime(__webpack_require__); /******/ if(parentChunkLoadingFunction) parentChunkLoadingFunction(data); /******/ for(;i < chunkIds.length; i++) { /******/ chunkId = chunkIds[i]; @@ -139,7 +139,7 @@ __webpack_require__.r(__webpack_exports__); /******/ } /******/ installedChunks[chunkIds[i]] = 0; /******/ } -/******/ __webpack_require__.O(); +/******/ return __webpack_require__.O(result); /******/ } /******/ /******/ var chunkLoadingGlobal = self["webpackChunk"] = self["webpackChunk"] || []; diff --git a/test/cases/dependOn-multiple-files-per-entry/expected/webpack-5/common.js b/test/cases/dependOn-multiple-files-per-entry/expected/webpack-5/common.js index b6d76b78..c61498f1 100644 --- a/test/cases/dependOn-multiple-files-per-entry/expected/webpack-5/common.js +++ b/test/cases/dependOn-multiple-files-per-entry/expected/webpack-5/common.js @@ -130,7 +130,7 @@ __webpack_require__.r(__webpack_exports__); /******/ __webpack_require__.m[moduleId] = moreModules[moduleId]; /******/ } /******/ } -/******/ if(runtime) runtime(__webpack_require__); +/******/ if(runtime) var result = runtime(__webpack_require__); /******/ if(parentChunkLoadingFunction) parentChunkLoadingFunction(data); /******/ for(;i < chunkIds.length; i++) { /******/ chunkId = chunkIds[i]; @@ -139,7 +139,7 @@ __webpack_require__.r(__webpack_exports__); /******/ } /******/ installedChunks[chunkIds[i]] = 0; /******/ } -/******/ __webpack_require__.O(); +/******/ return __webpack_require__.O(result); /******/ } /******/ /******/ var chunkLoadingGlobal = self["webpackChunk"] = self["webpackChunk"] || []; diff --git a/test/cases/dependOn/expected/webpack-5-importModule/common.js b/test/cases/dependOn/expected/webpack-5-importModule/common.js index d36ae66a..5abb0200 100644 --- a/test/cases/dependOn/expected/webpack-5-importModule/common.js +++ b/test/cases/dependOn/expected/webpack-5-importModule/common.js @@ -121,7 +121,7 @@ __webpack_require__.r(__webpack_exports__); /******/ __webpack_require__.m[moduleId] = moreModules[moduleId]; /******/ } /******/ } -/******/ if(runtime) runtime(__webpack_require__); +/******/ if(runtime) var result = runtime(__webpack_require__); /******/ if(parentChunkLoadingFunction) parentChunkLoadingFunction(data); /******/ for(;i < chunkIds.length; i++) { /******/ chunkId = chunkIds[i]; @@ -130,7 +130,7 @@ __webpack_require__.r(__webpack_exports__); /******/ } /******/ installedChunks[chunkIds[i]] = 0; /******/ } -/******/ __webpack_require__.O(); +/******/ return __webpack_require__.O(result); /******/ } /******/ /******/ var chunkLoadingGlobal = self["webpackChunk"] = self["webpackChunk"] || []; diff --git a/test/cases/dependOn/expected/webpack-5/common.js b/test/cases/dependOn/expected/webpack-5/common.js index d36ae66a..5abb0200 100644 --- a/test/cases/dependOn/expected/webpack-5/common.js +++ b/test/cases/dependOn/expected/webpack-5/common.js @@ -121,7 +121,7 @@ __webpack_require__.r(__webpack_exports__); /******/ __webpack_require__.m[moduleId] = moreModules[moduleId]; /******/ } /******/ } -/******/ if(runtime) runtime(__webpack_require__); +/******/ if(runtime) var result = runtime(__webpack_require__); /******/ if(parentChunkLoadingFunction) parentChunkLoadingFunction(data); /******/ for(;i < chunkIds.length; i++) { /******/ chunkId = chunkIds[i]; @@ -130,7 +130,7 @@ __webpack_require__.r(__webpack_exports__); /******/ } /******/ installedChunks[chunkIds[i]] = 0; /******/ } -/******/ __webpack_require__.O(); +/******/ return __webpack_require__.O(result); /******/ } /******/ /******/ var chunkLoadingGlobal = self["webpackChunk"] = self["webpackChunk"] || []; diff --git a/test/cases/insert-function/expected/webpack-5-importModule/main.js b/test/cases/insert-function/expected/webpack-5-importModule/main.js index 0dcaf369..f114f470 100644 --- a/test/cases/insert-function/expected/webpack-5-importModule/main.js +++ b/test/cases/insert-function/expected/webpack-5-importModule/main.js @@ -303,7 +303,7 @@ /******/ __webpack_require__.m[moduleId] = moreModules[moduleId]; /******/ } /******/ } -/******/ if(runtime) runtime(__webpack_require__); +/******/ if(runtime) var result = runtime(__webpack_require__); /******/ if(parentChunkLoadingFunction) parentChunkLoadingFunction(data); /******/ for(;i < chunkIds.length; i++) { /******/ chunkId = chunkIds[i]; diff --git a/test/cases/insert-function/expected/webpack-5/main.js b/test/cases/insert-function/expected/webpack-5/main.js index 0dcaf369..f114f470 100644 --- a/test/cases/insert-function/expected/webpack-5/main.js +++ b/test/cases/insert-function/expected/webpack-5/main.js @@ -303,7 +303,7 @@ /******/ __webpack_require__.m[moduleId] = moreModules[moduleId]; /******/ } /******/ } -/******/ if(runtime) runtime(__webpack_require__); +/******/ if(runtime) var result = runtime(__webpack_require__); /******/ if(parentChunkLoadingFunction) parentChunkLoadingFunction(data); /******/ for(;i < chunkIds.length; i++) { /******/ chunkId = chunkIds[i]; diff --git a/test/cases/insert-string/expected/webpack-5-importModule/main.js b/test/cases/insert-string/expected/webpack-5-importModule/main.js index 4d61b5dc..3d10e93f 100644 --- a/test/cases/insert-string/expected/webpack-5-importModule/main.js +++ b/test/cases/insert-string/expected/webpack-5-importModule/main.js @@ -298,7 +298,7 @@ /******/ __webpack_require__.m[moduleId] = moreModules[moduleId]; /******/ } /******/ } -/******/ if(runtime) runtime(__webpack_require__); +/******/ if(runtime) var result = runtime(__webpack_require__); /******/ if(parentChunkLoadingFunction) parentChunkLoadingFunction(data); /******/ for(;i < chunkIds.length; i++) { /******/ chunkId = chunkIds[i]; diff --git a/test/cases/insert-string/expected/webpack-5/main.js b/test/cases/insert-string/expected/webpack-5/main.js index 4d61b5dc..3d10e93f 100644 --- a/test/cases/insert-string/expected/webpack-5/main.js +++ b/test/cases/insert-string/expected/webpack-5/main.js @@ -298,7 +298,7 @@ /******/ __webpack_require__.m[moduleId] = moreModules[moduleId]; /******/ } /******/ } -/******/ if(runtime) runtime(__webpack_require__); +/******/ if(runtime) var result = runtime(__webpack_require__); /******/ if(parentChunkLoadingFunction) parentChunkLoadingFunction(data); /******/ for(;i < chunkIds.length; i++) { /******/ chunkId = chunkIds[i]; diff --git a/test/cases/insert-undefined/expected/webpack-5-importModule/main.js b/test/cases/insert-undefined/expected/webpack-5-importModule/main.js index b998720c..54f0a25e 100644 --- a/test/cases/insert-undefined/expected/webpack-5-importModule/main.js +++ b/test/cases/insert-undefined/expected/webpack-5-importModule/main.js @@ -297,7 +297,7 @@ /******/ __webpack_require__.m[moduleId] = moreModules[moduleId]; /******/ } /******/ } -/******/ if(runtime) runtime(__webpack_require__); +/******/ if(runtime) var result = runtime(__webpack_require__); /******/ if(parentChunkLoadingFunction) parentChunkLoadingFunction(data); /******/ for(;i < chunkIds.length; i++) { /******/ chunkId = chunkIds[i]; diff --git a/test/cases/insert-undefined/expected/webpack-5/main.js b/test/cases/insert-undefined/expected/webpack-5/main.js index b998720c..54f0a25e 100644 --- a/test/cases/insert-undefined/expected/webpack-5/main.js +++ b/test/cases/insert-undefined/expected/webpack-5/main.js @@ -297,7 +297,7 @@ /******/ __webpack_require__.m[moduleId] = moreModules[moduleId]; /******/ } /******/ } -/******/ if(runtime) runtime(__webpack_require__); +/******/ if(runtime) var result = runtime(__webpack_require__); /******/ if(parentChunkLoadingFunction) parentChunkLoadingFunction(data); /******/ for(;i < chunkIds.length; i++) { /******/ chunkId = chunkIds[i]; diff --git a/test/cases/runtime/expected/webpack-5-importModule/runtime~main.js b/test/cases/runtime/expected/webpack-5-importModule/runtime~main.js index 512b1c4b..277a7166 100644 --- a/test/cases/runtime/expected/webpack-5-importModule/runtime~main.js +++ b/test/cases/runtime/expected/webpack-5-importModule/runtime~main.js @@ -299,7 +299,7 @@ /******/ __webpack_require__.m[moduleId] = moreModules[moduleId]; /******/ } /******/ } -/******/ if(runtime) runtime(__webpack_require__); +/******/ if(runtime) var result = runtime(__webpack_require__); /******/ if(parentChunkLoadingFunction) parentChunkLoadingFunction(data); /******/ for(;i < chunkIds.length; i++) { /******/ chunkId = chunkIds[i]; @@ -308,7 +308,7 @@ /******/ } /******/ installedChunks[chunkIds[i]] = 0; /******/ } -/******/ __webpack_require__.O(); +/******/ return __webpack_require__.O(result); /******/ } /******/ /******/ var chunkLoadingGlobal = self["webpackChunk"] = self["webpackChunk"] || []; @@ -317,7 +317,7 @@ /******/ })(); /******/ /************************************************************************/ -var __webpack_exports__ = {}; -__webpack_require__.O(); +/******/ +/******/ /******/ })() ; \ No newline at end of file diff --git a/test/cases/runtime/expected/webpack-5/runtime~main.js b/test/cases/runtime/expected/webpack-5/runtime~main.js index 512b1c4b..277a7166 100644 --- a/test/cases/runtime/expected/webpack-5/runtime~main.js +++ b/test/cases/runtime/expected/webpack-5/runtime~main.js @@ -299,7 +299,7 @@ /******/ __webpack_require__.m[moduleId] = moreModules[moduleId]; /******/ } /******/ } -/******/ if(runtime) runtime(__webpack_require__); +/******/ if(runtime) var result = runtime(__webpack_require__); /******/ if(parentChunkLoadingFunction) parentChunkLoadingFunction(data); /******/ for(;i < chunkIds.length; i++) { /******/ chunkId = chunkIds[i]; @@ -308,7 +308,7 @@ /******/ } /******/ installedChunks[chunkIds[i]] = 0; /******/ } -/******/ __webpack_require__.O(); +/******/ return __webpack_require__.O(result); /******/ } /******/ /******/ var chunkLoadingGlobal = self["webpackChunk"] = self["webpackChunk"] || []; @@ -317,7 +317,7 @@ /******/ })(); /******/ /************************************************************************/ -var __webpack_exports__ = {}; -__webpack_require__.O(); +/******/ +/******/ /******/ })() ; \ No newline at end of file From 3be81bb4e795fc9295c2c7e7a8bb71de9cead2d0 Mon Sep 17 00:00:00 2001 From: Alexander Akait <4567934+alexander-akait@users.noreply.github.com> Date: Wed, 28 Apr 2021 16:34:03 +0300 Subject: [PATCH 06/30] fix: compatibility with named export and es5 (#751) --- src/loader.js | 2 +- .../expected/webpack-4/main.js | 6 +++--- .../expected/webpack-5-importModule/main.js | 6 +++--- .../expected/webpack-5/main.js | 6 +++--- test/cases/es-named-export-output-module/expected/main.js | 6 +++--- test/cases/es-named-export/expected/webpack-4/main.js | 6 +++--- .../es-named-export/expected/webpack-5-importModule/main.js | 6 +++--- test/cases/es-named-export/expected/webpack-5/main.js | 6 +++--- 8 files changed, 22 insertions(+), 22 deletions(-) diff --git a/src/loader.js b/src/loader.js index 238700de..458217c0 100644 --- a/src/loader.js +++ b/src/loader.js @@ -155,7 +155,7 @@ export function pitch(request) { ? namedExport ? Object.keys(locals) .map( - (key) => `\nexport const ${key} = ${JSON.stringify(locals[key])};` + (key) => `\nexport var ${key} = ${JSON.stringify(locals[key])};` ) .join('') : `\n${ diff --git a/test/cases/es-module-concatenation-modules/expected/webpack-4/main.js b/test/cases/es-module-concatenation-modules/expected/webpack-4/main.js index 3296fa52..0552cd62 100644 --- a/test/cases/es-module-concatenation-modules/expected/webpack-4/main.js +++ b/test/cases/es-module-concatenation-modules/expected/webpack-4/main.js @@ -116,13 +116,13 @@ __webpack_require__.d(index_namespaceObject, "b", function() { return b_namespac // CONCATENATED MODULE: ./a.css // extracted by mini-css-extract-plugin -const a = "foo__a"; +var a = "foo__a"; // CONCATENATED MODULE: ./b.css // extracted by mini-css-extract-plugin -const b = "foo__b"; +var b = "foo__b"; // CONCATENATED MODULE: ./c.css // extracted by mini-css-extract-plugin -const c = "foo__c"; +var c = "foo__c"; // CONCATENATED MODULE: ./index.js /* eslint-disable import/no-namespace */ diff --git a/test/cases/es-module-concatenation-modules/expected/webpack-5-importModule/main.js b/test/cases/es-module-concatenation-modules/expected/webpack-5-importModule/main.js index 4f1059be..d289c825 100644 --- a/test/cases/es-module-concatenation-modules/expected/webpack-5-importModule/main.js +++ b/test/cases/es-module-concatenation-modules/expected/webpack-5-importModule/main.js @@ -69,13 +69,13 @@ __webpack_require__.d(index_namespaceObject, { ;// CONCATENATED MODULE: ./a.css // extracted by mini-css-extract-plugin -const a = "foo__a"; +var a = "foo__a"; ;// CONCATENATED MODULE: ./b.css // extracted by mini-css-extract-plugin -const b = "foo__b"; +var b = "foo__b"; ;// CONCATENATED MODULE: ./c.css // extracted by mini-css-extract-plugin -const c = "foo__c"; +var c = "foo__c"; ;// CONCATENATED MODULE: ./index.js /* eslint-disable import/no-namespace */ diff --git a/test/cases/es-module-concatenation-modules/expected/webpack-5/main.js b/test/cases/es-module-concatenation-modules/expected/webpack-5/main.js index 4f1059be..d289c825 100644 --- a/test/cases/es-module-concatenation-modules/expected/webpack-5/main.js +++ b/test/cases/es-module-concatenation-modules/expected/webpack-5/main.js @@ -69,13 +69,13 @@ __webpack_require__.d(index_namespaceObject, { ;// CONCATENATED MODULE: ./a.css // extracted by mini-css-extract-plugin -const a = "foo__a"; +var a = "foo__a"; ;// CONCATENATED MODULE: ./b.css // extracted by mini-css-extract-plugin -const b = "foo__b"; +var b = "foo__b"; ;// CONCATENATED MODULE: ./c.css // extracted by mini-css-extract-plugin -const c = "foo__c"; +var c = "foo__c"; ;// CONCATENATED MODULE: ./index.js /* eslint-disable import/no-namespace */ diff --git a/test/cases/es-named-export-output-module/expected/main.js b/test/cases/es-named-export-output-module/expected/main.js index 3c403159..b563e81c 100644 --- a/test/cases/es-named-export-output-module/expected/main.js +++ b/test/cases/es-named-export-output-module/expected/main.js @@ -11,9 +11,9 @@ __webpack_require__.r(__webpack_exports__); /* harmony export */ "cClass": () => (/* binding */ cClass) /* harmony export */ }); // extracted by mini-css-extract-plugin -const aClass = "foo__style__a-class"; -const bClass = "foo__style__b__class"; -const cClass = "foo__style__cClass"; +var aClass = "foo__style__a-class"; +var bClass = "foo__style__b__class"; +var cClass = "foo__style__cClass"; /***/ }) /******/ ]); diff --git a/test/cases/es-named-export/expected/webpack-4/main.js b/test/cases/es-named-export/expected/webpack-4/main.js index a2d0a1a8..9386c187 100644 --- a/test/cases/es-named-export/expected/webpack-4/main.js +++ b/test/cases/es-named-export/expected/webpack-4/main.js @@ -107,9 +107,9 @@ __webpack_require__.r(__webpack_exports__); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "bClass", function() { return bClass; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "cClass", function() { return cClass; }); // extracted by mini-css-extract-plugin -const aClass = "foo__style__a-class"; -const bClass = "foo__style__b__class"; -const cClass = "foo__style__cClass"; +var aClass = "foo__style__a-class"; +var bClass = "foo__style__b__class"; +var cClass = "foo__style__cClass"; /***/ }) /******/ ]); \ No newline at end of file diff --git a/test/cases/es-named-export/expected/webpack-5-importModule/main.js b/test/cases/es-named-export/expected/webpack-5-importModule/main.js index 5017ec83..8cf22c2c 100644 --- a/test/cases/es-named-export/expected/webpack-5-importModule/main.js +++ b/test/cases/es-named-export/expected/webpack-5-importModule/main.js @@ -12,9 +12,9 @@ __webpack_require__.r(__webpack_exports__); /* harmony export */ "cClass": () => (/* binding */ cClass) /* harmony export */ }); // extracted by mini-css-extract-plugin -const aClass = "foo__style__a-class"; -const bClass = "foo__style__b__class"; -const cClass = "foo__style__cClass"; +var aClass = "foo__style__a-class"; +var bClass = "foo__style__b__class"; +var cClass = "foo__style__cClass"; /***/ }) /******/ ]); diff --git a/test/cases/es-named-export/expected/webpack-5/main.js b/test/cases/es-named-export/expected/webpack-5/main.js index 5017ec83..8cf22c2c 100644 --- a/test/cases/es-named-export/expected/webpack-5/main.js +++ b/test/cases/es-named-export/expected/webpack-5/main.js @@ -12,9 +12,9 @@ __webpack_require__.r(__webpack_exports__); /* harmony export */ "cClass": () => (/* binding */ cClass) /* harmony export */ }); // extracted by mini-css-extract-plugin -const aClass = "foo__style__a-class"; -const bClass = "foo__style__b__class"; -const cClass = "foo__style__cClass"; +var aClass = "foo__style__a-class"; +var bClass = "foo__style__b__class"; +var cClass = "foo__style__cClass"; /***/ }) /******/ ]); From 1767850b1660e3d659cd339b4040d014e7e7eb02 Mon Sep 17 00:00:00 2001 From: Alexander Akait <4567934+alexander-akait@users.noreply.github.com> Date: Wed, 28 Apr 2021 16:44:28 +0300 Subject: [PATCH 07/30] docs: fix typo (#752) --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index ebba9f88..43d53043 100644 --- a/README.md +++ b/README.md @@ -120,7 +120,7 @@ Default: `document.head.appendChild(linkTag);` By default, the `mini-css-extract-plugin` appends styles (`` elements) to `document.head` of the current `window`. -However in some circumstances it might be necessary to have finer control over the append target or even delay `link` elements instertion. +However in some circumstances it might be necessary to have finer control over the append target or even delay `link` elements insertion. For example this is the case when you asynchronously load styles for an application that runs inside of an iframe. In such cases `insert` can be configured to be a function or a custom selector. From 4227510959889c5f334f1aca4f2f73e7ba9bd01c Mon Sep 17 00:00:00 2001 From: evilebottnawi Date: Wed, 28 Apr 2021 16:44:59 +0300 Subject: [PATCH 08/30] chore(release): 1.5.1 --- CHANGELOG.md | 7 +++++++ package-lock.json | 2 +- package.json | 2 +- 3 files changed, 9 insertions(+), 2 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 6ad0771d..4af8ef9c 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,6 +2,13 @@ All notable changes to this project will be documented in this file. See [standard-version](https://github.com/conventional-changelog/standard-version) for commit guidelines. +### [1.5.1](https://github.com/webpack-contrib/mini-css-extract-plugin/compare/v1.5.0...v1.5.1) (2021-04-28) + + +### Bug Fixes + +* compatibility with named export and es5 ([#751](https://github.com/webpack-contrib/mini-css-extract-plugin/issues/751)) ([3be81bb](https://github.com/webpack-contrib/mini-css-extract-plugin/commit/3be81bb4e795fc9295c2c7e7a8bb71de9cead2d0)) + ## [1.5.0](https://github.com/webpack-contrib/mini-css-extract-plugin/compare/v1.4.1...v1.5.0) (2021-04-17) diff --git a/package-lock.json b/package-lock.json index 9904c5ed..d2930570 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,6 +1,6 @@ { "name": "mini-css-extract-plugin", - "version": "1.5.0", + "version": "1.5.1", "lockfileVersion": 2, "requires": true, "packages": { diff --git a/package.json b/package.json index ebdd97ae..6dee7e02 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "mini-css-extract-plugin", - "version": "1.5.0", + "version": "1.5.1", "description": "extracts CSS into separate files", "license": "MIT", "repository": "webpack-contrib/mini-css-extract-plugin", From c76a1a16b926e3dc8f6763d940ab6e4eb170c77f Mon Sep 17 00:00:00 2001 From: Alexey Lavinsky Date: Fri, 30 Apr 2021 04:45:03 -0700 Subject: [PATCH 09/30] feat: added new url support (#753) --- package-lock.json | 17 +++++---- package.json | 2 +- src/loader.js | 13 +++++++ test/TestCases.test.js | 4 +- ...5fdac73.css => 0.619e4b98882ea3a2aba3.css} | 0 ...d05fdac73.css => 619e4b98882ea3a2aba3.css} | 0 .../expected/webpack-5-importModule/main.js | 2 +- ...228a728.css => 0.962555dd7355e6c261df.css} | 0 ...fe228a728.css => 962555dd7355e6c261df.css} | 0 .../expected/webpack-5/main.js | 2 +- .../new-url-with-public-path-auto/app/img.png | Bin 0 -> 78117 bytes .../app/index.js | 1 + .../app/mockLoader.js | 12 ++++++ .../app/nested/nested-img.png | Bin 0 -> 78117 bytes .../app/style.css | 3 ++ .../expected/main.css | 3 ++ .../outer-img.png | Bin 0 -> 78117 bytes .../test.filter.js | 4 ++ .../webpack.config.js | 36 ++++++++++++++++++ .../new-url-with-public-path/app/img.png | Bin 0 -> 78117 bytes .../new-url-with-public-path/app/index.js | 1 + .../app/mockLoader.js | 12 ++++++ .../app/nested/nested-img.png | Bin 0 -> 78117 bytes .../new-url-with-public-path/app/style.css | 3 ++ .../expected/main.css | 3 ++ .../new-url-with-public-path/outer-img.png | Bin 0 -> 78117 bytes .../new-url-with-public-path/test.filter.js | 4 ++ .../webpack.config.js | 36 ++++++++++++++++++ 28 files changed, 146 insertions(+), 12 deletions(-) rename test/cases/chunkFilename-fullhash/expected/webpack-5-importModule/{0.acd0bc1ae24d05fdac73.css => 0.619e4b98882ea3a2aba3.css} (100%) rename test/cases/chunkFilename-fullhash/expected/webpack-5-importModule/{acd0bc1ae24d05fdac73.css => 619e4b98882ea3a2aba3.css} (100%) rename test/cases/chunkFilename-fullhash/expected/webpack-5/{0.4ecab8e2ff0fe228a728.css => 0.962555dd7355e6c261df.css} (100%) rename test/cases/chunkFilename-fullhash/expected/webpack-5/{4ecab8e2ff0fe228a728.css => 962555dd7355e6c261df.css} (100%) create mode 100644 test/cases/new-url-with-public-path-auto/app/img.png create mode 100644 test/cases/new-url-with-public-path-auto/app/index.js create mode 100644 test/cases/new-url-with-public-path-auto/app/mockLoader.js create mode 100644 test/cases/new-url-with-public-path-auto/app/nested/nested-img.png create mode 100644 test/cases/new-url-with-public-path-auto/app/style.css create mode 100644 test/cases/new-url-with-public-path-auto/expected/main.css create mode 100644 test/cases/new-url-with-public-path-auto/outer-img.png create mode 100644 test/cases/new-url-with-public-path-auto/test.filter.js create mode 100644 test/cases/new-url-with-public-path-auto/webpack.config.js create mode 100644 test/cases/new-url-with-public-path/app/img.png create mode 100644 test/cases/new-url-with-public-path/app/index.js create mode 100644 test/cases/new-url-with-public-path/app/mockLoader.js create mode 100644 test/cases/new-url-with-public-path/app/nested/nested-img.png create mode 100644 test/cases/new-url-with-public-path/app/style.css create mode 100644 test/cases/new-url-with-public-path/expected/main.css create mode 100644 test/cases/new-url-with-public-path/outer-img.png create mode 100644 test/cases/new-url-with-public-path/test.filter.js create mode 100644 test/cases/new-url-with-public-path/webpack.config.js diff --git a/package-lock.json b/package-lock.json index d2930570..b8d406b2 100644 --- a/package-lock.json +++ b/package-lock.json @@ -5,7 +5,8 @@ "requires": true, "packages": { "": { - "version": "1.5.0", + "name": "mini-css-extract-plugin", + "version": "1.5.1", "license": "MIT", "dependencies": { "loader-utils": "^2.0.0", @@ -39,7 +40,7 @@ "npm-run-all": "^4.1.5", "prettier": "^2.2.1", "standard-version": "^9.1.0", - "webpack": "^5.33.2", + "webpack": "^5.36.1", "webpack-cli": "^4.5.0", "webpack-dev-server": "^3.7.2" }, @@ -17799,9 +17800,9 @@ } }, "node_modules/webpack": { - "version": "5.36.0", - "resolved": "https://registry.npmjs.org/webpack/-/webpack-5.36.0.tgz", - "integrity": "sha512-HdOhLXClUEwTnzQnzpSG9iL00ej23ojvfnGpF49ba0MkuAT2q+WhQilHFFJHOIVRBqbzakQ1vCWQV2K+QLX0Qw==", + "version": "5.36.1", + "resolved": "https://registry.npmjs.org/webpack/-/webpack-5.36.1.tgz", + "integrity": "sha512-2u25a82T+6quAxSlzEpN/R/RICwt20ONU3z3Ko05S8KVH9FXILcBYb2hD/rQtZT5y7lRAIsIIs05pdndY7ourQ==", "dev": true, "dependencies": { "@types/eslint-scope": "^3.7.0", @@ -32759,9 +32760,9 @@ "dev": true }, "webpack": { - "version": "5.36.0", - "resolved": "https://registry.npmjs.org/webpack/-/webpack-5.36.0.tgz", - "integrity": "sha512-HdOhLXClUEwTnzQnzpSG9iL00ej23ojvfnGpF49ba0MkuAT2q+WhQilHFFJHOIVRBqbzakQ1vCWQV2K+QLX0Qw==", + "version": "5.36.1", + "resolved": "https://registry.npmjs.org/webpack/-/webpack-5.36.1.tgz", + "integrity": "sha512-2u25a82T+6quAxSlzEpN/R/RICwt20ONU3z3Ko05S8KVH9FXILcBYb2hD/rQtZT5y7lRAIsIIs05pdndY7ourQ==", "dev": true, "requires": { "@types/eslint-scope": "^3.7.0", diff --git a/package.json b/package.json index 6dee7e02..81c78472 100644 --- a/package.json +++ b/package.json @@ -73,7 +73,7 @@ "npm-run-all": "^4.1.5", "prettier": "^2.2.1", "standard-version": "^9.1.0", - "webpack": "^5.33.2", + "webpack": "^5.36.1", "webpack-cli": "^4.5.0", "webpack-dev-server": "^3.7.2" }, diff --git a/src/loader.js b/src/loader.js index 458217c0..7da01bdb 100644 --- a/src/loader.js +++ b/src/loader.js @@ -196,6 +196,7 @@ export function pitch(request) { ); return; } + this.importModule( `${this.resourcePath}.webpack[javascript/auto]!=!${request}`, { @@ -230,6 +231,18 @@ export function pitch(request) { outputOptions ); + // The templates are compiled and executed by NodeJS - similar to server side rendering + // Unfortunately this causes issues as some loaders require an absolute URL to support ES Modules + // The following config enables relative URL support for the child compiler + childCompiler.options.module = { ...childCompiler.options.module }; + childCompiler.options.module.parser = { + ...childCompiler.options.module.parser, + }; + childCompiler.options.module.parser.javascript = { + ...childCompiler.options.module.parser.javascript, + url: 'relative', + }; + const { NodeTemplatePlugin } = webpack.node; const NodeTargetPlugin = webpack.node.NodeTargetPlugin ? webpack.node.NodeTargetPlugin diff --git a/test/TestCases.test.js b/test/TestCases.test.js index 691f39da..374c434c 100644 --- a/test/TestCases.test.js +++ b/test/TestCases.test.js @@ -106,6 +106,7 @@ describe('TestCases', () => { directoryForCase, 'webpack.config.js' )); + const { context } = webpackConfig; for (const config of [].concat(webpackConfig)) { Object.assign( @@ -132,7 +133,8 @@ describe('TestCases', () => { } return p; }), - } + }, + context ? { context } : {} ); } diff --git a/test/cases/chunkFilename-fullhash/expected/webpack-5-importModule/0.acd0bc1ae24d05fdac73.css b/test/cases/chunkFilename-fullhash/expected/webpack-5-importModule/0.619e4b98882ea3a2aba3.css similarity index 100% rename from test/cases/chunkFilename-fullhash/expected/webpack-5-importModule/0.acd0bc1ae24d05fdac73.css rename to test/cases/chunkFilename-fullhash/expected/webpack-5-importModule/0.619e4b98882ea3a2aba3.css diff --git a/test/cases/chunkFilename-fullhash/expected/webpack-5-importModule/acd0bc1ae24d05fdac73.css b/test/cases/chunkFilename-fullhash/expected/webpack-5-importModule/619e4b98882ea3a2aba3.css similarity index 100% rename from test/cases/chunkFilename-fullhash/expected/webpack-5-importModule/acd0bc1ae24d05fdac73.css rename to test/cases/chunkFilename-fullhash/expected/webpack-5-importModule/619e4b98882ea3a2aba3.css diff --git a/test/cases/chunkFilename-fullhash/expected/webpack-5-importModule/main.js b/test/cases/chunkFilename-fullhash/expected/webpack-5-importModule/main.js index ae56615a..1eba8e1c 100644 --- a/test/cases/chunkFilename-fullhash/expected/webpack-5-importModule/main.js +++ b/test/cases/chunkFilename-fullhash/expected/webpack-5-importModule/main.js @@ -73,7 +73,7 @@ __webpack_require__.r(__webpack_exports__); /******/ /******/ /* webpack/runtime/getFullHash */ /******/ (() => { -/******/ __webpack_require__.h = () => ("acd0bc1ae24d05fdac73") +/******/ __webpack_require__.h = () => ("619e4b98882ea3a2aba3") /******/ })(); /******/ /******/ /* webpack/runtime/global */ diff --git a/test/cases/chunkFilename-fullhash/expected/webpack-5/0.4ecab8e2ff0fe228a728.css b/test/cases/chunkFilename-fullhash/expected/webpack-5/0.962555dd7355e6c261df.css similarity index 100% rename from test/cases/chunkFilename-fullhash/expected/webpack-5/0.4ecab8e2ff0fe228a728.css rename to test/cases/chunkFilename-fullhash/expected/webpack-5/0.962555dd7355e6c261df.css diff --git a/test/cases/chunkFilename-fullhash/expected/webpack-5/4ecab8e2ff0fe228a728.css b/test/cases/chunkFilename-fullhash/expected/webpack-5/962555dd7355e6c261df.css similarity index 100% rename from test/cases/chunkFilename-fullhash/expected/webpack-5/4ecab8e2ff0fe228a728.css rename to test/cases/chunkFilename-fullhash/expected/webpack-5/962555dd7355e6c261df.css diff --git a/test/cases/chunkFilename-fullhash/expected/webpack-5/main.js b/test/cases/chunkFilename-fullhash/expected/webpack-5/main.js index 878d4ecc..703a8d6c 100644 --- a/test/cases/chunkFilename-fullhash/expected/webpack-5/main.js +++ b/test/cases/chunkFilename-fullhash/expected/webpack-5/main.js @@ -73,7 +73,7 @@ __webpack_require__.r(__webpack_exports__); /******/ /******/ /* webpack/runtime/getFullHash */ /******/ (() => { -/******/ __webpack_require__.h = () => ("4ecab8e2ff0fe228a728") +/******/ __webpack_require__.h = () => ("962555dd7355e6c261df") /******/ })(); /******/ /******/ /* webpack/runtime/global */ diff --git a/test/cases/new-url-with-public-path-auto/app/img.png b/test/cases/new-url-with-public-path-auto/app/img.png new file mode 100644 index 0000000000000000000000000000000000000000..b74b839e2b868d2df9ea33cc1747eb7803d2d69c GIT binary patch literal 78117 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

T}Ke+!9t-m?i2X-;f#-{#p<{2~ia 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

T}Ke+!9t-m?i2X-;f#-{#p<{2~ia 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

T}Ke+!9t-m?i2X-;f#-{#p<{2~ia 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 + webpack.version[0] !== '4' && !process.env.EXPERIMENTAL_USE_IMPORT_MODULE; diff --git a/test/cases/new-url-with-public-path-auto/webpack.config.js b/test/cases/new-url-with-public-path-auto/webpack.config.js new file mode 100644 index 00000000..1a1c7a41 --- /dev/null +++ b/test/cases/new-url-with-public-path-auto/webpack.config.js @@ -0,0 +1,36 @@ +import path from 'path'; + +import Self from '../../../src'; + +module.exports = { + entry: './index.js', + context: path.resolve(__dirname, 'app'), + module: { + rules: [ + { + test: /\.css$/, + use: [ + { + loader: Self.loader, + options: { + publicPath: 'auto', + }, + }, + './mockLoader', + ], + }, + { + test: /\.png$/, + type: 'asset/resource', + generator: { + filename: '[path][name][ext]', + }, + }, + ], + }, + plugins: [ + new Self({ + filename: '[name].css', + }), + ], +}; diff --git a/test/cases/new-url-with-public-path/app/img.png b/test/cases/new-url-with-public-path/app/img.png new file mode 100644 index 0000000000000000000000000000000000000000..b74b839e2b868d2df9ea33cc1747eb7803d2d69c GIT binary patch literal 78117 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

T}Ke+!9t-m?i2X-;f#-{#p<{2~ia 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

T}Ke+!9t-m?i2X-;f#-{#p<{2~ia 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

T}Ke+!9t-m?i2X-;f#-{#p<{2~ia zdcgIc-$Da~n#V;jyNzcrPviVY%c>uyv&<8FNmEhfKi~C3NVJ^uqvO#rX}8OdDcz8U zN2w0c-YMCP+_qwSdEt%U1Fa-_IwmF-?3p7HNhlHXp^J*-2bC=UPCD=!nh%`AwVLrE zcTouWr>nQCllRN}DEq?B_@b=Ud~&pDK%!dD2sX3ADv3?t3AfHWlWnv!RmVKHmvS_p zZ!Ps4tJw|?z9yE6o%Bhy{0DSk+1v=>iAMkQ<8-1t%wZRP`J1NS6CeG5byi4uWzjHW zjeQtP6-G?9b#0{2y%GXX4WR&|6RI zOcQA!Ep(iBax268m`jcf>Tb?IKEIoYu?$0sxY;)#?|S)tR;kL6@{(I-vmQMV&LPu| z=R{P`yX&a?u0tFIrP2d;<#N}}Gg9q-F(H`OjNTyi zxv3CdQ|jy5jjN$C$%%K~GTdeA+&})aZplcnaK7?vO?LmzP$zt4-5PBpD2hFh7CMxA zj7{!)Z_(X@gZp%Ng=sRzCT&(kMu(1ht6a=JW4W?ft65KHeRk{3h|}R^V)JpWe7y}$ zC2WitoP@G+0xa~X7qbUn*X^T8B3WhZPs3I>ug2jqq025M0Y?egxof8~MhpUltQNj0 zxAQdQPl9Fu9<=}lpP|7z`+}9 zYh8S0*QNyX%XyY%dXmh+0S4dVnm=3TB)5{p?r1f>o*QTA!JoOT4Hp|3unPYhdjZ+- zJc3Q8wUw0}ZbTXb*j}n;JLBl+HNp;H%+t`61n}!-&Co+>iHg!H=;|&PBE~9;`$HJG z_hcu1vd}QO!R+Yg|5mOW+?$sNGjJ4sRu9|=qy!G!6bF9b)9TRi$=*8e{pWalQbEHj zRDvBBF#!(6RyeDNf(XhbFRGlv@vKbWji4G4f0uV#w1<2WeD6>TCW@}ZPc_r(UC_CLc+qlq#dqbJ> z=zW{L?a{CQX4f@G_YMt>t6WJ|N;ha9e9w+DorRn_zpXDZ8ifqnR8*fUmqZaf^S%*p z?lT0XcB3DL9)Apo42+-Z_VT_aOjEi#f6#T+AWB)@9RE4dcNgFkhQo2YYLMukuzQ-u zC~LkYE@A=nx17Ai$5m=vk@b(xq#_$H7rm`c$SgztJ_+NB8 z_txE8@w1Aa#;7%{?H^Tqr=QQ}X=Vj3;`j?Se-v{?b(Yu9l$wvjY#<|k4!QpR)1T_w zXscm%0tf?_1vM{bU7%OQ$GTbc>xmeTQl!kZRU&d7!=YC}j){gb&{NuUI*U(m_Y$_W zVX(Tscz{ChPmC7Wzrqy1{CUOlh?;Kgl@s+nSJrDOv*?l3eQok9%%$h*b>V3AKlqoh zp_Vsx=82S?<+goPczst5ExS5q%LBRWJ=hf;@k(>AXBbT*brV&@x$qJv%)#1O@-PA2~ zVd3P!l?wb)CpY}QI{vBv_KjEs?cZgv!aA8y>ku*un=pT+kHQI7PIkFbPrf?KAOhJ0 z*l(r1439{2u7x`48sv;ygB1LYgC*C1!g|rjSOZzSL|rJtl0o_^14 zwnTrGKPPlb7Er-8utmYUstC`;|!ng(cjM3r3v>JPFCihUWLNNOwMw+ z1CZW}nGvS&xCckW+lp$B8r6@w|7ZOQ5G!p)C!;}+Gx78K0UG=Bh$6__4yk6OUxs_-h5#L)-(8wV3SjBNr(t*Yc6fGMC|&*K^7_O z_n@8MSppqJhK!GV5cBJ7KE=w}Va%m2;WI^qt+iqcc1X;xCPWV(i>Iqhr&?@eRS%2K zf6T&{xF|W~z!gU3`R?IctdX;Vm9@Ktc>SE@v{`Yf^b|E+uR_Qe_TcOc{dPyii!&i1 zLDjQ;?sz7jX(Q{)wSh^>5u7S4r3*6OX;naSgh=Kt0yv@w;K;OT(d|ns5`kmvc{E3f z+^E_B1{9V|8IC$ zp8c;@ii*c1f)i~FQnf2s?r9{rRj@#GT9{qJL@COjPl6Dv`>nsehX9u!o(Ueg;1xx5 zCUC1HJ1SM@;B_7U5v9zf5G=s+mIYGg7D--y%xEZl`ozQ~+1oyGKULeM@!=a3hA2}} z6+WLZNoy^T%#}m6aCx=VKZmtR=T?0yp?>Cy*q)PEsWk_8dQQ&imYQeKU05f)EI@^d zL6UA*C$U5aBKZ)%^u%DGqEGcOJ4lT0D)o2vr@7_UdO-sZU_3eJ5H5-#%zQ2Q=N3xV ztK>+bv26aVqtvD!jNkm?CYX734~frf(g5`w7!fGNhOYn26yHJ$ulcZmfS3f=OqaE z(RD7fp8hg74&(o#&`bCUb2yv-Sx+K`gq39xjcBKmGla|MxPYa@O_nr+)T*mzr?E<* z<4Byt`6@A`p_*aP4}}<2U5@`w3nW_7-@4bd2+cA3VW8SY%CcCn+>uLNr*c;xo4^xH zkRwy9{jtCw5ExFM8!<;Gnd44zgt<+q(K={`UhvRFCw^FI)OKf3#QD_E-`huSg}ZJ1 z&C&8RO-rXzInaOJdrtJFP+`Q#y)+gXyp$WGPPyJuCM4a(x+O0fmym4&?B6B_QG-=0 zJ-;UUa*ptJxi)>22lhA$cB{j0VwtPa&1Uggl7<=F09pmpiy*RsIJC>V)kl3tt&@21b&7;=k zb%)Ikc)@RoETX2R2rH$0u{J-Q##DsfrqkO3w#V#R$i^rePZ58{ z)94>kb4IW#;z%c%JHce)Flz>C%5{wM*IS@ws%|e;0tAep9`V7H>tjq{)P`p%5c~{C z3V>tnSc%Grts$dQnNb)#@1Zwv1S`PfcN_pltH|=a)4?*GHA^vl z8pGV{;3NQuymKm9Kr}a7N0}-el^aC^QPSt$4o1aEzGp1Sp66Lp4M*8!^Xd|~ zc22G;2}KOTfjK4@tv@K_ZkiIK6)~a8d3vP){P)II`v)S=wlUh6%?!9HcO>hw2u9I! zph6D^guy5CJrN$0yj;ezuie6YP$McTWl5r9bdz^JzidGVm=9x>;g2tg907r`^_JEt zeG{Q8-hSE9`(>xlCLGa5rd?I>|K@j}c}V6%6SI=xxo*EESH9_obFf~Yj0zvGnPsAc z&ptaIQ##P<>r;k6Wbc-AgXx)^w}|eUBchH=G-j|*z3J8OWNyS;BmH3-GW&n_Q=^(& zz0NnVl>pz^@e$JPZ9++CQ!B>Y#$oW!QEDyckM9#}1jXqsX9#9uZ-4qzfW$cRibQJs z*;`~e~c2j~+9)*7QP2AD;jqz%~U6ho# zoh4zp=#R7_ESH=2O&2#MEgbQKJ<&;?$JQ~ITa0F8!EL=4?m#p{N$B?jlIZG~z7oWt>iS?+)qq2yJkHu*{WcDOhbvNq57{pn5d34B_Gn9hqu+UrN@YO*54{dX02>%VFMJ%}C5eu} zjV&fcC{}FXerbYAPC^ue;&Hj_L6IZ4fqjhM%whLAx|rz>`?*8hfe^QowAZX2v`*Nw z>w|o~m48B)*|O1dhzVCsLNUv;>o{lQ;Z-0(Ztw@gUDg>Z5m38UvsnaQ2&Ad9g#)X) zqZvR~&1YARG9l?)67b{Sbs(aQP$@~$^+~IZz8M*-^Ux(&rrFt3*j{3={dt)b*`!X@ z#9!~#MxZIN+^N_&5h`u-RFhuuINus?vup0sG#T)=nbzS;MWDb;`Zc?sBMG`` z9(79pNGEeow&QrpRMAuLy%&jA)}2F3oO2iq%IHwYfWqjPO?%_B`BJz~0$NVqlTg{NP?T2R0 ziR^Mz?5Hyegdg>b+`n2V@b@$3SM|RlwLaMr3hL#!W^A|XUa0$CO+hsD>lzoqIKB25 zk>lO~g(q2p0Pu*(2f#zO11Y{{^2seS1$gNNL}$@kP3)65_X{XCGJHjAVjm*Ne#^kw zRm6E0bh;(w6`4S=NrPUdMhWho`~jSRtLiGt)zi4Dt{;Dy28;eM;?&+V(yFpK{sn(o zXJH*dH$AG@5y5PCe3fTH_BmHHegIKMJ(|5N4(C9ZVEoB?zGl)Oa=KD zg_+ar+#p?2pbC}~T_;gYy0>aWsXvaUwDlp*rPxlyHwNfX?XB^IKIzFO#RCu(@V?n` z(Q}u4LGTz>NrGv?=a|HsGC?z!u?d2rA&MZ&tHL=Upq8AO%n^m}!8e3lmyeY;tIv3Q|7gK#@Rg2{M4$yN{}n2x|APY1k7F`@z5ewf^=9_Ja>OLZ`+(!vd@ zP4Dn%vZ~Q2>T7VyfACH488E0A7O$ev#6v6maJsPBk z*r2z}?N4eucsAZ=6KgWN=9pxD z{sM5V;Gu{<9j!m3yew8o5TtC>Xf{V8lagXHd+k;HC-weMr5mz~LM9#_pRLJ>Euz zN#1qGJEWilSQsJ9J6Du8&9j!+oQ|r{;<{6{fex9W0PP zmt4|XEFolj+yG?=K#w^Xv&C^C49L_v(pzAcGvjqzk(m3!oMt=`O;5q|Ls}BF=Xa zR;bKh#<7<*a2r6*+K3>M>@zg~Ly6!zjT101Ckq;EfS_|?alJaMGIU{O0Bwg(bkB3< zboJamiQlihFq-RW^c>5dBYVSBCU7)Y$tQ7&8yUpXpuQOg$EnizsZ%8Qb~qp~IpYkx zOSD7&!-b5Kc99df)D<{$ZxBSEtG-2s&~lqWhPMOGeD2m%c~;11#m(beq9;HSzqzAYS zN5;-G0y_+JnAwgM^|-!#?`<)zx%DWBc=PK8X4k0(5bTYX1(I?^VRjBK(J=x!>eo6} zwE&OH8|rn8r%?}G=;@2wp5dq#=KzE^B2X}q1uv1^k0rPPcr1-Qu2siuFkb8-N_(3z z)+rx&oC#+hvo@(+ZATr-07xom=WQ>{?n6nzZ{@@6c8sF~%~R{b?qn2am8L-ll%eDx z`8@0;0?iG03~(7Sr3=Rj5HjAb_?u+om9x6aJmYa1PG>rg1p*X%s~aN|TeRAK(qQp5 z76Ao1+8a%?e$r)={d4Qx1D-1CFZe6csn8}QKIlG8yI2WE`w~55^-U1Wql(&Y;fM8P z5C7_lAhLP|oY>Z*R;pxOXdN|L!WS*=MV~_5OI5e()kMT3!w8*vkf%@|u zpukYLhO9Mx@?%ulx{bn44~e4+@x6;L4h@$@8ph@?cr^sMz;w**@9B?-gSJU?f`q@X zRk^SASRp8XokQ@?6mkoGH|pFkm}3E|DGDOdH*N(F#lew5Wl$&G`gP_Jp8S&6*u?;A zpXI=3F5VreZtL-Nb|nB|p%6G!fNLBFD1`c@u)1qf`cgzE&{27H$fYHwZ}hvV$}CNf zta!mG^c;FKU9ctC*a6zm@CGU-c`7PvruGEJw!2cTL9GL>3!Dk-pcsy?j(9uxv;}^11o4P_2 zplwn8zIo;t;4&&MO1vrETb)$`Qq?El$@C+TfO;dD$H&h&b~rb>_iC;vmF}(XJrb!* zNMKUR%2<8N!e#1TXCbQ`1bv-{t5FN^jDZt-MBLHkV?@GBZ|anK7=Rm%r(~W0Ztw`X z{k;Yr`%rUGA4pJN7MR$wd`5+Np59(Hm+_yi2E9-=4m3@EPN)uofMq4Kc5)c`xurM) zHQ`Am`jUGJYul+#j83w!PO+zzabduXHk70+3j;AUR26s$7ivu7eqEH8rRl$Jx^B@s zV?U*h3jPzBK@b!KIgpJSMFRyBRz&Na@ijUEX(ra0Ck7;+Tqjq%@srptKx#PThFQJ6 zNeVjNtm%TFHQ|pN&vJ6bE0=|H0KJ+l$4Qy{GZ0h(b@)(_kniw%XNbvT5;v@(m^kA6 zF8@QcF7=_-&a+ovcuzwmM<86U6pbRZb2cGG#Aa+Fh9nXubzH(|=r0=T-ITM01b3rT z{Jd+eezOo9WVKg(wUHY|X!EmM|6KHSPYcBFvH7CmRp=1jin@y0!3fy2%M9KiZN+_b zSg$8wx4f<1l}PuhTVIFvz!q9A>7%tDtUQQXC_Yf&F#!}AdXEYU#xo8X_vX7Z)GwGX z3;s(oNzh+?yaaJPmEt7>BA`WZg9O|~-T^(>0%CBV{i=ldUsv>!oQiI z$u#p-#p;>7h+V!Ow5!S{NybZ9gmfU*GX*r(h> z?~jcKpT_Wq;d_pv1*W5cOx0++tcU{sfSi6>;3*IY7b_$;&V>-P%a}WG^#UPud8>;s z-JQc<=#vOe=iZp-{(svC34St9n5(^>q2D?ZQF*xQJ6-|(q#g(JOKA~=SGYrgQYh<)5$#JljJ zh0K0^6FJIv>0kBYtsqSopc-D&1N|P&GZqQK*vgV`f|#upHgmgrvROC33mIfU9%!l; zALrqD>wb$YmOTBahI}>WRgoyWn<*sS`)N)4F-qc4^7bkz>rv>sFrIuC*2 zEb>LKnGs;qh`UulN`?SeoI?SfNQ%py00Kn37@_hA{WT!7H)&N8eo(WOm@-AFH^Wve zE`7B95b`+KP0T*a*88Fcuhb0t6G|ZBn<#6l{TeP-^l7iz^YA^^lS_1Vt`tsiFwj-ybi2TU&c- z3YB;@Ir|rSC3ADZo8veiGTunhuz{Y4w$O+unGMFVWB*?QDt`9zFy6ErkdqVbAP;~} zO*kaE{c+MoEN=k|kL`zkf$sEFk+z;cx(^(hPlSu{X1pg9k3mZWLl(>G-Xd~m;)p5~ ztc?=Jn|@OSo^ zA(AwIFOPL41LfmdVBU%;+UiX4AJ#ypA7xZI9a(~T&V-H|61c?x9bHsR&B~pCl@({F zQn9ZMy7SG|sw?LLYv_;|Hre-Xr~Z$BGeCl#qa1`80TA4MB69(urb%P@2B~v21*$Xe ze(d2j?Pto+6_6OpsG99>ftli~k@02RDXnAU#0-_AR=h|61dV3?TN4}f=_GEPsee}+ z)q=8{$BU+bBJioKpnH_%-2)>iF&X)vn0$mR#8ZA|4+k<%4kC~>crN0&A zn*;#!g+ZvzfustYXsCVF)<;Ykp5(CmuNba*Q)4^MjTC@;T2$J4j^&oHh=bjgS@HX^ zDvLK!-o>OiyO-5u%QI`HdX3l#5Y2oDP#cK4$hG_X&pn{w95v`ku0xz@VGOyIL~L9O zOrqq&OV zAv!_25NHc$lrWMo@TsvQ*jQuHdDTokTMT8o62Y6|$Hk#NNP(XHRa=-U2 zSRbE`6I%_|Sd#kXOM>s|CR&Zt#voJRBtSDhkV$O1!A4M0&go2;X^ z()dfK(LmpUht_cFwp=Lw8vJ_95j+$5xoZ3`tgSThNsOmW@a(GMWyec^#PZs`kJ=-B zC);a^L%r7@=NSBhSpEig>+_tl&wXaXl5~V zOsR^re>)GgA?XtDLD}WL+H!w$qkQ2O5LOVZw<>V)aTVf_ps=^p>jYNi5Ae|_HBX4VevB1UGzSNAXd+mtZtGe%+=hG#AvIaL zEw|9g%s~J`GHK6_l_=23CH$=9g)Kd!A5bxoa12#Y{kXqN`16NdC&X(sLg(S?$pq~3m@MT7k8}!? zip!Jrk%SPT(G+Skx5UJh)oPoFwYl@jDM5_7sNtWV6sB_jZzs}K<21N^pL zcWveaafUoAuZ?G9tZi749ae02UpB7A`$N_->-x>yyMy78d2g}1PJ!z6s7hSK!*Nr8 zS3~r=702P?$LHyL)gd9{i~i2LMY+i}+sHgJphR6J`dwp=!Qa24{Gul5KTqw-UFu2s z)o_19Q{lJPs@{22ZCe!B@%W+fv7P>KHTcBe>z;q(Q$qH|Re z@va7UO9<+Y7fYQKnhrG>Kh?Eo(V$lS;mxJ0&9PpGV5_}nmS^sv_*Zu!Z-ZP98qz?J zo8J!gHJef5Z5LF6J6Kv-H6k6K9vap20&mRLvY|NRz#qSQbIepnx~;*c?TJ;p9(kbK zl=pqCyh{r6An9#*(4yJgUI9=zj4gm};;&y~utX+6xxr(B)FP|Ad^s>5IYDrkH@NTb z__3{6dVe$Pjn*yXw27M)`Az3;GN z%nDcO(^2;Y5fqk?M-lc3?$mNt;))E(Z}ng^)m>h7J=!|?`$rq4=N}zE+PP5s4C>7M zfB)!JV`gYBN?VQI9)0P3e;oOop5@~&65X$#PZtjuA}P@}$x*#iW3FKYICfxSs277; zH~ZNQDoZW)$kwJ}3S$D2nwIA+qpp@q_eq_)ItDF6h6jTThv906kAf-$x<+c+CRL-) zG0;I10=+E|m}-XFS|T7E4#Kqs=E8$8?{Cb4y|XaG-I5|RbI%7l zYPQ9`-@~}*m|>Zh7RTd(bIOo{?2MJ4)g%fIRWc~(hT6eVe|8e7K;of}JVXV?TLuUf zt!np=`%cA$|kT@AFIv~vIk|9-)r!|l$!jf57ziPdpBjl?+B*RxX z9f&JZinA*f!4pcLgaY@>{bj4WjMP`J5JHNEmwbeLB^E!(odD;9>y$@fYG#qpMgT3h zwTC%LC8X+}BD)fqghBMrA z><&@`Efq3-Qb|mM9SbREM0@nU=@3d2g|`Y9)-e7T>I6@KeU`)7Gofg=D8~bT`dR#@ zpaij(xZU&5F6MX?3vlaw{cSCfB5hd;G=4;l@+1MRD!@D~>c#Ax7wK67^_Pi1hzwWV z{L#3sLoC*5voJzF3_Yx~&>Rof#F5rP;@`?=?I>1+taL3;F2o#b{=?{xuV$sb^raCF zrIfT(5+Idl3H%2r?$%3!ULOjuf&!=0-7S%2x5>xrk;4PA_kG3! z0!qBM+B5Y`_tmWgbSO2I_ije(EAb9;U(6P>!w(`kdla?~K9A?7j=v{@z_kS)VCXQN zJKFiM#pLZ8^p4O%r+>&6Nn8o)H*5yE!jPK_C76Yny}Xs`*SV_8l>g|@ z9GKymU^&lk_+73d7|w;zx9$jjBauY7^_TblxmVJt+$G94xa4$-QsrtM z$4$tW*1U1-%q76V{E?9J;1H1B6;gM_`^YD$1r2}utjMD!af{iLi=jfkhZS$BJA z#9gPIxjvm*)D~H75&yyvw07l%_uXfO={;6Q% ziU|g7dv4am+eMY=E}8JlB5aL_cyC~T=L5M`(19nC_RPrS8x1P~VVA<>l1?j!=?6L5R&Vw<8LU9Q6K#X`}8eN|(b5oLAx9kTr6C&pDs4_f5X& z8i=D*5;ADNyHS_mMLfZQ>>cz29`)B!BgCGC%BIFMWva#jZM%p=+szUYh28iFZJ)xT zAUxn85#^q$7MIFtVc3KV+`4OrY3R|oK~foRf>kscFdWNgbSeRV{P ziZ8iS7W%ymp4{W#mhiMgCtu-oT|zo@K(|tq`1Lgn6=jyOs{4=ONg?=3%n6rvW4z%{ zc+E;%n-*AW2IK%V$NPSX0_roEx$qk6>}I#f%G(+<+sYFX@pmmYea_>2C*(UN8cIw9 z>jxqUg3i}{k!Q{eB0=#JfPQuV55d%y>d{T_DOL)+qN?W|+vu8B4rRB*5a1Ia&OPi^ z?VtirxCgL&;qdP4HCwAdrAk+0tkJE4)%)l=@~3-Yhz|kkkC2?`@E%e+g8W%aq9C`a z{*xag#rsYtv_rhuOCp6i_5VTAeroSCd0mOuyn4Vk$Rr1!x(AKWJ_iXxP5mG% zTVw$o#JrU){dUm1=$i91s5%I=TrI4C6Cm2tpj_$Ii@-+!=zq_>sBkY4C-$Huq84y+3)Fd3aJoCsaV^=q3LC%8 zcYk~|(WG1;C^T?eMJpl@JP&E|yP6|(2bl}xQTa+Ns3@g}1` z3YpF4y%Eb)A?0*&_9^|1(euwaNgbgJyg2bssbv%F6uG8P#1I+c2J(UR)!1nU(&kp4TUtGMclh^og20peUZ`YYWg#R zfz#EFJ_t)Y@BlK>(h?tJ5uPqO=jSz@XJgqeQuLtI;J4K zm@2bAsYp)O*s+5m=<@KW{6)J3KOtXriRN8J2moNpf)b>rwYR=rH|ly2JLnzDzi1U1 zF4IaIw_UraE(K|F+s*IgVw8Deu58* z^?A?%94SaqUSpRwn27%WV|a@HCbADxkkh9-Ttbc9@oLl*o{?f zj1wWy>1WacGd1RB@2c%KjJGw<{(lPJil{QJy0&-Hx=hvYu*OonlSA60XC3$=|A!qy z0VSb8l)aCUs{5u}SbtHQakcb;*gQ1L_?p(J)XIM{zL@tBKGj^eGoihD>GaQhK0F|f zQ>1(P=5ge5wcly!>+Wm3Oy}d^D;f*R^w9|$w%3pMSSbd)59H + webpack.version[0] !== '4' && !process.env.EXPERIMENTAL_USE_IMPORT_MODULE; diff --git a/test/cases/new-url-with-public-path/webpack.config.js b/test/cases/new-url-with-public-path/webpack.config.js new file mode 100644 index 00000000..1d7453d9 --- /dev/null +++ b/test/cases/new-url-with-public-path/webpack.config.js @@ -0,0 +1,36 @@ +import path from 'path'; + +import Self from '../../../src'; + +module.exports = { + entry: './index.js', + context: path.resolve(__dirname, 'app'), + module: { + rules: [ + { + test: /\.css$/, + use: [ + { + loader: Self.loader, + options: { + publicPath: 'public', + }, + }, + './mockLoader', + ], + }, + { + test: /\.png$/, + type: 'asset/resource', + generator: { + filename: '[path][name][ext]', + }, + }, + ], + }, + plugins: [ + new Self({ + filename: '[name].css', + }), + ], +}; From 750ab74a8f06d1319f2e94a7a48ea881a0f937b8 Mon Sep 17 00:00:00 2001 From: evilebottnawi Date: Fri, 30 Apr 2021 14:45:17 +0300 Subject: [PATCH 10/30] chore(release): 1.6.0 --- CHANGELOG.md | 7 +++++++ package-lock.json | 2 +- package.json | 2 +- 3 files changed, 9 insertions(+), 2 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 4af8ef9c..e484e326 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,6 +2,13 @@ All notable changes to this project will be documented in this file. See [standard-version](https://github.com/conventional-changelog/standard-version) for commit guidelines. +## [1.6.0](https://github.com/webpack-contrib/mini-css-extract-plugin/compare/v1.5.1...v1.6.0) (2021-04-30) + + +### Features + +* added new url support ([#753](https://github.com/webpack-contrib/mini-css-extract-plugin/issues/753)) ([c76a1a1](https://github.com/webpack-contrib/mini-css-extract-plugin/commit/c76a1a16b926e3dc8f6763d940ab6e4eb170c77f)) + ### [1.5.1](https://github.com/webpack-contrib/mini-css-extract-plugin/compare/v1.5.0...v1.5.1) (2021-04-28) diff --git a/package-lock.json b/package-lock.json index b8d406b2..2ca4e98f 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,6 +1,6 @@ { "name": "mini-css-extract-plugin", - "version": "1.5.1", + "version": "1.6.0", "lockfileVersion": 2, "requires": true, "packages": { diff --git a/package.json b/package.json index 81c78472..286b637a 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "mini-css-extract-plugin", - "version": "1.5.1", + "version": "1.6.0", "description": "extracts CSS into separate files", "license": "MIT", "repository": "webpack-contrib/mini-css-extract-plugin", From d31013d00db89d00b195409115f7a0a610ba0db5 Mon Sep 17 00:00:00 2001 From: Alexey Lavinsky Date: Wed, 19 May 2021 10:58:50 -0700 Subject: [PATCH 11/30] docs: recommend (#757) --- README.md | 69 ++++++++++++++++++++++++++----------------------------- 1 file changed, 32 insertions(+), 37 deletions(-) diff --git a/README.md b/README.md index 43d53043..297846ea 100644 --- a/README.md +++ b/README.md @@ -503,74 +503,69 @@ module.exports = { ## Examples -### Minimal example +### Recommend + +For `production` builds it's recommended to extract the CSS from your bundle being able to use parallel loading of CSS/JS resources later on. +This can be achieved by using the `mini-css-extract-plugin`, because it creates separate css files. +For `development` mode (including `webpack-dev-server`) you can use [style-loader](https://github.com/webpack-contrib/style-loader), because it injects CSS into the DOM using multiple and works faster. + +> i Do not use together `style-loader` and `mini-css-extract-plugin`. **webpack.config.js** ```js const MiniCssExtractPlugin = require('mini-css-extract-plugin'); +const devMode = process.env.NODE_ENV !== 'production'; module.exports = { - plugins: [ - new MiniCssExtractPlugin({ - // Options similar to the same options in webpackOptions.output - // all options are optional - filename: '[name].css', - chunkFilename: '[id].css', - ignoreOrder: false, // Enable to remove warnings about conflicting order - }), - ], module: { rules: [ { - test: /\.css$/, + test: /\.(sa|sc|c)ss$/, use: [ - { - loader: MiniCssExtractPlugin.loader, - options: { - // you can specify a publicPath here - // by default it uses publicPath in webpackOptions.output - publicPath: '../', - }, - }, + devMode ? 'style-loader' : MiniCssExtractPlugin.loader, 'css-loader', + 'postcss-loader', + 'sass-loader', ], }, ], }, + plugins: [].concat(devMode ? [] : [new MiniCssExtractPlugin()]), }; ``` -### Common use case - -`mini-css-extract-plugin` is more often used in `production` mode to get separate css files. -For `development` mode (including `webpack-dev-server`) you can use `style-loader`, because it injects CSS into the DOM using multiple `` and works faster. - -> ⚠️ Do not use `style-loader` and `mini-css-extract-plugin` together. +### Minimal example **webpack.config.js** ```js const MiniCssExtractPlugin = require('mini-css-extract-plugin'); -const devMode = process.env.NODE_ENV !== 'production'; - -const plugins = []; -if (!devMode) { - // enable in production only - plugins.push(new MiniCssExtractPlugin()); -} module.exports = { - plugins, + plugins: [ + new MiniCssExtractPlugin({ + // Options similar to the same options in webpackOptions.output + // all options are optional + filename: '[name].css', + chunkFilename: '[id].css', + ignoreOrder: false, // Enable to remove warnings about conflicting order + }), + ], module: { rules: [ { - test: /\.(sa|sc|c)ss$/, + test: /\.css$/, use: [ - devMode ? 'style-loader' : MiniCssExtractPlugin.loader, + { + loader: MiniCssExtractPlugin.loader, + options: { + // you can specify a publicPath here + // by default it uses publicPath in webpackOptions.output + publicPath: '../', + }, + }, 'css-loader', - 'postcss-loader', - 'sass-loader', ], }, ], From 81c2b3d163b5a7a537ad00da4f5188a69ad3e818 Mon Sep 17 00:00:00 2001 From: Nitin Kumar Date: Mon, 7 Jun 2021 15:54:50 +0530 Subject: [PATCH 12/30] chore: update deps and fix audit (#762) --- package-lock.json | 2152 +++++++++-------- package.json | 24 +- test/TestCases.test.js | 4 +- test/cases/insert-undefined/webpack.config.js | 2 +- test/cases/runtime/index.js | 2 +- test/manual/src/index.js | 4 +- 6 files changed, 1099 insertions(+), 1089 deletions(-) diff --git a/package-lock.json b/package-lock.json index 2ca4e98f..38cdc779 100644 --- a/package-lock.json +++ b/package-lock.json @@ -5,8 +5,7 @@ "requires": true, "packages": { "": { - "name": "mini-css-extract-plugin", - "version": "1.5.1", + "version": "1.6.0", "license": "MIT", "dependencies": { "loader-utils": "^2.0.0", @@ -14,23 +13,23 @@ "webpack-sources": "^1.1.0" }, "devDependencies": { - "@babel/cli": "^7.13.10", - "@babel/core": "^7.13.10", - "@babel/preset-env": "^7.13.10", - "@commitlint/cli": "^12.0.1", - "@commitlint/config-conventional": "^12.0.1", + "@babel/cli": "^7.14.3", + "@babel/core": "^7.14.3", + "@babel/preset-env": "^7.14.4", + "@commitlint/cli": "^12.1.4", + "@commitlint/config-conventional": "^12.1.4", "@webpack-contrib/eslint-config-webpack": "^3.0.0", "babel-eslint": "^10.1.0", "babel-jest": "^26.6.3", "bootstrap": "^4.6.0", "cross-env": "^7.0.3", - "css-loader": "^5.1.3", + "css-loader": "^5.2.6", "del": "^6.0.0", "del-cli": "^3.0.1", "es-check": "5.2.3", - "eslint": "^7.22.0", + "eslint": "^7.28.0", "eslint-config-prettier": "^8.1.0", - "eslint-plugin-import": "^2.22.1", + "eslint-plugin-import": "^2.23.4", "file-loader": "^6.2.0", "husky": "^5.2.0", "jest": "^26.6.3", @@ -38,11 +37,11 @@ "lint-staged": "^10.5.4", "memfs": "^3.0.2", "npm-run-all": "^4.1.5", - "prettier": "^2.2.1", + "prettier": "^2.3.1", "standard-version": "^9.1.0", - "webpack": "^5.36.1", - "webpack-cli": "^4.5.0", - "webpack-dev-server": "^3.7.2" + "webpack": "^5.38.1", + "webpack-cli": "^4.7.0", + "webpack-dev-server": "^3.11.2" }, "engines": { "node": ">= 10.13.0" @@ -56,9 +55,9 @@ } }, "node_modules/@babel/cli": { - "version": "7.13.16", - "resolved": "https://registry.npmjs.org/@babel/cli/-/cli-7.13.16.tgz", - "integrity": "sha512-cL9tllhqvsQ6r1+d9Invf7nNXg/3BlfL1vvvL/AdH9fZ2l5j0CeBcoq6UjsqHpvyN1v5nXSZgqJZoGeK+ZOAbw==", + "version": "7.14.3", + "resolved": "https://registry.npmjs.org/@babel/cli/-/cli-7.14.3.tgz", + "integrity": "sha512-zU4JLvwk32ay1lhhyGfqiRUSPoltVDjhYkA3aQq8+Yby9z30s/EsFw1EPOHxWG9YZo2pAGfgdRNeHZQAYU5m9A==", "dev": true, "dependencies": { "commander": "^4.0.1", @@ -91,26 +90,26 @@ } }, "node_modules/@babel/compat-data": { - "version": "7.13.15", - "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.13.15.tgz", - "integrity": "sha512-ltnibHKR1VnrU4ymHyQ/CXtNXI6yZC0oJThyW78Hft8XndANwi+9H+UIklBDraIjFEJzw8wmcM427oDd9KS5wA==", + "version": "7.14.4", + "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.14.4.tgz", + "integrity": "sha512-i2wXrWQNkH6JplJQGn3Rd2I4Pij8GdHkXwHMxm+zV5YG/Jci+bCNrWZEWC4o+umiDkRrRs4dVzH3X4GP7vyjQQ==", "dev": true }, "node_modules/@babel/core": { - "version": "7.13.16", - "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.13.16.tgz", - "integrity": "sha512-sXHpixBiWWFti0AV2Zq7avpTasr6sIAu7Y396c608541qAU2ui4a193m0KSQmfPSKFZLnQ3cvlKDOm3XkuXm3Q==", + "version": "7.14.3", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.14.3.tgz", + "integrity": "sha512-jB5AmTKOCSJIZ72sd78ECEhuPiDMKlQdDI/4QRI6lzYATx5SSogS1oQA2AoPecRCknm30gHi2l+QVvNUu3wZAg==", "dev": true, "dependencies": { "@babel/code-frame": "^7.12.13", - "@babel/generator": "^7.13.16", + "@babel/generator": "^7.14.3", "@babel/helper-compilation-targets": "^7.13.16", - "@babel/helper-module-transforms": "^7.13.14", - "@babel/helpers": "^7.13.16", - "@babel/parser": "^7.13.16", + "@babel/helper-module-transforms": "^7.14.2", + "@babel/helpers": "^7.14.0", + "@babel/parser": "^7.14.3", "@babel/template": "^7.12.13", - "@babel/traverse": "^7.13.15", - "@babel/types": "^7.13.16", + "@babel/traverse": "^7.14.2", + "@babel/types": "^7.14.2", "convert-source-map": "^1.7.0", "debug": "^4.1.0", "gensync": "^1.0.0-beta.2", @@ -127,12 +126,12 @@ } }, "node_modules/@babel/generator": { - "version": "7.13.16", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.13.16.tgz", - "integrity": "sha512-grBBR75UnKOcUWMp8WoDxNsWCFl//XCK6HWTrBQKTr5SV9f5g0pNOjdyzi/DTBv12S9GnYPInIXQBTky7OXEMg==", + "version": "7.14.3", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.14.3.tgz", + "integrity": "sha512-bn0S6flG/j0xtQdz3hsjJ624h3W0r3llttBMfyHX3YrZ/KtLYr15bjA0FXkgW7FpvrDuTuElXeVjiKlYRpnOFA==", "dev": true, "dependencies": { - "@babel/types": "^7.13.16", + "@babel/types": "^7.14.2", "jsesc": "^2.5.1", "source-map": "^0.5.0" } @@ -157,14 +156,14 @@ } }, "node_modules/@babel/helper-compilation-targets": { - "version": "7.13.16", - "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.13.16.tgz", - "integrity": "sha512-3gmkYIrpqsLlieFwjkGgLaSHmhnvlAYzZLlYVjlW+QwI+1zE17kGxuJGmIqDQdYp56XdmGeD+Bswx0UTyG18xA==", + "version": "7.14.4", + "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.14.4.tgz", + "integrity": "sha512-JgdzOYZ/qGaKTVkn5qEDV/SXAh8KcyUVkCoSWGN8T3bwrgd6m+/dJa2kVGi6RJYJgEYPBdZ84BZp9dUjNWkBaA==", "dev": true, "dependencies": { - "@babel/compat-data": "^7.13.15", + "@babel/compat-data": "^7.14.4", "@babel/helper-validator-option": "^7.12.17", - "browserslist": "^4.14.5", + "browserslist": "^4.16.6", "semver": "^6.3.0" }, "peerDependencies": { @@ -172,15 +171,16 @@ } }, "node_modules/@babel/helper-create-class-features-plugin": { - "version": "7.13.11", - "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.13.11.tgz", - "integrity": "sha512-ays0I7XYq9xbjCSvT+EvysLgfc3tOkwCULHjrnscGT3A9qD4sk3wXnJ3of0MAWsWGjdinFvajHU2smYuqXKMrw==", + "version": "7.14.4", + "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.14.4.tgz", + "integrity": "sha512-idr3pthFlDCpV+p/rMgGLGYIVtazeatrSOQk8YzO2pAepIjQhCN3myeihVg58ax2bbbGK9PUE1reFi7axOYIOw==", "dev": true, "dependencies": { - "@babel/helper-function-name": "^7.12.13", - "@babel/helper-member-expression-to-functions": "^7.13.0", + "@babel/helper-annotate-as-pure": "^7.12.13", + "@babel/helper-function-name": "^7.14.2", + "@babel/helper-member-expression-to-functions": "^7.13.12", "@babel/helper-optimise-call-expression": "^7.12.13", - "@babel/helper-replace-supers": "^7.13.0", + "@babel/helper-replace-supers": "^7.14.4", "@babel/helper-split-export-declaration": "^7.12.13" }, "peerDependencies": { @@ -229,14 +229,14 @@ } }, "node_modules/@babel/helper-function-name": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.12.13.tgz", - "integrity": "sha512-TZvmPn0UOqmvi5G4vvw0qZTpVptGkB1GL61R6lKvrSdIxGm5Pky7Q3fpKiIkQCAtRCBUwB0PaThlx9vebCDSwA==", + "version": "7.14.2", + "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.14.2.tgz", + "integrity": "sha512-NYZlkZRydxw+YT56IlhIcS8PAhb+FEUiOzuhFTfqDyPmzAhRge6ua0dQYT/Uh0t/EDHq05/i+e5M2d4XvjgarQ==", "dev": true, "dependencies": { "@babel/helper-get-function-arity": "^7.12.13", "@babel/template": "^7.12.13", - "@babel/types": "^7.12.13" + "@babel/types": "^7.14.2" } }, "node_modules/@babel/helper-get-function-arity": { @@ -277,19 +277,19 @@ } }, "node_modules/@babel/helper-module-transforms": { - "version": "7.13.14", - "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.13.14.tgz", - "integrity": "sha512-QuU/OJ0iAOSIatyVZmfqB0lbkVP0kDRiKj34xy+QNsnVZi/PA6BoSoreeqnxxa9EHFAIL0R9XOaAR/G9WlIy5g==", + "version": "7.14.2", + "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.14.2.tgz", + "integrity": "sha512-OznJUda/soKXv0XhpvzGWDnml4Qnwp16GN+D/kZIdLsWoHj05kyu8Rm5kXmMef+rVJZ0+4pSGLkeixdqNUATDA==", "dev": true, "dependencies": { "@babel/helper-module-imports": "^7.13.12", "@babel/helper-replace-supers": "^7.13.12", "@babel/helper-simple-access": "^7.13.12", "@babel/helper-split-export-declaration": "^7.12.13", - "@babel/helper-validator-identifier": "^7.12.11", + "@babel/helper-validator-identifier": "^7.14.0", "@babel/template": "^7.12.13", - "@babel/traverse": "^7.13.13", - "@babel/types": "^7.13.14" + "@babel/traverse": "^7.14.2", + "@babel/types": "^7.14.2" } }, "node_modules/@babel/helper-optimise-call-expression": { @@ -319,15 +319,15 @@ } }, "node_modules/@babel/helper-replace-supers": { - "version": "7.13.12", - "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.13.12.tgz", - "integrity": "sha512-Gz1eiX+4yDO8mT+heB94aLVNCL+rbuT2xy4YfyNqu8F+OI6vMvJK891qGBTqL9Uc8wxEvRW92Id6G7sDen3fFw==", + "version": "7.14.4", + "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.14.4.tgz", + "integrity": "sha512-zZ7uHCWlxfEAAOVDYQpEf/uyi1dmeC7fX4nCf2iz9drnCwi1zvwXL3HwWWNXUQEJ1k23yVn3VbddiI9iJEXaTQ==", "dev": true, "dependencies": { "@babel/helper-member-expression-to-functions": "^7.13.12", "@babel/helper-optimise-call-expression": "^7.12.13", - "@babel/traverse": "^7.13.0", - "@babel/types": "^7.13.12" + "@babel/traverse": "^7.14.2", + "@babel/types": "^7.14.4" } }, "node_modules/@babel/helper-simple-access": { @@ -358,9 +358,9 @@ } }, "node_modules/@babel/helper-validator-identifier": { - "version": "7.12.11", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.12.11.tgz", - "integrity": "sha512-np/lG3uARFybkoHokJUmf1QfEvRVCPbmQeUQpKow5cQ3xWrV9i3rUHodKDJPQfTVX61qKi+UdYk8kik84n7XOw==", + "version": "7.14.0", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.14.0.tgz", + "integrity": "sha512-V3ts7zMSu5lfiwWDVWzRDGIN+lnCEUdaXgtVHJgLb1rGaA6jMrtB9EmE7L18foXJIE8Un/A/h6NJfGQp/e1J4A==", "dev": true }, "node_modules/@babel/helper-validator-option": { @@ -382,14 +382,14 @@ } }, "node_modules/@babel/helpers": { - "version": "7.13.17", - "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.13.17.tgz", - "integrity": "sha512-Eal4Gce4kGijo1/TGJdqp3WuhllaMLSrW6XcL0ulyUAQOuxHcCafZE8KHg9857gcTehsm/v7RcOx2+jp0Ryjsg==", + "version": "7.14.0", + "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.14.0.tgz", + "integrity": "sha512-+ufuXprtQ1D1iZTO/K9+EBRn+qPWMJjZSw/S0KlFrxCw4tkrzv9grgpDHkY9MeQTjTY8i2sp7Jep8DfU6tN9Mg==", "dev": true, "dependencies": { "@babel/template": "^7.12.13", - "@babel/traverse": "^7.13.17", - "@babel/types": "^7.13.17" + "@babel/traverse": "^7.14.0", + "@babel/types": "^7.14.0" } }, "node_modules/@babel/highlight": { @@ -404,9 +404,9 @@ } }, "node_modules/@babel/parser": { - "version": "7.13.16", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.13.16.tgz", - "integrity": "sha512-6bAg36mCwuqLO0hbR+z7PHuqWiCeP7Dzg73OpQwsAB1Eb8HnGEz5xYBzCfbu+YjoaJsJs+qheDxVAuqbt3ILEw==", + "version": "7.14.4", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.14.4.tgz", + "integrity": "sha512-ArliyUsWDUqEGfWcmzpGUzNfLxTdTp6WU4IuP6QFSp9gGfWS6boxFCkJSJ/L4+RG8z/FnIU3WxCk6hPL9SSWeA==", "dev": true, "bin": { "parser": "bin/babel-parser.js" @@ -430,9 +430,9 @@ } }, "node_modules/@babel/plugin-proposal-async-generator-functions": { - "version": "7.13.15", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.13.15.tgz", - "integrity": "sha512-VapibkWzFeoa6ubXy/NgV5U2U4MVnUlvnx6wo1XhlsaTrLYWE0UFpDQsVrmn22q5CzeloqJ8gEMHSKxuee6ZdA==", + "version": "7.14.2", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.14.2.tgz", + "integrity": "sha512-b1AM4F6fwck4N8ItZ/AtC4FP/cqZqmKRQ4FaTDutwSYyjuhtvsGEMLK4N/ztV/ImP40BjIDyMgBQAeAMsQYVFQ==", "dev": true, "dependencies": { "@babel/helper-plugin-utils": "^7.13.0", @@ -456,10 +456,24 @@ "@babel/core": "^7.0.0-0" } }, + "node_modules/@babel/plugin-proposal-class-static-block": { + "version": "7.14.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-class-static-block/-/plugin-proposal-class-static-block-7.14.3.tgz", + "integrity": "sha512-HEjzp5q+lWSjAgJtSluFDrGGosmwTgKwCXdDQZvhKsRlwv3YdkUEqxNrrjesJd+B9E9zvr1PVPVBvhYZ9msjvQ==", + "dev": true, + "dependencies": { + "@babel/helper-create-class-features-plugin": "^7.14.3", + "@babel/helper-plugin-utils": "^7.13.0", + "@babel/plugin-syntax-class-static-block": "^7.12.13" + }, + "peerDependencies": { + "@babel/core": "^7.12.0" + } + }, "node_modules/@babel/plugin-proposal-dynamic-import": { - "version": "7.13.8", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-dynamic-import/-/plugin-proposal-dynamic-import-7.13.8.tgz", - "integrity": "sha512-ONWKj0H6+wIRCkZi9zSbZtE/r73uOhMVHh256ys0UzfM7I3d4n+spZNWjOnJv2gzopumP2Wxi186vI8N0Y2JyQ==", + "version": "7.14.2", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-dynamic-import/-/plugin-proposal-dynamic-import-7.14.2.tgz", + "integrity": "sha512-oxVQZIWFh91vuNEMKltqNsKLFWkOIyJc95k2Gv9lWVyDfPUQGSSlbDEgWuJUU1afGE9WwlzpucMZ3yDRHIItkA==", "dev": true, "dependencies": { "@babel/helper-plugin-utils": "^7.13.0", @@ -470,12 +484,12 @@ } }, "node_modules/@babel/plugin-proposal-export-namespace-from": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-export-namespace-from/-/plugin-proposal-export-namespace-from-7.12.13.tgz", - "integrity": "sha512-INAgtFo4OnLN3Y/j0VwAgw3HDXcDtX+C/erMvWzuV9v71r7urb6iyMXu7eM9IgLr1ElLlOkaHjJ0SbCmdOQ3Iw==", + "version": "7.14.2", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-export-namespace-from/-/plugin-proposal-export-namespace-from-7.14.2.tgz", + "integrity": "sha512-sRxW3z3Zp3pFfLAgVEvzTFutTXax837oOatUIvSG9o5gRj9mKwm3br1Se5f4QalTQs9x4AzlA/HrCWbQIHASUQ==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.12.13", + "@babel/helper-plugin-utils": "^7.13.0", "@babel/plugin-syntax-export-namespace-from": "^7.8.3" }, "peerDependencies": { @@ -483,9 +497,9 @@ } }, "node_modules/@babel/plugin-proposal-json-strings": { - "version": "7.13.8", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-json-strings/-/plugin-proposal-json-strings-7.13.8.tgz", - "integrity": "sha512-w4zOPKUFPX1mgvTmL/fcEqy34hrQ1CRcGxdphBc6snDnnqJ47EZDIyop6IwXzAC8G916hsIuXB2ZMBCExC5k7Q==", + "version": "7.14.2", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-json-strings/-/plugin-proposal-json-strings-7.14.2.tgz", + "integrity": "sha512-w2DtsfXBBJddJacXMBhElGEYqCZQqN99Se1qeYn8DVLB33owlrlLftIbMzn5nz1OITfDVknXF433tBrLEAOEjA==", "dev": true, "dependencies": { "@babel/helper-plugin-utils": "^7.13.0", @@ -496,9 +510,9 @@ } }, "node_modules/@babel/plugin-proposal-logical-assignment-operators": { - "version": "7.13.8", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-logical-assignment-operators/-/plugin-proposal-logical-assignment-operators-7.13.8.tgz", - "integrity": "sha512-aul6znYB4N4HGweImqKn59Su9RS8lbUIqxtXTOcAGtNIDczoEFv+l1EhmX8rUBp3G1jMjKJm8m0jXVp63ZpS4A==", + "version": "7.14.2", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-logical-assignment-operators/-/plugin-proposal-logical-assignment-operators-7.14.2.tgz", + "integrity": "sha512-1JAZtUrqYyGsS7IDmFeaem+/LJqujfLZ2weLR9ugB0ufUPjzf8cguyVT1g5im7f7RXxuLq1xUxEzvm68uYRtGg==", "dev": true, "dependencies": { "@babel/helper-plugin-utils": "^7.13.0", @@ -509,9 +523,9 @@ } }, "node_modules/@babel/plugin-proposal-nullish-coalescing-operator": { - "version": "7.13.8", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-nullish-coalescing-operator/-/plugin-proposal-nullish-coalescing-operator-7.13.8.tgz", - "integrity": "sha512-iePlDPBn//UhxExyS9KyeYU7RM9WScAG+D3Hhno0PLJebAEpDZMocbDe64eqynhNAnwz/vZoL/q/QB2T1OH39A==", + "version": "7.14.2", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-nullish-coalescing-operator/-/plugin-proposal-nullish-coalescing-operator-7.14.2.tgz", + "integrity": "sha512-ebR0zU9OvI2N4qiAC38KIAK75KItpIPTpAtd2r4OZmMFeKbKJpUFLYP2EuDut82+BmYi8sz42B+TfTptJ9iG5Q==", "dev": true, "dependencies": { "@babel/helper-plugin-utils": "^7.13.0", @@ -522,12 +536,12 @@ } }, "node_modules/@babel/plugin-proposal-numeric-separator": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-numeric-separator/-/plugin-proposal-numeric-separator-7.12.13.tgz", - "integrity": "sha512-O1jFia9R8BUCl3ZGB7eitaAPu62TXJRHn7rh+ojNERCFyqRwJMTmhz+tJ+k0CwI6CLjX/ee4qW74FSqlq9I35w==", + "version": "7.14.2", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-numeric-separator/-/plugin-proposal-numeric-separator-7.14.2.tgz", + "integrity": "sha512-DcTQY9syxu9BpU3Uo94fjCB3LN9/hgPS8oUL7KrSW3bA2ePrKZZPJcc5y0hoJAM9dft3pGfErtEUvxXQcfLxUg==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.12.13", + "@babel/helper-plugin-utils": "^7.13.0", "@babel/plugin-syntax-numeric-separator": "^7.10.4" }, "peerDependencies": { @@ -535,25 +549,25 @@ } }, "node_modules/@babel/plugin-proposal-object-rest-spread": { - "version": "7.13.8", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.13.8.tgz", - "integrity": "sha512-DhB2EuB1Ih7S3/IRX5AFVgZ16k3EzfRbq97CxAVI1KSYcW+lexV8VZb7G7L8zuPVSdQMRn0kiBpf/Yzu9ZKH0g==", + "version": "7.14.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.14.4.tgz", + "integrity": "sha512-AYosOWBlyyXEagrPRfLJ1enStufsr7D1+ddpj8OLi9k7B6+NdZ0t/9V7Fh+wJ4g2Jol8z2JkgczYqtWrZd4vbA==", "dev": true, "dependencies": { - "@babel/compat-data": "^7.13.8", - "@babel/helper-compilation-targets": "^7.13.8", + "@babel/compat-data": "^7.14.4", + "@babel/helper-compilation-targets": "^7.14.4", "@babel/helper-plugin-utils": "^7.13.0", "@babel/plugin-syntax-object-rest-spread": "^7.8.3", - "@babel/plugin-transform-parameters": "^7.13.0" + "@babel/plugin-transform-parameters": "^7.14.2" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, "node_modules/@babel/plugin-proposal-optional-catch-binding": { - "version": "7.13.8", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-optional-catch-binding/-/plugin-proposal-optional-catch-binding-7.13.8.tgz", - "integrity": "sha512-0wS/4DUF1CuTmGo+NiaHfHcVSeSLj5S3e6RivPTg/2k3wOv3jO35tZ6/ZWsQhQMvdgI7CwphjQa/ccarLymHVA==", + "version": "7.14.2", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-optional-catch-binding/-/plugin-proposal-optional-catch-binding-7.14.2.tgz", + "integrity": "sha512-XtkJsmJtBaUbOxZsNk0Fvrv8eiqgneug0A6aqLFZ4TSkar2L5dSXWcnUKHgmjJt49pyB/6ZHvkr3dPgl9MOWRQ==", "dev": true, "dependencies": { "@babel/helper-plugin-utils": "^7.13.0", @@ -564,9 +578,9 @@ } }, "node_modules/@babel/plugin-proposal-optional-chaining": { - "version": "7.13.12", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-optional-chaining/-/plugin-proposal-optional-chaining-7.13.12.tgz", - "integrity": "sha512-fcEdKOkIB7Tf4IxrgEVeFC4zeJSTr78no9wTdBuZZbqF64kzllU0ybo2zrzm7gUQfxGhBgq4E39oRs8Zx/RMYQ==", + "version": "7.14.2", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-optional-chaining/-/plugin-proposal-optional-chaining-7.14.2.tgz", + "integrity": "sha512-qQByMRPwMZJainfig10BoaDldx/+VDtNcrA7qdNaEOAj6VXud+gfrkA8j4CRAU5HjnWREXqIpSpH30qZX1xivA==", "dev": true, "dependencies": { "@babel/helper-plugin-utils": "^7.13.0", @@ -590,6 +604,21 @@ "@babel/core": "^7.0.0-0" } }, + "node_modules/@babel/plugin-proposal-private-property-in-object": { + "version": "7.14.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-private-property-in-object/-/plugin-proposal-private-property-in-object-7.14.0.tgz", + "integrity": "sha512-59ANdmEwwRUkLjB7CRtwJxxwtjESw+X2IePItA+RGQh+oy5RmpCh/EvVVvh5XQc3yxsm5gtv0+i9oBZhaDNVTg==", + "dev": true, + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.12.13", + "@babel/helper-create-class-features-plugin": "^7.14.0", + "@babel/helper-plugin-utils": "^7.13.0", + "@babel/plugin-syntax-private-property-in-object": "^7.14.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, "node_modules/@babel/plugin-proposal-unicode-property-regex": { "version": "7.12.13", "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-unicode-property-regex/-/plugin-proposal-unicode-property-regex-7.12.13.tgz", @@ -642,6 +671,18 @@ "@babel/core": "^7.0.0-0" } }, + "node_modules/@babel/plugin-syntax-class-static-block": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-class-static-block/-/plugin-syntax-class-static-block-7.12.13.tgz", + "integrity": "sha512-ZmKQ0ZXR0nYpHZIIuj9zE7oIqCx2hw9TKi+lIo73NNrMPAZGHfS92/VRV0ZmPj6H2ffBgyFHXvJ5NYsNeEaP2A==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.12.13" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, "node_modules/@babel/plugin-syntax-dynamic-import": { "version": "7.8.3", "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-dynamic-import/-/plugin-syntax-dynamic-import-7.8.3.tgz", @@ -762,6 +803,18 @@ "@babel/core": "^7.0.0-0" } }, + "node_modules/@babel/plugin-syntax-private-property-in-object": { + "version": "7.14.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-private-property-in-object/-/plugin-syntax-private-property-in-object-7.14.0.tgz", + "integrity": "sha512-bda3xF8wGl5/5btF794utNOL0Jw+9jE5C1sLZcoK7c4uonE/y3iQiyG+KbkF3WBV/paX58VCpjhxLPkdj5Fe4w==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.13.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, "node_modules/@babel/plugin-syntax-top-level-await": { "version": "7.12.13", "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.12.13.tgz", @@ -813,9 +866,9 @@ } }, "node_modules/@babel/plugin-transform-block-scoping": { - "version": "7.13.16", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.13.16.tgz", - "integrity": "sha512-ad3PHUxGnfWF4Efd3qFuznEtZKoBp0spS+DgqzVzRPV7urEBvPLue3y2j80w4Jf2YLzZHj8TOv/Lmvdmh3b2xg==", + "version": "7.14.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.14.4.tgz", + "integrity": "sha512-5KdpkGxsZlTk+fPleDtGKsA+pon28+ptYmMO8GBSa5fHERCJWAzj50uAfCKBqq42HO+Zot6JF1x37CRprwmN4g==", "dev": true, "dependencies": { "@babel/helper-plugin-utils": "^7.13.0" @@ -825,16 +878,16 @@ } }, "node_modules/@babel/plugin-transform-classes": { - "version": "7.13.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.13.0.tgz", - "integrity": "sha512-9BtHCPUARyVH1oXGcSJD3YpsqRLROJx5ZNP6tN5vnk17N0SVf9WCtf8Nuh1CFmgByKKAIMstitKduoCmsaDK5g==", + "version": "7.14.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.14.4.tgz", + "integrity": "sha512-p73t31SIj6y94RDVX57rafVjttNr8MvKEgs5YFatNB/xC68zM3pyosuOEcQmYsYlyQaGY9R7rAULVRcat5FKJQ==", "dev": true, "dependencies": { "@babel/helper-annotate-as-pure": "^7.12.13", - "@babel/helper-function-name": "^7.12.13", + "@babel/helper-function-name": "^7.14.2", "@babel/helper-optimise-call-expression": "^7.12.13", "@babel/helper-plugin-utils": "^7.13.0", - "@babel/helper-replace-supers": "^7.13.0", + "@babel/helper-replace-supers": "^7.14.4", "@babel/helper-split-export-declaration": "^7.12.13", "globals": "^11.1.0" }, @@ -855,9 +908,9 @@ } }, "node_modules/@babel/plugin-transform-destructuring": { - "version": "7.13.17", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.13.17.tgz", - "integrity": "sha512-UAUqiLv+uRLO+xuBKKMEpC+t7YRNVRqBsWWq1yKXbBZBje/t3IXCiSinZhjn/DC3qzBfICeYd2EFGEbHsh5RLA==", + "version": "7.14.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.14.4.tgz", + "integrity": "sha512-JyywKreTCGTUsL1OKu1A3ms/R1sTP0WxbpXlALeGzF53eB3bxtNkYdMj9SDgK7g6ImPy76J5oYYKoTtQImlhQA==", "dev": true, "dependencies": { "@babel/helper-plugin-utils": "^7.13.0" @@ -954,12 +1007,12 @@ } }, "node_modules/@babel/plugin-transform-modules-amd": { - "version": "7.13.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.13.0.tgz", - "integrity": "sha512-EKy/E2NHhY/6Vw5d1k3rgoobftcNUmp9fGjb9XZwQLtTctsRBOTRO7RHHxfIky1ogMN5BxN7p9uMA3SzPfotMQ==", + "version": "7.14.2", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.14.2.tgz", + "integrity": "sha512-hPC6XBswt8P3G2D1tSV2HzdKvkqOpmbyoy+g73JG0qlF/qx2y3KaMmXb1fLrpmWGLZYA0ojCvaHdzFWjlmV+Pw==", "dev": true, "dependencies": { - "@babel/helper-module-transforms": "^7.13.0", + "@babel/helper-module-transforms": "^7.14.2", "@babel/helper-plugin-utils": "^7.13.0", "babel-plugin-dynamic-import-node": "^2.3.3" }, @@ -968,14 +1021,14 @@ } }, "node_modules/@babel/plugin-transform-modules-commonjs": { - "version": "7.13.8", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.13.8.tgz", - "integrity": "sha512-9QiOx4MEGglfYZ4XOnU79OHr6vIWUakIj9b4mioN8eQIoEh+pf5p/zEB36JpDFWA12nNMiRf7bfoRvl9Rn79Bw==", + "version": "7.14.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.14.0.tgz", + "integrity": "sha512-EX4QePlsTaRZQmw9BsoPeyh5OCtRGIhwfLquhxGp5e32w+dyL8htOcDwamlitmNFK6xBZYlygjdye9dbd9rUlQ==", "dev": true, "dependencies": { - "@babel/helper-module-transforms": "^7.13.0", + "@babel/helper-module-transforms": "^7.14.0", "@babel/helper-plugin-utils": "^7.13.0", - "@babel/helper-simple-access": "^7.12.13", + "@babel/helper-simple-access": "^7.13.12", "babel-plugin-dynamic-import-node": "^2.3.3" }, "peerDependencies": { @@ -999,12 +1052,12 @@ } }, "node_modules/@babel/plugin-transform-modules-umd": { - "version": "7.13.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.13.0.tgz", - "integrity": "sha512-D/ILzAh6uyvkWjKKyFE/W0FzWwasv6vPTSqPcjxFqn6QpX3u8DjRVliq4F2BamO2Wee/om06Vyy+vPkNrd4wxw==", + "version": "7.14.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.14.0.tgz", + "integrity": "sha512-nPZdnWtXXeY7I87UZr9VlsWme3Y0cfFFE41Wbxz4bbaexAjNMInXPFUpRRUJ8NoMm0Cw+zxbqjdPmLhcjfazMw==", "dev": true, "dependencies": { - "@babel/helper-module-transforms": "^7.13.0", + "@babel/helper-module-transforms": "^7.14.0", "@babel/helper-plugin-utils": "^7.13.0" }, "peerDependencies": { @@ -1049,9 +1102,9 @@ } }, "node_modules/@babel/plugin-transform-parameters": { - "version": "7.13.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.13.0.tgz", - "integrity": "sha512-Jt8k/h/mIwE2JFEOb3lURoY5C85ETcYPnbuAJ96zRBzh1XHtQZfs62ChZ6EP22QlC8c7Xqr9q+e1SU5qttwwjw==", + "version": "7.14.2", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.14.2.tgz", + "integrity": "sha512-NxoVmA3APNCC1JdMXkdYXuQS+EMdqy0vIwyDHeKHiJKRxmp1qGSdb0JLEIoPRhkx6H/8Qi3RJ3uqOCYw8giy9A==", "dev": true, "dependencies": { "@babel/helper-plugin-utils": "^7.13.0" @@ -1183,31 +1236,34 @@ } }, "node_modules/@babel/preset-env": { - "version": "7.13.15", - "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.13.15.tgz", - "integrity": "sha512-D4JAPMXcxk69PKe81jRJ21/fP/uYdcTZ3hJDF5QX2HSI9bBxxYw/dumdR6dGumhjxlprHPE4XWoPaqzZUVy2MA==", + "version": "7.14.4", + "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.14.4.tgz", + "integrity": "sha512-GwMMsuAnDtULyOtuxHhzzuSRxFeP0aR/LNzrHRzP8y6AgDNgqnrfCCBm/1cRdTU75tRs28Eh76poHLcg9VF0LA==", "dev": true, "dependencies": { - "@babel/compat-data": "^7.13.15", - "@babel/helper-compilation-targets": "^7.13.13", + "@babel/compat-data": "^7.14.4", + "@babel/helper-compilation-targets": "^7.14.4", "@babel/helper-plugin-utils": "^7.13.0", "@babel/helper-validator-option": "^7.12.17", "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": "^7.13.12", - "@babel/plugin-proposal-async-generator-functions": "^7.13.15", + "@babel/plugin-proposal-async-generator-functions": "^7.14.2", "@babel/plugin-proposal-class-properties": "^7.13.0", - "@babel/plugin-proposal-dynamic-import": "^7.13.8", - "@babel/plugin-proposal-export-namespace-from": "^7.12.13", - "@babel/plugin-proposal-json-strings": "^7.13.8", - "@babel/plugin-proposal-logical-assignment-operators": "^7.13.8", - "@babel/plugin-proposal-nullish-coalescing-operator": "^7.13.8", - "@babel/plugin-proposal-numeric-separator": "^7.12.13", - "@babel/plugin-proposal-object-rest-spread": "^7.13.8", - "@babel/plugin-proposal-optional-catch-binding": "^7.13.8", - "@babel/plugin-proposal-optional-chaining": "^7.13.12", + "@babel/plugin-proposal-class-static-block": "^7.14.3", + "@babel/plugin-proposal-dynamic-import": "^7.14.2", + "@babel/plugin-proposal-export-namespace-from": "^7.14.2", + "@babel/plugin-proposal-json-strings": "^7.14.2", + "@babel/plugin-proposal-logical-assignment-operators": "^7.14.2", + "@babel/plugin-proposal-nullish-coalescing-operator": "^7.14.2", + "@babel/plugin-proposal-numeric-separator": "^7.14.2", + "@babel/plugin-proposal-object-rest-spread": "^7.14.4", + "@babel/plugin-proposal-optional-catch-binding": "^7.14.2", + "@babel/plugin-proposal-optional-chaining": "^7.14.2", "@babel/plugin-proposal-private-methods": "^7.13.0", + "@babel/plugin-proposal-private-property-in-object": "^7.14.0", "@babel/plugin-proposal-unicode-property-regex": "^7.12.13", "@babel/plugin-syntax-async-generators": "^7.8.4", "@babel/plugin-syntax-class-properties": "^7.12.13", + "@babel/plugin-syntax-class-static-block": "^7.12.13", "@babel/plugin-syntax-dynamic-import": "^7.8.3", "@babel/plugin-syntax-export-namespace-from": "^7.8.3", "@babel/plugin-syntax-json-strings": "^7.8.3", @@ -1217,14 +1273,15 @@ "@babel/plugin-syntax-object-rest-spread": "^7.8.3", "@babel/plugin-syntax-optional-catch-binding": "^7.8.3", "@babel/plugin-syntax-optional-chaining": "^7.8.3", + "@babel/plugin-syntax-private-property-in-object": "^7.14.0", "@babel/plugin-syntax-top-level-await": "^7.12.13", "@babel/plugin-transform-arrow-functions": "^7.13.0", "@babel/plugin-transform-async-to-generator": "^7.13.0", "@babel/plugin-transform-block-scoped-functions": "^7.12.13", - "@babel/plugin-transform-block-scoping": "^7.12.13", - "@babel/plugin-transform-classes": "^7.13.0", + "@babel/plugin-transform-block-scoping": "^7.14.4", + "@babel/plugin-transform-classes": "^7.14.4", "@babel/plugin-transform-computed-properties": "^7.13.0", - "@babel/plugin-transform-destructuring": "^7.13.0", + "@babel/plugin-transform-destructuring": "^7.14.4", "@babel/plugin-transform-dotall-regex": "^7.12.13", "@babel/plugin-transform-duplicate-keys": "^7.12.13", "@babel/plugin-transform-exponentiation-operator": "^7.12.13", @@ -1232,14 +1289,14 @@ "@babel/plugin-transform-function-name": "^7.12.13", "@babel/plugin-transform-literals": "^7.12.13", "@babel/plugin-transform-member-expression-literals": "^7.12.13", - "@babel/plugin-transform-modules-amd": "^7.13.0", - "@babel/plugin-transform-modules-commonjs": "^7.13.8", + "@babel/plugin-transform-modules-amd": "^7.14.2", + "@babel/plugin-transform-modules-commonjs": "^7.14.0", "@babel/plugin-transform-modules-systemjs": "^7.13.8", - "@babel/plugin-transform-modules-umd": "^7.13.0", + "@babel/plugin-transform-modules-umd": "^7.14.0", "@babel/plugin-transform-named-capturing-groups-regex": "^7.12.13", "@babel/plugin-transform-new-target": "^7.12.13", "@babel/plugin-transform-object-super": "^7.12.13", - "@babel/plugin-transform-parameters": "^7.13.0", + "@babel/plugin-transform-parameters": "^7.14.2", "@babel/plugin-transform-property-literals": "^7.12.13", "@babel/plugin-transform-regenerator": "^7.13.15", "@babel/plugin-transform-reserved-words": "^7.12.13", @@ -1251,7 +1308,7 @@ "@babel/plugin-transform-unicode-escapes": "^7.12.13", "@babel/plugin-transform-unicode-regex": "^7.12.13", "@babel/preset-modules": "^0.1.4", - "@babel/types": "^7.13.14", + "@babel/types": "^7.14.4", "babel-plugin-polyfill-corejs2": "^0.2.0", "babel-plugin-polyfill-corejs3": "^0.2.0", "babel-plugin-polyfill-regenerator": "^0.2.0", @@ -1299,28 +1356,28 @@ } }, "node_modules/@babel/traverse": { - "version": "7.13.17", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.13.17.tgz", - "integrity": "sha512-BMnZn0R+X6ayqm3C3To7o1j7Q020gWdqdyP50KEoVqaCO2c/Im7sYZSmVgvefp8TTMQ+9CtwuBp0Z1CZ8V3Pvg==", + "version": "7.14.2", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.14.2.tgz", + "integrity": "sha512-TsdRgvBFHMyHOOzcP9S6QU0QQtjxlRpEYOy3mcCO5RgmC305ki42aSAmfZEMSSYBla2oZ9BMqYlncBaKmD/7iA==", "dev": true, "dependencies": { "@babel/code-frame": "^7.12.13", - "@babel/generator": "^7.13.16", - "@babel/helper-function-name": "^7.12.13", + "@babel/generator": "^7.14.2", + "@babel/helper-function-name": "^7.14.2", "@babel/helper-split-export-declaration": "^7.12.13", - "@babel/parser": "^7.13.16", - "@babel/types": "^7.13.17", + "@babel/parser": "^7.14.2", + "@babel/types": "^7.14.2", "debug": "^4.1.0", "globals": "^11.1.0" } }, "node_modules/@babel/types": { - "version": "7.13.17", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.13.17.tgz", - "integrity": "sha512-RawydLgxbOPDlTLJNtoIypwdmAy//uQIzlKt2+iBiJaRlVuI6QLUxVAyWGNfOzp8Yu4L4lLIacoCyTNtpb4wiA==", + "version": "7.14.4", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.14.4.tgz", + "integrity": "sha512-lCj4aIs0xUefJFQnwwQv2Bxg7Omd6bgquZ6LGC+gGMh6/s5qDVfjuCMlDmYQ15SLsWHd9n+X3E75lKIhl5Lkiw==", "dev": true, "dependencies": { - "@babel/helper-validator-identifier": "^7.12.11", + "@babel/helper-validator-identifier": "^7.14.0", "to-fast-properties": "^2.0.0" } }, @@ -1347,17 +1404,16 @@ } }, "node_modules/@commitlint/cli": { - "version": "12.1.1", - "resolved": "https://registry.npmjs.org/@commitlint/cli/-/cli-12.1.1.tgz", - "integrity": "sha512-SB67/s6VJ50seoPx/Sr2gj1fMzKrx+udgarecGdr8h43ah+M2e22gjQJ7xHv5KwyPQ+6ug1YOMCL34ubT4zupQ==", + "version": "12.1.4", + "resolved": "https://registry.npmjs.org/@commitlint/cli/-/cli-12.1.4.tgz", + "integrity": "sha512-ZR1WjXLvqEffYyBPT0XdnSxtt3Ty1TMoujEtseW5o3vPnkA1UNashAMjQVg/oELqfaiAMnDw8SERPMN0e/0kLg==", "dev": true, "dependencies": { - "@commitlint/format": "^12.1.1", - "@commitlint/lint": "^12.1.1", - "@commitlint/load": "^12.1.1", - "@commitlint/read": "^12.1.1", - "@commitlint/types": "^12.1.1", - "get-stdin": "8.0.0", + "@commitlint/format": "^12.1.4", + "@commitlint/lint": "^12.1.4", + "@commitlint/load": "^12.1.4", + "@commitlint/read": "^12.1.4", + "@commitlint/types": "^12.1.4", "lodash": "^4.17.19", "resolve-from": "5.0.0", "resolve-global": "1.0.0", @@ -1371,9 +1427,9 @@ } }, "node_modules/@commitlint/config-conventional": { - "version": "12.1.1", - "resolved": "https://registry.npmjs.org/@commitlint/config-conventional/-/config-conventional-12.1.1.tgz", - "integrity": "sha512-15CqbXMsQiEb0qbzjEHe2OkzaXPYSp7RxaS6KoSVk/4W0QiigquavQ+M0huBZze92h0lMS6Pxoq4AJ5CQ3D+iQ==", + "version": "12.1.4", + "resolved": "https://registry.npmjs.org/@commitlint/config-conventional/-/config-conventional-12.1.4.tgz", + "integrity": "sha512-ZIdzmdy4o4WyqywMEpprRCrehjCSQrHkaRTVZV411GyLigFQHlEBSJITAihLAWe88Qy/8SyoIe5uKvAsV5vRqQ==", "dev": true, "dependencies": { "conventional-changelog-conventionalcommits": "^4.3.1" @@ -1383,12 +1439,12 @@ } }, "node_modules/@commitlint/ensure": { - "version": "12.1.1", - "resolved": "https://registry.npmjs.org/@commitlint/ensure/-/ensure-12.1.1.tgz", - "integrity": "sha512-XEUQvUjzBVQM7Uv8vYz+c7PDukFvx0AvQEyX/V+PaTkCK/xPvexu7FLbFwvypjSt9BPMf+T/rhB1hVmldkd6lw==", + "version": "12.1.4", + "resolved": "https://registry.npmjs.org/@commitlint/ensure/-/ensure-12.1.4.tgz", + "integrity": "sha512-MxHIBuAG9M4xl33qUfIeMSasbv3ktK0W+iygldBxZOL4QSYC2Gn66pZAQMnV9o3V+sVFHoAK2XUKqBAYrgbEqw==", "dev": true, "dependencies": { - "@commitlint/types": "^12.1.1", + "@commitlint/types": "^12.1.4", "lodash": "^4.17.19" }, "engines": { @@ -1396,21 +1452,21 @@ } }, "node_modules/@commitlint/execute-rule": { - "version": "12.1.1", - "resolved": "https://registry.npmjs.org/@commitlint/execute-rule/-/execute-rule-12.1.1.tgz", - "integrity": "sha512-6mplMGvLCKF5LieL7BRhydpg32tm6LICnWQADrWU4S5g9PKi2utNvhiaiuNPoHUXr29RdbNaGNcyyPv8DSjJsQ==", + "version": "12.1.4", + "resolved": "https://registry.npmjs.org/@commitlint/execute-rule/-/execute-rule-12.1.4.tgz", + "integrity": "sha512-h2S1j8SXyNeABb27q2Ok2vD1WfxJiXvOttKuRA9Or7LN6OQoC/KtT3844CIhhWNteNMu/wE0gkTqGxDVAnJiHg==", "dev": true, "engines": { "node": ">=v10" } }, "node_modules/@commitlint/format": { - "version": "12.1.1", - "resolved": "https://registry.npmjs.org/@commitlint/format/-/format-12.1.1.tgz", - "integrity": "sha512-bTAoOryTFLqls17JTaRwk2WDVOP0NwuG4F/JPK8RaF6DMZNVQTfajkgTxFENNZRnESfau1BvivvEXfUAW2ZsvA==", + "version": "12.1.4", + "resolved": "https://registry.npmjs.org/@commitlint/format/-/format-12.1.4.tgz", + "integrity": "sha512-h28ucMaoRjVvvgS6Bdf85fa/+ZZ/iu1aeWGCpURnQV7/rrVjkhNSjZwGlCOUd5kDV1EnZ5XdI7L18SUpRjs26g==", "dev": true, "dependencies": { - "@commitlint/types": "^12.1.1", + "@commitlint/types": "^12.1.4", "chalk": "^4.0.0" }, "engines": { @@ -1488,12 +1544,12 @@ } }, "node_modules/@commitlint/is-ignored": { - "version": "12.1.1", - "resolved": "https://registry.npmjs.org/@commitlint/is-ignored/-/is-ignored-12.1.1.tgz", - "integrity": "sha512-Sn4fsnWX+wLAJOD/UZeoVruB98te1TyPYRiDEq0MhRJAQIrP+7jE/O3/ass68AAMq00HvH3OK9kt4UBXggcGjA==", + "version": "12.1.4", + "resolved": "https://registry.npmjs.org/@commitlint/is-ignored/-/is-ignored-12.1.4.tgz", + "integrity": "sha512-uTu2jQU2SKvtIRVLOzMQo3KxDtO+iJ1p0olmncwrqy4AfPLgwoyCP2CiULq5M7xpR3+dE3hBlZXbZTQbD7ycIw==", "dev": true, "dependencies": { - "@commitlint/types": "^12.1.1", + "@commitlint/types": "^12.1.4", "semver": "7.3.5" }, "engines": { @@ -1516,29 +1572,29 @@ } }, "node_modules/@commitlint/lint": { - "version": "12.1.1", - "resolved": "https://registry.npmjs.org/@commitlint/lint/-/lint-12.1.1.tgz", - "integrity": "sha512-FFFPpku/E0svL1jaUVqosuZJDDWiNWYBlUw5ZEljh3MwWRcoaWtMIX5bseX+IvHpFZsCTAiBs1kCgNulCi0UvA==", + "version": "12.1.4", + "resolved": "https://registry.npmjs.org/@commitlint/lint/-/lint-12.1.4.tgz", + "integrity": "sha512-1kZ8YDp4to47oIPFELUFGLiLumtPNKJigPFDuHt2+f3Q3IKdQ0uk53n3CPl4uoyso/Og/EZvb1mXjFR/Yce4cA==", "dev": true, "dependencies": { - "@commitlint/is-ignored": "^12.1.1", - "@commitlint/parse": "^12.1.1", - "@commitlint/rules": "^12.1.1", - "@commitlint/types": "^12.1.1" + "@commitlint/is-ignored": "^12.1.4", + "@commitlint/parse": "^12.1.4", + "@commitlint/rules": "^12.1.4", + "@commitlint/types": "^12.1.4" }, "engines": { "node": ">=v10" } }, "node_modules/@commitlint/load": { - "version": "12.1.1", - "resolved": "https://registry.npmjs.org/@commitlint/load/-/load-12.1.1.tgz", - "integrity": "sha512-qOQtgNdJRULUQWP9jkpTwhj7aEtnqUtqeUpbQ9rjS+GIUST65HZbteNUX4S0mAEGPWqy2aK5xGd73cUfFSvuuw==", + "version": "12.1.4", + "resolved": "https://registry.npmjs.org/@commitlint/load/-/load-12.1.4.tgz", + "integrity": "sha512-Keszi0IOjRzKfxT+qES/n+KZyLrxy79RQz8wWgssCboYjKEp+wC+fLCgbiMCYjI5k31CIzIOq/16J7Ycr0C0EA==", "dev": true, "dependencies": { - "@commitlint/execute-rule": "^12.1.1", - "@commitlint/resolve-extends": "^12.1.1", - "@commitlint/types": "^12.1.1", + "@commitlint/execute-rule": "^12.1.4", + "@commitlint/resolve-extends": "^12.1.4", + "@commitlint/types": "^12.1.4", "chalk": "^4.0.0", "cosmiconfig": "^7.0.0", "lodash": "^4.17.19", @@ -1619,21 +1675,21 @@ } }, "node_modules/@commitlint/message": { - "version": "12.1.1", - "resolved": "https://registry.npmjs.org/@commitlint/message/-/message-12.1.1.tgz", - "integrity": "sha512-RakDSLAiOligXjhbLahV8HowF4K75pZIcs0+Ii9Q8Gz5H3DWf1Ngit7alFTWfcbf/+DTjSzVPov5HiwQZPIBUg==", + "version": "12.1.4", + "resolved": "https://registry.npmjs.org/@commitlint/message/-/message-12.1.4.tgz", + "integrity": "sha512-6QhalEKsKQ/Y16/cTk5NH4iByz26fqws2ub+AinHPtM7Io0jy4e3rym9iE+TkEqiqWZlUigZnTwbPvRJeSUBaA==", "dev": true, "engines": { "node": ">=v10" } }, "node_modules/@commitlint/parse": { - "version": "12.1.1", - "resolved": "https://registry.npmjs.org/@commitlint/parse/-/parse-12.1.1.tgz", - "integrity": "sha512-nuljIvAbBDr93DgL0wCArftEIhjSghawAwhvrKNV9FFcqAJqfVqitwMxJrNDCQ5pgUMCSKULLOEv+dA0bLlTEQ==", + "version": "12.1.4", + "resolved": "https://registry.npmjs.org/@commitlint/parse/-/parse-12.1.4.tgz", + "integrity": "sha512-yqKSAsK2V4X/HaLb/yYdrzs6oD/G48Ilt0EJ2Mp6RJeWYxG14w/Out6JrneWnr/cpzemyN5hExOg6+TB19H/Lw==", "dev": true, "dependencies": { - "@commitlint/types": "^12.1.1", + "@commitlint/types": "^12.1.4", "conventional-changelog-angular": "^5.0.11", "conventional-commits-parser": "^3.0.0" }, @@ -1642,13 +1698,13 @@ } }, "node_modules/@commitlint/read": { - "version": "12.1.1", - "resolved": "https://registry.npmjs.org/@commitlint/read/-/read-12.1.1.tgz", - "integrity": "sha512-1k0CQEoZIdixvmqZRKEcWdj2XiKS7SlizEOJ1SE99Qui5d5FlBey8eaooTGgmpR6zObpIHJehtEPzM3VzUT3qA==", + "version": "12.1.4", + "resolved": "https://registry.npmjs.org/@commitlint/read/-/read-12.1.4.tgz", + "integrity": "sha512-TnPQSJgD8Aod5Xeo9W4SaYKRZmIahukjcCWJ2s5zb3ZYSmj6C85YD9cR5vlRyrZjj78ItLUV/X4FMWWVIS38Jg==", "dev": true, "dependencies": { - "@commitlint/top-level": "^12.1.1", - "@commitlint/types": "^12.1.1", + "@commitlint/top-level": "^12.1.4", + "@commitlint/types": "^12.1.4", "fs-extra": "^9.0.0", "git-raw-commits": "^2.0.0" }, @@ -1657,9 +1713,9 @@ } }, "node_modules/@commitlint/resolve-extends": { - "version": "12.1.1", - "resolved": "https://registry.npmjs.org/@commitlint/resolve-extends/-/resolve-extends-12.1.1.tgz", - "integrity": "sha512-/DXRt0S0U3o9lq5cc8OL1Lkx0IjW0HcDWjUkUXshAajBIKBYSJB8x/loNCi1krNEJ8SwLXUEFt5OLxNO6wE9yQ==", + "version": "12.1.4", + "resolved": "https://registry.npmjs.org/@commitlint/resolve-extends/-/resolve-extends-12.1.4.tgz", + "integrity": "sha512-R9CoUtsXLd6KSCfsZly04grsH6JVnWFmVtWgWs1KdDpdV+G3TSs37tColMFqglpkx3dsWu8dsPD56+D9YnJfqg==", "dev": true, "dependencies": { "import-fresh": "^3.0.0", @@ -1672,33 +1728,33 @@ } }, "node_modules/@commitlint/rules": { - "version": "12.1.1", - "resolved": "https://registry.npmjs.org/@commitlint/rules/-/rules-12.1.1.tgz", - "integrity": "sha512-oCcLF/ykcJfhM2DeeaDyrgdaiuKsqIPNocugdPj2WEyhSYqmx1/u18CV96LAtW+WyyiOLCCeiZwiQutx3T5nXg==", + "version": "12.1.4", + "resolved": "https://registry.npmjs.org/@commitlint/rules/-/rules-12.1.4.tgz", + "integrity": "sha512-W8m6ZSjg7RuIsIfzQiFHa48X5mcPXeKT9yjBxVmjHvYfS2FDBf1VxCQ7vO0JTVIdV4ohjZ0eKg/wxxUuZHJAZg==", "dev": true, "dependencies": { - "@commitlint/ensure": "^12.1.1", - "@commitlint/message": "^12.1.1", - "@commitlint/to-lines": "^12.1.1", - "@commitlint/types": "^12.1.1" + "@commitlint/ensure": "^12.1.4", + "@commitlint/message": "^12.1.4", + "@commitlint/to-lines": "^12.1.4", + "@commitlint/types": "^12.1.4" }, "engines": { "node": ">=v10" } }, "node_modules/@commitlint/to-lines": { - "version": "12.1.1", - "resolved": "https://registry.npmjs.org/@commitlint/to-lines/-/to-lines-12.1.1.tgz", - "integrity": "sha512-W23AH2XF5rI27MOAPSSr0TUDoRe7ZbFoRtYhFnPu2MBmcuDA9Tmfd9N5sM2tBXtdE26uq3SazwKqGt1OoGAilQ==", + "version": "12.1.4", + "resolved": "https://registry.npmjs.org/@commitlint/to-lines/-/to-lines-12.1.4.tgz", + "integrity": "sha512-TParumvbi8bdx3EdLXz2MaX+e15ZgoCqNUgqHsRLwyqLUTRbqCVkzrfadG1UcMQk8/d5aMbb327ZKG3Q4BRorw==", "dev": true, "engines": { "node": ">=v10" } }, "node_modules/@commitlint/top-level": { - "version": "12.1.1", - "resolved": "https://registry.npmjs.org/@commitlint/top-level/-/top-level-12.1.1.tgz", - "integrity": "sha512-g7uRbr81QEIg+pbii0OkE17Zh/2C/f6dSmiMDVRn1S0+hNHR1bENCh18hVUKcV/qKTUsKkFlhhWXM9mQBfxQJw==", + "version": "12.1.4", + "resolved": "https://registry.npmjs.org/@commitlint/top-level/-/top-level-12.1.4.tgz", + "integrity": "sha512-d4lTJrOT/dXlpY+NIt4CUl77ciEzYeNVc0VFgUQ6VA+b1rqYD2/VWFjBlWVOrklxtSDeKyuEhs36RGrppEFAvg==", "dev": true, "dependencies": { "find-up": "^5.0.0" @@ -1708,9 +1764,9 @@ } }, "node_modules/@commitlint/types": { - "version": "12.1.1", - "resolved": "https://registry.npmjs.org/@commitlint/types/-/types-12.1.1.tgz", - "integrity": "sha512-+qGH+s2Lo6qwacV2X3/ZypZwaAI84ift+1HBjXdXtI/q0F5NtmXucV3lcQOTviMTNiJhq4qWON2fjci2NItASw==", + "version": "12.1.4", + "resolved": "https://registry.npmjs.org/@commitlint/types/-/types-12.1.4.tgz", + "integrity": "sha512-KRIjdnWNUx6ywz+SJvjmNCbQKcKP6KArhjZhY2l+CWKxak0d77SOjggkMwFTiSgLODOwmuLTbarR2ZfWPiPMlw==", "dev": true, "dependencies": { "chalk": "^4.0.0" @@ -1799,15 +1855,15 @@ } }, "node_modules/@eslint/eslintrc": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-0.4.0.tgz", - "integrity": "sha512-2ZPCc+uNbjV5ERJr+aKSPRwZgKd2z11x0EgLvb1PURmUrn9QNRXFqje0Ldq454PfAVyaJYyrDvvIKSFP4NnBog==", + "version": "0.4.2", + "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-0.4.2.tgz", + "integrity": "sha512-8nmGq/4ycLpIwzvhI4tNDmQztZ8sp+hI7cyG8i1nQDhkAbRzHpXPidRAHlNvCZQpJTKw5ItIpMw9RSToGF00mg==", "dev": true, "dependencies": { "ajv": "^6.12.4", "debug": "^4.1.1", "espree": "^7.3.0", - "globals": "^12.1.0", + "globals": "^13.9.0", "ignore": "^4.0.6", "import-fresh": "^3.2.1", "js-yaml": "^3.13.1", @@ -1819,12 +1875,12 @@ } }, "node_modules/@eslint/eslintrc/node_modules/globals": { - "version": "12.4.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-12.4.0.tgz", - "integrity": "sha512-BWICuzzDvDoH54NHKCseDanAhE3CeDorgDL5MT6LMXXj2WCnd9UC2szdk4AWLfjdgNBCXLUanXYcpBBKOSWGwg==", + "version": "13.9.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-13.9.0.tgz", + "integrity": "sha512-74/FduwI/JaIrr1H8e71UbDE+5x7pIPs1C2rrwC52SszOo043CsWOZEMW7o2Y58xwm9b+0RBKDxY5n2sUpEFxA==", "dev": true, "dependencies": { - "type-fest": "^0.8.1" + "type-fest": "^0.20.2" }, "engines": { "node": ">=8" @@ -1834,12 +1890,15 @@ } }, "node_modules/@eslint/eslintrc/node_modules/type-fest": { - "version": "0.8.1", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.8.1.tgz", - "integrity": "sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==", + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", + "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==", "dev": true, "engines": { - "node": ">=8" + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/@istanbuljs/load-nyc-config": { @@ -3073,9 +3132,9 @@ } }, "node_modules/@webpack-cli/configtest": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/@webpack-cli/configtest/-/configtest-1.0.2.tgz", - "integrity": "sha512-3OBzV2fBGZ5TBfdW50cha1lHDVf9vlvRXnjpVbJBa20pSZQaSkMJZiwA8V2vD9ogyeXn8nU5s5A6mHyf5jhMzA==", + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/@webpack-cli/configtest/-/configtest-1.0.3.tgz", + "integrity": "sha512-WQs0ep98FXX2XBAfQpRbY0Ma6ADw8JR6xoIkaIiJIzClGOMqVRvPCWqndTxf28DgFopWan0EKtHtg/5W1h0Zkw==", "dev": true, "peerDependencies": { "webpack": "4.x.x || 5.x.x", @@ -3083,9 +3142,9 @@ } }, "node_modules/@webpack-cli/info": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/@webpack-cli/info/-/info-1.2.3.tgz", - "integrity": "sha512-lLek3/T7u40lTqzCGpC6CAbY6+vXhdhmwFRxZLMnRm6/sIF/7qMpT8MocXCRQfz0JAh63wpbXLMnsQ5162WS7Q==", + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/@webpack-cli/info/-/info-1.2.4.tgz", + "integrity": "sha512-ogE2T4+pLhTTPS/8MM3IjHn0IYplKM4HbVNMCWA9N4NrdPzunwenpCsqKEXyejMfRu6K8mhauIPYf8ZxWG5O6g==", "dev": true, "dependencies": { "envinfo": "^7.7.3" @@ -3095,9 +3154,9 @@ } }, "node_modules/@webpack-cli/serve": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/@webpack-cli/serve/-/serve-1.3.1.tgz", - "integrity": "sha512-0qXvpeYO6vaNoRBI52/UsbcaBydJCggoBBnIo/ovQQdn6fug0BgwsjorV1hVS7fMqGVTZGcVxv8334gjmbj5hw==", + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/@webpack-cli/serve/-/serve-1.4.0.tgz", + "integrity": "sha512-xgT/HqJ+uLWGX+Mzufusl3cgjAcnqYYskaB7o0vRcwOEfuu6hMzSILQpnIzFMGsTaeaX4Nnekl+6fadLbl1/Vg==", "dev": true, "peerDependencies": { "webpack-cli": "4.x.x" @@ -4021,14 +4080,14 @@ "dev": true }, "node_modules/browserslist": { - "version": "4.16.5", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.16.5.tgz", - "integrity": "sha512-C2HAjrM1AI/djrpAUU/tr4pml1DqLIzJKSLDBXBrNErl9ZCCTXdhwxdJjYc16953+mBWf7Lw+uUJgpgb8cN71A==", + "version": "4.16.6", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.16.6.tgz", + "integrity": "sha512-Wspk/PqO+4W9qp5iUTJsa1B/QrYn1keNCcEP5OvP7WBwT4KaDly0uONYmC6Xa3Z5IqnUgS0KcgLYu1l74x0ZXQ==", "dev": true, "dependencies": { - "caniuse-lite": "^1.0.30001214", + "caniuse-lite": "^1.0.30001219", "colorette": "^1.2.2", - "electron-to-chromium": "^1.3.719", + "electron-to-chromium": "^1.3.723", "escalade": "^3.1.1", "node-releases": "^1.1.71" }, @@ -4752,15 +4811,6 @@ "node": ">=0.8" } }, - "node_modules/contains-path": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/contains-path/-/contains-path-0.1.0.tgz", - "integrity": "sha1-/ozxhP9mcLa67wGp1IYaXL7EEgo=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/content-disposition": { "version": "0.5.3", "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.3.tgz", @@ -4887,86 +4937,6 @@ "node": ">=10" } }, - "node_modules/conventional-changelog-core/node_modules/find-up": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz", - "integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=", - "dev": true, - "dependencies": { - "locate-path": "^2.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/conventional-changelog-core/node_modules/locate-path": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz", - "integrity": "sha1-K1aLJl7slExtnA3pw9u7ygNUzY4=", - "dev": true, - "dependencies": { - "p-locate": "^2.0.0", - "path-exists": "^3.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/conventional-changelog-core/node_modules/p-limit": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-1.3.0.tgz", - "integrity": "sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q==", - "dev": true, - "dependencies": { - "p-try": "^1.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/conventional-changelog-core/node_modules/p-locate": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-2.0.0.tgz", - "integrity": "sha1-IKAQOyIqcMj9OcwuWAaA893l7EM=", - "dev": true, - "dependencies": { - "p-limit": "^1.1.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/conventional-changelog-core/node_modules/p-try": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/p-try/-/p-try-1.0.0.tgz", - "integrity": "sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M=", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/conventional-changelog-core/node_modules/path-exists": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", - "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/conventional-changelog-core/node_modules/read-pkg-up": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-3.0.0.tgz", - "integrity": "sha1-PtSWaF26D4/hGNBpHcUfSh/5bwc=", - "dev": true, - "dependencies": { - "find-up": "^2.0.0", - "read-pkg": "^3.0.0" - }, - "engines": { - "node": ">=4" - } - }, "node_modules/conventional-changelog-ember": { "version": "2.0.9", "resolved": "https://registry.npmjs.org/conventional-changelog-ember/-/conventional-changelog-ember-2.0.9.tgz", @@ -5228,15 +5198,14 @@ } }, "node_modules/css-loader": { - "version": "5.2.4", - "resolved": "https://registry.npmjs.org/css-loader/-/css-loader-5.2.4.tgz", - "integrity": "sha512-OFYGyINCKkdQsTrSYxzGSFnGS4gNjcXkKkQgWxK138jgnPt+lepxdjSZNc8sHAl5vP3DhsJUxufWIjOwI8PMMw==", + "version": "5.2.6", + "resolved": "https://registry.npmjs.org/css-loader/-/css-loader-5.2.6.tgz", + "integrity": "sha512-0wyN5vXMQZu6BvjbrPdUJvkCzGEO24HC7IS7nW4llc6BBFC+zwR9CKtYGv63Puzsg10L/o12inMY5/2ByzfD6w==", "dev": true, "dependencies": { - "camelcase": "^6.2.0", "icss-utils": "^5.1.0", "loader-utils": "^2.0.0", - "postcss": "^8.2.10", + "postcss": "^8.2.15", "postcss-modules-extract-imports": "^3.0.0", "postcss-modules-local-by-default": "^4.0.0", "postcss-modules-scope": "^3.0.0", @@ -5256,18 +5225,6 @@ "webpack": "^4.27.0 || ^5.0.0" } }, - "node_modules/css-loader/node_modules/camelcase": { - "version": "6.2.0", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.2.0.tgz", - "integrity": "sha512-c7wVvbw3f37nuobQNtgsgG9POC9qMbNuMQmTCqZv23b6MIz0fcYpBiOlv9gEN/hdLdnZTDQhg6e9Dq5M1vKvfg==", - "dev": true, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "node_modules/css-loader/node_modules/semver": { "version": "7.3.5", "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.5.tgz", @@ -6021,9 +5978,9 @@ "dev": true }, "node_modules/dns-packet": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/dns-packet/-/dns-packet-1.3.1.tgz", - "integrity": "sha512-0UxfQkMhYAUaZI+xrNZOz/as5KgDU0M/fQ9b6SpkyLbk3GEswDi6PADJVaYJradtRVsRIlF1zLyOodbcTCDzUg==", + "version": "1.3.4", + "resolved": "https://registry.npmjs.org/dns-packet/-/dns-packet-1.3.4.tgz", + "integrity": "sha512-BQ6F4vycLXBvdrJZ6S3gZewt6rcrks9KBgM9vrhW+knGRqc8uEdT7fuCwloc7nny5xNoMJ17HGH0R/6fpo8ECA==", "dev": true, "dependencies": { "ip": "^1.1.0", @@ -6469,28 +6426,30 @@ } }, "node_modules/eslint": { - "version": "7.25.0", - "resolved": "https://registry.npmjs.org/eslint/-/eslint-7.25.0.tgz", - "integrity": "sha512-TVpSovpvCNpLURIScDRB6g5CYu/ZFq9GfX2hLNIV4dSBKxIWojeDODvYl3t0k0VtMxYeR8OXPCFE5+oHMlGfhw==", + "version": "7.28.0", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-7.28.0.tgz", + "integrity": "sha512-UMfH0VSjP0G4p3EWirscJEQ/cHqnT/iuH6oNZOB94nBjWbMnhGEPxsZm1eyIW0C/9jLI0Fow4W5DXLjEI7mn1g==", "dev": true, "dependencies": { "@babel/code-frame": "7.12.11", - "@eslint/eslintrc": "^0.4.0", + "@eslint/eslintrc": "^0.4.2", "ajv": "^6.10.0", "chalk": "^4.0.0", "cross-spawn": "^7.0.2", "debug": "^4.0.1", "doctrine": "^3.0.0", "enquirer": "^2.3.5", + "escape-string-regexp": "^4.0.0", "eslint-scope": "^5.1.1", "eslint-utils": "^2.1.0", "eslint-visitor-keys": "^2.0.0", "espree": "^7.3.1", "esquery": "^1.4.0", "esutils": "^2.0.2", + "fast-deep-equal": "^3.1.3", "file-entry-cache": "^6.0.1", "functional-red-black-tree": "^1.0.1", - "glob-parent": "^5.0.0", + "glob-parent": "^5.1.2", "globals": "^13.6.0", "ignore": "^4.0.6", "import-fresh": "^3.0.0", @@ -6499,7 +6458,7 @@ "js-yaml": "^3.13.1", "json-stable-stringify-without-jsonify": "^1.0.1", "levn": "^0.4.1", - "lodash": "^4.17.21", + "lodash.merge": "^4.6.2", "minimatch": "^3.0.4", "natural-compare": "^1.4.0", "optionator": "^0.9.1", @@ -6508,7 +6467,7 @@ "semver": "^7.2.1", "strip-ansi": "^6.0.0", "strip-json-comments": "^3.1.0", - "table": "^6.0.4", + "table": "^6.0.9", "text-table": "^0.2.0", "v8-compile-cache": "^2.0.3" }, @@ -6560,12 +6519,12 @@ "dev": true }, "node_modules/eslint-module-utils": { - "version": "2.6.0", - "resolved": "https://registry.npmjs.org/eslint-module-utils/-/eslint-module-utils-2.6.0.tgz", - "integrity": "sha512-6j9xxegbqe8/kZY8cYpcp0xhbK0EgJlg3g9mib3/miLaExuuwc3n5UEfSnU6hWMbT0FAYVvDbL9RrRgpUeQIvA==", + "version": "2.6.1", + "resolved": "https://registry.npmjs.org/eslint-module-utils/-/eslint-module-utils-2.6.1.tgz", + "integrity": "sha512-ZXI9B8cxAJIH4nfkhTwcRTEAnrVfobYqwjWy/QMCZ8rHkZHFjf9yO4BzpiF9kCSfNlMG54eKigISHpX0+AaT4A==", "dev": true, "dependencies": { - "debug": "^2.6.9", + "debug": "^3.2.7", "pkg-dir": "^2.0.0" }, "engines": { @@ -6573,38 +6532,34 @@ } }, "node_modules/eslint-module-utils/node_modules/debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", + "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", "dev": true, "dependencies": { - "ms": "2.0.0" + "ms": "^2.1.1" } }, - "node_modules/eslint-module-utils/node_modules/ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", - "dev": true - }, "node_modules/eslint-plugin-import": { - "version": "2.22.1", - "resolved": "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.22.1.tgz", - "integrity": "sha512-8K7JjINHOpH64ozkAhpT3sd+FswIZTfMZTjdx052pnWrgRCVfp8op9tbjpAk3DdUeI/Ba4C8OjdC0r90erHEOw==", + "version": "2.23.4", + "resolved": "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.23.4.tgz", + "integrity": "sha512-6/wP8zZRsnQFiR3iaPFgh5ImVRM1WN5NUWfTIRqwOdeiGJlBcSk82o1FEVq8yXmy4lkIzTo7YhHCIxlU/2HyEQ==", "dev": true, "dependencies": { - "array-includes": "^3.1.1", - "array.prototype.flat": "^1.2.3", - "contains-path": "^0.1.0", + "array-includes": "^3.1.3", + "array.prototype.flat": "^1.2.4", "debug": "^2.6.9", - "doctrine": "1.5.0", + "doctrine": "^2.1.0", "eslint-import-resolver-node": "^0.3.4", - "eslint-module-utils": "^2.6.0", + "eslint-module-utils": "^2.6.1", + "find-up": "^2.0.0", "has": "^1.0.3", + "is-core-module": "^2.4.0", "minimatch": "^3.0.4", - "object.values": "^1.1.1", - "read-pkg-up": "^2.0.0", - "resolve": "^1.17.0", + "object.values": "^1.1.3", + "pkg-up": "^2.0.0", + "read-pkg-up": "^3.0.0", + "resolve": "^1.20.0", "tsconfig-paths": "^3.9.0" }, "engines": { @@ -6624,24 +6579,90 @@ } }, "node_modules/eslint-plugin-import/node_modules/doctrine": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-1.5.0.tgz", - "integrity": "sha1-N53Ocw9hZvds76TmcHoVmwLFpvo=", + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz", + "integrity": "sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==", "dev": true, "dependencies": { - "esutils": "^2.0.2", - "isarray": "^1.0.0" + "esutils": "^2.0.2" }, "engines": { "node": ">=0.10.0" } }, + "node_modules/eslint-plugin-import/node_modules/find-up": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz", + "integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=", + "dev": true, + "dependencies": { + "locate-path": "^2.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/eslint-plugin-import/node_modules/locate-path": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz", + "integrity": "sha1-K1aLJl7slExtnA3pw9u7ygNUzY4=", + "dev": true, + "dependencies": { + "p-locate": "^2.0.0", + "path-exists": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, "node_modules/eslint-plugin-import/node_modules/ms": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", "dev": true }, + "node_modules/eslint-plugin-import/node_modules/p-limit": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-1.3.0.tgz", + "integrity": "sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q==", + "dev": true, + "dependencies": { + "p-try": "^1.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/eslint-plugin-import/node_modules/p-locate": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-2.0.0.tgz", + "integrity": "sha1-IKAQOyIqcMj9OcwuWAaA893l7EM=", + "dev": true, + "dependencies": { + "p-limit": "^1.1.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/eslint-plugin-import/node_modules/p-try": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/p-try/-/p-try-1.0.0.tgz", + "integrity": "sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M=", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/eslint-plugin-import/node_modules/path-exists": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", + "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=", + "dev": true, + "engines": { + "node": ">=4" + } + }, "node_modules/eslint-scope": { "version": "5.1.1", "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz", @@ -6737,6 +6758,18 @@ "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", "dev": true }, + "node_modules/eslint/node_modules/escape-string-regexp": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", + "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/eslint/node_modules/eslint-visitor-keys": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-2.0.0.tgz", @@ -8061,18 +8094,6 @@ "node": ">=0.10.0" } }, - "node_modules/get-stdin": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/get-stdin/-/get-stdin-8.0.0.tgz", - "integrity": "sha512-sY22aA6xchAzprjyqmSEQv4UbAAzRN0L2dQB0NlN5acTTK9Don6nhoc3eAbUnpZiCANAMfd/+40kVdKfFygohg==", - "dev": true, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "node_modules/get-stream": { "version": "5.2.0", "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.2.0.tgz", @@ -9126,9 +9147,9 @@ } }, "node_modules/is-core-module": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.3.0.tgz", - "integrity": "sha512-xSphU2KG9867tsYdLD4RWQ1VqdFl4HTO9Thf3I/3dLEfr0dbPTWKsuCKrgqMljg4nPE+Gq0VCnzT3gr0CyBmsw==", + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.4.0.tgz", + "integrity": "sha512-6A2fkfq1rfeQZjxrZJGerpLCTHRNEBiSgnu0+obeJpEPZRUooHgsizvzv0ZjJwOz3iWIHdJtVWJ/tmPr3D21/A==", "dev": true, "dependencies": { "has": "^1.0.3" @@ -12515,6 +12536,12 @@ "integrity": "sha1-dWy1FQyjum8RCFp4hJZF8Yj4Xzc=", "dev": true }, + "node_modules/lodash.merge": { + "version": "4.6.2", + "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz", + "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==", + "dev": true + }, "node_modules/lodash.pad": { "version": "4.5.1", "resolved": "https://registry.npmjs.org/lodash.pad/-/lodash.pad-4.5.1.tgz", @@ -13314,9 +13341,9 @@ "optional": true }, "node_modules/nanoid": { - "version": "3.1.22", - "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.1.22.tgz", - "integrity": "sha512-/2ZUaJX2ANuLtTvqTlgqBQNJoQO398KyJgZloL0PZkC0dpysjncRUPsFe3DUPzz/y3h+u7C46np8RMuvF3jsSQ==", + "version": "3.1.23", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.1.23.tgz", + "integrity": "sha512-FiB0kzdP0FFVGDKlRLEQ1BgDzU87dy5NnzjeW9YZNt+/c3+q82EQDUwniSAUxp/F0gFNI1ZhKU1FqYsMuqZVnw==", "dev": true, "bin": { "nanoid": "bin/nanoid.cjs" @@ -14306,6 +14333,85 @@ "node": ">=4" } }, + "node_modules/pkg-up": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/pkg-up/-/pkg-up-2.0.0.tgz", + "integrity": "sha1-yBmscoBZpGHKscOImivjxJoATX8=", + "dev": true, + "dependencies": { + "find-up": "^2.1.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/pkg-up/node_modules/find-up": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz", + "integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=", + "dev": true, + "dependencies": { + "locate-path": "^2.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/pkg-up/node_modules/locate-path": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz", + "integrity": "sha1-K1aLJl7slExtnA3pw9u7ygNUzY4=", + "dev": true, + "dependencies": { + "p-locate": "^2.0.0", + "path-exists": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/pkg-up/node_modules/p-limit": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-1.3.0.tgz", + "integrity": "sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q==", + "dev": true, + "dependencies": { + "p-try": "^1.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/pkg-up/node_modules/p-locate": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-2.0.0.tgz", + "integrity": "sha1-IKAQOyIqcMj9OcwuWAaA893l7EM=", + "dev": true, + "dependencies": { + "p-limit": "^1.1.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/pkg-up/node_modules/p-try": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/p-try/-/p-try-1.0.0.tgz", + "integrity": "sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M=", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/pkg-up/node_modules/path-exists": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", + "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=", + "dev": true, + "engines": { + "node": ">=4" + } + }, "node_modules/please-upgrade-node": { "version": "3.2.0", "resolved": "https://registry.npmjs.org/please-upgrade-node/-/please-upgrade-node-3.2.0.tgz", @@ -14360,14 +14466,14 @@ } }, "node_modules/postcss": { - "version": "8.2.13", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.2.13.tgz", - "integrity": "sha512-FCE5xLH+hjbzRdpbRb1IMCvPv9yZx2QnDarBEYSN0N0HYk+TcXsEhwdFcFb+SRWOKzKGErhIEbBK2ogyLdTtfQ==", + "version": "8.3.0", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.3.0.tgz", + "integrity": "sha512-+ogXpdAjWGa+fdYY5BQ96V/6tAo+TdSSIMP5huJBIygdWwKtVoB5JWZ7yUd4xZ8r+8Kvvx4nyg/PQ071H4UtcQ==", "dev": true, "dependencies": { "colorette": "^1.2.2", - "nanoid": "^3.1.22", - "source-map": "^0.6.1" + "nanoid": "^3.1.23", + "source-map-js": "^0.6.2" }, "engines": { "node": "^10 || ^12 || >=14" @@ -14455,15 +14561,6 @@ "integrity": "sha512-97DXOFbQJhk71ne5/Mt6cOu6yxsSfM0QGQyl0L25Gca4yGWEGJaig7l7gbCX623VqTBNGLRLaVUCnNkcedlRSQ==", "dev": true }, - "node_modules/postcss/node_modules/source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/prelude-ls": { "version": "1.2.1", "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz", @@ -14474,9 +14571,9 @@ } }, "node_modules/prettier": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/prettier/-/prettier-2.2.1.tgz", - "integrity": "sha512-PqyhM2yCjg/oKkFPtTGUojv7gnZAoG80ttl45O6x2Ug/rMJw4wcc9k6aaf2hibP7BGVCCM33gZoGjyvt9mm16Q==", + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/prettier/-/prettier-2.3.1.tgz", + "integrity": "sha512-p+vNbgpLjif/+D+DwAZAbndtRrR0md0MwfmOVN9N+2RgyACMT+7tfaRnT+WDPkqnuVwleyuBIG2XBxKDme3hPA==", "dev": true, "bin": { "prettier": "bin-prettier.js" @@ -14743,13 +14840,13 @@ } }, "node_modules/read-pkg-up": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-2.0.0.tgz", - "integrity": "sha1-a3KoBImE4MQeeVEP1en6mbO1Sb4=", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-3.0.0.tgz", + "integrity": "sha1-PtSWaF26D4/hGNBpHcUfSh/5bwc=", "dev": true, "dependencies": { "find-up": "^2.0.0", - "read-pkg": "^2.0.0" + "read-pkg": "^3.0.0" }, "engines": { "node": ">=4" @@ -14767,27 +14864,6 @@ "node": ">=4" } }, - "node_modules/read-pkg-up/node_modules/hosted-git-info": { - "version": "2.8.9", - "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.9.tgz", - "integrity": "sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw==", - "dev": true - }, - "node_modules/read-pkg-up/node_modules/load-json-file": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-2.0.0.tgz", - "integrity": "sha1-eUfkIUmvgNaWy/eXvKq8/h/inKg=", - "dev": true, - "dependencies": { - "graceful-fs": "^4.1.2", - "parse-json": "^2.2.0", - "pify": "^2.0.0", - "strip-bom": "^3.0.0" - }, - "engines": { - "node": ">=4" - } - }, "node_modules/read-pkg-up/node_modules/locate-path": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz", @@ -14801,18 +14877,6 @@ "node": ">=4" } }, - "node_modules/read-pkg-up/node_modules/normalize-package-data": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.5.0.tgz", - "integrity": "sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==", - "dev": true, - "dependencies": { - "hosted-git-info": "^2.1.4", - "resolve": "^1.10.0", - "semver": "2 || 3 || 4 || 5", - "validate-npm-package-license": "^3.0.1" - } - }, "node_modules/read-pkg-up/node_modules/p-limit": { "version": "1.3.0", "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-1.3.0.tgz", @@ -14846,18 +14910,6 @@ "node": ">=4" } }, - "node_modules/read-pkg-up/node_modules/parse-json": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-2.2.0.tgz", - "integrity": "sha1-9ID0BDTvgHQfhGkJn43qGPVaTck=", - "dev": true, - "dependencies": { - "error-ex": "^1.2.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/read-pkg-up/node_modules/path-exists": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", @@ -14867,59 +14919,6 @@ "node": ">=4" } }, - "node_modules/read-pkg-up/node_modules/path-type": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/path-type/-/path-type-2.0.0.tgz", - "integrity": "sha1-8BLMuEFbcJb8LaoQVMPXI4lZTHM=", - "dev": true, - "dependencies": { - "pify": "^2.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/read-pkg-up/node_modules/pify": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", - "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/read-pkg-up/node_modules/read-pkg": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-2.0.0.tgz", - "integrity": "sha1-jvHAYjxqbbDcZxPEv6xGMysjaPg=", - "dev": true, - "dependencies": { - "load-json-file": "^2.0.0", - "normalize-package-data": "^2.3.2", - "path-type": "^2.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/read-pkg-up/node_modules/semver": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", - "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", - "dev": true, - "bin": { - "semver": "bin/semver" - } - }, - "node_modules/read-pkg-up/node_modules/strip-bom": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", - "integrity": "sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM=", - "dev": true, - "engines": { - "node": ">=4" - } - }, "node_modules/read-pkg/node_modules/hosted-git-info": { "version": "2.8.9", "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.9.tgz", @@ -16204,6 +16203,15 @@ "node": ">=0.10.0" } }, + "node_modules/source-map-js": { + "version": "0.6.2", + "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-0.6.2.tgz", + "integrity": "sha512-/3GptzWzu0+0MBQFrDKzw/DvvMTUORvgY6k6jd/VS6iCR4RDTKWH6v6WPwQoUO8667uQEf9Oe38DxAYWY5F/Ug==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/source-map-resolve": { "version": "0.5.3", "resolved": "https://registry.npmjs.org/source-map-resolve/-/source-map-resolve-0.5.3.tgz", @@ -17769,9 +17777,9 @@ } }, "node_modules/watchpack": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-2.1.1.tgz", - "integrity": "sha512-Oo7LXCmc1eE1AjyuSBmtC3+Wy4HcV8PxWh2kP6fOl8yTlNS7r0K9l1ao2lrrUza7V39Y3D/BbJgY8VeSlc5JKw==", + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-2.2.0.tgz", + "integrity": "sha512-up4YAn/XHgZHIxFBVCdlMiWDj6WaLKpwVeGQk2I5thdYxF/KmF0aaz6TfJZ/hfl1h/XlcDr7k1KH7ThDagpFaA==", "dev": true, "dependencies": { "glob-to-regexp": "^0.4.1", @@ -17800,9 +17808,9 @@ } }, "node_modules/webpack": { - "version": "5.36.1", - "resolved": "https://registry.npmjs.org/webpack/-/webpack-5.36.1.tgz", - "integrity": "sha512-2u25a82T+6quAxSlzEpN/R/RICwt20ONU3z3Ko05S8KVH9FXILcBYb2hD/rQtZT5y7lRAIsIIs05pdndY7ourQ==", + "version": "5.38.1", + "resolved": "https://registry.npmjs.org/webpack/-/webpack-5.38.1.tgz", + "integrity": "sha512-OqRmYD1OJbHZph6RUMD93GcCZy4Z4wC0ele4FXyYF0J6AxO1vOSuIlU1hkS/lDlR9CDYBz64MZRmdbdnFFoT2g==", "dev": true, "dependencies": { "@types/eslint-scope": "^3.7.0", @@ -17815,7 +17823,7 @@ "chrome-trace-event": "^1.0.2", "enhanced-resolve": "^5.8.0", "es-module-lexer": "^0.4.0", - "eslint-scope": "^5.1.1", + "eslint-scope": "5.1.1", "events": "^3.2.0", "glob-to-regexp": "^0.4.1", "graceful-fs": "^4.2.4", @@ -17826,8 +17834,8 @@ "schema-utils": "^3.0.0", "tapable": "^2.1.1", "terser-webpack-plugin": "^5.1.1", - "watchpack": "^2.0.0", - "webpack-sources": "^2.1.1" + "watchpack": "^2.2.0", + "webpack-sources": "^2.3.0" }, "bin": { "webpack": "bin/webpack.js" @@ -17846,18 +17854,17 @@ } }, "node_modules/webpack-cli": { - "version": "4.6.0", - "resolved": "https://registry.npmjs.org/webpack-cli/-/webpack-cli-4.6.0.tgz", - "integrity": "sha512-9YV+qTcGMjQFiY7Nb1kmnupvb1x40lfpj8pwdO/bom+sQiP4OBMKjHq29YQrlDWDPZO9r/qWaRRywKaRDKqBTA==", + "version": "4.7.0", + "resolved": "https://registry.npmjs.org/webpack-cli/-/webpack-cli-4.7.0.tgz", + "integrity": "sha512-7bKr9182/sGfjFm+xdZSwgQuFjgEcy0iCTIBxRUeteJ2Kr8/Wz0qNJX+jw60LU36jApt4nmMkep6+W5AKhok6g==", "dev": true, "dependencies": { "@discoveryjs/json-ext": "^0.5.0", - "@webpack-cli/configtest": "^1.0.2", - "@webpack-cli/info": "^1.2.3", - "@webpack-cli/serve": "^1.3.1", + "@webpack-cli/configtest": "^1.0.3", + "@webpack-cli/info": "^1.2.4", + "@webpack-cli/serve": "^1.4.0", "colorette": "^1.2.1", "commander": "^7.0.0", - "enquirer": "^2.3.6", "execa": "^5.0.0", "fastest-levenshtein": "^1.0.12", "import-local": "^3.0.2", @@ -18443,9 +18450,9 @@ } }, "node_modules/webpack-dev-server/node_modules/ws": { - "version": "6.2.1", - "resolved": "https://registry.npmjs.org/ws/-/ws-6.2.1.tgz", - "integrity": "sha512-GIyAXC2cB7LjvpgMt9EKS2ldqr0MTrORaleiOno6TweZ6r3TKtoFQWay/2PceJ3RuBasOHzXNn5Lrw1X0bEjqA==", + "version": "6.2.2", + "resolved": "https://registry.npmjs.org/ws/-/ws-6.2.2.tgz", + "integrity": "sha512-zmhltoSR8u1cnDsD43TX59mzoMZsLKqUweyYBAIvTngR3shc0W6aOZylZmq/7hqyVxPdi+5Ud2QInblgyE72fw==", "dev": true, "dependencies": { "async-limiter": "~1.0.0" @@ -18568,9 +18575,9 @@ } }, "node_modules/webpack/node_modules/webpack-sources": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-2.2.0.tgz", - "integrity": "sha512-bQsA24JLwcnWGArOKUxYKhX3Mz/nK1Xf6hxullKERyktjNMC4x8koOeaDNTA2fEJ09BdWLbM/iTW0ithREUP0w==", + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-2.3.0.tgz", + "integrity": "sha512-WyOdtwSvOML1kbgtXbTDnEW0jkJ7hZr/bDByIwszhWd/4XX1A3XMkrbFMsuH4+/MfLlZCUzlAdg4r7jaGKEIgQ==", "dev": true, "dependencies": { "source-list-map": "^2.0.1", @@ -18805,9 +18812,9 @@ } }, "node_modules/ws": { - "version": "7.4.5", - "resolved": "https://registry.npmjs.org/ws/-/ws-7.4.5.tgz", - "integrity": "sha512-xzyu3hFvomRfXKH8vOFMU3OguG6oOvhXMo3xsGy3xWExqaM2dxBbVxuD99O7m3ZUFMvvscsZDqxfgMaRr/Nr1g==", + "version": "7.4.6", + "resolved": "https://registry.npmjs.org/ws/-/ws-7.4.6.tgz", + "integrity": "sha512-YmhHDO4MzaDLB+M9ym/mDA5z0naX8j7SIlT8f8z+I0VtzsRbekxEutHSme7NPS2qE8StCYQNUnfWdXta/Yu85A==", "dev": true, "engines": { "node": ">=8.3.0" @@ -18926,9 +18933,9 @@ }, "dependencies": { "@babel/cli": { - "version": "7.13.16", - "resolved": "https://registry.npmjs.org/@babel/cli/-/cli-7.13.16.tgz", - "integrity": "sha512-cL9tllhqvsQ6r1+d9Invf7nNXg/3BlfL1vvvL/AdH9fZ2l5j0CeBcoq6UjsqHpvyN1v5nXSZgqJZoGeK+ZOAbw==", + "version": "7.14.3", + "resolved": "https://registry.npmjs.org/@babel/cli/-/cli-7.14.3.tgz", + "integrity": "sha512-zU4JLvwk32ay1lhhyGfqiRUSPoltVDjhYkA3aQq8+Yby9z30s/EsFw1EPOHxWG9YZo2pAGfgdRNeHZQAYU5m9A==", "dev": true, "requires": { "@nicolo-ribaudo/chokidar-2": "2.1.8-no-fsevents", @@ -18952,26 +18959,26 @@ } }, "@babel/compat-data": { - "version": "7.13.15", - "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.13.15.tgz", - "integrity": "sha512-ltnibHKR1VnrU4ymHyQ/CXtNXI6yZC0oJThyW78Hft8XndANwi+9H+UIklBDraIjFEJzw8wmcM427oDd9KS5wA==", + "version": "7.14.4", + "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.14.4.tgz", + "integrity": "sha512-i2wXrWQNkH6JplJQGn3Rd2I4Pij8GdHkXwHMxm+zV5YG/Jci+bCNrWZEWC4o+umiDkRrRs4dVzH3X4GP7vyjQQ==", "dev": true }, "@babel/core": { - "version": "7.13.16", - "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.13.16.tgz", - "integrity": "sha512-sXHpixBiWWFti0AV2Zq7avpTasr6sIAu7Y396c608541qAU2ui4a193m0KSQmfPSKFZLnQ3cvlKDOm3XkuXm3Q==", + "version": "7.14.3", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.14.3.tgz", + "integrity": "sha512-jB5AmTKOCSJIZ72sd78ECEhuPiDMKlQdDI/4QRI6lzYATx5SSogS1oQA2AoPecRCknm30gHi2l+QVvNUu3wZAg==", "dev": true, "requires": { "@babel/code-frame": "^7.12.13", - "@babel/generator": "^7.13.16", + "@babel/generator": "^7.14.3", "@babel/helper-compilation-targets": "^7.13.16", - "@babel/helper-module-transforms": "^7.13.14", - "@babel/helpers": "^7.13.16", - "@babel/parser": "^7.13.16", + "@babel/helper-module-transforms": "^7.14.2", + "@babel/helpers": "^7.14.0", + "@babel/parser": "^7.14.3", "@babel/template": "^7.12.13", - "@babel/traverse": "^7.13.15", - "@babel/types": "^7.13.16", + "@babel/traverse": "^7.14.2", + "@babel/types": "^7.14.2", "convert-source-map": "^1.7.0", "debug": "^4.1.0", "gensync": "^1.0.0-beta.2", @@ -18981,12 +18988,12 @@ } }, "@babel/generator": { - "version": "7.13.16", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.13.16.tgz", - "integrity": "sha512-grBBR75UnKOcUWMp8WoDxNsWCFl//XCK6HWTrBQKTr5SV9f5g0pNOjdyzi/DTBv12S9GnYPInIXQBTky7OXEMg==", + "version": "7.14.3", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.14.3.tgz", + "integrity": "sha512-bn0S6flG/j0xtQdz3hsjJ624h3W0r3llttBMfyHX3YrZ/KtLYr15bjA0FXkgW7FpvrDuTuElXeVjiKlYRpnOFA==", "dev": true, "requires": { - "@babel/types": "^7.13.16", + "@babel/types": "^7.14.2", "jsesc": "^2.5.1", "source-map": "^0.5.0" } @@ -19011,27 +19018,28 @@ } }, "@babel/helper-compilation-targets": { - "version": "7.13.16", - "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.13.16.tgz", - "integrity": "sha512-3gmkYIrpqsLlieFwjkGgLaSHmhnvlAYzZLlYVjlW+QwI+1zE17kGxuJGmIqDQdYp56XdmGeD+Bswx0UTyG18xA==", + "version": "7.14.4", + "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.14.4.tgz", + "integrity": "sha512-JgdzOYZ/qGaKTVkn5qEDV/SXAh8KcyUVkCoSWGN8T3bwrgd6m+/dJa2kVGi6RJYJgEYPBdZ84BZp9dUjNWkBaA==", "dev": true, "requires": { - "@babel/compat-data": "^7.13.15", + "@babel/compat-data": "^7.14.4", "@babel/helper-validator-option": "^7.12.17", - "browserslist": "^4.14.5", + "browserslist": "^4.16.6", "semver": "^6.3.0" } }, "@babel/helper-create-class-features-plugin": { - "version": "7.13.11", - "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.13.11.tgz", - "integrity": "sha512-ays0I7XYq9xbjCSvT+EvysLgfc3tOkwCULHjrnscGT3A9qD4sk3wXnJ3of0MAWsWGjdinFvajHU2smYuqXKMrw==", + "version": "7.14.4", + "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.14.4.tgz", + "integrity": "sha512-idr3pthFlDCpV+p/rMgGLGYIVtazeatrSOQk8YzO2pAepIjQhCN3myeihVg58ax2bbbGK9PUE1reFi7axOYIOw==", "dev": true, "requires": { - "@babel/helper-function-name": "^7.12.13", - "@babel/helper-member-expression-to-functions": "^7.13.0", + "@babel/helper-annotate-as-pure": "^7.12.13", + "@babel/helper-function-name": "^7.14.2", + "@babel/helper-member-expression-to-functions": "^7.13.12", "@babel/helper-optimise-call-expression": "^7.12.13", - "@babel/helper-replace-supers": "^7.13.0", + "@babel/helper-replace-supers": "^7.14.4", "@babel/helper-split-export-declaration": "^7.12.13" } }, @@ -19071,14 +19079,14 @@ } }, "@babel/helper-function-name": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.12.13.tgz", - "integrity": "sha512-TZvmPn0UOqmvi5G4vvw0qZTpVptGkB1GL61R6lKvrSdIxGm5Pky7Q3fpKiIkQCAtRCBUwB0PaThlx9vebCDSwA==", + "version": "7.14.2", + "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.14.2.tgz", + "integrity": "sha512-NYZlkZRydxw+YT56IlhIcS8PAhb+FEUiOzuhFTfqDyPmzAhRge6ua0dQYT/Uh0t/EDHq05/i+e5M2d4XvjgarQ==", "dev": true, "requires": { "@babel/helper-get-function-arity": "^7.12.13", "@babel/template": "^7.12.13", - "@babel/types": "^7.12.13" + "@babel/types": "^7.14.2" } }, "@babel/helper-get-function-arity": { @@ -19119,19 +19127,19 @@ } }, "@babel/helper-module-transforms": { - "version": "7.13.14", - "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.13.14.tgz", - "integrity": "sha512-QuU/OJ0iAOSIatyVZmfqB0lbkVP0kDRiKj34xy+QNsnVZi/PA6BoSoreeqnxxa9EHFAIL0R9XOaAR/G9WlIy5g==", + "version": "7.14.2", + "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.14.2.tgz", + "integrity": "sha512-OznJUda/soKXv0XhpvzGWDnml4Qnwp16GN+D/kZIdLsWoHj05kyu8Rm5kXmMef+rVJZ0+4pSGLkeixdqNUATDA==", "dev": true, "requires": { "@babel/helper-module-imports": "^7.13.12", "@babel/helper-replace-supers": "^7.13.12", "@babel/helper-simple-access": "^7.13.12", "@babel/helper-split-export-declaration": "^7.12.13", - "@babel/helper-validator-identifier": "^7.12.11", + "@babel/helper-validator-identifier": "^7.14.0", "@babel/template": "^7.12.13", - "@babel/traverse": "^7.13.13", - "@babel/types": "^7.13.14" + "@babel/traverse": "^7.14.2", + "@babel/types": "^7.14.2" } }, "@babel/helper-optimise-call-expression": { @@ -19161,15 +19169,15 @@ } }, "@babel/helper-replace-supers": { - "version": "7.13.12", - "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.13.12.tgz", - "integrity": "sha512-Gz1eiX+4yDO8mT+heB94aLVNCL+rbuT2xy4YfyNqu8F+OI6vMvJK891qGBTqL9Uc8wxEvRW92Id6G7sDen3fFw==", + "version": "7.14.4", + "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.14.4.tgz", + "integrity": "sha512-zZ7uHCWlxfEAAOVDYQpEf/uyi1dmeC7fX4nCf2iz9drnCwi1zvwXL3HwWWNXUQEJ1k23yVn3VbddiI9iJEXaTQ==", "dev": true, "requires": { "@babel/helper-member-expression-to-functions": "^7.13.12", "@babel/helper-optimise-call-expression": "^7.12.13", - "@babel/traverse": "^7.13.0", - "@babel/types": "^7.13.12" + "@babel/traverse": "^7.14.2", + "@babel/types": "^7.14.4" } }, "@babel/helper-simple-access": { @@ -19200,9 +19208,9 @@ } }, "@babel/helper-validator-identifier": { - "version": "7.12.11", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.12.11.tgz", - "integrity": "sha512-np/lG3uARFybkoHokJUmf1QfEvRVCPbmQeUQpKow5cQ3xWrV9i3rUHodKDJPQfTVX61qKi+UdYk8kik84n7XOw==", + "version": "7.14.0", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.14.0.tgz", + "integrity": "sha512-V3ts7zMSu5lfiwWDVWzRDGIN+lnCEUdaXgtVHJgLb1rGaA6jMrtB9EmE7L18foXJIE8Un/A/h6NJfGQp/e1J4A==", "dev": true }, "@babel/helper-validator-option": { @@ -19224,14 +19232,14 @@ } }, "@babel/helpers": { - "version": "7.13.17", - "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.13.17.tgz", - "integrity": "sha512-Eal4Gce4kGijo1/TGJdqp3WuhllaMLSrW6XcL0ulyUAQOuxHcCafZE8KHg9857gcTehsm/v7RcOx2+jp0Ryjsg==", + "version": "7.14.0", + "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.14.0.tgz", + "integrity": "sha512-+ufuXprtQ1D1iZTO/K9+EBRn+qPWMJjZSw/S0KlFrxCw4tkrzv9grgpDHkY9MeQTjTY8i2sp7Jep8DfU6tN9Mg==", "dev": true, "requires": { "@babel/template": "^7.12.13", - "@babel/traverse": "^7.13.17", - "@babel/types": "^7.13.17" + "@babel/traverse": "^7.14.0", + "@babel/types": "^7.14.0" } }, "@babel/highlight": { @@ -19246,9 +19254,9 @@ } }, "@babel/parser": { - "version": "7.13.16", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.13.16.tgz", - "integrity": "sha512-6bAg36mCwuqLO0hbR+z7PHuqWiCeP7Dzg73OpQwsAB1Eb8HnGEz5xYBzCfbu+YjoaJsJs+qheDxVAuqbt3ILEw==", + "version": "7.14.4", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.14.4.tgz", + "integrity": "sha512-ArliyUsWDUqEGfWcmzpGUzNfLxTdTp6WU4IuP6QFSp9gGfWS6boxFCkJSJ/L4+RG8z/FnIU3WxCk6hPL9SSWeA==", "dev": true }, "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": { @@ -19263,9 +19271,9 @@ } }, "@babel/plugin-proposal-async-generator-functions": { - "version": "7.13.15", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.13.15.tgz", - "integrity": "sha512-VapibkWzFeoa6ubXy/NgV5U2U4MVnUlvnx6wo1XhlsaTrLYWE0UFpDQsVrmn22q5CzeloqJ8gEMHSKxuee6ZdA==", + "version": "7.14.2", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.14.2.tgz", + "integrity": "sha512-b1AM4F6fwck4N8ItZ/AtC4FP/cqZqmKRQ4FaTDutwSYyjuhtvsGEMLK4N/ztV/ImP40BjIDyMgBQAeAMsQYVFQ==", "dev": true, "requires": { "@babel/helper-plugin-utils": "^7.13.0", @@ -19283,10 +19291,21 @@ "@babel/helper-plugin-utils": "^7.13.0" } }, + "@babel/plugin-proposal-class-static-block": { + "version": "7.14.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-class-static-block/-/plugin-proposal-class-static-block-7.14.3.tgz", + "integrity": "sha512-HEjzp5q+lWSjAgJtSluFDrGGosmwTgKwCXdDQZvhKsRlwv3YdkUEqxNrrjesJd+B9E9zvr1PVPVBvhYZ9msjvQ==", + "dev": true, + "requires": { + "@babel/helper-create-class-features-plugin": "^7.14.3", + "@babel/helper-plugin-utils": "^7.13.0", + "@babel/plugin-syntax-class-static-block": "^7.12.13" + } + }, "@babel/plugin-proposal-dynamic-import": { - "version": "7.13.8", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-dynamic-import/-/plugin-proposal-dynamic-import-7.13.8.tgz", - "integrity": "sha512-ONWKj0H6+wIRCkZi9zSbZtE/r73uOhMVHh256ys0UzfM7I3d4n+spZNWjOnJv2gzopumP2Wxi186vI8N0Y2JyQ==", + "version": "7.14.2", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-dynamic-import/-/plugin-proposal-dynamic-import-7.14.2.tgz", + "integrity": "sha512-oxVQZIWFh91vuNEMKltqNsKLFWkOIyJc95k2Gv9lWVyDfPUQGSSlbDEgWuJUU1afGE9WwlzpucMZ3yDRHIItkA==", "dev": true, "requires": { "@babel/helper-plugin-utils": "^7.13.0", @@ -19294,19 +19313,19 @@ } }, "@babel/plugin-proposal-export-namespace-from": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-export-namespace-from/-/plugin-proposal-export-namespace-from-7.12.13.tgz", - "integrity": "sha512-INAgtFo4OnLN3Y/j0VwAgw3HDXcDtX+C/erMvWzuV9v71r7urb6iyMXu7eM9IgLr1ElLlOkaHjJ0SbCmdOQ3Iw==", + "version": "7.14.2", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-export-namespace-from/-/plugin-proposal-export-namespace-from-7.14.2.tgz", + "integrity": "sha512-sRxW3z3Zp3pFfLAgVEvzTFutTXax837oOatUIvSG9o5gRj9mKwm3br1Se5f4QalTQs9x4AzlA/HrCWbQIHASUQ==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.12.13", + "@babel/helper-plugin-utils": "^7.13.0", "@babel/plugin-syntax-export-namespace-from": "^7.8.3" } }, "@babel/plugin-proposal-json-strings": { - "version": "7.13.8", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-json-strings/-/plugin-proposal-json-strings-7.13.8.tgz", - "integrity": "sha512-w4zOPKUFPX1mgvTmL/fcEqy34hrQ1CRcGxdphBc6snDnnqJ47EZDIyop6IwXzAC8G916hsIuXB2ZMBCExC5k7Q==", + "version": "7.14.2", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-json-strings/-/plugin-proposal-json-strings-7.14.2.tgz", + "integrity": "sha512-w2DtsfXBBJddJacXMBhElGEYqCZQqN99Se1qeYn8DVLB33owlrlLftIbMzn5nz1OITfDVknXF433tBrLEAOEjA==", "dev": true, "requires": { "@babel/helper-plugin-utils": "^7.13.0", @@ -19314,9 +19333,9 @@ } }, "@babel/plugin-proposal-logical-assignment-operators": { - "version": "7.13.8", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-logical-assignment-operators/-/plugin-proposal-logical-assignment-operators-7.13.8.tgz", - "integrity": "sha512-aul6znYB4N4HGweImqKn59Su9RS8lbUIqxtXTOcAGtNIDczoEFv+l1EhmX8rUBp3G1jMjKJm8m0jXVp63ZpS4A==", + "version": "7.14.2", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-logical-assignment-operators/-/plugin-proposal-logical-assignment-operators-7.14.2.tgz", + "integrity": "sha512-1JAZtUrqYyGsS7IDmFeaem+/LJqujfLZ2weLR9ugB0ufUPjzf8cguyVT1g5im7f7RXxuLq1xUxEzvm68uYRtGg==", "dev": true, "requires": { "@babel/helper-plugin-utils": "^7.13.0", @@ -19324,9 +19343,9 @@ } }, "@babel/plugin-proposal-nullish-coalescing-operator": { - "version": "7.13.8", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-nullish-coalescing-operator/-/plugin-proposal-nullish-coalescing-operator-7.13.8.tgz", - "integrity": "sha512-iePlDPBn//UhxExyS9KyeYU7RM9WScAG+D3Hhno0PLJebAEpDZMocbDe64eqynhNAnwz/vZoL/q/QB2T1OH39A==", + "version": "7.14.2", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-nullish-coalescing-operator/-/plugin-proposal-nullish-coalescing-operator-7.14.2.tgz", + "integrity": "sha512-ebR0zU9OvI2N4qiAC38KIAK75KItpIPTpAtd2r4OZmMFeKbKJpUFLYP2EuDut82+BmYi8sz42B+TfTptJ9iG5Q==", "dev": true, "requires": { "@babel/helper-plugin-utils": "^7.13.0", @@ -19334,32 +19353,32 @@ } }, "@babel/plugin-proposal-numeric-separator": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-numeric-separator/-/plugin-proposal-numeric-separator-7.12.13.tgz", - "integrity": "sha512-O1jFia9R8BUCl3ZGB7eitaAPu62TXJRHn7rh+ojNERCFyqRwJMTmhz+tJ+k0CwI6CLjX/ee4qW74FSqlq9I35w==", + "version": "7.14.2", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-numeric-separator/-/plugin-proposal-numeric-separator-7.14.2.tgz", + "integrity": "sha512-DcTQY9syxu9BpU3Uo94fjCB3LN9/hgPS8oUL7KrSW3bA2ePrKZZPJcc5y0hoJAM9dft3pGfErtEUvxXQcfLxUg==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.12.13", + "@babel/helper-plugin-utils": "^7.13.0", "@babel/plugin-syntax-numeric-separator": "^7.10.4" } }, "@babel/plugin-proposal-object-rest-spread": { - "version": "7.13.8", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.13.8.tgz", - "integrity": "sha512-DhB2EuB1Ih7S3/IRX5AFVgZ16k3EzfRbq97CxAVI1KSYcW+lexV8VZb7G7L8zuPVSdQMRn0kiBpf/Yzu9ZKH0g==", + "version": "7.14.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.14.4.tgz", + "integrity": "sha512-AYosOWBlyyXEagrPRfLJ1enStufsr7D1+ddpj8OLi9k7B6+NdZ0t/9V7Fh+wJ4g2Jol8z2JkgczYqtWrZd4vbA==", "dev": true, "requires": { - "@babel/compat-data": "^7.13.8", - "@babel/helper-compilation-targets": "^7.13.8", + "@babel/compat-data": "^7.14.4", + "@babel/helper-compilation-targets": "^7.14.4", "@babel/helper-plugin-utils": "^7.13.0", "@babel/plugin-syntax-object-rest-spread": "^7.8.3", - "@babel/plugin-transform-parameters": "^7.13.0" + "@babel/plugin-transform-parameters": "^7.14.2" } }, "@babel/plugin-proposal-optional-catch-binding": { - "version": "7.13.8", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-optional-catch-binding/-/plugin-proposal-optional-catch-binding-7.13.8.tgz", - "integrity": "sha512-0wS/4DUF1CuTmGo+NiaHfHcVSeSLj5S3e6RivPTg/2k3wOv3jO35tZ6/ZWsQhQMvdgI7CwphjQa/ccarLymHVA==", + "version": "7.14.2", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-optional-catch-binding/-/plugin-proposal-optional-catch-binding-7.14.2.tgz", + "integrity": "sha512-XtkJsmJtBaUbOxZsNk0Fvrv8eiqgneug0A6aqLFZ4TSkar2L5dSXWcnUKHgmjJt49pyB/6ZHvkr3dPgl9MOWRQ==", "dev": true, "requires": { "@babel/helper-plugin-utils": "^7.13.0", @@ -19367,9 +19386,9 @@ } }, "@babel/plugin-proposal-optional-chaining": { - "version": "7.13.12", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-optional-chaining/-/plugin-proposal-optional-chaining-7.13.12.tgz", - "integrity": "sha512-fcEdKOkIB7Tf4IxrgEVeFC4zeJSTr78no9wTdBuZZbqF64kzllU0ybo2zrzm7gUQfxGhBgq4E39oRs8Zx/RMYQ==", + "version": "7.14.2", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-optional-chaining/-/plugin-proposal-optional-chaining-7.14.2.tgz", + "integrity": "sha512-qQByMRPwMZJainfig10BoaDldx/+VDtNcrA7qdNaEOAj6VXud+gfrkA8j4CRAU5HjnWREXqIpSpH30qZX1xivA==", "dev": true, "requires": { "@babel/helper-plugin-utils": "^7.13.0", @@ -19387,6 +19406,18 @@ "@babel/helper-plugin-utils": "^7.13.0" } }, + "@babel/plugin-proposal-private-property-in-object": { + "version": "7.14.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-private-property-in-object/-/plugin-proposal-private-property-in-object-7.14.0.tgz", + "integrity": "sha512-59ANdmEwwRUkLjB7CRtwJxxwtjESw+X2IePItA+RGQh+oy5RmpCh/EvVVvh5XQc3yxsm5gtv0+i9oBZhaDNVTg==", + "dev": true, + "requires": { + "@babel/helper-annotate-as-pure": "^7.12.13", + "@babel/helper-create-class-features-plugin": "^7.14.0", + "@babel/helper-plugin-utils": "^7.13.0", + "@babel/plugin-syntax-private-property-in-object": "^7.14.0" + } + }, "@babel/plugin-proposal-unicode-property-regex": { "version": "7.12.13", "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-unicode-property-regex/-/plugin-proposal-unicode-property-regex-7.12.13.tgz", @@ -19424,6 +19455,15 @@ "@babel/helper-plugin-utils": "^7.12.13" } }, + "@babel/plugin-syntax-class-static-block": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-class-static-block/-/plugin-syntax-class-static-block-7.12.13.tgz", + "integrity": "sha512-ZmKQ0ZXR0nYpHZIIuj9zE7oIqCx2hw9TKi+lIo73NNrMPAZGHfS92/VRV0ZmPj6H2ffBgyFHXvJ5NYsNeEaP2A==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.12.13" + } + }, "@babel/plugin-syntax-dynamic-import": { "version": "7.8.3", "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-dynamic-import/-/plugin-syntax-dynamic-import-7.8.3.tgz", @@ -19514,6 +19554,15 @@ "@babel/helper-plugin-utils": "^7.8.0" } }, + "@babel/plugin-syntax-private-property-in-object": { + "version": "7.14.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-private-property-in-object/-/plugin-syntax-private-property-in-object-7.14.0.tgz", + "integrity": "sha512-bda3xF8wGl5/5btF794utNOL0Jw+9jE5C1sLZcoK7c4uonE/y3iQiyG+KbkF3WBV/paX58VCpjhxLPkdj5Fe4w==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.13.0" + } + }, "@babel/plugin-syntax-top-level-await": { "version": "7.12.13", "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.12.13.tgz", @@ -19553,25 +19602,25 @@ } }, "@babel/plugin-transform-block-scoping": { - "version": "7.13.16", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.13.16.tgz", - "integrity": "sha512-ad3PHUxGnfWF4Efd3qFuznEtZKoBp0spS+DgqzVzRPV7urEBvPLue3y2j80w4Jf2YLzZHj8TOv/Lmvdmh3b2xg==", + "version": "7.14.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.14.4.tgz", + "integrity": "sha512-5KdpkGxsZlTk+fPleDtGKsA+pon28+ptYmMO8GBSa5fHERCJWAzj50uAfCKBqq42HO+Zot6JF1x37CRprwmN4g==", "dev": true, "requires": { "@babel/helper-plugin-utils": "^7.13.0" } }, "@babel/plugin-transform-classes": { - "version": "7.13.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.13.0.tgz", - "integrity": "sha512-9BtHCPUARyVH1oXGcSJD3YpsqRLROJx5ZNP6tN5vnk17N0SVf9WCtf8Nuh1CFmgByKKAIMstitKduoCmsaDK5g==", + "version": "7.14.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.14.4.tgz", + "integrity": "sha512-p73t31SIj6y94RDVX57rafVjttNr8MvKEgs5YFatNB/xC68zM3pyosuOEcQmYsYlyQaGY9R7rAULVRcat5FKJQ==", "dev": true, "requires": { "@babel/helper-annotate-as-pure": "^7.12.13", - "@babel/helper-function-name": "^7.12.13", + "@babel/helper-function-name": "^7.14.2", "@babel/helper-optimise-call-expression": "^7.12.13", "@babel/helper-plugin-utils": "^7.13.0", - "@babel/helper-replace-supers": "^7.13.0", + "@babel/helper-replace-supers": "^7.14.4", "@babel/helper-split-export-declaration": "^7.12.13", "globals": "^11.1.0" } @@ -19586,9 +19635,9 @@ } }, "@babel/plugin-transform-destructuring": { - "version": "7.13.17", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.13.17.tgz", - "integrity": "sha512-UAUqiLv+uRLO+xuBKKMEpC+t7YRNVRqBsWWq1yKXbBZBje/t3IXCiSinZhjn/DC3qzBfICeYd2EFGEbHsh5RLA==", + "version": "7.14.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.14.4.tgz", + "integrity": "sha512-JyywKreTCGTUsL1OKu1A3ms/R1sTP0WxbpXlALeGzF53eB3bxtNkYdMj9SDgK7g6ImPy76J5oYYKoTtQImlhQA==", "dev": true, "requires": { "@babel/helper-plugin-utils": "^7.13.0" @@ -19661,25 +19710,25 @@ } }, "@babel/plugin-transform-modules-amd": { - "version": "7.13.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.13.0.tgz", - "integrity": "sha512-EKy/E2NHhY/6Vw5d1k3rgoobftcNUmp9fGjb9XZwQLtTctsRBOTRO7RHHxfIky1ogMN5BxN7p9uMA3SzPfotMQ==", + "version": "7.14.2", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.14.2.tgz", + "integrity": "sha512-hPC6XBswt8P3G2D1tSV2HzdKvkqOpmbyoy+g73JG0qlF/qx2y3KaMmXb1fLrpmWGLZYA0ojCvaHdzFWjlmV+Pw==", "dev": true, "requires": { - "@babel/helper-module-transforms": "^7.13.0", + "@babel/helper-module-transforms": "^7.14.2", "@babel/helper-plugin-utils": "^7.13.0", "babel-plugin-dynamic-import-node": "^2.3.3" } }, "@babel/plugin-transform-modules-commonjs": { - "version": "7.13.8", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.13.8.tgz", - "integrity": "sha512-9QiOx4MEGglfYZ4XOnU79OHr6vIWUakIj9b4mioN8eQIoEh+pf5p/zEB36JpDFWA12nNMiRf7bfoRvl9Rn79Bw==", + "version": "7.14.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.14.0.tgz", + "integrity": "sha512-EX4QePlsTaRZQmw9BsoPeyh5OCtRGIhwfLquhxGp5e32w+dyL8htOcDwamlitmNFK6xBZYlygjdye9dbd9rUlQ==", "dev": true, "requires": { - "@babel/helper-module-transforms": "^7.13.0", + "@babel/helper-module-transforms": "^7.14.0", "@babel/helper-plugin-utils": "^7.13.0", - "@babel/helper-simple-access": "^7.12.13", + "@babel/helper-simple-access": "^7.13.12", "babel-plugin-dynamic-import-node": "^2.3.3" } }, @@ -19697,12 +19746,12 @@ } }, "@babel/plugin-transform-modules-umd": { - "version": "7.13.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.13.0.tgz", - "integrity": "sha512-D/ILzAh6uyvkWjKKyFE/W0FzWwasv6vPTSqPcjxFqn6QpX3u8DjRVliq4F2BamO2Wee/om06Vyy+vPkNrd4wxw==", + "version": "7.14.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.14.0.tgz", + "integrity": "sha512-nPZdnWtXXeY7I87UZr9VlsWme3Y0cfFFE41Wbxz4bbaexAjNMInXPFUpRRUJ8NoMm0Cw+zxbqjdPmLhcjfazMw==", "dev": true, "requires": { - "@babel/helper-module-transforms": "^7.13.0", + "@babel/helper-module-transforms": "^7.14.0", "@babel/helper-plugin-utils": "^7.13.0" } }, @@ -19735,9 +19784,9 @@ } }, "@babel/plugin-transform-parameters": { - "version": "7.13.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.13.0.tgz", - "integrity": "sha512-Jt8k/h/mIwE2JFEOb3lURoY5C85ETcYPnbuAJ96zRBzh1XHtQZfs62ChZ6EP22QlC8c7Xqr9q+e1SU5qttwwjw==", + "version": "7.14.2", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.14.2.tgz", + "integrity": "sha512-NxoVmA3APNCC1JdMXkdYXuQS+EMdqy0vIwyDHeKHiJKRxmp1qGSdb0JLEIoPRhkx6H/8Qi3RJ3uqOCYw8giy9A==", "dev": true, "requires": { "@babel/helper-plugin-utils": "^7.13.0" @@ -19836,31 +19885,34 @@ } }, "@babel/preset-env": { - "version": "7.13.15", - "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.13.15.tgz", - "integrity": "sha512-D4JAPMXcxk69PKe81jRJ21/fP/uYdcTZ3hJDF5QX2HSI9bBxxYw/dumdR6dGumhjxlprHPE4XWoPaqzZUVy2MA==", + "version": "7.14.4", + "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.14.4.tgz", + "integrity": "sha512-GwMMsuAnDtULyOtuxHhzzuSRxFeP0aR/LNzrHRzP8y6AgDNgqnrfCCBm/1cRdTU75tRs28Eh76poHLcg9VF0LA==", "dev": true, "requires": { - "@babel/compat-data": "^7.13.15", - "@babel/helper-compilation-targets": "^7.13.13", + "@babel/compat-data": "^7.14.4", + "@babel/helper-compilation-targets": "^7.14.4", "@babel/helper-plugin-utils": "^7.13.0", "@babel/helper-validator-option": "^7.12.17", "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": "^7.13.12", - "@babel/plugin-proposal-async-generator-functions": "^7.13.15", + "@babel/plugin-proposal-async-generator-functions": "^7.14.2", "@babel/plugin-proposal-class-properties": "^7.13.0", - "@babel/plugin-proposal-dynamic-import": "^7.13.8", - "@babel/plugin-proposal-export-namespace-from": "^7.12.13", - "@babel/plugin-proposal-json-strings": "^7.13.8", - "@babel/plugin-proposal-logical-assignment-operators": "^7.13.8", - "@babel/plugin-proposal-nullish-coalescing-operator": "^7.13.8", - "@babel/plugin-proposal-numeric-separator": "^7.12.13", - "@babel/plugin-proposal-object-rest-spread": "^7.13.8", - "@babel/plugin-proposal-optional-catch-binding": "^7.13.8", - "@babel/plugin-proposal-optional-chaining": "^7.13.12", + "@babel/plugin-proposal-class-static-block": "^7.14.3", + "@babel/plugin-proposal-dynamic-import": "^7.14.2", + "@babel/plugin-proposal-export-namespace-from": "^7.14.2", + "@babel/plugin-proposal-json-strings": "^7.14.2", + "@babel/plugin-proposal-logical-assignment-operators": "^7.14.2", + "@babel/plugin-proposal-nullish-coalescing-operator": "^7.14.2", + "@babel/plugin-proposal-numeric-separator": "^7.14.2", + "@babel/plugin-proposal-object-rest-spread": "^7.14.4", + "@babel/plugin-proposal-optional-catch-binding": "^7.14.2", + "@babel/plugin-proposal-optional-chaining": "^7.14.2", "@babel/plugin-proposal-private-methods": "^7.13.0", + "@babel/plugin-proposal-private-property-in-object": "^7.14.0", "@babel/plugin-proposal-unicode-property-regex": "^7.12.13", "@babel/plugin-syntax-async-generators": "^7.8.4", "@babel/plugin-syntax-class-properties": "^7.12.13", + "@babel/plugin-syntax-class-static-block": "^7.12.13", "@babel/plugin-syntax-dynamic-import": "^7.8.3", "@babel/plugin-syntax-export-namespace-from": "^7.8.3", "@babel/plugin-syntax-json-strings": "^7.8.3", @@ -19870,14 +19922,15 @@ "@babel/plugin-syntax-object-rest-spread": "^7.8.3", "@babel/plugin-syntax-optional-catch-binding": "^7.8.3", "@babel/plugin-syntax-optional-chaining": "^7.8.3", + "@babel/plugin-syntax-private-property-in-object": "^7.14.0", "@babel/plugin-syntax-top-level-await": "^7.12.13", "@babel/plugin-transform-arrow-functions": "^7.13.0", "@babel/plugin-transform-async-to-generator": "^7.13.0", "@babel/plugin-transform-block-scoped-functions": "^7.12.13", - "@babel/plugin-transform-block-scoping": "^7.12.13", - "@babel/plugin-transform-classes": "^7.13.0", + "@babel/plugin-transform-block-scoping": "^7.14.4", + "@babel/plugin-transform-classes": "^7.14.4", "@babel/plugin-transform-computed-properties": "^7.13.0", - "@babel/plugin-transform-destructuring": "^7.13.0", + "@babel/plugin-transform-destructuring": "^7.14.4", "@babel/plugin-transform-dotall-regex": "^7.12.13", "@babel/plugin-transform-duplicate-keys": "^7.12.13", "@babel/plugin-transform-exponentiation-operator": "^7.12.13", @@ -19885,14 +19938,14 @@ "@babel/plugin-transform-function-name": "^7.12.13", "@babel/plugin-transform-literals": "^7.12.13", "@babel/plugin-transform-member-expression-literals": "^7.12.13", - "@babel/plugin-transform-modules-amd": "^7.13.0", - "@babel/plugin-transform-modules-commonjs": "^7.13.8", + "@babel/plugin-transform-modules-amd": "^7.14.2", + "@babel/plugin-transform-modules-commonjs": "^7.14.0", "@babel/plugin-transform-modules-systemjs": "^7.13.8", - "@babel/plugin-transform-modules-umd": "^7.13.0", + "@babel/plugin-transform-modules-umd": "^7.14.0", "@babel/plugin-transform-named-capturing-groups-regex": "^7.12.13", "@babel/plugin-transform-new-target": "^7.12.13", "@babel/plugin-transform-object-super": "^7.12.13", - "@babel/plugin-transform-parameters": "^7.13.0", + "@babel/plugin-transform-parameters": "^7.14.2", "@babel/plugin-transform-property-literals": "^7.12.13", "@babel/plugin-transform-regenerator": "^7.13.15", "@babel/plugin-transform-reserved-words": "^7.12.13", @@ -19904,7 +19957,7 @@ "@babel/plugin-transform-unicode-escapes": "^7.12.13", "@babel/plugin-transform-unicode-regex": "^7.12.13", "@babel/preset-modules": "^0.1.4", - "@babel/types": "^7.13.14", + "@babel/types": "^7.14.4", "babel-plugin-polyfill-corejs2": "^0.2.0", "babel-plugin-polyfill-corejs3": "^0.2.0", "babel-plugin-polyfill-regenerator": "^0.2.0", @@ -19946,28 +19999,28 @@ } }, "@babel/traverse": { - "version": "7.13.17", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.13.17.tgz", - "integrity": "sha512-BMnZn0R+X6ayqm3C3To7o1j7Q020gWdqdyP50KEoVqaCO2c/Im7sYZSmVgvefp8TTMQ+9CtwuBp0Z1CZ8V3Pvg==", + "version": "7.14.2", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.14.2.tgz", + "integrity": "sha512-TsdRgvBFHMyHOOzcP9S6QU0QQtjxlRpEYOy3mcCO5RgmC305ki42aSAmfZEMSSYBla2oZ9BMqYlncBaKmD/7iA==", "dev": true, "requires": { "@babel/code-frame": "^7.12.13", - "@babel/generator": "^7.13.16", - "@babel/helper-function-name": "^7.12.13", + "@babel/generator": "^7.14.2", + "@babel/helper-function-name": "^7.14.2", "@babel/helper-split-export-declaration": "^7.12.13", - "@babel/parser": "^7.13.16", - "@babel/types": "^7.13.17", + "@babel/parser": "^7.14.2", + "@babel/types": "^7.14.2", "debug": "^4.1.0", "globals": "^11.1.0" } }, "@babel/types": { - "version": "7.13.17", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.13.17.tgz", - "integrity": "sha512-RawydLgxbOPDlTLJNtoIypwdmAy//uQIzlKt2+iBiJaRlVuI6QLUxVAyWGNfOzp8Yu4L4lLIacoCyTNtpb4wiA==", + "version": "7.14.4", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.14.4.tgz", + "integrity": "sha512-lCj4aIs0xUefJFQnwwQv2Bxg7Omd6bgquZ6LGC+gGMh6/s5qDVfjuCMlDmYQ15SLsWHd9n+X3E75lKIhl5Lkiw==", "dev": true, "requires": { - "@babel/helper-validator-identifier": "^7.12.11", + "@babel/helper-validator-identifier": "^7.14.0", "to-fast-properties": "^2.0.0" } }, @@ -19988,17 +20041,16 @@ } }, "@commitlint/cli": { - "version": "12.1.1", - "resolved": "https://registry.npmjs.org/@commitlint/cli/-/cli-12.1.1.tgz", - "integrity": "sha512-SB67/s6VJ50seoPx/Sr2gj1fMzKrx+udgarecGdr8h43ah+M2e22gjQJ7xHv5KwyPQ+6ug1YOMCL34ubT4zupQ==", + "version": "12.1.4", + "resolved": "https://registry.npmjs.org/@commitlint/cli/-/cli-12.1.4.tgz", + "integrity": "sha512-ZR1WjXLvqEffYyBPT0XdnSxtt3Ty1TMoujEtseW5o3vPnkA1UNashAMjQVg/oELqfaiAMnDw8SERPMN0e/0kLg==", "dev": true, "requires": { - "@commitlint/format": "^12.1.1", - "@commitlint/lint": "^12.1.1", - "@commitlint/load": "^12.1.1", - "@commitlint/read": "^12.1.1", - "@commitlint/types": "^12.1.1", - "get-stdin": "8.0.0", + "@commitlint/format": "^12.1.4", + "@commitlint/lint": "^12.1.4", + "@commitlint/load": "^12.1.4", + "@commitlint/read": "^12.1.4", + "@commitlint/types": "^12.1.4", "lodash": "^4.17.19", "resolve-from": "5.0.0", "resolve-global": "1.0.0", @@ -20006,37 +20058,37 @@ } }, "@commitlint/config-conventional": { - "version": "12.1.1", - "resolved": "https://registry.npmjs.org/@commitlint/config-conventional/-/config-conventional-12.1.1.tgz", - "integrity": "sha512-15CqbXMsQiEb0qbzjEHe2OkzaXPYSp7RxaS6KoSVk/4W0QiigquavQ+M0huBZze92h0lMS6Pxoq4AJ5CQ3D+iQ==", + "version": "12.1.4", + "resolved": "https://registry.npmjs.org/@commitlint/config-conventional/-/config-conventional-12.1.4.tgz", + "integrity": "sha512-ZIdzmdy4o4WyqywMEpprRCrehjCSQrHkaRTVZV411GyLigFQHlEBSJITAihLAWe88Qy/8SyoIe5uKvAsV5vRqQ==", "dev": true, "requires": { "conventional-changelog-conventionalcommits": "^4.3.1" } }, "@commitlint/ensure": { - "version": "12.1.1", - "resolved": "https://registry.npmjs.org/@commitlint/ensure/-/ensure-12.1.1.tgz", - "integrity": "sha512-XEUQvUjzBVQM7Uv8vYz+c7PDukFvx0AvQEyX/V+PaTkCK/xPvexu7FLbFwvypjSt9BPMf+T/rhB1hVmldkd6lw==", + "version": "12.1.4", + "resolved": "https://registry.npmjs.org/@commitlint/ensure/-/ensure-12.1.4.tgz", + "integrity": "sha512-MxHIBuAG9M4xl33qUfIeMSasbv3ktK0W+iygldBxZOL4QSYC2Gn66pZAQMnV9o3V+sVFHoAK2XUKqBAYrgbEqw==", "dev": true, "requires": { - "@commitlint/types": "^12.1.1", + "@commitlint/types": "^12.1.4", "lodash": "^4.17.19" } }, "@commitlint/execute-rule": { - "version": "12.1.1", - "resolved": "https://registry.npmjs.org/@commitlint/execute-rule/-/execute-rule-12.1.1.tgz", - "integrity": "sha512-6mplMGvLCKF5LieL7BRhydpg32tm6LICnWQADrWU4S5g9PKi2utNvhiaiuNPoHUXr29RdbNaGNcyyPv8DSjJsQ==", + "version": "12.1.4", + "resolved": "https://registry.npmjs.org/@commitlint/execute-rule/-/execute-rule-12.1.4.tgz", + "integrity": "sha512-h2S1j8SXyNeABb27q2Ok2vD1WfxJiXvOttKuRA9Or7LN6OQoC/KtT3844CIhhWNteNMu/wE0gkTqGxDVAnJiHg==", "dev": true }, "@commitlint/format": { - "version": "12.1.1", - "resolved": "https://registry.npmjs.org/@commitlint/format/-/format-12.1.1.tgz", - "integrity": "sha512-bTAoOryTFLqls17JTaRwk2WDVOP0NwuG4F/JPK8RaF6DMZNVQTfajkgTxFENNZRnESfau1BvivvEXfUAW2ZsvA==", + "version": "12.1.4", + "resolved": "https://registry.npmjs.org/@commitlint/format/-/format-12.1.4.tgz", + "integrity": "sha512-h28ucMaoRjVvvgS6Bdf85fa/+ZZ/iu1aeWGCpURnQV7/rrVjkhNSjZwGlCOUd5kDV1EnZ5XdI7L18SUpRjs26g==", "dev": true, "requires": { - "@commitlint/types": "^12.1.1", + "@commitlint/types": "^12.1.4", "chalk": "^4.0.0" }, "dependencies": { @@ -20092,12 +20144,12 @@ } }, "@commitlint/is-ignored": { - "version": "12.1.1", - "resolved": "https://registry.npmjs.org/@commitlint/is-ignored/-/is-ignored-12.1.1.tgz", - "integrity": "sha512-Sn4fsnWX+wLAJOD/UZeoVruB98te1TyPYRiDEq0MhRJAQIrP+7jE/O3/ass68AAMq00HvH3OK9kt4UBXggcGjA==", + "version": "12.1.4", + "resolved": "https://registry.npmjs.org/@commitlint/is-ignored/-/is-ignored-12.1.4.tgz", + "integrity": "sha512-uTu2jQU2SKvtIRVLOzMQo3KxDtO+iJ1p0olmncwrqy4AfPLgwoyCP2CiULq5M7xpR3+dE3hBlZXbZTQbD7ycIw==", "dev": true, "requires": { - "@commitlint/types": "^12.1.1", + "@commitlint/types": "^12.1.4", "semver": "7.3.5" }, "dependencies": { @@ -20113,26 +20165,26 @@ } }, "@commitlint/lint": { - "version": "12.1.1", - "resolved": "https://registry.npmjs.org/@commitlint/lint/-/lint-12.1.1.tgz", - "integrity": "sha512-FFFPpku/E0svL1jaUVqosuZJDDWiNWYBlUw5ZEljh3MwWRcoaWtMIX5bseX+IvHpFZsCTAiBs1kCgNulCi0UvA==", + "version": "12.1.4", + "resolved": "https://registry.npmjs.org/@commitlint/lint/-/lint-12.1.4.tgz", + "integrity": "sha512-1kZ8YDp4to47oIPFELUFGLiLumtPNKJigPFDuHt2+f3Q3IKdQ0uk53n3CPl4uoyso/Og/EZvb1mXjFR/Yce4cA==", "dev": true, "requires": { - "@commitlint/is-ignored": "^12.1.1", - "@commitlint/parse": "^12.1.1", - "@commitlint/rules": "^12.1.1", - "@commitlint/types": "^12.1.1" + "@commitlint/is-ignored": "^12.1.4", + "@commitlint/parse": "^12.1.4", + "@commitlint/rules": "^12.1.4", + "@commitlint/types": "^12.1.4" } }, "@commitlint/load": { - "version": "12.1.1", - "resolved": "https://registry.npmjs.org/@commitlint/load/-/load-12.1.1.tgz", - "integrity": "sha512-qOQtgNdJRULUQWP9jkpTwhj7aEtnqUtqeUpbQ9rjS+GIUST65HZbteNUX4S0mAEGPWqy2aK5xGd73cUfFSvuuw==", + "version": "12.1.4", + "resolved": "https://registry.npmjs.org/@commitlint/load/-/load-12.1.4.tgz", + "integrity": "sha512-Keszi0IOjRzKfxT+qES/n+KZyLrxy79RQz8wWgssCboYjKEp+wC+fLCgbiMCYjI5k31CIzIOq/16J7Ycr0C0EA==", "dev": true, "requires": { - "@commitlint/execute-rule": "^12.1.1", - "@commitlint/resolve-extends": "^12.1.1", - "@commitlint/types": "^12.1.1", + "@commitlint/execute-rule": "^12.1.4", + "@commitlint/resolve-extends": "^12.1.4", + "@commitlint/types": "^12.1.4", "chalk": "^4.0.0", "cosmiconfig": "^7.0.0", "lodash": "^4.17.19", @@ -20191,38 +20243,38 @@ } }, "@commitlint/message": { - "version": "12.1.1", - "resolved": "https://registry.npmjs.org/@commitlint/message/-/message-12.1.1.tgz", - "integrity": "sha512-RakDSLAiOligXjhbLahV8HowF4K75pZIcs0+Ii9Q8Gz5H3DWf1Ngit7alFTWfcbf/+DTjSzVPov5HiwQZPIBUg==", + "version": "12.1.4", + "resolved": "https://registry.npmjs.org/@commitlint/message/-/message-12.1.4.tgz", + "integrity": "sha512-6QhalEKsKQ/Y16/cTk5NH4iByz26fqws2ub+AinHPtM7Io0jy4e3rym9iE+TkEqiqWZlUigZnTwbPvRJeSUBaA==", "dev": true }, "@commitlint/parse": { - "version": "12.1.1", - "resolved": "https://registry.npmjs.org/@commitlint/parse/-/parse-12.1.1.tgz", - "integrity": "sha512-nuljIvAbBDr93DgL0wCArftEIhjSghawAwhvrKNV9FFcqAJqfVqitwMxJrNDCQ5pgUMCSKULLOEv+dA0bLlTEQ==", + "version": "12.1.4", + "resolved": "https://registry.npmjs.org/@commitlint/parse/-/parse-12.1.4.tgz", + "integrity": "sha512-yqKSAsK2V4X/HaLb/yYdrzs6oD/G48Ilt0EJ2Mp6RJeWYxG14w/Out6JrneWnr/cpzemyN5hExOg6+TB19H/Lw==", "dev": true, "requires": { - "@commitlint/types": "^12.1.1", + "@commitlint/types": "^12.1.4", "conventional-changelog-angular": "^5.0.11", "conventional-commits-parser": "^3.0.0" } }, "@commitlint/read": { - "version": "12.1.1", - "resolved": "https://registry.npmjs.org/@commitlint/read/-/read-12.1.1.tgz", - "integrity": "sha512-1k0CQEoZIdixvmqZRKEcWdj2XiKS7SlizEOJ1SE99Qui5d5FlBey8eaooTGgmpR6zObpIHJehtEPzM3VzUT3qA==", + "version": "12.1.4", + "resolved": "https://registry.npmjs.org/@commitlint/read/-/read-12.1.4.tgz", + "integrity": "sha512-TnPQSJgD8Aod5Xeo9W4SaYKRZmIahukjcCWJ2s5zb3ZYSmj6C85YD9cR5vlRyrZjj78ItLUV/X4FMWWVIS38Jg==", "dev": true, "requires": { - "@commitlint/top-level": "^12.1.1", - "@commitlint/types": "^12.1.1", + "@commitlint/top-level": "^12.1.4", + "@commitlint/types": "^12.1.4", "fs-extra": "^9.0.0", "git-raw-commits": "^2.0.0" } }, "@commitlint/resolve-extends": { - "version": "12.1.1", - "resolved": "https://registry.npmjs.org/@commitlint/resolve-extends/-/resolve-extends-12.1.1.tgz", - "integrity": "sha512-/DXRt0S0U3o9lq5cc8OL1Lkx0IjW0HcDWjUkUXshAajBIKBYSJB8x/loNCi1krNEJ8SwLXUEFt5OLxNO6wE9yQ==", + "version": "12.1.4", + "resolved": "https://registry.npmjs.org/@commitlint/resolve-extends/-/resolve-extends-12.1.4.tgz", + "integrity": "sha512-R9CoUtsXLd6KSCfsZly04grsH6JVnWFmVtWgWs1KdDpdV+G3TSs37tColMFqglpkx3dsWu8dsPD56+D9YnJfqg==", "dev": true, "requires": { "import-fresh": "^3.0.0", @@ -20232,36 +20284,36 @@ } }, "@commitlint/rules": { - "version": "12.1.1", - "resolved": "https://registry.npmjs.org/@commitlint/rules/-/rules-12.1.1.tgz", - "integrity": "sha512-oCcLF/ykcJfhM2DeeaDyrgdaiuKsqIPNocugdPj2WEyhSYqmx1/u18CV96LAtW+WyyiOLCCeiZwiQutx3T5nXg==", + "version": "12.1.4", + "resolved": "https://registry.npmjs.org/@commitlint/rules/-/rules-12.1.4.tgz", + "integrity": "sha512-W8m6ZSjg7RuIsIfzQiFHa48X5mcPXeKT9yjBxVmjHvYfS2FDBf1VxCQ7vO0JTVIdV4ohjZ0eKg/wxxUuZHJAZg==", "dev": true, "requires": { - "@commitlint/ensure": "^12.1.1", - "@commitlint/message": "^12.1.1", - "@commitlint/to-lines": "^12.1.1", - "@commitlint/types": "^12.1.1" + "@commitlint/ensure": "^12.1.4", + "@commitlint/message": "^12.1.4", + "@commitlint/to-lines": "^12.1.4", + "@commitlint/types": "^12.1.4" } }, "@commitlint/to-lines": { - "version": "12.1.1", - "resolved": "https://registry.npmjs.org/@commitlint/to-lines/-/to-lines-12.1.1.tgz", - "integrity": "sha512-W23AH2XF5rI27MOAPSSr0TUDoRe7ZbFoRtYhFnPu2MBmcuDA9Tmfd9N5sM2tBXtdE26uq3SazwKqGt1OoGAilQ==", + "version": "12.1.4", + "resolved": "https://registry.npmjs.org/@commitlint/to-lines/-/to-lines-12.1.4.tgz", + "integrity": "sha512-TParumvbi8bdx3EdLXz2MaX+e15ZgoCqNUgqHsRLwyqLUTRbqCVkzrfadG1UcMQk8/d5aMbb327ZKG3Q4BRorw==", "dev": true }, "@commitlint/top-level": { - "version": "12.1.1", - "resolved": "https://registry.npmjs.org/@commitlint/top-level/-/top-level-12.1.1.tgz", - "integrity": "sha512-g7uRbr81QEIg+pbii0OkE17Zh/2C/f6dSmiMDVRn1S0+hNHR1bENCh18hVUKcV/qKTUsKkFlhhWXM9mQBfxQJw==", + "version": "12.1.4", + "resolved": "https://registry.npmjs.org/@commitlint/top-level/-/top-level-12.1.4.tgz", + "integrity": "sha512-d4lTJrOT/dXlpY+NIt4CUl77ciEzYeNVc0VFgUQ6VA+b1rqYD2/VWFjBlWVOrklxtSDeKyuEhs36RGrppEFAvg==", "dev": true, "requires": { "find-up": "^5.0.0" } }, "@commitlint/types": { - "version": "12.1.1", - "resolved": "https://registry.npmjs.org/@commitlint/types/-/types-12.1.1.tgz", - "integrity": "sha512-+qGH+s2Lo6qwacV2X3/ZypZwaAI84ift+1HBjXdXtI/q0F5NtmXucV3lcQOTviMTNiJhq4qWON2fjci2NItASw==", + "version": "12.1.4", + "resolved": "https://registry.npmjs.org/@commitlint/types/-/types-12.1.4.tgz", + "integrity": "sha512-KRIjdnWNUx6ywz+SJvjmNCbQKcKP6KArhjZhY2l+CWKxak0d77SOjggkMwFTiSgLODOwmuLTbarR2ZfWPiPMlw==", "dev": true, "requires": { "chalk": "^4.0.0" @@ -20325,15 +20377,15 @@ "dev": true }, "@eslint/eslintrc": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-0.4.0.tgz", - "integrity": "sha512-2ZPCc+uNbjV5ERJr+aKSPRwZgKd2z11x0EgLvb1PURmUrn9QNRXFqje0Ldq454PfAVyaJYyrDvvIKSFP4NnBog==", + "version": "0.4.2", + "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-0.4.2.tgz", + "integrity": "sha512-8nmGq/4ycLpIwzvhI4tNDmQztZ8sp+hI7cyG8i1nQDhkAbRzHpXPidRAHlNvCZQpJTKw5ItIpMw9RSToGF00mg==", "dev": true, "requires": { "ajv": "^6.12.4", "debug": "^4.1.1", "espree": "^7.3.0", - "globals": "^12.1.0", + "globals": "^13.9.0", "ignore": "^4.0.6", "import-fresh": "^3.2.1", "js-yaml": "^3.13.1", @@ -20342,18 +20394,18 @@ }, "dependencies": { "globals": { - "version": "12.4.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-12.4.0.tgz", - "integrity": "sha512-BWICuzzDvDoH54NHKCseDanAhE3CeDorgDL5MT6LMXXj2WCnd9UC2szdk4AWLfjdgNBCXLUanXYcpBBKOSWGwg==", + "version": "13.9.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-13.9.0.tgz", + "integrity": "sha512-74/FduwI/JaIrr1H8e71UbDE+5x7pIPs1C2rrwC52SszOo043CsWOZEMW7o2Y58xwm9b+0RBKDxY5n2sUpEFxA==", "dev": true, "requires": { - "type-fest": "^0.8.1" + "type-fest": "^0.20.2" } }, "type-fest": { - "version": "0.8.1", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.8.1.tgz", - "integrity": "sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==", + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", + "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==", "dev": true } } @@ -21382,25 +21434,25 @@ } }, "@webpack-cli/configtest": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/@webpack-cli/configtest/-/configtest-1.0.2.tgz", - "integrity": "sha512-3OBzV2fBGZ5TBfdW50cha1lHDVf9vlvRXnjpVbJBa20pSZQaSkMJZiwA8V2vD9ogyeXn8nU5s5A6mHyf5jhMzA==", + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/@webpack-cli/configtest/-/configtest-1.0.3.tgz", + "integrity": "sha512-WQs0ep98FXX2XBAfQpRbY0Ma6ADw8JR6xoIkaIiJIzClGOMqVRvPCWqndTxf28DgFopWan0EKtHtg/5W1h0Zkw==", "dev": true, "requires": {} }, "@webpack-cli/info": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/@webpack-cli/info/-/info-1.2.3.tgz", - "integrity": "sha512-lLek3/T7u40lTqzCGpC6CAbY6+vXhdhmwFRxZLMnRm6/sIF/7qMpT8MocXCRQfz0JAh63wpbXLMnsQ5162WS7Q==", + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/@webpack-cli/info/-/info-1.2.4.tgz", + "integrity": "sha512-ogE2T4+pLhTTPS/8MM3IjHn0IYplKM4HbVNMCWA9N4NrdPzunwenpCsqKEXyejMfRu6K8mhauIPYf8ZxWG5O6g==", "dev": true, "requires": { "envinfo": "^7.7.3" } }, "@webpack-cli/serve": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/@webpack-cli/serve/-/serve-1.3.1.tgz", - "integrity": "sha512-0qXvpeYO6vaNoRBI52/UsbcaBydJCggoBBnIo/ovQQdn6fug0BgwsjorV1hVS7fMqGVTZGcVxv8334gjmbj5hw==", + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/@webpack-cli/serve/-/serve-1.4.0.tgz", + "integrity": "sha512-xgT/HqJ+uLWGX+Mzufusl3cgjAcnqYYskaB7o0vRcwOEfuu6hMzSILQpnIzFMGsTaeaX4Nnekl+6fadLbl1/Vg==", "dev": true, "requires": {} }, @@ -22118,14 +22170,14 @@ "dev": true }, "browserslist": { - "version": "4.16.5", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.16.5.tgz", - "integrity": "sha512-C2HAjrM1AI/djrpAUU/tr4pml1DqLIzJKSLDBXBrNErl9ZCCTXdhwxdJjYc16953+mBWf7Lw+uUJgpgb8cN71A==", + "version": "4.16.6", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.16.6.tgz", + "integrity": "sha512-Wspk/PqO+4W9qp5iUTJsa1B/QrYn1keNCcEP5OvP7WBwT4KaDly0uONYmC6Xa3Z5IqnUgS0KcgLYu1l74x0ZXQ==", "dev": true, "requires": { - "caniuse-lite": "^1.0.30001214", + "caniuse-lite": "^1.0.30001219", "colorette": "^1.2.2", - "electron-to-chromium": "^1.3.719", + "electron-to-chromium": "^1.3.723", "escalade": "^3.1.1", "node-releases": "^1.1.71" } @@ -22706,12 +22758,6 @@ "integrity": "sha512-e54B99q/OUoH64zYYRf3HBP5z24G38h5D3qXu23JGRoigpX5Ss4r9ZnDk3g0Z8uQC2x2lPaJ+UlWBc1ZWBWdLg==", "dev": true }, - "contains-path": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/contains-path/-/contains-path-0.1.0.tgz", - "integrity": "sha1-/ozxhP9mcLa67wGp1IYaXL7EEgo=", - "dev": true - }, "content-disposition": { "version": "0.5.3", "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.3.tgz", @@ -22812,67 +22858,6 @@ "read-pkg-up": "^3.0.0", "shelljs": "^0.8.3", "through2": "^4.0.0" - }, - "dependencies": { - "find-up": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz", - "integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=", - "dev": true, - "requires": { - "locate-path": "^2.0.0" - } - }, - "locate-path": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz", - "integrity": "sha1-K1aLJl7slExtnA3pw9u7ygNUzY4=", - "dev": true, - "requires": { - "p-locate": "^2.0.0", - "path-exists": "^3.0.0" - } - }, - "p-limit": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-1.3.0.tgz", - "integrity": "sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q==", - "dev": true, - "requires": { - "p-try": "^1.0.0" - } - }, - "p-locate": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-2.0.0.tgz", - "integrity": "sha1-IKAQOyIqcMj9OcwuWAaA893l7EM=", - "dev": true, - "requires": { - "p-limit": "^1.1.0" - } - }, - "p-try": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/p-try/-/p-try-1.0.0.tgz", - "integrity": "sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M=", - "dev": true - }, - "path-exists": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", - "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=", - "dev": true - }, - "read-pkg-up": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-3.0.0.tgz", - "integrity": "sha1-PtSWaF26D4/hGNBpHcUfSh/5bwc=", - "dev": true, - "requires": { - "find-up": "^2.0.0", - "read-pkg": "^3.0.0" - } - } } }, "conventional-changelog-ember": { @@ -23071,15 +23056,14 @@ } }, "css-loader": { - "version": "5.2.4", - "resolved": "https://registry.npmjs.org/css-loader/-/css-loader-5.2.4.tgz", - "integrity": "sha512-OFYGyINCKkdQsTrSYxzGSFnGS4gNjcXkKkQgWxK138jgnPt+lepxdjSZNc8sHAl5vP3DhsJUxufWIjOwI8PMMw==", + "version": "5.2.6", + "resolved": "https://registry.npmjs.org/css-loader/-/css-loader-5.2.6.tgz", + "integrity": "sha512-0wyN5vXMQZu6BvjbrPdUJvkCzGEO24HC7IS7nW4llc6BBFC+zwR9CKtYGv63Puzsg10L/o12inMY5/2ByzfD6w==", "dev": true, "requires": { - "camelcase": "^6.2.0", "icss-utils": "^5.1.0", "loader-utils": "^2.0.0", - "postcss": "^8.2.10", + "postcss": "^8.2.15", "postcss-modules-extract-imports": "^3.0.0", "postcss-modules-local-by-default": "^4.0.0", "postcss-modules-scope": "^3.0.0", @@ -23089,12 +23073,6 @@ "semver": "^7.3.5" }, "dependencies": { - "camelcase": { - "version": "6.2.0", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.2.0.tgz", - "integrity": "sha512-c7wVvbw3f37nuobQNtgsgG9POC9qMbNuMQmTCqZv23b6MIz0fcYpBiOlv9gEN/hdLdnZTDQhg6e9Dq5M1vKvfg==", - "dev": true - }, "semver": { "version": "7.3.5", "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.5.tgz", @@ -23666,9 +23644,9 @@ "dev": true }, "dns-packet": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/dns-packet/-/dns-packet-1.3.1.tgz", - "integrity": "sha512-0UxfQkMhYAUaZI+xrNZOz/as5KgDU0M/fQ9b6SpkyLbk3GEswDi6PADJVaYJradtRVsRIlF1zLyOodbcTCDzUg==", + "version": "1.3.4", + "resolved": "https://registry.npmjs.org/dns-packet/-/dns-packet-1.3.4.tgz", + "integrity": "sha512-BQ6F4vycLXBvdrJZ6S3gZewt6rcrks9KBgM9vrhW+knGRqc8uEdT7fuCwloc7nny5xNoMJ17HGH0R/6fpo8ECA==", "dev": true, "requires": { "ip": "^1.1.0", @@ -24009,28 +23987,30 @@ } }, "eslint": { - "version": "7.25.0", - "resolved": "https://registry.npmjs.org/eslint/-/eslint-7.25.0.tgz", - "integrity": "sha512-TVpSovpvCNpLURIScDRB6g5CYu/ZFq9GfX2hLNIV4dSBKxIWojeDODvYl3t0k0VtMxYeR8OXPCFE5+oHMlGfhw==", + "version": "7.28.0", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-7.28.0.tgz", + "integrity": "sha512-UMfH0VSjP0G4p3EWirscJEQ/cHqnT/iuH6oNZOB94nBjWbMnhGEPxsZm1eyIW0C/9jLI0Fow4W5DXLjEI7mn1g==", "dev": true, "requires": { "@babel/code-frame": "7.12.11", - "@eslint/eslintrc": "^0.4.0", + "@eslint/eslintrc": "^0.4.2", "ajv": "^6.10.0", "chalk": "^4.0.0", "cross-spawn": "^7.0.2", "debug": "^4.0.1", "doctrine": "^3.0.0", "enquirer": "^2.3.5", + "escape-string-regexp": "^4.0.0", "eslint-scope": "^5.1.1", "eslint-utils": "^2.1.0", "eslint-visitor-keys": "^2.0.0", "espree": "^7.3.1", "esquery": "^1.4.0", "esutils": "^2.0.2", + "fast-deep-equal": "^3.1.3", "file-entry-cache": "^6.0.1", "functional-red-black-tree": "^1.0.1", - "glob-parent": "^5.0.0", + "glob-parent": "^5.1.2", "globals": "^13.6.0", "ignore": "^4.0.6", "import-fresh": "^3.0.0", @@ -24039,7 +24019,7 @@ "js-yaml": "^3.13.1", "json-stable-stringify-without-jsonify": "^1.0.1", "levn": "^0.4.1", - "lodash": "^4.17.21", + "lodash.merge": "^4.6.2", "minimatch": "^3.0.4", "natural-compare": "^1.4.0", "optionator": "^0.9.1", @@ -24048,7 +24028,7 @@ "semver": "^7.2.1", "strip-ansi": "^6.0.0", "strip-json-comments": "^3.1.0", - "table": "^6.0.4", + "table": "^6.0.9", "text-table": "^0.2.0", "v8-compile-cache": "^2.0.3" }, @@ -24096,6 +24076,12 @@ "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", "dev": true }, + "escape-string-regexp": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", + "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", + "dev": true + }, "eslint-visitor-keys": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-2.0.0.tgz", @@ -24187,50 +24173,46 @@ } }, "eslint-module-utils": { - "version": "2.6.0", - "resolved": "https://registry.npmjs.org/eslint-module-utils/-/eslint-module-utils-2.6.0.tgz", - "integrity": "sha512-6j9xxegbqe8/kZY8cYpcp0xhbK0EgJlg3g9mib3/miLaExuuwc3n5UEfSnU6hWMbT0FAYVvDbL9RrRgpUeQIvA==", + "version": "2.6.1", + "resolved": "https://registry.npmjs.org/eslint-module-utils/-/eslint-module-utils-2.6.1.tgz", + "integrity": "sha512-ZXI9B8cxAJIH4nfkhTwcRTEAnrVfobYqwjWy/QMCZ8rHkZHFjf9yO4BzpiF9kCSfNlMG54eKigISHpX0+AaT4A==", "dev": true, "requires": { - "debug": "^2.6.9", + "debug": "^3.2.7", "pkg-dir": "^2.0.0" }, "dependencies": { "debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", + "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", "dev": true, "requires": { - "ms": "2.0.0" + "ms": "^2.1.1" } - }, - "ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", - "dev": true } } }, "eslint-plugin-import": { - "version": "2.22.1", - "resolved": "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.22.1.tgz", - "integrity": "sha512-8K7JjINHOpH64ozkAhpT3sd+FswIZTfMZTjdx052pnWrgRCVfp8op9tbjpAk3DdUeI/Ba4C8OjdC0r90erHEOw==", + "version": "2.23.4", + "resolved": "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.23.4.tgz", + "integrity": "sha512-6/wP8zZRsnQFiR3iaPFgh5ImVRM1WN5NUWfTIRqwOdeiGJlBcSk82o1FEVq8yXmy4lkIzTo7YhHCIxlU/2HyEQ==", "dev": true, "requires": { - "array-includes": "^3.1.1", - "array.prototype.flat": "^1.2.3", - "contains-path": "^0.1.0", + "array-includes": "^3.1.3", + "array.prototype.flat": "^1.2.4", "debug": "^2.6.9", - "doctrine": "1.5.0", + "doctrine": "^2.1.0", "eslint-import-resolver-node": "^0.3.4", - "eslint-module-utils": "^2.6.0", + "eslint-module-utils": "^2.6.1", + "find-up": "^2.0.0", "has": "^1.0.3", + "is-core-module": "^2.4.0", "minimatch": "^3.0.4", - "object.values": "^1.1.1", - "read-pkg-up": "^2.0.0", - "resolve": "^1.17.0", + "object.values": "^1.1.3", + "pkg-up": "^2.0.0", + "read-pkg-up": "^3.0.0", + "resolve": "^1.20.0", "tsconfig-paths": "^3.9.0" }, "dependencies": { @@ -24244,13 +24226,31 @@ } }, "doctrine": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-1.5.0.tgz", - "integrity": "sha1-N53Ocw9hZvds76TmcHoVmwLFpvo=", + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz", + "integrity": "sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==", + "dev": true, + "requires": { + "esutils": "^2.0.2" + } + }, + "find-up": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz", + "integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=", "dev": true, "requires": { - "esutils": "^2.0.2", - "isarray": "^1.0.0" + "locate-path": "^2.0.0" + } + }, + "locate-path": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz", + "integrity": "sha1-K1aLJl7slExtnA3pw9u7ygNUzY4=", + "dev": true, + "requires": { + "p-locate": "^2.0.0", + "path-exists": "^3.0.0" } }, "ms": { @@ -24258,6 +24258,36 @@ "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", "dev": true + }, + "p-limit": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-1.3.0.tgz", + "integrity": "sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q==", + "dev": true, + "requires": { + "p-try": "^1.0.0" + } + }, + "p-locate": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-2.0.0.tgz", + "integrity": "sha1-IKAQOyIqcMj9OcwuWAaA893l7EM=", + "dev": true, + "requires": { + "p-limit": "^1.1.0" + } + }, + "p-try": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/p-try/-/p-try-1.0.0.tgz", + "integrity": "sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M=", + "dev": true + }, + "path-exists": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", + "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=", + "dev": true } } }, @@ -25264,12 +25294,6 @@ } } }, - "get-stdin": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/get-stdin/-/get-stdin-8.0.0.tgz", - "integrity": "sha512-sY22aA6xchAzprjyqmSEQv4UbAAzRN0L2dQB0NlN5acTTK9Don6nhoc3eAbUnpZiCANAMfd/+40kVdKfFygohg==", - "dev": true - }, "get-stream": { "version": "5.2.0", "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.2.0.tgz", @@ -26068,9 +26092,9 @@ } }, "is-core-module": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.3.0.tgz", - "integrity": "sha512-xSphU2KG9867tsYdLD4RWQ1VqdFl4HTO9Thf3I/3dLEfr0dbPTWKsuCKrgqMljg4nPE+Gq0VCnzT3gr0CyBmsw==", + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.4.0.tgz", + "integrity": "sha512-6A2fkfq1rfeQZjxrZJGerpLCTHRNEBiSgnu0+obeJpEPZRUooHgsizvzv0ZjJwOz3iWIHdJtVWJ/tmPr3D21/A==", "dev": true, "requires": { "has": "^1.0.3" @@ -28615,6 +28639,12 @@ "integrity": "sha1-dWy1FQyjum8RCFp4hJZF8Yj4Xzc=", "dev": true }, + "lodash.merge": { + "version": "4.6.2", + "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz", + "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==", + "dev": true + }, "lodash.pad": { "version": "4.5.1", "resolved": "https://registry.npmjs.org/lodash.pad/-/lodash.pad-4.5.1.tgz", @@ -29233,9 +29263,9 @@ "optional": true }, "nanoid": { - "version": "3.1.22", - "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.1.22.tgz", - "integrity": "sha512-/2ZUaJX2ANuLtTvqTlgqBQNJoQO398KyJgZloL0PZkC0dpysjncRUPsFe3DUPzz/y3h+u7C46np8RMuvF3jsSQ==", + "version": "3.1.23", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.1.23.tgz", + "integrity": "sha512-FiB0kzdP0FFVGDKlRLEQ1BgDzU87dy5NnzjeW9YZNt+/c3+q82EQDUwniSAUxp/F0gFNI1ZhKU1FqYsMuqZVnw==", "dev": true }, "nanomatch": { @@ -29975,6 +30005,66 @@ } } }, + "pkg-up": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/pkg-up/-/pkg-up-2.0.0.tgz", + "integrity": "sha1-yBmscoBZpGHKscOImivjxJoATX8=", + "dev": true, + "requires": { + "find-up": "^2.1.0" + }, + "dependencies": { + "find-up": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz", + "integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=", + "dev": true, + "requires": { + "locate-path": "^2.0.0" + } + }, + "locate-path": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz", + "integrity": "sha1-K1aLJl7slExtnA3pw9u7ygNUzY4=", + "dev": true, + "requires": { + "p-locate": "^2.0.0", + "path-exists": "^3.0.0" + } + }, + "p-limit": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-1.3.0.tgz", + "integrity": "sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q==", + "dev": true, + "requires": { + "p-try": "^1.0.0" + } + }, + "p-locate": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-2.0.0.tgz", + "integrity": "sha1-IKAQOyIqcMj9OcwuWAaA893l7EM=", + "dev": true, + "requires": { + "p-limit": "^1.1.0" + } + }, + "p-try": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/p-try/-/p-try-1.0.0.tgz", + "integrity": "sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M=", + "dev": true + }, + "path-exists": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", + "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=", + "dev": true + } + } + }, "please-upgrade-node": { "version": "3.2.0", "resolved": "https://registry.npmjs.org/please-upgrade-node/-/please-upgrade-node-3.2.0.tgz", @@ -30020,22 +30110,14 @@ "dev": true }, "postcss": { - "version": "8.2.13", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.2.13.tgz", - "integrity": "sha512-FCE5xLH+hjbzRdpbRb1IMCvPv9yZx2QnDarBEYSN0N0HYk+TcXsEhwdFcFb+SRWOKzKGErhIEbBK2ogyLdTtfQ==", + "version": "8.3.0", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.3.0.tgz", + "integrity": "sha512-+ogXpdAjWGa+fdYY5BQ96V/6tAo+TdSSIMP5huJBIygdWwKtVoB5JWZ7yUd4xZ8r+8Kvvx4nyg/PQ071H4UtcQ==", "dev": true, "requires": { "colorette": "^1.2.2", - "nanoid": "^3.1.22", - "source-map": "^0.6.1" - }, - "dependencies": { - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true - } + "nanoid": "^3.1.23", + "source-map-js": "^0.6.2" } }, "postcss-modules-extract-imports": { @@ -30097,9 +30179,9 @@ "dev": true }, "prettier": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/prettier/-/prettier-2.2.1.tgz", - "integrity": "sha512-PqyhM2yCjg/oKkFPtTGUojv7gnZAoG80ttl45O6x2Ug/rMJw4wcc9k6aaf2hibP7BGVCCM33gZoGjyvt9mm16Q==", + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/prettier/-/prettier-2.3.1.tgz", + "integrity": "sha512-p+vNbgpLjif/+D+DwAZAbndtRrR0md0MwfmOVN9N+2RgyACMT+7tfaRnT+WDPkqnuVwleyuBIG2XBxKDme3hPA==", "dev": true }, "pretty-format": { @@ -30339,13 +30421,13 @@ } }, "read-pkg-up": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-2.0.0.tgz", - "integrity": "sha1-a3KoBImE4MQeeVEP1en6mbO1Sb4=", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-3.0.0.tgz", + "integrity": "sha1-PtSWaF26D4/hGNBpHcUfSh/5bwc=", "dev": true, "requires": { "find-up": "^2.0.0", - "read-pkg": "^2.0.0" + "read-pkg": "^3.0.0" }, "dependencies": { "find-up": { @@ -30357,24 +30439,6 @@ "locate-path": "^2.0.0" } }, - "hosted-git-info": { - "version": "2.8.9", - "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.9.tgz", - "integrity": "sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw==", - "dev": true - }, - "load-json-file": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-2.0.0.tgz", - "integrity": "sha1-eUfkIUmvgNaWy/eXvKq8/h/inKg=", - "dev": true, - "requires": { - "graceful-fs": "^4.1.2", - "parse-json": "^2.2.0", - "pify": "^2.0.0", - "strip-bom": "^3.0.0" - } - }, "locate-path": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz", @@ -30385,18 +30449,6 @@ "path-exists": "^3.0.0" } }, - "normalize-package-data": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.5.0.tgz", - "integrity": "sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==", - "dev": true, - "requires": { - "hosted-git-info": "^2.1.4", - "resolve": "^1.10.0", - "semver": "2 || 3 || 4 || 5", - "validate-npm-package-license": "^3.0.1" - } - }, "p-limit": { "version": "1.3.0", "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-1.3.0.tgz", @@ -30421,58 +30473,11 @@ "integrity": "sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M=", "dev": true }, - "parse-json": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-2.2.0.tgz", - "integrity": "sha1-9ID0BDTvgHQfhGkJn43qGPVaTck=", - "dev": true, - "requires": { - "error-ex": "^1.2.0" - } - }, "path-exists": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=", "dev": true - }, - "path-type": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/path-type/-/path-type-2.0.0.tgz", - "integrity": "sha1-8BLMuEFbcJb8LaoQVMPXI4lZTHM=", - "dev": true, - "requires": { - "pify": "^2.0.0" - } - }, - "pify": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", - "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=", - "dev": true - }, - "read-pkg": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-2.0.0.tgz", - "integrity": "sha1-jvHAYjxqbbDcZxPEv6xGMysjaPg=", - "dev": true, - "requires": { - "load-json-file": "^2.0.0", - "normalize-package-data": "^2.3.2", - "path-type": "^2.0.0" - } - }, - "semver": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", - "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", - "dev": true - }, - "strip-bom": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", - "integrity": "sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM=", - "dev": true } } }, @@ -31474,6 +31479,12 @@ "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", "dev": true }, + "source-map-js": { + "version": "0.6.2", + "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-0.6.2.tgz", + "integrity": "sha512-/3GptzWzu0+0MBQFrDKzw/DvvMTUORvgY6k6jd/VS6iCR4RDTKWH6v6WPwQoUO8667uQEf9Oe38DxAYWY5F/Ug==", + "dev": true + }, "source-map-resolve": { "version": "0.5.3", "resolved": "https://registry.npmjs.org/source-map-resolve/-/source-map-resolve-0.5.3.tgz", @@ -32735,9 +32746,9 @@ } }, "watchpack": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-2.1.1.tgz", - "integrity": "sha512-Oo7LXCmc1eE1AjyuSBmtC3+Wy4HcV8PxWh2kP6fOl8yTlNS7r0K9l1ao2lrrUza7V39Y3D/BbJgY8VeSlc5JKw==", + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-2.2.0.tgz", + "integrity": "sha512-up4YAn/XHgZHIxFBVCdlMiWDj6WaLKpwVeGQk2I5thdYxF/KmF0aaz6TfJZ/hfl1h/XlcDr7k1KH7ThDagpFaA==", "dev": true, "requires": { "glob-to-regexp": "^0.4.1", @@ -32760,9 +32771,9 @@ "dev": true }, "webpack": { - "version": "5.36.1", - "resolved": "https://registry.npmjs.org/webpack/-/webpack-5.36.1.tgz", - "integrity": "sha512-2u25a82T+6quAxSlzEpN/R/RICwt20ONU3z3Ko05S8KVH9FXILcBYb2hD/rQtZT5y7lRAIsIIs05pdndY7ourQ==", + "version": "5.38.1", + "resolved": "https://registry.npmjs.org/webpack/-/webpack-5.38.1.tgz", + "integrity": "sha512-OqRmYD1OJbHZph6RUMD93GcCZy4Z4wC0ele4FXyYF0J6AxO1vOSuIlU1hkS/lDlR9CDYBz64MZRmdbdnFFoT2g==", "dev": true, "requires": { "@types/eslint-scope": "^3.7.0", @@ -32775,7 +32786,7 @@ "chrome-trace-event": "^1.0.2", "enhanced-resolve": "^5.8.0", "es-module-lexer": "^0.4.0", - "eslint-scope": "^5.1.1", + "eslint-scope": "5.1.1", "events": "^3.2.0", "glob-to-regexp": "^0.4.1", "graceful-fs": "^4.2.4", @@ -32786,8 +32797,8 @@ "schema-utils": "^3.0.0", "tapable": "^2.1.1", "terser-webpack-plugin": "^5.1.1", - "watchpack": "^2.0.0", - "webpack-sources": "^2.1.1" + "watchpack": "^2.2.0", + "webpack-sources": "^2.3.0" }, "dependencies": { "acorn": { @@ -32803,9 +32814,9 @@ "dev": true }, "webpack-sources": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-2.2.0.tgz", - "integrity": "sha512-bQsA24JLwcnWGArOKUxYKhX3Mz/nK1Xf6hxullKERyktjNMC4x8koOeaDNTA2fEJ09BdWLbM/iTW0ithREUP0w==", + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-2.3.0.tgz", + "integrity": "sha512-WyOdtwSvOML1kbgtXbTDnEW0jkJ7hZr/bDByIwszhWd/4XX1A3XMkrbFMsuH4+/MfLlZCUzlAdg4r7jaGKEIgQ==", "dev": true, "requires": { "source-list-map": "^2.0.1", @@ -32815,18 +32826,17 @@ } }, "webpack-cli": { - "version": "4.6.0", - "resolved": "https://registry.npmjs.org/webpack-cli/-/webpack-cli-4.6.0.tgz", - "integrity": "sha512-9YV+qTcGMjQFiY7Nb1kmnupvb1x40lfpj8pwdO/bom+sQiP4OBMKjHq29YQrlDWDPZO9r/qWaRRywKaRDKqBTA==", + "version": "4.7.0", + "resolved": "https://registry.npmjs.org/webpack-cli/-/webpack-cli-4.7.0.tgz", + "integrity": "sha512-7bKr9182/sGfjFm+xdZSwgQuFjgEcy0iCTIBxRUeteJ2Kr8/Wz0qNJX+jw60LU36jApt4nmMkep6+W5AKhok6g==", "dev": true, "requires": { "@discoveryjs/json-ext": "^0.5.0", - "@webpack-cli/configtest": "^1.0.2", - "@webpack-cli/info": "^1.2.3", - "@webpack-cli/serve": "^1.3.1", + "@webpack-cli/configtest": "^1.0.3", + "@webpack-cli/info": "^1.2.4", + "@webpack-cli/serve": "^1.4.0", "colorette": "^1.2.1", "commander": "^7.0.0", - "enquirer": "^2.3.6", "execa": "^5.0.0", "fastest-levenshtein": "^1.0.12", "import-local": "^3.0.2", @@ -33250,9 +33260,9 @@ } }, "ws": { - "version": "6.2.1", - "resolved": "https://registry.npmjs.org/ws/-/ws-6.2.1.tgz", - "integrity": "sha512-GIyAXC2cB7LjvpgMt9EKS2ldqr0MTrORaleiOno6TweZ6r3TKtoFQWay/2PceJ3RuBasOHzXNn5Lrw1X0bEjqA==", + "version": "6.2.2", + "resolved": "https://registry.npmjs.org/ws/-/ws-6.2.2.tgz", + "integrity": "sha512-zmhltoSR8u1cnDsD43TX59mzoMZsLKqUweyYBAIvTngR3shc0W6aOZylZmq/7hqyVxPdi+5Ud2QInblgyE72fw==", "dev": true, "requires": { "async-limiter": "~1.0.0" @@ -33528,9 +33538,9 @@ } }, "ws": { - "version": "7.4.5", - "resolved": "https://registry.npmjs.org/ws/-/ws-7.4.5.tgz", - "integrity": "sha512-xzyu3hFvomRfXKH8vOFMU3OguG6oOvhXMo3xsGy3xWExqaM2dxBbVxuD99O7m3ZUFMvvscsZDqxfgMaRr/Nr1g==", + "version": "7.4.6", + "resolved": "https://registry.npmjs.org/ws/-/ws-7.4.6.tgz", + "integrity": "sha512-YmhHDO4MzaDLB+M9ym/mDA5z0naX8j7SIlT8f8z+I0VtzsRbekxEutHSme7NPS2qE8StCYQNUnfWdXta/Yu85A==", "dev": true, "requires": {} }, diff --git a/package.json b/package.json index 286b637a..608a1cb5 100644 --- a/package.json +++ b/package.json @@ -47,23 +47,23 @@ "webpack-sources": "^1.1.0" }, "devDependencies": { - "@babel/cli": "^7.13.10", - "@babel/core": "^7.13.10", - "@babel/preset-env": "^7.13.10", - "@commitlint/cli": "^12.0.1", - "@commitlint/config-conventional": "^12.0.1", + "@babel/cli": "^7.14.3", + "@babel/core": "^7.14.3", + "@babel/preset-env": "^7.14.4", + "@commitlint/cli": "^12.1.4", + "@commitlint/config-conventional": "^12.1.4", "@webpack-contrib/eslint-config-webpack": "^3.0.0", "babel-eslint": "^10.1.0", "babel-jest": "^26.6.3", "bootstrap": "^4.6.0", "cross-env": "^7.0.3", - "css-loader": "^5.1.3", + "css-loader": "^5.2.6", "del": "^6.0.0", "del-cli": "^3.0.1", "es-check": "5.2.3", - "eslint": "^7.22.0", + "eslint": "^7.28.0", "eslint-config-prettier": "^8.1.0", - "eslint-plugin-import": "^2.22.1", + "eslint-plugin-import": "^2.23.4", "file-loader": "^6.2.0", "husky": "^5.2.0", "jest": "^26.6.3", @@ -71,11 +71,11 @@ "lint-staged": "^10.5.4", "memfs": "^3.0.2", "npm-run-all": "^4.1.5", - "prettier": "^2.2.1", + "prettier": "^2.3.1", "standard-version": "^9.1.0", - "webpack": "^5.36.1", - "webpack-cli": "^4.5.0", - "webpack-dev-server": "^3.7.2" + "webpack": "^5.38.1", + "webpack-cli": "^4.7.0", + "webpack-dev-server": "^3.11.2" }, "keywords": [ "webpack", diff --git a/test/TestCases.test.js b/test/TestCases.test.js index 374c434c..99e99b75 100644 --- a/test/TestCases.test.js +++ b/test/TestCases.test.js @@ -128,8 +128,8 @@ describe('TestCases', () => { config.plugins.map((p) => { if (p.constructor === Self) { const { options } = p; - options.experimentalUseImportModule = !!process.env - .EXPERIMENTAL_USE_IMPORT_MODULE; + options.experimentalUseImportModule = + !!process.env.EXPERIMENTAL_USE_IMPORT_MODULE; } return p; }), diff --git a/test/cases/insert-undefined/webpack.config.js b/test/cases/insert-undefined/webpack.config.js index cff5a5fb..cf2c96c8 100644 --- a/test/cases/insert-undefined/webpack.config.js +++ b/test/cases/insert-undefined/webpack.config.js @@ -1,6 +1,6 @@ /* global document */ -const Self = require('../../../src/cjs.js'); +const Self = require('../../../src/cjs'); module.exports = { module: { diff --git a/test/cases/runtime/index.js b/test/cases/runtime/index.js index 4d25dd75..ea347a54 100644 --- a/test/cases/runtime/index.js +++ b/test/cases/runtime/index.js @@ -1,4 +1,4 @@ // eslint-disable-next-line import/no-unresolved import './style.css'; -import('./async.js'); +import('./async'); diff --git a/test/manual/src/index.js b/test/manual/src/index.js index 8383643c..466423df 100644 --- a/test/manual/src/index.js +++ b/test/manual/src/index.js @@ -58,7 +58,7 @@ const makeButton = (className, fn, shouldDisable = true) => { }); }; -makeButton('.lazy-button', () => import('./lazy.js')); +makeButton('.lazy-button', () => import('./lazy')); makeButton('.lazy-button2', () => import('./lazy2.css')); makeButton('.lazy-module-button', () => import('./lazy.module.css').then((module) => { @@ -77,7 +77,7 @@ makeButton('.preloaded-button2', () => import(/* webpackChunkName: "preloaded2" */ './preloaded2') ); -makeButton('.lazy-failure-button', () => import('./lazy-failure.js'), false); +makeButton('.lazy-failure-button', () => import('./lazy-failure'), false); makeButton('.crossorigin', () => { const originalPublicPath = __webpack_public_path__; From be1d6dc9407f7699238e8bf123bdde755d5cdcee Mon Sep 17 00:00:00 2001 From: Nitin Kumar Date: Mon, 7 Jun 2021 15:54:59 +0530 Subject: [PATCH 13/30] chore: fix typo (#761) --- .github/ISSUE_TEMPLATE.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/ISSUE_TEMPLATE.md b/.github/ISSUE_TEMPLATE.md index f68cbd3e..3ce9cf32 100644 --- a/.github/ISSUE_TEMPLATE.md +++ b/.github/ISSUE_TEMPLATE.md @@ -6,7 +6,7 @@ You arrived at this template because you felt none of the other options matched the kind of issue you'd like to report. Please use this opportunity to - tell us about your particular type of issue so we can try to accomodate + tell us about your particular type of issue so we can try to accommodate similar issues in the future. PLEASE do note, if you're using this to report an issue already covered by the From 111b53aaf09c1e8a10c29c97b2b30a61c3afb99e Mon Sep 17 00:00:00 2001 From: Nitin Kumar Date: Wed, 16 Jun 2021 21:21:31 +0530 Subject: [PATCH 14/30] chore: update deps (#766) --- package-lock.json | 6582 ++++++++++++++++---------------------- package.json | 16 +- test/HMR.test.js | 3 + test/enforce-esm.test.js | 15 +- 4 files changed, 2753 insertions(+), 3863 deletions(-) diff --git a/package-lock.json b/package-lock.json index 38cdc779..2558dec5 100644 --- a/package-lock.json +++ b/package-lock.json @@ -13,14 +13,14 @@ "webpack-sources": "^1.1.0" }, "devDependencies": { - "@babel/cli": "^7.14.3", - "@babel/core": "^7.14.3", - "@babel/preset-env": "^7.14.4", + "@babel/cli": "^7.14.5", + "@babel/core": "^7.14.6", + "@babel/preset-env": "^7.14.5", "@commitlint/cli": "^12.1.4", "@commitlint/config-conventional": "^12.1.4", "@webpack-contrib/eslint-config-webpack": "^3.0.0", "babel-eslint": "^10.1.0", - "babel-jest": "^26.6.3", + "babel-jest": "^27.0.2", "bootstrap": "^4.6.0", "cross-env": "^7.0.3", "css-loader": "^5.2.6", @@ -32,15 +32,15 @@ "eslint-plugin-import": "^2.23.4", "file-loader": "^6.2.0", "husky": "^5.2.0", - "jest": "^26.6.3", + "jest": "^27.0.4", "jsdom": "^16.5.1", "lint-staged": "^10.5.4", "memfs": "^3.0.2", "npm-run-all": "^4.1.5", "prettier": "^2.3.1", "standard-version": "^9.1.0", - "webpack": "^5.38.1", - "webpack-cli": "^4.7.0", + "webpack": "^5.39.0", + "webpack-cli": "^4.7.2", "webpack-dev-server": "^3.11.2" }, "engines": { @@ -55,9 +55,9 @@ } }, "node_modules/@babel/cli": { - "version": "7.14.3", - "resolved": "https://registry.npmjs.org/@babel/cli/-/cli-7.14.3.tgz", - "integrity": "sha512-zU4JLvwk32ay1lhhyGfqiRUSPoltVDjhYkA3aQq8+Yby9z30s/EsFw1EPOHxWG9YZo2pAGfgdRNeHZQAYU5m9A==", + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/cli/-/cli-7.14.5.tgz", + "integrity": "sha512-poegjhRvXHWO0EAsnYajwYZuqcz7gyfxwfaecUESxDujrqOivf3zrjFbub8IJkrqEaz3fvJWh001EzxBub54fg==", "dev": true, "dependencies": { "commander": "^4.0.1", @@ -72,8 +72,11 @@ "babel": "bin/babel.js", "babel-external-helpers": "bin/babel-external-helpers.js" }, + "engines": { + "node": ">=6.9.0" + }, "optionalDependencies": { - "@nicolo-ribaudo/chokidar-2": "2.1.8-no-fsevents", + "@nicolo-ribaudo/chokidar-2": "2.1.8-no-fsevents.2", "chokidar": "^3.4.0" }, "peerDependencies": { @@ -81,35 +84,41 @@ } }, "node_modules/@babel/code-frame": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.12.13.tgz", - "integrity": "sha512-HV1Cm0Q3ZrpCR93tkWOYiuYIgLxZXZFVG2VgK+MBWjUqZTundupbfx2aXarXuw5Ko5aMcjtJgbSs4vUGBS5v6g==", + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.14.5.tgz", + "integrity": "sha512-9pzDqyc6OLDaqe+zbACgFkb6fKMNG6CObKpnYXChRsvYGyEdc7CA2BaqeOM+vOtCS5ndmJicPJhKAwYRI6UfFw==", "dev": true, "dependencies": { - "@babel/highlight": "^7.12.13" + "@babel/highlight": "^7.14.5" + }, + "engines": { + "node": ">=6.9.0" } }, "node_modules/@babel/compat-data": { - "version": "7.14.4", - "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.14.4.tgz", - "integrity": "sha512-i2wXrWQNkH6JplJQGn3Rd2I4Pij8GdHkXwHMxm+zV5YG/Jci+bCNrWZEWC4o+umiDkRrRs4dVzH3X4GP7vyjQQ==", - "dev": true + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.14.5.tgz", + "integrity": "sha512-kixrYn4JwfAVPa0f2yfzc2AWti6WRRyO3XjWW5PJAvtE11qhSayrrcrEnee05KAtNaPC+EwehE8Qt1UedEVB8w==", + "dev": true, + "engines": { + "node": ">=6.9.0" + } }, "node_modules/@babel/core": { - "version": "7.14.3", - "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.14.3.tgz", - "integrity": "sha512-jB5AmTKOCSJIZ72sd78ECEhuPiDMKlQdDI/4QRI6lzYATx5SSogS1oQA2AoPecRCknm30gHi2l+QVvNUu3wZAg==", - "dev": true, - "dependencies": { - "@babel/code-frame": "^7.12.13", - "@babel/generator": "^7.14.3", - "@babel/helper-compilation-targets": "^7.13.16", - "@babel/helper-module-transforms": "^7.14.2", - "@babel/helpers": "^7.14.0", - "@babel/parser": "^7.14.3", - "@babel/template": "^7.12.13", - "@babel/traverse": "^7.14.2", - "@babel/types": "^7.14.2", + "version": "7.14.6", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.14.6.tgz", + "integrity": "sha512-gJnOEWSqTk96qG5BoIrl5bVtc23DCycmIePPYnamY9RboYdI4nFy5vAQMSl81O5K/W0sLDWfGysnOECC+KUUCA==", + "dev": true, + "dependencies": { + "@babel/code-frame": "^7.14.5", + "@babel/generator": "^7.14.5", + "@babel/helper-compilation-targets": "^7.14.5", + "@babel/helper-module-transforms": "^7.14.5", + "@babel/helpers": "^7.14.6", + "@babel/parser": "^7.14.6", + "@babel/template": "^7.14.5", + "@babel/traverse": "^7.14.5", + "@babel/types": "^7.14.5", "convert-source-map": "^1.7.0", "debug": "^4.1.0", "gensync": "^1.0.0-beta.2", @@ -126,84 +135,102 @@ } }, "node_modules/@babel/generator": { - "version": "7.14.3", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.14.3.tgz", - "integrity": "sha512-bn0S6flG/j0xtQdz3hsjJ624h3W0r3llttBMfyHX3YrZ/KtLYr15bjA0FXkgW7FpvrDuTuElXeVjiKlYRpnOFA==", + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.14.5.tgz", + "integrity": "sha512-y3rlP+/G25OIX3mYKKIOlQRcqj7YgrvHxOLbVmyLJ9bPmi5ttvUmpydVjcFjZphOktWuA7ovbx91ECloWTfjIA==", "dev": true, "dependencies": { - "@babel/types": "^7.14.2", + "@babel/types": "^7.14.5", "jsesc": "^2.5.1", "source-map": "^0.5.0" + }, + "engines": { + "node": ">=6.9.0" } }, "node_modules/@babel/helper-annotate-as-pure": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.12.13.tgz", - "integrity": "sha512-7YXfX5wQ5aYM/BOlbSccHDbuXXFPxeoUmfWtz8le2yTkTZc+BxsiEnENFoi2SlmA8ewDkG2LgIMIVzzn2h8kfw==", + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.14.5.tgz", + "integrity": "sha512-EivH9EgBIb+G8ij1B2jAwSH36WnGvkQSEC6CkX/6v6ZFlw5fVOHvsgGF4uiEHO2GzMvunZb6tDLQEQSdrdocrA==", "dev": true, "dependencies": { - "@babel/types": "^7.12.13" + "@babel/types": "^7.14.5" + }, + "engines": { + "node": ">=6.9.0" } }, "node_modules/@babel/helper-builder-binary-assignment-operator-visitor": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.12.13.tgz", - "integrity": "sha512-CZOv9tGphhDRlVjVkAgm8Nhklm9RzSmWpX2my+t7Ua/KT616pEzXsQCjinzvkRvHWJ9itO4f296efroX23XCMA==", + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.14.5.tgz", + "integrity": "sha512-YTA/Twn0vBXDVGJuAX6PwW7x5zQei1luDDo2Pl6q1qZ7hVNl0RZrhHCQG/ArGpR29Vl7ETiB8eJyrvpuRp300w==", "dev": true, "dependencies": { - "@babel/helper-explode-assignable-expression": "^7.12.13", - "@babel/types": "^7.12.13" + "@babel/helper-explode-assignable-expression": "^7.14.5", + "@babel/types": "^7.14.5" + }, + "engines": { + "node": ">=6.9.0" } }, "node_modules/@babel/helper-compilation-targets": { - "version": "7.14.4", - "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.14.4.tgz", - "integrity": "sha512-JgdzOYZ/qGaKTVkn5qEDV/SXAh8KcyUVkCoSWGN8T3bwrgd6m+/dJa2kVGi6RJYJgEYPBdZ84BZp9dUjNWkBaA==", + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.14.5.tgz", + "integrity": "sha512-v+QtZqXEiOnpO6EYvlImB6zCD2Lel06RzOPzmkz/D/XgQiUu3C/Jb1LOqSt/AIA34TYi/Q+KlT8vTQrgdxkbLw==", "dev": true, "dependencies": { - "@babel/compat-data": "^7.14.4", - "@babel/helper-validator-option": "^7.12.17", + "@babel/compat-data": "^7.14.5", + "@babel/helper-validator-option": "^7.14.5", "browserslist": "^4.16.6", "semver": "^6.3.0" }, + "engines": { + "node": ">=6.9.0" + }, "peerDependencies": { "@babel/core": "^7.0.0" } }, "node_modules/@babel/helper-create-class-features-plugin": { - "version": "7.14.4", - "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.14.4.tgz", - "integrity": "sha512-idr3pthFlDCpV+p/rMgGLGYIVtazeatrSOQk8YzO2pAepIjQhCN3myeihVg58ax2bbbGK9PUE1reFi7axOYIOw==", + "version": "7.14.6", + "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.14.6.tgz", + "integrity": "sha512-Z6gsfGofTxH/+LQXqYEK45kxmcensbzmk/oi8DmaQytlQCgqNZt9XQF8iqlI/SeXWVjaMNxvYvzaYw+kh42mDg==", "dev": true, "dependencies": { - "@babel/helper-annotate-as-pure": "^7.12.13", - "@babel/helper-function-name": "^7.14.2", - "@babel/helper-member-expression-to-functions": "^7.13.12", - "@babel/helper-optimise-call-expression": "^7.12.13", - "@babel/helper-replace-supers": "^7.14.4", - "@babel/helper-split-export-declaration": "^7.12.13" + "@babel/helper-annotate-as-pure": "^7.14.5", + "@babel/helper-function-name": "^7.14.5", + "@babel/helper-member-expression-to-functions": "^7.14.5", + "@babel/helper-optimise-call-expression": "^7.14.5", + "@babel/helper-replace-supers": "^7.14.5", + "@babel/helper-split-export-declaration": "^7.14.5" + }, + "engines": { + "node": ">=6.9.0" }, "peerDependencies": { "@babel/core": "^7.0.0" } }, "node_modules/@babel/helper-create-regexp-features-plugin": { - "version": "7.12.17", - "resolved": "https://registry.npmjs.org/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.12.17.tgz", - "integrity": "sha512-p2VGmBu9oefLZ2nQpgnEnG0ZlRPvL8gAGvPUMQwUdaE8k49rOMuZpOwdQoy5qJf6K8jL3bcAMhVUlHAjIgJHUg==", + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.14.5.tgz", + "integrity": "sha512-TLawwqpOErY2HhWbGJ2nZT5wSkR192QpN+nBg1THfBfftrlvOh+WbhrxXCH4q4xJ9Gl16BGPR/48JA+Ryiho/A==", "dev": true, "dependencies": { - "@babel/helper-annotate-as-pure": "^7.12.13", + "@babel/helper-annotate-as-pure": "^7.14.5", "regexpu-core": "^4.7.1" }, + "engines": { + "node": ">=6.9.0" + }, "peerDependencies": { "@babel/core": "^7.0.0" } }, "node_modules/@babel/helper-define-polyfill-provider": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.2.0.tgz", - "integrity": "sha512-JT8tHuFjKBo8NnaUbblz7mIu1nnvUDiHVjXXkulZULyidvo/7P6TY7+YqpV37IfF+KUFxmlK04elKtGKXaiVgw==", + "version": "0.2.3", + "resolved": "https://registry.npmjs.org/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.2.3.tgz", + "integrity": "sha512-RH3QDAfRMzj7+0Nqu5oqgO5q9mFtQEVvCRsi8qCEfzLR9p2BHfn5FzhSB2oj1fF7I2+DcTORkYaQ6aTR9Cofew==", "dev": true, "dependencies": { "@babel/helper-compilation-targets": "^7.13.0", @@ -220,193 +247,249 @@ } }, "node_modules/@babel/helper-explode-assignable-expression": { - "version": "7.13.0", - "resolved": "https://registry.npmjs.org/@babel/helper-explode-assignable-expression/-/helper-explode-assignable-expression-7.13.0.tgz", - "integrity": "sha512-qS0peLTDP8kOisG1blKbaoBg/o9OSa1qoumMjTK5pM+KDTtpxpsiubnCGP34vK8BXGcb2M9eigwgvoJryrzwWA==", + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/helper-explode-assignable-expression/-/helper-explode-assignable-expression-7.14.5.tgz", + "integrity": "sha512-Htb24gnGJdIGT4vnRKMdoXiOIlqOLmdiUYpAQ0mYfgVT/GDm8GOYhgi4GL+hMKrkiPRohO4ts34ELFsGAPQLDQ==", "dev": true, "dependencies": { - "@babel/types": "^7.13.0" + "@babel/types": "^7.14.5" + }, + "engines": { + "node": ">=6.9.0" } }, "node_modules/@babel/helper-function-name": { - "version": "7.14.2", - "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.14.2.tgz", - "integrity": "sha512-NYZlkZRydxw+YT56IlhIcS8PAhb+FEUiOzuhFTfqDyPmzAhRge6ua0dQYT/Uh0t/EDHq05/i+e5M2d4XvjgarQ==", + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.14.5.tgz", + "integrity": "sha512-Gjna0AsXWfFvrAuX+VKcN/aNNWonizBj39yGwUzVDVTlMYJMK2Wp6xdpy72mfArFq5uK+NOuexfzZlzI1z9+AQ==", "dev": true, "dependencies": { - "@babel/helper-get-function-arity": "^7.12.13", - "@babel/template": "^7.12.13", - "@babel/types": "^7.14.2" + "@babel/helper-get-function-arity": "^7.14.5", + "@babel/template": "^7.14.5", + "@babel/types": "^7.14.5" + }, + "engines": { + "node": ">=6.9.0" } }, "node_modules/@babel/helper-get-function-arity": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.12.13.tgz", - "integrity": "sha512-DjEVzQNz5LICkzN0REdpD5prGoidvbdYk1BVgRUOINaWJP2t6avB27X1guXK1kXNrX0WMfsrm1A/ZBthYuIMQg==", + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.14.5.tgz", + "integrity": "sha512-I1Db4Shst5lewOM4V+ZKJzQ0JGGaZ6VY1jYvMghRjqs6DWgxLCIyFt30GlnKkfUeFLpJt2vzbMVEXVSXlIFYUg==", "dev": true, "dependencies": { - "@babel/types": "^7.12.13" + "@babel/types": "^7.14.5" + }, + "engines": { + "node": ">=6.9.0" } }, "node_modules/@babel/helper-hoist-variables": { - "version": "7.13.16", - "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.13.16.tgz", - "integrity": "sha512-1eMtTrXtrwscjcAeO4BVK+vvkxaLJSPFz1w1KLawz6HLNi9bPFGBNwwDyVfiu1Tv/vRRFYfoGaKhmAQPGPn5Wg==", + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.14.5.tgz", + "integrity": "sha512-R1PXiz31Uc0Vxy4OEOm07x0oSjKAdPPCh3tPivn/Eo8cvz6gveAeuyUUPB21Hoiif0uoPQSSdhIPS3352nvdyQ==", "dev": true, "dependencies": { - "@babel/traverse": "^7.13.15", - "@babel/types": "^7.13.16" + "@babel/types": "^7.14.5" + }, + "engines": { + "node": ">=6.9.0" } }, "node_modules/@babel/helper-member-expression-to-functions": { - "version": "7.13.12", - "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.13.12.tgz", - "integrity": "sha512-48ql1CLL59aKbU94Y88Xgb2VFy7a95ykGRbJJaaVv+LX5U8wFpLfiGXJJGUozsmA1oEh/o5Bp60Voq7ACyA/Sw==", + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.14.5.tgz", + "integrity": "sha512-UxUeEYPrqH1Q/k0yRku1JE7dyfyehNwT6SVkMHvYvPDv4+uu627VXBckVj891BO8ruKBkiDoGnZf4qPDD8abDQ==", "dev": true, "dependencies": { - "@babel/types": "^7.13.12" + "@babel/types": "^7.14.5" + }, + "engines": { + "node": ">=6.9.0" } }, "node_modules/@babel/helper-module-imports": { - "version": "7.13.12", - "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.13.12.tgz", - "integrity": "sha512-4cVvR2/1B693IuOvSI20xqqa/+bl7lqAMR59R4iu39R9aOX8/JoYY1sFaNvUMyMBGnHdwvJgUrzNLoUZxXypxA==", + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.14.5.tgz", + "integrity": "sha512-SwrNHu5QWS84XlHwGYPDtCxcA0hrSlL2yhWYLgeOc0w7ccOl2qv4s/nARI0aYZW+bSwAL5CukeXA47B/1NKcnQ==", "dev": true, "dependencies": { - "@babel/types": "^7.13.12" + "@babel/types": "^7.14.5" + }, + "engines": { + "node": ">=6.9.0" } }, "node_modules/@babel/helper-module-transforms": { - "version": "7.14.2", - "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.14.2.tgz", - "integrity": "sha512-OznJUda/soKXv0XhpvzGWDnml4Qnwp16GN+D/kZIdLsWoHj05kyu8Rm5kXmMef+rVJZ0+4pSGLkeixdqNUATDA==", + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.14.5.tgz", + "integrity": "sha512-iXpX4KW8LVODuAieD7MzhNjmM6dzYY5tfRqT+R9HDXWl0jPn/djKmA+G9s/2C2T9zggw5tK1QNqZ70USfedOwA==", "dev": true, "dependencies": { - "@babel/helper-module-imports": "^7.13.12", - "@babel/helper-replace-supers": "^7.13.12", - "@babel/helper-simple-access": "^7.13.12", - "@babel/helper-split-export-declaration": "^7.12.13", - "@babel/helper-validator-identifier": "^7.14.0", - "@babel/template": "^7.12.13", - "@babel/traverse": "^7.14.2", - "@babel/types": "^7.14.2" + "@babel/helper-module-imports": "^7.14.5", + "@babel/helper-replace-supers": "^7.14.5", + "@babel/helper-simple-access": "^7.14.5", + "@babel/helper-split-export-declaration": "^7.14.5", + "@babel/helper-validator-identifier": "^7.14.5", + "@babel/template": "^7.14.5", + "@babel/traverse": "^7.14.5", + "@babel/types": "^7.14.5" + }, + "engines": { + "node": ">=6.9.0" } }, "node_modules/@babel/helper-optimise-call-expression": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.12.13.tgz", - "integrity": "sha512-BdWQhoVJkp6nVjB7nkFWcn43dkprYauqtk++Py2eaf/GRDFm5BxRqEIZCiHlZUGAVmtwKcsVL1dC68WmzeFmiA==", + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.14.5.tgz", + "integrity": "sha512-IqiLIrODUOdnPU9/F8ib1Fx2ohlgDhxnIDU7OEVi+kAbEZcyiF7BLU8W6PfvPi9LzztjS7kcbzbmL7oG8kD6VA==", "dev": true, "dependencies": { - "@babel/types": "^7.12.13" + "@babel/types": "^7.14.5" + }, + "engines": { + "node": ">=6.9.0" } }, "node_modules/@babel/helper-plugin-utils": { - "version": "7.13.0", - "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.13.0.tgz", - "integrity": "sha512-ZPafIPSwzUlAoWT8DKs1W2VyF2gOWthGd5NGFMsBcMMol+ZhK+EQY/e6V96poa6PA/Bh+C9plWN0hXO1uB8AfQ==", - "dev": true + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.14.5.tgz", + "integrity": "sha512-/37qQCE3K0vvZKwoK4XU/irIJQdIfCJuhU5eKnNxpFDsOkgFaUAwbv+RYw6eYgsC0E4hS7r5KqGULUogqui0fQ==", + "dev": true, + "engines": { + "node": ">=6.9.0" + } }, "node_modules/@babel/helper-remap-async-to-generator": { - "version": "7.13.0", - "resolved": "https://registry.npmjs.org/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.13.0.tgz", - "integrity": "sha512-pUQpFBE9JvC9lrQbpX0TmeNIy5s7GnZjna2lhhcHC7DzgBs6fWn722Y5cfwgrtrqc7NAJwMvOa0mKhq6XaE4jg==", + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.14.5.tgz", + "integrity": "sha512-rLQKdQU+HYlxBwQIj8dk4/0ENOUEhA/Z0l4hN8BexpvmSMN9oA9EagjnhnDpNsRdWCfjwa4mn/HyBXO9yhQP6A==", "dev": true, "dependencies": { - "@babel/helper-annotate-as-pure": "^7.12.13", - "@babel/helper-wrap-function": "^7.13.0", - "@babel/types": "^7.13.0" + "@babel/helper-annotate-as-pure": "^7.14.5", + "@babel/helper-wrap-function": "^7.14.5", + "@babel/types": "^7.14.5" + }, + "engines": { + "node": ">=6.9.0" } }, "node_modules/@babel/helper-replace-supers": { - "version": "7.14.4", - "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.14.4.tgz", - "integrity": "sha512-zZ7uHCWlxfEAAOVDYQpEf/uyi1dmeC7fX4nCf2iz9drnCwi1zvwXL3HwWWNXUQEJ1k23yVn3VbddiI9iJEXaTQ==", + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.14.5.tgz", + "integrity": "sha512-3i1Qe9/8x/hCHINujn+iuHy+mMRLoc77b2nI9TB0zjH1hvn9qGlXjWlggdwUcju36PkPCy/lpM7LLUdcTyH4Ow==", "dev": true, "dependencies": { - "@babel/helper-member-expression-to-functions": "^7.13.12", - "@babel/helper-optimise-call-expression": "^7.12.13", - "@babel/traverse": "^7.14.2", - "@babel/types": "^7.14.4" + "@babel/helper-member-expression-to-functions": "^7.14.5", + "@babel/helper-optimise-call-expression": "^7.14.5", + "@babel/traverse": "^7.14.5", + "@babel/types": "^7.14.5" + }, + "engines": { + "node": ">=6.9.0" } }, "node_modules/@babel/helper-simple-access": { - "version": "7.13.12", - "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.13.12.tgz", - "integrity": "sha512-7FEjbrx5SL9cWvXioDbnlYTppcZGuCY6ow3/D5vMggb2Ywgu4dMrpTJX0JdQAIcRRUElOIxF3yEooa9gUb9ZbA==", + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.14.5.tgz", + "integrity": "sha512-nfBN9xvmCt6nrMZjfhkl7i0oTV3yxR4/FztsbOASyTvVcoYd0TRHh7eMLdlEcCqobydC0LAF3LtC92Iwxo0wyw==", "dev": true, "dependencies": { - "@babel/types": "^7.13.12" + "@babel/types": "^7.14.5" + }, + "engines": { + "node": ">=6.9.0" } }, "node_modules/@babel/helper-skip-transparent-expression-wrappers": { - "version": "7.12.1", - "resolved": "https://registry.npmjs.org/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.12.1.tgz", - "integrity": "sha512-Mf5AUuhG1/OCChOJ/HcADmvcHM42WJockombn8ATJG3OnyiSxBK/Mm5x78BQWvmtXZKHgbjdGL2kin/HOLlZGA==", + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.14.5.tgz", + "integrity": "sha512-dmqZB7mrb94PZSAOYtr+ZN5qt5owZIAgqtoTuqiFbHFtxgEcmQlRJVI+bO++fciBunXtB6MK7HrzrfcAzIz2NQ==", "dev": true, "dependencies": { - "@babel/types": "^7.12.1" + "@babel/types": "^7.14.5" + }, + "engines": { + "node": ">=6.9.0" } }, "node_modules/@babel/helper-split-export-declaration": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.12.13.tgz", - "integrity": "sha512-tCJDltF83htUtXx5NLcaDqRmknv652ZWCHyoTETf1CXYJdPC7nohZohjUgieXhv0hTJdRf2FjDueFehdNucpzg==", + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.14.5.tgz", + "integrity": "sha512-hprxVPu6e5Kdp2puZUmvOGjaLv9TCe58E/Fl6hRq4YiVQxIcNvuq6uTM2r1mT/oPskuS9CgR+I94sqAYv0NGKA==", "dev": true, "dependencies": { - "@babel/types": "^7.12.13" + "@babel/types": "^7.14.5" + }, + "engines": { + "node": ">=6.9.0" } }, "node_modules/@babel/helper-validator-identifier": { - "version": "7.14.0", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.14.0.tgz", - "integrity": "sha512-V3ts7zMSu5lfiwWDVWzRDGIN+lnCEUdaXgtVHJgLb1rGaA6jMrtB9EmE7L18foXJIE8Un/A/h6NJfGQp/e1J4A==", - "dev": true + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.14.5.tgz", + "integrity": "sha512-5lsetuxCLilmVGyiLEfoHBRX8UCFD+1m2x3Rj97WrW3V7H3u4RWRXA4evMjImCsin2J2YT0QaVDGf+z8ondbAg==", + "dev": true, + "engines": { + "node": ">=6.9.0" + } }, "node_modules/@babel/helper-validator-option": { - "version": "7.12.17", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.12.17.tgz", - "integrity": "sha512-TopkMDmLzq8ngChwRlyjR6raKD6gMSae4JdYDB8bByKreQgG0RBTuKe9LRxW3wFtUnjxOPRKBDwEH6Mg5KeDfw==", - "dev": true + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.14.5.tgz", + "integrity": "sha512-OX8D5eeX4XwcroVW45NMvoYaIuFI+GQpA2a8Gi+X/U/cDUIRsV37qQfF905F0htTRCREQIB4KqPeaveRJUl3Ow==", + "dev": true, + "engines": { + "node": ">=6.9.0" + } }, "node_modules/@babel/helper-wrap-function": { - "version": "7.13.0", - "resolved": "https://registry.npmjs.org/@babel/helper-wrap-function/-/helper-wrap-function-7.13.0.tgz", - "integrity": "sha512-1UX9F7K3BS42fI6qd2A4BjKzgGjToscyZTdp1DjknHLCIvpgne6918io+aL5LXFcER/8QWiwpoY902pVEqgTXA==", + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/helper-wrap-function/-/helper-wrap-function-7.14.5.tgz", + "integrity": "sha512-YEdjTCq+LNuNS1WfxsDCNpgXkJaIyqco6DAelTUjT4f2KIWC1nBcaCaSdHTBqQVLnTBexBcVcFhLSU1KnYuePQ==", "dev": true, "dependencies": { - "@babel/helper-function-name": "^7.12.13", - "@babel/template": "^7.12.13", - "@babel/traverse": "^7.13.0", - "@babel/types": "^7.13.0" + "@babel/helper-function-name": "^7.14.5", + "@babel/template": "^7.14.5", + "@babel/traverse": "^7.14.5", + "@babel/types": "^7.14.5" + }, + "engines": { + "node": ">=6.9.0" } }, "node_modules/@babel/helpers": { - "version": "7.14.0", - "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.14.0.tgz", - "integrity": "sha512-+ufuXprtQ1D1iZTO/K9+EBRn+qPWMJjZSw/S0KlFrxCw4tkrzv9grgpDHkY9MeQTjTY8i2sp7Jep8DfU6tN9Mg==", + "version": "7.14.6", + "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.14.6.tgz", + "integrity": "sha512-yesp1ENQBiLI+iYHSJdoZKUtRpfTlL1grDIX9NRlAVppljLw/4tTyYupIB7uIYmC3stW/imAv8EqaKaS/ibmeA==", "dev": true, "dependencies": { - "@babel/template": "^7.12.13", - "@babel/traverse": "^7.14.0", - "@babel/types": "^7.14.0" + "@babel/template": "^7.14.5", + "@babel/traverse": "^7.14.5", + "@babel/types": "^7.14.5" + }, + "engines": { + "node": ">=6.9.0" } }, "node_modules/@babel/highlight": { - "version": "7.13.10", - "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.13.10.tgz", - "integrity": "sha512-5aPpe5XQPzflQrFwL1/QoeHkP2MsA4JCntcXHRhEsdsfPVkvPi2w7Qix4iV7t5S/oC9OodGrggd8aco1g3SZFg==", + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.14.5.tgz", + "integrity": "sha512-qf9u2WFWVV0MppaL877j2dBtQIDgmidgjGk5VIMw3OadXvYaXn66U1BFlH2t4+t3i+8PhedppRv+i40ABzd+gg==", "dev": true, "dependencies": { - "@babel/helper-validator-identifier": "^7.12.11", + "@babel/helper-validator-identifier": "^7.14.5", "chalk": "^2.0.0", "js-tokens": "^4.0.0" + }, + "engines": { + "node": ">=6.9.0" } }, "node_modules/@babel/parser": { - "version": "7.14.4", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.14.4.tgz", - "integrity": "sha512-ArliyUsWDUqEGfWcmzpGUzNfLxTdTp6WU4IuP6QFSp9gGfWS6boxFCkJSJ/L4+RG8z/FnIU3WxCk6hPL9SSWeA==", + "version": "7.14.6", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.14.6.tgz", + "integrity": "sha512-oG0ej7efjEXxb4UgE+klVx+3j4MVo+A2vCzm7OUN4CLo6WhQ+vSOD2yJ8m7B+DghObxtLxt3EfgMWpq+AsWehQ==", "dev": true, "bin": { "parser": "bin/babel-parser.js" @@ -416,217 +499,262 @@ } }, "node_modules/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": { - "version": "7.13.12", - "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/-/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.13.12.tgz", - "integrity": "sha512-d0u3zWKcoZf379fOeJdr1a5WPDny4aOFZ6hlfKivgK0LY7ZxNfoaHL2fWwdGtHyVvra38FC+HVYkO+byfSA8AQ==", + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/-/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.14.5.tgz", + "integrity": "sha512-ZoJS2XCKPBfTmL122iP6NM9dOg+d4lc9fFk3zxc8iDjvt8Pk4+TlsHSKhIPf6X+L5ORCdBzqMZDjL/WHj7WknQ==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.13.0", - "@babel/helper-skip-transparent-expression-wrappers": "^7.12.1", - "@babel/plugin-proposal-optional-chaining": "^7.13.12" + "@babel/helper-plugin-utils": "^7.14.5", + "@babel/helper-skip-transparent-expression-wrappers": "^7.14.5", + "@babel/plugin-proposal-optional-chaining": "^7.14.5" + }, + "engines": { + "node": ">=6.9.0" }, "peerDependencies": { "@babel/core": "^7.13.0" } }, "node_modules/@babel/plugin-proposal-async-generator-functions": { - "version": "7.14.2", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.14.2.tgz", - "integrity": "sha512-b1AM4F6fwck4N8ItZ/AtC4FP/cqZqmKRQ4FaTDutwSYyjuhtvsGEMLK4N/ztV/ImP40BjIDyMgBQAeAMsQYVFQ==", + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.14.5.tgz", + "integrity": "sha512-tbD/CG3l43FIXxmu4a7RBe4zH7MLJ+S/lFowPFO7HetS2hyOZ/0nnnznegDuzFzfkyQYTxqdTH/hKmuBngaDAA==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.13.0", - "@babel/helper-remap-async-to-generator": "^7.13.0", + "@babel/helper-plugin-utils": "^7.14.5", + "@babel/helper-remap-async-to-generator": "^7.14.5", "@babel/plugin-syntax-async-generators": "^7.8.4" }, + "engines": { + "node": ">=6.9.0" + }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, "node_modules/@babel/plugin-proposal-class-properties": { - "version": "7.13.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-class-properties/-/plugin-proposal-class-properties-7.13.0.tgz", - "integrity": "sha512-KnTDjFNC1g+45ka0myZNvSBFLhNCLN+GeGYLDEA8Oq7MZ6yMgfLoIRh86GRT0FjtJhZw8JyUskP9uvj5pHM9Zg==", + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-class-properties/-/plugin-proposal-class-properties-7.14.5.tgz", + "integrity": "sha512-q/PLpv5Ko4dVc1LYMpCY7RVAAO4uk55qPwrIuJ5QJ8c6cVuAmhu7I/49JOppXL6gXf7ZHzpRVEUZdYoPLM04Gg==", "dev": true, "dependencies": { - "@babel/helper-create-class-features-plugin": "^7.13.0", - "@babel/helper-plugin-utils": "^7.13.0" + "@babel/helper-create-class-features-plugin": "^7.14.5", + "@babel/helper-plugin-utils": "^7.14.5" + }, + "engines": { + "node": ">=6.9.0" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, "node_modules/@babel/plugin-proposal-class-static-block": { - "version": "7.14.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-class-static-block/-/plugin-proposal-class-static-block-7.14.3.tgz", - "integrity": "sha512-HEjzp5q+lWSjAgJtSluFDrGGosmwTgKwCXdDQZvhKsRlwv3YdkUEqxNrrjesJd+B9E9zvr1PVPVBvhYZ9msjvQ==", + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-class-static-block/-/plugin-proposal-class-static-block-7.14.5.tgz", + "integrity": "sha512-KBAH5ksEnYHCegqseI5N9skTdxgJdmDoAOc0uXa+4QMYKeZD0w5IARh4FMlTNtaHhbB8v+KzMdTgxMMzsIy6Yg==", "dev": true, "dependencies": { - "@babel/helper-create-class-features-plugin": "^7.14.3", - "@babel/helper-plugin-utils": "^7.13.0", - "@babel/plugin-syntax-class-static-block": "^7.12.13" + "@babel/helper-create-class-features-plugin": "^7.14.5", + "@babel/helper-plugin-utils": "^7.14.5", + "@babel/plugin-syntax-class-static-block": "^7.14.5" + }, + "engines": { + "node": ">=6.9.0" }, "peerDependencies": { "@babel/core": "^7.12.0" } }, "node_modules/@babel/plugin-proposal-dynamic-import": { - "version": "7.14.2", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-dynamic-import/-/plugin-proposal-dynamic-import-7.14.2.tgz", - "integrity": "sha512-oxVQZIWFh91vuNEMKltqNsKLFWkOIyJc95k2Gv9lWVyDfPUQGSSlbDEgWuJUU1afGE9WwlzpucMZ3yDRHIItkA==", + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-dynamic-import/-/plugin-proposal-dynamic-import-7.14.5.tgz", + "integrity": "sha512-ExjiNYc3HDN5PXJx+bwC50GIx/KKanX2HiggnIUAYedbARdImiCU4RhhHfdf0Kd7JNXGpsBBBCOm+bBVy3Gb0g==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.13.0", + "@babel/helper-plugin-utils": "^7.14.5", "@babel/plugin-syntax-dynamic-import": "^7.8.3" }, + "engines": { + "node": ">=6.9.0" + }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, "node_modules/@babel/plugin-proposal-export-namespace-from": { - "version": "7.14.2", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-export-namespace-from/-/plugin-proposal-export-namespace-from-7.14.2.tgz", - "integrity": "sha512-sRxW3z3Zp3pFfLAgVEvzTFutTXax837oOatUIvSG9o5gRj9mKwm3br1Se5f4QalTQs9x4AzlA/HrCWbQIHASUQ==", + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-export-namespace-from/-/plugin-proposal-export-namespace-from-7.14.5.tgz", + "integrity": "sha512-g5POA32bXPMmSBu5Dx/iZGLGnKmKPc5AiY7qfZgurzrCYgIztDlHFbznSNCoQuv57YQLnQfaDi7dxCtLDIdXdA==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.13.0", + "@babel/helper-plugin-utils": "^7.14.5", "@babel/plugin-syntax-export-namespace-from": "^7.8.3" }, + "engines": { + "node": ">=6.9.0" + }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, "node_modules/@babel/plugin-proposal-json-strings": { - "version": "7.14.2", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-json-strings/-/plugin-proposal-json-strings-7.14.2.tgz", - "integrity": "sha512-w2DtsfXBBJddJacXMBhElGEYqCZQqN99Se1qeYn8DVLB33owlrlLftIbMzn5nz1OITfDVknXF433tBrLEAOEjA==", + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-json-strings/-/plugin-proposal-json-strings-7.14.5.tgz", + "integrity": "sha512-NSq2fczJYKVRIsUJyNxrVUMhB27zb7N7pOFGQOhBKJrChbGcgEAqyZrmZswkPk18VMurEeJAaICbfm57vUeTbQ==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.13.0", + "@babel/helper-plugin-utils": "^7.14.5", "@babel/plugin-syntax-json-strings": "^7.8.3" }, + "engines": { + "node": ">=6.9.0" + }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, "node_modules/@babel/plugin-proposal-logical-assignment-operators": { - "version": "7.14.2", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-logical-assignment-operators/-/plugin-proposal-logical-assignment-operators-7.14.2.tgz", - "integrity": "sha512-1JAZtUrqYyGsS7IDmFeaem+/LJqujfLZ2weLR9ugB0ufUPjzf8cguyVT1g5im7f7RXxuLq1xUxEzvm68uYRtGg==", + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-logical-assignment-operators/-/plugin-proposal-logical-assignment-operators-7.14.5.tgz", + "integrity": "sha512-YGn2AvZAo9TwyhlLvCCWxD90Xq8xJ4aSgaX3G5D/8DW94L8aaT+dS5cSP+Z06+rCJERGSr9GxMBZ601xoc2taw==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.13.0", + "@babel/helper-plugin-utils": "^7.14.5", "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4" }, + "engines": { + "node": ">=6.9.0" + }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, "node_modules/@babel/plugin-proposal-nullish-coalescing-operator": { - "version": "7.14.2", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-nullish-coalescing-operator/-/plugin-proposal-nullish-coalescing-operator-7.14.2.tgz", - "integrity": "sha512-ebR0zU9OvI2N4qiAC38KIAK75KItpIPTpAtd2r4OZmMFeKbKJpUFLYP2EuDut82+BmYi8sz42B+TfTptJ9iG5Q==", + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-nullish-coalescing-operator/-/plugin-proposal-nullish-coalescing-operator-7.14.5.tgz", + "integrity": "sha512-gun/SOnMqjSb98Nkaq2rTKMwervfdAoz6NphdY0vTfuzMfryj+tDGb2n6UkDKwez+Y8PZDhE3D143v6Gepp4Hg==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.13.0", + "@babel/helper-plugin-utils": "^7.14.5", "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3" }, + "engines": { + "node": ">=6.9.0" + }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, "node_modules/@babel/plugin-proposal-numeric-separator": { - "version": "7.14.2", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-numeric-separator/-/plugin-proposal-numeric-separator-7.14.2.tgz", - "integrity": "sha512-DcTQY9syxu9BpU3Uo94fjCB3LN9/hgPS8oUL7KrSW3bA2ePrKZZPJcc5y0hoJAM9dft3pGfErtEUvxXQcfLxUg==", + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-numeric-separator/-/plugin-proposal-numeric-separator-7.14.5.tgz", + "integrity": "sha512-yiclALKe0vyZRZE0pS6RXgjUOt87GWv6FYa5zqj15PvhOGFO69R5DusPlgK/1K5dVnCtegTiWu9UaBSrLLJJBg==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.13.0", + "@babel/helper-plugin-utils": "^7.14.5", "@babel/plugin-syntax-numeric-separator": "^7.10.4" }, + "engines": { + "node": ">=6.9.0" + }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, "node_modules/@babel/plugin-proposal-object-rest-spread": { - "version": "7.14.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.14.4.tgz", - "integrity": "sha512-AYosOWBlyyXEagrPRfLJ1enStufsr7D1+ddpj8OLi9k7B6+NdZ0t/9V7Fh+wJ4g2Jol8z2JkgczYqtWrZd4vbA==", + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.14.5.tgz", + "integrity": "sha512-VzMyY6PWNPPT3pxc5hi9LloKNr4SSrVCg7Yr6aZpW4Ym07r7KqSU/QXYwjXLVxqwSv0t/XSXkFoKBPUkZ8vb2A==", "dev": true, "dependencies": { - "@babel/compat-data": "^7.14.4", - "@babel/helper-compilation-targets": "^7.14.4", - "@babel/helper-plugin-utils": "^7.13.0", + "@babel/compat-data": "^7.14.5", + "@babel/helper-compilation-targets": "^7.14.5", + "@babel/helper-plugin-utils": "^7.14.5", "@babel/plugin-syntax-object-rest-spread": "^7.8.3", - "@babel/plugin-transform-parameters": "^7.14.2" + "@babel/plugin-transform-parameters": "^7.14.5" + }, + "engines": { + "node": ">=6.9.0" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, "node_modules/@babel/plugin-proposal-optional-catch-binding": { - "version": "7.14.2", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-optional-catch-binding/-/plugin-proposal-optional-catch-binding-7.14.2.tgz", - "integrity": "sha512-XtkJsmJtBaUbOxZsNk0Fvrv8eiqgneug0A6aqLFZ4TSkar2L5dSXWcnUKHgmjJt49pyB/6ZHvkr3dPgl9MOWRQ==", + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-optional-catch-binding/-/plugin-proposal-optional-catch-binding-7.14.5.tgz", + "integrity": "sha512-3Oyiixm0ur7bzO5ybNcZFlmVsygSIQgdOa7cTfOYCMY+wEPAYhZAJxi3mixKFCTCKUhQXuCTtQ1MzrpL3WT8ZQ==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.13.0", + "@babel/helper-plugin-utils": "^7.14.5", "@babel/plugin-syntax-optional-catch-binding": "^7.8.3" }, + "engines": { + "node": ">=6.9.0" + }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, "node_modules/@babel/plugin-proposal-optional-chaining": { - "version": "7.14.2", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-optional-chaining/-/plugin-proposal-optional-chaining-7.14.2.tgz", - "integrity": "sha512-qQByMRPwMZJainfig10BoaDldx/+VDtNcrA7qdNaEOAj6VXud+gfrkA8j4CRAU5HjnWREXqIpSpH30qZX1xivA==", + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-optional-chaining/-/plugin-proposal-optional-chaining-7.14.5.tgz", + "integrity": "sha512-ycz+VOzo2UbWNI1rQXxIuMOzrDdHGrI23fRiz/Si2R4kv2XZQ1BK8ccdHwehMKBlcH/joGW/tzrUmo67gbJHlQ==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.13.0", - "@babel/helper-skip-transparent-expression-wrappers": "^7.12.1", + "@babel/helper-plugin-utils": "^7.14.5", + "@babel/helper-skip-transparent-expression-wrappers": "^7.14.5", "@babel/plugin-syntax-optional-chaining": "^7.8.3" }, + "engines": { + "node": ">=6.9.0" + }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, "node_modules/@babel/plugin-proposal-private-methods": { - "version": "7.13.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-private-methods/-/plugin-proposal-private-methods-7.13.0.tgz", - "integrity": "sha512-MXyyKQd9inhx1kDYPkFRVOBXQ20ES8Pto3T7UZ92xj2mY0EVD8oAVzeyYuVfy/mxAdTSIayOvg+aVzcHV2bn6Q==", + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-private-methods/-/plugin-proposal-private-methods-7.14.5.tgz", + "integrity": "sha512-838DkdUA1u+QTCplatfq4B7+1lnDa/+QMI89x5WZHBcnNv+47N8QEj2k9I2MUU9xIv8XJ4XvPCviM/Dj7Uwt9g==", "dev": true, "dependencies": { - "@babel/helper-create-class-features-plugin": "^7.13.0", - "@babel/helper-plugin-utils": "^7.13.0" + "@babel/helper-create-class-features-plugin": "^7.14.5", + "@babel/helper-plugin-utils": "^7.14.5" + }, + "engines": { + "node": ">=6.9.0" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, "node_modules/@babel/plugin-proposal-private-property-in-object": { - "version": "7.14.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-private-property-in-object/-/plugin-proposal-private-property-in-object-7.14.0.tgz", - "integrity": "sha512-59ANdmEwwRUkLjB7CRtwJxxwtjESw+X2IePItA+RGQh+oy5RmpCh/EvVVvh5XQc3yxsm5gtv0+i9oBZhaDNVTg==", + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-private-property-in-object/-/plugin-proposal-private-property-in-object-7.14.5.tgz", + "integrity": "sha512-62EyfyA3WA0mZiF2e2IV9mc9Ghwxcg8YTu8BS4Wss4Y3PY725OmS9M0qLORbJwLqFtGh+jiE4wAmocK2CTUK2Q==", "dev": true, "dependencies": { - "@babel/helper-annotate-as-pure": "^7.12.13", - "@babel/helper-create-class-features-plugin": "^7.14.0", - "@babel/helper-plugin-utils": "^7.13.0", - "@babel/plugin-syntax-private-property-in-object": "^7.14.0" + "@babel/helper-annotate-as-pure": "^7.14.5", + "@babel/helper-create-class-features-plugin": "^7.14.5", + "@babel/helper-plugin-utils": "^7.14.5", + "@babel/plugin-syntax-private-property-in-object": "^7.14.5" + }, + "engines": { + "node": ">=6.9.0" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, "node_modules/@babel/plugin-proposal-unicode-property-regex": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-unicode-property-regex/-/plugin-proposal-unicode-property-regex-7.12.13.tgz", - "integrity": "sha512-XyJmZidNfofEkqFV5VC/bLabGmO5QzenPO/YOfGuEbgU+2sSwMmio3YLb4WtBgcmmdwZHyVyv8on77IUjQ5Gvg==", + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-unicode-property-regex/-/plugin-proposal-unicode-property-regex-7.14.5.tgz", + "integrity": "sha512-6axIeOU5LnY471KenAB9vI8I5j7NQ2d652hIYwVyRfgaZT5UpiqFKCuVXCDMSrU+3VFafnu2c5m3lrWIlr6A5Q==", "dev": true, "dependencies": { - "@babel/helper-create-regexp-features-plugin": "^7.12.13", - "@babel/helper-plugin-utils": "^7.12.13" + "@babel/helper-create-regexp-features-plugin": "^7.14.5", + "@babel/helper-plugin-utils": "^7.14.5" }, "engines": { "node": ">=4" @@ -672,12 +800,15 @@ } }, "node_modules/@babel/plugin-syntax-class-static-block": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-class-static-block/-/plugin-syntax-class-static-block-7.12.13.tgz", - "integrity": "sha512-ZmKQ0ZXR0nYpHZIIuj9zE7oIqCx2hw9TKi+lIo73NNrMPAZGHfS92/VRV0ZmPj6H2ffBgyFHXvJ5NYsNeEaP2A==", + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-class-static-block/-/plugin-syntax-class-static-block-7.14.5.tgz", + "integrity": "sha512-b+YyPmr6ldyNnM6sqYeMWE+bgJcJpO6yS4QD7ymxgH34GBPNDM/THBh8iunyvKIZztiwLH4CJZ0RxTk9emgpjw==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.12.13" + "@babel/helper-plugin-utils": "^7.14.5" + }, + "engines": { + "node": ">=6.9.0" }, "peerDependencies": { "@babel/core": "^7.0.0-0" @@ -804,466 +935,583 @@ } }, "node_modules/@babel/plugin-syntax-private-property-in-object": { - "version": "7.14.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-private-property-in-object/-/plugin-syntax-private-property-in-object-7.14.0.tgz", - "integrity": "sha512-bda3xF8wGl5/5btF794utNOL0Jw+9jE5C1sLZcoK7c4uonE/y3iQiyG+KbkF3WBV/paX58VCpjhxLPkdj5Fe4w==", + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-private-property-in-object/-/plugin-syntax-private-property-in-object-7.14.5.tgz", + "integrity": "sha512-0wVnp9dxJ72ZUJDV27ZfbSj6iHLoytYZmh3rFcxNnvsJF3ktkzLDZPy/mA17HGsaQT3/DQsWYX1f1QGWkCoVUg==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.13.0" + "@babel/helper-plugin-utils": "^7.14.5" + }, + "engines": { + "node": ">=6.9.0" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, "node_modules/@babel/plugin-syntax-top-level-await": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.12.13.tgz", - "integrity": "sha512-A81F9pDwyS7yM//KwbCSDqy3Uj4NMIurtplxphWxoYtNPov7cJsDkAFNNyVlIZ3jwGycVsurZ+LtOA8gZ376iQ==", + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.14.5.tgz", + "integrity": "sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.12.13" + "@babel/helper-plugin-utils": "^7.14.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-typescript": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.14.5.tgz", + "integrity": "sha512-u6OXzDaIXjEstBRRoBCQ/uKQKlbuaeE5in0RvWdA4pN6AhqxTIwUsnHPU1CFZA/amYObMsuWhYfRl3Ch90HD0Q==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.14.5" + }, + "engines": { + "node": ">=6.9.0" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, "node_modules/@babel/plugin-transform-arrow-functions": { - "version": "7.13.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.13.0.tgz", - "integrity": "sha512-96lgJagobeVmazXFaDrbmCLQxBysKu7U6Do3mLsx27gf5Dk85ezysrs2BZUpXD703U/Su1xTBDxxar2oa4jAGg==", + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.14.5.tgz", + "integrity": "sha512-KOnO0l4+tD5IfOdi4x8C1XmEIRWUjNRV8wc6K2vz/3e8yAOoZZvsRXRRIF/yo/MAOFb4QjtAw9xSxMXbSMRy8A==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.13.0" + "@babel/helper-plugin-utils": "^7.14.5" + }, + "engines": { + "node": ">=6.9.0" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, "node_modules/@babel/plugin-transform-async-to-generator": { - "version": "7.13.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.13.0.tgz", - "integrity": "sha512-3j6E004Dx0K3eGmhxVJxwwI89CTJrce7lg3UrtFuDAVQ/2+SJ/h/aSFOeE6/n0WB1GsOffsJp6MnPQNQ8nmwhg==", + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.14.5.tgz", + "integrity": "sha512-szkbzQ0mNk0rpu76fzDdqSyPu0MuvpXgC+6rz5rpMb5OIRxdmHfQxrktL8CYolL2d8luMCZTR0DpIMIdL27IjA==", "dev": true, "dependencies": { - "@babel/helper-module-imports": "^7.12.13", - "@babel/helper-plugin-utils": "^7.13.0", - "@babel/helper-remap-async-to-generator": "^7.13.0" + "@babel/helper-module-imports": "^7.14.5", + "@babel/helper-plugin-utils": "^7.14.5", + "@babel/helper-remap-async-to-generator": "^7.14.5" + }, + "engines": { + "node": ">=6.9.0" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, "node_modules/@babel/plugin-transform-block-scoped-functions": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.12.13.tgz", - "integrity": "sha512-zNyFqbc3kI/fVpqwfqkg6RvBgFpC4J18aKKMmv7KdQ/1GgREapSJAykLMVNwfRGO3BtHj3YQZl8kxCXPcVMVeg==", + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.14.5.tgz", + "integrity": "sha512-dtqWqdWZ5NqBX3KzsVCWfQI3A53Ft5pWFCT2eCVUftWZgjc5DpDponbIF1+c+7cSGk2wN0YK7HGL/ezfRbpKBQ==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.12.13" + "@babel/helper-plugin-utils": "^7.14.5" + }, + "engines": { + "node": ">=6.9.0" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, "node_modules/@babel/plugin-transform-block-scoping": { - "version": "7.14.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.14.4.tgz", - "integrity": "sha512-5KdpkGxsZlTk+fPleDtGKsA+pon28+ptYmMO8GBSa5fHERCJWAzj50uAfCKBqq42HO+Zot6JF1x37CRprwmN4g==", + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.14.5.tgz", + "integrity": "sha512-LBYm4ZocNgoCqyxMLoOnwpsmQ18HWTQvql64t3GvMUzLQrNoV1BDG0lNftC8QKYERkZgCCT/7J5xWGObGAyHDw==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.13.0" + "@babel/helper-plugin-utils": "^7.14.5" + }, + "engines": { + "node": ">=6.9.0" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, "node_modules/@babel/plugin-transform-classes": { - "version": "7.14.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.14.4.tgz", - "integrity": "sha512-p73t31SIj6y94RDVX57rafVjttNr8MvKEgs5YFatNB/xC68zM3pyosuOEcQmYsYlyQaGY9R7rAULVRcat5FKJQ==", + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.14.5.tgz", + "integrity": "sha512-J4VxKAMykM06K/64z9rwiL6xnBHgB1+FVspqvlgCdwD1KUbQNfszeKVVOMh59w3sztHYIZDgnhOC4WbdEfHFDA==", "dev": true, "dependencies": { - "@babel/helper-annotate-as-pure": "^7.12.13", - "@babel/helper-function-name": "^7.14.2", - "@babel/helper-optimise-call-expression": "^7.12.13", - "@babel/helper-plugin-utils": "^7.13.0", - "@babel/helper-replace-supers": "^7.14.4", - "@babel/helper-split-export-declaration": "^7.12.13", + "@babel/helper-annotate-as-pure": "^7.14.5", + "@babel/helper-function-name": "^7.14.5", + "@babel/helper-optimise-call-expression": "^7.14.5", + "@babel/helper-plugin-utils": "^7.14.5", + "@babel/helper-replace-supers": "^7.14.5", + "@babel/helper-split-export-declaration": "^7.14.5", "globals": "^11.1.0" }, + "engines": { + "node": ">=6.9.0" + }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, "node_modules/@babel/plugin-transform-computed-properties": { - "version": "7.13.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.13.0.tgz", - "integrity": "sha512-RRqTYTeZkZAz8WbieLTvKUEUxZlUTdmL5KGMyZj7FnMfLNKV4+r5549aORG/mgojRmFlQMJDUupwAMiF2Q7OUg==", + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.14.5.tgz", + "integrity": "sha512-pWM+E4283UxaVzLb8UBXv4EIxMovU4zxT1OPnpHJcmnvyY9QbPPTKZfEj31EUvG3/EQRbYAGaYEUZ4yWOBC2xg==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.13.0" + "@babel/helper-plugin-utils": "^7.14.5" + }, + "engines": { + "node": ">=6.9.0" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, "node_modules/@babel/plugin-transform-destructuring": { - "version": "7.14.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.14.4.tgz", - "integrity": "sha512-JyywKreTCGTUsL1OKu1A3ms/R1sTP0WxbpXlALeGzF53eB3bxtNkYdMj9SDgK7g6ImPy76J5oYYKoTtQImlhQA==", + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.14.5.tgz", + "integrity": "sha512-wU9tYisEbRMxqDezKUqC9GleLycCRoUsai9ddlsq54r8QRLaeEhc+d+9DqCG+kV9W2GgQjTZESPTpn5bAFMDww==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.13.0" + "@babel/helper-plugin-utils": "^7.14.5" + }, + "engines": { + "node": ">=6.9.0" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, "node_modules/@babel/plugin-transform-dotall-regex": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.12.13.tgz", - "integrity": "sha512-foDrozE65ZFdUC2OfgeOCrEPTxdB3yjqxpXh8CH+ipd9CHd4s/iq81kcUpyH8ACGNEPdFqbtzfgzbT/ZGlbDeQ==", + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.14.5.tgz", + "integrity": "sha512-loGlnBdj02MDsFaHhAIJzh7euK89lBrGIdM9EAtHFo6xKygCUGuuWe07o1oZVk287amtW1n0808sQM99aZt3gw==", "dev": true, "dependencies": { - "@babel/helper-create-regexp-features-plugin": "^7.12.13", - "@babel/helper-plugin-utils": "^7.12.13" + "@babel/helper-create-regexp-features-plugin": "^7.14.5", + "@babel/helper-plugin-utils": "^7.14.5" + }, + "engines": { + "node": ">=6.9.0" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, "node_modules/@babel/plugin-transform-duplicate-keys": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.12.13.tgz", - "integrity": "sha512-NfADJiiHdhLBW3pulJlJI2NB0t4cci4WTZ8FtdIuNc2+8pslXdPtRRAEWqUY+m9kNOk2eRYbTAOipAxlrOcwwQ==", + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.14.5.tgz", + "integrity": "sha512-iJjbI53huKbPDAsJ8EmVmvCKeeq21bAze4fu9GBQtSLqfvzj2oRuHVx4ZkDwEhg1htQ+5OBZh/Ab0XDf5iBZ7A==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.12.13" + "@babel/helper-plugin-utils": "^7.14.5" + }, + "engines": { + "node": ">=6.9.0" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, "node_modules/@babel/plugin-transform-exponentiation-operator": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.12.13.tgz", - "integrity": "sha512-fbUelkM1apvqez/yYx1/oICVnGo2KM5s63mhGylrmXUxK/IAXSIf87QIxVfZldWf4QsOafY6vV3bX8aMHSvNrA==", + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.14.5.tgz", + "integrity": "sha512-jFazJhMBc9D27o9jDnIE5ZErI0R0m7PbKXVq77FFvqFbzvTMuv8jaAwLZ5PviOLSFttqKIW0/wxNSDbjLk0tYA==", "dev": true, "dependencies": { - "@babel/helper-builder-binary-assignment-operator-visitor": "^7.12.13", - "@babel/helper-plugin-utils": "^7.12.13" + "@babel/helper-builder-binary-assignment-operator-visitor": "^7.14.5", + "@babel/helper-plugin-utils": "^7.14.5" + }, + "engines": { + "node": ">=6.9.0" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, "node_modules/@babel/plugin-transform-for-of": { - "version": "7.13.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.13.0.tgz", - "integrity": "sha512-IHKT00mwUVYE0zzbkDgNRP6SRzvfGCYsOxIRz8KsiaaHCcT9BWIkO+H9QRJseHBLOGBZkHUdHiqj6r0POsdytg==", + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.14.5.tgz", + "integrity": "sha512-CfmqxSUZzBl0rSjpoQSFoR9UEj3HzbGuGNL21/iFTmjb5gFggJp3ph0xR1YBhexmLoKRHzgxuFvty2xdSt6gTA==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.13.0" + "@babel/helper-plugin-utils": "^7.14.5" + }, + "engines": { + "node": ">=6.9.0" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, "node_modules/@babel/plugin-transform-function-name": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.12.13.tgz", - "integrity": "sha512-6K7gZycG0cmIwwF7uMK/ZqeCikCGVBdyP2J5SKNCXO5EOHcqi+z7Jwf8AmyDNcBgxET8DrEtCt/mPKPyAzXyqQ==", + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.14.5.tgz", + "integrity": "sha512-vbO6kv0fIzZ1GpmGQuvbwwm+O4Cbm2NrPzwlup9+/3fdkuzo1YqOZcXw26+YUJB84Ja7j9yURWposEHLYwxUfQ==", "dev": true, "dependencies": { - "@babel/helper-function-name": "^7.12.13", - "@babel/helper-plugin-utils": "^7.12.13" + "@babel/helper-function-name": "^7.14.5", + "@babel/helper-plugin-utils": "^7.14.5" + }, + "engines": { + "node": ">=6.9.0" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, "node_modules/@babel/plugin-transform-literals": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-literals/-/plugin-transform-literals-7.12.13.tgz", - "integrity": "sha512-FW+WPjSR7hiUxMcKqyNjP05tQ2kmBCdpEpZHY1ARm96tGQCCBvXKnpjILtDplUnJ/eHZ0lALLM+d2lMFSpYJrQ==", + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-literals/-/plugin-transform-literals-7.14.5.tgz", + "integrity": "sha512-ql33+epql2F49bi8aHXxvLURHkxJbSmMKl9J5yHqg4PLtdE6Uc48CH1GS6TQvZ86eoB/ApZXwm7jlA+B3kra7A==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.12.13" + "@babel/helper-plugin-utils": "^7.14.5" + }, + "engines": { + "node": ">=6.9.0" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, "node_modules/@babel/plugin-transform-member-expression-literals": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.12.13.tgz", - "integrity": "sha512-kxLkOsg8yir4YeEPHLuO2tXP9R/gTjpuTOjshqSpELUN3ZAg2jfDnKUvzzJxObun38sw3wm4Uu69sX/zA7iRvg==", + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.14.5.tgz", + "integrity": "sha512-WkNXxH1VXVTKarWFqmso83xl+2V3Eo28YY5utIkbsmXoItO8Q3aZxN4BTS2k0hz9dGUloHK26mJMyQEYfkn/+Q==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.12.13" + "@babel/helper-plugin-utils": "^7.14.5" + }, + "engines": { + "node": ">=6.9.0" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, "node_modules/@babel/plugin-transform-modules-amd": { - "version": "7.14.2", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.14.2.tgz", - "integrity": "sha512-hPC6XBswt8P3G2D1tSV2HzdKvkqOpmbyoy+g73JG0qlF/qx2y3KaMmXb1fLrpmWGLZYA0ojCvaHdzFWjlmV+Pw==", + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.14.5.tgz", + "integrity": "sha512-3lpOU8Vxmp3roC4vzFpSdEpGUWSMsHFreTWOMMLzel2gNGfHE5UWIh/LN6ghHs2xurUp4jRFYMUIZhuFbody1g==", "dev": true, "dependencies": { - "@babel/helper-module-transforms": "^7.14.2", - "@babel/helper-plugin-utils": "^7.13.0", + "@babel/helper-module-transforms": "^7.14.5", + "@babel/helper-plugin-utils": "^7.14.5", "babel-plugin-dynamic-import-node": "^2.3.3" }, + "engines": { + "node": ">=6.9.0" + }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, "node_modules/@babel/plugin-transform-modules-commonjs": { - "version": "7.14.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.14.0.tgz", - "integrity": "sha512-EX4QePlsTaRZQmw9BsoPeyh5OCtRGIhwfLquhxGp5e32w+dyL8htOcDwamlitmNFK6xBZYlygjdye9dbd9rUlQ==", + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.14.5.tgz", + "integrity": "sha512-en8GfBtgnydoao2PS+87mKyw62k02k7kJ9ltbKe0fXTHrQmG6QZZflYuGI1VVG7sVpx4E1n7KBpNlPb8m78J+A==", "dev": true, "dependencies": { - "@babel/helper-module-transforms": "^7.14.0", - "@babel/helper-plugin-utils": "^7.13.0", - "@babel/helper-simple-access": "^7.13.12", + "@babel/helper-module-transforms": "^7.14.5", + "@babel/helper-plugin-utils": "^7.14.5", + "@babel/helper-simple-access": "^7.14.5", "babel-plugin-dynamic-import-node": "^2.3.3" }, + "engines": { + "node": ">=6.9.0" + }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, "node_modules/@babel/plugin-transform-modules-systemjs": { - "version": "7.13.8", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.13.8.tgz", - "integrity": "sha512-hwqctPYjhM6cWvVIlOIe27jCIBgHCsdH2xCJVAYQm7V5yTMoilbVMi9f6wKg0rpQAOn6ZG4AOyvCqFF/hUh6+A==", + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.14.5.tgz", + "integrity": "sha512-mNMQdvBEE5DcMQaL5LbzXFMANrQjd2W7FPzg34Y4yEz7dBgdaC+9B84dSO+/1Wba98zoDbInctCDo4JGxz1VYA==", "dev": true, "dependencies": { - "@babel/helper-hoist-variables": "^7.13.0", - "@babel/helper-module-transforms": "^7.13.0", - "@babel/helper-plugin-utils": "^7.13.0", - "@babel/helper-validator-identifier": "^7.12.11", + "@babel/helper-hoist-variables": "^7.14.5", + "@babel/helper-module-transforms": "^7.14.5", + "@babel/helper-plugin-utils": "^7.14.5", + "@babel/helper-validator-identifier": "^7.14.5", "babel-plugin-dynamic-import-node": "^2.3.3" }, - "peerDependencies": { + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { "@babel/core": "^7.0.0-0" } }, "node_modules/@babel/plugin-transform-modules-umd": { - "version": "7.14.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.14.0.tgz", - "integrity": "sha512-nPZdnWtXXeY7I87UZr9VlsWme3Y0cfFFE41Wbxz4bbaexAjNMInXPFUpRRUJ8NoMm0Cw+zxbqjdPmLhcjfazMw==", + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.14.5.tgz", + "integrity": "sha512-RfPGoagSngC06LsGUYyM9QWSXZ8MysEjDJTAea1lqRjNECE3y0qIJF/qbvJxc4oA4s99HumIMdXOrd+TdKaAAA==", "dev": true, "dependencies": { - "@babel/helper-module-transforms": "^7.14.0", - "@babel/helper-plugin-utils": "^7.13.0" + "@babel/helper-module-transforms": "^7.14.5", + "@babel/helper-plugin-utils": "^7.14.5" + }, + "engines": { + "node": ">=6.9.0" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, "node_modules/@babel/plugin-transform-named-capturing-groups-regex": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.12.13.tgz", - "integrity": "sha512-Xsm8P2hr5hAxyYblrfACXpQKdQbx4m2df9/ZZSQ8MAhsadw06+jW7s9zsSw6he+mJZXRlVMyEnVktJo4zjk1WA==", + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.14.5.tgz", + "integrity": "sha512-+Xe5+6MWFo311U8SchgeX5c1+lJM+eZDBZgD+tvXu9VVQPXwwVzeManMMjYX6xw2HczngfOSZjoFYKwdeB/Jvw==", "dev": true, "dependencies": { - "@babel/helper-create-regexp-features-plugin": "^7.12.13" + "@babel/helper-create-regexp-features-plugin": "^7.14.5" + }, + "engines": { + "node": ">=6.9.0" }, "peerDependencies": { "@babel/core": "^7.0.0" } }, "node_modules/@babel/plugin-transform-new-target": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.12.13.tgz", - "integrity": "sha512-/KY2hbLxrG5GTQ9zzZSc3xWiOy379pIETEhbtzwZcw9rvuaVV4Fqy7BYGYOWZnaoXIQYbbJ0ziXLa/sKcGCYEQ==", + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.14.5.tgz", + "integrity": "sha512-Nx054zovz6IIRWEB49RDRuXGI4Gy0GMgqG0cII9L3MxqgXz/+rgII+RU58qpo4g7tNEx1jG7rRVH4ihZoP4esQ==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.12.13" + "@babel/helper-plugin-utils": "^7.14.5" + }, + "engines": { + "node": ">=6.9.0" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, "node_modules/@babel/plugin-transform-object-super": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.12.13.tgz", - "integrity": "sha512-JzYIcj3XtYspZDV8j9ulnoMPZZnF/Cj0LUxPOjR89BdBVx+zYJI9MdMIlUZjbXDX+6YVeS6I3e8op+qQ3BYBoQ==", + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.14.5.tgz", + "integrity": "sha512-MKfOBWzK0pZIrav9z/hkRqIk/2bTv9qvxHzPQc12RcVkMOzpIKnFCNYJip00ssKWYkd8Sf5g0Wr7pqJ+cmtuFg==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.12.13", - "@babel/helper-replace-supers": "^7.12.13" + "@babel/helper-plugin-utils": "^7.14.5", + "@babel/helper-replace-supers": "^7.14.5" + }, + "engines": { + "node": ">=6.9.0" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, "node_modules/@babel/plugin-transform-parameters": { - "version": "7.14.2", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.14.2.tgz", - "integrity": "sha512-NxoVmA3APNCC1JdMXkdYXuQS+EMdqy0vIwyDHeKHiJKRxmp1qGSdb0JLEIoPRhkx6H/8Qi3RJ3uqOCYw8giy9A==", + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.14.5.tgz", + "integrity": "sha512-Tl7LWdr6HUxTmzQtzuU14SqbgrSKmaR77M0OKyq4njZLQTPfOvzblNKyNkGwOfEFCEx7KeYHQHDI0P3F02IVkA==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.13.0" + "@babel/helper-plugin-utils": "^7.14.5" + }, + "engines": { + "node": ">=6.9.0" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, "node_modules/@babel/plugin-transform-property-literals": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.12.13.tgz", - "integrity": "sha512-nqVigwVan+lR+g8Fj8Exl0UQX2kymtjcWfMOYM1vTYEKujeyv2SkMgazf2qNcK7l4SDiKyTA/nHCPqL4e2zo1A==", + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.14.5.tgz", + "integrity": "sha512-r1uilDthkgXW8Z1vJz2dKYLV1tuw2xsbrp3MrZmD99Wh9vsfKoob+JTgri5VUb/JqyKRXotlOtwgu4stIYCmnw==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.12.13" + "@babel/helper-plugin-utils": "^7.14.5" + }, + "engines": { + "node": ">=6.9.0" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, "node_modules/@babel/plugin-transform-regenerator": { - "version": "7.13.15", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.13.15.tgz", - "integrity": "sha512-Bk9cOLSz8DiurcMETZ8E2YtIVJbFCPGW28DJWUakmyVWtQSm6Wsf0p4B4BfEr/eL2Nkhe/CICiUiMOCi1TPhuQ==", + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.14.5.tgz", + "integrity": "sha512-NVIY1W3ITDP5xQl50NgTKlZ0GrotKtLna08/uGY6ErQt6VEQZXla86x/CTddm5gZdcr+5GSsvMeTmWA5Ii6pkg==", "dev": true, "dependencies": { "regenerator-transform": "^0.14.2" }, + "engines": { + "node": ">=6.9.0" + }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, "node_modules/@babel/plugin-transform-reserved-words": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.12.13.tgz", - "integrity": "sha512-xhUPzDXxZN1QfiOy/I5tyye+TRz6lA7z6xaT4CLOjPRMVg1ldRf0LHw0TDBpYL4vG78556WuHdyO9oi5UmzZBg==", + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.14.5.tgz", + "integrity": "sha512-cv4F2rv1nD4qdexOGsRQXJrOcyb5CrgjUH9PKrrtyhSDBNWGxd0UIitjyJiWagS+EbUGjG++22mGH1Pub8D6Vg==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.12.13" + "@babel/helper-plugin-utils": "^7.14.5" + }, + "engines": { + "node": ">=6.9.0" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, "node_modules/@babel/plugin-transform-shorthand-properties": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.12.13.tgz", - "integrity": "sha512-xpL49pqPnLtf0tVluuqvzWIgLEhuPpZzvs2yabUHSKRNlN7ScYU7aMlmavOeyXJZKgZKQRBlh8rHbKiJDraTSw==", + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.14.5.tgz", + "integrity": "sha512-xLucks6T1VmGsTB+GWK5Pl9Jl5+nRXD1uoFdA5TSO6xtiNjtXTjKkmPdFXVLGlK5A2/or/wQMKfmQ2Y0XJfn5g==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.12.13" + "@babel/helper-plugin-utils": "^7.14.5" + }, + "engines": { + "node": ">=6.9.0" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, "node_modules/@babel/plugin-transform-spread": { - "version": "7.13.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-spread/-/plugin-transform-spread-7.13.0.tgz", - "integrity": "sha512-V6vkiXijjzYeFmQTr3dBxPtZYLPcUfY34DebOU27jIl2M/Y8Egm52Hw82CSjjPqd54GTlJs5x+CR7HeNr24ckg==", + "version": "7.14.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-spread/-/plugin-transform-spread-7.14.6.tgz", + "integrity": "sha512-Zr0x0YroFJku7n7+/HH3A2eIrGMjbmAIbJSVv0IZ+t3U2WUQUA64S/oeied2e+MaGSjmt4alzBCsK9E8gh+fag==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.13.0", - "@babel/helper-skip-transparent-expression-wrappers": "^7.12.1" + "@babel/helper-plugin-utils": "^7.14.5", + "@babel/helper-skip-transparent-expression-wrappers": "^7.14.5" + }, + "engines": { + "node": ">=6.9.0" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, "node_modules/@babel/plugin-transform-sticky-regex": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.12.13.tgz", - "integrity": "sha512-Jc3JSaaWT8+fr7GRvQP02fKDsYk4K/lYwWq38r/UGfaxo89ajud321NH28KRQ7xy1Ybc0VUE5Pz8psjNNDUglg==", + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.14.5.tgz", + "integrity": "sha512-Z7F7GyvEMzIIbwnziAZmnSNpdijdr4dWt+FJNBnBLz5mwDFkqIXU9wmBcWWad3QeJF5hMTkRe4dAq2sUZiG+8A==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.12.13" + "@babel/helper-plugin-utils": "^7.14.5" + }, + "engines": { + "node": ">=6.9.0" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, "node_modules/@babel/plugin-transform-template-literals": { - "version": "7.13.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.13.0.tgz", - "integrity": "sha512-d67umW6nlfmr1iehCcBv69eSUSySk1EsIS8aTDX4Xo9qajAh6mYtcl4kJrBkGXuxZPEgVr7RVfAvNW6YQkd4Mw==", + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.14.5.tgz", + "integrity": "sha512-22btZeURqiepOfuy/VkFr+zStqlujWaarpMErvay7goJS6BWwdd6BY9zQyDLDa4x2S3VugxFb162IZ4m/S/+Gg==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.13.0" + "@babel/helper-plugin-utils": "^7.14.5" + }, + "engines": { + "node": ">=6.9.0" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, "node_modules/@babel/plugin-transform-typeof-symbol": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.12.13.tgz", - "integrity": "sha512-eKv/LmUJpMnu4npgfvs3LiHhJua5fo/CysENxa45YCQXZwKnGCQKAg87bvoqSW1fFT+HA32l03Qxsm8ouTY3ZQ==", + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.14.5.tgz", + "integrity": "sha512-lXzLD30ffCWseTbMQzrvDWqljvZlHkXU+CnseMhkMNqU1sASnCsz3tSzAaH3vCUXb9PHeUb90ZT1BdFTm1xxJw==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.12.13" + "@babel/helper-plugin-utils": "^7.14.5" + }, + "engines": { + "node": ">=6.9.0" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, "node_modules/@babel/plugin-transform-unicode-escapes": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.12.13.tgz", - "integrity": "sha512-0bHEkdwJ/sN/ikBHfSmOXPypN/beiGqjo+o4/5K+vxEFNPRPdImhviPakMKG4x96l85emoa0Z6cDflsdBusZbw==", + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.14.5.tgz", + "integrity": "sha512-crTo4jATEOjxj7bt9lbYXcBAM3LZaUrbP2uUdxb6WIorLmjNKSpHfIybgY4B8SRpbf8tEVIWH3Vtm7ayCrKocA==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.12.13" + "@babel/helper-plugin-utils": "^7.14.5" + }, + "engines": { + "node": ">=6.9.0" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, "node_modules/@babel/plugin-transform-unicode-regex": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.12.13.tgz", - "integrity": "sha512-mDRzSNY7/zopwisPZ5kM9XKCfhchqIYwAKRERtEnhYscZB79VRekuRSoYbN0+KVe3y8+q1h6A4svXtP7N+UoCA==", + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.14.5.tgz", + "integrity": "sha512-UygduJpC5kHeCiRw/xDVzC+wj8VaYSoKl5JNVmbP7MadpNinAm3SvZCxZ42H37KZBKztz46YC73i9yV34d0Tzw==", "dev": true, "dependencies": { - "@babel/helper-create-regexp-features-plugin": "^7.12.13", - "@babel/helper-plugin-utils": "^7.12.13" + "@babel/helper-create-regexp-features-plugin": "^7.14.5", + "@babel/helper-plugin-utils": "^7.14.5" + }, + "engines": { + "node": ">=6.9.0" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, "node_modules/@babel/preset-env": { - "version": "7.14.4", - "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.14.4.tgz", - "integrity": "sha512-GwMMsuAnDtULyOtuxHhzzuSRxFeP0aR/LNzrHRzP8y6AgDNgqnrfCCBm/1cRdTU75tRs28Eh76poHLcg9VF0LA==", - "dev": true, - "dependencies": { - "@babel/compat-data": "^7.14.4", - "@babel/helper-compilation-targets": "^7.14.4", - "@babel/helper-plugin-utils": "^7.13.0", - "@babel/helper-validator-option": "^7.12.17", - "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": "^7.13.12", - "@babel/plugin-proposal-async-generator-functions": "^7.14.2", - "@babel/plugin-proposal-class-properties": "^7.13.0", - "@babel/plugin-proposal-class-static-block": "^7.14.3", - "@babel/plugin-proposal-dynamic-import": "^7.14.2", - "@babel/plugin-proposal-export-namespace-from": "^7.14.2", - "@babel/plugin-proposal-json-strings": "^7.14.2", - "@babel/plugin-proposal-logical-assignment-operators": "^7.14.2", - "@babel/plugin-proposal-nullish-coalescing-operator": "^7.14.2", - "@babel/plugin-proposal-numeric-separator": "^7.14.2", - "@babel/plugin-proposal-object-rest-spread": "^7.14.4", - "@babel/plugin-proposal-optional-catch-binding": "^7.14.2", - "@babel/plugin-proposal-optional-chaining": "^7.14.2", - "@babel/plugin-proposal-private-methods": "^7.13.0", - "@babel/plugin-proposal-private-property-in-object": "^7.14.0", - "@babel/plugin-proposal-unicode-property-regex": "^7.12.13", + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.14.5.tgz", + "integrity": "sha512-ci6TsS0bjrdPpWGnQ+m4f+JSSzDKlckqKIJJt9UZ/+g7Zz9k0N8lYU8IeLg/01o2h8LyNZDMLGgRLDTxpudLsA==", + "dev": true, + "dependencies": { + "@babel/compat-data": "^7.14.5", + "@babel/helper-compilation-targets": "^7.14.5", + "@babel/helper-plugin-utils": "^7.14.5", + "@babel/helper-validator-option": "^7.14.5", + "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": "^7.14.5", + "@babel/plugin-proposal-async-generator-functions": "^7.14.5", + "@babel/plugin-proposal-class-properties": "^7.14.5", + "@babel/plugin-proposal-class-static-block": "^7.14.5", + "@babel/plugin-proposal-dynamic-import": "^7.14.5", + "@babel/plugin-proposal-export-namespace-from": "^7.14.5", + "@babel/plugin-proposal-json-strings": "^7.14.5", + "@babel/plugin-proposal-logical-assignment-operators": "^7.14.5", + "@babel/plugin-proposal-nullish-coalescing-operator": "^7.14.5", + "@babel/plugin-proposal-numeric-separator": "^7.14.5", + "@babel/plugin-proposal-object-rest-spread": "^7.14.5", + "@babel/plugin-proposal-optional-catch-binding": "^7.14.5", + "@babel/plugin-proposal-optional-chaining": "^7.14.5", + "@babel/plugin-proposal-private-methods": "^7.14.5", + "@babel/plugin-proposal-private-property-in-object": "^7.14.5", + "@babel/plugin-proposal-unicode-property-regex": "^7.14.5", "@babel/plugin-syntax-async-generators": "^7.8.4", "@babel/plugin-syntax-class-properties": "^7.12.13", - "@babel/plugin-syntax-class-static-block": "^7.12.13", + "@babel/plugin-syntax-class-static-block": "^7.14.5", "@babel/plugin-syntax-dynamic-import": "^7.8.3", "@babel/plugin-syntax-export-namespace-from": "^7.8.3", "@babel/plugin-syntax-json-strings": "^7.8.3", @@ -1273,48 +1521,51 @@ "@babel/plugin-syntax-object-rest-spread": "^7.8.3", "@babel/plugin-syntax-optional-catch-binding": "^7.8.3", "@babel/plugin-syntax-optional-chaining": "^7.8.3", - "@babel/plugin-syntax-private-property-in-object": "^7.14.0", - "@babel/plugin-syntax-top-level-await": "^7.12.13", - "@babel/plugin-transform-arrow-functions": "^7.13.0", - "@babel/plugin-transform-async-to-generator": "^7.13.0", - "@babel/plugin-transform-block-scoped-functions": "^7.12.13", - "@babel/plugin-transform-block-scoping": "^7.14.4", - "@babel/plugin-transform-classes": "^7.14.4", - "@babel/plugin-transform-computed-properties": "^7.13.0", - "@babel/plugin-transform-destructuring": "^7.14.4", - "@babel/plugin-transform-dotall-regex": "^7.12.13", - "@babel/plugin-transform-duplicate-keys": "^7.12.13", - "@babel/plugin-transform-exponentiation-operator": "^7.12.13", - "@babel/plugin-transform-for-of": "^7.13.0", - "@babel/plugin-transform-function-name": "^7.12.13", - "@babel/plugin-transform-literals": "^7.12.13", - "@babel/plugin-transform-member-expression-literals": "^7.12.13", - "@babel/plugin-transform-modules-amd": "^7.14.2", - "@babel/plugin-transform-modules-commonjs": "^7.14.0", - "@babel/plugin-transform-modules-systemjs": "^7.13.8", - "@babel/plugin-transform-modules-umd": "^7.14.0", - "@babel/plugin-transform-named-capturing-groups-regex": "^7.12.13", - "@babel/plugin-transform-new-target": "^7.12.13", - "@babel/plugin-transform-object-super": "^7.12.13", - "@babel/plugin-transform-parameters": "^7.14.2", - "@babel/plugin-transform-property-literals": "^7.12.13", - "@babel/plugin-transform-regenerator": "^7.13.15", - "@babel/plugin-transform-reserved-words": "^7.12.13", - "@babel/plugin-transform-shorthand-properties": "^7.12.13", - "@babel/plugin-transform-spread": "^7.13.0", - "@babel/plugin-transform-sticky-regex": "^7.12.13", - "@babel/plugin-transform-template-literals": "^7.13.0", - "@babel/plugin-transform-typeof-symbol": "^7.12.13", - "@babel/plugin-transform-unicode-escapes": "^7.12.13", - "@babel/plugin-transform-unicode-regex": "^7.12.13", + "@babel/plugin-syntax-private-property-in-object": "^7.14.5", + "@babel/plugin-syntax-top-level-await": "^7.14.5", + "@babel/plugin-transform-arrow-functions": "^7.14.5", + "@babel/plugin-transform-async-to-generator": "^7.14.5", + "@babel/plugin-transform-block-scoped-functions": "^7.14.5", + "@babel/plugin-transform-block-scoping": "^7.14.5", + "@babel/plugin-transform-classes": "^7.14.5", + "@babel/plugin-transform-computed-properties": "^7.14.5", + "@babel/plugin-transform-destructuring": "^7.14.5", + "@babel/plugin-transform-dotall-regex": "^7.14.5", + "@babel/plugin-transform-duplicate-keys": "^7.14.5", + "@babel/plugin-transform-exponentiation-operator": "^7.14.5", + "@babel/plugin-transform-for-of": "^7.14.5", + "@babel/plugin-transform-function-name": "^7.14.5", + "@babel/plugin-transform-literals": "^7.14.5", + "@babel/plugin-transform-member-expression-literals": "^7.14.5", + "@babel/plugin-transform-modules-amd": "^7.14.5", + "@babel/plugin-transform-modules-commonjs": "^7.14.5", + "@babel/plugin-transform-modules-systemjs": "^7.14.5", + "@babel/plugin-transform-modules-umd": "^7.14.5", + "@babel/plugin-transform-named-capturing-groups-regex": "^7.14.5", + "@babel/plugin-transform-new-target": "^7.14.5", + "@babel/plugin-transform-object-super": "^7.14.5", + "@babel/plugin-transform-parameters": "^7.14.5", + "@babel/plugin-transform-property-literals": "^7.14.5", + "@babel/plugin-transform-regenerator": "^7.14.5", + "@babel/plugin-transform-reserved-words": "^7.14.5", + "@babel/plugin-transform-shorthand-properties": "^7.14.5", + "@babel/plugin-transform-spread": "^7.14.5", + "@babel/plugin-transform-sticky-regex": "^7.14.5", + "@babel/plugin-transform-template-literals": "^7.14.5", + "@babel/plugin-transform-typeof-symbol": "^7.14.5", + "@babel/plugin-transform-unicode-escapes": "^7.14.5", + "@babel/plugin-transform-unicode-regex": "^7.14.5", "@babel/preset-modules": "^0.1.4", - "@babel/types": "^7.14.4", - "babel-plugin-polyfill-corejs2": "^0.2.0", - "babel-plugin-polyfill-corejs3": "^0.2.0", - "babel-plugin-polyfill-regenerator": "^0.2.0", - "core-js-compat": "^3.9.0", + "@babel/types": "^7.14.5", + "babel-plugin-polyfill-corejs2": "^0.2.2", + "babel-plugin-polyfill-corejs3": "^0.2.2", + "babel-plugin-polyfill-regenerator": "^0.2.2", + "core-js-compat": "^3.14.0", "semver": "^6.3.0" }, + "engines": { + "node": ">=6.9.0" + }, "peerDependencies": { "@babel/core": "^7.0.0-0" } @@ -1336,49 +1587,62 @@ } }, "node_modules/@babel/runtime": { - "version": "7.13.17", - "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.13.17.tgz", - "integrity": "sha512-NCdgJEelPTSh+FEFylhnP1ylq848l1z9t9N0j1Lfbcw0+KXGjsTvUmkxy+voLLXB5SOKMbLLx4jxYliGrYQseA==", + "version": "7.14.6", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.14.6.tgz", + "integrity": "sha512-/PCB2uJ7oM44tz8YhC4Z/6PeOKXp4K588f+5M3clr1M4zbqztlo0XEfJ2LEzj/FgwfgGcIdl8n7YYjTCI0BYwg==", "dev": true, "dependencies": { "regenerator-runtime": "^0.13.4" + }, + "engines": { + "node": ">=6.9.0" } }, "node_modules/@babel/template": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.12.13.tgz", - "integrity": "sha512-/7xxiGA57xMo/P2GVvdEumr8ONhFOhfgq2ihK3h1e6THqzTAkHbkXgB0xI9yeTfIUoH3+oAeHhqm/I43OTbbjA==", + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.14.5.tgz", + "integrity": "sha512-6Z3Po85sfxRGachLULUhOmvAaOo7xCvqGQtxINai2mEGPFm6pQ4z5QInFnUrRpfoSV60BnjyF5F3c+15fxFV1g==", "dev": true, "dependencies": { - "@babel/code-frame": "^7.12.13", - "@babel/parser": "^7.12.13", - "@babel/types": "^7.12.13" + "@babel/code-frame": "^7.14.5", + "@babel/parser": "^7.14.5", + "@babel/types": "^7.14.5" + }, + "engines": { + "node": ">=6.9.0" } }, "node_modules/@babel/traverse": { - "version": "7.14.2", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.14.2.tgz", - "integrity": "sha512-TsdRgvBFHMyHOOzcP9S6QU0QQtjxlRpEYOy3mcCO5RgmC305ki42aSAmfZEMSSYBla2oZ9BMqYlncBaKmD/7iA==", - "dev": true, - "dependencies": { - "@babel/code-frame": "^7.12.13", - "@babel/generator": "^7.14.2", - "@babel/helper-function-name": "^7.14.2", - "@babel/helper-split-export-declaration": "^7.12.13", - "@babel/parser": "^7.14.2", - "@babel/types": "^7.14.2", + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.14.5.tgz", + "integrity": "sha512-G3BiS15vevepdmFqmUc9X+64y0viZYygubAMO8SvBmKARuF6CPSZtH4Ng9vi/lrWlZFGe3FWdXNy835akH8Glg==", + "dev": true, + "dependencies": { + "@babel/code-frame": "^7.14.5", + "@babel/generator": "^7.14.5", + "@babel/helper-function-name": "^7.14.5", + "@babel/helper-hoist-variables": "^7.14.5", + "@babel/helper-split-export-declaration": "^7.14.5", + "@babel/parser": "^7.14.5", + "@babel/types": "^7.14.5", "debug": "^4.1.0", "globals": "^11.1.0" + }, + "engines": { + "node": ">=6.9.0" } }, "node_modules/@babel/types": { - "version": "7.14.4", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.14.4.tgz", - "integrity": "sha512-lCj4aIs0xUefJFQnwwQv2Bxg7Omd6bgquZ6LGC+gGMh6/s5qDVfjuCMlDmYQ15SLsWHd9n+X3E75lKIhl5Lkiw==", + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.14.5.tgz", + "integrity": "sha512-M/NzBpEL95I5Hh4dwhin5JlE7EzO5PHMAuzjxss3tiOBD46KfQvVedN/3jEPZvdRvtsK2222XfdHogNIttFgcg==", "dev": true, "dependencies": { - "@babel/helper-validator-identifier": "^7.14.0", + "@babel/helper-validator-identifier": "^7.14.5", "to-fast-properties": "^2.0.0" + }, + "engines": { + "node": ">=6.9.0" } }, "node_modules/@bcoe/v8-coverage": { @@ -1387,22 +1651,6 @@ "integrity": "sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw==", "dev": true }, - "node_modules/@cnakazawa/watch": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/@cnakazawa/watch/-/watch-1.0.4.tgz", - "integrity": "sha512-v9kIhKwjeZThiWrLmj0y17CWoyddASLj9O2yvbZkbvw/N3rWOYy9zkV66ursAoVr0mV15bL8g0c4QZUE6cdDoQ==", - "dev": true, - "dependencies": { - "exec-sh": "^0.3.2", - "minimist": "^1.2.0" - }, - "bin": { - "watch": "cli.js" - }, - "engines": { - "node": ">=0.1.95" - } - }, "node_modules/@commitlint/cli": { "version": "12.1.4", "resolved": "https://registry.npmjs.org/@commitlint/cli/-/cli-12.1.4.tgz", @@ -1979,20 +2227,20 @@ } }, "node_modules/@jest/console": { - "version": "26.6.2", - "resolved": "https://registry.npmjs.org/@jest/console/-/console-26.6.2.tgz", - "integrity": "sha512-IY1R2i2aLsLr7Id3S6p2BA82GNWryt4oSvEXLAKc+L2zdi89dSkE8xC1C+0kpATG4JhBJREnQOH7/zmccM2B0g==", + "version": "27.0.2", + "resolved": "https://registry.npmjs.org/@jest/console/-/console-27.0.2.tgz", + "integrity": "sha512-/zYigssuHLImGeMAACkjI4VLAiiJznHgAl3xnFT19iWyct2LhrH3KXOjHRmxBGTkiPLZKKAJAgaPpiU9EZ9K+w==", "dev": true, "dependencies": { - "@jest/types": "^26.6.2", + "@jest/types": "^27.0.2", "@types/node": "*", "chalk": "^4.0.0", - "jest-message-util": "^26.6.2", - "jest-util": "^26.6.2", + "jest-message-util": "^27.0.2", + "jest-util": "^27.0.2", "slash": "^3.0.0" }, "engines": { - "node": ">= 10.14.2" + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" } }, "node_modules/@jest/console/node_modules/ansi-styles": { @@ -2075,42 +2323,51 @@ } }, "node_modules/@jest/core": { - "version": "26.6.3", - "resolved": "https://registry.npmjs.org/@jest/core/-/core-26.6.3.tgz", - "integrity": "sha512-xvV1kKbhfUqFVuZ8Cyo+JPpipAHHAV3kcDBftiduK8EICXmTFddryy3P7NfZt8Pv37rA9nEJBKCCkglCPt/Xjw==", + "version": "27.0.4", + "resolved": "https://registry.npmjs.org/@jest/core/-/core-27.0.4.tgz", + "integrity": "sha512-+dsmV8VUs1h/Szb+rEWk8xBM1fp1I///uFy9nk3wXGvRsF2lBp8EVPmtWc+QFRb3MY2b7u2HbkGF1fzoDzQTLA==", "dev": true, "dependencies": { - "@jest/console": "^26.6.2", - "@jest/reporters": "^26.6.2", - "@jest/test-result": "^26.6.2", - "@jest/transform": "^26.6.2", - "@jest/types": "^26.6.2", + "@jest/console": "^27.0.2", + "@jest/reporters": "^27.0.4", + "@jest/test-result": "^27.0.2", + "@jest/transform": "^27.0.2", + "@jest/types": "^27.0.2", "@types/node": "*", "ansi-escapes": "^4.2.1", "chalk": "^4.0.0", + "emittery": "^0.8.1", "exit": "^0.1.2", "graceful-fs": "^4.2.4", - "jest-changed-files": "^26.6.2", - "jest-config": "^26.6.3", - "jest-haste-map": "^26.6.2", - "jest-message-util": "^26.6.2", - "jest-regex-util": "^26.0.0", - "jest-resolve": "^26.6.2", - "jest-resolve-dependencies": "^26.6.3", - "jest-runner": "^26.6.3", - "jest-runtime": "^26.6.3", - "jest-snapshot": "^26.6.2", - "jest-util": "^26.6.2", - "jest-validate": "^26.6.2", - "jest-watcher": "^26.6.2", - "micromatch": "^4.0.2", + "jest-changed-files": "^27.0.2", + "jest-config": "^27.0.4", + "jest-haste-map": "^27.0.2", + "jest-message-util": "^27.0.2", + "jest-regex-util": "^27.0.1", + "jest-resolve": "^27.0.4", + "jest-resolve-dependencies": "^27.0.4", + "jest-runner": "^27.0.4", + "jest-runtime": "^27.0.4", + "jest-snapshot": "^27.0.4", + "jest-util": "^27.0.2", + "jest-validate": "^27.0.2", + "jest-watcher": "^27.0.2", + "micromatch": "^4.0.4", "p-each-series": "^2.1.0", "rimraf": "^3.0.0", "slash": "^3.0.0", "strip-ansi": "^6.0.0" }, "engines": { - "node": ">= 10.14.2" + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + }, + "peerDependencies": { + "node-notifier": "^8.0.1 || ^9.0.0" + }, + "peerDependenciesMeta": { + "node-notifier": { + "optional": true + } } }, "node_modules/@jest/core/node_modules/ansi-styles": { @@ -2251,62 +2508,62 @@ } }, "node_modules/@jest/environment": { - "version": "26.6.2", - "resolved": "https://registry.npmjs.org/@jest/environment/-/environment-26.6.2.tgz", - "integrity": "sha512-nFy+fHl28zUrRsCeMB61VDThV1pVTtlEokBRgqPrcT1JNq4yRNIyTHfyht6PqtUvY9IsuLGTrbG8kPXjSZIZwA==", + "version": "27.0.3", + "resolved": "https://registry.npmjs.org/@jest/environment/-/environment-27.0.3.tgz", + "integrity": "sha512-pN9m7fbKsop5vc3FOfH8NF7CKKdRbEZzcxfIo1n2TT6ucKWLFq0P6gCJH0GpnQp036++yY9utHOxpeT1WnkWTA==", "dev": true, "dependencies": { - "@jest/fake-timers": "^26.6.2", - "@jest/types": "^26.6.2", + "@jest/fake-timers": "^27.0.3", + "@jest/types": "^27.0.2", "@types/node": "*", - "jest-mock": "^26.6.2" + "jest-mock": "^27.0.3" }, "engines": { - "node": ">= 10.14.2" + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" } }, "node_modules/@jest/fake-timers": { - "version": "26.6.2", - "resolved": "https://registry.npmjs.org/@jest/fake-timers/-/fake-timers-26.6.2.tgz", - "integrity": "sha512-14Uleatt7jdzefLPYM3KLcnUl1ZNikaKq34enpb5XG9i81JpppDb5muZvonvKyrl7ftEHkKS5L5/eB/kxJ+bvA==", + "version": "27.0.3", + "resolved": "https://registry.npmjs.org/@jest/fake-timers/-/fake-timers-27.0.3.tgz", + "integrity": "sha512-fQ+UCKRIYKvTCEOyKPnaPnomLATIhMnHC/xPZ7yT1Uldp7yMgMxoYIFidDbpSTgB79+/U+FgfoD30c6wg3IUjA==", "dev": true, "dependencies": { - "@jest/types": "^26.6.2", - "@sinonjs/fake-timers": "^6.0.1", + "@jest/types": "^27.0.2", + "@sinonjs/fake-timers": "^7.0.2", "@types/node": "*", - "jest-message-util": "^26.6.2", - "jest-mock": "^26.6.2", - "jest-util": "^26.6.2" + "jest-message-util": "^27.0.2", + "jest-mock": "^27.0.3", + "jest-util": "^27.0.2" }, "engines": { - "node": ">= 10.14.2" + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" } }, "node_modules/@jest/globals": { - "version": "26.6.2", - "resolved": "https://registry.npmjs.org/@jest/globals/-/globals-26.6.2.tgz", - "integrity": "sha512-85Ltnm7HlB/KesBUuALwQ68YTU72w9H2xW9FjZ1eL1U3lhtefjjl5c2MiUbpXt/i6LaPRvoOFJ22yCBSfQ0JIA==", + "version": "27.0.3", + "resolved": "https://registry.npmjs.org/@jest/globals/-/globals-27.0.3.tgz", + "integrity": "sha512-OzsIuf7uf+QalqAGbjClyezzEcLQkdZ+7PejUrZgDs+okdAK8GwRCGcYCirHvhMBBQh60Jr3NlIGbn/KBPQLEQ==", "dev": true, "dependencies": { - "@jest/environment": "^26.6.2", - "@jest/types": "^26.6.2", - "expect": "^26.6.2" + "@jest/environment": "^27.0.3", + "@jest/types": "^27.0.2", + "expect": "^27.0.2" }, "engines": { - "node": ">= 10.14.2" + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" } }, "node_modules/@jest/reporters": { - "version": "26.6.2", - "resolved": "https://registry.npmjs.org/@jest/reporters/-/reporters-26.6.2.tgz", - "integrity": "sha512-h2bW53APG4HvkOnVMo8q3QXa6pcaNt1HkwVsOPMBV6LD/q9oSpxNSYZQYkAnjdMjrJ86UuYeLo+aEZClV6opnw==", + "version": "27.0.4", + "resolved": "https://registry.npmjs.org/@jest/reporters/-/reporters-27.0.4.tgz", + "integrity": "sha512-Xa90Nm3JnV0xCe4M6A10M9WuN9krb+WFKxV1A98Y4ePCw40n++r7uxFUNU7DT1i9Behj7fjrAIju9oU0t1QtCg==", "dev": true, "dependencies": { "@bcoe/v8-coverage": "^0.2.3", - "@jest/console": "^26.6.2", - "@jest/test-result": "^26.6.2", - "@jest/transform": "^26.6.2", - "@jest/types": "^26.6.2", + "@jest/console": "^27.0.2", + "@jest/test-result": "^27.0.2", + "@jest/transform": "^27.0.2", + "@jest/types": "^27.0.2", "chalk": "^4.0.0", "collect-v8-coverage": "^1.0.0", "exit": "^0.1.2", @@ -2317,10 +2574,10 @@ "istanbul-lib-report": "^3.0.0", "istanbul-lib-source-maps": "^4.0.0", "istanbul-reports": "^3.0.2", - "jest-haste-map": "^26.6.2", - "jest-resolve": "^26.6.2", - "jest-util": "^26.6.2", - "jest-worker": "^26.6.2", + "jest-haste-map": "^27.0.2", + "jest-resolve": "^27.0.4", + "jest-util": "^27.0.2", + "jest-worker": "^27.0.2", "slash": "^3.0.0", "source-map": "^0.6.0", "string-length": "^4.0.1", @@ -2328,10 +2585,15 @@ "v8-to-istanbul": "^7.0.0" }, "engines": { - "node": ">= 10.14.2" + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" }, - "optionalDependencies": { - "node-notifier": "^8.0.0" + "peerDependencies": { + "node-notifier": "^8.0.1 || ^9.0.0" + }, + "peerDependenciesMeta": { + "node-notifier": { + "optional": true + } } }, "node_modules/@jest/reporters/node_modules/ansi-styles": { @@ -2392,6 +2654,35 @@ "node": ">=8" } }, + "node_modules/@jest/reporters/node_modules/jest-worker": { + "version": "27.0.2", + "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-27.0.2.tgz", + "integrity": "sha512-EoBdilOTTyOgmHXtw/cPc+ZrCA0KJMrkXzkrPGNwLmnvvlN1nj7MPrxpT7m+otSv2e1TLaVffzDnE/LB14zJMg==", + "dev": true, + "dependencies": { + "@types/node": "*", + "merge-stream": "^2.0.0", + "supports-color": "^8.0.0" + }, + "engines": { + "node": ">= 10.13.0" + } + }, + "node_modules/@jest/reporters/node_modules/jest-worker/node_modules/supports-color": { + "version": "8.1.1", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", + "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/supports-color?sponsor=1" + } + }, "node_modules/@jest/reporters/node_modules/slash": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", @@ -2423,9 +2714,9 @@ } }, "node_modules/@jest/source-map": { - "version": "26.6.2", - "resolved": "https://registry.npmjs.org/@jest/source-map/-/source-map-26.6.2.tgz", - "integrity": "sha512-YwYcCwAnNmOVsZ8mr3GfnzdXDAl4LaenZP5z+G0c8bzC9/dugL8zRmxZzdoTl4IaS3CryS1uWnROLPFmb6lVvA==", + "version": "27.0.1", + "resolved": "https://registry.npmjs.org/@jest/source-map/-/source-map-27.0.1.tgz", + "integrity": "sha512-yMgkF0f+6WJtDMdDYNavmqvbHtiSpwRN2U/W+6uztgfqgkq/PXdKPqjBTUF1RD/feth4rH5N3NW0T5+wIuln1A==", "dev": true, "dependencies": { "callsites": "^3.0.0", @@ -2433,7 +2724,7 @@ "source-map": "^0.6.0" }, "engines": { - "node": ">= 10.14.2" + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" } }, "node_modules/@jest/source-map/node_modules/source-map": { @@ -2446,60 +2737,59 @@ } }, "node_modules/@jest/test-result": { - "version": "26.6.2", - "resolved": "https://registry.npmjs.org/@jest/test-result/-/test-result-26.6.2.tgz", - "integrity": "sha512-5O7H5c/7YlojphYNrK02LlDIV2GNPYisKwHm2QTKjNZeEzezCbwYs9swJySv2UfPMyZ0VdsmMv7jIlD/IKYQpQ==", + "version": "27.0.2", + "resolved": "https://registry.npmjs.org/@jest/test-result/-/test-result-27.0.2.tgz", + "integrity": "sha512-gcdWwL3yP5VaIadzwQtbZyZMgpmes8ryBAJp70tuxghiA8qL4imJyZex+i+USQH2H4jeLVVszhwntgdQ97fccA==", "dev": true, "dependencies": { - "@jest/console": "^26.6.2", - "@jest/types": "^26.6.2", + "@jest/console": "^27.0.2", + "@jest/types": "^27.0.2", "@types/istanbul-lib-coverage": "^2.0.0", "collect-v8-coverage": "^1.0.0" }, "engines": { - "node": ">= 10.14.2" + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" } }, "node_modules/@jest/test-sequencer": { - "version": "26.6.3", - "resolved": "https://registry.npmjs.org/@jest/test-sequencer/-/test-sequencer-26.6.3.tgz", - "integrity": "sha512-YHlVIjP5nfEyjlrSr8t/YdNfU/1XEt7c5b4OxcXCjyRhjzLYu/rO69/WHPuYcbCWkz8kAeZVZp2N2+IOLLEPGw==", + "version": "27.0.4", + "resolved": "https://registry.npmjs.org/@jest/test-sequencer/-/test-sequencer-27.0.4.tgz", + "integrity": "sha512-6UFEVwdmxYdyNffBxVVZxmXEdBE4riSddXYSnFNH0ELFQFk/bvagizim8WfgJTqF4EKd+j1yFxvhb8BMHfOjSQ==", "dev": true, "dependencies": { - "@jest/test-result": "^26.6.2", + "@jest/test-result": "^27.0.2", "graceful-fs": "^4.2.4", - "jest-haste-map": "^26.6.2", - "jest-runner": "^26.6.3", - "jest-runtime": "^26.6.3" + "jest-haste-map": "^27.0.2", + "jest-runtime": "^27.0.4" }, "engines": { - "node": ">= 10.14.2" + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" } }, "node_modules/@jest/transform": { - "version": "26.6.2", - "resolved": "https://registry.npmjs.org/@jest/transform/-/transform-26.6.2.tgz", - "integrity": "sha512-E9JjhUgNzvuQ+vVAL21vlyfy12gP0GhazGgJC4h6qUt1jSdUXGWJ1wfu/X7Sd8etSgxV4ovT1pb9v5D6QW4XgA==", + "version": "27.0.2", + "resolved": "https://registry.npmjs.org/@jest/transform/-/transform-27.0.2.tgz", + "integrity": "sha512-H8sqKlgtDfVog/s9I4GG2XMbi4Ar7RBxjsKQDUhn2XHAi3NG+GoQwWMER+YfantzExbjNqQvqBHzo/G2pfTiPw==", "dev": true, "dependencies": { "@babel/core": "^7.1.0", - "@jest/types": "^26.6.2", + "@jest/types": "^27.0.2", "babel-plugin-istanbul": "^6.0.0", "chalk": "^4.0.0", "convert-source-map": "^1.4.0", "fast-json-stable-stringify": "^2.0.0", "graceful-fs": "^4.2.4", - "jest-haste-map": "^26.6.2", - "jest-regex-util": "^26.0.0", - "jest-util": "^26.6.2", - "micromatch": "^4.0.2", + "jest-haste-map": "^27.0.2", + "jest-regex-util": "^27.0.1", + "jest-util": "^27.0.2", + "micromatch": "^4.0.4", "pirates": "^4.0.1", "slash": "^3.0.0", "source-map": "^0.6.1", "write-file-atomic": "^3.0.0" }, "engines": { - "node": ">= 10.14.2" + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" } }, "node_modules/@jest/transform/node_modules/ansi-styles": { @@ -2649,19 +2939,19 @@ } }, "node_modules/@jest/types": { - "version": "26.6.2", - "resolved": "https://registry.npmjs.org/@jest/types/-/types-26.6.2.tgz", - "integrity": "sha512-fC6QCp7Sc5sX6g8Tvbmj4XUTbyrik0akgRy03yjXbQaBWWNWGE7SGtJk98m0N8nzegD/7SggrUlivxo5ax4KWQ==", + "version": "27.0.2", + "resolved": "https://registry.npmjs.org/@jest/types/-/types-27.0.2.tgz", + "integrity": "sha512-XpjCtJ/99HB4PmyJ2vgmN7vT+JLP7RW1FBT9RgnMFS4Dt7cvIyBee8O3/j98aUZ34ZpenPZFqmaaObWSeL65dg==", "dev": true, "dependencies": { "@types/istanbul-lib-coverage": "^2.0.0", "@types/istanbul-reports": "^3.0.0", "@types/node": "*", - "@types/yargs": "^15.0.0", + "@types/yargs": "^16.0.0", "chalk": "^4.0.0" }, "engines": { - "node": ">= 10.14.2" + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" } }, "node_modules/@jest/types/node_modules/ansi-styles": { @@ -2735,16 +3025,16 @@ } }, "node_modules/@nicolo-ribaudo/chokidar-2": { - "version": "2.1.8-no-fsevents", - "resolved": "https://registry.npmjs.org/@nicolo-ribaudo/chokidar-2/-/chokidar-2-2.1.8-no-fsevents.tgz", - "integrity": "sha512-+nb9vWloHNNMFHjGofEam3wopE3m1yuambrrd/fnPc+lFOMB9ROTqQlche9ByFWNkdNqfSgR/kkQtQ8DzEWt2w==", + "version": "2.1.8-no-fsevents.2", + "resolved": "https://registry.npmjs.org/@nicolo-ribaudo/chokidar-2/-/chokidar-2-2.1.8-no-fsevents.2.tgz", + "integrity": "sha512-Fb8WxUFOBQVl+CX4MWet5o7eCc6Pj04rXIwVKZ6h1NnqTo45eOQW6aWyhG25NIODvWFwTDMwBsYxrQ3imxpetg==", "dev": true, "optional": true, "dependencies": { "anymatch": "^2.0.0", "async-each": "^1.0.1", "braces": "^2.3.2", - "glob-parent": "^3.1.0", + "glob-parent": "^5.1.2", "inherits": "^2.0.3", "is-binary-path": "^1.0.0", "is-glob": "^4.0.0", @@ -2754,6 +3044,19 @@ "upath": "^1.1.1" } }, + "node_modules/@nicolo-ribaudo/chokidar-2/node_modules/glob-parent": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "dev": true, + "optional": true, + "dependencies": { + "is-glob": "^4.0.1" + }, + "engines": { + "node": ">= 6" + } + }, "node_modules/@nodelib/fs.scandir": { "version": "2.1.4", "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.4.tgz", @@ -2799,14 +3102,23 @@ } }, "node_modules/@sinonjs/fake-timers": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/@sinonjs/fake-timers/-/fake-timers-6.0.1.tgz", - "integrity": "sha512-MZPUxrmFubI36XS1DI3qmI0YdN1gks62JtFZvxR67ljjSNCeK6U08Zx4msEWOXuofgqUt6zPHSi1H9fbjR/NRA==", + "version": "7.1.2", + "resolved": "https://registry.npmjs.org/@sinonjs/fake-timers/-/fake-timers-7.1.2.tgz", + "integrity": "sha512-iQADsW4LBMISqZ6Ci1dupJL9pprqwcVFTcOsEmQOEhW+KLCVn/Y4Jrvg2k19fIHCp+iFprriYPTdRcQR8NbUPg==", "dev": true, "dependencies": { "@sinonjs/commons": "^1.7.0" } }, + "node_modules/@tootallnate/once": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@tootallnate/once/-/once-1.1.2.tgz", + "integrity": "sha512-RbzJvlNzmRq5c3O09UipeuXno4tA1FE6ikOjxZK0tuxVv3412l64l5t1W5pj4+rJq9vpkm/kwiR07aZXnsKPxw==", + "dev": true, + "engines": { + "node": ">= 6" + } + }, "node_modules/@types/babel__core": { "version": "7.1.14", "resolved": "https://registry.npmjs.org/@types/babel__core/-/babel__core-7.1.14.tgz", @@ -2909,9 +3221,9 @@ } }, "node_modules/@types/istanbul-reports": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-3.0.0.tgz", - "integrity": "sha512-nwKNbvnwJ2/mndE9ItP/zc2TCzw6uuodnF4EHYWD+gCQDVBuRQL5UzbZD0/ezy1iKsFU2ZQiDqg4M9dN4+wZgA==", + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-3.0.1.tgz", + "integrity": "sha512-c3mAZEuK0lvBp8tmuL74XRKn1+y2dcwOUpH7x4WrF6gk1GIgiluDRgMYQtw2OFcBvAJWlt6ASU3tSqxp0Uu0Aw==", "dev": true, "dependencies": { "@types/istanbul-lib-report": "*" @@ -2959,9 +3271,9 @@ "dev": true }, "node_modules/@types/prettier": { - "version": "2.2.3", - "resolved": "https://registry.npmjs.org/@types/prettier/-/prettier-2.2.3.tgz", - "integrity": "sha512-PijRCG/K3s3w1We6ynUKdxEc5AcuuH3NBmMDP8uvKVp6X43UY7NQlTzczakXP3DJR0F4dfNQIGjU2cUeRYs2AA==", + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/@types/prettier/-/prettier-2.3.0.tgz", + "integrity": "sha512-hkc1DATxFLQo4VxPDpMH1gCkPpBbpOoJ/4nhuXw4n63/0R6bCpQECj4+K226UJ4JO/eJQz+1mC2I7JsWanAdQw==", "dev": true }, "node_modules/@types/stack-utils": { @@ -2971,9 +3283,9 @@ "dev": true }, "node_modules/@types/yargs": { - "version": "15.0.13", - "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-15.0.13.tgz", - "integrity": "sha512-kQ5JNTrbDv3Rp5X2n/iUu37IJBDU2gsZ5R/g1/KHOOEc5IKfUFjXT6DENPGduh08I/pamwtEq4oul7gUqKTQDQ==", + "version": "16.0.3", + "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-16.0.3.tgz", + "integrity": "sha512-YlFfTGS+zqCgXuXNV26rOIeETOkXnGQXP/pjjL9P0gO/EP9jTmc7pUBhx+jVEIxpq41RX33GQ7N3DzOSfZoglQ==", "dev": true, "dependencies": { "@types/yargs-parser": "*" @@ -3132,9 +3444,9 @@ } }, "node_modules/@webpack-cli/configtest": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/@webpack-cli/configtest/-/configtest-1.0.3.tgz", - "integrity": "sha512-WQs0ep98FXX2XBAfQpRbY0Ma6ADw8JR6xoIkaIiJIzClGOMqVRvPCWqndTxf28DgFopWan0EKtHtg/5W1h0Zkw==", + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/@webpack-cli/configtest/-/configtest-1.0.4.tgz", + "integrity": "sha512-cs3XLy+UcxiP6bj0A6u7MLLuwdXJ1c3Dtc0RkKg+wiI1g/Ti1om8+/2hc2A2B60NbBNAbMgyBMHvyymWm/j4wQ==", "dev": true, "peerDependencies": { "webpack": "4.x.x || 5.x.x", @@ -3142,9 +3454,9 @@ } }, "node_modules/@webpack-cli/info": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/@webpack-cli/info/-/info-1.2.4.tgz", - "integrity": "sha512-ogE2T4+pLhTTPS/8MM3IjHn0IYplKM4HbVNMCWA9N4NrdPzunwenpCsqKEXyejMfRu6K8mhauIPYf8ZxWG5O6g==", + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/@webpack-cli/info/-/info-1.3.0.tgz", + "integrity": "sha512-ASiVB3t9LOKHs5DyVUcxpraBXDOKubYu/ihHhU+t1UPpxsivg6Od2E2qU4gJCekfEddzRBzHhzA/Acyw/mlK/w==", "dev": true, "dependencies": { "envinfo": "^7.7.3" @@ -3154,9 +3466,9 @@ } }, "node_modules/@webpack-cli/serve": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/@webpack-cli/serve/-/serve-1.4.0.tgz", - "integrity": "sha512-xgT/HqJ+uLWGX+Mzufusl3cgjAcnqYYskaB7o0vRcwOEfuu6hMzSILQpnIzFMGsTaeaX4Nnekl+6fadLbl1/Vg==", + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/@webpack-cli/serve/-/serve-1.5.1.tgz", + "integrity": "sha512-4vSVUiOPJLmr45S8rMGy7WDvpWxfFxfP/Qx/cxZFCfvoypTYpPPL1X8VIZMe0WTA+Jr7blUxwUSEZNkjoMTgSw==", "dev": true, "peerDependencies": { "webpack-cli": "4.x.x" @@ -3268,6 +3580,18 @@ "integrity": "sha1-anmQQ3ynNtXhKI25K9MmbV9csqo=", "dev": true }, + "node_modules/agent-base": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-6.0.2.tgz", + "integrity": "sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==", + "dev": true, + "dependencies": { + "debug": "4" + }, + "engines": { + "node": ">= 6.0.0" + } + }, "node_modules/aggregate-error": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/aggregate-error/-/aggregate-error-3.1.0.tgz", @@ -3537,24 +3861,6 @@ "node": ">=0.10.0" } }, - "node_modules/asn1": { - "version": "0.2.4", - "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.4.tgz", - "integrity": "sha512-jxwzQpLQjSmWXgwaCZE9Nz+glAG01yF1QnWgbhGwHI5A6FRIEY6IVqtHhIepHqI7/kyEyQEagBC5mBEFlIYvdg==", - "dev": true, - "dependencies": { - "safer-buffer": "~2.1.0" - } - }, - "node_modules/assert-plus": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", - "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=", - "dev": true, - "engines": { - "node": ">=0.8" - } - }, "node_modules/assign-symbols": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/assign-symbols/-/assign-symbols-1.0.0.tgz", @@ -3621,21 +3927,6 @@ "node": ">= 4.5.0" } }, - "node_modules/aws-sign2": { - "version": "0.7.0", - "resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.7.0.tgz", - "integrity": "sha1-tG6JCTSpWR8tL2+G1+ap8bP+dqg=", - "dev": true, - "engines": { - "node": "*" - } - }, - "node_modules/aws4": { - "version": "1.11.0", - "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.11.0.tgz", - "integrity": "sha512-xh1Rl34h6Fi1DC2WWKfxUTVqRsNnr6LsKz2+hfwDxQJWmrx8+c7ylaqBMcHfl1U1r2dsifOvKX3LQuLNZ+XSvA==", - "dev": true - }, "node_modules/babel-eslint": { "version": "10.1.0", "resolved": "https://registry.npmjs.org/babel-eslint/-/babel-eslint-10.1.0.tgz", @@ -3658,25 +3949,25 @@ } }, "node_modules/babel-jest": { - "version": "26.6.3", - "resolved": "https://registry.npmjs.org/babel-jest/-/babel-jest-26.6.3.tgz", - "integrity": "sha512-pl4Q+GAVOHwvjrck6jKjvmGhnO3jHX/xuB9d27f+EJZ/6k+6nMuPjorrYp7s++bKKdANwzElBWnLWaObvTnaZA==", + "version": "27.0.2", + "resolved": "https://registry.npmjs.org/babel-jest/-/babel-jest-27.0.2.tgz", + "integrity": "sha512-9OThPl3/IQbo4Yul2vMz4FYwILPQak8XelX4YGowygfHaOl5R5gfjm4iVx4d8aUugkW683t8aq0A74E7b5DU1Q==", "dev": true, "dependencies": { - "@jest/transform": "^26.6.2", - "@jest/types": "^26.6.2", - "@types/babel__core": "^7.1.7", + "@jest/transform": "^27.0.2", + "@jest/types": "^27.0.2", + "@types/babel__core": "^7.1.14", "babel-plugin-istanbul": "^6.0.0", - "babel-preset-jest": "^26.6.2", + "babel-preset-jest": "^27.0.1", "chalk": "^4.0.0", "graceful-fs": "^4.2.4", "slash": "^3.0.0" }, "engines": { - "node": ">= 10.14.2" + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" }, "peerDependencies": { - "@babel/core": "^7.0.0" + "@babel/core": "^7.8.0" } }, "node_modules/babel-jest/node_modules/ansi-styles": { @@ -3784,9 +4075,9 @@ } }, "node_modules/babel-plugin-jest-hoist": { - "version": "26.6.2", - "resolved": "https://registry.npmjs.org/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-26.6.2.tgz", - "integrity": "sha512-PO9t0697lNTmcEHH69mdtYiOIkkOlj9fySqfO3K1eCcdISevLAE0xY59VLLUj0SoiPiTX/JU2CYFpILydUa5Lw==", + "version": "27.0.1", + "resolved": "https://registry.npmjs.org/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-27.0.1.tgz", + "integrity": "sha512-sqBF0owAcCDBVEDtxqfYr2F36eSHdx7lAVGyYuOBRnKdD6gzcy0I0XrAYCZgOA3CRrLhmR+Uae9nogPzmAtOfQ==", "dev": true, "dependencies": { "@babel/template": "^7.3.3", @@ -3795,17 +4086,17 @@ "@types/babel__traverse": "^7.0.6" }, "engines": { - "node": ">= 10.14.2" + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" } }, "node_modules/babel-plugin-polyfill-corejs2": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.2.0.tgz", - "integrity": "sha512-9bNwiR0dS881c5SHnzCmmGlMkJLl0OUZvxrxHo9w/iNoRuqaPjqlvBf4HrovXtQs/au5yKkpcdgfT1cC5PAZwg==", + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.2.2.tgz", + "integrity": "sha512-kISrENsJ0z5dNPq5eRvcctITNHYXWOA4DUZRFYCz3jYCcvTb/A546LIddmoGNMVYg2U38OyFeNosQwI9ENTqIQ==", "dev": true, "dependencies": { "@babel/compat-data": "^7.13.11", - "@babel/helper-define-polyfill-provider": "^0.2.0", + "@babel/helper-define-polyfill-provider": "^0.2.2", "semver": "^6.1.1" }, "peerDependencies": { @@ -3813,12 +4104,12 @@ } }, "node_modules/babel-plugin-polyfill-corejs3": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.2.0.tgz", - "integrity": "sha512-zZyi7p3BCUyzNxLx8KV61zTINkkV65zVkDAFNZmrTCRVhjo1jAS+YLvDJ9Jgd/w2tsAviCwFHReYfxO3Iql8Yg==", + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.2.2.tgz", + "integrity": "sha512-l1Cf8PKk12eEk5QP/NQ6TH8A1pee6wWDJ96WjxrMXFLHLOBFzYM4moG80HFgduVhTqAFez4alnZKEhP/bYHg0A==", "dev": true, "dependencies": { - "@babel/helper-define-polyfill-provider": "^0.2.0", + "@babel/helper-define-polyfill-provider": "^0.2.2", "core-js-compat": "^3.9.1" }, "peerDependencies": { @@ -3826,12 +4117,12 @@ } }, "node_modules/babel-plugin-polyfill-regenerator": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.2.0.tgz", - "integrity": "sha512-J7vKbCuD2Xi/eEHxquHN14bXAW9CXtecwuLrOIDJtcZzTaPzV1VdEfoUf9AzcRBMolKUQKM9/GVojeh0hFiqMg==", + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.2.2.tgz", + "integrity": "sha512-Goy5ghsc21HgPDFtzRkSirpZVW35meGoTmTOb2bxqdl60ghub4xOidgNTHaZfQ2FaxQsKmwvXtOAkcIS4SMBWg==", "dev": true, "dependencies": { - "@babel/helper-define-polyfill-provider": "^0.2.0" + "@babel/helper-define-polyfill-provider": "^0.2.2" }, "peerDependencies": { "@babel/core": "^7.0.0-0" @@ -3861,16 +4152,16 @@ } }, "node_modules/babel-preset-jest": { - "version": "26.6.2", - "resolved": "https://registry.npmjs.org/babel-preset-jest/-/babel-preset-jest-26.6.2.tgz", - "integrity": "sha512-YvdtlVm9t3k777c5NPQIv6cxFFFapys25HiUmuSgHwIZhfifweR5c5Sf5nwE3MAbfu327CYSvps8Yx6ANLyleQ==", + "version": "27.0.1", + "resolved": "https://registry.npmjs.org/babel-preset-jest/-/babel-preset-jest-27.0.1.tgz", + "integrity": "sha512-nIBIqCEpuiyhvjQs2mVNwTxQQa2xk70p9Dd/0obQGBf8FBzbnI8QhQKzLsWMN2i6q+5B0OcWDtrboBX5gmOLyA==", "dev": true, "dependencies": { - "babel-plugin-jest-hoist": "^26.6.2", + "babel-plugin-jest-hoist": "^27.0.1", "babel-preset-current-node-syntax": "^1.0.0" }, "engines": { - "node": ">= 10.14.2" + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" }, "peerDependencies": { "@babel/core": "^7.0.0" @@ -3918,15 +4209,6 @@ "integrity": "sha1-3DQxT05nkxgJP8dgJyUl+UvyXBY=", "dev": true }, - "node_modules/bcrypt-pbkdf": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz", - "integrity": "sha1-pDAdOJtqQ/m2f/PKEaP2Y342Dp4=", - "dev": true, - "dependencies": { - "tweetnacl": "^0.14.3" - } - }, "node_modules/big.js": { "version": "5.2.2", "resolved": "https://registry.npmjs.org/big.js/-/big.js-5.2.2.tgz", @@ -4226,24 +4508,6 @@ "node": ">= 8" } }, - "node_modules/capture-exit": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/capture-exit/-/capture-exit-2.0.0.tgz", - "integrity": "sha512-PiT/hQmTonHhl/HFGN+Lx3JJUznrVYJ3+AQsnthneZbvW7x+f08Tk7yLJTLEOUvBTbduLeeBkxEaYXUOUrRq6g==", - "dev": true, - "dependencies": { - "rsvp": "^4.8.4" - }, - "engines": { - "node": "6.* || 8.* || >= 10.*" - } - }, - "node_modules/caseless": { - "version": "0.12.0", - "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz", - "integrity": "sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw=", - "dev": true - }, "node_modules/chalk": { "version": "2.4.2", "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", @@ -4411,15 +4675,15 @@ } }, "node_modules/ci-info": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-2.0.0.tgz", - "integrity": "sha512-5tK7EtrZ0N+OLFMthtqOj4fI2Jeb88C4CAZPu25LDVUgXJ0A3Js4PMGqrn0JU1W0Mh1/Z8wZzYPxqUrXeBboCQ==", + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-3.2.0.tgz", + "integrity": "sha512-dVqRX7fLUm8J6FgHJ418XuIgDLZDkYcDFTeL6TA2gt5WlIZUQrrH6EZrNClwT/H0FateUsZkGIOPRrLbP+PR9A==", "dev": true }, "node_modules/cjs-module-lexer": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/cjs-module-lexer/-/cjs-module-lexer-0.6.0.tgz", - "integrity": "sha512-uc2Vix1frTfnuzxxu1Hp4ktSvM3QaI4oXl4ZUqL1wjTu/BGki9TrCWoqLTg/drR1KwAEarXuRFCG2Svr1GxPFw==", + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/cjs-module-lexer/-/cjs-module-lexer-1.2.1.tgz", + "integrity": "sha512-jVamGdJPDeuQilKhvVn1h3knuMOZzr8QDnpk+M9aMlCaMkTDd6fBWPhiDqFvFZ07pL0liqabAiuy8SY4jGHeaw==", "dev": true }, "node_modules/class-utils": { @@ -5121,12 +5385,12 @@ } }, "node_modules/core-js-compat": { - "version": "3.11.0", - "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.11.0.tgz", - "integrity": "sha512-3wsN9YZJohOSDCjVB0GequOyHax8zFiogSX3XWLE28M1Ew7dTU57tgHjIylSBKSIouwmLBp3g61sKMz/q3xEGA==", + "version": "3.14.0", + "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.14.0.tgz", + "integrity": "sha512-R4NS2eupxtiJU+VwgkF9WTpnSfZW4pogwKHd8bclWU2sp93Pr5S1uYJI84cMOubJRou7bcfL0vmwtLslWN5p3A==", "dev": true, "dependencies": { - "browserslist": "^4.16.4", + "browserslist": "^4.16.6", "semver": "7.0.0" }, "funding": { @@ -5306,18 +5570,6 @@ "node": ">=8" } }, - "node_modules/dashdash": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz", - "integrity": "sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA=", - "dev": true, - "dependencies": { - "assert-plus": "^1.0.0" - }, - "engines": { - "node": ">=0.10" - } - }, "node_modules/data-urls": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/data-urls/-/data-urls-2.0.0.tgz", @@ -5951,12 +6203,12 @@ "dev": true }, "node_modules/diff-sequences": { - "version": "26.6.2", - "resolved": "https://registry.npmjs.org/diff-sequences/-/diff-sequences-26.6.2.tgz", - "integrity": "sha512-Mv/TDa3nZ9sbc5soK+OoA74BsS3mL37yixCvUAQkiuA4Wz6YtwP/K47n2rv2ovzHZvoiQeA5FTQOschKkEwB0Q==", + "version": "27.0.1", + "resolved": "https://registry.npmjs.org/diff-sequences/-/diff-sequences-27.0.1.tgz", + "integrity": "sha512-XPLijkfJUh/PIBnfkcSHgvD6tlYixmcMAn3osTk6jt+H0v/mgURto1XUiD9DKuGX5NDoVS6dSlA23gd9FUaCFg==", "dev": true, "engines": { - "node": ">= 10.14.2" + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" } }, "node_modules/dir-glob": { @@ -6115,16 +6367,6 @@ "node": ">=4" } }, - "node_modules/ecc-jsbn": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz", - "integrity": "sha1-OoOpBOVDUyh4dMVkt1SThoSamMk=", - "dev": true, - "dependencies": { - "jsbn": "~0.1.0", - "safer-buffer": "^2.1.0" - } - }, "node_modules/ee-first": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", @@ -6138,9 +6380,9 @@ "dev": true }, "node_modules/emittery": { - "version": "0.7.2", - "resolved": "https://registry.npmjs.org/emittery/-/emittery-0.7.2.tgz", - "integrity": "sha512-A8OG5SR/ij3SsJdWDJdkkSYUjQdCUx6APQXem0SaEePBSRg4eymGYwBkKo1Y6DU+af/Jn2dBQqDBvjnr9Vi8nQ==", + "version": "0.8.1", + "resolved": "https://registry.npmjs.org/emittery/-/emittery-0.8.1.tgz", + "integrity": "sha512-uDfvUjVrfGJJhymx/kz6prltenw1u7WrCg1oa94zYY8xxVpLLUu045LAT0dhDZdXG58/EpPL/5kA180fQ/qudg==", "dev": true, "engines": { "node": ">=10" @@ -6989,12 +7231,6 @@ "node": ">=0.12.0" } }, - "node_modules/exec-sh": { - "version": "0.3.6", - "resolved": "https://registry.npmjs.org/exec-sh/-/exec-sh-0.3.6.tgz", - "integrity": "sha512-nQn+hI3yp+oD0huYhKwvYI32+JFeq+XkNcD1GAo3Y/MjxsfVGmrrzrnzjWiNY6f+pUCP440fThsFh5gZrRAU/w==", - "dev": true - }, "node_modules/execa": { "version": "4.1.0", "resolved": "https://registry.npmjs.org/execa/-/execa-4.1.0.tgz", @@ -7129,55 +7365,34 @@ "dev": true }, "node_modules/expect": { - "version": "26.6.2", - "resolved": "https://registry.npmjs.org/expect/-/expect-26.6.2.tgz", - "integrity": "sha512-9/hlOBkQl2l/PLHJx6JjoDF6xPKcJEsUlWKb23rKE7KzeDqUZKXKNMW27KIue5JMdBV9HgmoJPcc8HtO85t9IA==", + "version": "27.0.2", + "resolved": "https://registry.npmjs.org/expect/-/expect-27.0.2.tgz", + "integrity": "sha512-YJFNJe2+P2DqH+ZrXy+ydRQYO87oxRUonZImpDodR1G7qo3NYd3pL+NQ9Keqpez3cehczYwZDBC3A7xk3n7M/w==", "dev": true, "dependencies": { - "@jest/types": "^26.6.2", - "ansi-styles": "^4.0.0", - "jest-get-type": "^26.3.0", - "jest-matcher-utils": "^26.6.2", - "jest-message-util": "^26.6.2", - "jest-regex-util": "^26.0.0" + "@jest/types": "^27.0.2", + "ansi-styles": "^5.0.0", + "jest-get-type": "^27.0.1", + "jest-matcher-utils": "^27.0.2", + "jest-message-util": "^27.0.2", + "jest-regex-util": "^27.0.1" }, "engines": { - "node": ">= 10.14.2" + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" } }, "node_modules/expect/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", + "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", "dev": true, - "dependencies": { - "color-convert": "^2.0.1" - }, "engines": { - "node": ">=8" + "node": ">=10" }, "funding": { "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, - "node_modules/expect/node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/expect/node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true - }, "node_modules/express": { "version": "4.17.1", "resolved": "https://registry.npmjs.org/express/-/express-4.17.1.tgz", @@ -7309,15 +7524,6 @@ "node": ">=0.10.0" } }, - "node_modules/extsprintf": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz", - "integrity": "sha1-lpGEQOMEGnpBT4xS48V06zw+HgU=", - "dev": true, - "engines": [ - "node >=0.6.0" - ] - }, "node_modules/eyes": { "version": "0.1.8", "resolved": "https://registry.npmjs.org/eyes/-/eyes-0.1.8.tgz", @@ -7632,27 +7838,18 @@ "node": ">=0.10.0" } }, - "node_modules/forever-agent": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz", - "integrity": "sha1-+8cfDEGt6zf5bFd60e1C2P2sypE=", - "dev": true, - "engines": { - "node": "*" - } - }, "node_modules/form-data": { - "version": "2.3.3", - "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.3.3.tgz", - "integrity": "sha512-1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ==", + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-3.0.1.tgz", + "integrity": "sha512-RHkBKtLWUVwd7SqRIvCZMEvAMoGUp0XU+seQiZejj0COz3RI3hWP4sCv3gZWWLjJTd7rGwcsF5eKZGii0r/hbg==", "dev": true, "dependencies": { "asynckit": "^0.4.0", - "combined-stream": "^1.0.6", + "combined-stream": "^1.0.8", "mime-types": "^2.1.12" }, "engines": { - "node": ">= 0.12" + "node": ">= 6" } }, "node_modules/forwarded": { @@ -8118,15 +8315,6 @@ "node": ">=0.10.0" } }, - "node_modules/getpass": { - "version": "0.1.7", - "resolved": "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz", - "integrity": "sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo=", - "dev": true, - "dependencies": { - "assert-plus": "^1.0.0" - } - }, "node_modules/git-raw-commits": { "version": "2.0.10", "resolved": "https://registry.npmjs.org/git-raw-commits/-/git-raw-commits-2.0.10.tgz", @@ -8306,13 +8494,6 @@ "integrity": "sha512-nTnJ528pbqxYanhpDYsi4Rd8MAeaBA67+RZ10CM1m3bTAVFEDcd5AuA4a6W5YkGZ1iNXHzZz8T6TBKLeBuNriQ==", "dev": true }, - "node_modules/growly": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/growly/-/growly-1.3.0.tgz", - "integrity": "sha1-8QdIy+dq+WS3yWyTxrzCivEgwIE=", - "dev": true, - "optional": true - }, "node_modules/handle-thing": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/handle-thing/-/handle-thing-2.0.1.tgz", @@ -8349,29 +8530,6 @@ "node": ">=0.10.0" } }, - "node_modules/har-schema": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/har-schema/-/har-schema-2.0.0.tgz", - "integrity": "sha1-qUwiJOvKwEeCoNkDVSHyRzW37JI=", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/har-validator": { - "version": "5.1.5", - "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-5.1.5.tgz", - "integrity": "sha512-nmT2T0lljbxdQZfspsno9hgrG3Uir6Ks5afism62poxqBM6sDnMEuPmzTq8XN0OEwqKLLdh1jQI3qyE66Nzb3w==", - "deprecated": "this library is no longer supported", - "dev": true, - "dependencies": { - "ajv": "^6.12.3", - "har-schema": "^2.0.0" - }, - "engines": { - "node": ">=6" - } - }, "node_modules/hard-rejection": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/hard-rejection/-/hard-rejection-2.1.0.tgz", @@ -8585,6 +8743,20 @@ "node": ">=8.0.0" } }, + "node_modules/http-proxy-agent": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-4.0.1.tgz", + "integrity": "sha512-k0zdNgqWTGA6aeIRVpvfVob4fL52dTfaehylg0Y4UvSySvOq/Y+BOyPrgpUrA7HylqvU8vIZGsRuXmspskV0Tg==", + "dev": true, + "dependencies": { + "@tootallnate/once": "1", + "agent-base": "6", + "debug": "4" + }, + "engines": { + "node": ">= 6" + } + }, "node_modules/http-proxy-middleware": { "version": "0.19.1", "resolved": "https://registry.npmjs.org/http-proxy-middleware/-/http-proxy-middleware-0.19.1.tgz", @@ -8600,19 +8772,17 @@ "node": ">=4.0.0" } }, - "node_modules/http-signature": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.2.0.tgz", - "integrity": "sha1-muzZJRFHcvPZW2WmCruPfBj7rOE=", + "node_modules/https-proxy-agent": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-5.0.0.tgz", + "integrity": "sha512-EkYm5BcKUGiduxzSt3Eppko+PiNWNEpa4ySk9vTC6wDsQJW9rHSa+UhGNJoRYp7bz6Ht1eaRIa6QaJqO5rCFbA==", "dev": true, "dependencies": { - "assert-plus": "^1.0.0", - "jsprim": "^1.2.2", - "sshpk": "^1.7.0" + "agent-base": "6", + "debug": "4" }, "engines": { - "node": ">=0.8", - "npm": ">=1.3.7" + "node": ">= 6" } }, "node_modules/human-signals": { @@ -9135,12 +9305,12 @@ } }, "node_modules/is-ci": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-ci/-/is-ci-2.0.0.tgz", - "integrity": "sha512-YfJT7rkpQB0updsdHLGWrvhBJfcfzNNawYDNIyQXJz0IViGf75O8EBPKSdvw2rF+LGCsX4FZ8tcr3b19LcZq4w==", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-ci/-/is-ci-3.0.0.tgz", + "integrity": "sha512-kDXyttuLeslKAHYL/K28F2YkM3x5jvFPEw3yXbRptXydjD9rpLEz+C5K5iutY9ZiUu6AP41JdvRQwF4Iqs4ZCQ==", "dev": true, "dependencies": { - "ci-info": "^2.0.0" + "ci-info": "^3.1.1" }, "bin": { "is-ci": "bin.js" @@ -9214,22 +9384,6 @@ "node": ">=0.10.0" } }, - "node_modules/is-docker": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/is-docker/-/is-docker-2.2.1.tgz", - "integrity": "sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ==", - "dev": true, - "optional": true, - "bin": { - "is-docker": "cli.js" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "node_modules/is-extendable": { "version": "0.1.1", "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", @@ -9510,19 +9664,6 @@ "node": ">=0.10.0" } }, - "node_modules/is-wsl": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-2.2.0.tgz", - "integrity": "sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww==", - "dev": true, - "optional": true, - "dependencies": { - "is-docker": "^2.0.0" - }, - "engines": { - "node": ">=8" - } - }, "node_modules/isarray": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", @@ -9661,64 +9802,119 @@ } }, "node_modules/jest": { - "version": "26.6.3", - "resolved": "https://registry.npmjs.org/jest/-/jest-26.6.3.tgz", - "integrity": "sha512-lGS5PXGAzR4RF7V5+XObhqz2KZIDUA1yD0DG6pBVmy10eh0ZIXQImRuzocsI/N2XZ1GrLFwTS27In2i2jlpq1Q==", + "version": "27.0.4", + "resolved": "https://registry.npmjs.org/jest/-/jest-27.0.4.tgz", + "integrity": "sha512-Px1iKFooXgGSkk1H8dJxxBIrM3tsc5SIuI4kfKYK2J+4rvCvPGr/cXktxh0e9zIPQ5g09kOMNfHQEmusBUf/ZA==", "dev": true, "dependencies": { - "@jest/core": "^26.6.3", + "@jest/core": "^27.0.4", "import-local": "^3.0.2", - "jest-cli": "^26.6.3" + "jest-cli": "^27.0.4" }, "bin": { "jest": "bin/jest.js" }, "engines": { - "node": ">= 10.14.2" + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + }, + "peerDependencies": { + "node-notifier": "^8.0.1 || ^9.0.0" + }, + "peerDependenciesMeta": { + "node-notifier": { + "optional": true + } } }, "node_modules/jest-changed-files": { - "version": "26.6.2", - "resolved": "https://registry.npmjs.org/jest-changed-files/-/jest-changed-files-26.6.2.tgz", - "integrity": "sha512-fDS7szLcY9sCtIip8Fjry9oGf3I2ht/QT21bAHm5Dmf0mD4X3ReNUf17y+bO6fR8WgbIZTlbyG1ak/53cbRzKQ==", + "version": "27.0.2", + "resolved": "https://registry.npmjs.org/jest-changed-files/-/jest-changed-files-27.0.2.tgz", + "integrity": "sha512-eMeb1Pn7w7x3wue5/vF73LPCJ7DKQuC9wQUR5ebP9hDPpk5hzcT/3Hmz3Q5BOFpR3tgbmaWhJcMTVgC8Z1NuMw==", "dev": true, "dependencies": { - "@jest/types": "^26.6.2", - "execa": "^4.0.0", - "throat": "^5.0.0" + "@jest/types": "^27.0.2", + "execa": "^5.0.0", + "throat": "^6.0.1" }, "engines": { - "node": ">= 10.14.2" + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" } }, - "node_modules/jest-cli": { - "version": "26.6.3", - "resolved": "https://registry.npmjs.org/jest-cli/-/jest-cli-26.6.3.tgz", - "integrity": "sha512-GF9noBSa9t08pSyl3CY4frMrqp+aQXFGFkf5hEPbh/pIUFYWMK6ZLTfbmadxJVcJrdRoChlWQsA2VkJcDFK8hg==", + "node_modules/jest-changed-files/node_modules/execa": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/execa/-/execa-5.1.1.tgz", + "integrity": "sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==", "dev": true, "dependencies": { - "@jest/core": "^26.6.3", - "@jest/test-result": "^26.6.2", - "@jest/types": "^26.6.2", - "chalk": "^4.0.0", - "exit": "^0.1.2", - "graceful-fs": "^4.2.4", - "import-local": "^3.0.2", - "is-ci": "^2.0.0", - "jest-config": "^26.6.3", - "jest-util": "^26.6.2", - "jest-validate": "^26.6.2", - "prompts": "^2.0.1", - "yargs": "^15.4.1" + "cross-spawn": "^7.0.3", + "get-stream": "^6.0.0", + "human-signals": "^2.1.0", + "is-stream": "^2.0.0", + "merge-stream": "^2.0.0", + "npm-run-path": "^4.0.1", + "onetime": "^5.1.2", + "signal-exit": "^3.0.3", + "strip-final-newline": "^2.0.0" }, - "bin": { - "jest": "bin/jest.js" + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sindresorhus/execa?sponsor=1" + } + }, + "node_modules/jest-changed-files/node_modules/get-stream": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz", + "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==", + "dev": true, + "engines": { + "node": ">=10" }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/jest-changed-files/node_modules/human-signals": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-2.1.0.tgz", + "integrity": "sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==", + "dev": true, "engines": { - "node": ">= 10.14.2" + "node": ">=10.17.0" } }, - "node_modules/jest-cli/node_modules/ansi-styles": { + "node_modules/jest-circus": { + "version": "27.0.4", + "resolved": "https://registry.npmjs.org/jest-circus/-/jest-circus-27.0.4.tgz", + "integrity": "sha512-QD+eblDiRphta630WRKewuASLs/oY1Zki2G4bccntRvrTHQ63ljwFR5TLduuK4Zg0ZPzW0+8o6AP7KRd1yKOjw==", + "dev": true, + "dependencies": { + "@jest/environment": "^27.0.3", + "@jest/test-result": "^27.0.2", + "@jest/types": "^27.0.2", + "@types/node": "*", + "chalk": "^4.0.0", + "co": "^4.6.0", + "dedent": "^0.7.0", + "expect": "^27.0.2", + "is-generator-fn": "^2.0.0", + "jest-each": "^27.0.2", + "jest-matcher-utils": "^27.0.2", + "jest-message-util": "^27.0.2", + "jest-runtime": "^27.0.4", + "jest-snapshot": "^27.0.4", + "jest-util": "^27.0.2", + "pretty-format": "^27.0.2", + "slash": "^3.0.0", + "stack-utils": "^2.0.3", + "throat": "^6.0.1" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/jest-circus/node_modules/ansi-styles": { "version": "4.3.0", "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", @@ -9733,7 +9929,7 @@ "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, - "node_modules/jest-cli/node_modules/chalk": { + "node_modules/jest-circus/node_modules/chalk": { "version": "4.1.1", "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.1.tgz", "integrity": "sha512-diHzdDKxcU+bAsUboHLPEDQiw0qEe0qd7SYUn3HgcFlWgbDcfLGswOHYeGrHKzG9z6UYf01d9VFMfZxPM1xZSg==", @@ -9749,18 +9945,7 @@ "url": "https://github.com/chalk/chalk?sponsor=1" } }, - "node_modules/jest-cli/node_modules/cliui": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-6.0.0.tgz", - "integrity": "sha512-t6wbgtoCXvAzst7QgXxJYqPt0usEfbgQdftEPbLL/cvv6HPE5VgvqCuAIDR0NgU52ds6rFwqrgakNLrHEjCbrQ==", - "dev": true, - "dependencies": { - "string-width": "^4.2.0", - "strip-ansi": "^6.0.0", - "wrap-ansi": "^6.2.0" - } - }, - "node_modules/jest-cli/node_modules/color-convert": { + "node_modules/jest-circus/node_modules/color-convert": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", @@ -9772,181 +9957,176 @@ "node": ">=7.0.0" } }, - "node_modules/jest-cli/node_modules/color-name": { + "node_modules/jest-circus/node_modules/color-name": { "version": "1.1.4", "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", "dev": true }, - "node_modules/jest-cli/node_modules/find-up": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", - "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", + "node_modules/jest-circus/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", "dev": true, - "dependencies": { - "locate-path": "^5.0.0", - "path-exists": "^4.0.0" - }, "engines": { "node": ">=8" } }, - "node_modules/jest-cli/node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "node_modules/jest-circus/node_modules/slash": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", + "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", "dev": true, "engines": { "node": ">=8" } }, - "node_modules/jest-cli/node_modules/locate-path": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", - "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", + "node_modules/jest-circus/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", "dev": true, "dependencies": { - "p-locate": "^4.1.0" + "has-flag": "^4.0.0" }, "engines": { "node": ">=8" } }, - "node_modules/jest-cli/node_modules/p-limit": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", - "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", + "node_modules/jest-cli": { + "version": "27.0.4", + "resolved": "https://registry.npmjs.org/jest-cli/-/jest-cli-27.0.4.tgz", + "integrity": "sha512-E0T+/i2lxsWAzV7LKYd0SB7HUAvePqaeIh5vX43/G5jXLhv1VzjYzJAGEkTfvxV774ll9cyE2ljcL73PVMEOXQ==", "dev": true, "dependencies": { - "p-try": "^2.0.0" + "@jest/core": "^27.0.4", + "@jest/test-result": "^27.0.2", + "@jest/types": "^27.0.2", + "chalk": "^4.0.0", + "exit": "^0.1.2", + "graceful-fs": "^4.2.4", + "import-local": "^3.0.2", + "jest-config": "^27.0.4", + "jest-util": "^27.0.2", + "jest-validate": "^27.0.2", + "prompts": "^2.0.1", + "yargs": "^16.0.3" + }, + "bin": { + "jest": "bin/jest.js" }, "engines": { - "node": ">=6" + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "peerDependencies": { + "node-notifier": "^8.0.1 || ^9.0.0" + }, + "peerDependenciesMeta": { + "node-notifier": { + "optional": true + } } }, - "node_modules/jest-cli/node_modules/p-locate": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", - "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", + "node_modules/jest-cli/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", "dev": true, "dependencies": { - "p-limit": "^2.2.0" + "color-convert": "^2.0.1" }, "engines": { "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, - "node_modules/jest-cli/node_modules/string-width": { - "version": "4.2.2", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.2.tgz", - "integrity": "sha512-XBJbT3N4JhVumXE0eoLU9DCjcaF92KLNqTmFCnG1pf8duUxFGwtP6AD6nkjw9a3IdiRtL3E2w3JDiE/xi3vOeA==", + "node_modules/jest-cli/node_modules/chalk": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.1.tgz", + "integrity": "sha512-diHzdDKxcU+bAsUboHLPEDQiw0qEe0qd7SYUn3HgcFlWgbDcfLGswOHYeGrHKzG9z6UYf01d9VFMfZxPM1xZSg==", "dev": true, "dependencies": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.0" + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" }, "engines": { - "node": ">=8" + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" } }, - "node_modules/jest-cli/node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "node_modules/jest-cli/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", "dev": true, "dependencies": { - "has-flag": "^4.0.0" + "color-name": "~1.1.4" }, "engines": { - "node": ">=8" + "node": ">=7.0.0" } }, - "node_modules/jest-cli/node_modules/wrap-ansi": { - "version": "6.2.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-6.2.0.tgz", - "integrity": "sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==", - "dev": true, - "dependencies": { - "ansi-styles": "^4.0.0", - "string-width": "^4.1.0", - "strip-ansi": "^6.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/jest-cli/node_modules/y18n": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.3.tgz", - "integrity": "sha512-JKhqTOwSrqNA1NY5lSztJ1GrBiUodLMmIZuLiDaMRJ+itFd+ABVE8XBjOvIWL+rSqNDC74LCSFmlb/U4UZ4hJQ==", + "node_modules/jest-cli/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", "dev": true }, - "node_modules/jest-cli/node_modules/yargs": { - "version": "15.4.1", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-15.4.1.tgz", - "integrity": "sha512-aePbxDmcYW++PaqBsJ+HYUFwCdv4LVvdnhBy78E57PIor8/OVvhMrADFFEDh8DHDFRv/O9i3lPhsENjO7QX0+A==", + "node_modules/jest-cli/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", "dev": true, - "dependencies": { - "cliui": "^6.0.0", - "decamelize": "^1.2.0", - "find-up": "^4.1.0", - "get-caller-file": "^2.0.1", - "require-directory": "^2.1.1", - "require-main-filename": "^2.0.0", - "set-blocking": "^2.0.0", - "string-width": "^4.2.0", - "which-module": "^2.0.0", - "y18n": "^4.0.0", - "yargs-parser": "^18.1.2" - }, "engines": { "node": ">=8" } }, - "node_modules/jest-cli/node_modules/yargs-parser": { - "version": "18.1.3", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-18.1.3.tgz", - "integrity": "sha512-o50j0JeToy/4K6OZcaQmW6lyXXKhq7csREXcDwk2omFPJEwUNOVtJKvmDr9EI1fAJZUyZcRF7kxGBWmRXudrCQ==", + "node_modules/jest-cli/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", "dev": true, "dependencies": { - "camelcase": "^5.0.0", - "decamelize": "^1.2.0" + "has-flag": "^4.0.0" }, "engines": { - "node": ">=6" + "node": ">=8" } }, "node_modules/jest-config": { - "version": "26.6.3", - "resolved": "https://registry.npmjs.org/jest-config/-/jest-config-26.6.3.tgz", - "integrity": "sha512-t5qdIj/bCj2j7NFVHb2nFB4aUdfucDn3JRKgrZnplb8nieAirAzRSHP8uDEd+qV6ygzg9Pz4YG7UTJf94LPSyg==", + "version": "27.0.4", + "resolved": "https://registry.npmjs.org/jest-config/-/jest-config-27.0.4.tgz", + "integrity": "sha512-VkQFAHWnPQefdvHU9A+G3H/Z3NrrTKqWpvxgQz3nkUdkDTWeKJE6e//BL+R7z79dXOMVksYgM/z6ndtN0hfChg==", "dev": true, "dependencies": { "@babel/core": "^7.1.0", - "@jest/test-sequencer": "^26.6.3", - "@jest/types": "^26.6.2", - "babel-jest": "^26.6.3", + "@jest/test-sequencer": "^27.0.4", + "@jest/types": "^27.0.2", + "babel-jest": "^27.0.2", "chalk": "^4.0.0", "deepmerge": "^4.2.2", "glob": "^7.1.1", "graceful-fs": "^4.2.4", - "jest-environment-jsdom": "^26.6.2", - "jest-environment-node": "^26.6.2", - "jest-get-type": "^26.3.0", - "jest-jasmine2": "^26.6.3", - "jest-regex-util": "^26.0.0", - "jest-resolve": "^26.6.2", - "jest-util": "^26.6.2", - "jest-validate": "^26.6.2", - "micromatch": "^4.0.2", - "pretty-format": "^26.6.2" - }, - "engines": { - "node": ">= 10.14.2" + "is-ci": "^3.0.0", + "jest-circus": "^27.0.4", + "jest-environment-jsdom": "^27.0.3", + "jest-environment-node": "^27.0.3", + "jest-get-type": "^27.0.1", + "jest-jasmine2": "^27.0.4", + "jest-regex-util": "^27.0.1", + "jest-resolve": "^27.0.4", + "jest-runner": "^27.0.4", + "jest-util": "^27.0.2", + "jest-validate": "^27.0.2", + "micromatch": "^4.0.4", + "pretty-format": "^27.0.2" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" }, "peerDependencies": { "ts-node": ">=9.0.0" @@ -10086,18 +10266,18 @@ } }, "node_modules/jest-diff": { - "version": "26.6.2", - "resolved": "https://registry.npmjs.org/jest-diff/-/jest-diff-26.6.2.tgz", - "integrity": "sha512-6m+9Z3Gv9wN0WFVasqjCL/06+EFCMTqDEUl/b87HYK2rAPTyfz4ZIuSlPhY51PIQRWx5TaxeF1qmXKe9gfN3sA==", + "version": "27.0.2", + "resolved": "https://registry.npmjs.org/jest-diff/-/jest-diff-27.0.2.tgz", + "integrity": "sha512-BFIdRb0LqfV1hBt8crQmw6gGQHVDhM87SpMIZ45FPYKReZYG5er1+5pIn2zKqvrJp6WNox0ylR8571Iwk2Dmgw==", "dev": true, "dependencies": { "chalk": "^4.0.0", - "diff-sequences": "^26.6.2", - "jest-get-type": "^26.3.0", - "pretty-format": "^26.6.2" + "diff-sequences": "^27.0.1", + "jest-get-type": "^27.0.1", + "pretty-format": "^27.0.2" }, "engines": { - "node": ">= 10.14.2" + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" } }, "node_modules/jest-diff/node_modules/ansi-styles": { @@ -10171,31 +10351,31 @@ } }, "node_modules/jest-docblock": { - "version": "26.0.0", - "resolved": "https://registry.npmjs.org/jest-docblock/-/jest-docblock-26.0.0.tgz", - "integrity": "sha512-RDZ4Iz3QbtRWycd8bUEPxQsTlYazfYn/h5R65Fc6gOfwozFhoImx+affzky/FFBuqISPTqjXomoIGJVKBWoo0w==", + "version": "27.0.1", + "resolved": "https://registry.npmjs.org/jest-docblock/-/jest-docblock-27.0.1.tgz", + "integrity": "sha512-TA4+21s3oebURc7VgFV4r7ltdIJ5rtBH1E3Tbovcg7AV+oLfD5DcJ2V2vJ5zFA9sL5CFd/d2D6IpsAeSheEdrA==", "dev": true, "dependencies": { "detect-newline": "^3.0.0" }, "engines": { - "node": ">= 10.14.2" + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" } }, "node_modules/jest-each": { - "version": "26.6.2", - "resolved": "https://registry.npmjs.org/jest-each/-/jest-each-26.6.2.tgz", - "integrity": "sha512-Mer/f0KaATbjl8MCJ+0GEpNdqmnVmDYqCTJYTvoo7rqmRiDllmp2AYN+06F93nXcY3ur9ShIjS+CO/uD+BbH4A==", + "version": "27.0.2", + "resolved": "https://registry.npmjs.org/jest-each/-/jest-each-27.0.2.tgz", + "integrity": "sha512-OLMBZBZ6JkoXgUenDtseFRWA43wVl2BwmZYIWQws7eS7pqsIvePqj/jJmEnfq91ALk3LNphgwNK/PRFBYi7ITQ==", "dev": true, "dependencies": { - "@jest/types": "^26.6.2", + "@jest/types": "^27.0.2", "chalk": "^4.0.0", - "jest-get-type": "^26.3.0", - "jest-util": "^26.6.2", - "pretty-format": "^26.6.2" + "jest-get-type": "^27.0.1", + "jest-util": "^27.0.2", + "pretty-format": "^27.0.2" }, "engines": { - "node": ">= 10.14.2" + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" } }, "node_modules/jest-each/node_modules/ansi-styles": { @@ -10269,74 +10449,73 @@ } }, "node_modules/jest-environment-jsdom": { - "version": "26.6.2", - "resolved": "https://registry.npmjs.org/jest-environment-jsdom/-/jest-environment-jsdom-26.6.2.tgz", - "integrity": "sha512-jgPqCruTlt3Kwqg5/WVFyHIOJHsiAvhcp2qiR2QQstuG9yWox5+iHpU3ZrcBxW14T4fe5Z68jAfLRh7joCSP2Q==", + "version": "27.0.3", + "resolved": "https://registry.npmjs.org/jest-environment-jsdom/-/jest-environment-jsdom-27.0.3.tgz", + "integrity": "sha512-5KLmgv1bhiimpSA8oGTnZYk6g4fsNyZiA/6gI2tAZUgrufd7heRUSVh4gRokzZVEj8zlwAQYT0Zs6tuJSW/ECA==", "dev": true, "dependencies": { - "@jest/environment": "^26.6.2", - "@jest/fake-timers": "^26.6.2", - "@jest/types": "^26.6.2", + "@jest/environment": "^27.0.3", + "@jest/fake-timers": "^27.0.3", + "@jest/types": "^27.0.2", "@types/node": "*", - "jest-mock": "^26.6.2", - "jest-util": "^26.6.2", - "jsdom": "^16.4.0" + "jest-mock": "^27.0.3", + "jest-util": "^27.0.2", + "jsdom": "^16.6.0" }, "engines": { - "node": ">= 10.14.2" + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" } }, "node_modules/jest-environment-node": { - "version": "26.6.2", - "resolved": "https://registry.npmjs.org/jest-environment-node/-/jest-environment-node-26.6.2.tgz", - "integrity": "sha512-zhtMio3Exty18dy8ee8eJ9kjnRyZC1N4C1Nt/VShN1apyXc8rWGtJ9lI7vqiWcyyXS4BVSEn9lxAM2D+07/Tag==", + "version": "27.0.3", + "resolved": "https://registry.npmjs.org/jest-environment-node/-/jest-environment-node-27.0.3.tgz", + "integrity": "sha512-co2/IVnIFL3cItpFULCvXFg9us4gvWXgs7mutAMPCbFhcqh56QAOdKhNzC2+RycsC/k4mbMj1VF+9F/NzA0ROg==", "dev": true, "dependencies": { - "@jest/environment": "^26.6.2", - "@jest/fake-timers": "^26.6.2", - "@jest/types": "^26.6.2", + "@jest/environment": "^27.0.3", + "@jest/fake-timers": "^27.0.3", + "@jest/types": "^27.0.2", "@types/node": "*", - "jest-mock": "^26.6.2", - "jest-util": "^26.6.2" + "jest-mock": "^27.0.3", + "jest-util": "^27.0.2" }, "engines": { - "node": ">= 10.14.2" + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" } }, "node_modules/jest-get-type": { - "version": "26.3.0", - "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-26.3.0.tgz", - "integrity": "sha512-TpfaviN1R2pQWkIihlfEanwOXK0zcxrKEE4MlU6Tn7keoXdN6/3gK/xl0yEh8DOunn5pOVGKf8hB4R9gVh04ig==", + "version": "27.0.1", + "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-27.0.1.tgz", + "integrity": "sha512-9Tggo9zZbu0sHKebiAijyt1NM77Z0uO4tuWOxUCujAiSeXv30Vb5D4xVF4UR4YWNapcftj+PbByU54lKD7/xMg==", "dev": true, "engines": { - "node": ">= 10.14.2" + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" } }, "node_modules/jest-haste-map": { - "version": "26.6.2", - "resolved": "https://registry.npmjs.org/jest-haste-map/-/jest-haste-map-26.6.2.tgz", - "integrity": "sha512-easWIJXIw71B2RdR8kgqpjQrbMRWQBgiBwXYEhtGUTaX+doCjBheluShdDMeR8IMfJiTqH4+zfhtg29apJf/8w==", + "version": "27.0.2", + "resolved": "https://registry.npmjs.org/jest-haste-map/-/jest-haste-map-27.0.2.tgz", + "integrity": "sha512-37gYfrYjjhEfk37C4bCMWAC0oPBxDpG0qpl8lYg8BT//wf353YT/fzgA7+Dq0EtM7rPFS3JEcMsxdtDwNMi2cA==", "dev": true, "dependencies": { - "@jest/types": "^26.6.2", + "@jest/types": "^27.0.2", "@types/graceful-fs": "^4.1.2", "@types/node": "*", "anymatch": "^3.0.3", "fb-watchman": "^2.0.0", "graceful-fs": "^4.2.4", - "jest-regex-util": "^26.0.0", - "jest-serializer": "^26.6.2", - "jest-util": "^26.6.2", - "jest-worker": "^26.6.2", - "micromatch": "^4.0.2", - "sane": "^4.0.3", + "jest-regex-util": "^27.0.1", + "jest-serializer": "^27.0.1", + "jest-util": "^27.0.2", + "jest-worker": "^27.0.2", + "micromatch": "^4.0.4", "walker": "^1.0.7" }, "engines": { - "node": ">= 10.14.2" + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" }, "optionalDependencies": { - "fsevents": "^2.1.2" + "fsevents": "^2.3.2" } }, "node_modules/jest-haste-map/node_modules/anymatch": { @@ -10376,6 +10555,15 @@ "node": ">=8" } }, + "node_modules/jest-haste-map/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, "node_modules/jest-haste-map/node_modules/is-number": { "version": "7.0.0", "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", @@ -10385,6 +10573,20 @@ "node": ">=0.12.0" } }, + "node_modules/jest-haste-map/node_modules/jest-worker": { + "version": "27.0.2", + "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-27.0.2.tgz", + "integrity": "sha512-EoBdilOTTyOgmHXtw/cPc+ZrCA0KJMrkXzkrPGNwLmnvvlN1nj7MPrxpT7m+otSv2e1TLaVffzDnE/LB14zJMg==", + "dev": true, + "dependencies": { + "@types/node": "*", + "merge-stream": "^2.0.0", + "supports-color": "^8.0.0" + }, + "engines": { + "node": ">= 10.13.0" + } + }, "node_modules/jest-haste-map/node_modules/micromatch": { "version": "4.0.4", "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.4.tgz", @@ -10398,6 +10600,21 @@ "node": ">=8.6" } }, + "node_modules/jest-haste-map/node_modules/supports-color": { + "version": "8.1.1", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", + "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/supports-color?sponsor=1" + } + }, "node_modules/jest-haste-map/node_modules/to-regex-range": { "version": "5.0.1", "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", @@ -10411,32 +10628,32 @@ } }, "node_modules/jest-jasmine2": { - "version": "26.6.3", - "resolved": "https://registry.npmjs.org/jest-jasmine2/-/jest-jasmine2-26.6.3.tgz", - "integrity": "sha512-kPKUrQtc8aYwBV7CqBg5pu+tmYXlvFlSFYn18ev4gPFtrRzB15N2gW/Roew3187q2w2eHuu0MU9TJz6w0/nPEg==", + "version": "27.0.4", + "resolved": "https://registry.npmjs.org/jest-jasmine2/-/jest-jasmine2-27.0.4.tgz", + "integrity": "sha512-yj3WrjjquZwkJw+eA4c9yucHw4/+EHndHWSqgHbHGQfT94ihaaQsa009j1a0puU8CNxPDk0c1oAPeOpdJUElwA==", "dev": true, "dependencies": { "@babel/traverse": "^7.1.0", - "@jest/environment": "^26.6.2", - "@jest/source-map": "^26.6.2", - "@jest/test-result": "^26.6.2", - "@jest/types": "^26.6.2", + "@jest/environment": "^27.0.3", + "@jest/source-map": "^27.0.1", + "@jest/test-result": "^27.0.2", + "@jest/types": "^27.0.2", "@types/node": "*", "chalk": "^4.0.0", "co": "^4.6.0", - "expect": "^26.6.2", + "expect": "^27.0.2", "is-generator-fn": "^2.0.0", - "jest-each": "^26.6.2", - "jest-matcher-utils": "^26.6.2", - "jest-message-util": "^26.6.2", - "jest-runtime": "^26.6.3", - "jest-snapshot": "^26.6.2", - "jest-util": "^26.6.2", - "pretty-format": "^26.6.2", - "throat": "^5.0.0" + "jest-each": "^27.0.2", + "jest-matcher-utils": "^27.0.2", + "jest-message-util": "^27.0.2", + "jest-runtime": "^27.0.4", + "jest-snapshot": "^27.0.4", + "jest-util": "^27.0.2", + "pretty-format": "^27.0.2", + "throat": "^6.0.1" }, "engines": { - "node": ">= 10.14.2" + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" } }, "node_modules/jest-jasmine2/node_modules/ansi-styles": { @@ -10510,31 +10727,31 @@ } }, "node_modules/jest-leak-detector": { - "version": "26.6.2", - "resolved": "https://registry.npmjs.org/jest-leak-detector/-/jest-leak-detector-26.6.2.tgz", - "integrity": "sha512-i4xlXpsVSMeKvg2cEKdfhh0H39qlJlP5Ex1yQxwF9ubahboQYMgTtz5oML35AVA3B4Eu+YsmwaiKVev9KCvLxg==", + "version": "27.0.2", + "resolved": "https://registry.npmjs.org/jest-leak-detector/-/jest-leak-detector-27.0.2.tgz", + "integrity": "sha512-TZA3DmCOfe8YZFIMD1GxFqXUkQnIoOGQyy4hFCA2mlHtnAaf+FeOMxi0fZmfB41ZL+QbFG6BVaZF5IeFIVy53Q==", "dev": true, "dependencies": { - "jest-get-type": "^26.3.0", - "pretty-format": "^26.6.2" + "jest-get-type": "^27.0.1", + "pretty-format": "^27.0.2" }, "engines": { - "node": ">= 10.14.2" + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" } }, "node_modules/jest-matcher-utils": { - "version": "26.6.2", - "resolved": "https://registry.npmjs.org/jest-matcher-utils/-/jest-matcher-utils-26.6.2.tgz", - "integrity": "sha512-llnc8vQgYcNqDrqRDXWwMr9i7rS5XFiCwvh6DTP7Jqa2mqpcCBBlpCbn+trkG0KNhPu/h8rzyBkriOtBstvWhw==", + "version": "27.0.2", + "resolved": "https://registry.npmjs.org/jest-matcher-utils/-/jest-matcher-utils-27.0.2.tgz", + "integrity": "sha512-Qczi5xnTNjkhcIB0Yy75Txt+Ez51xdhOxsukN7awzq2auZQGPHcQrJ623PZj0ECDEMOk2soxWx05EXdXGd1CbA==", "dev": true, "dependencies": { "chalk": "^4.0.0", - "jest-diff": "^26.6.2", - "jest-get-type": "^26.3.0", - "pretty-format": "^26.6.2" + "jest-diff": "^27.0.2", + "jest-get-type": "^27.0.1", + "pretty-format": "^27.0.2" }, "engines": { - "node": ">= 10.14.2" + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" } }, "node_modules/jest-matcher-utils/node_modules/ansi-styles": { @@ -10608,23 +10825,23 @@ } }, "node_modules/jest-message-util": { - "version": "26.6.2", - "resolved": "https://registry.npmjs.org/jest-message-util/-/jest-message-util-26.6.2.tgz", - "integrity": "sha512-rGiLePzQ3AzwUshu2+Rn+UMFk0pHN58sOG+IaJbk5Jxuqo3NYO1U2/MIR4S1sKgsoYSXSzdtSa0TgrmtUwEbmA==", + "version": "27.0.2", + "resolved": "https://registry.npmjs.org/jest-message-util/-/jest-message-util-27.0.2.tgz", + "integrity": "sha512-rTqWUX42ec2LdMkoUPOzrEd1Tcm+R1KfLOmFK+OVNo4MnLsEaxO5zPDb2BbdSmthdM/IfXxOZU60P/WbWF8BTw==", "dev": true, "dependencies": { - "@babel/code-frame": "^7.0.0", - "@jest/types": "^26.6.2", + "@babel/code-frame": "^7.12.13", + "@jest/types": "^27.0.2", "@types/stack-utils": "^2.0.0", "chalk": "^4.0.0", "graceful-fs": "^4.2.4", - "micromatch": "^4.0.2", - "pretty-format": "^26.6.2", + "micromatch": "^4.0.4", + "pretty-format": "^27.0.2", "slash": "^3.0.0", - "stack-utils": "^2.0.2" + "stack-utils": "^2.0.3" }, "engines": { - "node": ">= 10.14.2" + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" } }, "node_modules/jest-message-util/node_modules/ansi-styles": { @@ -10765,16 +10982,16 @@ } }, "node_modules/jest-mock": { - "version": "26.6.2", - "resolved": "https://registry.npmjs.org/jest-mock/-/jest-mock-26.6.2.tgz", - "integrity": "sha512-YyFjePHHp1LzpzYcmgqkJ0nm0gg/lJx2aZFzFy1S6eUqNjXsOqTK10zNRff2dNfssgokjkG65OlWNcIlgd3zew==", + "version": "27.0.3", + "resolved": "https://registry.npmjs.org/jest-mock/-/jest-mock-27.0.3.tgz", + "integrity": "sha512-O5FZn5XDzEp+Xg28mUz4ovVcdwBBPfAhW9+zJLO0Efn2qNbYcDaJvSlRiQ6BCZUCVOJjALicuJQI9mRFjv1o9Q==", "dev": true, "dependencies": { - "@jest/types": "^26.6.2", + "@jest/types": "^27.0.2", "@types/node": "*" }, "engines": { - "node": ">= 10.14.2" + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" } }, "node_modules/jest-pnp-resolver": { @@ -10795,45 +11012,46 @@ } }, "node_modules/jest-regex-util": { - "version": "26.0.0", - "resolved": "https://registry.npmjs.org/jest-regex-util/-/jest-regex-util-26.0.0.tgz", - "integrity": "sha512-Gv3ZIs/nA48/Zvjrl34bf+oD76JHiGDUxNOVgUjh3j890sblXryjY4rss71fPtD/njchl6PSE2hIhvyWa1eT0A==", + "version": "27.0.1", + "resolved": "https://registry.npmjs.org/jest-regex-util/-/jest-regex-util-27.0.1.tgz", + "integrity": "sha512-6nY6QVcpTgEKQy1L41P4pr3aOddneK17kn3HJw6SdwGiKfgCGTvH02hVXL0GU8GEKtPH83eD2DIDgxHXOxVohQ==", "dev": true, "engines": { - "node": ">= 10.14.2" + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" } }, "node_modules/jest-resolve": { - "version": "26.6.2", - "resolved": "https://registry.npmjs.org/jest-resolve/-/jest-resolve-26.6.2.tgz", - "integrity": "sha512-sOxsZOq25mT1wRsfHcbtkInS+Ek7Q8jCHUB0ZUTP0tc/c41QHriU/NunqMfCUWsL4H3MHpvQD4QR9kSYhS7UvQ==", + "version": "27.0.4", + "resolved": "https://registry.npmjs.org/jest-resolve/-/jest-resolve-27.0.4.tgz", + "integrity": "sha512-BcfyK2i3cG79PDb/6gB6zFeFQlcqLsQjGBqznFCpA0L/3l1L/oOsltdUjs5eISAWA9HS9qtj8v2PSZr/yWxONQ==", "dev": true, "dependencies": { - "@jest/types": "^26.6.2", + "@jest/types": "^27.0.2", "chalk": "^4.0.0", + "escalade": "^3.1.1", "graceful-fs": "^4.2.4", "jest-pnp-resolver": "^1.2.2", - "jest-util": "^26.6.2", - "read-pkg-up": "^7.0.1", - "resolve": "^1.18.1", + "jest-util": "^27.0.2", + "jest-validate": "^27.0.2", + "resolve": "^1.20.0", "slash": "^3.0.0" }, "engines": { - "node": ">= 10.14.2" + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" } }, "node_modules/jest-resolve-dependencies": { - "version": "26.6.3", - "resolved": "https://registry.npmjs.org/jest-resolve-dependencies/-/jest-resolve-dependencies-26.6.3.tgz", - "integrity": "sha512-pVwUjJkxbhe4RY8QEWzN3vns2kqyuldKpxlxJlzEYfKSvY6/bMvxoFrYYzUO1Gx28yKWN37qyV7rIoIp2h8fTg==", + "version": "27.0.4", + "resolved": "https://registry.npmjs.org/jest-resolve-dependencies/-/jest-resolve-dependencies-27.0.4.tgz", + "integrity": "sha512-F33UPfw1YGWCV2uxJl7wD6TvcQn5IC0LtguwY3r4L7R6H4twpLkp5Q2ZfzRx9A2I3G8feiy0O0sqcn/Qoym71A==", "dev": true, "dependencies": { - "@jest/types": "^26.6.2", - "jest-regex-util": "^26.0.0", - "jest-snapshot": "^26.6.2" + "@jest/types": "^27.0.2", + "jest-regex-util": "^27.0.1", + "jest-snapshot": "^27.0.4" }, "engines": { - "node": ">= 10.14.2" + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" } }, "node_modules/jest-resolve/node_modules/ansi-styles": { @@ -10885,19 +11103,6 @@ "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", "dev": true }, - "node_modules/jest-resolve/node_modules/find-up": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", - "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", - "dev": true, - "dependencies": { - "locate-path": "^5.0.0", - "path-exists": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, "node_modules/jest-resolve/node_modules/has-flag": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", @@ -10907,113 +11112,6 @@ "node": ">=8" } }, - "node_modules/jest-resolve/node_modules/hosted-git-info": { - "version": "2.8.9", - "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.9.tgz", - "integrity": "sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw==", - "dev": true - }, - "node_modules/jest-resolve/node_modules/locate-path": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", - "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", - "dev": true, - "dependencies": { - "p-locate": "^4.1.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/jest-resolve/node_modules/normalize-package-data": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.5.0.tgz", - "integrity": "sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==", - "dev": true, - "dependencies": { - "hosted-git-info": "^2.1.4", - "resolve": "^1.10.0", - "semver": "2 || 3 || 4 || 5", - "validate-npm-package-license": "^3.0.1" - } - }, - "node_modules/jest-resolve/node_modules/p-limit": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", - "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", - "dev": true, - "dependencies": { - "p-try": "^2.0.0" - }, - "engines": { - "node": ">=6" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/jest-resolve/node_modules/p-locate": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", - "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", - "dev": true, - "dependencies": { - "p-limit": "^2.2.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/jest-resolve/node_modules/read-pkg": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-5.2.0.tgz", - "integrity": "sha512-Ug69mNOpfvKDAc2Q8DRpMjjzdtrnv9HcSMX+4VsZxD1aZ6ZzrIE7rlzXBtWTyhULSMKg076AW6WR5iZpD0JiOg==", - "dev": true, - "dependencies": { - "@types/normalize-package-data": "^2.4.0", - "normalize-package-data": "^2.5.0", - "parse-json": "^5.0.0", - "type-fest": "^0.6.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/jest-resolve/node_modules/read-pkg-up": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-7.0.1.tgz", - "integrity": "sha512-zK0TB7Xd6JpCLmlLmufqykGE+/TlOePD6qKClNW7hHDKFh/J7/7gCWGR7joEQEW1bKq3a3yUZSObOoWLFQ4ohg==", - "dev": true, - "dependencies": { - "find-up": "^4.1.0", - "read-pkg": "^5.2.0", - "type-fest": "^0.8.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/jest-resolve/node_modules/read-pkg/node_modules/type-fest": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.6.0.tgz", - "integrity": "sha512-q+MB8nYR1KDLrgr4G5yemftpMC7/QLqVndBmEEdqzmNj5dcFOO4Oo8qlwZE3ULT3+Zim1F8Kq4cBnikNhlCMlg==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/jest-resolve/node_modules/semver": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", - "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", - "dev": true, - "bin": { - "semver": "bin/semver" - } - }, "node_modules/jest-resolve/node_modules/slash": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", @@ -11035,44 +11133,37 @@ "node": ">=8" } }, - "node_modules/jest-resolve/node_modules/type-fest": { - "version": "0.8.1", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.8.1.tgz", - "integrity": "sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==", - "dev": true, - "engines": { - "node": ">=8" - } - }, "node_modules/jest-runner": { - "version": "26.6.3", - "resolved": "https://registry.npmjs.org/jest-runner/-/jest-runner-26.6.3.tgz", - "integrity": "sha512-atgKpRHnaA2OvByG/HpGA4g6CSPS/1LK0jK3gATJAoptC1ojltpmVlYC3TYgdmGp+GLuhzpH30Gvs36szSL2JQ==", + "version": "27.0.4", + "resolved": "https://registry.npmjs.org/jest-runner/-/jest-runner-27.0.4.tgz", + "integrity": "sha512-NfmvSYLCsCJk2AG8Ar2NAh4PhsJJpO+/r+g4bKR5L/5jFzx/indUpnVBdrfDvuqhGLLAvrKJ9FM/Nt8o1dsqxg==", "dev": true, "dependencies": { - "@jest/console": "^26.6.2", - "@jest/environment": "^26.6.2", - "@jest/test-result": "^26.6.2", - "@jest/types": "^26.6.2", + "@jest/console": "^27.0.2", + "@jest/environment": "^27.0.3", + "@jest/test-result": "^27.0.2", + "@jest/transform": "^27.0.2", + "@jest/types": "^27.0.2", "@types/node": "*", "chalk": "^4.0.0", - "emittery": "^0.7.1", + "emittery": "^0.8.1", "exit": "^0.1.2", "graceful-fs": "^4.2.4", - "jest-config": "^26.6.3", - "jest-docblock": "^26.0.0", - "jest-haste-map": "^26.6.2", - "jest-leak-detector": "^26.6.2", - "jest-message-util": "^26.6.2", - "jest-resolve": "^26.6.2", - "jest-runtime": "^26.6.3", - "jest-util": "^26.6.2", - "jest-worker": "^26.6.2", + "jest-docblock": "^27.0.1", + "jest-environment-jsdom": "^27.0.3", + "jest-environment-node": "^27.0.3", + "jest-haste-map": "^27.0.2", + "jest-leak-detector": "^27.0.2", + "jest-message-util": "^27.0.2", + "jest-resolve": "^27.0.4", + "jest-runtime": "^27.0.4", + "jest-util": "^27.0.2", + "jest-worker": "^27.0.2", "source-map-support": "^0.5.6", - "throat": "^5.0.0" + "throat": "^6.0.1" }, "engines": { - "node": ">= 10.14.2" + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" } }, "node_modules/jest-runner/node_modules/ansi-styles": { @@ -11133,6 +11224,35 @@ "node": ">=8" } }, + "node_modules/jest-runner/node_modules/jest-worker": { + "version": "27.0.2", + "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-27.0.2.tgz", + "integrity": "sha512-EoBdilOTTyOgmHXtw/cPc+ZrCA0KJMrkXzkrPGNwLmnvvlN1nj7MPrxpT7m+otSv2e1TLaVffzDnE/LB14zJMg==", + "dev": true, + "dependencies": { + "@types/node": "*", + "merge-stream": "^2.0.0", + "supports-color": "^8.0.0" + }, + "engines": { + "node": ">= 10.13.0" + } + }, + "node_modules/jest-runner/node_modules/jest-worker/node_modules/supports-color": { + "version": "8.1.1", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", + "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/supports-color?sponsor=1" + } + }, "node_modules/jest-runner/node_modules/supports-color": { "version": "7.2.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", @@ -11146,44 +11266,40 @@ } }, "node_modules/jest-runtime": { - "version": "26.6.3", - "resolved": "https://registry.npmjs.org/jest-runtime/-/jest-runtime-26.6.3.tgz", - "integrity": "sha512-lrzyR3N8sacTAMeonbqpnSka1dHNux2uk0qqDXVkMv2c/A3wYnvQ4EXuI013Y6+gSKSCxdaczvf4HF0mVXHRdw==", - "dev": true, - "dependencies": { - "@jest/console": "^26.6.2", - "@jest/environment": "^26.6.2", - "@jest/fake-timers": "^26.6.2", - "@jest/globals": "^26.6.2", - "@jest/source-map": "^26.6.2", - "@jest/test-result": "^26.6.2", - "@jest/transform": "^26.6.2", - "@jest/types": "^26.6.2", - "@types/yargs": "^15.0.0", + "version": "27.0.4", + "resolved": "https://registry.npmjs.org/jest-runtime/-/jest-runtime-27.0.4.tgz", + "integrity": "sha512-voJB4xbAjS/qYPboV+e+gmg3jfvHJJY4CagFWBOM9dQKtlaiTjcpD2tWwla84Z7PtXSQPeIpXY0qksA9Dum29A==", + "dev": true, + "dependencies": { + "@jest/console": "^27.0.2", + "@jest/environment": "^27.0.3", + "@jest/fake-timers": "^27.0.3", + "@jest/globals": "^27.0.3", + "@jest/source-map": "^27.0.1", + "@jest/test-result": "^27.0.2", + "@jest/transform": "^27.0.2", + "@jest/types": "^27.0.2", + "@types/yargs": "^16.0.0", "chalk": "^4.0.0", - "cjs-module-lexer": "^0.6.0", + "cjs-module-lexer": "^1.0.0", "collect-v8-coverage": "^1.0.0", "exit": "^0.1.2", "glob": "^7.1.3", "graceful-fs": "^4.2.4", - "jest-config": "^26.6.3", - "jest-haste-map": "^26.6.2", - "jest-message-util": "^26.6.2", - "jest-mock": "^26.6.2", - "jest-regex-util": "^26.0.0", - "jest-resolve": "^26.6.2", - "jest-snapshot": "^26.6.2", - "jest-util": "^26.6.2", - "jest-validate": "^26.6.2", + "jest-haste-map": "^27.0.2", + "jest-message-util": "^27.0.2", + "jest-mock": "^27.0.3", + "jest-regex-util": "^27.0.1", + "jest-resolve": "^27.0.4", + "jest-snapshot": "^27.0.4", + "jest-util": "^27.0.2", + "jest-validate": "^27.0.2", "slash": "^3.0.0", "strip-bom": "^4.0.0", - "yargs": "^15.4.1" - }, - "bin": { - "jest-runtime": "bin/jest-runtime.js" + "yargs": "^16.0.3" }, "engines": { - "node": ">= 10.14.2" + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" } }, "node_modules/jest-runtime/node_modules/ansi-styles": { @@ -11217,17 +11333,6 @@ "url": "https://github.com/chalk/chalk?sponsor=1" } }, - "node_modules/jest-runtime/node_modules/cliui": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-6.0.0.tgz", - "integrity": "sha512-t6wbgtoCXvAzst7QgXxJYqPt0usEfbgQdftEPbLL/cvv6HPE5VgvqCuAIDR0NgU52ds6rFwqrgakNLrHEjCbrQ==", - "dev": true, - "dependencies": { - "string-width": "^4.2.0", - "strip-ansi": "^6.0.0", - "wrap-ansi": "^6.2.0" - } - }, "node_modules/jest-runtime/node_modules/color-convert": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", @@ -11246,19 +11351,6 @@ "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", "dev": true }, - "node_modules/jest-runtime/node_modules/find-up": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", - "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", - "dev": true, - "dependencies": { - "locate-path": "^5.0.0", - "path-exists": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, "node_modules/jest-runtime/node_modules/has-flag": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", @@ -11268,64 +11360,11 @@ "node": ">=8" } }, - "node_modules/jest-runtime/node_modules/locate-path": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", - "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", + "node_modules/jest-runtime/node_modules/slash": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", + "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", "dev": true, - "dependencies": { - "p-locate": "^4.1.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/jest-runtime/node_modules/p-limit": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", - "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", - "dev": true, - "dependencies": { - "p-try": "^2.0.0" - }, - "engines": { - "node": ">=6" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/jest-runtime/node_modules/p-locate": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", - "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", - "dev": true, - "dependencies": { - "p-limit": "^2.2.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/jest-runtime/node_modules/slash": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", - "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/jest-runtime/node_modules/string-width": { - "version": "4.2.2", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.2.tgz", - "integrity": "sha512-XBJbT3N4JhVumXE0eoLU9DCjcaF92KLNqTmFCnG1pf8duUxFGwtP6AD6nkjw9a3IdiRtL3E2w3JDiE/xi3vOeA==", - "dev": true, - "dependencies": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.0" - }, "engines": { "node": ">=8" } @@ -11342,99 +11381,52 @@ "node": ">=8" } }, - "node_modules/jest-runtime/node_modules/wrap-ansi": { - "version": "6.2.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-6.2.0.tgz", - "integrity": "sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==", - "dev": true, - "dependencies": { - "ansi-styles": "^4.0.0", - "string-width": "^4.1.0", - "strip-ansi": "^6.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/jest-runtime/node_modules/y18n": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.3.tgz", - "integrity": "sha512-JKhqTOwSrqNA1NY5lSztJ1GrBiUodLMmIZuLiDaMRJ+itFd+ABVE8XBjOvIWL+rSqNDC74LCSFmlb/U4UZ4hJQ==", - "dev": true - }, - "node_modules/jest-runtime/node_modules/yargs": { - "version": "15.4.1", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-15.4.1.tgz", - "integrity": "sha512-aePbxDmcYW++PaqBsJ+HYUFwCdv4LVvdnhBy78E57PIor8/OVvhMrADFFEDh8DHDFRv/O9i3lPhsENjO7QX0+A==", - "dev": true, - "dependencies": { - "cliui": "^6.0.0", - "decamelize": "^1.2.0", - "find-up": "^4.1.0", - "get-caller-file": "^2.0.1", - "require-directory": "^2.1.1", - "require-main-filename": "^2.0.0", - "set-blocking": "^2.0.0", - "string-width": "^4.2.0", - "which-module": "^2.0.0", - "y18n": "^4.0.0", - "yargs-parser": "^18.1.2" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/jest-runtime/node_modules/yargs-parser": { - "version": "18.1.3", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-18.1.3.tgz", - "integrity": "sha512-o50j0JeToy/4K6OZcaQmW6lyXXKhq7csREXcDwk2omFPJEwUNOVtJKvmDr9EI1fAJZUyZcRF7kxGBWmRXudrCQ==", - "dev": true, - "dependencies": { - "camelcase": "^5.0.0", - "decamelize": "^1.2.0" - }, - "engines": { - "node": ">=6" - } - }, "node_modules/jest-serializer": { - "version": "26.6.2", - "resolved": "https://registry.npmjs.org/jest-serializer/-/jest-serializer-26.6.2.tgz", - "integrity": "sha512-S5wqyz0DXnNJPd/xfIzZ5Xnp1HrJWBczg8mMfMpN78OJ5eDxXyf+Ygld9wX1DnUWbIbhM1YDY95NjR4CBXkb2g==", + "version": "27.0.1", + "resolved": "https://registry.npmjs.org/jest-serializer/-/jest-serializer-27.0.1.tgz", + "integrity": "sha512-svy//5IH6bfQvAbkAEg1s7xhhgHTtXu0li0I2fdKHDsLP2P2MOiscPQIENQep8oU2g2B3jqLyxKKzotZOz4CwQ==", "dev": true, "dependencies": { "@types/node": "*", "graceful-fs": "^4.2.4" }, "engines": { - "node": ">= 10.14.2" + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" } }, "node_modules/jest-snapshot": { - "version": "26.6.2", - "resolved": "https://registry.npmjs.org/jest-snapshot/-/jest-snapshot-26.6.2.tgz", - "integrity": "sha512-OLhxz05EzUtsAmOMzuupt1lHYXCNib0ECyuZ/PZOx9TrZcC8vL0x+DUG3TL+GLX3yHG45e6YGjIm0XwDc3q3og==", + "version": "27.0.4", + "resolved": "https://registry.npmjs.org/jest-snapshot/-/jest-snapshot-27.0.4.tgz", + "integrity": "sha512-hnjrvpKGdSMvKfbHyaG5Kul7pDJGZvjVy0CKpzhu28MmAssDXS6GpynhXzgst1wBQoKD8c9b2VS2a5yhDLQRCA==", "dev": true, "dependencies": { + "@babel/core": "^7.7.2", + "@babel/generator": "^7.7.2", + "@babel/parser": "^7.7.2", + "@babel/plugin-syntax-typescript": "^7.7.2", + "@babel/traverse": "^7.7.2", "@babel/types": "^7.0.0", - "@jest/types": "^26.6.2", + "@jest/transform": "^27.0.2", + "@jest/types": "^27.0.2", "@types/babel__traverse": "^7.0.4", - "@types/prettier": "^2.0.0", + "@types/prettier": "^2.1.5", + "babel-preset-current-node-syntax": "^1.0.0", "chalk": "^4.0.0", - "expect": "^26.6.2", + "expect": "^27.0.2", "graceful-fs": "^4.2.4", - "jest-diff": "^26.6.2", - "jest-get-type": "^26.3.0", - "jest-haste-map": "^26.6.2", - "jest-matcher-utils": "^26.6.2", - "jest-message-util": "^26.6.2", - "jest-resolve": "^26.6.2", + "jest-diff": "^27.0.2", + "jest-get-type": "^27.0.1", + "jest-haste-map": "^27.0.2", + "jest-matcher-utils": "^27.0.2", + "jest-message-util": "^27.0.2", + "jest-resolve": "^27.0.4", + "jest-util": "^27.0.2", "natural-compare": "^1.4.0", - "pretty-format": "^26.6.2", + "pretty-format": "^27.0.2", "semver": "^7.3.2" }, "engines": { - "node": ">= 10.14.2" + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" } }, "node_modules/jest-snapshot/node_modules/ansi-styles": { @@ -11523,20 +11515,20 @@ } }, "node_modules/jest-util": { - "version": "26.6.2", - "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-26.6.2.tgz", - "integrity": "sha512-MDW0fKfsn0OI7MS7Euz6h8HNDXVQ0gaM9uW6RjfDmd1DAFcaxX9OqIakHIqhbnmF08Cf2DLDG+ulq8YQQ0Lp0Q==", + "version": "27.0.2", + "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-27.0.2.tgz", + "integrity": "sha512-1d9uH3a00OFGGWSibpNYr+jojZ6AckOMCXV2Z4K3YXDnzpkAaXQyIpY14FOJPiUmil7CD+A6Qs+lnnh6ctRbIA==", "dev": true, "dependencies": { - "@jest/types": "^26.6.2", + "@jest/types": "^27.0.2", "@types/node": "*", "chalk": "^4.0.0", "graceful-fs": "^4.2.4", - "is-ci": "^2.0.0", - "micromatch": "^4.0.2" + "is-ci": "^3.0.0", + "picomatch": "^2.2.3" }, "engines": { - "node": ">= 10.14.2" + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" } }, "node_modules/jest-util/node_modules/ansi-styles": { @@ -11554,18 +11546,6 @@ "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, - "node_modules/jest-util/node_modules/braces": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", - "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", - "dev": true, - "dependencies": { - "fill-range": "^7.0.1" - }, - "engines": { - "node": ">=8" - } - }, "node_modules/jest-util/node_modules/chalk": { "version": "4.1.1", "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.1.tgz", @@ -11600,18 +11580,6 @@ "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", "dev": true }, - "node_modules/jest-util/node_modules/fill-range": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", - "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", - "dev": true, - "dependencies": { - "to-regex-range": "^5.0.1" - }, - "engines": { - "node": ">=8" - } - }, "node_modules/jest-util/node_modules/has-flag": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", @@ -11621,28 +11589,6 @@ "node": ">=8" } }, - "node_modules/jest-util/node_modules/is-number": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", - "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", - "dev": true, - "engines": { - "node": ">=0.12.0" - } - }, - "node_modules/jest-util/node_modules/micromatch": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.4.tgz", - "integrity": "sha512-pRmzw/XUcwXGpD9aI9q/0XOwLNygjETJ8y0ao0wdqprrzDa4YnxLcz7fQRZr8voh8V10kGhABbNcHVk5wHgWwg==", - "dev": true, - "dependencies": { - "braces": "^3.0.1", - "picomatch": "^2.2.3" - }, - "engines": { - "node": ">=8.6" - } - }, "node_modules/jest-util/node_modules/supports-color": { "version": "7.2.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", @@ -11655,33 +11601,21 @@ "node": ">=8" } }, - "node_modules/jest-util/node_modules/to-regex-range": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", - "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", - "dev": true, - "dependencies": { - "is-number": "^7.0.0" - }, - "engines": { - "node": ">=8.0" - } - }, "node_modules/jest-validate": { - "version": "26.6.2", - "resolved": "https://registry.npmjs.org/jest-validate/-/jest-validate-26.6.2.tgz", - "integrity": "sha512-NEYZ9Aeyj0i5rQqbq+tpIOom0YS1u2MVu6+euBsvpgIme+FOfRmoC4R5p0JiAUpaFvFy24xgrpMknarR/93XjQ==", + "version": "27.0.2", + "resolved": "https://registry.npmjs.org/jest-validate/-/jest-validate-27.0.2.tgz", + "integrity": "sha512-UgBF6/oVu1ofd1XbaSotXKihi8nZhg0Prm8twQ9uCuAfo59vlxCXMPI/RKmrZEVgi3Nd9dS0I8A0wzWU48pOvg==", "dev": true, "dependencies": { - "@jest/types": "^26.6.2", - "camelcase": "^6.0.0", + "@jest/types": "^27.0.2", + "camelcase": "^6.2.0", "chalk": "^4.0.0", - "jest-get-type": "^26.3.0", + "jest-get-type": "^27.0.1", "leven": "^3.1.0", - "pretty-format": "^26.6.2" + "pretty-format": "^27.0.2" }, "engines": { - "node": ">= 10.14.2" + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" } }, "node_modules/jest-validate/node_modules/ansi-styles": { @@ -11767,21 +11701,21 @@ } }, "node_modules/jest-watcher": { - "version": "26.6.2", - "resolved": "https://registry.npmjs.org/jest-watcher/-/jest-watcher-26.6.2.tgz", - "integrity": "sha512-WKJob0P/Em2csiVthsI68p6aGKTIcsfjH9Gsx1f0A3Italz43e3ho0geSAVsmj09RWOELP1AZ/DXyJgOgDKxXQ==", + "version": "27.0.2", + "resolved": "https://registry.npmjs.org/jest-watcher/-/jest-watcher-27.0.2.tgz", + "integrity": "sha512-8nuf0PGuTxWj/Ytfw5fyvNn/R80iXY8QhIT0ofyImUvdnoaBdT6kob0GmhXR+wO+ALYVnh8bQxN4Tjfez0JgkA==", "dev": true, "dependencies": { - "@jest/test-result": "^26.6.2", - "@jest/types": "^26.6.2", + "@jest/test-result": "^27.0.2", + "@jest/types": "^27.0.2", "@types/node": "*", "ansi-escapes": "^4.2.1", "chalk": "^4.0.0", - "jest-util": "^26.6.2", + "jest-util": "^27.0.2", "string-length": "^4.0.1" }, "engines": { - "node": ">= 10.14.2" + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" } }, "node_modules/jest-watcher/node_modules/ansi-styles": { @@ -11915,20 +11849,14 @@ "js-yaml": "bin/js-yaml.js" } }, - "node_modules/jsbn": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz", - "integrity": "sha1-peZUwuWi3rXyAdls77yoDA7y9RM=", - "dev": true - }, "node_modules/jsdom": { - "version": "16.5.3", - "resolved": "https://registry.npmjs.org/jsdom/-/jsdom-16.5.3.tgz", - "integrity": "sha512-Qj1H+PEvUsOtdPJ056ewXM4UJPCi4hhLA8wpiz9F2YvsRBhuFsXxtrIFAgGBDynQA9isAMGE91PfUYbdMPXuTA==", + "version": "16.6.0", + "resolved": "https://registry.npmjs.org/jsdom/-/jsdom-16.6.0.tgz", + "integrity": "sha512-Ty1vmF4NHJkolaEmdjtxTfSfkdb8Ywarwf63f+F8/mDD1uLSSWDxDuMiZxiPhwunLrn9LOSVItWj4bLYsLN3Dg==", "dev": true, "dependencies": { "abab": "^2.0.5", - "acorn": "^8.1.0", + "acorn": "^8.2.4", "acorn-globals": "^6.0.0", "cssom": "^0.4.4", "cssstyle": "^2.3.0", @@ -11936,12 +11864,13 @@ "decimal.js": "^10.2.1", "domexception": "^2.0.1", "escodegen": "^2.0.0", + "form-data": "^3.0.0", "html-encoding-sniffer": "^2.0.1", - "is-potential-custom-element-name": "^1.0.0", + "http-proxy-agent": "^4.0.1", + "https-proxy-agent": "^5.0.0", + "is-potential-custom-element-name": "^1.0.1", "nwsapi": "^2.2.0", "parse5": "6.0.1", - "request": "^2.88.2", - "request-promise-native": "^1.0.9", "saxes": "^5.0.1", "symbol-tree": "^3.2.4", "tough-cookie": "^4.0.0", @@ -11951,7 +11880,7 @@ "whatwg-encoding": "^1.0.5", "whatwg-mimetype": "^2.3.0", "whatwg-url": "^8.5.0", - "ws": "^7.4.4", + "ws": "^7.4.5", "xml-name-validator": "^3.0.0" }, "engines": { @@ -11967,9 +11896,9 @@ } }, "node_modules/jsdom/node_modules/acorn": { - "version": "8.2.1", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.2.1.tgz", - "integrity": "sha512-z716cpm5TX4uzOzILx8PavOE6C6DKshHDw1aQN52M/yNSqE9s5O8SMfyhCCfCJ3HmTL0NkVOi+8a/55T7YB3bg==", + "version": "8.4.0", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.4.0.tgz", + "integrity": "sha512-ULr0LDaEqQrMFGyQ3bhJkLsbtrQ8QibAseGZeaSUiT/6zb9IvIkomWHJIvgvwad+hinRAgsI51JcWk2yvwyL+w==", "dev": true, "bin": { "acorn": "bin/acorn" @@ -12002,12 +11931,6 @@ "integrity": "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==", "dev": true }, - "node_modules/json-schema": { - "version": "0.2.3", - "resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.2.3.tgz", - "integrity": "sha1-tIDIkuWaLwWVTOcnvT8qTogvnhM=", - "dev": true - }, "node_modules/json-schema-traverse": { "version": "0.4.1", "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", @@ -12082,21 +12005,6 @@ "node": "*" } }, - "node_modules/jsprim": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/jsprim/-/jsprim-1.4.1.tgz", - "integrity": "sha1-MT5mvB5cwG5Di8G3SZwuXFastqI=", - "dev": true, - "engines": [ - "node >=0.6.0" - ], - "dependencies": { - "assert-plus": "1.0.0", - "extsprintf": "1.3.0", - "json-schema": "0.2.3", - "verror": "1.10.0" - } - }, "node_modules/killable": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/killable/-/killable-1.0.1.tgz", @@ -13459,37 +13367,6 @@ "node": ">=0.10.0" } }, - "node_modules/node-notifier": { - "version": "8.0.2", - "resolved": "https://registry.npmjs.org/node-notifier/-/node-notifier-8.0.2.tgz", - "integrity": "sha512-oJP/9NAdd9+x2Q+rfphB2RJCHjod70RcRLjosiPMMu5gjIfwVnOUGq2nbTjTUbmy0DJ/tFIVT30+Qe3nzl4TJg==", - "dev": true, - "optional": true, - "dependencies": { - "growly": "^1.3.0", - "is-wsl": "^2.2.0", - "semver": "^7.3.2", - "shellwords": "^0.1.1", - "uuid": "^8.3.0", - "which": "^2.0.2" - } - }, - "node_modules/node-notifier/node_modules/semver": { - "version": "7.3.5", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.5.tgz", - "integrity": "sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==", - "dev": true, - "optional": true, - "dependencies": { - "lru-cache": "^6.0.0" - }, - "bin": { - "semver": "bin/semver.js" - }, - "engines": { - "node": ">=10" - } - }, "node_modules/node-releases": { "version": "1.1.71", "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-1.1.71.tgz", @@ -13674,15 +13551,6 @@ "integrity": "sha512-h2AatdwYH+JHiZpv7pt/gSX1XoRGb7L/qSIeuqA6GwYoF9w1vP1cw42TO0aI2pNyshRK5893hNSl+1//vHK7hQ==", "dev": true }, - "node_modules/oauth-sign": { - "version": "0.9.0", - "resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.9.0.tgz", - "integrity": "sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ==", - "dev": true, - "engines": { - "node": "*" - } - }, "node_modules/object-assign": { "version": "4.1.1", "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", @@ -14182,12 +14050,6 @@ "node": ">=8" } }, - "node_modules/performance-now": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz", - "integrity": "sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns=", - "dev": true - }, "node_modules/picomatch": { "version": "2.2.3", "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.2.3.tgz", @@ -14583,53 +14445,32 @@ } }, "node_modules/pretty-format": { - "version": "26.6.2", - "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-26.6.2.tgz", - "integrity": "sha512-7AeGuCYNGmycyQbCqd/3PWH4eOoX/OiCa0uphp57NVTeAGdJGaAliecxwBDHYQCIvrW7aDBZCYeNTP/WX69mkg==", + "version": "27.0.2", + "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-27.0.2.tgz", + "integrity": "sha512-mXKbbBPnYTG7Yra9qFBtqj+IXcsvxsvOBco3QHxtxTl+hHKq6QdzMZ+q0CtL4ORHZgwGImRr2XZUX2EWzORxig==", "dev": true, "dependencies": { - "@jest/types": "^26.6.2", + "@jest/types": "^27.0.2", "ansi-regex": "^5.0.0", - "ansi-styles": "^4.0.0", + "ansi-styles": "^5.0.0", "react-is": "^17.0.1" }, "engines": { - "node": ">= 10" + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" } }, "node_modules/pretty-format/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", + "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", "dev": true, - "dependencies": { - "color-convert": "^2.0.1" - }, "engines": { - "node": ">=8" + "node": ">=10" }, "funding": { "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, - "node_modules/pretty-format/node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/pretty-format/node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true - }, "node_modules/prettyjson": { "version": "1.2.1", "resolved": "https://registry.npmjs.org/prettyjson/-/prettyjson-1.2.1.tgz", @@ -14724,15 +14565,6 @@ "teleport": ">=0.2.0" } }, - "node_modules/qs": { - "version": "6.5.2", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.5.2.tgz", - "integrity": "sha512-N5ZAX4/LxJmF+7wN74pUD6qAh9/wnvdQcjq9TZjevvXzSUo7bfmw91saqMjzGS2xq91/odN2dW/WOl7qQHNDGA==", - "dev": true, - "engines": { - "node": ">=0.6" - } - }, "node_modules/querystring": { "version": "0.2.0", "resolved": "https://registry.npmjs.org/querystring/-/querystring-0.2.0.tgz", @@ -15200,122 +15032,22 @@ "node": ">=0.10.0" } }, - "node_modules/request": { - "version": "2.88.2", - "resolved": "https://registry.npmjs.org/request/-/request-2.88.2.tgz", - "integrity": "sha512-MsvtOrfG9ZcrOwAW+Qi+F6HbD0CWXEh9ou77uOb7FM2WPhwT7smM833PzanhJLsgXjN89Ir6V2PczXNnMpwKhw==", - "deprecated": "request has been deprecated, see https://github.com/request/request/issues/3142", - "dev": true, - "dependencies": { - "aws-sign2": "~0.7.0", - "aws4": "^1.8.0", - "caseless": "~0.12.0", - "combined-stream": "~1.0.6", - "extend": "~3.0.2", - "forever-agent": "~0.6.1", - "form-data": "~2.3.2", - "har-validator": "~5.1.3", - "http-signature": "~1.2.0", - "is-typedarray": "~1.0.0", - "isstream": "~0.1.2", - "json-stringify-safe": "~5.0.1", - "mime-types": "~2.1.19", - "oauth-sign": "~0.9.0", - "performance-now": "^2.1.0", - "qs": "~6.5.2", - "safe-buffer": "^5.1.2", - "tough-cookie": "~2.5.0", - "tunnel-agent": "^0.6.0", - "uuid": "^3.3.2" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/request-promise-core": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/request-promise-core/-/request-promise-core-1.1.4.tgz", - "integrity": "sha512-TTbAfBBRdWD7aNNOoVOBH4pN/KigV6LyapYNNlAPA8JwbovRti1E88m3sYAwsLi5ryhPKsE9APwnjFTgdUjTpw==", + "node_modules/require-directory": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", + "integrity": "sha1-jGStX9MNqxyXbiNE/+f3kqam30I=", "dev": true, - "dependencies": { - "lodash": "^4.17.19" - }, "engines": { "node": ">=0.10.0" - }, - "peerDependencies": { - "request": "^2.34" } }, - "node_modules/request-promise-native": { - "version": "1.0.9", - "resolved": "https://registry.npmjs.org/request-promise-native/-/request-promise-native-1.0.9.tgz", - "integrity": "sha512-wcW+sIUiWnKgNY0dqCpOZkUbF/I+YPi+f09JZIDa39Ec+q82CpSYniDp+ISgTTbKmnpJWASeJBPZmoxH84wt3g==", - "deprecated": "request-promise-native has been deprecated because it extends the now deprecated request package, see https://github.com/request/request/issues/3142", + "node_modules/require-from-string": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/require-from-string/-/require-from-string-2.0.2.tgz", + "integrity": "sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==", "dev": true, - "dependencies": { - "request-promise-core": "1.1.4", - "stealthy-require": "^1.1.1", - "tough-cookie": "^2.3.3" - }, "engines": { - "node": ">=0.12.0" - }, - "peerDependencies": { - "request": "^2.34" - } - }, - "node_modules/request-promise-native/node_modules/tough-cookie": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.5.0.tgz", - "integrity": "sha512-nlLsUzgm1kfLXSXfRZMc1KLAugd4hqJHDTvc2hDIwS3mZAfMEuMbc03SujMF+GEcpaX/qboeycw6iO8JwVv2+g==", - "dev": true, - "dependencies": { - "psl": "^1.1.28", - "punycode": "^2.1.1" - }, - "engines": { - "node": ">=0.8" - } - }, - "node_modules/request/node_modules/tough-cookie": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.5.0.tgz", - "integrity": "sha512-nlLsUzgm1kfLXSXfRZMc1KLAugd4hqJHDTvc2hDIwS3mZAfMEuMbc03SujMF+GEcpaX/qboeycw6iO8JwVv2+g==", - "dev": true, - "dependencies": { - "psl": "^1.1.28", - "punycode": "^2.1.1" - }, - "engines": { - "node": ">=0.8" - } - }, - "node_modules/request/node_modules/uuid": { - "version": "3.4.0", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.4.0.tgz", - "integrity": "sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A==", - "dev": true, - "bin": { - "uuid": "bin/uuid" - } - }, - "node_modules/require-directory": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", - "integrity": "sha1-jGStX9MNqxyXbiNE/+f3kqam30I=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/require-from-string": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/require-from-string/-/require-from-string-2.0.2.tgz", - "integrity": "sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==", - "dev": true, - "engines": { - "node": ">=0.10.0" + "node": ">=0.10.0" } }, "node_modules/require-main-filename": { @@ -15439,15 +15171,6 @@ "url": "https://github.com/sponsors/isaacs" } }, - "node_modules/rsvp": { - "version": "4.8.5", - "resolved": "https://registry.npmjs.org/rsvp/-/rsvp-4.8.5.tgz", - "integrity": "sha512-nfMOlASu9OnRJo1mbEk2cz0D56a1MBNrJ7orjRZQG10XDyuvwksKbuXNp6qa+kbn839HwjwhBzhFmdsaEAfauA==", - "dev": true, - "engines": { - "node": "6.* || >= 7.*" - } - }, "node_modules/run-async": { "version": "2.4.1", "resolved": "https://registry.npmjs.org/run-async/-/run-async-2.4.1.tgz", @@ -15519,147 +15242,6 @@ "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", "dev": true }, - "node_modules/sane": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/sane/-/sane-4.1.0.tgz", - "integrity": "sha512-hhbzAgTIX8O7SHfp2c8/kREfEn4qO/9q8C9beyY6+tvZ87EpoZ3i1RIEvp27YBswnNbY9mWd6paKVmKbAgLfZA==", - "dev": true, - "dependencies": { - "@cnakazawa/watch": "^1.0.3", - "anymatch": "^2.0.0", - "capture-exit": "^2.0.0", - "exec-sh": "^0.3.2", - "execa": "^1.0.0", - "fb-watchman": "^2.0.0", - "micromatch": "^3.1.4", - "minimist": "^1.1.1", - "walker": "~1.0.5" - }, - "bin": { - "sane": "src/cli.js" - }, - "engines": { - "node": "6.* || 8.* || >= 10.*" - } - }, - "node_modules/sane/node_modules/cross-spawn": { - "version": "6.0.5", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.5.tgz", - "integrity": "sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==", - "dev": true, - "dependencies": { - "nice-try": "^1.0.4", - "path-key": "^2.0.1", - "semver": "^5.5.0", - "shebang-command": "^1.2.0", - "which": "^1.2.9" - }, - "engines": { - "node": ">=4.8" - } - }, - "node_modules/sane/node_modules/execa": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/execa/-/execa-1.0.0.tgz", - "integrity": "sha512-adbxcyWV46qiHyvSp50TKt05tB4tK3HcmF7/nxfAdhnox83seTDbwnaqKO4sXRy7roHAIFqJP/Rw/AuEbX61LA==", - "dev": true, - "dependencies": { - "cross-spawn": "^6.0.0", - "get-stream": "^4.0.0", - "is-stream": "^1.1.0", - "npm-run-path": "^2.0.0", - "p-finally": "^1.0.0", - "signal-exit": "^3.0.0", - "strip-eof": "^1.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/sane/node_modules/get-stream": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-4.1.0.tgz", - "integrity": "sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w==", - "dev": true, - "dependencies": { - "pump": "^3.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/sane/node_modules/is-stream": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz", - "integrity": "sha1-EtSj3U5o4Lec6428hBc66A2RykQ=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/sane/node_modules/npm-run-path": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-2.0.2.tgz", - "integrity": "sha1-NakjLfo11wZ7TLLd8jV7GHFTbF8=", - "dev": true, - "dependencies": { - "path-key": "^2.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/sane/node_modules/path-key": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz", - "integrity": "sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A=", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/sane/node_modules/semver": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", - "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", - "dev": true, - "bin": { - "semver": "bin/semver" - } - }, - "node_modules/sane/node_modules/shebang-command": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz", - "integrity": "sha1-RKrGW2lbAzmJaMOfNj/uXer98eo=", - "dev": true, - "dependencies": { - "shebang-regex": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/sane/node_modules/shebang-regex": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz", - "integrity": "sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/sane/node_modules/which": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", - "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", - "dev": true, - "dependencies": { - "isexe": "^2.0.0" - }, - "bin": { - "which": "bin/which" - } - }, "node_modules/saxes": { "version": "5.0.1", "resolved": "https://registry.npmjs.org/saxes/-/saxes-5.0.1.tgz", @@ -15940,13 +15522,6 @@ "node": ">=4" } }, - "node_modules/shellwords": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/shellwords/-/shellwords-0.1.1.tgz", - "integrity": "sha512-vFwSUfQvqybiICwZY5+DAWIPLKsWO31Q91JSKl3UYv+K5c2QRPzn0qzec6QPu1Qc9eHYItiP3NdJqNVqetYAww==", - "dev": true, - "optional": true - }, "node_modules/signal-exit": { "version": "3.0.3", "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.3.tgz", @@ -16430,31 +16005,6 @@ "integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=", "dev": true }, - "node_modules/sshpk": { - "version": "1.16.1", - "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.16.1.tgz", - "integrity": "sha512-HXXqVUq7+pcKeLqqZj6mHFUMvXtOJt1uoUx09pFW6011inTMxqI8BA8PM95myrIyyKwdnzjdFjLiE6KBPVtJIg==", - "dev": true, - "dependencies": { - "asn1": "~0.2.3", - "assert-plus": "^1.0.0", - "bcrypt-pbkdf": "^1.0.0", - "dashdash": "^1.12.0", - "ecc-jsbn": "~0.1.1", - "getpass": "^0.1.1", - "jsbn": "~0.1.0", - "safer-buffer": "^2.0.2", - "tweetnacl": "~0.14.0" - }, - "bin": { - "sshpk-conv": "bin/sshpk-conv", - "sshpk-sign": "bin/sshpk-sign", - "sshpk-verify": "bin/sshpk-verify" - }, - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/stack-trace": { "version": "0.0.10", "resolved": "https://registry.npmjs.org/stack-trace/-/stack-trace-0.0.10.tgz", @@ -16610,15 +16160,6 @@ "node": ">= 0.6" } }, - "node_modules/stealthy-require": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/stealthy-require/-/stealthy-require-1.1.1.tgz", - "integrity": "sha1-NbCYdbT/SfJqd35QmzCQoyJr8ks=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/string_decoder": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", @@ -17138,9 +16679,9 @@ "dev": true }, "node_modules/throat": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/throat/-/throat-5.0.0.tgz", - "integrity": "sha512-fcwX4mndzpLQKBS1DVYhGAcYaYt7vsHNIvQV+WXMvnow5cgjPphq5CaayLaGsjRdSCKZFNGt7/GYAuXaNOiYCA==", + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/throat/-/throat-6.0.1.tgz", + "integrity": "sha512-8hmiGIJMDlwjg7dlJ4yKGLK8EsYqKgPWbG3b4wjJddKNwc7N7Dpn08Df4szr/sZdMVeOstrdYSsqzX6BYbcB+w==", "dev": true }, "node_modules/through": { @@ -17371,24 +16912,6 @@ "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", "dev": true }, - "node_modules/tunnel-agent": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz", - "integrity": "sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0=", - "dev": true, - "dependencies": { - "safe-buffer": "^5.0.1" - }, - "engines": { - "node": "*" - } - }, - "node_modules/tweetnacl": { - "version": "0.14.5", - "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz", - "integrity": "sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q=", - "dev": true - }, "node_modules/type-check": { "version": "0.4.0", "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz", @@ -17674,16 +17197,6 @@ "node": ">= 0.4.0" } }, - "node_modules/uuid": { - "version": "8.3.2", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz", - "integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==", - "dev": true, - "optional": true, - "bin": { - "uuid": "dist/bin/uuid" - } - }, "node_modules/v8-compile-cache": { "version": "2.3.0", "resolved": "https://registry.npmjs.org/v8-compile-cache/-/v8-compile-cache-2.3.0.tgz", @@ -17691,9 +17204,9 @@ "dev": true }, "node_modules/v8-to-istanbul": { - "version": "7.1.1", - "resolved": "https://registry.npmjs.org/v8-to-istanbul/-/v8-to-istanbul-7.1.1.tgz", - "integrity": "sha512-p0BB09E5FRjx0ELN6RgusIPsSPhtgexSRcKETybEs6IGOTXJSZqfwxp7r//55nnu0f1AxltY5VvdVqy2vZf9AA==", + "version": "7.1.2", + "resolved": "https://registry.npmjs.org/v8-to-istanbul/-/v8-to-istanbul-7.1.2.tgz", + "integrity": "sha512-TxNb7YEUwkLXCQYeudi6lgQ/SZrzNO4kMdlqVxaZPUIUjCv6iSSypUQX70kNBSERpQ8fk48+d61FXk+tgqcWow==", "dev": true, "dependencies": { "@types/istanbul-lib-coverage": "^2.0.1", @@ -17732,20 +17245,6 @@ "node": ">= 0.8" } }, - "node_modules/verror": { - "version": "1.10.0", - "resolved": "https://registry.npmjs.org/verror/-/verror-1.10.0.tgz", - "integrity": "sha1-OhBcoXBTr1XW4nDB+CiGguGNpAA=", - "dev": true, - "engines": [ - "node >=0.6.0" - ], - "dependencies": { - "assert-plus": "^1.0.0", - "core-util-is": "1.0.2", - "extsprintf": "^1.2.0" - } - }, "node_modules/w3c-hr-time": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/w3c-hr-time/-/w3c-hr-time-1.0.2.tgz", @@ -17808,9 +17307,9 @@ } }, "node_modules/webpack": { - "version": "5.38.1", - "resolved": "https://registry.npmjs.org/webpack/-/webpack-5.38.1.tgz", - "integrity": "sha512-OqRmYD1OJbHZph6RUMD93GcCZy4Z4wC0ele4FXyYF0J6AxO1vOSuIlU1hkS/lDlR9CDYBz64MZRmdbdnFFoT2g==", + "version": "5.39.0", + "resolved": "https://registry.npmjs.org/webpack/-/webpack-5.39.0.tgz", + "integrity": "sha512-25CHmuDj+oOTyteI13sUqNlCnjCnySuhiKWE/cRYPQYeoQ3ijHgyWX27CiyUKLNGq27v8S0mrksyTreT/xo7pg==", "dev": true, "dependencies": { "@types/eslint-scope": "^3.7.0", @@ -17854,15 +17353,15 @@ } }, "node_modules/webpack-cli": { - "version": "4.7.0", - "resolved": "https://registry.npmjs.org/webpack-cli/-/webpack-cli-4.7.0.tgz", - "integrity": "sha512-7bKr9182/sGfjFm+xdZSwgQuFjgEcy0iCTIBxRUeteJ2Kr8/Wz0qNJX+jw60LU36jApt4nmMkep6+W5AKhok6g==", + "version": "4.7.2", + "resolved": "https://registry.npmjs.org/webpack-cli/-/webpack-cli-4.7.2.tgz", + "integrity": "sha512-mEoLmnmOIZQNiRl0ebnjzQ74Hk0iKS5SiEEnpq3dRezoyR3yPaeQZCMCe+db4524pj1Pd5ghZXjT41KLzIhSLw==", "dev": true, "dependencies": { "@discoveryjs/json-ext": "^0.5.0", - "@webpack-cli/configtest": "^1.0.3", - "@webpack-cli/info": "^1.2.4", - "@webpack-cli/serve": "^1.4.0", + "@webpack-cli/configtest": "^1.0.4", + "@webpack-cli/info": "^1.3.0", + "@webpack-cli/serve": "^1.5.1", "colorette": "^1.2.1", "commander": "^7.0.0", "execa": "^5.0.0", @@ -18933,12 +18432,12 @@ }, "dependencies": { "@babel/cli": { - "version": "7.14.3", - "resolved": "https://registry.npmjs.org/@babel/cli/-/cli-7.14.3.tgz", - "integrity": "sha512-zU4JLvwk32ay1lhhyGfqiRUSPoltVDjhYkA3aQq8+Yby9z30s/EsFw1EPOHxWG9YZo2pAGfgdRNeHZQAYU5m9A==", + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/cli/-/cli-7.14.5.tgz", + "integrity": "sha512-poegjhRvXHWO0EAsnYajwYZuqcz7gyfxwfaecUESxDujrqOivf3zrjFbub8IJkrqEaz3fvJWh001EzxBub54fg==", "dev": true, "requires": { - "@nicolo-ribaudo/chokidar-2": "2.1.8-no-fsevents", + "@nicolo-ribaudo/chokidar-2": "2.1.8-no-fsevents.2", "chokidar": "^3.4.0", "commander": "^4.0.1", "convert-source-map": "^1.1.0", @@ -18950,35 +18449,35 @@ } }, "@babel/code-frame": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.12.13.tgz", - "integrity": "sha512-HV1Cm0Q3ZrpCR93tkWOYiuYIgLxZXZFVG2VgK+MBWjUqZTundupbfx2aXarXuw5Ko5aMcjtJgbSs4vUGBS5v6g==", + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.14.5.tgz", + "integrity": "sha512-9pzDqyc6OLDaqe+zbACgFkb6fKMNG6CObKpnYXChRsvYGyEdc7CA2BaqeOM+vOtCS5ndmJicPJhKAwYRI6UfFw==", "dev": true, "requires": { - "@babel/highlight": "^7.12.13" + "@babel/highlight": "^7.14.5" } }, "@babel/compat-data": { - "version": "7.14.4", - "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.14.4.tgz", - "integrity": "sha512-i2wXrWQNkH6JplJQGn3Rd2I4Pij8GdHkXwHMxm+zV5YG/Jci+bCNrWZEWC4o+umiDkRrRs4dVzH3X4GP7vyjQQ==", + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.14.5.tgz", + "integrity": "sha512-kixrYn4JwfAVPa0f2yfzc2AWti6WRRyO3XjWW5PJAvtE11qhSayrrcrEnee05KAtNaPC+EwehE8Qt1UedEVB8w==", "dev": true }, "@babel/core": { - "version": "7.14.3", - "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.14.3.tgz", - "integrity": "sha512-jB5AmTKOCSJIZ72sd78ECEhuPiDMKlQdDI/4QRI6lzYATx5SSogS1oQA2AoPecRCknm30gHi2l+QVvNUu3wZAg==", - "dev": true, - "requires": { - "@babel/code-frame": "^7.12.13", - "@babel/generator": "^7.14.3", - "@babel/helper-compilation-targets": "^7.13.16", - "@babel/helper-module-transforms": "^7.14.2", - "@babel/helpers": "^7.14.0", - "@babel/parser": "^7.14.3", - "@babel/template": "^7.12.13", - "@babel/traverse": "^7.14.2", - "@babel/types": "^7.14.2", + "version": "7.14.6", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.14.6.tgz", + "integrity": "sha512-gJnOEWSqTk96qG5BoIrl5bVtc23DCycmIePPYnamY9RboYdI4nFy5vAQMSl81O5K/W0sLDWfGysnOECC+KUUCA==", + "dev": true, + "requires": { + "@babel/code-frame": "^7.14.5", + "@babel/generator": "^7.14.5", + "@babel/helper-compilation-targets": "^7.14.5", + "@babel/helper-module-transforms": "^7.14.5", + "@babel/helpers": "^7.14.6", + "@babel/parser": "^7.14.6", + "@babel/template": "^7.14.5", + "@babel/traverse": "^7.14.5", + "@babel/types": "^7.14.5", "convert-source-map": "^1.7.0", "debug": "^4.1.0", "gensync": "^1.0.0-beta.2", @@ -18988,75 +18487,75 @@ } }, "@babel/generator": { - "version": "7.14.3", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.14.3.tgz", - "integrity": "sha512-bn0S6flG/j0xtQdz3hsjJ624h3W0r3llttBMfyHX3YrZ/KtLYr15bjA0FXkgW7FpvrDuTuElXeVjiKlYRpnOFA==", + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.14.5.tgz", + "integrity": "sha512-y3rlP+/G25OIX3mYKKIOlQRcqj7YgrvHxOLbVmyLJ9bPmi5ttvUmpydVjcFjZphOktWuA7ovbx91ECloWTfjIA==", "dev": true, "requires": { - "@babel/types": "^7.14.2", + "@babel/types": "^7.14.5", "jsesc": "^2.5.1", "source-map": "^0.5.0" } }, "@babel/helper-annotate-as-pure": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.12.13.tgz", - "integrity": "sha512-7YXfX5wQ5aYM/BOlbSccHDbuXXFPxeoUmfWtz8le2yTkTZc+BxsiEnENFoi2SlmA8ewDkG2LgIMIVzzn2h8kfw==", + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.14.5.tgz", + "integrity": "sha512-EivH9EgBIb+G8ij1B2jAwSH36WnGvkQSEC6CkX/6v6ZFlw5fVOHvsgGF4uiEHO2GzMvunZb6tDLQEQSdrdocrA==", "dev": true, "requires": { - "@babel/types": "^7.12.13" + "@babel/types": "^7.14.5" } }, "@babel/helper-builder-binary-assignment-operator-visitor": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.12.13.tgz", - "integrity": "sha512-CZOv9tGphhDRlVjVkAgm8Nhklm9RzSmWpX2my+t7Ua/KT616pEzXsQCjinzvkRvHWJ9itO4f296efroX23XCMA==", + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.14.5.tgz", + "integrity": "sha512-YTA/Twn0vBXDVGJuAX6PwW7x5zQei1luDDo2Pl6q1qZ7hVNl0RZrhHCQG/ArGpR29Vl7ETiB8eJyrvpuRp300w==", "dev": true, "requires": { - "@babel/helper-explode-assignable-expression": "^7.12.13", - "@babel/types": "^7.12.13" + "@babel/helper-explode-assignable-expression": "^7.14.5", + "@babel/types": "^7.14.5" } }, "@babel/helper-compilation-targets": { - "version": "7.14.4", - "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.14.4.tgz", - "integrity": "sha512-JgdzOYZ/qGaKTVkn5qEDV/SXAh8KcyUVkCoSWGN8T3bwrgd6m+/dJa2kVGi6RJYJgEYPBdZ84BZp9dUjNWkBaA==", + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.14.5.tgz", + "integrity": "sha512-v+QtZqXEiOnpO6EYvlImB6zCD2Lel06RzOPzmkz/D/XgQiUu3C/Jb1LOqSt/AIA34TYi/Q+KlT8vTQrgdxkbLw==", "dev": true, "requires": { - "@babel/compat-data": "^7.14.4", - "@babel/helper-validator-option": "^7.12.17", + "@babel/compat-data": "^7.14.5", + "@babel/helper-validator-option": "^7.14.5", "browserslist": "^4.16.6", "semver": "^6.3.0" } }, "@babel/helper-create-class-features-plugin": { - "version": "7.14.4", - "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.14.4.tgz", - "integrity": "sha512-idr3pthFlDCpV+p/rMgGLGYIVtazeatrSOQk8YzO2pAepIjQhCN3myeihVg58ax2bbbGK9PUE1reFi7axOYIOw==", + "version": "7.14.6", + "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.14.6.tgz", + "integrity": "sha512-Z6gsfGofTxH/+LQXqYEK45kxmcensbzmk/oi8DmaQytlQCgqNZt9XQF8iqlI/SeXWVjaMNxvYvzaYw+kh42mDg==", "dev": true, "requires": { - "@babel/helper-annotate-as-pure": "^7.12.13", - "@babel/helper-function-name": "^7.14.2", - "@babel/helper-member-expression-to-functions": "^7.13.12", - "@babel/helper-optimise-call-expression": "^7.12.13", - "@babel/helper-replace-supers": "^7.14.4", - "@babel/helper-split-export-declaration": "^7.12.13" + "@babel/helper-annotate-as-pure": "^7.14.5", + "@babel/helper-function-name": "^7.14.5", + "@babel/helper-member-expression-to-functions": "^7.14.5", + "@babel/helper-optimise-call-expression": "^7.14.5", + "@babel/helper-replace-supers": "^7.14.5", + "@babel/helper-split-export-declaration": "^7.14.5" } }, "@babel/helper-create-regexp-features-plugin": { - "version": "7.12.17", - "resolved": "https://registry.npmjs.org/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.12.17.tgz", - "integrity": "sha512-p2VGmBu9oefLZ2nQpgnEnG0ZlRPvL8gAGvPUMQwUdaE8k49rOMuZpOwdQoy5qJf6K8jL3bcAMhVUlHAjIgJHUg==", + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.14.5.tgz", + "integrity": "sha512-TLawwqpOErY2HhWbGJ2nZT5wSkR192QpN+nBg1THfBfftrlvOh+WbhrxXCH4q4xJ9Gl16BGPR/48JA+Ryiho/A==", "dev": true, "requires": { - "@babel/helper-annotate-as-pure": "^7.12.13", + "@babel/helper-annotate-as-pure": "^7.14.5", "regexpu-core": "^4.7.1" } }, "@babel/helper-define-polyfill-provider": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.2.0.tgz", - "integrity": "sha512-JT8tHuFjKBo8NnaUbblz7mIu1nnvUDiHVjXXkulZULyidvo/7P6TY7+YqpV37IfF+KUFxmlK04elKtGKXaiVgw==", + "version": "0.2.3", + "resolved": "https://registry.npmjs.org/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.2.3.tgz", + "integrity": "sha512-RH3QDAfRMzj7+0Nqu5oqgO5q9mFtQEVvCRsi8qCEfzLR9p2BHfn5FzhSB2oj1fF7I2+DcTORkYaQ6aTR9Cofew==", "dev": true, "requires": { "@babel/helper-compilation-targets": "^7.13.0", @@ -19070,362 +18569,361 @@ } }, "@babel/helper-explode-assignable-expression": { - "version": "7.13.0", - "resolved": "https://registry.npmjs.org/@babel/helper-explode-assignable-expression/-/helper-explode-assignable-expression-7.13.0.tgz", - "integrity": "sha512-qS0peLTDP8kOisG1blKbaoBg/o9OSa1qoumMjTK5pM+KDTtpxpsiubnCGP34vK8BXGcb2M9eigwgvoJryrzwWA==", + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/helper-explode-assignable-expression/-/helper-explode-assignable-expression-7.14.5.tgz", + "integrity": "sha512-Htb24gnGJdIGT4vnRKMdoXiOIlqOLmdiUYpAQ0mYfgVT/GDm8GOYhgi4GL+hMKrkiPRohO4ts34ELFsGAPQLDQ==", "dev": true, "requires": { - "@babel/types": "^7.13.0" + "@babel/types": "^7.14.5" } }, "@babel/helper-function-name": { - "version": "7.14.2", - "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.14.2.tgz", - "integrity": "sha512-NYZlkZRydxw+YT56IlhIcS8PAhb+FEUiOzuhFTfqDyPmzAhRge6ua0dQYT/Uh0t/EDHq05/i+e5M2d4XvjgarQ==", + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.14.5.tgz", + "integrity": "sha512-Gjna0AsXWfFvrAuX+VKcN/aNNWonizBj39yGwUzVDVTlMYJMK2Wp6xdpy72mfArFq5uK+NOuexfzZlzI1z9+AQ==", "dev": true, "requires": { - "@babel/helper-get-function-arity": "^7.12.13", - "@babel/template": "^7.12.13", - "@babel/types": "^7.14.2" + "@babel/helper-get-function-arity": "^7.14.5", + "@babel/template": "^7.14.5", + "@babel/types": "^7.14.5" } }, "@babel/helper-get-function-arity": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.12.13.tgz", - "integrity": "sha512-DjEVzQNz5LICkzN0REdpD5prGoidvbdYk1BVgRUOINaWJP2t6avB27X1guXK1kXNrX0WMfsrm1A/ZBthYuIMQg==", + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.14.5.tgz", + "integrity": "sha512-I1Db4Shst5lewOM4V+ZKJzQ0JGGaZ6VY1jYvMghRjqs6DWgxLCIyFt30GlnKkfUeFLpJt2vzbMVEXVSXlIFYUg==", "dev": true, "requires": { - "@babel/types": "^7.12.13" + "@babel/types": "^7.14.5" } }, "@babel/helper-hoist-variables": { - "version": "7.13.16", - "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.13.16.tgz", - "integrity": "sha512-1eMtTrXtrwscjcAeO4BVK+vvkxaLJSPFz1w1KLawz6HLNi9bPFGBNwwDyVfiu1Tv/vRRFYfoGaKhmAQPGPn5Wg==", + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.14.5.tgz", + "integrity": "sha512-R1PXiz31Uc0Vxy4OEOm07x0oSjKAdPPCh3tPivn/Eo8cvz6gveAeuyUUPB21Hoiif0uoPQSSdhIPS3352nvdyQ==", "dev": true, "requires": { - "@babel/traverse": "^7.13.15", - "@babel/types": "^7.13.16" + "@babel/types": "^7.14.5" } }, "@babel/helper-member-expression-to-functions": { - "version": "7.13.12", - "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.13.12.tgz", - "integrity": "sha512-48ql1CLL59aKbU94Y88Xgb2VFy7a95ykGRbJJaaVv+LX5U8wFpLfiGXJJGUozsmA1oEh/o5Bp60Voq7ACyA/Sw==", + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.14.5.tgz", + "integrity": "sha512-UxUeEYPrqH1Q/k0yRku1JE7dyfyehNwT6SVkMHvYvPDv4+uu627VXBckVj891BO8ruKBkiDoGnZf4qPDD8abDQ==", "dev": true, "requires": { - "@babel/types": "^7.13.12" + "@babel/types": "^7.14.5" } }, "@babel/helper-module-imports": { - "version": "7.13.12", - "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.13.12.tgz", - "integrity": "sha512-4cVvR2/1B693IuOvSI20xqqa/+bl7lqAMR59R4iu39R9aOX8/JoYY1sFaNvUMyMBGnHdwvJgUrzNLoUZxXypxA==", + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.14.5.tgz", + "integrity": "sha512-SwrNHu5QWS84XlHwGYPDtCxcA0hrSlL2yhWYLgeOc0w7ccOl2qv4s/nARI0aYZW+bSwAL5CukeXA47B/1NKcnQ==", "dev": true, "requires": { - "@babel/types": "^7.13.12" + "@babel/types": "^7.14.5" } }, "@babel/helper-module-transforms": { - "version": "7.14.2", - "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.14.2.tgz", - "integrity": "sha512-OznJUda/soKXv0XhpvzGWDnml4Qnwp16GN+D/kZIdLsWoHj05kyu8Rm5kXmMef+rVJZ0+4pSGLkeixdqNUATDA==", + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.14.5.tgz", + "integrity": "sha512-iXpX4KW8LVODuAieD7MzhNjmM6dzYY5tfRqT+R9HDXWl0jPn/djKmA+G9s/2C2T9zggw5tK1QNqZ70USfedOwA==", "dev": true, "requires": { - "@babel/helper-module-imports": "^7.13.12", - "@babel/helper-replace-supers": "^7.13.12", - "@babel/helper-simple-access": "^7.13.12", - "@babel/helper-split-export-declaration": "^7.12.13", - "@babel/helper-validator-identifier": "^7.14.0", - "@babel/template": "^7.12.13", - "@babel/traverse": "^7.14.2", - "@babel/types": "^7.14.2" + "@babel/helper-module-imports": "^7.14.5", + "@babel/helper-replace-supers": "^7.14.5", + "@babel/helper-simple-access": "^7.14.5", + "@babel/helper-split-export-declaration": "^7.14.5", + "@babel/helper-validator-identifier": "^7.14.5", + "@babel/template": "^7.14.5", + "@babel/traverse": "^7.14.5", + "@babel/types": "^7.14.5" } }, "@babel/helper-optimise-call-expression": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.12.13.tgz", - "integrity": "sha512-BdWQhoVJkp6nVjB7nkFWcn43dkprYauqtk++Py2eaf/GRDFm5BxRqEIZCiHlZUGAVmtwKcsVL1dC68WmzeFmiA==", + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.14.5.tgz", + "integrity": "sha512-IqiLIrODUOdnPU9/F8ib1Fx2ohlgDhxnIDU7OEVi+kAbEZcyiF7BLU8W6PfvPi9LzztjS7kcbzbmL7oG8kD6VA==", "dev": true, "requires": { - "@babel/types": "^7.12.13" + "@babel/types": "^7.14.5" } }, "@babel/helper-plugin-utils": { - "version": "7.13.0", - "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.13.0.tgz", - "integrity": "sha512-ZPafIPSwzUlAoWT8DKs1W2VyF2gOWthGd5NGFMsBcMMol+ZhK+EQY/e6V96poa6PA/Bh+C9plWN0hXO1uB8AfQ==", + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.14.5.tgz", + "integrity": "sha512-/37qQCE3K0vvZKwoK4XU/irIJQdIfCJuhU5eKnNxpFDsOkgFaUAwbv+RYw6eYgsC0E4hS7r5KqGULUogqui0fQ==", "dev": true }, "@babel/helper-remap-async-to-generator": { - "version": "7.13.0", - "resolved": "https://registry.npmjs.org/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.13.0.tgz", - "integrity": "sha512-pUQpFBE9JvC9lrQbpX0TmeNIy5s7GnZjna2lhhcHC7DzgBs6fWn722Y5cfwgrtrqc7NAJwMvOa0mKhq6XaE4jg==", + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.14.5.tgz", + "integrity": "sha512-rLQKdQU+HYlxBwQIj8dk4/0ENOUEhA/Z0l4hN8BexpvmSMN9oA9EagjnhnDpNsRdWCfjwa4mn/HyBXO9yhQP6A==", "dev": true, "requires": { - "@babel/helper-annotate-as-pure": "^7.12.13", - "@babel/helper-wrap-function": "^7.13.0", - "@babel/types": "^7.13.0" + "@babel/helper-annotate-as-pure": "^7.14.5", + "@babel/helper-wrap-function": "^7.14.5", + "@babel/types": "^7.14.5" } }, "@babel/helper-replace-supers": { - "version": "7.14.4", - "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.14.4.tgz", - "integrity": "sha512-zZ7uHCWlxfEAAOVDYQpEf/uyi1dmeC7fX4nCf2iz9drnCwi1zvwXL3HwWWNXUQEJ1k23yVn3VbddiI9iJEXaTQ==", + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.14.5.tgz", + "integrity": "sha512-3i1Qe9/8x/hCHINujn+iuHy+mMRLoc77b2nI9TB0zjH1hvn9qGlXjWlggdwUcju36PkPCy/lpM7LLUdcTyH4Ow==", "dev": true, "requires": { - "@babel/helper-member-expression-to-functions": "^7.13.12", - "@babel/helper-optimise-call-expression": "^7.12.13", - "@babel/traverse": "^7.14.2", - "@babel/types": "^7.14.4" + "@babel/helper-member-expression-to-functions": "^7.14.5", + "@babel/helper-optimise-call-expression": "^7.14.5", + "@babel/traverse": "^7.14.5", + "@babel/types": "^7.14.5" } }, "@babel/helper-simple-access": { - "version": "7.13.12", - "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.13.12.tgz", - "integrity": "sha512-7FEjbrx5SL9cWvXioDbnlYTppcZGuCY6ow3/D5vMggb2Ywgu4dMrpTJX0JdQAIcRRUElOIxF3yEooa9gUb9ZbA==", + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.14.5.tgz", + "integrity": "sha512-nfBN9xvmCt6nrMZjfhkl7i0oTV3yxR4/FztsbOASyTvVcoYd0TRHh7eMLdlEcCqobydC0LAF3LtC92Iwxo0wyw==", "dev": true, "requires": { - "@babel/types": "^7.13.12" + "@babel/types": "^7.14.5" } }, "@babel/helper-skip-transparent-expression-wrappers": { - "version": "7.12.1", - "resolved": "https://registry.npmjs.org/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.12.1.tgz", - "integrity": "sha512-Mf5AUuhG1/OCChOJ/HcADmvcHM42WJockombn8ATJG3OnyiSxBK/Mm5x78BQWvmtXZKHgbjdGL2kin/HOLlZGA==", + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.14.5.tgz", + "integrity": "sha512-dmqZB7mrb94PZSAOYtr+ZN5qt5owZIAgqtoTuqiFbHFtxgEcmQlRJVI+bO++fciBunXtB6MK7HrzrfcAzIz2NQ==", "dev": true, "requires": { - "@babel/types": "^7.12.1" + "@babel/types": "^7.14.5" } }, "@babel/helper-split-export-declaration": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.12.13.tgz", - "integrity": "sha512-tCJDltF83htUtXx5NLcaDqRmknv652ZWCHyoTETf1CXYJdPC7nohZohjUgieXhv0hTJdRf2FjDueFehdNucpzg==", + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.14.5.tgz", + "integrity": "sha512-hprxVPu6e5Kdp2puZUmvOGjaLv9TCe58E/Fl6hRq4YiVQxIcNvuq6uTM2r1mT/oPskuS9CgR+I94sqAYv0NGKA==", "dev": true, "requires": { - "@babel/types": "^7.12.13" + "@babel/types": "^7.14.5" } }, "@babel/helper-validator-identifier": { - "version": "7.14.0", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.14.0.tgz", - "integrity": "sha512-V3ts7zMSu5lfiwWDVWzRDGIN+lnCEUdaXgtVHJgLb1rGaA6jMrtB9EmE7L18foXJIE8Un/A/h6NJfGQp/e1J4A==", + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.14.5.tgz", + "integrity": "sha512-5lsetuxCLilmVGyiLEfoHBRX8UCFD+1m2x3Rj97WrW3V7H3u4RWRXA4evMjImCsin2J2YT0QaVDGf+z8ondbAg==", "dev": true }, "@babel/helper-validator-option": { - "version": "7.12.17", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.12.17.tgz", - "integrity": "sha512-TopkMDmLzq8ngChwRlyjR6raKD6gMSae4JdYDB8bByKreQgG0RBTuKe9LRxW3wFtUnjxOPRKBDwEH6Mg5KeDfw==", + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.14.5.tgz", + "integrity": "sha512-OX8D5eeX4XwcroVW45NMvoYaIuFI+GQpA2a8Gi+X/U/cDUIRsV37qQfF905F0htTRCREQIB4KqPeaveRJUl3Ow==", "dev": true }, "@babel/helper-wrap-function": { - "version": "7.13.0", - "resolved": "https://registry.npmjs.org/@babel/helper-wrap-function/-/helper-wrap-function-7.13.0.tgz", - "integrity": "sha512-1UX9F7K3BS42fI6qd2A4BjKzgGjToscyZTdp1DjknHLCIvpgne6918io+aL5LXFcER/8QWiwpoY902pVEqgTXA==", + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/helper-wrap-function/-/helper-wrap-function-7.14.5.tgz", + "integrity": "sha512-YEdjTCq+LNuNS1WfxsDCNpgXkJaIyqco6DAelTUjT4f2KIWC1nBcaCaSdHTBqQVLnTBexBcVcFhLSU1KnYuePQ==", "dev": true, "requires": { - "@babel/helper-function-name": "^7.12.13", - "@babel/template": "^7.12.13", - "@babel/traverse": "^7.13.0", - "@babel/types": "^7.13.0" + "@babel/helper-function-name": "^7.14.5", + "@babel/template": "^7.14.5", + "@babel/traverse": "^7.14.5", + "@babel/types": "^7.14.5" } }, "@babel/helpers": { - "version": "7.14.0", - "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.14.0.tgz", - "integrity": "sha512-+ufuXprtQ1D1iZTO/K9+EBRn+qPWMJjZSw/S0KlFrxCw4tkrzv9grgpDHkY9MeQTjTY8i2sp7Jep8DfU6tN9Mg==", + "version": "7.14.6", + "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.14.6.tgz", + "integrity": "sha512-yesp1ENQBiLI+iYHSJdoZKUtRpfTlL1grDIX9NRlAVppljLw/4tTyYupIB7uIYmC3stW/imAv8EqaKaS/ibmeA==", "dev": true, "requires": { - "@babel/template": "^7.12.13", - "@babel/traverse": "^7.14.0", - "@babel/types": "^7.14.0" + "@babel/template": "^7.14.5", + "@babel/traverse": "^7.14.5", + "@babel/types": "^7.14.5" } }, "@babel/highlight": { - "version": "7.13.10", - "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.13.10.tgz", - "integrity": "sha512-5aPpe5XQPzflQrFwL1/QoeHkP2MsA4JCntcXHRhEsdsfPVkvPi2w7Qix4iV7t5S/oC9OodGrggd8aco1g3SZFg==", + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.14.5.tgz", + "integrity": "sha512-qf9u2WFWVV0MppaL877j2dBtQIDgmidgjGk5VIMw3OadXvYaXn66U1BFlH2t4+t3i+8PhedppRv+i40ABzd+gg==", "dev": true, "requires": { - "@babel/helper-validator-identifier": "^7.12.11", + "@babel/helper-validator-identifier": "^7.14.5", "chalk": "^2.0.0", "js-tokens": "^4.0.0" } }, "@babel/parser": { - "version": "7.14.4", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.14.4.tgz", - "integrity": "sha512-ArliyUsWDUqEGfWcmzpGUzNfLxTdTp6WU4IuP6QFSp9gGfWS6boxFCkJSJ/L4+RG8z/FnIU3WxCk6hPL9SSWeA==", + "version": "7.14.6", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.14.6.tgz", + "integrity": "sha512-oG0ej7efjEXxb4UgE+klVx+3j4MVo+A2vCzm7OUN4CLo6WhQ+vSOD2yJ8m7B+DghObxtLxt3EfgMWpq+AsWehQ==", "dev": true }, "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": { - "version": "7.13.12", - "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/-/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.13.12.tgz", - "integrity": "sha512-d0u3zWKcoZf379fOeJdr1a5WPDny4aOFZ6hlfKivgK0LY7ZxNfoaHL2fWwdGtHyVvra38FC+HVYkO+byfSA8AQ==", + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/-/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.14.5.tgz", + "integrity": "sha512-ZoJS2XCKPBfTmL122iP6NM9dOg+d4lc9fFk3zxc8iDjvt8Pk4+TlsHSKhIPf6X+L5ORCdBzqMZDjL/WHj7WknQ==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.13.0", - "@babel/helper-skip-transparent-expression-wrappers": "^7.12.1", - "@babel/plugin-proposal-optional-chaining": "^7.13.12" + "@babel/helper-plugin-utils": "^7.14.5", + "@babel/helper-skip-transparent-expression-wrappers": "^7.14.5", + "@babel/plugin-proposal-optional-chaining": "^7.14.5" } }, "@babel/plugin-proposal-async-generator-functions": { - "version": "7.14.2", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.14.2.tgz", - "integrity": "sha512-b1AM4F6fwck4N8ItZ/AtC4FP/cqZqmKRQ4FaTDutwSYyjuhtvsGEMLK4N/ztV/ImP40BjIDyMgBQAeAMsQYVFQ==", + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.14.5.tgz", + "integrity": "sha512-tbD/CG3l43FIXxmu4a7RBe4zH7MLJ+S/lFowPFO7HetS2hyOZ/0nnnznegDuzFzfkyQYTxqdTH/hKmuBngaDAA==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.13.0", - "@babel/helper-remap-async-to-generator": "^7.13.0", + "@babel/helper-plugin-utils": "^7.14.5", + "@babel/helper-remap-async-to-generator": "^7.14.5", "@babel/plugin-syntax-async-generators": "^7.8.4" } }, "@babel/plugin-proposal-class-properties": { - "version": "7.13.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-class-properties/-/plugin-proposal-class-properties-7.13.0.tgz", - "integrity": "sha512-KnTDjFNC1g+45ka0myZNvSBFLhNCLN+GeGYLDEA8Oq7MZ6yMgfLoIRh86GRT0FjtJhZw8JyUskP9uvj5pHM9Zg==", + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-class-properties/-/plugin-proposal-class-properties-7.14.5.tgz", + "integrity": "sha512-q/PLpv5Ko4dVc1LYMpCY7RVAAO4uk55qPwrIuJ5QJ8c6cVuAmhu7I/49JOppXL6gXf7ZHzpRVEUZdYoPLM04Gg==", "dev": true, "requires": { - "@babel/helper-create-class-features-plugin": "^7.13.0", - "@babel/helper-plugin-utils": "^7.13.0" + "@babel/helper-create-class-features-plugin": "^7.14.5", + "@babel/helper-plugin-utils": "^7.14.5" } }, "@babel/plugin-proposal-class-static-block": { - "version": "7.14.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-class-static-block/-/plugin-proposal-class-static-block-7.14.3.tgz", - "integrity": "sha512-HEjzp5q+lWSjAgJtSluFDrGGosmwTgKwCXdDQZvhKsRlwv3YdkUEqxNrrjesJd+B9E9zvr1PVPVBvhYZ9msjvQ==", + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-class-static-block/-/plugin-proposal-class-static-block-7.14.5.tgz", + "integrity": "sha512-KBAH5ksEnYHCegqseI5N9skTdxgJdmDoAOc0uXa+4QMYKeZD0w5IARh4FMlTNtaHhbB8v+KzMdTgxMMzsIy6Yg==", "dev": true, "requires": { - "@babel/helper-create-class-features-plugin": "^7.14.3", - "@babel/helper-plugin-utils": "^7.13.0", - "@babel/plugin-syntax-class-static-block": "^7.12.13" + "@babel/helper-create-class-features-plugin": "^7.14.5", + "@babel/helper-plugin-utils": "^7.14.5", + "@babel/plugin-syntax-class-static-block": "^7.14.5" } }, "@babel/plugin-proposal-dynamic-import": { - "version": "7.14.2", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-dynamic-import/-/plugin-proposal-dynamic-import-7.14.2.tgz", - "integrity": "sha512-oxVQZIWFh91vuNEMKltqNsKLFWkOIyJc95k2Gv9lWVyDfPUQGSSlbDEgWuJUU1afGE9WwlzpucMZ3yDRHIItkA==", + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-dynamic-import/-/plugin-proposal-dynamic-import-7.14.5.tgz", + "integrity": "sha512-ExjiNYc3HDN5PXJx+bwC50GIx/KKanX2HiggnIUAYedbARdImiCU4RhhHfdf0Kd7JNXGpsBBBCOm+bBVy3Gb0g==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.13.0", + "@babel/helper-plugin-utils": "^7.14.5", "@babel/plugin-syntax-dynamic-import": "^7.8.3" } }, "@babel/plugin-proposal-export-namespace-from": { - "version": "7.14.2", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-export-namespace-from/-/plugin-proposal-export-namespace-from-7.14.2.tgz", - "integrity": "sha512-sRxW3z3Zp3pFfLAgVEvzTFutTXax837oOatUIvSG9o5gRj9mKwm3br1Se5f4QalTQs9x4AzlA/HrCWbQIHASUQ==", + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-export-namespace-from/-/plugin-proposal-export-namespace-from-7.14.5.tgz", + "integrity": "sha512-g5POA32bXPMmSBu5Dx/iZGLGnKmKPc5AiY7qfZgurzrCYgIztDlHFbznSNCoQuv57YQLnQfaDi7dxCtLDIdXdA==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.13.0", + "@babel/helper-plugin-utils": "^7.14.5", "@babel/plugin-syntax-export-namespace-from": "^7.8.3" } }, "@babel/plugin-proposal-json-strings": { - "version": "7.14.2", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-json-strings/-/plugin-proposal-json-strings-7.14.2.tgz", - "integrity": "sha512-w2DtsfXBBJddJacXMBhElGEYqCZQqN99Se1qeYn8DVLB33owlrlLftIbMzn5nz1OITfDVknXF433tBrLEAOEjA==", + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-json-strings/-/plugin-proposal-json-strings-7.14.5.tgz", + "integrity": "sha512-NSq2fczJYKVRIsUJyNxrVUMhB27zb7N7pOFGQOhBKJrChbGcgEAqyZrmZswkPk18VMurEeJAaICbfm57vUeTbQ==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.13.0", + "@babel/helper-plugin-utils": "^7.14.5", "@babel/plugin-syntax-json-strings": "^7.8.3" } }, "@babel/plugin-proposal-logical-assignment-operators": { - "version": "7.14.2", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-logical-assignment-operators/-/plugin-proposal-logical-assignment-operators-7.14.2.tgz", - "integrity": "sha512-1JAZtUrqYyGsS7IDmFeaem+/LJqujfLZ2weLR9ugB0ufUPjzf8cguyVT1g5im7f7RXxuLq1xUxEzvm68uYRtGg==", + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-logical-assignment-operators/-/plugin-proposal-logical-assignment-operators-7.14.5.tgz", + "integrity": "sha512-YGn2AvZAo9TwyhlLvCCWxD90Xq8xJ4aSgaX3G5D/8DW94L8aaT+dS5cSP+Z06+rCJERGSr9GxMBZ601xoc2taw==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.13.0", + "@babel/helper-plugin-utils": "^7.14.5", "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4" } }, "@babel/plugin-proposal-nullish-coalescing-operator": { - "version": "7.14.2", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-nullish-coalescing-operator/-/plugin-proposal-nullish-coalescing-operator-7.14.2.tgz", - "integrity": "sha512-ebR0zU9OvI2N4qiAC38KIAK75KItpIPTpAtd2r4OZmMFeKbKJpUFLYP2EuDut82+BmYi8sz42B+TfTptJ9iG5Q==", + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-nullish-coalescing-operator/-/plugin-proposal-nullish-coalescing-operator-7.14.5.tgz", + "integrity": "sha512-gun/SOnMqjSb98Nkaq2rTKMwervfdAoz6NphdY0vTfuzMfryj+tDGb2n6UkDKwez+Y8PZDhE3D143v6Gepp4Hg==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.13.0", + "@babel/helper-plugin-utils": "^7.14.5", "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3" } }, "@babel/plugin-proposal-numeric-separator": { - "version": "7.14.2", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-numeric-separator/-/plugin-proposal-numeric-separator-7.14.2.tgz", - "integrity": "sha512-DcTQY9syxu9BpU3Uo94fjCB3LN9/hgPS8oUL7KrSW3bA2ePrKZZPJcc5y0hoJAM9dft3pGfErtEUvxXQcfLxUg==", + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-numeric-separator/-/plugin-proposal-numeric-separator-7.14.5.tgz", + "integrity": "sha512-yiclALKe0vyZRZE0pS6RXgjUOt87GWv6FYa5zqj15PvhOGFO69R5DusPlgK/1K5dVnCtegTiWu9UaBSrLLJJBg==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.13.0", + "@babel/helper-plugin-utils": "^7.14.5", "@babel/plugin-syntax-numeric-separator": "^7.10.4" } }, "@babel/plugin-proposal-object-rest-spread": { - "version": "7.14.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.14.4.tgz", - "integrity": "sha512-AYosOWBlyyXEagrPRfLJ1enStufsr7D1+ddpj8OLi9k7B6+NdZ0t/9V7Fh+wJ4g2Jol8z2JkgczYqtWrZd4vbA==", + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.14.5.tgz", + "integrity": "sha512-VzMyY6PWNPPT3pxc5hi9LloKNr4SSrVCg7Yr6aZpW4Ym07r7KqSU/QXYwjXLVxqwSv0t/XSXkFoKBPUkZ8vb2A==", "dev": true, "requires": { - "@babel/compat-data": "^7.14.4", - "@babel/helper-compilation-targets": "^7.14.4", - "@babel/helper-plugin-utils": "^7.13.0", + "@babel/compat-data": "^7.14.5", + "@babel/helper-compilation-targets": "^7.14.5", + "@babel/helper-plugin-utils": "^7.14.5", "@babel/plugin-syntax-object-rest-spread": "^7.8.3", - "@babel/plugin-transform-parameters": "^7.14.2" + "@babel/plugin-transform-parameters": "^7.14.5" } }, "@babel/plugin-proposal-optional-catch-binding": { - "version": "7.14.2", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-optional-catch-binding/-/plugin-proposal-optional-catch-binding-7.14.2.tgz", - "integrity": "sha512-XtkJsmJtBaUbOxZsNk0Fvrv8eiqgneug0A6aqLFZ4TSkar2L5dSXWcnUKHgmjJt49pyB/6ZHvkr3dPgl9MOWRQ==", + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-optional-catch-binding/-/plugin-proposal-optional-catch-binding-7.14.5.tgz", + "integrity": "sha512-3Oyiixm0ur7bzO5ybNcZFlmVsygSIQgdOa7cTfOYCMY+wEPAYhZAJxi3mixKFCTCKUhQXuCTtQ1MzrpL3WT8ZQ==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.13.0", + "@babel/helper-plugin-utils": "^7.14.5", "@babel/plugin-syntax-optional-catch-binding": "^7.8.3" } }, "@babel/plugin-proposal-optional-chaining": { - "version": "7.14.2", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-optional-chaining/-/plugin-proposal-optional-chaining-7.14.2.tgz", - "integrity": "sha512-qQByMRPwMZJainfig10BoaDldx/+VDtNcrA7qdNaEOAj6VXud+gfrkA8j4CRAU5HjnWREXqIpSpH30qZX1xivA==", + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-optional-chaining/-/plugin-proposal-optional-chaining-7.14.5.tgz", + "integrity": "sha512-ycz+VOzo2UbWNI1rQXxIuMOzrDdHGrI23fRiz/Si2R4kv2XZQ1BK8ccdHwehMKBlcH/joGW/tzrUmo67gbJHlQ==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.13.0", - "@babel/helper-skip-transparent-expression-wrappers": "^7.12.1", + "@babel/helper-plugin-utils": "^7.14.5", + "@babel/helper-skip-transparent-expression-wrappers": "^7.14.5", "@babel/plugin-syntax-optional-chaining": "^7.8.3" } }, "@babel/plugin-proposal-private-methods": { - "version": "7.13.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-private-methods/-/plugin-proposal-private-methods-7.13.0.tgz", - "integrity": "sha512-MXyyKQd9inhx1kDYPkFRVOBXQ20ES8Pto3T7UZ92xj2mY0EVD8oAVzeyYuVfy/mxAdTSIayOvg+aVzcHV2bn6Q==", + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-private-methods/-/plugin-proposal-private-methods-7.14.5.tgz", + "integrity": "sha512-838DkdUA1u+QTCplatfq4B7+1lnDa/+QMI89x5WZHBcnNv+47N8QEj2k9I2MUU9xIv8XJ4XvPCviM/Dj7Uwt9g==", "dev": true, "requires": { - "@babel/helper-create-class-features-plugin": "^7.13.0", - "@babel/helper-plugin-utils": "^7.13.0" + "@babel/helper-create-class-features-plugin": "^7.14.5", + "@babel/helper-plugin-utils": "^7.14.5" } }, "@babel/plugin-proposal-private-property-in-object": { - "version": "7.14.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-private-property-in-object/-/plugin-proposal-private-property-in-object-7.14.0.tgz", - "integrity": "sha512-59ANdmEwwRUkLjB7CRtwJxxwtjESw+X2IePItA+RGQh+oy5RmpCh/EvVVvh5XQc3yxsm5gtv0+i9oBZhaDNVTg==", + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-private-property-in-object/-/plugin-proposal-private-property-in-object-7.14.5.tgz", + "integrity": "sha512-62EyfyA3WA0mZiF2e2IV9mc9Ghwxcg8YTu8BS4Wss4Y3PY725OmS9M0qLORbJwLqFtGh+jiE4wAmocK2CTUK2Q==", "dev": true, "requires": { - "@babel/helper-annotate-as-pure": "^7.12.13", - "@babel/helper-create-class-features-plugin": "^7.14.0", - "@babel/helper-plugin-utils": "^7.13.0", - "@babel/plugin-syntax-private-property-in-object": "^7.14.0" + "@babel/helper-annotate-as-pure": "^7.14.5", + "@babel/helper-create-class-features-plugin": "^7.14.5", + "@babel/helper-plugin-utils": "^7.14.5", + "@babel/plugin-syntax-private-property-in-object": "^7.14.5" } }, "@babel/plugin-proposal-unicode-property-regex": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-unicode-property-regex/-/plugin-proposal-unicode-property-regex-7.12.13.tgz", - "integrity": "sha512-XyJmZidNfofEkqFV5VC/bLabGmO5QzenPO/YOfGuEbgU+2sSwMmio3YLb4WtBgcmmdwZHyVyv8on77IUjQ5Gvg==", + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-unicode-property-regex/-/plugin-proposal-unicode-property-regex-7.14.5.tgz", + "integrity": "sha512-6axIeOU5LnY471KenAB9vI8I5j7NQ2d652hIYwVyRfgaZT5UpiqFKCuVXCDMSrU+3VFafnu2c5m3lrWIlr6A5Q==", "dev": true, "requires": { - "@babel/helper-create-regexp-features-plugin": "^7.12.13", - "@babel/helper-plugin-utils": "^7.12.13" + "@babel/helper-create-regexp-features-plugin": "^7.14.5", + "@babel/helper-plugin-utils": "^7.14.5" } }, "@babel/plugin-syntax-async-generators": { @@ -19456,12 +18954,12 @@ } }, "@babel/plugin-syntax-class-static-block": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-class-static-block/-/plugin-syntax-class-static-block-7.12.13.tgz", - "integrity": "sha512-ZmKQ0ZXR0nYpHZIIuj9zE7oIqCx2hw9TKi+lIo73NNrMPAZGHfS92/VRV0ZmPj6H2ffBgyFHXvJ5NYsNeEaP2A==", + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-class-static-block/-/plugin-syntax-class-static-block-7.14.5.tgz", + "integrity": "sha512-b+YyPmr6ldyNnM6sqYeMWE+bgJcJpO6yS4QD7ymxgH34GBPNDM/THBh8iunyvKIZztiwLH4CJZ0RxTk9emgpjw==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.12.13" + "@babel/helper-plugin-utils": "^7.14.5" } }, "@babel/plugin-syntax-dynamic-import": { @@ -19555,364 +19053,373 @@ } }, "@babel/plugin-syntax-private-property-in-object": { - "version": "7.14.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-private-property-in-object/-/plugin-syntax-private-property-in-object-7.14.0.tgz", - "integrity": "sha512-bda3xF8wGl5/5btF794utNOL0Jw+9jE5C1sLZcoK7c4uonE/y3iQiyG+KbkF3WBV/paX58VCpjhxLPkdj5Fe4w==", + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-private-property-in-object/-/plugin-syntax-private-property-in-object-7.14.5.tgz", + "integrity": "sha512-0wVnp9dxJ72ZUJDV27ZfbSj6iHLoytYZmh3rFcxNnvsJF3ktkzLDZPy/mA17HGsaQT3/DQsWYX1f1QGWkCoVUg==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.13.0" + "@babel/helper-plugin-utils": "^7.14.5" } }, "@babel/plugin-syntax-top-level-await": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.12.13.tgz", - "integrity": "sha512-A81F9pDwyS7yM//KwbCSDqy3Uj4NMIurtplxphWxoYtNPov7cJsDkAFNNyVlIZ3jwGycVsurZ+LtOA8gZ376iQ==", + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.14.5.tgz", + "integrity": "sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.12.13" + "@babel/helper-plugin-utils": "^7.14.5" + } + }, + "@babel/plugin-syntax-typescript": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.14.5.tgz", + "integrity": "sha512-u6OXzDaIXjEstBRRoBCQ/uKQKlbuaeE5in0RvWdA4pN6AhqxTIwUsnHPU1CFZA/amYObMsuWhYfRl3Ch90HD0Q==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.14.5" } }, "@babel/plugin-transform-arrow-functions": { - "version": "7.13.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.13.0.tgz", - "integrity": "sha512-96lgJagobeVmazXFaDrbmCLQxBysKu7U6Do3mLsx27gf5Dk85ezysrs2BZUpXD703U/Su1xTBDxxar2oa4jAGg==", + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.14.5.tgz", + "integrity": "sha512-KOnO0l4+tD5IfOdi4x8C1XmEIRWUjNRV8wc6K2vz/3e8yAOoZZvsRXRRIF/yo/MAOFb4QjtAw9xSxMXbSMRy8A==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.13.0" + "@babel/helper-plugin-utils": "^7.14.5" } }, "@babel/plugin-transform-async-to-generator": { - "version": "7.13.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.13.0.tgz", - "integrity": "sha512-3j6E004Dx0K3eGmhxVJxwwI89CTJrce7lg3UrtFuDAVQ/2+SJ/h/aSFOeE6/n0WB1GsOffsJp6MnPQNQ8nmwhg==", + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.14.5.tgz", + "integrity": "sha512-szkbzQ0mNk0rpu76fzDdqSyPu0MuvpXgC+6rz5rpMb5OIRxdmHfQxrktL8CYolL2d8luMCZTR0DpIMIdL27IjA==", "dev": true, "requires": { - "@babel/helper-module-imports": "^7.12.13", - "@babel/helper-plugin-utils": "^7.13.0", - "@babel/helper-remap-async-to-generator": "^7.13.0" + "@babel/helper-module-imports": "^7.14.5", + "@babel/helper-plugin-utils": "^7.14.5", + "@babel/helper-remap-async-to-generator": "^7.14.5" } }, "@babel/plugin-transform-block-scoped-functions": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.12.13.tgz", - "integrity": "sha512-zNyFqbc3kI/fVpqwfqkg6RvBgFpC4J18aKKMmv7KdQ/1GgREapSJAykLMVNwfRGO3BtHj3YQZl8kxCXPcVMVeg==", + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.14.5.tgz", + "integrity": "sha512-dtqWqdWZ5NqBX3KzsVCWfQI3A53Ft5pWFCT2eCVUftWZgjc5DpDponbIF1+c+7cSGk2wN0YK7HGL/ezfRbpKBQ==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.12.13" + "@babel/helper-plugin-utils": "^7.14.5" } }, "@babel/plugin-transform-block-scoping": { - "version": "7.14.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.14.4.tgz", - "integrity": "sha512-5KdpkGxsZlTk+fPleDtGKsA+pon28+ptYmMO8GBSa5fHERCJWAzj50uAfCKBqq42HO+Zot6JF1x37CRprwmN4g==", + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.14.5.tgz", + "integrity": "sha512-LBYm4ZocNgoCqyxMLoOnwpsmQ18HWTQvql64t3GvMUzLQrNoV1BDG0lNftC8QKYERkZgCCT/7J5xWGObGAyHDw==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.13.0" + "@babel/helper-plugin-utils": "^7.14.5" } }, "@babel/plugin-transform-classes": { - "version": "7.14.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.14.4.tgz", - "integrity": "sha512-p73t31SIj6y94RDVX57rafVjttNr8MvKEgs5YFatNB/xC68zM3pyosuOEcQmYsYlyQaGY9R7rAULVRcat5FKJQ==", + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.14.5.tgz", + "integrity": "sha512-J4VxKAMykM06K/64z9rwiL6xnBHgB1+FVspqvlgCdwD1KUbQNfszeKVVOMh59w3sztHYIZDgnhOC4WbdEfHFDA==", "dev": true, "requires": { - "@babel/helper-annotate-as-pure": "^7.12.13", - "@babel/helper-function-name": "^7.14.2", - "@babel/helper-optimise-call-expression": "^7.12.13", - "@babel/helper-plugin-utils": "^7.13.0", - "@babel/helper-replace-supers": "^7.14.4", - "@babel/helper-split-export-declaration": "^7.12.13", + "@babel/helper-annotate-as-pure": "^7.14.5", + "@babel/helper-function-name": "^7.14.5", + "@babel/helper-optimise-call-expression": "^7.14.5", + "@babel/helper-plugin-utils": "^7.14.5", + "@babel/helper-replace-supers": "^7.14.5", + "@babel/helper-split-export-declaration": "^7.14.5", "globals": "^11.1.0" } }, "@babel/plugin-transform-computed-properties": { - "version": "7.13.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.13.0.tgz", - "integrity": "sha512-RRqTYTeZkZAz8WbieLTvKUEUxZlUTdmL5KGMyZj7FnMfLNKV4+r5549aORG/mgojRmFlQMJDUupwAMiF2Q7OUg==", + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.14.5.tgz", + "integrity": "sha512-pWM+E4283UxaVzLb8UBXv4EIxMovU4zxT1OPnpHJcmnvyY9QbPPTKZfEj31EUvG3/EQRbYAGaYEUZ4yWOBC2xg==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.13.0" + "@babel/helper-plugin-utils": "^7.14.5" } }, "@babel/plugin-transform-destructuring": { - "version": "7.14.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.14.4.tgz", - "integrity": "sha512-JyywKreTCGTUsL1OKu1A3ms/R1sTP0WxbpXlALeGzF53eB3bxtNkYdMj9SDgK7g6ImPy76J5oYYKoTtQImlhQA==", + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.14.5.tgz", + "integrity": "sha512-wU9tYisEbRMxqDezKUqC9GleLycCRoUsai9ddlsq54r8QRLaeEhc+d+9DqCG+kV9W2GgQjTZESPTpn5bAFMDww==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.13.0" + "@babel/helper-plugin-utils": "^7.14.5" } }, "@babel/plugin-transform-dotall-regex": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.12.13.tgz", - "integrity": "sha512-foDrozE65ZFdUC2OfgeOCrEPTxdB3yjqxpXh8CH+ipd9CHd4s/iq81kcUpyH8ACGNEPdFqbtzfgzbT/ZGlbDeQ==", + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.14.5.tgz", + "integrity": "sha512-loGlnBdj02MDsFaHhAIJzh7euK89lBrGIdM9EAtHFo6xKygCUGuuWe07o1oZVk287amtW1n0808sQM99aZt3gw==", "dev": true, "requires": { - "@babel/helper-create-regexp-features-plugin": "^7.12.13", - "@babel/helper-plugin-utils": "^7.12.13" + "@babel/helper-create-regexp-features-plugin": "^7.14.5", + "@babel/helper-plugin-utils": "^7.14.5" } }, "@babel/plugin-transform-duplicate-keys": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.12.13.tgz", - "integrity": "sha512-NfADJiiHdhLBW3pulJlJI2NB0t4cci4WTZ8FtdIuNc2+8pslXdPtRRAEWqUY+m9kNOk2eRYbTAOipAxlrOcwwQ==", + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.14.5.tgz", + "integrity": "sha512-iJjbI53huKbPDAsJ8EmVmvCKeeq21bAze4fu9GBQtSLqfvzj2oRuHVx4ZkDwEhg1htQ+5OBZh/Ab0XDf5iBZ7A==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.12.13" + "@babel/helper-plugin-utils": "^7.14.5" } }, "@babel/plugin-transform-exponentiation-operator": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.12.13.tgz", - "integrity": "sha512-fbUelkM1apvqez/yYx1/oICVnGo2KM5s63mhGylrmXUxK/IAXSIf87QIxVfZldWf4QsOafY6vV3bX8aMHSvNrA==", + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.14.5.tgz", + "integrity": "sha512-jFazJhMBc9D27o9jDnIE5ZErI0R0m7PbKXVq77FFvqFbzvTMuv8jaAwLZ5PviOLSFttqKIW0/wxNSDbjLk0tYA==", "dev": true, "requires": { - "@babel/helper-builder-binary-assignment-operator-visitor": "^7.12.13", - "@babel/helper-plugin-utils": "^7.12.13" + "@babel/helper-builder-binary-assignment-operator-visitor": "^7.14.5", + "@babel/helper-plugin-utils": "^7.14.5" } }, "@babel/plugin-transform-for-of": { - "version": "7.13.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.13.0.tgz", - "integrity": "sha512-IHKT00mwUVYE0zzbkDgNRP6SRzvfGCYsOxIRz8KsiaaHCcT9BWIkO+H9QRJseHBLOGBZkHUdHiqj6r0POsdytg==", + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.14.5.tgz", + "integrity": "sha512-CfmqxSUZzBl0rSjpoQSFoR9UEj3HzbGuGNL21/iFTmjb5gFggJp3ph0xR1YBhexmLoKRHzgxuFvty2xdSt6gTA==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.13.0" + "@babel/helper-plugin-utils": "^7.14.5" } }, "@babel/plugin-transform-function-name": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.12.13.tgz", - "integrity": "sha512-6K7gZycG0cmIwwF7uMK/ZqeCikCGVBdyP2J5SKNCXO5EOHcqi+z7Jwf8AmyDNcBgxET8DrEtCt/mPKPyAzXyqQ==", + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.14.5.tgz", + "integrity": "sha512-vbO6kv0fIzZ1GpmGQuvbwwm+O4Cbm2NrPzwlup9+/3fdkuzo1YqOZcXw26+YUJB84Ja7j9yURWposEHLYwxUfQ==", "dev": true, "requires": { - "@babel/helper-function-name": "^7.12.13", - "@babel/helper-plugin-utils": "^7.12.13" + "@babel/helper-function-name": "^7.14.5", + "@babel/helper-plugin-utils": "^7.14.5" } }, "@babel/plugin-transform-literals": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-literals/-/plugin-transform-literals-7.12.13.tgz", - "integrity": "sha512-FW+WPjSR7hiUxMcKqyNjP05tQ2kmBCdpEpZHY1ARm96tGQCCBvXKnpjILtDplUnJ/eHZ0lALLM+d2lMFSpYJrQ==", + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-literals/-/plugin-transform-literals-7.14.5.tgz", + "integrity": "sha512-ql33+epql2F49bi8aHXxvLURHkxJbSmMKl9J5yHqg4PLtdE6Uc48CH1GS6TQvZ86eoB/ApZXwm7jlA+B3kra7A==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.12.13" + "@babel/helper-plugin-utils": "^7.14.5" } }, "@babel/plugin-transform-member-expression-literals": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.12.13.tgz", - "integrity": "sha512-kxLkOsg8yir4YeEPHLuO2tXP9R/gTjpuTOjshqSpELUN3ZAg2jfDnKUvzzJxObun38sw3wm4Uu69sX/zA7iRvg==", + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.14.5.tgz", + "integrity": "sha512-WkNXxH1VXVTKarWFqmso83xl+2V3Eo28YY5utIkbsmXoItO8Q3aZxN4BTS2k0hz9dGUloHK26mJMyQEYfkn/+Q==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.12.13" + "@babel/helper-plugin-utils": "^7.14.5" } }, "@babel/plugin-transform-modules-amd": { - "version": "7.14.2", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.14.2.tgz", - "integrity": "sha512-hPC6XBswt8P3G2D1tSV2HzdKvkqOpmbyoy+g73JG0qlF/qx2y3KaMmXb1fLrpmWGLZYA0ojCvaHdzFWjlmV+Pw==", + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.14.5.tgz", + "integrity": "sha512-3lpOU8Vxmp3roC4vzFpSdEpGUWSMsHFreTWOMMLzel2gNGfHE5UWIh/LN6ghHs2xurUp4jRFYMUIZhuFbody1g==", "dev": true, "requires": { - "@babel/helper-module-transforms": "^7.14.2", - "@babel/helper-plugin-utils": "^7.13.0", + "@babel/helper-module-transforms": "^7.14.5", + "@babel/helper-plugin-utils": "^7.14.5", "babel-plugin-dynamic-import-node": "^2.3.3" } }, "@babel/plugin-transform-modules-commonjs": { - "version": "7.14.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.14.0.tgz", - "integrity": "sha512-EX4QePlsTaRZQmw9BsoPeyh5OCtRGIhwfLquhxGp5e32w+dyL8htOcDwamlitmNFK6xBZYlygjdye9dbd9rUlQ==", + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.14.5.tgz", + "integrity": "sha512-en8GfBtgnydoao2PS+87mKyw62k02k7kJ9ltbKe0fXTHrQmG6QZZflYuGI1VVG7sVpx4E1n7KBpNlPb8m78J+A==", "dev": true, "requires": { - "@babel/helper-module-transforms": "^7.14.0", - "@babel/helper-plugin-utils": "^7.13.0", - "@babel/helper-simple-access": "^7.13.12", + "@babel/helper-module-transforms": "^7.14.5", + "@babel/helper-plugin-utils": "^7.14.5", + "@babel/helper-simple-access": "^7.14.5", "babel-plugin-dynamic-import-node": "^2.3.3" } }, "@babel/plugin-transform-modules-systemjs": { - "version": "7.13.8", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.13.8.tgz", - "integrity": "sha512-hwqctPYjhM6cWvVIlOIe27jCIBgHCsdH2xCJVAYQm7V5yTMoilbVMi9f6wKg0rpQAOn6ZG4AOyvCqFF/hUh6+A==", + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.14.5.tgz", + "integrity": "sha512-mNMQdvBEE5DcMQaL5LbzXFMANrQjd2W7FPzg34Y4yEz7dBgdaC+9B84dSO+/1Wba98zoDbInctCDo4JGxz1VYA==", "dev": true, "requires": { - "@babel/helper-hoist-variables": "^7.13.0", - "@babel/helper-module-transforms": "^7.13.0", - "@babel/helper-plugin-utils": "^7.13.0", - "@babel/helper-validator-identifier": "^7.12.11", + "@babel/helper-hoist-variables": "^7.14.5", + "@babel/helper-module-transforms": "^7.14.5", + "@babel/helper-plugin-utils": "^7.14.5", + "@babel/helper-validator-identifier": "^7.14.5", "babel-plugin-dynamic-import-node": "^2.3.3" } }, "@babel/plugin-transform-modules-umd": { - "version": "7.14.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.14.0.tgz", - "integrity": "sha512-nPZdnWtXXeY7I87UZr9VlsWme3Y0cfFFE41Wbxz4bbaexAjNMInXPFUpRRUJ8NoMm0Cw+zxbqjdPmLhcjfazMw==", + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.14.5.tgz", + "integrity": "sha512-RfPGoagSngC06LsGUYyM9QWSXZ8MysEjDJTAea1lqRjNECE3y0qIJF/qbvJxc4oA4s99HumIMdXOrd+TdKaAAA==", "dev": true, "requires": { - "@babel/helper-module-transforms": "^7.14.0", - "@babel/helper-plugin-utils": "^7.13.0" + "@babel/helper-module-transforms": "^7.14.5", + "@babel/helper-plugin-utils": "^7.14.5" } }, "@babel/plugin-transform-named-capturing-groups-regex": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.12.13.tgz", - "integrity": "sha512-Xsm8P2hr5hAxyYblrfACXpQKdQbx4m2df9/ZZSQ8MAhsadw06+jW7s9zsSw6he+mJZXRlVMyEnVktJo4zjk1WA==", + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.14.5.tgz", + "integrity": "sha512-+Xe5+6MWFo311U8SchgeX5c1+lJM+eZDBZgD+tvXu9VVQPXwwVzeManMMjYX6xw2HczngfOSZjoFYKwdeB/Jvw==", "dev": true, "requires": { - "@babel/helper-create-regexp-features-plugin": "^7.12.13" + "@babel/helper-create-regexp-features-plugin": "^7.14.5" } }, "@babel/plugin-transform-new-target": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.12.13.tgz", - "integrity": "sha512-/KY2hbLxrG5GTQ9zzZSc3xWiOy379pIETEhbtzwZcw9rvuaVV4Fqy7BYGYOWZnaoXIQYbbJ0ziXLa/sKcGCYEQ==", + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.14.5.tgz", + "integrity": "sha512-Nx054zovz6IIRWEB49RDRuXGI4Gy0GMgqG0cII9L3MxqgXz/+rgII+RU58qpo4g7tNEx1jG7rRVH4ihZoP4esQ==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.12.13" + "@babel/helper-plugin-utils": "^7.14.5" } }, "@babel/plugin-transform-object-super": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.12.13.tgz", - "integrity": "sha512-JzYIcj3XtYspZDV8j9ulnoMPZZnF/Cj0LUxPOjR89BdBVx+zYJI9MdMIlUZjbXDX+6YVeS6I3e8op+qQ3BYBoQ==", + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.14.5.tgz", + "integrity": "sha512-MKfOBWzK0pZIrav9z/hkRqIk/2bTv9qvxHzPQc12RcVkMOzpIKnFCNYJip00ssKWYkd8Sf5g0Wr7pqJ+cmtuFg==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.12.13", - "@babel/helper-replace-supers": "^7.12.13" + "@babel/helper-plugin-utils": "^7.14.5", + "@babel/helper-replace-supers": "^7.14.5" } }, "@babel/plugin-transform-parameters": { - "version": "7.14.2", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.14.2.tgz", - "integrity": "sha512-NxoVmA3APNCC1JdMXkdYXuQS+EMdqy0vIwyDHeKHiJKRxmp1qGSdb0JLEIoPRhkx6H/8Qi3RJ3uqOCYw8giy9A==", + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.14.5.tgz", + "integrity": "sha512-Tl7LWdr6HUxTmzQtzuU14SqbgrSKmaR77M0OKyq4njZLQTPfOvzblNKyNkGwOfEFCEx7KeYHQHDI0P3F02IVkA==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.13.0" + "@babel/helper-plugin-utils": "^7.14.5" } }, "@babel/plugin-transform-property-literals": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.12.13.tgz", - "integrity": "sha512-nqVigwVan+lR+g8Fj8Exl0UQX2kymtjcWfMOYM1vTYEKujeyv2SkMgazf2qNcK7l4SDiKyTA/nHCPqL4e2zo1A==", + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.14.5.tgz", + "integrity": "sha512-r1uilDthkgXW8Z1vJz2dKYLV1tuw2xsbrp3MrZmD99Wh9vsfKoob+JTgri5VUb/JqyKRXotlOtwgu4stIYCmnw==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.12.13" + "@babel/helper-plugin-utils": "^7.14.5" } }, "@babel/plugin-transform-regenerator": { - "version": "7.13.15", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.13.15.tgz", - "integrity": "sha512-Bk9cOLSz8DiurcMETZ8E2YtIVJbFCPGW28DJWUakmyVWtQSm6Wsf0p4B4BfEr/eL2Nkhe/CICiUiMOCi1TPhuQ==", + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.14.5.tgz", + "integrity": "sha512-NVIY1W3ITDP5xQl50NgTKlZ0GrotKtLna08/uGY6ErQt6VEQZXla86x/CTddm5gZdcr+5GSsvMeTmWA5Ii6pkg==", "dev": true, "requires": { "regenerator-transform": "^0.14.2" } }, "@babel/plugin-transform-reserved-words": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.12.13.tgz", - "integrity": "sha512-xhUPzDXxZN1QfiOy/I5tyye+TRz6lA7z6xaT4CLOjPRMVg1ldRf0LHw0TDBpYL4vG78556WuHdyO9oi5UmzZBg==", + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.14.5.tgz", + "integrity": "sha512-cv4F2rv1nD4qdexOGsRQXJrOcyb5CrgjUH9PKrrtyhSDBNWGxd0UIitjyJiWagS+EbUGjG++22mGH1Pub8D6Vg==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.12.13" + "@babel/helper-plugin-utils": "^7.14.5" } }, "@babel/plugin-transform-shorthand-properties": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.12.13.tgz", - "integrity": "sha512-xpL49pqPnLtf0tVluuqvzWIgLEhuPpZzvs2yabUHSKRNlN7ScYU7aMlmavOeyXJZKgZKQRBlh8rHbKiJDraTSw==", + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.14.5.tgz", + "integrity": "sha512-xLucks6T1VmGsTB+GWK5Pl9Jl5+nRXD1uoFdA5TSO6xtiNjtXTjKkmPdFXVLGlK5A2/or/wQMKfmQ2Y0XJfn5g==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.12.13" + "@babel/helper-plugin-utils": "^7.14.5" } }, "@babel/plugin-transform-spread": { - "version": "7.13.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-spread/-/plugin-transform-spread-7.13.0.tgz", - "integrity": "sha512-V6vkiXijjzYeFmQTr3dBxPtZYLPcUfY34DebOU27jIl2M/Y8Egm52Hw82CSjjPqd54GTlJs5x+CR7HeNr24ckg==", + "version": "7.14.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-spread/-/plugin-transform-spread-7.14.6.tgz", + "integrity": "sha512-Zr0x0YroFJku7n7+/HH3A2eIrGMjbmAIbJSVv0IZ+t3U2WUQUA64S/oeied2e+MaGSjmt4alzBCsK9E8gh+fag==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.13.0", - "@babel/helper-skip-transparent-expression-wrappers": "^7.12.1" + "@babel/helper-plugin-utils": "^7.14.5", + "@babel/helper-skip-transparent-expression-wrappers": "^7.14.5" } }, "@babel/plugin-transform-sticky-regex": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.12.13.tgz", - "integrity": "sha512-Jc3JSaaWT8+fr7GRvQP02fKDsYk4K/lYwWq38r/UGfaxo89ajud321NH28KRQ7xy1Ybc0VUE5Pz8psjNNDUglg==", + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.14.5.tgz", + "integrity": "sha512-Z7F7GyvEMzIIbwnziAZmnSNpdijdr4dWt+FJNBnBLz5mwDFkqIXU9wmBcWWad3QeJF5hMTkRe4dAq2sUZiG+8A==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.12.13" + "@babel/helper-plugin-utils": "^7.14.5" } }, "@babel/plugin-transform-template-literals": { - "version": "7.13.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.13.0.tgz", - "integrity": "sha512-d67umW6nlfmr1iehCcBv69eSUSySk1EsIS8aTDX4Xo9qajAh6mYtcl4kJrBkGXuxZPEgVr7RVfAvNW6YQkd4Mw==", + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.14.5.tgz", + "integrity": "sha512-22btZeURqiepOfuy/VkFr+zStqlujWaarpMErvay7goJS6BWwdd6BY9zQyDLDa4x2S3VugxFb162IZ4m/S/+Gg==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.13.0" + "@babel/helper-plugin-utils": "^7.14.5" } }, "@babel/plugin-transform-typeof-symbol": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.12.13.tgz", - "integrity": "sha512-eKv/LmUJpMnu4npgfvs3LiHhJua5fo/CysENxa45YCQXZwKnGCQKAg87bvoqSW1fFT+HA32l03Qxsm8ouTY3ZQ==", + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.14.5.tgz", + "integrity": "sha512-lXzLD30ffCWseTbMQzrvDWqljvZlHkXU+CnseMhkMNqU1sASnCsz3tSzAaH3vCUXb9PHeUb90ZT1BdFTm1xxJw==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.12.13" + "@babel/helper-plugin-utils": "^7.14.5" } }, "@babel/plugin-transform-unicode-escapes": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.12.13.tgz", - "integrity": "sha512-0bHEkdwJ/sN/ikBHfSmOXPypN/beiGqjo+o4/5K+vxEFNPRPdImhviPakMKG4x96l85emoa0Z6cDflsdBusZbw==", + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.14.5.tgz", + "integrity": "sha512-crTo4jATEOjxj7bt9lbYXcBAM3LZaUrbP2uUdxb6WIorLmjNKSpHfIybgY4B8SRpbf8tEVIWH3Vtm7ayCrKocA==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.12.13" + "@babel/helper-plugin-utils": "^7.14.5" } }, "@babel/plugin-transform-unicode-regex": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.12.13.tgz", - "integrity": "sha512-mDRzSNY7/zopwisPZ5kM9XKCfhchqIYwAKRERtEnhYscZB79VRekuRSoYbN0+KVe3y8+q1h6A4svXtP7N+UoCA==", + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.14.5.tgz", + "integrity": "sha512-UygduJpC5kHeCiRw/xDVzC+wj8VaYSoKl5JNVmbP7MadpNinAm3SvZCxZ42H37KZBKztz46YC73i9yV34d0Tzw==", "dev": true, "requires": { - "@babel/helper-create-regexp-features-plugin": "^7.12.13", - "@babel/helper-plugin-utils": "^7.12.13" + "@babel/helper-create-regexp-features-plugin": "^7.14.5", + "@babel/helper-plugin-utils": "^7.14.5" } }, "@babel/preset-env": { - "version": "7.14.4", - "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.14.4.tgz", - "integrity": "sha512-GwMMsuAnDtULyOtuxHhzzuSRxFeP0aR/LNzrHRzP8y6AgDNgqnrfCCBm/1cRdTU75tRs28Eh76poHLcg9VF0LA==", - "dev": true, - "requires": { - "@babel/compat-data": "^7.14.4", - "@babel/helper-compilation-targets": "^7.14.4", - "@babel/helper-plugin-utils": "^7.13.0", - "@babel/helper-validator-option": "^7.12.17", - "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": "^7.13.12", - "@babel/plugin-proposal-async-generator-functions": "^7.14.2", - "@babel/plugin-proposal-class-properties": "^7.13.0", - "@babel/plugin-proposal-class-static-block": "^7.14.3", - "@babel/plugin-proposal-dynamic-import": "^7.14.2", - "@babel/plugin-proposal-export-namespace-from": "^7.14.2", - "@babel/plugin-proposal-json-strings": "^7.14.2", - "@babel/plugin-proposal-logical-assignment-operators": "^7.14.2", - "@babel/plugin-proposal-nullish-coalescing-operator": "^7.14.2", - "@babel/plugin-proposal-numeric-separator": "^7.14.2", - "@babel/plugin-proposal-object-rest-spread": "^7.14.4", - "@babel/plugin-proposal-optional-catch-binding": "^7.14.2", - "@babel/plugin-proposal-optional-chaining": "^7.14.2", - "@babel/plugin-proposal-private-methods": "^7.13.0", - "@babel/plugin-proposal-private-property-in-object": "^7.14.0", - "@babel/plugin-proposal-unicode-property-regex": "^7.12.13", + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.14.5.tgz", + "integrity": "sha512-ci6TsS0bjrdPpWGnQ+m4f+JSSzDKlckqKIJJt9UZ/+g7Zz9k0N8lYU8IeLg/01o2h8LyNZDMLGgRLDTxpudLsA==", + "dev": true, + "requires": { + "@babel/compat-data": "^7.14.5", + "@babel/helper-compilation-targets": "^7.14.5", + "@babel/helper-plugin-utils": "^7.14.5", + "@babel/helper-validator-option": "^7.14.5", + "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": "^7.14.5", + "@babel/plugin-proposal-async-generator-functions": "^7.14.5", + "@babel/plugin-proposal-class-properties": "^7.14.5", + "@babel/plugin-proposal-class-static-block": "^7.14.5", + "@babel/plugin-proposal-dynamic-import": "^7.14.5", + "@babel/plugin-proposal-export-namespace-from": "^7.14.5", + "@babel/plugin-proposal-json-strings": "^7.14.5", + "@babel/plugin-proposal-logical-assignment-operators": "^7.14.5", + "@babel/plugin-proposal-nullish-coalescing-operator": "^7.14.5", + "@babel/plugin-proposal-numeric-separator": "^7.14.5", + "@babel/plugin-proposal-object-rest-spread": "^7.14.5", + "@babel/plugin-proposal-optional-catch-binding": "^7.14.5", + "@babel/plugin-proposal-optional-chaining": "^7.14.5", + "@babel/plugin-proposal-private-methods": "^7.14.5", + "@babel/plugin-proposal-private-property-in-object": "^7.14.5", + "@babel/plugin-proposal-unicode-property-regex": "^7.14.5", "@babel/plugin-syntax-async-generators": "^7.8.4", "@babel/plugin-syntax-class-properties": "^7.12.13", - "@babel/plugin-syntax-class-static-block": "^7.12.13", + "@babel/plugin-syntax-class-static-block": "^7.14.5", "@babel/plugin-syntax-dynamic-import": "^7.8.3", "@babel/plugin-syntax-export-namespace-from": "^7.8.3", "@babel/plugin-syntax-json-strings": "^7.8.3", @@ -19922,46 +19429,46 @@ "@babel/plugin-syntax-object-rest-spread": "^7.8.3", "@babel/plugin-syntax-optional-catch-binding": "^7.8.3", "@babel/plugin-syntax-optional-chaining": "^7.8.3", - "@babel/plugin-syntax-private-property-in-object": "^7.14.0", - "@babel/plugin-syntax-top-level-await": "^7.12.13", - "@babel/plugin-transform-arrow-functions": "^7.13.0", - "@babel/plugin-transform-async-to-generator": "^7.13.0", - "@babel/plugin-transform-block-scoped-functions": "^7.12.13", - "@babel/plugin-transform-block-scoping": "^7.14.4", - "@babel/plugin-transform-classes": "^7.14.4", - "@babel/plugin-transform-computed-properties": "^7.13.0", - "@babel/plugin-transform-destructuring": "^7.14.4", - "@babel/plugin-transform-dotall-regex": "^7.12.13", - "@babel/plugin-transform-duplicate-keys": "^7.12.13", - "@babel/plugin-transform-exponentiation-operator": "^7.12.13", - "@babel/plugin-transform-for-of": "^7.13.0", - "@babel/plugin-transform-function-name": "^7.12.13", - "@babel/plugin-transform-literals": "^7.12.13", - "@babel/plugin-transform-member-expression-literals": "^7.12.13", - "@babel/plugin-transform-modules-amd": "^7.14.2", - "@babel/plugin-transform-modules-commonjs": "^7.14.0", - "@babel/plugin-transform-modules-systemjs": "^7.13.8", - "@babel/plugin-transform-modules-umd": "^7.14.0", - "@babel/plugin-transform-named-capturing-groups-regex": "^7.12.13", - "@babel/plugin-transform-new-target": "^7.12.13", - "@babel/plugin-transform-object-super": "^7.12.13", - "@babel/plugin-transform-parameters": "^7.14.2", - "@babel/plugin-transform-property-literals": "^7.12.13", - "@babel/plugin-transform-regenerator": "^7.13.15", - "@babel/plugin-transform-reserved-words": "^7.12.13", - "@babel/plugin-transform-shorthand-properties": "^7.12.13", - "@babel/plugin-transform-spread": "^7.13.0", - "@babel/plugin-transform-sticky-regex": "^7.12.13", - "@babel/plugin-transform-template-literals": "^7.13.0", - "@babel/plugin-transform-typeof-symbol": "^7.12.13", - "@babel/plugin-transform-unicode-escapes": "^7.12.13", - "@babel/plugin-transform-unicode-regex": "^7.12.13", + "@babel/plugin-syntax-private-property-in-object": "^7.14.5", + "@babel/plugin-syntax-top-level-await": "^7.14.5", + "@babel/plugin-transform-arrow-functions": "^7.14.5", + "@babel/plugin-transform-async-to-generator": "^7.14.5", + "@babel/plugin-transform-block-scoped-functions": "^7.14.5", + "@babel/plugin-transform-block-scoping": "^7.14.5", + "@babel/plugin-transform-classes": "^7.14.5", + "@babel/plugin-transform-computed-properties": "^7.14.5", + "@babel/plugin-transform-destructuring": "^7.14.5", + "@babel/plugin-transform-dotall-regex": "^7.14.5", + "@babel/plugin-transform-duplicate-keys": "^7.14.5", + "@babel/plugin-transform-exponentiation-operator": "^7.14.5", + "@babel/plugin-transform-for-of": "^7.14.5", + "@babel/plugin-transform-function-name": "^7.14.5", + "@babel/plugin-transform-literals": "^7.14.5", + "@babel/plugin-transform-member-expression-literals": "^7.14.5", + "@babel/plugin-transform-modules-amd": "^7.14.5", + "@babel/plugin-transform-modules-commonjs": "^7.14.5", + "@babel/plugin-transform-modules-systemjs": "^7.14.5", + "@babel/plugin-transform-modules-umd": "^7.14.5", + "@babel/plugin-transform-named-capturing-groups-regex": "^7.14.5", + "@babel/plugin-transform-new-target": "^7.14.5", + "@babel/plugin-transform-object-super": "^7.14.5", + "@babel/plugin-transform-parameters": "^7.14.5", + "@babel/plugin-transform-property-literals": "^7.14.5", + "@babel/plugin-transform-regenerator": "^7.14.5", + "@babel/plugin-transform-reserved-words": "^7.14.5", + "@babel/plugin-transform-shorthand-properties": "^7.14.5", + "@babel/plugin-transform-spread": "^7.14.5", + "@babel/plugin-transform-sticky-regex": "^7.14.5", + "@babel/plugin-transform-template-literals": "^7.14.5", + "@babel/plugin-transform-typeof-symbol": "^7.14.5", + "@babel/plugin-transform-unicode-escapes": "^7.14.5", + "@babel/plugin-transform-unicode-regex": "^7.14.5", "@babel/preset-modules": "^0.1.4", - "@babel/types": "^7.14.4", - "babel-plugin-polyfill-corejs2": "^0.2.0", - "babel-plugin-polyfill-corejs3": "^0.2.0", - "babel-plugin-polyfill-regenerator": "^0.2.0", - "core-js-compat": "^3.9.0", + "@babel/types": "^7.14.5", + "babel-plugin-polyfill-corejs2": "^0.2.2", + "babel-plugin-polyfill-corejs3": "^0.2.2", + "babel-plugin-polyfill-regenerator": "^0.2.2", + "core-js-compat": "^3.14.0", "semver": "^6.3.0" } }, @@ -19979,48 +19486,49 @@ } }, "@babel/runtime": { - "version": "7.13.17", - "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.13.17.tgz", - "integrity": "sha512-NCdgJEelPTSh+FEFylhnP1ylq848l1z9t9N0j1Lfbcw0+KXGjsTvUmkxy+voLLXB5SOKMbLLx4jxYliGrYQseA==", + "version": "7.14.6", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.14.6.tgz", + "integrity": "sha512-/PCB2uJ7oM44tz8YhC4Z/6PeOKXp4K588f+5M3clr1M4zbqztlo0XEfJ2LEzj/FgwfgGcIdl8n7YYjTCI0BYwg==", "dev": true, "requires": { "regenerator-runtime": "^0.13.4" } }, "@babel/template": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.12.13.tgz", - "integrity": "sha512-/7xxiGA57xMo/P2GVvdEumr8ONhFOhfgq2ihK3h1e6THqzTAkHbkXgB0xI9yeTfIUoH3+oAeHhqm/I43OTbbjA==", + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.14.5.tgz", + "integrity": "sha512-6Z3Po85sfxRGachLULUhOmvAaOo7xCvqGQtxINai2mEGPFm6pQ4z5QInFnUrRpfoSV60BnjyF5F3c+15fxFV1g==", "dev": true, "requires": { - "@babel/code-frame": "^7.12.13", - "@babel/parser": "^7.12.13", - "@babel/types": "^7.12.13" + "@babel/code-frame": "^7.14.5", + "@babel/parser": "^7.14.5", + "@babel/types": "^7.14.5" } }, "@babel/traverse": { - "version": "7.14.2", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.14.2.tgz", - "integrity": "sha512-TsdRgvBFHMyHOOzcP9S6QU0QQtjxlRpEYOy3mcCO5RgmC305ki42aSAmfZEMSSYBla2oZ9BMqYlncBaKmD/7iA==", - "dev": true, - "requires": { - "@babel/code-frame": "^7.12.13", - "@babel/generator": "^7.14.2", - "@babel/helper-function-name": "^7.14.2", - "@babel/helper-split-export-declaration": "^7.12.13", - "@babel/parser": "^7.14.2", - "@babel/types": "^7.14.2", + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.14.5.tgz", + "integrity": "sha512-G3BiS15vevepdmFqmUc9X+64y0viZYygubAMO8SvBmKARuF6CPSZtH4Ng9vi/lrWlZFGe3FWdXNy835akH8Glg==", + "dev": true, + "requires": { + "@babel/code-frame": "^7.14.5", + "@babel/generator": "^7.14.5", + "@babel/helper-function-name": "^7.14.5", + "@babel/helper-hoist-variables": "^7.14.5", + "@babel/helper-split-export-declaration": "^7.14.5", + "@babel/parser": "^7.14.5", + "@babel/types": "^7.14.5", "debug": "^4.1.0", "globals": "^11.1.0" } }, "@babel/types": { - "version": "7.14.4", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.14.4.tgz", - "integrity": "sha512-lCj4aIs0xUefJFQnwwQv2Bxg7Omd6bgquZ6LGC+gGMh6/s5qDVfjuCMlDmYQ15SLsWHd9n+X3E75lKIhl5Lkiw==", + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.14.5.tgz", + "integrity": "sha512-M/NzBpEL95I5Hh4dwhin5JlE7EzO5PHMAuzjxss3tiOBD46KfQvVedN/3jEPZvdRvtsK2222XfdHogNIttFgcg==", "dev": true, "requires": { - "@babel/helper-validator-identifier": "^7.14.0", + "@babel/helper-validator-identifier": "^7.14.5", "to-fast-properties": "^2.0.0" } }, @@ -20030,16 +19538,6 @@ "integrity": "sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw==", "dev": true }, - "@cnakazawa/watch": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/@cnakazawa/watch/-/watch-1.0.4.tgz", - "integrity": "sha512-v9kIhKwjeZThiWrLmj0y17CWoyddASLj9O2yvbZkbvw/N3rWOYy9zkV66ursAoVr0mV15bL8g0c4QZUE6cdDoQ==", - "dev": true, - "requires": { - "exec-sh": "^0.3.2", - "minimist": "^1.2.0" - } - }, "@commitlint/cli": { "version": "12.1.4", "resolved": "https://registry.npmjs.org/@commitlint/cli/-/cli-12.1.4.tgz", @@ -20469,16 +19967,16 @@ "dev": true }, "@jest/console": { - "version": "26.6.2", - "resolved": "https://registry.npmjs.org/@jest/console/-/console-26.6.2.tgz", - "integrity": "sha512-IY1R2i2aLsLr7Id3S6p2BA82GNWryt4oSvEXLAKc+L2zdi89dSkE8xC1C+0kpATG4JhBJREnQOH7/zmccM2B0g==", + "version": "27.0.2", + "resolved": "https://registry.npmjs.org/@jest/console/-/console-27.0.2.tgz", + "integrity": "sha512-/zYigssuHLImGeMAACkjI4VLAiiJznHgAl3xnFT19iWyct2LhrH3KXOjHRmxBGTkiPLZKKAJAgaPpiU9EZ9K+w==", "dev": true, "requires": { - "@jest/types": "^26.6.2", + "@jest/types": "^27.0.2", "@types/node": "*", "chalk": "^4.0.0", - "jest-message-util": "^26.6.2", - "jest-util": "^26.6.2", + "jest-message-util": "^27.0.2", + "jest-util": "^27.0.2", "slash": "^3.0.0" }, "dependencies": { @@ -20540,35 +20038,36 @@ } }, "@jest/core": { - "version": "26.6.3", - "resolved": "https://registry.npmjs.org/@jest/core/-/core-26.6.3.tgz", - "integrity": "sha512-xvV1kKbhfUqFVuZ8Cyo+JPpipAHHAV3kcDBftiduK8EICXmTFddryy3P7NfZt8Pv37rA9nEJBKCCkglCPt/Xjw==", + "version": "27.0.4", + "resolved": "https://registry.npmjs.org/@jest/core/-/core-27.0.4.tgz", + "integrity": "sha512-+dsmV8VUs1h/Szb+rEWk8xBM1fp1I///uFy9nk3wXGvRsF2lBp8EVPmtWc+QFRb3MY2b7u2HbkGF1fzoDzQTLA==", "dev": true, "requires": { - "@jest/console": "^26.6.2", - "@jest/reporters": "^26.6.2", - "@jest/test-result": "^26.6.2", - "@jest/transform": "^26.6.2", - "@jest/types": "^26.6.2", + "@jest/console": "^27.0.2", + "@jest/reporters": "^27.0.4", + "@jest/test-result": "^27.0.2", + "@jest/transform": "^27.0.2", + "@jest/types": "^27.0.2", "@types/node": "*", "ansi-escapes": "^4.2.1", "chalk": "^4.0.0", + "emittery": "^0.8.1", "exit": "^0.1.2", "graceful-fs": "^4.2.4", - "jest-changed-files": "^26.6.2", - "jest-config": "^26.6.3", - "jest-haste-map": "^26.6.2", - "jest-message-util": "^26.6.2", - "jest-regex-util": "^26.0.0", - "jest-resolve": "^26.6.2", - "jest-resolve-dependencies": "^26.6.3", - "jest-runner": "^26.6.3", - "jest-runtime": "^26.6.3", - "jest-snapshot": "^26.6.2", - "jest-util": "^26.6.2", - "jest-validate": "^26.6.2", - "jest-watcher": "^26.6.2", - "micromatch": "^4.0.2", + "jest-changed-files": "^27.0.2", + "jest-config": "^27.0.4", + "jest-haste-map": "^27.0.2", + "jest-message-util": "^27.0.2", + "jest-regex-util": "^27.0.1", + "jest-resolve": "^27.0.4", + "jest-resolve-dependencies": "^27.0.4", + "jest-runner": "^27.0.4", + "jest-runtime": "^27.0.4", + "jest-snapshot": "^27.0.4", + "jest-util": "^27.0.2", + "jest-validate": "^27.0.2", + "jest-watcher": "^27.0.2", + "micromatch": "^4.0.4", "p-each-series": "^2.1.0", "rimraf": "^3.0.0", "slash": "^3.0.0", @@ -20676,53 +20175,53 @@ } }, "@jest/environment": { - "version": "26.6.2", - "resolved": "https://registry.npmjs.org/@jest/environment/-/environment-26.6.2.tgz", - "integrity": "sha512-nFy+fHl28zUrRsCeMB61VDThV1pVTtlEokBRgqPrcT1JNq4yRNIyTHfyht6PqtUvY9IsuLGTrbG8kPXjSZIZwA==", + "version": "27.0.3", + "resolved": "https://registry.npmjs.org/@jest/environment/-/environment-27.0.3.tgz", + "integrity": "sha512-pN9m7fbKsop5vc3FOfH8NF7CKKdRbEZzcxfIo1n2TT6ucKWLFq0P6gCJH0GpnQp036++yY9utHOxpeT1WnkWTA==", "dev": true, "requires": { - "@jest/fake-timers": "^26.6.2", - "@jest/types": "^26.6.2", + "@jest/fake-timers": "^27.0.3", + "@jest/types": "^27.0.2", "@types/node": "*", - "jest-mock": "^26.6.2" + "jest-mock": "^27.0.3" } }, "@jest/fake-timers": { - "version": "26.6.2", - "resolved": "https://registry.npmjs.org/@jest/fake-timers/-/fake-timers-26.6.2.tgz", - "integrity": "sha512-14Uleatt7jdzefLPYM3KLcnUl1ZNikaKq34enpb5XG9i81JpppDb5muZvonvKyrl7ftEHkKS5L5/eB/kxJ+bvA==", + "version": "27.0.3", + "resolved": "https://registry.npmjs.org/@jest/fake-timers/-/fake-timers-27.0.3.tgz", + "integrity": "sha512-fQ+UCKRIYKvTCEOyKPnaPnomLATIhMnHC/xPZ7yT1Uldp7yMgMxoYIFidDbpSTgB79+/U+FgfoD30c6wg3IUjA==", "dev": true, "requires": { - "@jest/types": "^26.6.2", - "@sinonjs/fake-timers": "^6.0.1", + "@jest/types": "^27.0.2", + "@sinonjs/fake-timers": "^7.0.2", "@types/node": "*", - "jest-message-util": "^26.6.2", - "jest-mock": "^26.6.2", - "jest-util": "^26.6.2" + "jest-message-util": "^27.0.2", + "jest-mock": "^27.0.3", + "jest-util": "^27.0.2" } }, "@jest/globals": { - "version": "26.6.2", - "resolved": "https://registry.npmjs.org/@jest/globals/-/globals-26.6.2.tgz", - "integrity": "sha512-85Ltnm7HlB/KesBUuALwQ68YTU72w9H2xW9FjZ1eL1U3lhtefjjl5c2MiUbpXt/i6LaPRvoOFJ22yCBSfQ0JIA==", + "version": "27.0.3", + "resolved": "https://registry.npmjs.org/@jest/globals/-/globals-27.0.3.tgz", + "integrity": "sha512-OzsIuf7uf+QalqAGbjClyezzEcLQkdZ+7PejUrZgDs+okdAK8GwRCGcYCirHvhMBBQh60Jr3NlIGbn/KBPQLEQ==", "dev": true, "requires": { - "@jest/environment": "^26.6.2", - "@jest/types": "^26.6.2", - "expect": "^26.6.2" + "@jest/environment": "^27.0.3", + "@jest/types": "^27.0.2", + "expect": "^27.0.2" } }, "@jest/reporters": { - "version": "26.6.2", - "resolved": "https://registry.npmjs.org/@jest/reporters/-/reporters-26.6.2.tgz", - "integrity": "sha512-h2bW53APG4HvkOnVMo8q3QXa6pcaNt1HkwVsOPMBV6LD/q9oSpxNSYZQYkAnjdMjrJ86UuYeLo+aEZClV6opnw==", + "version": "27.0.4", + "resolved": "https://registry.npmjs.org/@jest/reporters/-/reporters-27.0.4.tgz", + "integrity": "sha512-Xa90Nm3JnV0xCe4M6A10M9WuN9krb+WFKxV1A98Y4ePCw40n++r7uxFUNU7DT1i9Behj7fjrAIju9oU0t1QtCg==", "dev": true, "requires": { "@bcoe/v8-coverage": "^0.2.3", - "@jest/console": "^26.6.2", - "@jest/test-result": "^26.6.2", - "@jest/transform": "^26.6.2", - "@jest/types": "^26.6.2", + "@jest/console": "^27.0.2", + "@jest/test-result": "^27.0.2", + "@jest/transform": "^27.0.2", + "@jest/types": "^27.0.2", "chalk": "^4.0.0", "collect-v8-coverage": "^1.0.0", "exit": "^0.1.2", @@ -20733,11 +20232,10 @@ "istanbul-lib-report": "^3.0.0", "istanbul-lib-source-maps": "^4.0.0", "istanbul-reports": "^3.0.2", - "jest-haste-map": "^26.6.2", - "jest-resolve": "^26.6.2", - "jest-util": "^26.6.2", - "jest-worker": "^26.6.2", - "node-notifier": "^8.0.0", + "jest-haste-map": "^27.0.2", + "jest-resolve": "^27.0.4", + "jest-util": "^27.0.2", + "jest-worker": "^27.0.2", "slash": "^3.0.0", "source-map": "^0.6.0", "string-length": "^4.0.1", @@ -20785,6 +20283,28 @@ "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", "dev": true }, + "jest-worker": { + "version": "27.0.2", + "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-27.0.2.tgz", + "integrity": "sha512-EoBdilOTTyOgmHXtw/cPc+ZrCA0KJMrkXzkrPGNwLmnvvlN1nj7MPrxpT7m+otSv2e1TLaVffzDnE/LB14zJMg==", + "dev": true, + "requires": { + "@types/node": "*", + "merge-stream": "^2.0.0", + "supports-color": "^8.0.0" + }, + "dependencies": { + "supports-color": { + "version": "8.1.1", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", + "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", + "dev": true, + "requires": { + "has-flag": "^4.0.0" + } + } + } + }, "slash": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", @@ -20809,9 +20329,9 @@ } }, "@jest/source-map": { - "version": "26.6.2", - "resolved": "https://registry.npmjs.org/@jest/source-map/-/source-map-26.6.2.tgz", - "integrity": "sha512-YwYcCwAnNmOVsZ8mr3GfnzdXDAl4LaenZP5z+G0c8bzC9/dugL8zRmxZzdoTl4IaS3CryS1uWnROLPFmb6lVvA==", + "version": "27.0.1", + "resolved": "https://registry.npmjs.org/@jest/source-map/-/source-map-27.0.1.tgz", + "integrity": "sha512-yMgkF0f+6WJtDMdDYNavmqvbHtiSpwRN2U/W+6uztgfqgkq/PXdKPqjBTUF1RD/feth4rH5N3NW0T5+wIuln1A==", "dev": true, "requires": { "callsites": "^3.0.0", @@ -20828,47 +20348,46 @@ } }, "@jest/test-result": { - "version": "26.6.2", - "resolved": "https://registry.npmjs.org/@jest/test-result/-/test-result-26.6.2.tgz", - "integrity": "sha512-5O7H5c/7YlojphYNrK02LlDIV2GNPYisKwHm2QTKjNZeEzezCbwYs9swJySv2UfPMyZ0VdsmMv7jIlD/IKYQpQ==", + "version": "27.0.2", + "resolved": "https://registry.npmjs.org/@jest/test-result/-/test-result-27.0.2.tgz", + "integrity": "sha512-gcdWwL3yP5VaIadzwQtbZyZMgpmes8ryBAJp70tuxghiA8qL4imJyZex+i+USQH2H4jeLVVszhwntgdQ97fccA==", "dev": true, "requires": { - "@jest/console": "^26.6.2", - "@jest/types": "^26.6.2", + "@jest/console": "^27.0.2", + "@jest/types": "^27.0.2", "@types/istanbul-lib-coverage": "^2.0.0", "collect-v8-coverage": "^1.0.0" } }, "@jest/test-sequencer": { - "version": "26.6.3", - "resolved": "https://registry.npmjs.org/@jest/test-sequencer/-/test-sequencer-26.6.3.tgz", - "integrity": "sha512-YHlVIjP5nfEyjlrSr8t/YdNfU/1XEt7c5b4OxcXCjyRhjzLYu/rO69/WHPuYcbCWkz8kAeZVZp2N2+IOLLEPGw==", + "version": "27.0.4", + "resolved": "https://registry.npmjs.org/@jest/test-sequencer/-/test-sequencer-27.0.4.tgz", + "integrity": "sha512-6UFEVwdmxYdyNffBxVVZxmXEdBE4riSddXYSnFNH0ELFQFk/bvagizim8WfgJTqF4EKd+j1yFxvhb8BMHfOjSQ==", "dev": true, "requires": { - "@jest/test-result": "^26.6.2", + "@jest/test-result": "^27.0.2", "graceful-fs": "^4.2.4", - "jest-haste-map": "^26.6.2", - "jest-runner": "^26.6.3", - "jest-runtime": "^26.6.3" + "jest-haste-map": "^27.0.2", + "jest-runtime": "^27.0.4" } }, "@jest/transform": { - "version": "26.6.2", - "resolved": "https://registry.npmjs.org/@jest/transform/-/transform-26.6.2.tgz", - "integrity": "sha512-E9JjhUgNzvuQ+vVAL21vlyfy12gP0GhazGgJC4h6qUt1jSdUXGWJ1wfu/X7Sd8etSgxV4ovT1pb9v5D6QW4XgA==", + "version": "27.0.2", + "resolved": "https://registry.npmjs.org/@jest/transform/-/transform-27.0.2.tgz", + "integrity": "sha512-H8sqKlgtDfVog/s9I4GG2XMbi4Ar7RBxjsKQDUhn2XHAi3NG+GoQwWMER+YfantzExbjNqQvqBHzo/G2pfTiPw==", "dev": true, "requires": { "@babel/core": "^7.1.0", - "@jest/types": "^26.6.2", + "@jest/types": "^27.0.2", "babel-plugin-istanbul": "^6.0.0", "chalk": "^4.0.0", "convert-source-map": "^1.4.0", "fast-json-stable-stringify": "^2.0.0", "graceful-fs": "^4.2.4", - "jest-haste-map": "^26.6.2", - "jest-regex-util": "^26.0.0", - "jest-util": "^26.6.2", - "micromatch": "^4.0.2", + "jest-haste-map": "^27.0.2", + "jest-regex-util": "^27.0.1", + "jest-util": "^27.0.2", + "micromatch": "^4.0.4", "pirates": "^4.0.1", "slash": "^3.0.0", "source-map": "^0.6.1", @@ -20982,15 +20501,15 @@ } }, "@jest/types": { - "version": "26.6.2", - "resolved": "https://registry.npmjs.org/@jest/types/-/types-26.6.2.tgz", - "integrity": "sha512-fC6QCp7Sc5sX6g8Tvbmj4XUTbyrik0akgRy03yjXbQaBWWNWGE7SGtJk98m0N8nzegD/7SggrUlivxo5ax4KWQ==", + "version": "27.0.2", + "resolved": "https://registry.npmjs.org/@jest/types/-/types-27.0.2.tgz", + "integrity": "sha512-XpjCtJ/99HB4PmyJ2vgmN7vT+JLP7RW1FBT9RgnMFS4Dt7cvIyBee8O3/j98aUZ34ZpenPZFqmaaObWSeL65dg==", "dev": true, "requires": { "@types/istanbul-lib-coverage": "^2.0.0", "@types/istanbul-reports": "^3.0.0", "@types/node": "*", - "@types/yargs": "^15.0.0", + "@types/yargs": "^16.0.0", "chalk": "^4.0.0" }, "dependencies": { @@ -21046,16 +20565,16 @@ } }, "@nicolo-ribaudo/chokidar-2": { - "version": "2.1.8-no-fsevents", - "resolved": "https://registry.npmjs.org/@nicolo-ribaudo/chokidar-2/-/chokidar-2-2.1.8-no-fsevents.tgz", - "integrity": "sha512-+nb9vWloHNNMFHjGofEam3wopE3m1yuambrrd/fnPc+lFOMB9ROTqQlche9ByFWNkdNqfSgR/kkQtQ8DzEWt2w==", + "version": "2.1.8-no-fsevents.2", + "resolved": "https://registry.npmjs.org/@nicolo-ribaudo/chokidar-2/-/chokidar-2-2.1.8-no-fsevents.2.tgz", + "integrity": "sha512-Fb8WxUFOBQVl+CX4MWet5o7eCc6Pj04rXIwVKZ6h1NnqTo45eOQW6aWyhG25NIODvWFwTDMwBsYxrQ3imxpetg==", "dev": true, "optional": true, "requires": { "anymatch": "^2.0.0", "async-each": "^1.0.1", "braces": "^2.3.2", - "glob-parent": "^3.1.0", + "glob-parent": "^5.1.2", "inherits": "^2.0.3", "is-binary-path": "^1.0.0", "is-glob": "^4.0.0", @@ -21063,6 +20582,18 @@ "path-is-absolute": "^1.0.0", "readdirp": "^2.2.1", "upath": "^1.1.1" + }, + "dependencies": { + "glob-parent": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "dev": true, + "optional": true, + "requires": { + "is-glob": "^4.0.1" + } + } } }, "@nodelib/fs.scandir": { @@ -21101,14 +20632,20 @@ } }, "@sinonjs/fake-timers": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/@sinonjs/fake-timers/-/fake-timers-6.0.1.tgz", - "integrity": "sha512-MZPUxrmFubI36XS1DI3qmI0YdN1gks62JtFZvxR67ljjSNCeK6U08Zx4msEWOXuofgqUt6zPHSi1H9fbjR/NRA==", + "version": "7.1.2", + "resolved": "https://registry.npmjs.org/@sinonjs/fake-timers/-/fake-timers-7.1.2.tgz", + "integrity": "sha512-iQADsW4LBMISqZ6Ci1dupJL9pprqwcVFTcOsEmQOEhW+KLCVn/Y4Jrvg2k19fIHCp+iFprriYPTdRcQR8NbUPg==", "dev": true, "requires": { "@sinonjs/commons": "^1.7.0" } }, + "@tootallnate/once": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@tootallnate/once/-/once-1.1.2.tgz", + "integrity": "sha512-RbzJvlNzmRq5c3O09UipeuXno4tA1FE6ikOjxZK0tuxVv3412l64l5t1W5pj4+rJq9vpkm/kwiR07aZXnsKPxw==", + "dev": true + }, "@types/babel__core": { "version": "7.1.14", "resolved": "https://registry.npmjs.org/@types/babel__core/-/babel__core-7.1.14.tgz", @@ -21211,9 +20748,9 @@ } }, "@types/istanbul-reports": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-3.0.0.tgz", - "integrity": "sha512-nwKNbvnwJ2/mndE9ItP/zc2TCzw6uuodnF4EHYWD+gCQDVBuRQL5UzbZD0/ezy1iKsFU2ZQiDqg4M9dN4+wZgA==", + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-3.0.1.tgz", + "integrity": "sha512-c3mAZEuK0lvBp8tmuL74XRKn1+y2dcwOUpH7x4WrF6gk1GIgiluDRgMYQtw2OFcBvAJWlt6ASU3tSqxp0Uu0Aw==", "dev": true, "requires": { "@types/istanbul-lib-report": "*" @@ -21261,9 +20798,9 @@ "dev": true }, "@types/prettier": { - "version": "2.2.3", - "resolved": "https://registry.npmjs.org/@types/prettier/-/prettier-2.2.3.tgz", - "integrity": "sha512-PijRCG/K3s3w1We6ynUKdxEc5AcuuH3NBmMDP8uvKVp6X43UY7NQlTzczakXP3DJR0F4dfNQIGjU2cUeRYs2AA==", + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/@types/prettier/-/prettier-2.3.0.tgz", + "integrity": "sha512-hkc1DATxFLQo4VxPDpMH1gCkPpBbpOoJ/4nhuXw4n63/0R6bCpQECj4+K226UJ4JO/eJQz+1mC2I7JsWanAdQw==", "dev": true }, "@types/stack-utils": { @@ -21273,9 +20810,9 @@ "dev": true }, "@types/yargs": { - "version": "15.0.13", - "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-15.0.13.tgz", - "integrity": "sha512-kQ5JNTrbDv3Rp5X2n/iUu37IJBDU2gsZ5R/g1/KHOOEc5IKfUFjXT6DENPGduh08I/pamwtEq4oul7gUqKTQDQ==", + "version": "16.0.3", + "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-16.0.3.tgz", + "integrity": "sha512-YlFfTGS+zqCgXuXNV26rOIeETOkXnGQXP/pjjL9P0gO/EP9jTmc7pUBhx+jVEIxpq41RX33GQ7N3DzOSfZoglQ==", "dev": true, "requires": { "@types/yargs-parser": "*" @@ -21434,25 +20971,25 @@ } }, "@webpack-cli/configtest": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/@webpack-cli/configtest/-/configtest-1.0.3.tgz", - "integrity": "sha512-WQs0ep98FXX2XBAfQpRbY0Ma6ADw8JR6xoIkaIiJIzClGOMqVRvPCWqndTxf28DgFopWan0EKtHtg/5W1h0Zkw==", + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/@webpack-cli/configtest/-/configtest-1.0.4.tgz", + "integrity": "sha512-cs3XLy+UcxiP6bj0A6u7MLLuwdXJ1c3Dtc0RkKg+wiI1g/Ti1om8+/2hc2A2B60NbBNAbMgyBMHvyymWm/j4wQ==", "dev": true, "requires": {} }, "@webpack-cli/info": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/@webpack-cli/info/-/info-1.2.4.tgz", - "integrity": "sha512-ogE2T4+pLhTTPS/8MM3IjHn0IYplKM4HbVNMCWA9N4NrdPzunwenpCsqKEXyejMfRu6K8mhauIPYf8ZxWG5O6g==", + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/@webpack-cli/info/-/info-1.3.0.tgz", + "integrity": "sha512-ASiVB3t9LOKHs5DyVUcxpraBXDOKubYu/ihHhU+t1UPpxsivg6Od2E2qU4gJCekfEddzRBzHhzA/Acyw/mlK/w==", "dev": true, "requires": { "envinfo": "^7.7.3" } }, "@webpack-cli/serve": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/@webpack-cli/serve/-/serve-1.4.0.tgz", - "integrity": "sha512-xgT/HqJ+uLWGX+Mzufusl3cgjAcnqYYskaB7o0vRcwOEfuu6hMzSILQpnIzFMGsTaeaX4Nnekl+6fadLbl1/Vg==", + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/@webpack-cli/serve/-/serve-1.5.1.tgz", + "integrity": "sha512-4vSVUiOPJLmr45S8rMGy7WDvpWxfFxfP/Qx/cxZFCfvoypTYpPPL1X8VIZMe0WTA+Jr7blUxwUSEZNkjoMTgSw==", "dev": true, "requires": {} }, @@ -21534,6 +21071,15 @@ "integrity": "sha1-anmQQ3ynNtXhKI25K9MmbV9csqo=", "dev": true }, + "agent-base": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-6.0.2.tgz", + "integrity": "sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==", + "dev": true, + "requires": { + "debug": "4" + } + }, "aggregate-error": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/aggregate-error/-/aggregate-error-3.1.0.tgz", @@ -21734,21 +21280,6 @@ "integrity": "sha1-iYUI2iIm84DfkEcoRWhJwVAaSw0=", "dev": true }, - "asn1": { - "version": "0.2.4", - "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.4.tgz", - "integrity": "sha512-jxwzQpLQjSmWXgwaCZE9Nz+glAG01yF1QnWgbhGwHI5A6FRIEY6IVqtHhIepHqI7/kyEyQEagBC5mBEFlIYvdg==", - "dev": true, - "requires": { - "safer-buffer": "~2.1.0" - } - }, - "assert-plus": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", - "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=", - "dev": true - }, "assign-symbols": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/assign-symbols/-/assign-symbols-1.0.0.tgz", @@ -21800,18 +21331,6 @@ "integrity": "sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg==", "dev": true }, - "aws-sign2": { - "version": "0.7.0", - "resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.7.0.tgz", - "integrity": "sha1-tG6JCTSpWR8tL2+G1+ap8bP+dqg=", - "dev": true - }, - "aws4": { - "version": "1.11.0", - "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.11.0.tgz", - "integrity": "sha512-xh1Rl34h6Fi1DC2WWKfxUTVqRsNnr6LsKz2+hfwDxQJWmrx8+c7ylaqBMcHfl1U1r2dsifOvKX3LQuLNZ+XSvA==", - "dev": true - }, "babel-eslint": { "version": "10.1.0", "resolved": "https://registry.npmjs.org/babel-eslint/-/babel-eslint-10.1.0.tgz", @@ -21827,16 +21346,16 @@ } }, "babel-jest": { - "version": "26.6.3", - "resolved": "https://registry.npmjs.org/babel-jest/-/babel-jest-26.6.3.tgz", - "integrity": "sha512-pl4Q+GAVOHwvjrck6jKjvmGhnO3jHX/xuB9d27f+EJZ/6k+6nMuPjorrYp7s++bKKdANwzElBWnLWaObvTnaZA==", + "version": "27.0.2", + "resolved": "https://registry.npmjs.org/babel-jest/-/babel-jest-27.0.2.tgz", + "integrity": "sha512-9OThPl3/IQbo4Yul2vMz4FYwILPQak8XelX4YGowygfHaOl5R5gfjm4iVx4d8aUugkW683t8aq0A74E7b5DU1Q==", "dev": true, "requires": { - "@jest/transform": "^26.6.2", - "@jest/types": "^26.6.2", - "@types/babel__core": "^7.1.7", + "@jest/transform": "^27.0.2", + "@jest/types": "^27.0.2", + "@types/babel__core": "^7.1.14", "babel-plugin-istanbul": "^6.0.0", - "babel-preset-jest": "^26.6.2", + "babel-preset-jest": "^27.0.1", "chalk": "^4.0.0", "graceful-fs": "^4.2.4", "slash": "^3.0.0" @@ -21922,9 +21441,9 @@ } }, "babel-plugin-jest-hoist": { - "version": "26.6.2", - "resolved": "https://registry.npmjs.org/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-26.6.2.tgz", - "integrity": "sha512-PO9t0697lNTmcEHH69mdtYiOIkkOlj9fySqfO3K1eCcdISevLAE0xY59VLLUj0SoiPiTX/JU2CYFpILydUa5Lw==", + "version": "27.0.1", + "resolved": "https://registry.npmjs.org/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-27.0.1.tgz", + "integrity": "sha512-sqBF0owAcCDBVEDtxqfYr2F36eSHdx7lAVGyYuOBRnKdD6gzcy0I0XrAYCZgOA3CRrLhmR+Uae9nogPzmAtOfQ==", "dev": true, "requires": { "@babel/template": "^7.3.3", @@ -21934,33 +21453,33 @@ } }, "babel-plugin-polyfill-corejs2": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.2.0.tgz", - "integrity": "sha512-9bNwiR0dS881c5SHnzCmmGlMkJLl0OUZvxrxHo9w/iNoRuqaPjqlvBf4HrovXtQs/au5yKkpcdgfT1cC5PAZwg==", + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.2.2.tgz", + "integrity": "sha512-kISrENsJ0z5dNPq5eRvcctITNHYXWOA4DUZRFYCz3jYCcvTb/A546LIddmoGNMVYg2U38OyFeNosQwI9ENTqIQ==", "dev": true, "requires": { "@babel/compat-data": "^7.13.11", - "@babel/helper-define-polyfill-provider": "^0.2.0", + "@babel/helper-define-polyfill-provider": "^0.2.2", "semver": "^6.1.1" } }, "babel-plugin-polyfill-corejs3": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.2.0.tgz", - "integrity": "sha512-zZyi7p3BCUyzNxLx8KV61zTINkkV65zVkDAFNZmrTCRVhjo1jAS+YLvDJ9Jgd/w2tsAviCwFHReYfxO3Iql8Yg==", + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.2.2.tgz", + "integrity": "sha512-l1Cf8PKk12eEk5QP/NQ6TH8A1pee6wWDJ96WjxrMXFLHLOBFzYM4moG80HFgduVhTqAFez4alnZKEhP/bYHg0A==", "dev": true, "requires": { - "@babel/helper-define-polyfill-provider": "^0.2.0", + "@babel/helper-define-polyfill-provider": "^0.2.2", "core-js-compat": "^3.9.1" } }, "babel-plugin-polyfill-regenerator": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.2.0.tgz", - "integrity": "sha512-J7vKbCuD2Xi/eEHxquHN14bXAW9CXtecwuLrOIDJtcZzTaPzV1VdEfoUf9AzcRBMolKUQKM9/GVojeh0hFiqMg==", + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.2.2.tgz", + "integrity": "sha512-Goy5ghsc21HgPDFtzRkSirpZVW35meGoTmTOb2bxqdl60ghub4xOidgNTHaZfQ2FaxQsKmwvXtOAkcIS4SMBWg==", "dev": true, "requires": { - "@babel/helper-define-polyfill-provider": "^0.2.0" + "@babel/helper-define-polyfill-provider": "^0.2.2" } }, "babel-preset-current-node-syntax": { @@ -21984,12 +21503,12 @@ } }, "babel-preset-jest": { - "version": "26.6.2", - "resolved": "https://registry.npmjs.org/babel-preset-jest/-/babel-preset-jest-26.6.2.tgz", - "integrity": "sha512-YvdtlVm9t3k777c5NPQIv6cxFFFapys25HiUmuSgHwIZhfifweR5c5Sf5nwE3MAbfu327CYSvps8Yx6ANLyleQ==", + "version": "27.0.1", + "resolved": "https://registry.npmjs.org/babel-preset-jest/-/babel-preset-jest-27.0.1.tgz", + "integrity": "sha512-nIBIqCEpuiyhvjQs2mVNwTxQQa2xk70p9Dd/0obQGBf8FBzbnI8QhQKzLsWMN2i6q+5B0OcWDtrboBX5gmOLyA==", "dev": true, "requires": { - "babel-plugin-jest-hoist": "^26.6.2", + "babel-plugin-jest-hoist": "^27.0.1", "babel-preset-current-node-syntax": "^1.0.0" } }, @@ -22031,15 +21550,6 @@ "integrity": "sha1-3DQxT05nkxgJP8dgJyUl+UvyXBY=", "dev": true }, - "bcrypt-pbkdf": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz", - "integrity": "sha1-pDAdOJtqQ/m2f/PKEaP2Y342Dp4=", - "dev": true, - "requires": { - "tweetnacl": "^0.14.3" - } - }, "big.js": { "version": "5.2.2", "resolved": "https://registry.npmjs.org/big.js/-/big.js-5.2.2.tgz", @@ -22282,21 +21792,6 @@ "winston": "^2.3.1" } }, - "capture-exit": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/capture-exit/-/capture-exit-2.0.0.tgz", - "integrity": "sha512-PiT/hQmTonHhl/HFGN+Lx3JJUznrVYJ3+AQsnthneZbvW7x+f08Tk7yLJTLEOUvBTbduLeeBkxEaYXUOUrRq6g==", - "dev": true, - "requires": { - "rsvp": "^4.8.4" - } - }, - "caseless": { - "version": "0.12.0", - "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz", - "integrity": "sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw=", - "dev": true - }, "chalk": { "version": "2.4.2", "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", @@ -22425,15 +21920,15 @@ "dev": true }, "ci-info": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-2.0.0.tgz", - "integrity": "sha512-5tK7EtrZ0N+OLFMthtqOj4fI2Jeb88C4CAZPu25LDVUgXJ0A3Js4PMGqrn0JU1W0Mh1/Z8wZzYPxqUrXeBboCQ==", + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-3.2.0.tgz", + "integrity": "sha512-dVqRX7fLUm8J6FgHJ418XuIgDLZDkYcDFTeL6TA2gt5WlIZUQrrH6EZrNClwT/H0FateUsZkGIOPRrLbP+PR9A==", "dev": true }, "cjs-module-lexer": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/cjs-module-lexer/-/cjs-module-lexer-0.6.0.tgz", - "integrity": "sha512-uc2Vix1frTfnuzxxu1Hp4ktSvM3QaI4oXl4ZUqL1wjTu/BGki9TrCWoqLTg/drR1KwAEarXuRFCG2Svr1GxPFw==", + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/cjs-module-lexer/-/cjs-module-lexer-1.2.1.tgz", + "integrity": "sha512-jVamGdJPDeuQilKhvVn1h3knuMOZzr8QDnpk+M9aMlCaMkTDd6fBWPhiDqFvFZ07pL0liqabAiuy8SY4jGHeaw==", "dev": true }, "class-utils": { @@ -22999,12 +22494,12 @@ "dev": true }, "core-js-compat": { - "version": "3.11.0", - "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.11.0.tgz", - "integrity": "sha512-3wsN9YZJohOSDCjVB0GequOyHax8zFiogSX3XWLE28M1Ew7dTU57tgHjIylSBKSIouwmLBp3g61sKMz/q3xEGA==", + "version": "3.14.0", + "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.14.0.tgz", + "integrity": "sha512-R4NS2eupxtiJU+VwgkF9WTpnSfZW4pogwKHd8bclWU2sp93Pr5S1uYJI84cMOubJRou7bcfL0vmwtLslWN5p3A==", "dev": true, "requires": { - "browserslist": "^4.16.4", + "browserslist": "^4.16.6", "semver": "7.0.0" }, "dependencies": { @@ -23134,15 +22629,6 @@ "integrity": "sha512-2iy1EkLdlBzQGvbweYRFxmFath8+K7+AKB0TlhHWkNuH+TmovaMH/Wp7V7R4u7f4SnX3OgLsU9t1NI9ioDnUpg==", "dev": true }, - "dashdash": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz", - "integrity": "sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA=", - "dev": true, - "requires": { - "assert-plus": "^1.0.0" - } - }, "data-urls": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/data-urls/-/data-urls-2.0.0.tgz", @@ -23623,9 +23109,9 @@ "dev": true }, "diff-sequences": { - "version": "26.6.2", - "resolved": "https://registry.npmjs.org/diff-sequences/-/diff-sequences-26.6.2.tgz", - "integrity": "sha512-Mv/TDa3nZ9sbc5soK+OoA74BsS3mL37yixCvUAQkiuA4Wz6YtwP/K47n2rv2ovzHZvoiQeA5FTQOschKkEwB0Q==", + "version": "27.0.1", + "resolved": "https://registry.npmjs.org/diff-sequences/-/diff-sequences-27.0.1.tgz", + "integrity": "sha512-XPLijkfJUh/PIBnfkcSHgvD6tlYixmcMAn3osTk6jt+H0v/mgURto1XUiD9DKuGX5NDoVS6dSlA23gd9FUaCFg==", "dev": true }, "dir-glob": { @@ -23752,16 +23238,6 @@ } } }, - "ecc-jsbn": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz", - "integrity": "sha1-OoOpBOVDUyh4dMVkt1SThoSamMk=", - "dev": true, - "requires": { - "jsbn": "~0.1.0", - "safer-buffer": "^2.1.0" - } - }, "ee-first": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", @@ -23775,9 +23251,9 @@ "dev": true }, "emittery": { - "version": "0.7.2", - "resolved": "https://registry.npmjs.org/emittery/-/emittery-0.7.2.tgz", - "integrity": "sha512-A8OG5SR/ij3SsJdWDJdkkSYUjQdCUx6APQXem0SaEePBSRg4eymGYwBkKo1Y6DU+af/Jn2dBQqDBvjnr9Vi8nQ==", + "version": "0.8.1", + "resolved": "https://registry.npmjs.org/emittery/-/emittery-0.8.1.tgz", + "integrity": "sha512-uDfvUjVrfGJJhymx/kz6prltenw1u7WrCg1oa94zYY8xxVpLLUu045LAT0dhDZdXG58/EpPL/5kA180fQ/qudg==", "dev": true }, "emoji-regex": { @@ -24414,12 +23890,6 @@ "original": "^1.0.0" } }, - "exec-sh": { - "version": "0.3.6", - "resolved": "https://registry.npmjs.org/exec-sh/-/exec-sh-0.3.6.tgz", - "integrity": "sha512-nQn+hI3yp+oD0huYhKwvYI32+JFeq+XkNcD1GAo3Y/MjxsfVGmrrzrnzjWiNY6f+pUCP440fThsFh5gZrRAU/w==", - "dev": true - }, "execa": { "version": "4.1.0", "resolved": "https://registry.npmjs.org/execa/-/execa-4.1.0.tgz", @@ -24528,41 +23998,23 @@ } }, "expect": { - "version": "26.6.2", - "resolved": "https://registry.npmjs.org/expect/-/expect-26.6.2.tgz", - "integrity": "sha512-9/hlOBkQl2l/PLHJx6JjoDF6xPKcJEsUlWKb23rKE7KzeDqUZKXKNMW27KIue5JMdBV9HgmoJPcc8HtO85t9IA==", + "version": "27.0.2", + "resolved": "https://registry.npmjs.org/expect/-/expect-27.0.2.tgz", + "integrity": "sha512-YJFNJe2+P2DqH+ZrXy+ydRQYO87oxRUonZImpDodR1G7qo3NYd3pL+NQ9Keqpez3cehczYwZDBC3A7xk3n7M/w==", "dev": true, "requires": { - "@jest/types": "^26.6.2", - "ansi-styles": "^4.0.0", - "jest-get-type": "^26.3.0", - "jest-matcher-utils": "^26.6.2", - "jest-message-util": "^26.6.2", - "jest-regex-util": "^26.0.0" + "@jest/types": "^27.0.2", + "ansi-styles": "^5.0.0", + "jest-get-type": "^27.0.1", + "jest-matcher-utils": "^27.0.2", + "jest-message-util": "^27.0.2", + "jest-regex-util": "^27.0.1" }, "dependencies": { "ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "requires": { - "color-convert": "^2.0.1" - } - }, - "color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "requires": { - "color-name": "~1.1.4" - } - }, - "color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", + "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", "dev": true } } @@ -24687,12 +24139,6 @@ } } }, - "extsprintf": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz", - "integrity": "sha1-lpGEQOMEGnpBT4xS48V06zw+HgU=", - "dev": true - }, "eyes": { "version": "0.1.8", "resolved": "https://registry.npmjs.org/eyes/-/eyes-0.1.8.tgz", @@ -24933,20 +24379,14 @@ "integrity": "sha1-gQaNKVqBQuwKxybG4iAMMPttXoA=", "dev": true }, - "forever-agent": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz", - "integrity": "sha1-+8cfDEGt6zf5bFd60e1C2P2sypE=", - "dev": true - }, "form-data": { - "version": "2.3.3", - "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.3.3.tgz", - "integrity": "sha512-1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ==", + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-3.0.1.tgz", + "integrity": "sha512-RHkBKtLWUVwd7SqRIvCZMEvAMoGUp0XU+seQiZejj0COz3RI3hWP4sCv3gZWWLjJTd7rGwcsF5eKZGii0r/hbg==", "dev": true, "requires": { "asynckit": "^0.4.0", - "combined-stream": "^1.0.6", + "combined-stream": "^1.0.8", "mime-types": "^2.1.12" } }, @@ -25309,15 +24749,6 @@ "integrity": "sha1-3BXKHGcjh8p2vTesCjlbogQqLCg=", "dev": true }, - "getpass": { - "version": "0.1.7", - "resolved": "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz", - "integrity": "sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo=", - "dev": true, - "requires": { - "assert-plus": "^1.0.0" - } - }, "git-raw-commits": { "version": "2.0.10", "resolved": "https://registry.npmjs.org/git-raw-commits/-/git-raw-commits-2.0.10.tgz", @@ -25458,13 +24889,6 @@ "integrity": "sha512-nTnJ528pbqxYanhpDYsi4Rd8MAeaBA67+RZ10CM1m3bTAVFEDcd5AuA4a6W5YkGZ1iNXHzZz8T6TBKLeBuNriQ==", "dev": true }, - "growly": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/growly/-/growly-1.3.0.tgz", - "integrity": "sha1-8QdIy+dq+WS3yWyTxrzCivEgwIE=", - "dev": true, - "optional": true - }, "handle-thing": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/handle-thing/-/handle-thing-2.0.1.tgz", @@ -25492,22 +24916,6 @@ } } }, - "har-schema": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/har-schema/-/har-schema-2.0.0.tgz", - "integrity": "sha1-qUwiJOvKwEeCoNkDVSHyRzW37JI=", - "dev": true - }, - "har-validator": { - "version": "5.1.5", - "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-5.1.5.tgz", - "integrity": "sha512-nmT2T0lljbxdQZfspsno9hgrG3Uir6Ks5afism62poxqBM6sDnMEuPmzTq8XN0OEwqKLLdh1jQI3qyE66Nzb3w==", - "dev": true, - "requires": { - "ajv": "^6.12.3", - "har-schema": "^2.0.0" - } - }, "hard-rejection": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/hard-rejection/-/hard-rejection-2.1.0.tgz", @@ -25682,6 +25090,17 @@ "requires-port": "^1.0.0" } }, + "http-proxy-agent": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-4.0.1.tgz", + "integrity": "sha512-k0zdNgqWTGA6aeIRVpvfVob4fL52dTfaehylg0Y4UvSySvOq/Y+BOyPrgpUrA7HylqvU8vIZGsRuXmspskV0Tg==", + "dev": true, + "requires": { + "@tootallnate/once": "1", + "agent-base": "6", + "debug": "4" + } + }, "http-proxy-middleware": { "version": "0.19.1", "resolved": "https://registry.npmjs.org/http-proxy-middleware/-/http-proxy-middleware-0.19.1.tgz", @@ -25694,15 +25113,14 @@ "micromatch": "^3.1.10" } }, - "http-signature": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.2.0.tgz", - "integrity": "sha1-muzZJRFHcvPZW2WmCruPfBj7rOE=", + "https-proxy-agent": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-5.0.0.tgz", + "integrity": "sha512-EkYm5BcKUGiduxzSt3Eppko+PiNWNEpa4ySk9vTC6wDsQJW9rHSa+UhGNJoRYp7bz6Ht1eaRIa6QaJqO5rCFbA==", "dev": true, "requires": { - "assert-plus": "^1.0.0", - "jsprim": "^1.2.2", - "sshpk": "^1.7.0" + "agent-base": "6", + "debug": "4" } }, "human-signals": { @@ -26083,12 +25501,12 @@ "dev": true }, "is-ci": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-ci/-/is-ci-2.0.0.tgz", - "integrity": "sha512-YfJT7rkpQB0updsdHLGWrvhBJfcfzNNawYDNIyQXJz0IViGf75O8EBPKSdvw2rF+LGCsX4FZ8tcr3b19LcZq4w==", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-ci/-/is-ci-3.0.0.tgz", + "integrity": "sha512-kDXyttuLeslKAHYL/K28F2YkM3x5jvFPEw3yXbRptXydjD9rpLEz+C5K5iutY9ZiUu6AP41JdvRQwF4Iqs4ZCQ==", "dev": true, "requires": { - "ci-info": "^2.0.0" + "ci-info": "^3.1.1" } }, "is-core-module": { @@ -26142,13 +25560,6 @@ } } }, - "is-docker": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/is-docker/-/is-docker-2.2.1.tgz", - "integrity": "sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ==", - "dev": true, - "optional": true - }, "is-extendable": { "version": "0.1.1", "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", @@ -26338,16 +25749,6 @@ "integrity": "sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==", "dev": true }, - "is-wsl": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-2.2.0.tgz", - "integrity": "sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww==", - "dev": true, - "optional": true, - "requires": { - "is-docker": "^2.0.0" - } - }, "isarray": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", @@ -26457,76 +25858,102 @@ } }, "jest": { - "version": "26.6.3", - "resolved": "https://registry.npmjs.org/jest/-/jest-26.6.3.tgz", - "integrity": "sha512-lGS5PXGAzR4RF7V5+XObhqz2KZIDUA1yD0DG6pBVmy10eh0ZIXQImRuzocsI/N2XZ1GrLFwTS27In2i2jlpq1Q==", + "version": "27.0.4", + "resolved": "https://registry.npmjs.org/jest/-/jest-27.0.4.tgz", + "integrity": "sha512-Px1iKFooXgGSkk1H8dJxxBIrM3tsc5SIuI4kfKYK2J+4rvCvPGr/cXktxh0e9zIPQ5g09kOMNfHQEmusBUf/ZA==", "dev": true, "requires": { - "@jest/core": "^26.6.3", + "@jest/core": "^27.0.4", "import-local": "^3.0.2", - "jest-cli": "^26.6.3" + "jest-cli": "^27.0.4" } }, "jest-changed-files": { - "version": "26.6.2", - "resolved": "https://registry.npmjs.org/jest-changed-files/-/jest-changed-files-26.6.2.tgz", - "integrity": "sha512-fDS7szLcY9sCtIip8Fjry9oGf3I2ht/QT21bAHm5Dmf0mD4X3ReNUf17y+bO6fR8WgbIZTlbyG1ak/53cbRzKQ==", - "dev": true, - "requires": { - "@jest/types": "^26.6.2", - "execa": "^4.0.0", - "throat": "^5.0.0" - } - }, - "jest-cli": { - "version": "26.6.3", - "resolved": "https://registry.npmjs.org/jest-cli/-/jest-cli-26.6.3.tgz", - "integrity": "sha512-GF9noBSa9t08pSyl3CY4frMrqp+aQXFGFkf5hEPbh/pIUFYWMK6ZLTfbmadxJVcJrdRoChlWQsA2VkJcDFK8hg==", + "version": "27.0.2", + "resolved": "https://registry.npmjs.org/jest-changed-files/-/jest-changed-files-27.0.2.tgz", + "integrity": "sha512-eMeb1Pn7w7x3wue5/vF73LPCJ7DKQuC9wQUR5ebP9hDPpk5hzcT/3Hmz3Q5BOFpR3tgbmaWhJcMTVgC8Z1NuMw==", "dev": true, "requires": { - "@jest/core": "^26.6.3", - "@jest/test-result": "^26.6.2", - "@jest/types": "^26.6.2", - "chalk": "^4.0.0", - "exit": "^0.1.2", - "graceful-fs": "^4.2.4", - "import-local": "^3.0.2", - "is-ci": "^2.0.0", - "jest-config": "^26.6.3", - "jest-util": "^26.6.2", - "jest-validate": "^26.6.2", - "prompts": "^2.0.1", - "yargs": "^15.4.1" + "@jest/types": "^27.0.2", + "execa": "^5.0.0", + "throat": "^6.0.1" }, "dependencies": { - "ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "execa": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/execa/-/execa-5.1.1.tgz", + "integrity": "sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==", "dev": true, "requires": { - "color-convert": "^2.0.1" + "cross-spawn": "^7.0.3", + "get-stream": "^6.0.0", + "human-signals": "^2.1.0", + "is-stream": "^2.0.0", + "merge-stream": "^2.0.0", + "npm-run-path": "^4.0.1", + "onetime": "^5.1.2", + "signal-exit": "^3.0.3", + "strip-final-newline": "^2.0.0" } }, - "chalk": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.1.tgz", - "integrity": "sha512-diHzdDKxcU+bAsUboHLPEDQiw0qEe0qd7SYUn3HgcFlWgbDcfLGswOHYeGrHKzG9z6UYf01d9VFMfZxPM1xZSg==", - "dev": true, - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" + "get-stream": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz", + "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==", + "dev": true + }, + "human-signals": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-2.1.0.tgz", + "integrity": "sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==", + "dev": true + } + } + }, + "jest-circus": { + "version": "27.0.4", + "resolved": "https://registry.npmjs.org/jest-circus/-/jest-circus-27.0.4.tgz", + "integrity": "sha512-QD+eblDiRphta630WRKewuASLs/oY1Zki2G4bccntRvrTHQ63ljwFR5TLduuK4Zg0ZPzW0+8o6AP7KRd1yKOjw==", + "dev": true, + "requires": { + "@jest/environment": "^27.0.3", + "@jest/test-result": "^27.0.2", + "@jest/types": "^27.0.2", + "@types/node": "*", + "chalk": "^4.0.0", + "co": "^4.6.0", + "dedent": "^0.7.0", + "expect": "^27.0.2", + "is-generator-fn": "^2.0.0", + "jest-each": "^27.0.2", + "jest-matcher-utils": "^27.0.2", + "jest-message-util": "^27.0.2", + "jest-runtime": "^27.0.4", + "jest-snapshot": "^27.0.4", + "jest-util": "^27.0.2", + "pretty-format": "^27.0.2", + "slash": "^3.0.0", + "stack-utils": "^2.0.3", + "throat": "^6.0.1" + }, + "dependencies": { + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "requires": { + "color-convert": "^2.0.1" } }, - "cliui": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-6.0.0.tgz", - "integrity": "sha512-t6wbgtoCXvAzst7QgXxJYqPt0usEfbgQdftEPbLL/cvv6HPE5VgvqCuAIDR0NgU52ds6rFwqrgakNLrHEjCbrQ==", + "chalk": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.1.tgz", + "integrity": "sha512-diHzdDKxcU+bAsUboHLPEDQiw0qEe0qd7SYUn3HgcFlWgbDcfLGswOHYeGrHKzG9z6UYf01d9VFMfZxPM1xZSg==", "dev": true, "requires": { - "string-width": "^4.2.0", - "strip-ansi": "^6.0.0", - "wrap-ansi": "^6.2.0" + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" } }, "color-convert": { @@ -26544,60 +25971,89 @@ "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", "dev": true }, - "find-up": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", - "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", - "dev": true, - "requires": { - "locate-path": "^5.0.0", - "path-exists": "^4.0.0" - } - }, "has-flag": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", "dev": true }, - "locate-path": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", - "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", + "slash": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", + "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", + "dev": true + }, + "supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", "dev": true, "requires": { - "p-locate": "^4.1.0" + "has-flag": "^4.0.0" } - }, - "p-limit": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", - "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", + } + } + }, + "jest-cli": { + "version": "27.0.4", + "resolved": "https://registry.npmjs.org/jest-cli/-/jest-cli-27.0.4.tgz", + "integrity": "sha512-E0T+/i2lxsWAzV7LKYd0SB7HUAvePqaeIh5vX43/G5jXLhv1VzjYzJAGEkTfvxV774ll9cyE2ljcL73PVMEOXQ==", + "dev": true, + "requires": { + "@jest/core": "^27.0.4", + "@jest/test-result": "^27.0.2", + "@jest/types": "^27.0.2", + "chalk": "^4.0.0", + "exit": "^0.1.2", + "graceful-fs": "^4.2.4", + "import-local": "^3.0.2", + "jest-config": "^27.0.4", + "jest-util": "^27.0.2", + "jest-validate": "^27.0.2", + "prompts": "^2.0.1", + "yargs": "^16.0.3" + }, + "dependencies": { + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", "dev": true, "requires": { - "p-try": "^2.0.0" + "color-convert": "^2.0.1" } }, - "p-locate": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", - "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", + "chalk": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.1.tgz", + "integrity": "sha512-diHzdDKxcU+bAsUboHLPEDQiw0qEe0qd7SYUn3HgcFlWgbDcfLGswOHYeGrHKzG9z6UYf01d9VFMfZxPM1xZSg==", "dev": true, "requires": { - "p-limit": "^2.2.0" + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" } }, - "string-width": { - "version": "4.2.2", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.2.tgz", - "integrity": "sha512-XBJbT3N4JhVumXE0eoLU9DCjcaF92KLNqTmFCnG1pf8duUxFGwtP6AD6nkjw9a3IdiRtL3E2w3JDiE/xi3vOeA==", + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", "dev": true, "requires": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.0" + "color-name": "~1.1.4" } }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true + }, "supports-color": { "version": "7.2.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", @@ -26606,79 +26062,36 @@ "requires": { "has-flag": "^4.0.0" } - }, - "wrap-ansi": { - "version": "6.2.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-6.2.0.tgz", - "integrity": "sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==", - "dev": true, - "requires": { - "ansi-styles": "^4.0.0", - "string-width": "^4.1.0", - "strip-ansi": "^6.0.0" - } - }, - "y18n": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.3.tgz", - "integrity": "sha512-JKhqTOwSrqNA1NY5lSztJ1GrBiUodLMmIZuLiDaMRJ+itFd+ABVE8XBjOvIWL+rSqNDC74LCSFmlb/U4UZ4hJQ==", - "dev": true - }, - "yargs": { - "version": "15.4.1", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-15.4.1.tgz", - "integrity": "sha512-aePbxDmcYW++PaqBsJ+HYUFwCdv4LVvdnhBy78E57PIor8/OVvhMrADFFEDh8DHDFRv/O9i3lPhsENjO7QX0+A==", - "dev": true, - "requires": { - "cliui": "^6.0.0", - "decamelize": "^1.2.0", - "find-up": "^4.1.0", - "get-caller-file": "^2.0.1", - "require-directory": "^2.1.1", - "require-main-filename": "^2.0.0", - "set-blocking": "^2.0.0", - "string-width": "^4.2.0", - "which-module": "^2.0.0", - "y18n": "^4.0.0", - "yargs-parser": "^18.1.2" - } - }, - "yargs-parser": { - "version": "18.1.3", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-18.1.3.tgz", - "integrity": "sha512-o50j0JeToy/4K6OZcaQmW6lyXXKhq7csREXcDwk2omFPJEwUNOVtJKvmDr9EI1fAJZUyZcRF7kxGBWmRXudrCQ==", - "dev": true, - "requires": { - "camelcase": "^5.0.0", - "decamelize": "^1.2.0" - } } } }, "jest-config": { - "version": "26.6.3", - "resolved": "https://registry.npmjs.org/jest-config/-/jest-config-26.6.3.tgz", - "integrity": "sha512-t5qdIj/bCj2j7NFVHb2nFB4aUdfucDn3JRKgrZnplb8nieAirAzRSHP8uDEd+qV6ygzg9Pz4YG7UTJf94LPSyg==", + "version": "27.0.4", + "resolved": "https://registry.npmjs.org/jest-config/-/jest-config-27.0.4.tgz", + "integrity": "sha512-VkQFAHWnPQefdvHU9A+G3H/Z3NrrTKqWpvxgQz3nkUdkDTWeKJE6e//BL+R7z79dXOMVksYgM/z6ndtN0hfChg==", "dev": true, "requires": { "@babel/core": "^7.1.0", - "@jest/test-sequencer": "^26.6.3", - "@jest/types": "^26.6.2", - "babel-jest": "^26.6.3", + "@jest/test-sequencer": "^27.0.4", + "@jest/types": "^27.0.2", + "babel-jest": "^27.0.2", "chalk": "^4.0.0", "deepmerge": "^4.2.2", "glob": "^7.1.1", "graceful-fs": "^4.2.4", - "jest-environment-jsdom": "^26.6.2", - "jest-environment-node": "^26.6.2", - "jest-get-type": "^26.3.0", - "jest-jasmine2": "^26.6.3", - "jest-regex-util": "^26.0.0", - "jest-resolve": "^26.6.2", - "jest-util": "^26.6.2", - "jest-validate": "^26.6.2", - "micromatch": "^4.0.2", - "pretty-format": "^26.6.2" + "is-ci": "^3.0.0", + "jest-circus": "^27.0.4", + "jest-environment-jsdom": "^27.0.3", + "jest-environment-node": "^27.0.3", + "jest-get-type": "^27.0.1", + "jest-jasmine2": "^27.0.4", + "jest-regex-util": "^27.0.1", + "jest-resolve": "^27.0.4", + "jest-runner": "^27.0.4", + "jest-util": "^27.0.2", + "jest-validate": "^27.0.2", + "micromatch": "^4.0.4", + "pretty-format": "^27.0.2" }, "dependencies": { "ansi-styles": { @@ -26776,15 +26189,15 @@ } }, "jest-diff": { - "version": "26.6.2", - "resolved": "https://registry.npmjs.org/jest-diff/-/jest-diff-26.6.2.tgz", - "integrity": "sha512-6m+9Z3Gv9wN0WFVasqjCL/06+EFCMTqDEUl/b87HYK2rAPTyfz4ZIuSlPhY51PIQRWx5TaxeF1qmXKe9gfN3sA==", + "version": "27.0.2", + "resolved": "https://registry.npmjs.org/jest-diff/-/jest-diff-27.0.2.tgz", + "integrity": "sha512-BFIdRb0LqfV1hBt8crQmw6gGQHVDhM87SpMIZ45FPYKReZYG5er1+5pIn2zKqvrJp6WNox0ylR8571Iwk2Dmgw==", "dev": true, "requires": { "chalk": "^4.0.0", - "diff-sequences": "^26.6.2", - "jest-get-type": "^26.3.0", - "pretty-format": "^26.6.2" + "diff-sequences": "^27.0.1", + "jest-get-type": "^27.0.1", + "pretty-format": "^27.0.2" }, "dependencies": { "ansi-styles": { @@ -26839,25 +26252,25 @@ } }, "jest-docblock": { - "version": "26.0.0", - "resolved": "https://registry.npmjs.org/jest-docblock/-/jest-docblock-26.0.0.tgz", - "integrity": "sha512-RDZ4Iz3QbtRWycd8bUEPxQsTlYazfYn/h5R65Fc6gOfwozFhoImx+affzky/FFBuqISPTqjXomoIGJVKBWoo0w==", + "version": "27.0.1", + "resolved": "https://registry.npmjs.org/jest-docblock/-/jest-docblock-27.0.1.tgz", + "integrity": "sha512-TA4+21s3oebURc7VgFV4r7ltdIJ5rtBH1E3Tbovcg7AV+oLfD5DcJ2V2vJ5zFA9sL5CFd/d2D6IpsAeSheEdrA==", "dev": true, "requires": { "detect-newline": "^3.0.0" } }, "jest-each": { - "version": "26.6.2", - "resolved": "https://registry.npmjs.org/jest-each/-/jest-each-26.6.2.tgz", - "integrity": "sha512-Mer/f0KaATbjl8MCJ+0GEpNdqmnVmDYqCTJYTvoo7rqmRiDllmp2AYN+06F93nXcY3ur9ShIjS+CO/uD+BbH4A==", + "version": "27.0.2", + "resolved": "https://registry.npmjs.org/jest-each/-/jest-each-27.0.2.tgz", + "integrity": "sha512-OLMBZBZ6JkoXgUenDtseFRWA43wVl2BwmZYIWQws7eS7pqsIvePqj/jJmEnfq91ALk3LNphgwNK/PRFBYi7ITQ==", "dev": true, "requires": { - "@jest/types": "^26.6.2", + "@jest/types": "^27.0.2", "chalk": "^4.0.0", - "jest-get-type": "^26.3.0", - "jest-util": "^26.6.2", - "pretty-format": "^26.6.2" + "jest-get-type": "^27.0.1", + "jest-util": "^27.0.2", + "pretty-format": "^27.0.2" }, "dependencies": { "ansi-styles": { @@ -26912,59 +26325,58 @@ } }, "jest-environment-jsdom": { - "version": "26.6.2", - "resolved": "https://registry.npmjs.org/jest-environment-jsdom/-/jest-environment-jsdom-26.6.2.tgz", - "integrity": "sha512-jgPqCruTlt3Kwqg5/WVFyHIOJHsiAvhcp2qiR2QQstuG9yWox5+iHpU3ZrcBxW14T4fe5Z68jAfLRh7joCSP2Q==", + "version": "27.0.3", + "resolved": "https://registry.npmjs.org/jest-environment-jsdom/-/jest-environment-jsdom-27.0.3.tgz", + "integrity": "sha512-5KLmgv1bhiimpSA8oGTnZYk6g4fsNyZiA/6gI2tAZUgrufd7heRUSVh4gRokzZVEj8zlwAQYT0Zs6tuJSW/ECA==", "dev": true, "requires": { - "@jest/environment": "^26.6.2", - "@jest/fake-timers": "^26.6.2", - "@jest/types": "^26.6.2", + "@jest/environment": "^27.0.3", + "@jest/fake-timers": "^27.0.3", + "@jest/types": "^27.0.2", "@types/node": "*", - "jest-mock": "^26.6.2", - "jest-util": "^26.6.2", - "jsdom": "^16.4.0" + "jest-mock": "^27.0.3", + "jest-util": "^27.0.2", + "jsdom": "^16.6.0" } }, "jest-environment-node": { - "version": "26.6.2", - "resolved": "https://registry.npmjs.org/jest-environment-node/-/jest-environment-node-26.6.2.tgz", - "integrity": "sha512-zhtMio3Exty18dy8ee8eJ9kjnRyZC1N4C1Nt/VShN1apyXc8rWGtJ9lI7vqiWcyyXS4BVSEn9lxAM2D+07/Tag==", + "version": "27.0.3", + "resolved": "https://registry.npmjs.org/jest-environment-node/-/jest-environment-node-27.0.3.tgz", + "integrity": "sha512-co2/IVnIFL3cItpFULCvXFg9us4gvWXgs7mutAMPCbFhcqh56QAOdKhNzC2+RycsC/k4mbMj1VF+9F/NzA0ROg==", "dev": true, "requires": { - "@jest/environment": "^26.6.2", - "@jest/fake-timers": "^26.6.2", - "@jest/types": "^26.6.2", + "@jest/environment": "^27.0.3", + "@jest/fake-timers": "^27.0.3", + "@jest/types": "^27.0.2", "@types/node": "*", - "jest-mock": "^26.6.2", - "jest-util": "^26.6.2" + "jest-mock": "^27.0.3", + "jest-util": "^27.0.2" } }, "jest-get-type": { - "version": "26.3.0", - "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-26.3.0.tgz", - "integrity": "sha512-TpfaviN1R2pQWkIihlfEanwOXK0zcxrKEE4MlU6Tn7keoXdN6/3gK/xl0yEh8DOunn5pOVGKf8hB4R9gVh04ig==", + "version": "27.0.1", + "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-27.0.1.tgz", + "integrity": "sha512-9Tggo9zZbu0sHKebiAijyt1NM77Z0uO4tuWOxUCujAiSeXv30Vb5D4xVF4UR4YWNapcftj+PbByU54lKD7/xMg==", "dev": true }, "jest-haste-map": { - "version": "26.6.2", - "resolved": "https://registry.npmjs.org/jest-haste-map/-/jest-haste-map-26.6.2.tgz", - "integrity": "sha512-easWIJXIw71B2RdR8kgqpjQrbMRWQBgiBwXYEhtGUTaX+doCjBheluShdDMeR8IMfJiTqH4+zfhtg29apJf/8w==", + "version": "27.0.2", + "resolved": "https://registry.npmjs.org/jest-haste-map/-/jest-haste-map-27.0.2.tgz", + "integrity": "sha512-37gYfrYjjhEfk37C4bCMWAC0oPBxDpG0qpl8lYg8BT//wf353YT/fzgA7+Dq0EtM7rPFS3JEcMsxdtDwNMi2cA==", "dev": true, "requires": { - "@jest/types": "^26.6.2", + "@jest/types": "^27.0.2", "@types/graceful-fs": "^4.1.2", "@types/node": "*", "anymatch": "^3.0.3", "fb-watchman": "^2.0.0", - "fsevents": "^2.1.2", + "fsevents": "^2.3.2", "graceful-fs": "^4.2.4", - "jest-regex-util": "^26.0.0", - "jest-serializer": "^26.6.2", - "jest-util": "^26.6.2", - "jest-worker": "^26.6.2", - "micromatch": "^4.0.2", - "sane": "^4.0.3", + "jest-regex-util": "^27.0.1", + "jest-serializer": "^27.0.1", + "jest-util": "^27.0.2", + "jest-worker": "^27.0.2", + "micromatch": "^4.0.4", "walker": "^1.0.7" }, "dependencies": { @@ -26996,12 +26408,29 @@ "to-regex-range": "^5.0.1" } }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true + }, "is-number": { "version": "7.0.0", "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", "dev": true }, + "jest-worker": { + "version": "27.0.2", + "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-27.0.2.tgz", + "integrity": "sha512-EoBdilOTTyOgmHXtw/cPc+ZrCA0KJMrkXzkrPGNwLmnvvlN1nj7MPrxpT7m+otSv2e1TLaVffzDnE/LB14zJMg==", + "dev": true, + "requires": { + "@types/node": "*", + "merge-stream": "^2.0.0", + "supports-color": "^8.0.0" + } + }, "micromatch": { "version": "4.0.4", "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.4.tgz", @@ -27012,6 +26441,15 @@ "picomatch": "^2.2.3" } }, + "supports-color": { + "version": "8.1.1", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", + "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", + "dev": true, + "requires": { + "has-flag": "^4.0.0" + } + }, "to-regex-range": { "version": "5.0.1", "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", @@ -27024,29 +26462,29 @@ } }, "jest-jasmine2": { - "version": "26.6.3", - "resolved": "https://registry.npmjs.org/jest-jasmine2/-/jest-jasmine2-26.6.3.tgz", - "integrity": "sha512-kPKUrQtc8aYwBV7CqBg5pu+tmYXlvFlSFYn18ev4gPFtrRzB15N2gW/Roew3187q2w2eHuu0MU9TJz6w0/nPEg==", + "version": "27.0.4", + "resolved": "https://registry.npmjs.org/jest-jasmine2/-/jest-jasmine2-27.0.4.tgz", + "integrity": "sha512-yj3WrjjquZwkJw+eA4c9yucHw4/+EHndHWSqgHbHGQfT94ihaaQsa009j1a0puU8CNxPDk0c1oAPeOpdJUElwA==", "dev": true, "requires": { "@babel/traverse": "^7.1.0", - "@jest/environment": "^26.6.2", - "@jest/source-map": "^26.6.2", - "@jest/test-result": "^26.6.2", - "@jest/types": "^26.6.2", + "@jest/environment": "^27.0.3", + "@jest/source-map": "^27.0.1", + "@jest/test-result": "^27.0.2", + "@jest/types": "^27.0.2", "@types/node": "*", "chalk": "^4.0.0", "co": "^4.6.0", - "expect": "^26.6.2", + "expect": "^27.0.2", "is-generator-fn": "^2.0.0", - "jest-each": "^26.6.2", - "jest-matcher-utils": "^26.6.2", - "jest-message-util": "^26.6.2", - "jest-runtime": "^26.6.3", - "jest-snapshot": "^26.6.2", - "jest-util": "^26.6.2", - "pretty-format": "^26.6.2", - "throat": "^5.0.0" + "jest-each": "^27.0.2", + "jest-matcher-utils": "^27.0.2", + "jest-message-util": "^27.0.2", + "jest-runtime": "^27.0.4", + "jest-snapshot": "^27.0.4", + "jest-util": "^27.0.2", + "pretty-format": "^27.0.2", + "throat": "^6.0.1" }, "dependencies": { "ansi-styles": { @@ -27101,25 +26539,25 @@ } }, "jest-leak-detector": { - "version": "26.6.2", - "resolved": "https://registry.npmjs.org/jest-leak-detector/-/jest-leak-detector-26.6.2.tgz", - "integrity": "sha512-i4xlXpsVSMeKvg2cEKdfhh0H39qlJlP5Ex1yQxwF9ubahboQYMgTtz5oML35AVA3B4Eu+YsmwaiKVev9KCvLxg==", + "version": "27.0.2", + "resolved": "https://registry.npmjs.org/jest-leak-detector/-/jest-leak-detector-27.0.2.tgz", + "integrity": "sha512-TZA3DmCOfe8YZFIMD1GxFqXUkQnIoOGQyy4hFCA2mlHtnAaf+FeOMxi0fZmfB41ZL+QbFG6BVaZF5IeFIVy53Q==", "dev": true, "requires": { - "jest-get-type": "^26.3.0", - "pretty-format": "^26.6.2" + "jest-get-type": "^27.0.1", + "pretty-format": "^27.0.2" } }, "jest-matcher-utils": { - "version": "26.6.2", - "resolved": "https://registry.npmjs.org/jest-matcher-utils/-/jest-matcher-utils-26.6.2.tgz", - "integrity": "sha512-llnc8vQgYcNqDrqRDXWwMr9i7rS5XFiCwvh6DTP7Jqa2mqpcCBBlpCbn+trkG0KNhPu/h8rzyBkriOtBstvWhw==", + "version": "27.0.2", + "resolved": "https://registry.npmjs.org/jest-matcher-utils/-/jest-matcher-utils-27.0.2.tgz", + "integrity": "sha512-Qczi5xnTNjkhcIB0Yy75Txt+Ez51xdhOxsukN7awzq2auZQGPHcQrJ623PZj0ECDEMOk2soxWx05EXdXGd1CbA==", "dev": true, "requires": { "chalk": "^4.0.0", - "jest-diff": "^26.6.2", - "jest-get-type": "^26.3.0", - "pretty-format": "^26.6.2" + "jest-diff": "^27.0.2", + "jest-get-type": "^27.0.1", + "pretty-format": "^27.0.2" }, "dependencies": { "ansi-styles": { @@ -27174,20 +26612,20 @@ } }, "jest-message-util": { - "version": "26.6.2", - "resolved": "https://registry.npmjs.org/jest-message-util/-/jest-message-util-26.6.2.tgz", - "integrity": "sha512-rGiLePzQ3AzwUshu2+Rn+UMFk0pHN58sOG+IaJbk5Jxuqo3NYO1U2/MIR4S1sKgsoYSXSzdtSa0TgrmtUwEbmA==", + "version": "27.0.2", + "resolved": "https://registry.npmjs.org/jest-message-util/-/jest-message-util-27.0.2.tgz", + "integrity": "sha512-rTqWUX42ec2LdMkoUPOzrEd1Tcm+R1KfLOmFK+OVNo4MnLsEaxO5zPDb2BbdSmthdM/IfXxOZU60P/WbWF8BTw==", "dev": true, "requires": { - "@babel/code-frame": "^7.0.0", - "@jest/types": "^26.6.2", + "@babel/code-frame": "^7.12.13", + "@jest/types": "^27.0.2", "@types/stack-utils": "^2.0.0", "chalk": "^4.0.0", "graceful-fs": "^4.2.4", - "micromatch": "^4.0.2", - "pretty-format": "^26.6.2", + "micromatch": "^4.0.4", + "pretty-format": "^27.0.2", "slash": "^3.0.0", - "stack-utils": "^2.0.2" + "stack-utils": "^2.0.3" }, "dependencies": { "ansi-styles": { @@ -27291,12 +26729,12 @@ } }, "jest-mock": { - "version": "26.6.2", - "resolved": "https://registry.npmjs.org/jest-mock/-/jest-mock-26.6.2.tgz", - "integrity": "sha512-YyFjePHHp1LzpzYcmgqkJ0nm0gg/lJx2aZFzFy1S6eUqNjXsOqTK10zNRff2dNfssgokjkG65OlWNcIlgd3zew==", + "version": "27.0.3", + "resolved": "https://registry.npmjs.org/jest-mock/-/jest-mock-27.0.3.tgz", + "integrity": "sha512-O5FZn5XDzEp+Xg28mUz4ovVcdwBBPfAhW9+zJLO0Efn2qNbYcDaJvSlRiQ6BCZUCVOJjALicuJQI9mRFjv1o9Q==", "dev": true, "requires": { - "@jest/types": "^26.6.2", + "@jest/types": "^27.0.2", "@types/node": "*" } }, @@ -27308,24 +26746,25 @@ "requires": {} }, "jest-regex-util": { - "version": "26.0.0", - "resolved": "https://registry.npmjs.org/jest-regex-util/-/jest-regex-util-26.0.0.tgz", - "integrity": "sha512-Gv3ZIs/nA48/Zvjrl34bf+oD76JHiGDUxNOVgUjh3j890sblXryjY4rss71fPtD/njchl6PSE2hIhvyWa1eT0A==", + "version": "27.0.1", + "resolved": "https://registry.npmjs.org/jest-regex-util/-/jest-regex-util-27.0.1.tgz", + "integrity": "sha512-6nY6QVcpTgEKQy1L41P4pr3aOddneK17kn3HJw6SdwGiKfgCGTvH02hVXL0GU8GEKtPH83eD2DIDgxHXOxVohQ==", "dev": true }, "jest-resolve": { - "version": "26.6.2", - "resolved": "https://registry.npmjs.org/jest-resolve/-/jest-resolve-26.6.2.tgz", - "integrity": "sha512-sOxsZOq25mT1wRsfHcbtkInS+Ek7Q8jCHUB0ZUTP0tc/c41QHriU/NunqMfCUWsL4H3MHpvQD4QR9kSYhS7UvQ==", + "version": "27.0.4", + "resolved": "https://registry.npmjs.org/jest-resolve/-/jest-resolve-27.0.4.tgz", + "integrity": "sha512-BcfyK2i3cG79PDb/6gB6zFeFQlcqLsQjGBqznFCpA0L/3l1L/oOsltdUjs5eISAWA9HS9qtj8v2PSZr/yWxONQ==", "dev": true, "requires": { - "@jest/types": "^26.6.2", + "@jest/types": "^27.0.2", "chalk": "^4.0.0", + "escalade": "^3.1.1", "graceful-fs": "^4.2.4", "jest-pnp-resolver": "^1.2.2", - "jest-util": "^26.6.2", - "read-pkg-up": "^7.0.1", - "resolve": "^1.18.1", + "jest-util": "^27.0.2", + "jest-validate": "^27.0.2", + "resolve": "^1.20.0", "slash": "^3.0.0" }, "dependencies": { @@ -27363,104 +26802,12 @@ "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", "dev": true }, - "find-up": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", - "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", - "dev": true, - "requires": { - "locate-path": "^5.0.0", - "path-exists": "^4.0.0" - } - }, "has-flag": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", "dev": true }, - "hosted-git-info": { - "version": "2.8.9", - "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.9.tgz", - "integrity": "sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw==", - "dev": true - }, - "locate-path": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", - "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", - "dev": true, - "requires": { - "p-locate": "^4.1.0" - } - }, - "normalize-package-data": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.5.0.tgz", - "integrity": "sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==", - "dev": true, - "requires": { - "hosted-git-info": "^2.1.4", - "resolve": "^1.10.0", - "semver": "2 || 3 || 4 || 5", - "validate-npm-package-license": "^3.0.1" - } - }, - "p-limit": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", - "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", - "dev": true, - "requires": { - "p-try": "^2.0.0" - } - }, - "p-locate": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", - "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", - "dev": true, - "requires": { - "p-limit": "^2.2.0" - } - }, - "read-pkg": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-5.2.0.tgz", - "integrity": "sha512-Ug69mNOpfvKDAc2Q8DRpMjjzdtrnv9HcSMX+4VsZxD1aZ6ZzrIE7rlzXBtWTyhULSMKg076AW6WR5iZpD0JiOg==", - "dev": true, - "requires": { - "@types/normalize-package-data": "^2.4.0", - "normalize-package-data": "^2.5.0", - "parse-json": "^5.0.0", - "type-fest": "^0.6.0" - }, - "dependencies": { - "type-fest": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.6.0.tgz", - "integrity": "sha512-q+MB8nYR1KDLrgr4G5yemftpMC7/QLqVndBmEEdqzmNj5dcFOO4Oo8qlwZE3ULT3+Zim1F8Kq4cBnikNhlCMlg==", - "dev": true - } - } - }, - "read-pkg-up": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-7.0.1.tgz", - "integrity": "sha512-zK0TB7Xd6JpCLmlLmufqykGE+/TlOePD6qKClNW7hHDKFh/J7/7gCWGR7joEQEW1bKq3a3yUZSObOoWLFQ4ohg==", - "dev": true, - "requires": { - "find-up": "^4.1.0", - "read-pkg": "^5.2.0", - "type-fest": "^0.8.1" - } - }, - "semver": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", - "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", - "dev": true - }, "slash": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", @@ -27475,52 +26822,48 @@ "requires": { "has-flag": "^4.0.0" } - }, - "type-fest": { - "version": "0.8.1", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.8.1.tgz", - "integrity": "sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==", - "dev": true } } }, "jest-resolve-dependencies": { - "version": "26.6.3", - "resolved": "https://registry.npmjs.org/jest-resolve-dependencies/-/jest-resolve-dependencies-26.6.3.tgz", - "integrity": "sha512-pVwUjJkxbhe4RY8QEWzN3vns2kqyuldKpxlxJlzEYfKSvY6/bMvxoFrYYzUO1Gx28yKWN37qyV7rIoIp2h8fTg==", + "version": "27.0.4", + "resolved": "https://registry.npmjs.org/jest-resolve-dependencies/-/jest-resolve-dependencies-27.0.4.tgz", + "integrity": "sha512-F33UPfw1YGWCV2uxJl7wD6TvcQn5IC0LtguwY3r4L7R6H4twpLkp5Q2ZfzRx9A2I3G8feiy0O0sqcn/Qoym71A==", "dev": true, "requires": { - "@jest/types": "^26.6.2", - "jest-regex-util": "^26.0.0", - "jest-snapshot": "^26.6.2" + "@jest/types": "^27.0.2", + "jest-regex-util": "^27.0.1", + "jest-snapshot": "^27.0.4" } }, "jest-runner": { - "version": "26.6.3", - "resolved": "https://registry.npmjs.org/jest-runner/-/jest-runner-26.6.3.tgz", - "integrity": "sha512-atgKpRHnaA2OvByG/HpGA4g6CSPS/1LK0jK3gATJAoptC1ojltpmVlYC3TYgdmGp+GLuhzpH30Gvs36szSL2JQ==", + "version": "27.0.4", + "resolved": "https://registry.npmjs.org/jest-runner/-/jest-runner-27.0.4.tgz", + "integrity": "sha512-NfmvSYLCsCJk2AG8Ar2NAh4PhsJJpO+/r+g4bKR5L/5jFzx/indUpnVBdrfDvuqhGLLAvrKJ9FM/Nt8o1dsqxg==", "dev": true, "requires": { - "@jest/console": "^26.6.2", - "@jest/environment": "^26.6.2", - "@jest/test-result": "^26.6.2", - "@jest/types": "^26.6.2", + "@jest/console": "^27.0.2", + "@jest/environment": "^27.0.3", + "@jest/test-result": "^27.0.2", + "@jest/transform": "^27.0.2", + "@jest/types": "^27.0.2", "@types/node": "*", "chalk": "^4.0.0", - "emittery": "^0.7.1", + "emittery": "^0.8.1", "exit": "^0.1.2", "graceful-fs": "^4.2.4", - "jest-config": "^26.6.3", - "jest-docblock": "^26.0.0", - "jest-haste-map": "^26.6.2", - "jest-leak-detector": "^26.6.2", - "jest-message-util": "^26.6.2", - "jest-resolve": "^26.6.2", - "jest-runtime": "^26.6.3", - "jest-util": "^26.6.2", - "jest-worker": "^26.6.2", + "jest-docblock": "^27.0.1", + "jest-environment-jsdom": "^27.0.3", + "jest-environment-node": "^27.0.3", + "jest-haste-map": "^27.0.2", + "jest-leak-detector": "^27.0.2", + "jest-message-util": "^27.0.2", + "jest-resolve": "^27.0.4", + "jest-runtime": "^27.0.4", + "jest-util": "^27.0.2", + "jest-worker": "^27.0.2", "source-map-support": "^0.5.6", - "throat": "^5.0.0" + "throat": "^6.0.1" }, "dependencies": { "ansi-styles": { @@ -27563,6 +26906,28 @@ "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", "dev": true }, + "jest-worker": { + "version": "27.0.2", + "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-27.0.2.tgz", + "integrity": "sha512-EoBdilOTTyOgmHXtw/cPc+ZrCA0KJMrkXzkrPGNwLmnvvlN1nj7MPrxpT7m+otSv2e1TLaVffzDnE/LB14zJMg==", + "dev": true, + "requires": { + "@types/node": "*", + "merge-stream": "^2.0.0", + "supports-color": "^8.0.0" + }, + "dependencies": { + "supports-color": { + "version": "8.1.1", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", + "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", + "dev": true, + "requires": { + "has-flag": "^4.0.0" + } + } + } + }, "supports-color": { "version": "7.2.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", @@ -27575,38 +26940,37 @@ } }, "jest-runtime": { - "version": "26.6.3", - "resolved": "https://registry.npmjs.org/jest-runtime/-/jest-runtime-26.6.3.tgz", - "integrity": "sha512-lrzyR3N8sacTAMeonbqpnSka1dHNux2uk0qqDXVkMv2c/A3wYnvQ4EXuI013Y6+gSKSCxdaczvf4HF0mVXHRdw==", - "dev": true, - "requires": { - "@jest/console": "^26.6.2", - "@jest/environment": "^26.6.2", - "@jest/fake-timers": "^26.6.2", - "@jest/globals": "^26.6.2", - "@jest/source-map": "^26.6.2", - "@jest/test-result": "^26.6.2", - "@jest/transform": "^26.6.2", - "@jest/types": "^26.6.2", - "@types/yargs": "^15.0.0", + "version": "27.0.4", + "resolved": "https://registry.npmjs.org/jest-runtime/-/jest-runtime-27.0.4.tgz", + "integrity": "sha512-voJB4xbAjS/qYPboV+e+gmg3jfvHJJY4CagFWBOM9dQKtlaiTjcpD2tWwla84Z7PtXSQPeIpXY0qksA9Dum29A==", + "dev": true, + "requires": { + "@jest/console": "^27.0.2", + "@jest/environment": "^27.0.3", + "@jest/fake-timers": "^27.0.3", + "@jest/globals": "^27.0.3", + "@jest/source-map": "^27.0.1", + "@jest/test-result": "^27.0.2", + "@jest/transform": "^27.0.2", + "@jest/types": "^27.0.2", + "@types/yargs": "^16.0.0", "chalk": "^4.0.0", - "cjs-module-lexer": "^0.6.0", + "cjs-module-lexer": "^1.0.0", "collect-v8-coverage": "^1.0.0", "exit": "^0.1.2", "glob": "^7.1.3", "graceful-fs": "^4.2.4", - "jest-config": "^26.6.3", - "jest-haste-map": "^26.6.2", - "jest-message-util": "^26.6.2", - "jest-mock": "^26.6.2", - "jest-regex-util": "^26.0.0", - "jest-resolve": "^26.6.2", - "jest-snapshot": "^26.6.2", - "jest-util": "^26.6.2", - "jest-validate": "^26.6.2", + "jest-haste-map": "^27.0.2", + "jest-message-util": "^27.0.2", + "jest-mock": "^27.0.3", + "jest-regex-util": "^27.0.1", + "jest-resolve": "^27.0.4", + "jest-snapshot": "^27.0.4", + "jest-util": "^27.0.2", + "jest-validate": "^27.0.2", "slash": "^3.0.0", "strip-bom": "^4.0.0", - "yargs": "^15.4.1" + "yargs": "^16.0.3" }, "dependencies": { "ansi-styles": { @@ -27628,17 +26992,6 @@ "supports-color": "^7.1.0" } }, - "cliui": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-6.0.0.tgz", - "integrity": "sha512-t6wbgtoCXvAzst7QgXxJYqPt0usEfbgQdftEPbLL/cvv6HPE5VgvqCuAIDR0NgU52ds6rFwqrgakNLrHEjCbrQ==", - "dev": true, - "requires": { - "string-width": "^4.2.0", - "strip-ansi": "^6.0.0", - "wrap-ansi": "^6.2.0" - } - }, "color-convert": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", @@ -27654,66 +27007,18 @@ "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", "dev": true }, - "find-up": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", - "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", - "dev": true, - "requires": { - "locate-path": "^5.0.0", - "path-exists": "^4.0.0" - } - }, "has-flag": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", "dev": true }, - "locate-path": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", - "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", - "dev": true, - "requires": { - "p-locate": "^4.1.0" - } - }, - "p-limit": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", - "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", - "dev": true, - "requires": { - "p-try": "^2.0.0" - } - }, - "p-locate": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", - "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", - "dev": true, - "requires": { - "p-limit": "^2.2.0" - } - }, "slash": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", "dev": true }, - "string-width": { - "version": "4.2.2", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.2.tgz", - "integrity": "sha512-XBJbT3N4JhVumXE0eoLU9DCjcaF92KLNqTmFCnG1pf8duUxFGwtP6AD6nkjw9a3IdiRtL3E2w3JDiE/xi3vOeA==", - "dev": true, - "requires": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.0" - } - }, "supports-color": { "version": "7.2.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", @@ -27722,59 +27027,13 @@ "requires": { "has-flag": "^4.0.0" } - }, - "wrap-ansi": { - "version": "6.2.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-6.2.0.tgz", - "integrity": "sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==", - "dev": true, - "requires": { - "ansi-styles": "^4.0.0", - "string-width": "^4.1.0", - "strip-ansi": "^6.0.0" - } - }, - "y18n": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.3.tgz", - "integrity": "sha512-JKhqTOwSrqNA1NY5lSztJ1GrBiUodLMmIZuLiDaMRJ+itFd+ABVE8XBjOvIWL+rSqNDC74LCSFmlb/U4UZ4hJQ==", - "dev": true - }, - "yargs": { - "version": "15.4.1", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-15.4.1.tgz", - "integrity": "sha512-aePbxDmcYW++PaqBsJ+HYUFwCdv4LVvdnhBy78E57PIor8/OVvhMrADFFEDh8DHDFRv/O9i3lPhsENjO7QX0+A==", - "dev": true, - "requires": { - "cliui": "^6.0.0", - "decamelize": "^1.2.0", - "find-up": "^4.1.0", - "get-caller-file": "^2.0.1", - "require-directory": "^2.1.1", - "require-main-filename": "^2.0.0", - "set-blocking": "^2.0.0", - "string-width": "^4.2.0", - "which-module": "^2.0.0", - "y18n": "^4.0.0", - "yargs-parser": "^18.1.2" - } - }, - "yargs-parser": { - "version": "18.1.3", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-18.1.3.tgz", - "integrity": "sha512-o50j0JeToy/4K6OZcaQmW6lyXXKhq7csREXcDwk2omFPJEwUNOVtJKvmDr9EI1fAJZUyZcRF7kxGBWmRXudrCQ==", - "dev": true, - "requires": { - "camelcase": "^5.0.0", - "decamelize": "^1.2.0" - } } } }, "jest-serializer": { - "version": "26.6.2", - "resolved": "https://registry.npmjs.org/jest-serializer/-/jest-serializer-26.6.2.tgz", - "integrity": "sha512-S5wqyz0DXnNJPd/xfIzZ5Xnp1HrJWBczg8mMfMpN78OJ5eDxXyf+Ygld9wX1DnUWbIbhM1YDY95NjR4CBXkb2g==", + "version": "27.0.1", + "resolved": "https://registry.npmjs.org/jest-serializer/-/jest-serializer-27.0.1.tgz", + "integrity": "sha512-svy//5IH6bfQvAbkAEg1s7xhhgHTtXu0li0I2fdKHDsLP2P2MOiscPQIENQep8oU2g2B3jqLyxKKzotZOz4CwQ==", "dev": true, "requires": { "@types/node": "*", @@ -27782,26 +27041,34 @@ } }, "jest-snapshot": { - "version": "26.6.2", - "resolved": "https://registry.npmjs.org/jest-snapshot/-/jest-snapshot-26.6.2.tgz", - "integrity": "sha512-OLhxz05EzUtsAmOMzuupt1lHYXCNib0ECyuZ/PZOx9TrZcC8vL0x+DUG3TL+GLX3yHG45e6YGjIm0XwDc3q3og==", + "version": "27.0.4", + "resolved": "https://registry.npmjs.org/jest-snapshot/-/jest-snapshot-27.0.4.tgz", + "integrity": "sha512-hnjrvpKGdSMvKfbHyaG5Kul7pDJGZvjVy0CKpzhu28MmAssDXS6GpynhXzgst1wBQoKD8c9b2VS2a5yhDLQRCA==", "dev": true, "requires": { + "@babel/core": "^7.7.2", + "@babel/generator": "^7.7.2", + "@babel/parser": "^7.7.2", + "@babel/plugin-syntax-typescript": "^7.7.2", + "@babel/traverse": "^7.7.2", "@babel/types": "^7.0.0", - "@jest/types": "^26.6.2", + "@jest/transform": "^27.0.2", + "@jest/types": "^27.0.2", "@types/babel__traverse": "^7.0.4", - "@types/prettier": "^2.0.0", + "@types/prettier": "^2.1.5", + "babel-preset-current-node-syntax": "^1.0.0", "chalk": "^4.0.0", - "expect": "^26.6.2", + "expect": "^27.0.2", "graceful-fs": "^4.2.4", - "jest-diff": "^26.6.2", - "jest-get-type": "^26.3.0", - "jest-haste-map": "^26.6.2", - "jest-matcher-utils": "^26.6.2", - "jest-message-util": "^26.6.2", - "jest-resolve": "^26.6.2", + "jest-diff": "^27.0.2", + "jest-get-type": "^27.0.1", + "jest-haste-map": "^27.0.2", + "jest-matcher-utils": "^27.0.2", + "jest-message-util": "^27.0.2", + "jest-resolve": "^27.0.4", + "jest-util": "^27.0.2", "natural-compare": "^1.4.0", - "pretty-format": "^26.6.2", + "pretty-format": "^27.0.2", "semver": "^7.3.2" }, "dependencies": { @@ -27866,17 +27133,17 @@ } }, "jest-util": { - "version": "26.6.2", - "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-26.6.2.tgz", - "integrity": "sha512-MDW0fKfsn0OI7MS7Euz6h8HNDXVQ0gaM9uW6RjfDmd1DAFcaxX9OqIakHIqhbnmF08Cf2DLDG+ulq8YQQ0Lp0Q==", + "version": "27.0.2", + "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-27.0.2.tgz", + "integrity": "sha512-1d9uH3a00OFGGWSibpNYr+jojZ6AckOMCXV2Z4K3YXDnzpkAaXQyIpY14FOJPiUmil7CD+A6Qs+lnnh6ctRbIA==", "dev": true, "requires": { - "@jest/types": "^26.6.2", + "@jest/types": "^27.0.2", "@types/node": "*", "chalk": "^4.0.0", "graceful-fs": "^4.2.4", - "is-ci": "^2.0.0", - "micromatch": "^4.0.2" + "is-ci": "^3.0.0", + "picomatch": "^2.2.3" }, "dependencies": { "ansi-styles": { @@ -27888,15 +27155,6 @@ "color-convert": "^2.0.1" } }, - "braces": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", - "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", - "dev": true, - "requires": { - "fill-range": "^7.0.1" - } - }, "chalk": { "version": "4.1.1", "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.1.tgz", @@ -27918,18 +27176,9 @@ }, "color-name": { "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true - }, - "fill-range": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", - "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", - "dev": true, - "requires": { - "to-regex-range": "^5.0.1" - } + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true }, "has-flag": { "version": "4.0.0", @@ -27937,22 +27186,6 @@ "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", "dev": true }, - "is-number": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", - "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", - "dev": true - }, - "micromatch": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.4.tgz", - "integrity": "sha512-pRmzw/XUcwXGpD9aI9q/0XOwLNygjETJ8y0ao0wdqprrzDa4YnxLcz7fQRZr8voh8V10kGhABbNcHVk5wHgWwg==", - "dev": true, - "requires": { - "braces": "^3.0.1", - "picomatch": "^2.2.3" - } - }, "supports-color": { "version": "7.2.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", @@ -27961,30 +27194,21 @@ "requires": { "has-flag": "^4.0.0" } - }, - "to-regex-range": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", - "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", - "dev": true, - "requires": { - "is-number": "^7.0.0" - } } } }, "jest-validate": { - "version": "26.6.2", - "resolved": "https://registry.npmjs.org/jest-validate/-/jest-validate-26.6.2.tgz", - "integrity": "sha512-NEYZ9Aeyj0i5rQqbq+tpIOom0YS1u2MVu6+euBsvpgIme+FOfRmoC4R5p0JiAUpaFvFy24xgrpMknarR/93XjQ==", + "version": "27.0.2", + "resolved": "https://registry.npmjs.org/jest-validate/-/jest-validate-27.0.2.tgz", + "integrity": "sha512-UgBF6/oVu1ofd1XbaSotXKihi8nZhg0Prm8twQ9uCuAfo59vlxCXMPI/RKmrZEVgi3Nd9dS0I8A0wzWU48pOvg==", "dev": true, "requires": { - "@jest/types": "^26.6.2", - "camelcase": "^6.0.0", + "@jest/types": "^27.0.2", + "camelcase": "^6.2.0", "chalk": "^4.0.0", - "jest-get-type": "^26.3.0", + "jest-get-type": "^27.0.1", "leven": "^3.1.0", - "pretty-format": "^26.6.2" + "pretty-format": "^27.0.2" }, "dependencies": { "ansi-styles": { @@ -28045,17 +27269,17 @@ } }, "jest-watcher": { - "version": "26.6.2", - "resolved": "https://registry.npmjs.org/jest-watcher/-/jest-watcher-26.6.2.tgz", - "integrity": "sha512-WKJob0P/Em2csiVthsI68p6aGKTIcsfjH9Gsx1f0A3Italz43e3ho0geSAVsmj09RWOELP1AZ/DXyJgOgDKxXQ==", + "version": "27.0.2", + "resolved": "https://registry.npmjs.org/jest-watcher/-/jest-watcher-27.0.2.tgz", + "integrity": "sha512-8nuf0PGuTxWj/Ytfw5fyvNn/R80iXY8QhIT0ofyImUvdnoaBdT6kob0GmhXR+wO+ALYVnh8bQxN4Tjfez0JgkA==", "dev": true, "requires": { - "@jest/test-result": "^26.6.2", - "@jest/types": "^26.6.2", + "@jest/test-result": "^27.0.2", + "@jest/types": "^27.0.2", "@types/node": "*", "ansi-escapes": "^4.2.1", "chalk": "^4.0.0", - "jest-util": "^26.6.2", + "jest-util": "^27.0.2", "string-length": "^4.0.1" }, "dependencies": { @@ -28161,20 +27385,14 @@ "esprima": "^4.0.0" } }, - "jsbn": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz", - "integrity": "sha1-peZUwuWi3rXyAdls77yoDA7y9RM=", - "dev": true - }, "jsdom": { - "version": "16.5.3", - "resolved": "https://registry.npmjs.org/jsdom/-/jsdom-16.5.3.tgz", - "integrity": "sha512-Qj1H+PEvUsOtdPJ056ewXM4UJPCi4hhLA8wpiz9F2YvsRBhuFsXxtrIFAgGBDynQA9isAMGE91PfUYbdMPXuTA==", + "version": "16.6.0", + "resolved": "https://registry.npmjs.org/jsdom/-/jsdom-16.6.0.tgz", + "integrity": "sha512-Ty1vmF4NHJkolaEmdjtxTfSfkdb8Ywarwf63f+F8/mDD1uLSSWDxDuMiZxiPhwunLrn9LOSVItWj4bLYsLN3Dg==", "dev": true, "requires": { "abab": "^2.0.5", - "acorn": "^8.1.0", + "acorn": "^8.2.4", "acorn-globals": "^6.0.0", "cssom": "^0.4.4", "cssstyle": "^2.3.0", @@ -28182,12 +27400,13 @@ "decimal.js": "^10.2.1", "domexception": "^2.0.1", "escodegen": "^2.0.0", + "form-data": "^3.0.0", "html-encoding-sniffer": "^2.0.1", - "is-potential-custom-element-name": "^1.0.0", + "http-proxy-agent": "^4.0.1", + "https-proxy-agent": "^5.0.0", + "is-potential-custom-element-name": "^1.0.1", "nwsapi": "^2.2.0", "parse5": "6.0.1", - "request": "^2.88.2", - "request-promise-native": "^1.0.9", "saxes": "^5.0.1", "symbol-tree": "^3.2.4", "tough-cookie": "^4.0.0", @@ -28197,14 +27416,14 @@ "whatwg-encoding": "^1.0.5", "whatwg-mimetype": "^2.3.0", "whatwg-url": "^8.5.0", - "ws": "^7.4.4", + "ws": "^7.4.5", "xml-name-validator": "^3.0.0" }, "dependencies": { "acorn": { - "version": "8.2.1", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.2.1.tgz", - "integrity": "sha512-z716cpm5TX4uzOzILx8PavOE6C6DKshHDw1aQN52M/yNSqE9s5O8SMfyhCCfCJ3HmTL0NkVOi+8a/55T7YB3bg==", + "version": "8.4.0", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.4.0.tgz", + "integrity": "sha512-ULr0LDaEqQrMFGyQ3bhJkLsbtrQ8QibAseGZeaSUiT/6zb9IvIkomWHJIvgvwad+hinRAgsI51JcWk2yvwyL+w==", "dev": true } } @@ -28227,12 +27446,6 @@ "integrity": "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==", "dev": true }, - "json-schema": { - "version": "0.2.3", - "resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.2.3.tgz", - "integrity": "sha1-tIDIkuWaLwWVTOcnvT8qTogvnhM=", - "dev": true - }, "json-schema-traverse": { "version": "0.4.1", "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", @@ -28290,18 +27503,6 @@ "through": ">=2.2.7 <3" } }, - "jsprim": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/jsprim/-/jsprim-1.4.1.tgz", - "integrity": "sha1-MT5mvB5cwG5Di8G3SZwuXFastqI=", - "dev": true, - "requires": { - "assert-plus": "1.0.0", - "extsprintf": "1.3.0", - "json-schema": "0.2.3", - "verror": "1.10.0" - } - }, "killable": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/killable/-/killable-1.0.1.tgz", @@ -29356,33 +28557,6 @@ "integrity": "sha1-jZ2+KJZKSsVxLpExZCEHxx6Q7EA=", "dev": true }, - "node-notifier": { - "version": "8.0.2", - "resolved": "https://registry.npmjs.org/node-notifier/-/node-notifier-8.0.2.tgz", - "integrity": "sha512-oJP/9NAdd9+x2Q+rfphB2RJCHjod70RcRLjosiPMMu5gjIfwVnOUGq2nbTjTUbmy0DJ/tFIVT30+Qe3nzl4TJg==", - "dev": true, - "optional": true, - "requires": { - "growly": "^1.3.0", - "is-wsl": "^2.2.0", - "semver": "^7.3.2", - "shellwords": "^0.1.1", - "uuid": "^8.3.0", - "which": "^2.0.2" - }, - "dependencies": { - "semver": { - "version": "7.3.5", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.5.tgz", - "integrity": "sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==", - "dev": true, - "optional": true, - "requires": { - "lru-cache": "^6.0.0" - } - } - } - }, "node-releases": { "version": "1.1.71", "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-1.1.71.tgz", @@ -29524,12 +28698,6 @@ "integrity": "sha512-h2AatdwYH+JHiZpv7pt/gSX1XoRGb7L/qSIeuqA6GwYoF9w1vP1cw42TO0aI2pNyshRK5893hNSl+1//vHK7hQ==", "dev": true }, - "oauth-sign": { - "version": "0.9.0", - "resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.9.0.tgz", - "integrity": "sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ==", - "dev": true - }, "object-assign": { "version": "4.1.1", "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", @@ -29897,12 +29065,6 @@ "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==", "dev": true }, - "performance-now": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz", - "integrity": "sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns=", - "dev": true - }, "picomatch": { "version": "2.2.3", "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.2.3.tgz", @@ -30185,39 +29347,21 @@ "dev": true }, "pretty-format": { - "version": "26.6.2", - "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-26.6.2.tgz", - "integrity": "sha512-7AeGuCYNGmycyQbCqd/3PWH4eOoX/OiCa0uphp57NVTeAGdJGaAliecxwBDHYQCIvrW7aDBZCYeNTP/WX69mkg==", + "version": "27.0.2", + "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-27.0.2.tgz", + "integrity": "sha512-mXKbbBPnYTG7Yra9qFBtqj+IXcsvxsvOBco3QHxtxTl+hHKq6QdzMZ+q0CtL4ORHZgwGImRr2XZUX2EWzORxig==", "dev": true, "requires": { - "@jest/types": "^26.6.2", + "@jest/types": "^27.0.2", "ansi-regex": "^5.0.0", - "ansi-styles": "^4.0.0", + "ansi-styles": "^5.0.0", "react-is": "^17.0.1" }, "dependencies": { "ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "requires": { - "color-convert": "^2.0.1" - } - }, - "color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "requires": { - "color-name": "~1.1.4" - } - }, - "color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", + "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", "dev": true } } @@ -30297,12 +29441,6 @@ "integrity": "sha1-fjL3W0E4EpHQRhHxvxQQmsAGUdc=", "dev": true }, - "qs": { - "version": "6.5.2", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.5.2.tgz", - "integrity": "sha512-N5ZAX4/LxJmF+7wN74pUD6qAh9/wnvdQcjq9TZjevvXzSUo7bfmw91saqMjzGS2xq91/odN2dW/WOl7qQHNDGA==", - "dev": true - }, "querystring": { "version": "0.2.0", "resolved": "https://registry.npmjs.org/querystring/-/querystring-0.2.0.tgz", @@ -30667,84 +29805,6 @@ "is-finite": "^1.0.0" } }, - "request": { - "version": "2.88.2", - "resolved": "https://registry.npmjs.org/request/-/request-2.88.2.tgz", - "integrity": "sha512-MsvtOrfG9ZcrOwAW+Qi+F6HbD0CWXEh9ou77uOb7FM2WPhwT7smM833PzanhJLsgXjN89Ir6V2PczXNnMpwKhw==", - "dev": true, - "requires": { - "aws-sign2": "~0.7.0", - "aws4": "^1.8.0", - "caseless": "~0.12.0", - "combined-stream": "~1.0.6", - "extend": "~3.0.2", - "forever-agent": "~0.6.1", - "form-data": "~2.3.2", - "har-validator": "~5.1.3", - "http-signature": "~1.2.0", - "is-typedarray": "~1.0.0", - "isstream": "~0.1.2", - "json-stringify-safe": "~5.0.1", - "mime-types": "~2.1.19", - "oauth-sign": "~0.9.0", - "performance-now": "^2.1.0", - "qs": "~6.5.2", - "safe-buffer": "^5.1.2", - "tough-cookie": "~2.5.0", - "tunnel-agent": "^0.6.0", - "uuid": "^3.3.2" - }, - "dependencies": { - "tough-cookie": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.5.0.tgz", - "integrity": "sha512-nlLsUzgm1kfLXSXfRZMc1KLAugd4hqJHDTvc2hDIwS3mZAfMEuMbc03SujMF+GEcpaX/qboeycw6iO8JwVv2+g==", - "dev": true, - "requires": { - "psl": "^1.1.28", - "punycode": "^2.1.1" - } - }, - "uuid": { - "version": "3.4.0", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.4.0.tgz", - "integrity": "sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A==", - "dev": true - } - } - }, - "request-promise-core": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/request-promise-core/-/request-promise-core-1.1.4.tgz", - "integrity": "sha512-TTbAfBBRdWD7aNNOoVOBH4pN/KigV6LyapYNNlAPA8JwbovRti1E88m3sYAwsLi5ryhPKsE9APwnjFTgdUjTpw==", - "dev": true, - "requires": { - "lodash": "^4.17.19" - } - }, - "request-promise-native": { - "version": "1.0.9", - "resolved": "https://registry.npmjs.org/request-promise-native/-/request-promise-native-1.0.9.tgz", - "integrity": "sha512-wcW+sIUiWnKgNY0dqCpOZkUbF/I+YPi+f09JZIDa39Ec+q82CpSYniDp+ISgTTbKmnpJWASeJBPZmoxH84wt3g==", - "dev": true, - "requires": { - "request-promise-core": "1.1.4", - "stealthy-require": "^1.1.1", - "tough-cookie": "^2.3.3" - }, - "dependencies": { - "tough-cookie": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.5.0.tgz", - "integrity": "sha512-nlLsUzgm1kfLXSXfRZMc1KLAugd4hqJHDTvc2hDIwS3mZAfMEuMbc03SujMF+GEcpaX/qboeycw6iO8JwVv2+g==", - "dev": true, - "requires": { - "psl": "^1.1.28", - "punycode": "^2.1.1" - } - } - } - }, "require-directory": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", @@ -30846,12 +29906,6 @@ "glob": "^7.1.3" } }, - "rsvp": { - "version": "4.8.5", - "resolved": "https://registry.npmjs.org/rsvp/-/rsvp-4.8.5.tgz", - "integrity": "sha512-nfMOlASu9OnRJo1mbEk2cz0D56a1MBNrJ7orjRZQG10XDyuvwksKbuXNp6qa+kbn839HwjwhBzhFmdsaEAfauA==", - "dev": true - }, "run-async": { "version": "2.4.1", "resolved": "https://registry.npmjs.org/run-async/-/run-async-2.4.1.tgz", @@ -30903,113 +29957,6 @@ "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", "dev": true }, - "sane": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/sane/-/sane-4.1.0.tgz", - "integrity": "sha512-hhbzAgTIX8O7SHfp2c8/kREfEn4qO/9q8C9beyY6+tvZ87EpoZ3i1RIEvp27YBswnNbY9mWd6paKVmKbAgLfZA==", - "dev": true, - "requires": { - "@cnakazawa/watch": "^1.0.3", - "anymatch": "^2.0.0", - "capture-exit": "^2.0.0", - "exec-sh": "^0.3.2", - "execa": "^1.0.0", - "fb-watchman": "^2.0.0", - "micromatch": "^3.1.4", - "minimist": "^1.1.1", - "walker": "~1.0.5" - }, - "dependencies": { - "cross-spawn": { - "version": "6.0.5", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.5.tgz", - "integrity": "sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==", - "dev": true, - "requires": { - "nice-try": "^1.0.4", - "path-key": "^2.0.1", - "semver": "^5.5.0", - "shebang-command": "^1.2.0", - "which": "^1.2.9" - } - }, - "execa": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/execa/-/execa-1.0.0.tgz", - "integrity": "sha512-adbxcyWV46qiHyvSp50TKt05tB4tK3HcmF7/nxfAdhnox83seTDbwnaqKO4sXRy7roHAIFqJP/Rw/AuEbX61LA==", - "dev": true, - "requires": { - "cross-spawn": "^6.0.0", - "get-stream": "^4.0.0", - "is-stream": "^1.1.0", - "npm-run-path": "^2.0.0", - "p-finally": "^1.0.0", - "signal-exit": "^3.0.0", - "strip-eof": "^1.0.0" - } - }, - "get-stream": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-4.1.0.tgz", - "integrity": "sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w==", - "dev": true, - "requires": { - "pump": "^3.0.0" - } - }, - "is-stream": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz", - "integrity": "sha1-EtSj3U5o4Lec6428hBc66A2RykQ=", - "dev": true - }, - "npm-run-path": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-2.0.2.tgz", - "integrity": "sha1-NakjLfo11wZ7TLLd8jV7GHFTbF8=", - "dev": true, - "requires": { - "path-key": "^2.0.0" - } - }, - "path-key": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz", - "integrity": "sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A=", - "dev": true - }, - "semver": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", - "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", - "dev": true - }, - "shebang-command": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz", - "integrity": "sha1-RKrGW2lbAzmJaMOfNj/uXer98eo=", - "dev": true, - "requires": { - "shebang-regex": "^1.0.0" - } - }, - "shebang-regex": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz", - "integrity": "sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM=", - "dev": true - }, - "which": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", - "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", - "dev": true, - "requires": { - "isexe": "^2.0.0" - } - } - } - }, "saxes": { "version": "5.0.1", "resolved": "https://registry.npmjs.org/saxes/-/saxes-5.0.1.tgz", @@ -31252,13 +30199,6 @@ "rechoir": "^0.6.2" } }, - "shellwords": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/shellwords/-/shellwords-0.1.1.tgz", - "integrity": "sha512-vFwSUfQvqybiICwZY5+DAWIPLKsWO31Q91JSKl3UYv+K5c2QRPzn0qzec6QPu1Qc9eHYItiP3NdJqNVqetYAww==", - "dev": true, - "optional": true - }, "signal-exit": { "version": "3.0.3", "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.3.tgz", @@ -31685,23 +30625,6 @@ "integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=", "dev": true }, - "sshpk": { - "version": "1.16.1", - "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.16.1.tgz", - "integrity": "sha512-HXXqVUq7+pcKeLqqZj6mHFUMvXtOJt1uoUx09pFW6011inTMxqI8BA8PM95myrIyyKwdnzjdFjLiE6KBPVtJIg==", - "dev": true, - "requires": { - "asn1": "~0.2.3", - "assert-plus": "^1.0.0", - "bcrypt-pbkdf": "^1.0.0", - "dashdash": "^1.12.0", - "ecc-jsbn": "~0.1.1", - "getpass": "^0.1.1", - "jsbn": "~0.1.0", - "safer-buffer": "^2.0.2", - "tweetnacl": "~0.14.0" - } - }, "stack-trace": { "version": "0.0.10", "resolved": "https://registry.npmjs.org/stack-trace/-/stack-trace-0.0.10.tgz", @@ -31823,12 +30746,6 @@ "integrity": "sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow=", "dev": true }, - "stealthy-require": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/stealthy-require/-/stealthy-require-1.1.1.tgz", - "integrity": "sha1-NbCYdbT/SfJqd35QmzCQoyJr8ks=", - "dev": true - }, "string_decoder": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", @@ -32228,9 +31145,9 @@ "dev": true }, "throat": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/throat/-/throat-5.0.0.tgz", - "integrity": "sha512-fcwX4mndzpLQKBS1DVYhGAcYaYt7vsHNIvQV+WXMvnow5cgjPphq5CaayLaGsjRdSCKZFNGt7/GYAuXaNOiYCA==", + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/throat/-/throat-6.0.1.tgz", + "integrity": "sha512-8hmiGIJMDlwjg7dlJ4yKGLK8EsYqKgPWbG3b4wjJddKNwc7N7Dpn08Df4szr/sZdMVeOstrdYSsqzX6BYbcB+w==", "dev": true }, "through": { @@ -32421,21 +31338,6 @@ "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", "dev": true }, - "tunnel-agent": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz", - "integrity": "sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0=", - "dev": true, - "requires": { - "safe-buffer": "^5.0.1" - } - }, - "tweetnacl": { - "version": "0.14.5", - "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz", - "integrity": "sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q=", - "dev": true - }, "type-check": { "version": "0.4.0", "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz", @@ -32659,13 +31561,6 @@ "integrity": "sha1-n5VxD1CiZ5R7LMwSR0HBAoQn5xM=", "dev": true }, - "uuid": { - "version": "8.3.2", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz", - "integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==", - "dev": true, - "optional": true - }, "v8-compile-cache": { "version": "2.3.0", "resolved": "https://registry.npmjs.org/v8-compile-cache/-/v8-compile-cache-2.3.0.tgz", @@ -32673,9 +31568,9 @@ "dev": true }, "v8-to-istanbul": { - "version": "7.1.1", - "resolved": "https://registry.npmjs.org/v8-to-istanbul/-/v8-to-istanbul-7.1.1.tgz", - "integrity": "sha512-p0BB09E5FRjx0ELN6RgusIPsSPhtgexSRcKETybEs6IGOTXJSZqfwxp7r//55nnu0f1AxltY5VvdVqy2vZf9AA==", + "version": "7.1.2", + "resolved": "https://registry.npmjs.org/v8-to-istanbul/-/v8-to-istanbul-7.1.2.tgz", + "integrity": "sha512-TxNb7YEUwkLXCQYeudi6lgQ/SZrzNO4kMdlqVxaZPUIUjCv6iSSypUQX70kNBSERpQ8fk48+d61FXk+tgqcWow==", "dev": true, "requires": { "@types/istanbul-lib-coverage": "^2.0.1", @@ -32707,17 +31602,6 @@ "integrity": "sha1-IpnwLG3tMNSllhsLn3RSShj2NPw=", "dev": true }, - "verror": { - "version": "1.10.0", - "resolved": "https://registry.npmjs.org/verror/-/verror-1.10.0.tgz", - "integrity": "sha1-OhBcoXBTr1XW4nDB+CiGguGNpAA=", - "dev": true, - "requires": { - "assert-plus": "^1.0.0", - "core-util-is": "1.0.2", - "extsprintf": "^1.2.0" - } - }, "w3c-hr-time": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/w3c-hr-time/-/w3c-hr-time-1.0.2.tgz", @@ -32771,9 +31655,9 @@ "dev": true }, "webpack": { - "version": "5.38.1", - "resolved": "https://registry.npmjs.org/webpack/-/webpack-5.38.1.tgz", - "integrity": "sha512-OqRmYD1OJbHZph6RUMD93GcCZy4Z4wC0ele4FXyYF0J6AxO1vOSuIlU1hkS/lDlR9CDYBz64MZRmdbdnFFoT2g==", + "version": "5.39.0", + "resolved": "https://registry.npmjs.org/webpack/-/webpack-5.39.0.tgz", + "integrity": "sha512-25CHmuDj+oOTyteI13sUqNlCnjCnySuhiKWE/cRYPQYeoQ3ijHgyWX27CiyUKLNGq27v8S0mrksyTreT/xo7pg==", "dev": true, "requires": { "@types/eslint-scope": "^3.7.0", @@ -32826,15 +31710,15 @@ } }, "webpack-cli": { - "version": "4.7.0", - "resolved": "https://registry.npmjs.org/webpack-cli/-/webpack-cli-4.7.0.tgz", - "integrity": "sha512-7bKr9182/sGfjFm+xdZSwgQuFjgEcy0iCTIBxRUeteJ2Kr8/Wz0qNJX+jw60LU36jApt4nmMkep6+W5AKhok6g==", + "version": "4.7.2", + "resolved": "https://registry.npmjs.org/webpack-cli/-/webpack-cli-4.7.2.tgz", + "integrity": "sha512-mEoLmnmOIZQNiRl0ebnjzQ74Hk0iKS5SiEEnpq3dRezoyR3yPaeQZCMCe+db4524pj1Pd5ghZXjT41KLzIhSLw==", "dev": true, "requires": { "@discoveryjs/json-ext": "^0.5.0", - "@webpack-cli/configtest": "^1.0.3", - "@webpack-cli/info": "^1.2.4", - "@webpack-cli/serve": "^1.4.0", + "@webpack-cli/configtest": "^1.0.4", + "@webpack-cli/info": "^1.3.0", + "@webpack-cli/serve": "^1.5.1", "colorette": "^1.2.1", "commander": "^7.0.0", "execa": "^5.0.0", diff --git a/package.json b/package.json index 608a1cb5..404527e9 100644 --- a/package.json +++ b/package.json @@ -27,7 +27,7 @@ "lint": "npm-run-all -l -p \"lint:**\"", "prepare": "husky install && npm run build", "release": "standard-version", - "security": "npm audit", + "security": "npm audit --production", "test:only": "cross-env NODE_ENV=test jest", "test:watch": "npm run test:only -- --watch", "test:coverage": "npm run test:only -- --collectCoverageFrom=\"src/**/*.js\" --coverage", @@ -47,14 +47,14 @@ "webpack-sources": "^1.1.0" }, "devDependencies": { - "@babel/cli": "^7.14.3", - "@babel/core": "^7.14.3", - "@babel/preset-env": "^7.14.4", + "@babel/cli": "^7.14.5", + "@babel/core": "^7.14.6", + "@babel/preset-env": "^7.14.5", "@commitlint/cli": "^12.1.4", "@commitlint/config-conventional": "^12.1.4", "@webpack-contrib/eslint-config-webpack": "^3.0.0", "babel-eslint": "^10.1.0", - "babel-jest": "^26.6.3", + "babel-jest": "^27.0.2", "bootstrap": "^4.6.0", "cross-env": "^7.0.3", "css-loader": "^5.2.6", @@ -66,15 +66,15 @@ "eslint-plugin-import": "^2.23.4", "file-loader": "^6.2.0", "husky": "^5.2.0", - "jest": "^26.6.3", + "jest": "^27.0.4", "jsdom": "^16.5.1", "lint-staged": "^10.5.4", "memfs": "^3.0.2", "npm-run-all": "^4.1.5", "prettier": "^2.3.1", "standard-version": "^9.1.0", - "webpack": "^5.38.1", - "webpack-cli": "^4.7.0", + "webpack": "^5.39.0", + "webpack-cli": "^4.7.2", "webpack-dev-server": "^3.11.2" }, "keywords": [ diff --git a/test/HMR.test.js b/test/HMR.test.js index 83a83a72..ed543aea 100644 --- a/test/HMR.test.js +++ b/test/HMR.test.js @@ -1,3 +1,6 @@ +/** + @jest-environment jsdom + */ /* eslint-env browser */ /* eslint-disable no-console */ diff --git a/test/enforce-esm.test.js b/test/enforce-esm.test.js index 7df27cfe..03de4d19 100644 --- a/test/enforce-esm.test.js +++ b/test/enforce-esm.test.js @@ -4,7 +4,9 @@ import { getCompiler, source, compile } from './helpers'; const isWebpack4 = webpack.version[0] === '4'; -it('should enforce esm for empty module without options.esModule', async (done) => { +it('should enforce esm for empty module without options.esModule', async () => { + expect.assertions(3); + const compiler = getCompiler( './esm.js', {}, @@ -23,10 +25,11 @@ it('should enforce esm for empty module without options.esModule', async (done) "// extracted by mini-css-extract-plugin export {};" `); - done(); }); -it('should enforce esm for empty module with options.esModule', async (done) => { +it('should enforce esm for empty module with options.esModule', async () => { + expect.assertions(3); + const compiler = getCompiler( './esm.js', { esModule: true }, @@ -45,10 +48,11 @@ it('should enforce esm for empty module with options.esModule', async (done) => "// extracted by mini-css-extract-plugin export {};" `); - done(); }); -it('should keep empty module when options.esModule is equal "false"', async (done) => { +it('should keep empty module when options.esModule is equal "false"', async () => { + expect.assertions(3); + const compiler = getCompiler( './esm.js', { esModule: false }, @@ -66,5 +70,4 @@ it('should keep empty module when options.esModule is equal "false"', async (don expect(source('./simple.css', stats)).toMatchInlineSnapshot( `"// extracted by mini-css-extract-plugin"` ); - done(); }); From 1c94d00dd67576f9985c11cb9ce2cd98662155c0 Mon Sep 17 00:00:00 2001 From: Nitin Kumar Date: Thu, 17 Jun 2021 18:07:35 +0530 Subject: [PATCH 15/30] ci: update nodejs.yml (#765) --- .github/workflows/nodejs.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/nodejs.yml b/.github/workflows/nodejs.yml index b7e3c225..a3f31c9b 100644 --- a/.github/workflows/nodejs.yml +++ b/.github/workflows/nodejs.yml @@ -29,10 +29,10 @@ jobs: with: fetch-depth: 0 - - name: Use Node.js ${{ env.node-version }} + - name: Use Node.js ${{ matrix.node-version }} uses: actions/setup-node@v1 with: - node-version: ${{ env.node-version }} + node-version: ${{ matrix.node-version }} - name: Use latest NPM run: sudo npm i -g npm From 44402f591eb6f1791491a11b2b098f0c47dd0ce7 Mon Sep 17 00:00:00 2001 From: Sam Chen Date: Fri, 18 Jun 2021 12:54:32 +0800 Subject: [PATCH 16/30] docs: fix the broken image url (#767) --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 297846ea..9c2c6893 100644 --- a/README.md +++ b/README.md @@ -1,5 +1,5 @@
- + From c68aca7c58b1bfb3d3f9f8db70fd814e50f82aa1 Mon Sep 17 00:00:00 2001 From: evilebottnawi Date: Fri, 25 Jun 2021 19:28:28 +0300 Subject: [PATCH 17/30] fix: memory leaks --- package-lock.json | 337 ++++++++++++---------------------------------- package.json | 2 +- src/index.js | 11 +- src/loader.js | 2 +- src/utils.js | 9 +- 5 files changed, 103 insertions(+), 258 deletions(-) diff --git a/package-lock.json b/package-lock.json index 2558dec5..928f44e9 100644 --- a/package-lock.json +++ b/package-lock.json @@ -39,7 +39,7 @@ "npm-run-all": "^4.1.5", "prettier": "^2.3.1", "standard-version": "^9.1.0", - "webpack": "^5.39.0", + "webpack": "^5.40.0", "webpack-cli": "^4.7.2", "webpack-dev-server": "^3.11.2" }, @@ -2654,35 +2654,6 @@ "node": ">=8" } }, - "node_modules/@jest/reporters/node_modules/jest-worker": { - "version": "27.0.2", - "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-27.0.2.tgz", - "integrity": "sha512-EoBdilOTTyOgmHXtw/cPc+ZrCA0KJMrkXzkrPGNwLmnvvlN1nj7MPrxpT7m+otSv2e1TLaVffzDnE/LB14zJMg==", - "dev": true, - "dependencies": { - "@types/node": "*", - "merge-stream": "^2.0.0", - "supports-color": "^8.0.0" - }, - "engines": { - "node": ">= 10.13.0" - } - }, - "node_modules/@jest/reporters/node_modules/jest-worker/node_modules/supports-color": { - "version": "8.1.1", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", - "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", - "dev": true, - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/supports-color?sponsor=1" - } - }, "node_modules/@jest/reporters/node_modules/slash": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", @@ -3161,9 +3132,9 @@ } }, "node_modules/@types/eslint": { - "version": "7.2.10", - "resolved": "https://registry.npmjs.org/@types/eslint/-/eslint-7.2.10.tgz", - "integrity": "sha512-kUEPnMKrqbtpCq/KTaGFFKAcz6Ethm2EjCoKIDaCmfRBWLbFuTcOJfTlorwbnboXBzahqWLgUp1BQeKHiJzPUQ==", + "version": "7.2.13", + "resolved": "https://registry.npmjs.org/@types/eslint/-/eslint-7.2.13.tgz", + "integrity": "sha512-LKmQCWAlnVHvvXq4oasNUMTJJb2GwSyTY8+1C7OH5ILR8mPLaljv1jxL1bXW3xB3jFbQxTKxJAvI8PyjB09aBg==", "dev": true, "dependencies": { "@types/estree": "*", @@ -6424,9 +6395,9 @@ } }, "node_modules/enhanced-resolve": { - "version": "5.8.0", - "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.8.0.tgz", - "integrity": "sha512-Sl3KRpJA8OpprrtaIswVki3cWPiPKxXuFxJXBp+zNb6s6VwNWwFRUdtmzd2ReUut8n+sCPx7QCtQ7w5wfJhSgQ==", + "version": "5.8.2", + "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.8.2.tgz", + "integrity": "sha512-F27oB3WuHDzvR2DOGNTaYy0D5o0cnrv8TeI482VM4kYgQd/FT9lUQwuNsJ0oOHtBUq7eiW5ytqzp7nBFknL+GA==", "dev": true, "dependencies": { "graceful-fs": "^4.2.4", @@ -6529,9 +6500,9 @@ } }, "node_modules/es-module-lexer": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-0.4.1.tgz", - "integrity": "sha512-ooYciCUtfw6/d2w56UVeqHPcoCFAiJdz5XOkYpv/Txl1HMUozpXjz/2RIQgqwKdXNDPSF1W7mJCFse3G+HDyAA==", + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-0.6.0.tgz", + "integrity": "sha512-f8kcHX1ArhllUtb/wVSyvygoKCznIjnxhLxy7TCvIiMdT7fL4ZDTIKaadMe6eLvOXg6Wk02UeoFgUoZ2EKZZUA==", "dev": true }, "node_modules/es-to-primitive": { @@ -9664,6 +9635,15 @@ "node": ">=0.10.0" } }, + "node_modules/is-wsl": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-1.1.0.tgz", + "integrity": "sha1-HxbkqiKwTRM2tmGIpmrzxgDDpm0=", + "dev": true, + "engines": { + "node": ">=4" + } + }, "node_modules/isarray": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", @@ -10555,15 +10535,6 @@ "node": ">=8" } }, - "node_modules/jest-haste-map/node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true, - "engines": { - "node": ">=8" - } - }, "node_modules/jest-haste-map/node_modules/is-number": { "version": "7.0.0", "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", @@ -10573,20 +10544,6 @@ "node": ">=0.12.0" } }, - "node_modules/jest-haste-map/node_modules/jest-worker": { - "version": "27.0.2", - "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-27.0.2.tgz", - "integrity": "sha512-EoBdilOTTyOgmHXtw/cPc+ZrCA0KJMrkXzkrPGNwLmnvvlN1nj7MPrxpT7m+otSv2e1TLaVffzDnE/LB14zJMg==", - "dev": true, - "dependencies": { - "@types/node": "*", - "merge-stream": "^2.0.0", - "supports-color": "^8.0.0" - }, - "engines": { - "node": ">= 10.13.0" - } - }, "node_modules/jest-haste-map/node_modules/micromatch": { "version": "4.0.4", "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.4.tgz", @@ -10600,21 +10557,6 @@ "node": ">=8.6" } }, - "node_modules/jest-haste-map/node_modules/supports-color": { - "version": "8.1.1", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", - "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", - "dev": true, - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/supports-color?sponsor=1" - } - }, "node_modules/jest-haste-map/node_modules/to-regex-range": { "version": "5.0.1", "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", @@ -11224,35 +11166,6 @@ "node": ">=8" } }, - "node_modules/jest-runner/node_modules/jest-worker": { - "version": "27.0.2", - "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-27.0.2.tgz", - "integrity": "sha512-EoBdilOTTyOgmHXtw/cPc+ZrCA0KJMrkXzkrPGNwLmnvvlN1nj7MPrxpT7m+otSv2e1TLaVffzDnE/LB14zJMg==", - "dev": true, - "dependencies": { - "@types/node": "*", - "merge-stream": "^2.0.0", - "supports-color": "^8.0.0" - }, - "engines": { - "node": ">= 10.13.0" - } - }, - "node_modules/jest-runner/node_modules/jest-worker/node_modules/supports-color": { - "version": "8.1.1", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", - "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", - "dev": true, - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/supports-color?sponsor=1" - } - }, "node_modules/jest-runner/node_modules/supports-color": { "version": "7.2.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", @@ -11789,14 +11702,14 @@ } }, "node_modules/jest-worker": { - "version": "26.6.2", - "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-26.6.2.tgz", - "integrity": "sha512-KWYVV1c4i+jbMpaBC+U++4Va0cp8OisU185o73T1vo99hqi7w8tSJfUXYswwqqrjzwxa6KpRK54WhPvwf5w6PQ==", + "version": "27.0.2", + "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-27.0.2.tgz", + "integrity": "sha512-EoBdilOTTyOgmHXtw/cPc+ZrCA0KJMrkXzkrPGNwLmnvvlN1nj7MPrxpT7m+otSv2e1TLaVffzDnE/LB14zJMg==", "dev": true, "dependencies": { "@types/node": "*", "merge-stream": "^2.0.0", - "supports-color": "^7.0.0" + "supports-color": "^8.0.0" }, "engines": { "node": ">= 10.13.0" @@ -11812,15 +11725,18 @@ } }, "node_modules/jest-worker/node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "version": "8.1.1", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", + "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", "dev": true, "dependencies": { "has-flag": "^4.0.0" }, "engines": { - "node": ">=8" + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/supports-color?sponsor=1" } }, "node_modules/jquery": { @@ -13790,15 +13706,6 @@ "node": ">=4" } }, - "node_modules/opn/node_modules/is-wsl": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-1.1.0.tgz", - "integrity": "sha1-HxbkqiKwTRM2tmGIpmrzxgDDpm0=", - "dev": true, - "engines": { - "node": ">=4" - } - }, "node_modules/optionator": { "version": "0.9.1", "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.1.tgz", @@ -15347,9 +15254,9 @@ "dev": true }, "node_modules/serialize-javascript": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-5.0.1.tgz", - "integrity": "sha512-SaaNal9imEO737H2c05Og0/8LUXG7EnsZyMa8MzkmuHoELfT6txuj0cMqRj6zfPKnmQ1yasR4PCJc8x+M4JSPA==", + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-6.0.0.tgz", + "integrity": "sha512-Qr3TosvguFt8ePWqsvRfrKyQXIiW+nGbYpy8XK24NQHE83caxWt+mIymTT19DGFbNWNLfEwsrkSmN64lVWB9ag==", "dev": true, "dependencies": { "randombytes": "^2.1.0" @@ -16602,17 +16509,17 @@ } }, "node_modules/terser-webpack-plugin": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-5.1.1.tgz", - "integrity": "sha512-5XNNXZiR8YO6X6KhSGXfY0QrGrCRlSwAEjIIrlRQR4W8nP69TaJUlh3bkuac6zzgspiGPfKEHcY295MMVExl5Q==", + "version": "5.1.4", + "resolved": "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-5.1.4.tgz", + "integrity": "sha512-C2WkFwstHDhVEmsmlCxrXUtVklS+Ir1A7twrYzrDrQQOIMOaVAYykaoo/Aq1K0QRkMoY2hhvDQY1cm4jnIMFwA==", "dev": true, "dependencies": { - "jest-worker": "^26.6.2", + "jest-worker": "^27.0.2", "p-limit": "^3.1.0", "schema-utils": "^3.0.0", - "serialize-javascript": "^5.0.1", + "serialize-javascript": "^6.0.0", "source-map": "^0.6.1", - "terser": "^5.5.1" + "terser": "^5.7.0" }, "engines": { "node": ">= 10.13.0" @@ -17307,9 +17214,9 @@ } }, "node_modules/webpack": { - "version": "5.39.0", - "resolved": "https://registry.npmjs.org/webpack/-/webpack-5.39.0.tgz", - "integrity": "sha512-25CHmuDj+oOTyteI13sUqNlCnjCnySuhiKWE/cRYPQYeoQ3ijHgyWX27CiyUKLNGq27v8S0mrksyTreT/xo7pg==", + "version": "5.40.0", + "resolved": "https://registry.npmjs.org/webpack/-/webpack-5.40.0.tgz", + "integrity": "sha512-c7f5e/WWrxXWUzQqTBg54vBs5RgcAgpvKE4F4VegVgfo4x660ZxYUF2/hpMkZUnLjgytVTitjeXaN4IPlXCGIw==", "dev": true, "dependencies": { "@types/eslint-scope": "^3.7.0", @@ -17321,7 +17228,7 @@ "browserslist": "^4.14.5", "chrome-trace-event": "^1.0.2", "enhanced-resolve": "^5.8.0", - "es-module-lexer": "^0.4.0", + "es-module-lexer": "^0.6.0", "eslint-scope": "5.1.1", "events": "^3.2.0", "glob-to-regexp": "^0.4.1", @@ -17332,7 +17239,7 @@ "neo-async": "^2.6.2", "schema-utils": "^3.0.0", "tapable": "^2.1.1", - "terser-webpack-plugin": "^5.1.1", + "terser-webpack-plugin": "^5.1.3", "watchpack": "^2.2.0", "webpack-sources": "^2.3.0" }, @@ -18053,9 +17960,9 @@ } }, "node_modules/webpack/node_modules/acorn": { - "version": "8.2.1", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.2.1.tgz", - "integrity": "sha512-z716cpm5TX4uzOzILx8PavOE6C6DKshHDw1aQN52M/yNSqE9s5O8SMfyhCCfCJ3HmTL0NkVOi+8a/55T7YB3bg==", + "version": "8.4.1", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.4.1.tgz", + "integrity": "sha512-asabaBSkEKosYKMITunzX177CXxQ4Q8BSSzMTKD+FefUhipQC70gfW5SiUDhYQ3vk8G+81HqQk7Fv9OXwwn9KA==", "dev": true, "bin": { "acorn": "bin/acorn" @@ -20283,28 +20190,6 @@ "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", "dev": true }, - "jest-worker": { - "version": "27.0.2", - "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-27.0.2.tgz", - "integrity": "sha512-EoBdilOTTyOgmHXtw/cPc+ZrCA0KJMrkXzkrPGNwLmnvvlN1nj7MPrxpT7m+otSv2e1TLaVffzDnE/LB14zJMg==", - "dev": true, - "requires": { - "@types/node": "*", - "merge-stream": "^2.0.0", - "supports-color": "^8.0.0" - }, - "dependencies": { - "supports-color": { - "version": "8.1.1", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", - "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", - "dev": true, - "requires": { - "has-flag": "^4.0.0" - } - } - } - }, "slash": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", @@ -20688,9 +20573,9 @@ } }, "@types/eslint": { - "version": "7.2.10", - "resolved": "https://registry.npmjs.org/@types/eslint/-/eslint-7.2.10.tgz", - "integrity": "sha512-kUEPnMKrqbtpCq/KTaGFFKAcz6Ethm2EjCoKIDaCmfRBWLbFuTcOJfTlorwbnboXBzahqWLgUp1BQeKHiJzPUQ==", + "version": "7.2.13", + "resolved": "https://registry.npmjs.org/@types/eslint/-/eslint-7.2.13.tgz", + "integrity": "sha512-LKmQCWAlnVHvvXq4oasNUMTJJb2GwSyTY8+1C7OH5ILR8mPLaljv1jxL1bXW3xB3jFbQxTKxJAvI8PyjB09aBg==", "dev": true, "requires": { "@types/estree": "*", @@ -23283,9 +23168,9 @@ } }, "enhanced-resolve": { - "version": "5.8.0", - "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.8.0.tgz", - "integrity": "sha512-Sl3KRpJA8OpprrtaIswVki3cWPiPKxXuFxJXBp+zNb6s6VwNWwFRUdtmzd2ReUut8n+sCPx7QCtQ7w5wfJhSgQ==", + "version": "5.8.2", + "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.8.2.tgz", + "integrity": "sha512-F27oB3WuHDzvR2DOGNTaYy0D5o0cnrv8TeI482VM4kYgQd/FT9lUQwuNsJ0oOHtBUq7eiW5ytqzp7nBFknL+GA==", "dev": true, "requires": { "graceful-fs": "^4.2.4", @@ -23361,9 +23246,9 @@ } }, "es-module-lexer": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-0.4.1.tgz", - "integrity": "sha512-ooYciCUtfw6/d2w56UVeqHPcoCFAiJdz5XOkYpv/Txl1HMUozpXjz/2RIQgqwKdXNDPSF1W7mJCFse3G+HDyAA==", + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-0.6.0.tgz", + "integrity": "sha512-f8kcHX1ArhllUtb/wVSyvygoKCznIjnxhLxy7TCvIiMdT7fL4ZDTIKaadMe6eLvOXg6Wk02UeoFgUoZ2EKZZUA==", "dev": true }, "es-to-primitive": { @@ -25749,6 +25634,12 @@ "integrity": "sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==", "dev": true }, + "is-wsl": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-1.1.0.tgz", + "integrity": "sha1-HxbkqiKwTRM2tmGIpmrzxgDDpm0=", + "dev": true + }, "isarray": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", @@ -26408,29 +26299,12 @@ "to-regex-range": "^5.0.1" } }, - "has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true - }, "is-number": { "version": "7.0.0", "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", "dev": true }, - "jest-worker": { - "version": "27.0.2", - "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-27.0.2.tgz", - "integrity": "sha512-EoBdilOTTyOgmHXtw/cPc+ZrCA0KJMrkXzkrPGNwLmnvvlN1nj7MPrxpT7m+otSv2e1TLaVffzDnE/LB14zJMg==", - "dev": true, - "requires": { - "@types/node": "*", - "merge-stream": "^2.0.0", - "supports-color": "^8.0.0" - } - }, "micromatch": { "version": "4.0.4", "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.4.tgz", @@ -26441,15 +26315,6 @@ "picomatch": "^2.2.3" } }, - "supports-color": { - "version": "8.1.1", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", - "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", - "dev": true, - "requires": { - "has-flag": "^4.0.0" - } - }, "to-regex-range": { "version": "5.0.1", "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", @@ -26906,28 +26771,6 @@ "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", "dev": true }, - "jest-worker": { - "version": "27.0.2", - "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-27.0.2.tgz", - "integrity": "sha512-EoBdilOTTyOgmHXtw/cPc+ZrCA0KJMrkXzkrPGNwLmnvvlN1nj7MPrxpT7m+otSv2e1TLaVffzDnE/LB14zJMg==", - "dev": true, - "requires": { - "@types/node": "*", - "merge-stream": "^2.0.0", - "supports-color": "^8.0.0" - }, - "dependencies": { - "supports-color": { - "version": "8.1.1", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", - "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", - "dev": true, - "requires": { - "has-flag": "^4.0.0" - } - } - } - }, "supports-color": { "version": "7.2.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", @@ -27335,14 +27178,14 @@ } }, "jest-worker": { - "version": "26.6.2", - "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-26.6.2.tgz", - "integrity": "sha512-KWYVV1c4i+jbMpaBC+U++4Va0cp8OisU185o73T1vo99hqi7w8tSJfUXYswwqqrjzwxa6KpRK54WhPvwf5w6PQ==", + "version": "27.0.2", + "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-27.0.2.tgz", + "integrity": "sha512-EoBdilOTTyOgmHXtw/cPc+ZrCA0KJMrkXzkrPGNwLmnvvlN1nj7MPrxpT7m+otSv2e1TLaVffzDnE/LB14zJMg==", "dev": true, "requires": { "@types/node": "*", "merge-stream": "^2.0.0", - "supports-color": "^7.0.0" + "supports-color": "^8.0.0" }, "dependencies": { "has-flag": { @@ -27352,9 +27195,9 @@ "dev": true }, "supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "version": "8.1.1", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", + "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", "dev": true, "requires": { "has-flag": "^4.0.0" @@ -28873,14 +28716,6 @@ "dev": true, "requires": { "is-wsl": "^1.1.0" - }, - "dependencies": { - "is-wsl": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-1.1.0.tgz", - "integrity": "sha1-HxbkqiKwTRM2tmGIpmrzxgDDpm0=", - "dev": true - } } }, "optionator": { @@ -30050,9 +29885,9 @@ } }, "serialize-javascript": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-5.0.1.tgz", - "integrity": "sha512-SaaNal9imEO737H2c05Og0/8LUXG7EnsZyMa8MzkmuHoELfT6txuj0cMqRj6zfPKnmQ1yasR4PCJc8x+M4JSPA==", + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-6.0.0.tgz", + "integrity": "sha512-Qr3TosvguFt8ePWqsvRfrKyQXIiW+nGbYpy8XK24NQHE83caxWt+mIymTT19DGFbNWNLfEwsrkSmN64lVWB9ag==", "dev": true, "requires": { "randombytes": "^2.1.0" @@ -31100,17 +30935,17 @@ } }, "terser-webpack-plugin": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-5.1.1.tgz", - "integrity": "sha512-5XNNXZiR8YO6X6KhSGXfY0QrGrCRlSwAEjIIrlRQR4W8nP69TaJUlh3bkuac6zzgspiGPfKEHcY295MMVExl5Q==", + "version": "5.1.4", + "resolved": "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-5.1.4.tgz", + "integrity": "sha512-C2WkFwstHDhVEmsmlCxrXUtVklS+Ir1A7twrYzrDrQQOIMOaVAYykaoo/Aq1K0QRkMoY2hhvDQY1cm4jnIMFwA==", "dev": true, "requires": { - "jest-worker": "^26.6.2", + "jest-worker": "^27.0.2", "p-limit": "^3.1.0", "schema-utils": "^3.0.0", - "serialize-javascript": "^5.0.1", + "serialize-javascript": "^6.0.0", "source-map": "^0.6.1", - "terser": "^5.5.1" + "terser": "^5.7.0" }, "dependencies": { "source-map": { @@ -31655,9 +31490,9 @@ "dev": true }, "webpack": { - "version": "5.39.0", - "resolved": "https://registry.npmjs.org/webpack/-/webpack-5.39.0.tgz", - "integrity": "sha512-25CHmuDj+oOTyteI13sUqNlCnjCnySuhiKWE/cRYPQYeoQ3ijHgyWX27CiyUKLNGq27v8S0mrksyTreT/xo7pg==", + "version": "5.40.0", + "resolved": "https://registry.npmjs.org/webpack/-/webpack-5.40.0.tgz", + "integrity": "sha512-c7f5e/WWrxXWUzQqTBg54vBs5RgcAgpvKE4F4VegVgfo4x660ZxYUF2/hpMkZUnLjgytVTitjeXaN4IPlXCGIw==", "dev": true, "requires": { "@types/eslint-scope": "^3.7.0", @@ -31669,7 +31504,7 @@ "browserslist": "^4.14.5", "chrome-trace-event": "^1.0.2", "enhanced-resolve": "^5.8.0", - "es-module-lexer": "^0.4.0", + "es-module-lexer": "^0.6.0", "eslint-scope": "5.1.1", "events": "^3.2.0", "glob-to-regexp": "^0.4.1", @@ -31680,15 +31515,15 @@ "neo-async": "^2.6.2", "schema-utils": "^3.0.0", "tapable": "^2.1.1", - "terser-webpack-plugin": "^5.1.1", + "terser-webpack-plugin": "^5.1.3", "watchpack": "^2.2.0", "webpack-sources": "^2.3.0" }, "dependencies": { "acorn": { - "version": "8.2.1", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.2.1.tgz", - "integrity": "sha512-z716cpm5TX4uzOzILx8PavOE6C6DKshHDw1aQN52M/yNSqE9s5O8SMfyhCCfCJ3HmTL0NkVOi+8a/55T7YB3bg==", + "version": "8.4.1", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.4.1.tgz", + "integrity": "sha512-asabaBSkEKosYKMITunzX177CXxQ4Q8BSSzMTKD+FefUhipQC70gfW5SiUDhYQ3vk8G+81HqQk7Fv9OXwwn9KA==", "dev": true }, "source-map": { diff --git a/package.json b/package.json index 404527e9..93c71fa8 100644 --- a/package.json +++ b/package.json @@ -73,7 +73,7 @@ "npm-run-all": "^4.1.5", "prettier": "^2.3.1", "standard-version": "^9.1.0", - "webpack": "^5.39.0", + "webpack": "^5.40.0", "webpack-cli": "^4.7.2", "webpack-dev-server": "^3.11.2" }, diff --git a/src/index.js b/src/index.js index 4c1b009a..b4068f0d 100644 --- a/src/index.js +++ b/src/index.js @@ -3,7 +3,7 @@ import { validate } from 'schema-utils'; import schema from './plugin-options.json'; -import { MODULE_TYPE, compareModulesByIdentifier } from './utils'; +import { trueFn, MODULE_TYPE, compareModulesByIdentifier } from './utils'; export const pluginName = 'mini-css-extract-plugin'; export const pluginSymbol = Symbol(pluginName); @@ -28,6 +28,8 @@ const cssModuleCache = new WeakMap(); */ const cssDependencyCache = new WeakMap(); +const registered = new WeakSet(); + class MiniCssExtractPlugin { static getCssModule(webpack) { /** @@ -376,11 +378,14 @@ class MiniCssExtractPlugin { if ( webpack.util && webpack.util.serialization && - webpack.util.serialization.registerLoader + webpack.util.serialization.registerLoader && + !registered.has(webpack) ) { + registered.add(webpack); + webpack.util.serialization.registerLoader( /^mini-css-extract-plugin\//, - () => true + trueFn ); } diff --git a/src/loader.js b/src/loader.js index 7da01bdb..c106184f 100644 --- a/src/loader.js +++ b/src/loader.js @@ -98,7 +98,7 @@ export function pitch(request) { try { // eslint-disable-next-line no-underscore-dangle - exports = originalExports.__esModule + const exports = originalExports.__esModule ? originalExports.default : originalExports; diff --git a/src/utils.js b/src/utils.js index 772cd22d..f5c8e2e5 100644 --- a/src/utils.js +++ b/src/utils.js @@ -1,6 +1,8 @@ import NativeModule from 'module'; -const MODULE_TYPE = 'css/mini-extract'; +function trueFn() { + return true; +} function findModuleById(compilation, id) { const { modules, chunkGraph } = compilation; @@ -49,9 +51,12 @@ function compareModulesByIdentifier(a, b) { return compareIds(a.identifier(), b.identifier()); } +const MODULE_TYPE = 'css/mini-extract'; + export { - MODULE_TYPE, + trueFn, findModuleById, evalModuleCode, compareModulesByIdentifier, + MODULE_TYPE, }; From 5551fbdff2348d34d2a2484ffff9d90bccbc0f32 Mon Sep 17 00:00:00 2001 From: evilebottnawi Date: Fri, 25 Jun 2021 19:30:01 +0300 Subject: [PATCH 18/30] chore(release): 1.6.1 --- CHANGELOG.md | 7 +++++++ package-lock.json | 2 +- package.json | 2 +- 3 files changed, 9 insertions(+), 2 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index e484e326..06a8af7a 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,6 +2,13 @@ All notable changes to this project will be documented in this file. See [standard-version](https://github.com/conventional-changelog/standard-version) for commit guidelines. +### [1.6.1](https://github.com/webpack-contrib/mini-css-extract-plugin/compare/v1.6.0...v1.6.1) (2021-06-25) + + +### Bug Fixes + +* memory leaks ([c68aca7](https://github.com/webpack-contrib/mini-css-extract-plugin/commit/c68aca7c58b1bfb3d3f9f8db70fd814e50f82aa1)) + ## [1.6.0](https://github.com/webpack-contrib/mini-css-extract-plugin/compare/v1.5.1...v1.6.0) (2021-04-30) diff --git a/package-lock.json b/package-lock.json index 928f44e9..891591d1 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,6 +1,6 @@ { "name": "mini-css-extract-plugin", - "version": "1.6.0", + "version": "1.6.1", "lockfileVersion": 2, "requires": true, "packages": { diff --git a/package.json b/package.json index 93c71fa8..11c85623 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "mini-css-extract-plugin", - "version": "1.6.0", + "version": "1.6.1", "description": "extracts CSS into separate files", "license": "MIT", "repository": "webpack-contrib/mini-css-extract-plugin", From 6e1bb67686f75148a1b5f6f296601ad07f6f9693 Mon Sep 17 00:00:00 2001 From: Alexander Akait <4567934+alexander-akait@users.noreply.github.com> Date: Mon, 28 Jun 2021 18:34:34 +0300 Subject: [PATCH 19/30] perf: fix (#774) --- package-lock.json | 2 +- src/index.js | 74 ++++++++++++++----- ...3a2aba3.css => 0.a0b77e3a9967a95b3ac2.css} | 0 ...ea3a2aba3.css => a0b77e3a9967a95b3ac2.css} | 0 .../expected/webpack-5-importModule/main.js | 2 +- ...6c261df.css => 0.f8dea56ca966b9c551f2.css} | 0 ...5e6c261df.css => f8dea56ca966b9c551f2.css} | 0 .../expected/webpack-5/main.js | 2 +- ...316194f.css => 1.88fb74fe1cb22093f204.css} | 0 ...a516ab1.css => 2.52b14831e64cae07fa20.css} | 0 ...351aabd20.css => 45abc72feb203941b169.css} | 0 ...5a86ad253.css => 94cfefd2079cb855c465.css} | 0 ...f9b9ec41d.css => 1cd4a7654bac4107104f.css} | 0 ...a79d133f4.css => 788f5dc856f2e114b45c.css} | 0 ...f9b9ec41d.css => 1cd4a7654bac4107104f.css} | 0 ...a79d133f4.css => 788f5dc856f2e114b45c.css} | 0 ...4c.css => 1.main.45423f56597309256073.css} | 0 ...a7.css => 2.main.950eec8c261fd54102ea.css} | 0 ...bc.css => 1.main.a45a4571ab5cece12cf0.css} | 0 ...b9.css => 2.main.c282a646790b09956021.css} | 0 ...bc.css => 1.main.a45a4571ab5cece12cf0.css} | 0 ...b9.css => 2.main.c282a646790b09956021.css} | 0 ...1.css => style.05ce3c307a634dcd5169.1.css} | 0 ...2.css => style.c9487d3c46193641a005.2.css} | 0 ...2.css => style.00aa669429946cee3d20.2.css} | 0 ...1.css => style.17f5571b796a525cec79.1.css} | 0 ...2.css => style.3e1ac9a6569d80b3d351.2.css} | 0 ...1.css => style.678e24a6a30ce54e924b.1.css} | 0 ...4d4c.css => main.45423f56597309256073.css} | 0 ...51bc.css => main.a45a4571ab5cece12cf0.css} | 0 .../webpack-5-importModule/runtime~main.js | 2 +- ...51bc.css => main.a45a4571ab5cece12cf0.css} | 0 .../expected/webpack-5/runtime~main.js | 2 +- 33 files changed, 60 insertions(+), 24 deletions(-) rename test/cases/chunkFilename-fullhash/expected/webpack-5-importModule/{0.619e4b98882ea3a2aba3.css => 0.a0b77e3a9967a95b3ac2.css} (100%) rename test/cases/chunkFilename-fullhash/expected/webpack-5-importModule/{619e4b98882ea3a2aba3.css => a0b77e3a9967a95b3ac2.css} (100%) rename test/cases/chunkFilename-fullhash/expected/webpack-5/{0.962555dd7355e6c261df.css => 0.f8dea56ca966b9c551f2.css} (100%) rename test/cases/chunkFilename-fullhash/expected/webpack-5/{962555dd7355e6c261df.css => f8dea56ca966b9c551f2.css} (100%) rename test/cases/content-entries-with-same-import/expected/{1.a2e2caac15fbc316194f.css => 1.88fb74fe1cb22093f204.css} (100%) rename test/cases/content-entries-with-same-import/expected/{2.b93278edf8733a516ab1.css => 2.52b14831e64cae07fa20.css} (100%) rename test/cases/contenthash-multiple-entries/expected/webpack-4/{96236f7f51b351aabd20.css => 45abc72feb203941b169.css} (100%) rename test/cases/contenthash-multiple-entries/expected/webpack-4/{f22bc5a793a5a86ad253.css => 94cfefd2079cb855c465.css} (100%) rename test/cases/contenthash-multiple-entries/expected/webpack-5-importModule/{15a667c7583f9b9ec41d.css => 1cd4a7654bac4107104f.css} (100%) rename test/cases/contenthash-multiple-entries/expected/webpack-5-importModule/{ffa19619c12a79d133f4.css => 788f5dc856f2e114b45c.css} (100%) rename test/cases/contenthash-multiple-entries/expected/webpack-5/{15a667c7583f9b9ec41d.css => 1cd4a7654bac4107104f.css} (100%) rename test/cases/contenthash-multiple-entries/expected/webpack-5/{ffa19619c12a79d133f4.css => 788f5dc856f2e114b45c.css} (100%) rename test/cases/contenthash/expected/webpack-4/{1.main.c4d90d38e7a606ae4d4c.css => 1.main.45423f56597309256073.css} (100%) rename test/cases/contenthash/expected/webpack-4/{2.main.64d1032b1547f22458a7.css => 2.main.950eec8c261fd54102ea.css} (100%) rename test/cases/contenthash/expected/webpack-5-importModule/{1.main.a7263f8f763dcf4051bc.css => 1.main.a45a4571ab5cece12cf0.css} (100%) rename test/cases/contenthash/expected/webpack-5-importModule/{2.main.a85c9b6a9dce223262b9.css => 2.main.c282a646790b09956021.css} (100%) rename test/cases/contenthash/expected/webpack-5/{1.main.a7263f8f763dcf4051bc.css => 1.main.a45a4571ab5cece12cf0.css} (100%) rename test/cases/contenthash/expected/webpack-5/{2.main.a85c9b6a9dce223262b9.css => 2.main.c282a646790b09956021.css} (100%) rename test/cases/js-hash/expected/webpack-4/{style.30d1e86f422f446d669b.1.css => style.05ce3c307a634dcd5169.1.css} (100%) rename test/cases/js-hash/expected/webpack-4/{style.b80413d497a74d66cee9.2.css => style.c9487d3c46193641a005.2.css} (100%) rename test/cases/js-hash/expected/webpack-5-importModule/{style.334e3250146c69e0e055.2.css => style.00aa669429946cee3d20.2.css} (100%) rename test/cases/js-hash/expected/webpack-5-importModule/{style.229314c8bccc7c31e2f3.1.css => style.17f5571b796a525cec79.1.css} (100%) rename test/cases/js-hash/expected/webpack-5/{style.94f8540194627e143931.2.css => style.3e1ac9a6569d80b3d351.2.css} (100%) rename test/cases/js-hash/expected/webpack-5/{style.e9af1cbcacecfbc5d911.1.css => style.678e24a6a30ce54e924b.1.css} (100%) rename test/cases/runtime/expected/webpack-4/{main.c4d90d38e7a606ae4d4c.css => main.45423f56597309256073.css} (100%) rename test/cases/runtime/expected/webpack-5-importModule/{main.a7263f8f763dcf4051bc.css => main.a45a4571ab5cece12cf0.css} (100%) rename test/cases/runtime/expected/webpack-5/{main.a7263f8f763dcf4051bc.css => main.a45a4571ab5cece12cf0.css} (100%) diff --git a/package-lock.json b/package-lock.json index 891591d1..3fe26f7b 100644 --- a/package-lock.json +++ b/package-lock.json @@ -5,7 +5,7 @@ "requires": true, "packages": { "": { - "version": "1.6.0", + "version": "1.6.1", "license": "MIT", "dependencies": { "loader-utils": "^2.0.0", diff --git a/src/index.js b/src/index.js index b4068f0d..9bec2650 100644 --- a/src/index.js +++ b/src/index.js @@ -58,11 +58,9 @@ class MiniCssExtractPlugin { this.content = content; this.media = media; this.sourceMap = sourceMap; - this.buildInfo = { - assets, - assetsInfo, - }; - this.buildMeta = {}; + this.assets = assets; + this.assetsInfo = assetsInfo; + this._needBuild = true; } // no source() so webpack 4 doesn't do add stuff to the bundle @@ -103,34 +101,60 @@ class MiniCssExtractPlugin { } updateCacheModule(module) { - this.content = module.content; - this.media = module.media; - this.sourceMap = module.sourceMap; + if ( + this.content !== module.content || + this.media !== module.media || + this.sourceMap !== module.sourceMap || + this.assets !== module.assets || + this.assetsInfo !== module.assetsInfo + ) { + this._needBuild = true; + + this.content = module.content; + this.media = module.media; + this.sourceMap = module.sourceMap; + this.assets = module.assets; + this.assetsInfo = module.assetsInfo; + } } // eslint-disable-next-line class-methods-use-this needRebuild() { - return true; + return this._needBuild; } // eslint-disable-next-line class-methods-use-this needBuild(context, callback) { - callback(null, false); + callback(null, this._needBuild); } build(options, compilation, resolver, fileSystem, callback) { - this.buildInfo = {}; + this.buildInfo = { + assets: this.assets, + assetsInfo: this.assetsInfo, + cacheable: true, + hash: this._computeHash(compilation.outputOptions.hashFunction), + }; this.buildMeta = {}; + this._needBuild = false; callback(); } - updateHash(hash, context) { - super.updateHash(hash, context); + _computeHash(hashFunction) { + const hash = webpack.util.createHash(hashFunction); hash.update(this.content); hash.update(this.media || ''); - hash.update(this.sourceMap ? JSON.stringify(this.sourceMap) : ''); + hash.update(this.sourceMap || ''); + + return hash.digest('hex'); + } + + updateHash(hash, context) { + super.updateHash(hash, context); + + hash.update(this.buildInfo.hash); } serialize(context) { @@ -142,12 +166,17 @@ class MiniCssExtractPlugin { write(this.content); write(this.media); write(this.sourceMap); - write(this.buildInfo); + write(this.assets); + write(this.assetsInfo); + + write(this._needBuild); super.serialize(context); } deserialize(context) { + this._needBuild = context.read(); + super.deserialize(context); } } @@ -176,7 +205,8 @@ class MiniCssExtractPlugin { const content = read(); const media = read(); const sourceMap = read(); - const { assets, assetsInfo } = read(); + const assets = read(); + const assetsInfo = read(); const dep = new CssModule({ context: contextModule, @@ -364,7 +394,7 @@ class MiniCssExtractPlugin { if (this.options.experimentalUseImportModule) { if (!compiler.options.experiments) { throw new Error( - 'experimentalUseImportModule is only support for webpack >= 5.32.0' + 'experimentalUseImportModule is only support for webpack >= 5.33.2' ); } if (typeof compiler.options.experiments.executeModule === 'undefined') { @@ -613,8 +643,14 @@ class MiniCssExtractPlugin { : webpack.util.createHash; const hash = createHash(hashFunction); - for (const m of modules) { - m.updateHash(hash, { chunkGraph }); + if (isWebpack4) { + for (const m of modules) { + m.updateHash(hash); + } + } else { + for (const m of modules) { + hash.update(chunkGraph.getModuleHash(m, chunk.runtime)); + } } // eslint-disable-next-line no-param-reassign diff --git a/test/cases/chunkFilename-fullhash/expected/webpack-5-importModule/0.619e4b98882ea3a2aba3.css b/test/cases/chunkFilename-fullhash/expected/webpack-5-importModule/0.a0b77e3a9967a95b3ac2.css similarity index 100% rename from test/cases/chunkFilename-fullhash/expected/webpack-5-importModule/0.619e4b98882ea3a2aba3.css rename to test/cases/chunkFilename-fullhash/expected/webpack-5-importModule/0.a0b77e3a9967a95b3ac2.css diff --git a/test/cases/chunkFilename-fullhash/expected/webpack-5-importModule/619e4b98882ea3a2aba3.css b/test/cases/chunkFilename-fullhash/expected/webpack-5-importModule/a0b77e3a9967a95b3ac2.css similarity index 100% rename from test/cases/chunkFilename-fullhash/expected/webpack-5-importModule/619e4b98882ea3a2aba3.css rename to test/cases/chunkFilename-fullhash/expected/webpack-5-importModule/a0b77e3a9967a95b3ac2.css diff --git a/test/cases/chunkFilename-fullhash/expected/webpack-5-importModule/main.js b/test/cases/chunkFilename-fullhash/expected/webpack-5-importModule/main.js index 1eba8e1c..e129e640 100644 --- a/test/cases/chunkFilename-fullhash/expected/webpack-5-importModule/main.js +++ b/test/cases/chunkFilename-fullhash/expected/webpack-5-importModule/main.js @@ -73,7 +73,7 @@ __webpack_require__.r(__webpack_exports__); /******/ /******/ /* webpack/runtime/getFullHash */ /******/ (() => { -/******/ __webpack_require__.h = () => ("619e4b98882ea3a2aba3") +/******/ __webpack_require__.h = () => ("a0b77e3a9967a95b3ac2") /******/ })(); /******/ /******/ /* webpack/runtime/global */ diff --git a/test/cases/chunkFilename-fullhash/expected/webpack-5/0.962555dd7355e6c261df.css b/test/cases/chunkFilename-fullhash/expected/webpack-5/0.f8dea56ca966b9c551f2.css similarity index 100% rename from test/cases/chunkFilename-fullhash/expected/webpack-5/0.962555dd7355e6c261df.css rename to test/cases/chunkFilename-fullhash/expected/webpack-5/0.f8dea56ca966b9c551f2.css diff --git a/test/cases/chunkFilename-fullhash/expected/webpack-5/962555dd7355e6c261df.css b/test/cases/chunkFilename-fullhash/expected/webpack-5/f8dea56ca966b9c551f2.css similarity index 100% rename from test/cases/chunkFilename-fullhash/expected/webpack-5/962555dd7355e6c261df.css rename to test/cases/chunkFilename-fullhash/expected/webpack-5/f8dea56ca966b9c551f2.css diff --git a/test/cases/chunkFilename-fullhash/expected/webpack-5/main.js b/test/cases/chunkFilename-fullhash/expected/webpack-5/main.js index 703a8d6c..fdbe9a74 100644 --- a/test/cases/chunkFilename-fullhash/expected/webpack-5/main.js +++ b/test/cases/chunkFilename-fullhash/expected/webpack-5/main.js @@ -73,7 +73,7 @@ __webpack_require__.r(__webpack_exports__); /******/ /******/ /* webpack/runtime/getFullHash */ /******/ (() => { -/******/ __webpack_require__.h = () => ("962555dd7355e6c261df") +/******/ __webpack_require__.h = () => ("f8dea56ca966b9c551f2") /******/ })(); /******/ /******/ /* webpack/runtime/global */ diff --git a/test/cases/content-entries-with-same-import/expected/1.a2e2caac15fbc316194f.css b/test/cases/content-entries-with-same-import/expected/1.88fb74fe1cb22093f204.css similarity index 100% rename from test/cases/content-entries-with-same-import/expected/1.a2e2caac15fbc316194f.css rename to test/cases/content-entries-with-same-import/expected/1.88fb74fe1cb22093f204.css diff --git a/test/cases/content-entries-with-same-import/expected/2.b93278edf8733a516ab1.css b/test/cases/content-entries-with-same-import/expected/2.52b14831e64cae07fa20.css similarity index 100% rename from test/cases/content-entries-with-same-import/expected/2.b93278edf8733a516ab1.css rename to test/cases/content-entries-with-same-import/expected/2.52b14831e64cae07fa20.css diff --git a/test/cases/contenthash-multiple-entries/expected/webpack-4/96236f7f51b351aabd20.css b/test/cases/contenthash-multiple-entries/expected/webpack-4/45abc72feb203941b169.css similarity index 100% rename from test/cases/contenthash-multiple-entries/expected/webpack-4/96236f7f51b351aabd20.css rename to test/cases/contenthash-multiple-entries/expected/webpack-4/45abc72feb203941b169.css diff --git a/test/cases/contenthash-multiple-entries/expected/webpack-4/f22bc5a793a5a86ad253.css b/test/cases/contenthash-multiple-entries/expected/webpack-4/94cfefd2079cb855c465.css similarity index 100% rename from test/cases/contenthash-multiple-entries/expected/webpack-4/f22bc5a793a5a86ad253.css rename to test/cases/contenthash-multiple-entries/expected/webpack-4/94cfefd2079cb855c465.css diff --git a/test/cases/contenthash-multiple-entries/expected/webpack-5-importModule/15a667c7583f9b9ec41d.css b/test/cases/contenthash-multiple-entries/expected/webpack-5-importModule/1cd4a7654bac4107104f.css similarity index 100% rename from test/cases/contenthash-multiple-entries/expected/webpack-5-importModule/15a667c7583f9b9ec41d.css rename to test/cases/contenthash-multiple-entries/expected/webpack-5-importModule/1cd4a7654bac4107104f.css diff --git a/test/cases/contenthash-multiple-entries/expected/webpack-5-importModule/ffa19619c12a79d133f4.css b/test/cases/contenthash-multiple-entries/expected/webpack-5-importModule/788f5dc856f2e114b45c.css similarity index 100% rename from test/cases/contenthash-multiple-entries/expected/webpack-5-importModule/ffa19619c12a79d133f4.css rename to test/cases/contenthash-multiple-entries/expected/webpack-5-importModule/788f5dc856f2e114b45c.css diff --git a/test/cases/contenthash-multiple-entries/expected/webpack-5/15a667c7583f9b9ec41d.css b/test/cases/contenthash-multiple-entries/expected/webpack-5/1cd4a7654bac4107104f.css similarity index 100% rename from test/cases/contenthash-multiple-entries/expected/webpack-5/15a667c7583f9b9ec41d.css rename to test/cases/contenthash-multiple-entries/expected/webpack-5/1cd4a7654bac4107104f.css diff --git a/test/cases/contenthash-multiple-entries/expected/webpack-5/ffa19619c12a79d133f4.css b/test/cases/contenthash-multiple-entries/expected/webpack-5/788f5dc856f2e114b45c.css similarity index 100% rename from test/cases/contenthash-multiple-entries/expected/webpack-5/ffa19619c12a79d133f4.css rename to test/cases/contenthash-multiple-entries/expected/webpack-5/788f5dc856f2e114b45c.css diff --git a/test/cases/contenthash/expected/webpack-4/1.main.c4d90d38e7a606ae4d4c.css b/test/cases/contenthash/expected/webpack-4/1.main.45423f56597309256073.css similarity index 100% rename from test/cases/contenthash/expected/webpack-4/1.main.c4d90d38e7a606ae4d4c.css rename to test/cases/contenthash/expected/webpack-4/1.main.45423f56597309256073.css diff --git a/test/cases/contenthash/expected/webpack-4/2.main.64d1032b1547f22458a7.css b/test/cases/contenthash/expected/webpack-4/2.main.950eec8c261fd54102ea.css similarity index 100% rename from test/cases/contenthash/expected/webpack-4/2.main.64d1032b1547f22458a7.css rename to test/cases/contenthash/expected/webpack-4/2.main.950eec8c261fd54102ea.css diff --git a/test/cases/contenthash/expected/webpack-5-importModule/1.main.a7263f8f763dcf4051bc.css b/test/cases/contenthash/expected/webpack-5-importModule/1.main.a45a4571ab5cece12cf0.css similarity index 100% rename from test/cases/contenthash/expected/webpack-5-importModule/1.main.a7263f8f763dcf4051bc.css rename to test/cases/contenthash/expected/webpack-5-importModule/1.main.a45a4571ab5cece12cf0.css diff --git a/test/cases/contenthash/expected/webpack-5-importModule/2.main.a85c9b6a9dce223262b9.css b/test/cases/contenthash/expected/webpack-5-importModule/2.main.c282a646790b09956021.css similarity index 100% rename from test/cases/contenthash/expected/webpack-5-importModule/2.main.a85c9b6a9dce223262b9.css rename to test/cases/contenthash/expected/webpack-5-importModule/2.main.c282a646790b09956021.css diff --git a/test/cases/contenthash/expected/webpack-5/1.main.a7263f8f763dcf4051bc.css b/test/cases/contenthash/expected/webpack-5/1.main.a45a4571ab5cece12cf0.css similarity index 100% rename from test/cases/contenthash/expected/webpack-5/1.main.a7263f8f763dcf4051bc.css rename to test/cases/contenthash/expected/webpack-5/1.main.a45a4571ab5cece12cf0.css diff --git a/test/cases/contenthash/expected/webpack-5/2.main.a85c9b6a9dce223262b9.css b/test/cases/contenthash/expected/webpack-5/2.main.c282a646790b09956021.css similarity index 100% rename from test/cases/contenthash/expected/webpack-5/2.main.a85c9b6a9dce223262b9.css rename to test/cases/contenthash/expected/webpack-5/2.main.c282a646790b09956021.css diff --git a/test/cases/js-hash/expected/webpack-4/style.30d1e86f422f446d669b.1.css b/test/cases/js-hash/expected/webpack-4/style.05ce3c307a634dcd5169.1.css similarity index 100% rename from test/cases/js-hash/expected/webpack-4/style.30d1e86f422f446d669b.1.css rename to test/cases/js-hash/expected/webpack-4/style.05ce3c307a634dcd5169.1.css diff --git a/test/cases/js-hash/expected/webpack-4/style.b80413d497a74d66cee9.2.css b/test/cases/js-hash/expected/webpack-4/style.c9487d3c46193641a005.2.css similarity index 100% rename from test/cases/js-hash/expected/webpack-4/style.b80413d497a74d66cee9.2.css rename to test/cases/js-hash/expected/webpack-4/style.c9487d3c46193641a005.2.css diff --git a/test/cases/js-hash/expected/webpack-5-importModule/style.334e3250146c69e0e055.2.css b/test/cases/js-hash/expected/webpack-5-importModule/style.00aa669429946cee3d20.2.css similarity index 100% rename from test/cases/js-hash/expected/webpack-5-importModule/style.334e3250146c69e0e055.2.css rename to test/cases/js-hash/expected/webpack-5-importModule/style.00aa669429946cee3d20.2.css diff --git a/test/cases/js-hash/expected/webpack-5-importModule/style.229314c8bccc7c31e2f3.1.css b/test/cases/js-hash/expected/webpack-5-importModule/style.17f5571b796a525cec79.1.css similarity index 100% rename from test/cases/js-hash/expected/webpack-5-importModule/style.229314c8bccc7c31e2f3.1.css rename to test/cases/js-hash/expected/webpack-5-importModule/style.17f5571b796a525cec79.1.css diff --git a/test/cases/js-hash/expected/webpack-5/style.94f8540194627e143931.2.css b/test/cases/js-hash/expected/webpack-5/style.3e1ac9a6569d80b3d351.2.css similarity index 100% rename from test/cases/js-hash/expected/webpack-5/style.94f8540194627e143931.2.css rename to test/cases/js-hash/expected/webpack-5/style.3e1ac9a6569d80b3d351.2.css diff --git a/test/cases/js-hash/expected/webpack-5/style.e9af1cbcacecfbc5d911.1.css b/test/cases/js-hash/expected/webpack-5/style.678e24a6a30ce54e924b.1.css similarity index 100% rename from test/cases/js-hash/expected/webpack-5/style.e9af1cbcacecfbc5d911.1.css rename to test/cases/js-hash/expected/webpack-5/style.678e24a6a30ce54e924b.1.css diff --git a/test/cases/runtime/expected/webpack-4/main.c4d90d38e7a606ae4d4c.css b/test/cases/runtime/expected/webpack-4/main.45423f56597309256073.css similarity index 100% rename from test/cases/runtime/expected/webpack-4/main.c4d90d38e7a606ae4d4c.css rename to test/cases/runtime/expected/webpack-4/main.45423f56597309256073.css diff --git a/test/cases/runtime/expected/webpack-5-importModule/main.a7263f8f763dcf4051bc.css b/test/cases/runtime/expected/webpack-5-importModule/main.a45a4571ab5cece12cf0.css similarity index 100% rename from test/cases/runtime/expected/webpack-5-importModule/main.a7263f8f763dcf4051bc.css rename to test/cases/runtime/expected/webpack-5-importModule/main.a45a4571ab5cece12cf0.css diff --git a/test/cases/runtime/expected/webpack-5-importModule/runtime~main.js b/test/cases/runtime/expected/webpack-5-importModule/runtime~main.js index 277a7166..7e791603 100644 --- a/test/cases/runtime/expected/webpack-5-importModule/runtime~main.js +++ b/test/cases/runtime/expected/webpack-5-importModule/runtime~main.js @@ -130,7 +130,7 @@ /******/ // This function allow to reference all chunks /******/ __webpack_require__.miniCssF = (chunkId) => { /******/ // return url for filenames based on template -/******/ return "" + "main" + "." + "a7263f8f763dcf4051bc" + ".css"; +/******/ return "" + "main" + "." + "a45a4571ab5cece12cf0" + ".css"; /******/ }; /******/ })(); /******/ diff --git a/test/cases/runtime/expected/webpack-5/main.a7263f8f763dcf4051bc.css b/test/cases/runtime/expected/webpack-5/main.a45a4571ab5cece12cf0.css similarity index 100% rename from test/cases/runtime/expected/webpack-5/main.a7263f8f763dcf4051bc.css rename to test/cases/runtime/expected/webpack-5/main.a45a4571ab5cece12cf0.css diff --git a/test/cases/runtime/expected/webpack-5/runtime~main.js b/test/cases/runtime/expected/webpack-5/runtime~main.js index 277a7166..7e791603 100644 --- a/test/cases/runtime/expected/webpack-5/runtime~main.js +++ b/test/cases/runtime/expected/webpack-5/runtime~main.js @@ -130,7 +130,7 @@ /******/ // This function allow to reference all chunks /******/ __webpack_require__.miniCssF = (chunkId) => { /******/ // return url for filenames based on template -/******/ return "" + "main" + "." + "a7263f8f763dcf4051bc" + ".css"; +/******/ return "" + "main" + "." + "a45a4571ab5cece12cf0" + ".css"; /******/ }; /******/ })(); /******/ From 684ad366d2fc34e58746e687bb6d33a797c71be2 Mon Sep 17 00:00:00 2001 From: evilebottnawi Date: Mon, 28 Jun 2021 18:44:36 +0300 Subject: [PATCH 20/30] chore(release): 1.6.2 --- CHANGELOG.md | 6 ++++++ package-lock.json | 2 +- package.json | 2 +- 3 files changed, 8 insertions(+), 2 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 06a8af7a..e9cc15cc 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,6 +2,12 @@ All notable changes to this project will be documented in this file. See [standard-version](https://github.com/conventional-changelog/standard-version) for commit guidelines. +### [1.6.2](https://github.com/webpack-contrib/mini-css-extract-plugin/compare/v1.6.1...v1.6.2) (2021-06-28) + +### Bug Fixes + +* performance improvement + ### [1.6.1](https://github.com/webpack-contrib/mini-css-extract-plugin/compare/v1.6.0...v1.6.1) (2021-06-25) diff --git a/package-lock.json b/package-lock.json index 3fe26f7b..103da079 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,6 +1,6 @@ { "name": "mini-css-extract-plugin", - "version": "1.6.1", + "version": "1.6.2", "lockfileVersion": 2, "requires": true, "packages": { diff --git a/package.json b/package.json index 11c85623..ed90804d 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "mini-css-extract-plugin", - "version": "1.6.1", + "version": "1.6.2", "description": "extracts CSS into separate files", "license": "MIT", "repository": "webpack-contrib/mini-css-extract-plugin", From 35a9efec217017b65f3b1fe849c8a5e396e8f309 Mon Sep 17 00:00:00 2001 From: Alexander Akait <4567934+alexander-akait@users.noreply.github.com> Date: Wed, 30 Jun 2021 18:50:16 +0300 Subject: [PATCH 21/30] refactor!: next --- .eslintignore | 1 + .github/workflows/nodejs.yml | 6 +- .gitignore | 1 + .prettierignore | 1 + README.md | 141 +- jest.config.js | 1 - package-lock.json | 3678 +++++++---------- package.json | 25 +- src/index.js | 1374 +++--- src/loader-options.json | 11 +- src/loader.js | 140 +- src/plugin-options.json | 1 + src/utils.js | 2 + test/TestCache.test.js | 804 ++-- test/TestCases.test.js | 28 +- test/TestMemoryFS.test.js | 5 +- ...test.js.snap.webpack4 => HMR.test.js.snap} | 0 test/__snapshots__/HMR.test.js.snap.webpack5 | 43 - ...ebpack4 => attributes-option.test.js.snap} | 0 .../attributes-option.test.js.snap.webpack5 | 37 - ...snap.webpack5 => emit-option.test.js.snap} | 0 .../emit-option.test.js.snap.webpack4 | 52 - ...ap.webpack4 => insert-option.test.js.snap} | 0 .../insert-option.test.js.snap.webpack5 | 55 - ...p.webpack4 => linkTag-option.test.js.snap} | 0 .../linkTag-option.test.js.snap.webpack5 | 55 - ...5 => validate-loader-options.test.js.snap} | 28 +- ...idate-loader-options.test.js.snap.webpack4 | 75 - ...4 => validate-plugin-options.test.js.snap} | 0 ...idate-plugin-options.test.js.snap.webpack5 | 145 - test/cases/auxiliaryAssets/test.filter.js | 5 +- .../expected/webpack-4/1.async.css | 4 - .../expected/webpack-4/1.async.css | 4 - .../webpack-4/45abc72feb203941b169.css | 4 - .../webpack-4/94cfefd2079cb855c465.css | 8 - .../webpack-4/2.main.950eec8c261fd54102ea.css | 4 - .../expected/webpack-4/main.css | 6 - .../expected/webpack-4/main.css.map | 1 - .../expected/webpack-4/main.css | 6 - .../expected/webpack-4/main.css.map | 1 - .../expected/webpack-4/main.css | 12 - .../expected/webpack-4/main.js | 141 - .../webpack.config.js | 3 - .../expected/webpack-4/main.css | 12 - .../expected/webpack-4/main.js | 111 - .../expected/{main.js => main.mjs} | 0 .../webpack.config.js | 6 - .../expected/webpack-4/main.css | 12 - .../expected/webpack-4/main.js | 115 - test/cases/es-named-export/webpack.config.js | 6 - .../expected/webpack-4/1.main.css | 4 - test/cases/hmr/expected/webpack-4/main.css | 24 - test/cases/hmr/expected/webpack-4/main.js | 1167 ------ .../insert-function/expected/webpack-4/1.js | 12 - .../expected/webpack-4/main.js | 273 -- .../insert-string/expected/webpack-4/1.css | 4 - .../insert-string/expected/webpack-4/1.js | 12 - .../insert-string/expected/webpack-4/main.js | 268 -- .../insert-undefined/expected/webpack-4/1.css | 4 - .../insert-undefined/expected/webpack-4/1.js | 12 - .../expected/webpack-4/main.js | 267 -- .../style.05ce3c307a634dcd5169.1.css | 4 - .../style.c9487d3c46193641a005.2.css | 5 - .../webpack-5-importModule/one-main.js | 62 + .../webpack-5-importModule/one}/main.css | 0 .../webpack-5-importModule/two-main.js | 62 + .../webpack-5-importModule/two}/main.css | 0 .../expected/webpack-5/one-main.js | 62 + .../expected/webpack-5/one}/main.css | 0 .../expected/webpack-5/two-main.js | 62 + .../expected/webpack-5/two/main.css} | 0 test/cases/multiple-compiler/index.js | 1 + .../1.css => multiple-compiler/style.css} | 1 - .../cases/multiple-compiler/webpack.config.js | 42 + .../test.filter.js | 5 +- .../new-url-with-public-path/test.filter.js | 5 +- .../webpack.config.js | 2 +- .../expected/assets/img/react.svg | 1 + .../publicpath-auto-2/expected/same_root.svg | 1 + .../expected/styles/main.css | 20 + .../expected/styles/nested/nested_dir.svg | 1 + .../expected/styles/same_dir.svg | 1 + test/cases/publicpath-auto-2/images/react.svg | 1 + test/cases/publicpath-auto-2/index.js | 1 + test/cases/publicpath-auto-2/nested_dir.svg | 1 + test/cases/publicpath-auto-2/outer.svg | 1 + test/cases/publicpath-auto-2/same_dir.svg | 1 + test/cases/publicpath-auto-2/same_root.svg | 1 + test/cases/publicpath-auto-2/style.css | 19 + .../cases/publicpath-auto-2/webpack.config.js | 51 + .../expected/assets/img/react.svg | 1 + .../expected/assets/img2.svg | 1 + .../expected/assets/nested/img3.svg | 1 + .../cases/publicpath-auto-3/expected/img1.svg | 1 + .../cases/publicpath-auto-3/expected/img4.svg | 1 + .../cases/publicpath-auto-3/expected/main.css | 24 + test/cases/publicpath-auto-3/images/react.svg | 1 + test/cases/publicpath-auto-3/img2.svg | 1 + test/cases/publicpath-auto-3/img3.svg | 1 + test/cases/publicpath-auto-3/index.js | 1 + test/cases/publicpath-auto-3/outer.svg | 1 + .../publicpath-auto-3/src/styles/img/img4.svg | 1 + .../publicpath-auto-3/src/styles/img1.svg | 1 + .../publicpath-auto-3/src/styles/style.css | 23 + .../cases/publicpath-auto-3/webpack.config.js | 56 + .../publicpath-auto/expected/assets/react.svg | 1 + .../styles/acd3bf0b9406dcf364d6/main.css | 5 + test/cases/publicpath-auto/index.js | 1 + test/cases/publicpath-auto/react.svg | 1 + test/cases/publicpath-auto/style.css | 4 + test/cases/publicpath-auto/webpack.config.js | 31 + .../expected/main.css | 5 - .../webpack-4/main.45423f56597309256073.css | 4 - .../expected/webpack-4/runtime~main.js | 223 - .../expected/webpack-4/styles~a~b.css | 4 - test/cases/split-chunks-all/webpack.config.js | 18 +- test/emit-option.test.js | 530 ++- test/enforce-esm.test.js | 8 +- test/helpers/getCompiler.js | 36 +- test/helpers/snapshotResolver.js | 34 - test/validate-loader-options.test.js | 4 - test/validate-plugin-options.test.js | 9 +- 122 files changed, 3407 insertions(+), 7256 deletions(-) rename test/__snapshots__/{HMR.test.js.snap.webpack4 => HMR.test.js.snap} (100%) delete mode 100644 test/__snapshots__/HMR.test.js.snap.webpack5 rename test/__snapshots__/{attributes-option.test.js.snap.webpack4 => attributes-option.test.js.snap} (100%) delete mode 100644 test/__snapshots__/attributes-option.test.js.snap.webpack5 rename test/__snapshots__/{emit-option.test.js.snap.webpack5 => emit-option.test.js.snap} (100%) delete mode 100644 test/__snapshots__/emit-option.test.js.snap.webpack4 rename test/__snapshots__/{insert-option.test.js.snap.webpack4 => insert-option.test.js.snap} (100%) delete mode 100644 test/__snapshots__/insert-option.test.js.snap.webpack5 rename test/__snapshots__/{linkTag-option.test.js.snap.webpack4 => linkTag-option.test.js.snap} (100%) delete mode 100644 test/__snapshots__/linkTag-option.test.js.snap.webpack5 rename test/__snapshots__/{validate-loader-options.test.js.snap.webpack5 => validate-loader-options.test.js.snap} (72%) delete mode 100644 test/__snapshots__/validate-loader-options.test.js.snap.webpack4 rename test/__snapshots__/{validate-plugin-options.test.js.snap.webpack4 => validate-plugin-options.test.js.snap} (100%) delete mode 100644 test/__snapshots__/validate-plugin-options.test.js.snap.webpack5 delete mode 100644 test/cases/chunkFilename-as-function/expected/webpack-4/1.async.css delete mode 100644 test/cases/chunkFilename/expected/webpack-4/1.async.css delete mode 100644 test/cases/contenthash-multiple-entries/expected/webpack-4/45abc72feb203941b169.css delete mode 100644 test/cases/contenthash-multiple-entries/expected/webpack-4/94cfefd2079cb855c465.css delete mode 100644 test/cases/contenthash/expected/webpack-4/2.main.950eec8c261fd54102ea.css delete mode 100644 test/cases/devtool-source-map-from-loaders/expected/webpack-4/main.css delete mode 100644 test/cases/devtool-source-map-from-loaders/expected/webpack-4/main.css.map delete mode 100644 test/cases/devtool-source-map-no-source-maps-from-loaders/expected/webpack-4/main.css delete mode 100644 test/cases/devtool-source-map-no-source-maps-from-loaders/expected/webpack-4/main.css.map delete mode 100644 test/cases/es-module-concatenation-modules/expected/webpack-4/main.css delete mode 100644 test/cases/es-module-concatenation-modules/expected/webpack-4/main.js delete mode 100644 test/cases/es-module-concatenation/expected/webpack-4/main.css delete mode 100644 test/cases/es-module-concatenation/expected/webpack-4/main.js rename test/cases/es-named-export-output-module/expected/{main.js => main.mjs} (100%) delete mode 100644 test/cases/es-named-export/expected/webpack-4/main.css delete mode 100644 test/cases/es-named-export/expected/webpack-4/main.js delete mode 100644 test/cases/filename-without-template/expected/webpack-4/1.main.css delete mode 100644 test/cases/hmr/expected/webpack-4/main.css delete mode 100644 test/cases/hmr/expected/webpack-4/main.js delete mode 100644 test/cases/insert-function/expected/webpack-4/1.js delete mode 100644 test/cases/insert-function/expected/webpack-4/main.js delete mode 100644 test/cases/insert-string/expected/webpack-4/1.css delete mode 100644 test/cases/insert-string/expected/webpack-4/1.js delete mode 100644 test/cases/insert-string/expected/webpack-4/main.js delete mode 100644 test/cases/insert-undefined/expected/webpack-4/1.css delete mode 100644 test/cases/insert-undefined/expected/webpack-4/1.js delete mode 100644 test/cases/insert-undefined/expected/webpack-4/main.js delete mode 100644 test/cases/js-hash/expected/webpack-4/style.05ce3c307a634dcd5169.1.css delete mode 100644 test/cases/js-hash/expected/webpack-4/style.c9487d3c46193641a005.2.css create mode 100644 test/cases/multiple-compiler/expected/webpack-5-importModule/one-main.js rename test/cases/{chunkFilename-as-function/expected/webpack-4 => multiple-compiler/expected/webpack-5-importModule/one}/main.css (100%) create mode 100644 test/cases/multiple-compiler/expected/webpack-5-importModule/two-main.js rename test/cases/{chunkFilename/expected/webpack-4 => multiple-compiler/expected/webpack-5-importModule/two}/main.css (100%) create mode 100644 test/cases/multiple-compiler/expected/webpack-5/one-main.js rename test/cases/{filename-without-template/expected/webpack-4 => multiple-compiler/expected/webpack-5/one}/main.css (100%) create mode 100644 test/cases/multiple-compiler/expected/webpack-5/two-main.js rename test/cases/{contenthash/expected/webpack-4/1.main.45423f56597309256073.css => multiple-compiler/expected/webpack-5/two/main.css} (100%) create mode 100644 test/cases/multiple-compiler/index.js rename test/cases/{insert-function/expected/webpack-4/1.css => multiple-compiler/style.css} (96%) create mode 100644 test/cases/multiple-compiler/webpack.config.js create mode 100644 test/cases/publicpath-auto-2/expected/assets/img/react.svg create mode 100644 test/cases/publicpath-auto-2/expected/same_root.svg create mode 100644 test/cases/publicpath-auto-2/expected/styles/main.css create mode 100644 test/cases/publicpath-auto-2/expected/styles/nested/nested_dir.svg create mode 100644 test/cases/publicpath-auto-2/expected/styles/same_dir.svg create mode 100644 test/cases/publicpath-auto-2/images/react.svg create mode 100644 test/cases/publicpath-auto-2/index.js create mode 100644 test/cases/publicpath-auto-2/nested_dir.svg create mode 100644 test/cases/publicpath-auto-2/outer.svg create mode 100644 test/cases/publicpath-auto-2/same_dir.svg create mode 100644 test/cases/publicpath-auto-2/same_root.svg create mode 100644 test/cases/publicpath-auto-2/style.css create mode 100644 test/cases/publicpath-auto-2/webpack.config.js create mode 100644 test/cases/publicpath-auto-3/expected/assets/img/react.svg create mode 100644 test/cases/publicpath-auto-3/expected/assets/img2.svg create mode 100644 test/cases/publicpath-auto-3/expected/assets/nested/img3.svg create mode 100644 test/cases/publicpath-auto-3/expected/img1.svg create mode 100644 test/cases/publicpath-auto-3/expected/img4.svg create mode 100644 test/cases/publicpath-auto-3/expected/main.css create mode 100644 test/cases/publicpath-auto-3/images/react.svg create mode 100644 test/cases/publicpath-auto-3/img2.svg create mode 100644 test/cases/publicpath-auto-3/img3.svg create mode 100644 test/cases/publicpath-auto-3/index.js create mode 100644 test/cases/publicpath-auto-3/outer.svg create mode 100644 test/cases/publicpath-auto-3/src/styles/img/img4.svg create mode 100644 test/cases/publicpath-auto-3/src/styles/img1.svg create mode 100644 test/cases/publicpath-auto-3/src/styles/style.css create mode 100644 test/cases/publicpath-auto-3/webpack.config.js create mode 100644 test/cases/publicpath-auto/expected/assets/react.svg create mode 100644 test/cases/publicpath-auto/expected/styles/acd3bf0b9406dcf364d6/main.css create mode 100644 test/cases/publicpath-auto/index.js create mode 100644 test/cases/publicpath-auto/react.svg create mode 100644 test/cases/publicpath-auto/style.css create mode 100644 test/cases/publicpath-auto/webpack.config.js delete mode 100644 test/cases/publicpath-trailing-slash/expected/main.css delete mode 100644 test/cases/runtime/expected/webpack-4/main.45423f56597309256073.css delete mode 100644 test/cases/runtime/expected/webpack-4/runtime~main.js delete mode 100644 test/cases/split-chunks-all/expected/webpack-4/styles~a~b.css delete mode 100644 test/helpers/snapshotResolver.js diff --git a/.eslintignore b/.eslintignore index 8477d2ab..3de62820 100644 --- a/.eslintignore +++ b/.eslintignore @@ -4,3 +4,4 @@ /test/fixtures /test/cases/*/expected /test/js +/test/manual/dist diff --git a/.github/workflows/nodejs.yml b/.github/workflows/nodejs.yml index a3f31c9b..3f259adc 100644 --- a/.github/workflows/nodejs.yml +++ b/.github/workflows/nodejs.yml @@ -55,8 +55,8 @@ jobs: strategy: matrix: os: [ubuntu-latest, windows-latest, macos-latest] - node-version: [10.x, 12.x, 14.x] - webpack-version: [4, latest] + node-version: [12.x, 14.x, 16.x] + webpack-version: [latest] runs-on: ${{ matrix.os }} @@ -112,7 +112,7 @@ jobs: strategy: matrix: os: [ubuntu-latest, windows-latest, macos-latest] - node-version: [10.x, 12.x, 14.x] + node-version: [12.x, 14.x, 16.x] runs-on: ${{ matrix.os }} diff --git a/.gitignore b/.gitignore index 5c45b95b..506b2a57 100644 --- a/.gitignore +++ b/.gitignore @@ -6,6 +6,7 @@ npm-debug.log* /dist /test/js /test/outputs +/test/manual/dist /local /reports /node_modules diff --git a/.prettierignore b/.prettierignore index 41ff7724..d9dd09e9 100644 --- a/.prettierignore +++ b/.prettierignore @@ -2,6 +2,7 @@ /dist /node_modules /test/fixtures +/test/manual/dist /test/cases/*/expected /test/js CHANGELOG.md diff --git a/README.md b/README.md index 9c2c6893..7815b61d 100644 --- a/README.md +++ b/README.md @@ -296,7 +296,6 @@ module.exports = { | **[`publicPath`](#publicPath)** | `{String\|Function}` | `webpackOptions.output.publicPath` | Specifies a custom public path for the external resources like images, files, etc | | **[`emit`](#emit)** | `{Boolean}` | `true` | If false, the plugin will extract the CSS but **will not** emit the file | | **[`esModule`](#esModule)** | `{Boolean}` | `true` | Use ES modules syntax | -| **[`modules`](#modules)** | `{Object}` | `undefined` | Configuration CSS Modules | #### `publicPath` @@ -422,85 +421,6 @@ module.exports = { }; ``` -#### `modules` - -Type: `Object` -Default: `undefined` - -Configuration CSS Modules. - -##### `namedExport` - -Type: `Boolean` -Default: `false` - -Enables/disables ES modules named export for locals. - -> ⚠ Names of locals are converted to `camelCase`. - -> ⚠ It is not allowed to use JavaScript reserved words in css class names. - -> ⚠ Options `esModule` and `modules.namedExport` in `css-loader` and `MiniCssExtractPlugin.loader` should be enabled. - -**styles.css** - -```css -.foo-baz { - color: red; -} -.bar { - color: blue; -} -``` - -**index.js** - -```js -import { fooBaz, bar } from './styles.css'; - -console.log(fooBaz, bar); -``` - -You can enable a ES module named export using: - -**webpack.config.js** - -```js -const MiniCssExtractPlugin = require('mini-css-extract-plugin'); - -module.exports = { - plugins: [new MiniCssExtractPlugin()], - module: { - rules: [ - { - test: /\.css$/, - use: [ - { - loader: MiniCssExtractPlugin.loader, - options: { - esModule: true, - modules: { - namedExport: true, - }, - }, - }, - { - loader: 'css-loader', - options: { - esModule: true, - modules: { - namedExport: true, - localIdentName: 'foo__[name]__[local]', - }, - }, - }, - ], - }, - ], - }, -}; -``` - ## Examples ### Recommend @@ -573,6 +493,67 @@ module.exports = { }; ``` +### Named export for CSS Modules + +> ⚠ Names of locals are converted to `camelCase`. + +> ⚠ It is not allowed to use JavaScript reserved words in css class names. + +> ⚠ Options `esModule` and `modules.namedExport` in `css-loader` should be enabled. + +**styles.css** + +```css +.foo-baz { + color: red; +} +.bar { + color: blue; +} +``` + +**index.js** + +```js +import { fooBaz, bar } from './styles.css'; + +console.log(fooBaz, bar); +``` + +You can enable a ES module named export using: + +**webpack.config.js** + +```js +const MiniCssExtractPlugin = require('mini-css-extract-plugin'); + +module.exports = { + plugins: [new MiniCssExtractPlugin()], + module: { + rules: [ + { + test: /\.css$/, + use: [ + { + loader: MiniCssExtractPlugin.loader, + }, + { + loader: 'css-loader', + options: { + esModule: true, + modules: { + namedExport: true, + localIdentName: 'foo__[name]__[local]', + }, + }, + }, + ], + }, + ], + }, +}; +``` + ### The `publicPath` option as function **webpack.config.js** diff --git a/jest.config.js b/jest.config.js index 0cff348b..9d9cc847 100644 --- a/jest.config.js +++ b/jest.config.js @@ -3,5 +3,4 @@ module.exports = { transformIgnorePatterns: ['/node_modules/', '/dist/'], watchPathIgnorePatterns: ['/test/js'], setupFilesAfterEnv: ['/setupTest.js'], - snapshotResolver: './test/helpers/snapshotResolver.js', }; diff --git a/package-lock.json b/package-lock.json index 103da079..4b290126 100644 --- a/package-lock.json +++ b/package-lock.json @@ -5,41 +5,40 @@ "requires": true, "packages": { "": { - "version": "1.6.1", + "version": "1.6.2", "license": "MIT", "dependencies": { "loader-utils": "^2.0.0", - "schema-utils": "^3.0.0", - "webpack-sources": "^1.1.0" + "schema-utils": "^3.0.0" }, "devDependencies": { "@babel/cli": "^7.14.5", "@babel/core": "^7.14.6", - "@babel/preset-env": "^7.14.5", + "@babel/preset-env": "^7.14.7", "@commitlint/cli": "^12.1.4", "@commitlint/config-conventional": "^12.1.4", "@webpack-contrib/eslint-config-webpack": "^3.0.0", "babel-eslint": "^10.1.0", - "babel-jest": "^27.0.2", + "babel-jest": "^27.0.6", "bootstrap": "^4.6.0", "cross-env": "^7.0.3", "css-loader": "^5.2.6", "del": "^6.0.0", - "del-cli": "^3.0.1", + "del-cli": "^4.0.0", "es-check": "5.2.3", - "eslint": "^7.28.0", + "eslint": "^7.29.0", "eslint-config-prettier": "^8.1.0", "eslint-plugin-import": "^2.23.4", "file-loader": "^6.2.0", - "husky": "^5.2.0", - "jest": "^27.0.4", + "husky": "^6.0.0", + "jest": "^27.0.6", "jsdom": "^16.5.1", - "lint-staged": "^10.5.4", + "lint-staged": "^11.0.0", "memfs": "^3.0.2", "npm-run-all": "^4.1.5", - "prettier": "^2.3.1", - "standard-version": "^9.1.0", - "webpack": "^5.40.0", + "prettier": "^2.3.2", + "standard-version": "^9.3.0", + "webpack": "^5.41.1", "webpack-cli": "^4.7.2", "webpack-dev-server": "^3.11.2" }, @@ -51,7 +50,7 @@ "url": "https://opencollective.com/webpack" }, "peerDependencies": { - "webpack": "^4.4.0 || ^5.0.0" + "webpack": "^5.0.0" } }, "node_modules/@babel/cli": { @@ -96,9 +95,9 @@ } }, "node_modules/@babel/compat-data": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.14.5.tgz", - "integrity": "sha512-kixrYn4JwfAVPa0f2yfzc2AWti6WRRyO3XjWW5PJAvtE11qhSayrrcrEnee05KAtNaPC+EwehE8Qt1UedEVB8w==", + "version": "7.14.7", + "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.14.7.tgz", + "integrity": "sha512-nS6dZaISCXJ3+518CWiBfEr//gHyMO02uDxBkXTKZDN5POruCnOZ1N4YBRZDCabwF8nZMWBpRxIicmXtBs+fvw==", "dev": true, "engines": { "node": ">=6.9.0" @@ -297,9 +296,9 @@ } }, "node_modules/@babel/helper-member-expression-to-functions": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.14.5.tgz", - "integrity": "sha512-UxUeEYPrqH1Q/k0yRku1JE7dyfyehNwT6SVkMHvYvPDv4+uu627VXBckVj891BO8ruKBkiDoGnZf4qPDD8abDQ==", + "version": "7.14.7", + "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.14.7.tgz", + "integrity": "sha512-TMUt4xKxJn6ccjcOW7c4hlwyJArizskAhoSTOCkA0uZ+KghIaci0Qg9R043kUMWI9mtQfgny+NQ5QATnZ+paaA==", "dev": true, "dependencies": { "@babel/types": "^7.14.5" @@ -487,9 +486,9 @@ } }, "node_modules/@babel/parser": { - "version": "7.14.6", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.14.6.tgz", - "integrity": "sha512-oG0ej7efjEXxb4UgE+klVx+3j4MVo+A2vCzm7OUN4CLo6WhQ+vSOD2yJ8m7B+DghObxtLxt3EfgMWpq+AsWehQ==", + "version": "7.14.7", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.14.7.tgz", + "integrity": "sha512-X67Z5y+VBJuHB/RjwECp8kSl5uYi0BvRbNeWqkaJCVh+LiTPl19WBUfG627psSgp9rSf6ojuXghQM3ha6qHHdA==", "dev": true, "bin": { "parser": "bin/babel-parser.js" @@ -516,9 +515,9 @@ } }, "node_modules/@babel/plugin-proposal-async-generator-functions": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.14.5.tgz", - "integrity": "sha512-tbD/CG3l43FIXxmu4a7RBe4zH7MLJ+S/lFowPFO7HetS2hyOZ/0nnnznegDuzFzfkyQYTxqdTH/hKmuBngaDAA==", + "version": "7.14.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.14.7.tgz", + "integrity": "sha512-RK8Wj7lXLY3bqei69/cc25gwS5puEc3dknoFPFbqfy3XxYQBQFvu4ioWpafMBAB+L9NyptQK4nMOa5Xz16og8Q==", "dev": true, "dependencies": { "@babel/helper-plugin-utils": "^7.14.5", @@ -662,12 +661,12 @@ } }, "node_modules/@babel/plugin-proposal-object-rest-spread": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.14.5.tgz", - "integrity": "sha512-VzMyY6PWNPPT3pxc5hi9LloKNr4SSrVCg7Yr6aZpW4Ym07r7KqSU/QXYwjXLVxqwSv0t/XSXkFoKBPUkZ8vb2A==", + "version": "7.14.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.14.7.tgz", + "integrity": "sha512-082hsZz+sVabfmDWo1Oct1u1AgbKbUAyVgmX4otIc7bdsRgHBXwTwb3DpDmD4Eyyx6DNiuz5UAATT655k+kL5g==", "dev": true, "dependencies": { - "@babel/compat-data": "^7.14.5", + "@babel/compat-data": "^7.14.7", "@babel/helper-compilation-targets": "^7.14.5", "@babel/helper-plugin-utils": "^7.14.5", "@babel/plugin-syntax-object-rest-spread": "^7.8.3", @@ -1078,9 +1077,9 @@ } }, "node_modules/@babel/plugin-transform-destructuring": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.14.5.tgz", - "integrity": "sha512-wU9tYisEbRMxqDezKUqC9GleLycCRoUsai9ddlsq54r8QRLaeEhc+d+9DqCG+kV9W2GgQjTZESPTpn5bAFMDww==", + "version": "7.14.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.14.7.tgz", + "integrity": "sha512-0mDE99nK+kVh3xlc5vKwB6wnP9ecuSj+zQCa/n0voENtP/zymdT4HH6QEb65wjjcbqr1Jb/7z9Qp7TF5FtwYGw==", "dev": true, "dependencies": { "@babel/helper-plugin-utils": "^7.14.5" @@ -1271,9 +1270,9 @@ } }, "node_modules/@babel/plugin-transform-named-capturing-groups-regex": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.14.5.tgz", - "integrity": "sha512-+Xe5+6MWFo311U8SchgeX5c1+lJM+eZDBZgD+tvXu9VVQPXwwVzeManMMjYX6xw2HczngfOSZjoFYKwdeB/Jvw==", + "version": "7.14.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.14.7.tgz", + "integrity": "sha512-DTNOTaS7TkW97xsDMrp7nycUVh6sn/eq22VaxWfEdzuEbRsiaOU0pqU7DlyUGHVsbQbSghvjKRpEl+nUCKGQSg==", "dev": true, "dependencies": { "@babel/helper-create-regexp-features-plugin": "^7.14.5" @@ -1484,17 +1483,17 @@ } }, "node_modules/@babel/preset-env": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.14.5.tgz", - "integrity": "sha512-ci6TsS0bjrdPpWGnQ+m4f+JSSzDKlckqKIJJt9UZ/+g7Zz9k0N8lYU8IeLg/01o2h8LyNZDMLGgRLDTxpudLsA==", + "version": "7.14.7", + "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.14.7.tgz", + "integrity": "sha512-itOGqCKLsSUl0Y+1nSfhbuuOlTs0MJk2Iv7iSH+XT/mR8U1zRLO7NjWlYXB47yhK4J/7j+HYty/EhFZDYKa/VA==", "dev": true, "dependencies": { - "@babel/compat-data": "^7.14.5", + "@babel/compat-data": "^7.14.7", "@babel/helper-compilation-targets": "^7.14.5", "@babel/helper-plugin-utils": "^7.14.5", "@babel/helper-validator-option": "^7.14.5", "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": "^7.14.5", - "@babel/plugin-proposal-async-generator-functions": "^7.14.5", + "@babel/plugin-proposal-async-generator-functions": "^7.14.7", "@babel/plugin-proposal-class-properties": "^7.14.5", "@babel/plugin-proposal-class-static-block": "^7.14.5", "@babel/plugin-proposal-dynamic-import": "^7.14.5", @@ -1503,7 +1502,7 @@ "@babel/plugin-proposal-logical-assignment-operators": "^7.14.5", "@babel/plugin-proposal-nullish-coalescing-operator": "^7.14.5", "@babel/plugin-proposal-numeric-separator": "^7.14.5", - "@babel/plugin-proposal-object-rest-spread": "^7.14.5", + "@babel/plugin-proposal-object-rest-spread": "^7.14.7", "@babel/plugin-proposal-optional-catch-binding": "^7.14.5", "@babel/plugin-proposal-optional-chaining": "^7.14.5", "@babel/plugin-proposal-private-methods": "^7.14.5", @@ -1529,7 +1528,7 @@ "@babel/plugin-transform-block-scoping": "^7.14.5", "@babel/plugin-transform-classes": "^7.14.5", "@babel/plugin-transform-computed-properties": "^7.14.5", - "@babel/plugin-transform-destructuring": "^7.14.5", + "@babel/plugin-transform-destructuring": "^7.14.7", "@babel/plugin-transform-dotall-regex": "^7.14.5", "@babel/plugin-transform-duplicate-keys": "^7.14.5", "@babel/plugin-transform-exponentiation-operator": "^7.14.5", @@ -1541,7 +1540,7 @@ "@babel/plugin-transform-modules-commonjs": "^7.14.5", "@babel/plugin-transform-modules-systemjs": "^7.14.5", "@babel/plugin-transform-modules-umd": "^7.14.5", - "@babel/plugin-transform-named-capturing-groups-regex": "^7.14.5", + "@babel/plugin-transform-named-capturing-groups-regex": "^7.14.7", "@babel/plugin-transform-new-target": "^7.14.5", "@babel/plugin-transform-object-super": "^7.14.5", "@babel/plugin-transform-parameters": "^7.14.5", @@ -1549,7 +1548,7 @@ "@babel/plugin-transform-regenerator": "^7.14.5", "@babel/plugin-transform-reserved-words": "^7.14.5", "@babel/plugin-transform-shorthand-properties": "^7.14.5", - "@babel/plugin-transform-spread": "^7.14.5", + "@babel/plugin-transform-spread": "^7.14.6", "@babel/plugin-transform-sticky-regex": "^7.14.5", "@babel/plugin-transform-template-literals": "^7.14.5", "@babel/plugin-transform-typeof-symbol": "^7.14.5", @@ -1560,7 +1559,7 @@ "babel-plugin-polyfill-corejs2": "^0.2.2", "babel-plugin-polyfill-corejs3": "^0.2.2", "babel-plugin-polyfill-regenerator": "^0.2.2", - "core-js-compat": "^3.14.0", + "core-js-compat": "^3.15.0", "semver": "^6.3.0" }, "engines": { @@ -1613,9 +1612,9 @@ } }, "node_modules/@babel/traverse": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.14.5.tgz", - "integrity": "sha512-G3BiS15vevepdmFqmUc9X+64y0viZYygubAMO8SvBmKARuF6CPSZtH4Ng9vi/lrWlZFGe3FWdXNy835akH8Glg==", + "version": "7.14.7", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.14.7.tgz", + "integrity": "sha512-9vDr5NzHu27wgwejuKL7kIOm4bwEtaPQ4Z6cpCmjSuaRqpH/7xc4qcGEscwMqlkwgcXl6MvqoAjZkQ24uSdIZQ==", "dev": true, "dependencies": { "@babel/code-frame": "^7.14.5", @@ -1623,7 +1622,7 @@ "@babel/helper-function-name": "^7.14.5", "@babel/helper-hoist-variables": "^7.14.5", "@babel/helper-split-export-declaration": "^7.14.5", - "@babel/parser": "^7.14.5", + "@babel/parser": "^7.14.7", "@babel/types": "^7.14.5", "debug": "^4.1.0", "globals": "^11.1.0" @@ -2094,9 +2093,9 @@ } }, "node_modules/@discoveryjs/json-ext": { - "version": "0.5.2", - "resolved": "https://registry.npmjs.org/@discoveryjs/json-ext/-/json-ext-0.5.2.tgz", - "integrity": "sha512-HyYEUDeIj5rRQU2Hk5HTB2uHsbRQpF70nvMhVzi+VJR0X+xNEhjPui4/kBf3VeH/wqD28PT4sVOm8qqLjBrSZg==", + "version": "0.5.3", + "resolved": "https://registry.npmjs.org/@discoveryjs/json-ext/-/json-ext-0.5.3.tgz", + "integrity": "sha512-Fxt+AfXgjMoin2maPIYzFZnQjAXjAL0PHscM5pRTtatFqB+vZxAM9tLp2Optnuw3QOQC40jTNeGYFOMvyf7v9g==", "dev": true, "engines": { "node": ">=10.0.0" @@ -2227,16 +2226,16 @@ } }, "node_modules/@jest/console": { - "version": "27.0.2", - "resolved": "https://registry.npmjs.org/@jest/console/-/console-27.0.2.tgz", - "integrity": "sha512-/zYigssuHLImGeMAACkjI4VLAiiJznHgAl3xnFT19iWyct2LhrH3KXOjHRmxBGTkiPLZKKAJAgaPpiU9EZ9K+w==", + "version": "27.0.6", + "resolved": "https://registry.npmjs.org/@jest/console/-/console-27.0.6.tgz", + "integrity": "sha512-fMlIBocSHPZ3JxgWiDNW/KPj6s+YRd0hicb33IrmelCcjXo/pXPwvuiKFmZz+XuqI/1u7nbUK10zSsWL/1aegg==", "dev": true, "dependencies": { - "@jest/types": "^27.0.2", + "@jest/types": "^27.0.6", "@types/node": "*", "chalk": "^4.0.0", - "jest-message-util": "^27.0.2", - "jest-util": "^27.0.2", + "jest-message-util": "^27.0.6", + "jest-util": "^27.0.6", "slash": "^3.0.0" }, "engines": { @@ -2323,35 +2322,35 @@ } }, "node_modules/@jest/core": { - "version": "27.0.4", - "resolved": "https://registry.npmjs.org/@jest/core/-/core-27.0.4.tgz", - "integrity": "sha512-+dsmV8VUs1h/Szb+rEWk8xBM1fp1I///uFy9nk3wXGvRsF2lBp8EVPmtWc+QFRb3MY2b7u2HbkGF1fzoDzQTLA==", + "version": "27.0.6", + "resolved": "https://registry.npmjs.org/@jest/core/-/core-27.0.6.tgz", + "integrity": "sha512-SsYBm3yhqOn5ZLJCtccaBcvD/ccTLCeuDv8U41WJH/V1MW5eKUkeMHT9U+Pw/v1m1AIWlnIW/eM2XzQr0rEmow==", "dev": true, "dependencies": { - "@jest/console": "^27.0.2", - "@jest/reporters": "^27.0.4", - "@jest/test-result": "^27.0.2", - "@jest/transform": "^27.0.2", - "@jest/types": "^27.0.2", + "@jest/console": "^27.0.6", + "@jest/reporters": "^27.0.6", + "@jest/test-result": "^27.0.6", + "@jest/transform": "^27.0.6", + "@jest/types": "^27.0.6", "@types/node": "*", "ansi-escapes": "^4.2.1", "chalk": "^4.0.0", "emittery": "^0.8.1", "exit": "^0.1.2", "graceful-fs": "^4.2.4", - "jest-changed-files": "^27.0.2", - "jest-config": "^27.0.4", - "jest-haste-map": "^27.0.2", - "jest-message-util": "^27.0.2", - "jest-regex-util": "^27.0.1", - "jest-resolve": "^27.0.4", - "jest-resolve-dependencies": "^27.0.4", - "jest-runner": "^27.0.4", - "jest-runtime": "^27.0.4", - "jest-snapshot": "^27.0.4", - "jest-util": "^27.0.2", - "jest-validate": "^27.0.2", - "jest-watcher": "^27.0.2", + "jest-changed-files": "^27.0.6", + "jest-config": "^27.0.6", + "jest-haste-map": "^27.0.6", + "jest-message-util": "^27.0.6", + "jest-regex-util": "^27.0.6", + "jest-resolve": "^27.0.6", + "jest-resolve-dependencies": "^27.0.6", + "jest-runner": "^27.0.6", + "jest-runtime": "^27.0.6", + "jest-snapshot": "^27.0.6", + "jest-util": "^27.0.6", + "jest-validate": "^27.0.6", + "jest-watcher": "^27.0.6", "micromatch": "^4.0.4", "p-each-series": "^2.1.0", "rimraf": "^3.0.0", @@ -2362,7 +2361,7 @@ "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" }, "peerDependencies": { - "node-notifier": "^8.0.1 || ^9.0.0" + "node-notifier": "^8.0.1 || ^9.0.0 || ^10.0.0" }, "peerDependenciesMeta": { "node-notifier": { @@ -2508,62 +2507,62 @@ } }, "node_modules/@jest/environment": { - "version": "27.0.3", - "resolved": "https://registry.npmjs.org/@jest/environment/-/environment-27.0.3.tgz", - "integrity": "sha512-pN9m7fbKsop5vc3FOfH8NF7CKKdRbEZzcxfIo1n2TT6ucKWLFq0P6gCJH0GpnQp036++yY9utHOxpeT1WnkWTA==", + "version": "27.0.6", + "resolved": "https://registry.npmjs.org/@jest/environment/-/environment-27.0.6.tgz", + "integrity": "sha512-4XywtdhwZwCpPJ/qfAkqExRsERW+UaoSRStSHCCiQTUpoYdLukj+YJbQSFrZjhlUDRZeNiU9SFH0u7iNimdiIg==", "dev": true, "dependencies": { - "@jest/fake-timers": "^27.0.3", - "@jest/types": "^27.0.2", + "@jest/fake-timers": "^27.0.6", + "@jest/types": "^27.0.6", "@types/node": "*", - "jest-mock": "^27.0.3" + "jest-mock": "^27.0.6" }, "engines": { "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" } }, "node_modules/@jest/fake-timers": { - "version": "27.0.3", - "resolved": "https://registry.npmjs.org/@jest/fake-timers/-/fake-timers-27.0.3.tgz", - "integrity": "sha512-fQ+UCKRIYKvTCEOyKPnaPnomLATIhMnHC/xPZ7yT1Uldp7yMgMxoYIFidDbpSTgB79+/U+FgfoD30c6wg3IUjA==", + "version": "27.0.6", + "resolved": "https://registry.npmjs.org/@jest/fake-timers/-/fake-timers-27.0.6.tgz", + "integrity": "sha512-sqd+xTWtZ94l3yWDKnRTdvTeZ+A/V7SSKrxsrOKSqdyddb9CeNRF8fbhAU0D7ZJBpTTW2nbp6MftmKJDZfW2LQ==", "dev": true, "dependencies": { - "@jest/types": "^27.0.2", + "@jest/types": "^27.0.6", "@sinonjs/fake-timers": "^7.0.2", "@types/node": "*", - "jest-message-util": "^27.0.2", - "jest-mock": "^27.0.3", - "jest-util": "^27.0.2" + "jest-message-util": "^27.0.6", + "jest-mock": "^27.0.6", + "jest-util": "^27.0.6" }, "engines": { "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" } }, "node_modules/@jest/globals": { - "version": "27.0.3", - "resolved": "https://registry.npmjs.org/@jest/globals/-/globals-27.0.3.tgz", - "integrity": "sha512-OzsIuf7uf+QalqAGbjClyezzEcLQkdZ+7PejUrZgDs+okdAK8GwRCGcYCirHvhMBBQh60Jr3NlIGbn/KBPQLEQ==", + "version": "27.0.6", + "resolved": "https://registry.npmjs.org/@jest/globals/-/globals-27.0.6.tgz", + "integrity": "sha512-DdTGCP606rh9bjkdQ7VvChV18iS7q0IMJVP1piwTWyWskol4iqcVwthZmoJEf7obE1nc34OpIyoVGPeqLC+ryw==", "dev": true, "dependencies": { - "@jest/environment": "^27.0.3", - "@jest/types": "^27.0.2", - "expect": "^27.0.2" + "@jest/environment": "^27.0.6", + "@jest/types": "^27.0.6", + "expect": "^27.0.6" }, "engines": { "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" } }, "node_modules/@jest/reporters": { - "version": "27.0.4", - "resolved": "https://registry.npmjs.org/@jest/reporters/-/reporters-27.0.4.tgz", - "integrity": "sha512-Xa90Nm3JnV0xCe4M6A10M9WuN9krb+WFKxV1A98Y4ePCw40n++r7uxFUNU7DT1i9Behj7fjrAIju9oU0t1QtCg==", + "version": "27.0.6", + "resolved": "https://registry.npmjs.org/@jest/reporters/-/reporters-27.0.6.tgz", + "integrity": "sha512-TIkBt09Cb2gptji3yJXb3EE+eVltW6BjO7frO7NEfjI9vSIYoISi5R3aI3KpEDXlB1xwB+97NXIqz84qYeYsfA==", "dev": true, "dependencies": { "@bcoe/v8-coverage": "^0.2.3", - "@jest/console": "^27.0.2", - "@jest/test-result": "^27.0.2", - "@jest/transform": "^27.0.2", - "@jest/types": "^27.0.2", + "@jest/console": "^27.0.6", + "@jest/test-result": "^27.0.6", + "@jest/transform": "^27.0.6", + "@jest/types": "^27.0.6", "chalk": "^4.0.0", "collect-v8-coverage": "^1.0.0", "exit": "^0.1.2", @@ -2574,21 +2573,21 @@ "istanbul-lib-report": "^3.0.0", "istanbul-lib-source-maps": "^4.0.0", "istanbul-reports": "^3.0.2", - "jest-haste-map": "^27.0.2", - "jest-resolve": "^27.0.4", - "jest-util": "^27.0.2", - "jest-worker": "^27.0.2", + "jest-haste-map": "^27.0.6", + "jest-resolve": "^27.0.6", + "jest-util": "^27.0.6", + "jest-worker": "^27.0.6", "slash": "^3.0.0", "source-map": "^0.6.0", "string-length": "^4.0.1", "terminal-link": "^2.0.0", - "v8-to-istanbul": "^7.0.0" + "v8-to-istanbul": "^8.0.0" }, "engines": { "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" }, "peerDependencies": { - "node-notifier": "^8.0.1 || ^9.0.0" + "node-notifier": "^8.0.1 || ^9.0.0 || ^10.0.0" }, "peerDependenciesMeta": { "node-notifier": { @@ -2685,9 +2684,9 @@ } }, "node_modules/@jest/source-map": { - "version": "27.0.1", - "resolved": "https://registry.npmjs.org/@jest/source-map/-/source-map-27.0.1.tgz", - "integrity": "sha512-yMgkF0f+6WJtDMdDYNavmqvbHtiSpwRN2U/W+6uztgfqgkq/PXdKPqjBTUF1RD/feth4rH5N3NW0T5+wIuln1A==", + "version": "27.0.6", + "resolved": "https://registry.npmjs.org/@jest/source-map/-/source-map-27.0.6.tgz", + "integrity": "sha512-Fek4mi5KQrqmlY07T23JRi0e7Z9bXTOOD86V/uS0EIW4PClvPDqZOyFlLpNJheS6QI0FNX1CgmPjtJ4EA/2M+g==", "dev": true, "dependencies": { "callsites": "^3.0.0", @@ -2708,13 +2707,13 @@ } }, "node_modules/@jest/test-result": { - "version": "27.0.2", - "resolved": "https://registry.npmjs.org/@jest/test-result/-/test-result-27.0.2.tgz", - "integrity": "sha512-gcdWwL3yP5VaIadzwQtbZyZMgpmes8ryBAJp70tuxghiA8qL4imJyZex+i+USQH2H4jeLVVszhwntgdQ97fccA==", + "version": "27.0.6", + "resolved": "https://registry.npmjs.org/@jest/test-result/-/test-result-27.0.6.tgz", + "integrity": "sha512-ja/pBOMTufjX4JLEauLxE3LQBPaI2YjGFtXexRAjt1I/MbfNlMx0sytSX3tn5hSLzQsR3Qy2rd0hc1BWojtj9w==", "dev": true, "dependencies": { - "@jest/console": "^27.0.2", - "@jest/types": "^27.0.2", + "@jest/console": "^27.0.6", + "@jest/types": "^27.0.6", "@types/istanbul-lib-coverage": "^2.0.0", "collect-v8-coverage": "^1.0.0" }, @@ -2723,36 +2722,36 @@ } }, "node_modules/@jest/test-sequencer": { - "version": "27.0.4", - "resolved": "https://registry.npmjs.org/@jest/test-sequencer/-/test-sequencer-27.0.4.tgz", - "integrity": "sha512-6UFEVwdmxYdyNffBxVVZxmXEdBE4riSddXYSnFNH0ELFQFk/bvagizim8WfgJTqF4EKd+j1yFxvhb8BMHfOjSQ==", + "version": "27.0.6", + "resolved": "https://registry.npmjs.org/@jest/test-sequencer/-/test-sequencer-27.0.6.tgz", + "integrity": "sha512-bISzNIApazYOlTHDum9PwW22NOyDa6VI31n6JucpjTVM0jD6JDgqEZ9+yn575nDdPF0+4csYDxNNW13NvFQGZA==", "dev": true, "dependencies": { - "@jest/test-result": "^27.0.2", + "@jest/test-result": "^27.0.6", "graceful-fs": "^4.2.4", - "jest-haste-map": "^27.0.2", - "jest-runtime": "^27.0.4" + "jest-haste-map": "^27.0.6", + "jest-runtime": "^27.0.6" }, "engines": { "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" } }, "node_modules/@jest/transform": { - "version": "27.0.2", - "resolved": "https://registry.npmjs.org/@jest/transform/-/transform-27.0.2.tgz", - "integrity": "sha512-H8sqKlgtDfVog/s9I4GG2XMbi4Ar7RBxjsKQDUhn2XHAi3NG+GoQwWMER+YfantzExbjNqQvqBHzo/G2pfTiPw==", + "version": "27.0.6", + "resolved": "https://registry.npmjs.org/@jest/transform/-/transform-27.0.6.tgz", + "integrity": "sha512-rj5Dw+mtIcntAUnMlW/Vju5mr73u8yg+irnHwzgtgoeI6cCPOvUwQ0D1uQtc/APmWgvRweEb1g05pkUpxH3iCA==", "dev": true, "dependencies": { "@babel/core": "^7.1.0", - "@jest/types": "^27.0.2", + "@jest/types": "^27.0.6", "babel-plugin-istanbul": "^6.0.0", "chalk": "^4.0.0", "convert-source-map": "^1.4.0", "fast-json-stable-stringify": "^2.0.0", "graceful-fs": "^4.2.4", - "jest-haste-map": "^27.0.2", - "jest-regex-util": "^27.0.1", - "jest-util": "^27.0.2", + "jest-haste-map": "^27.0.6", + "jest-regex-util": "^27.0.6", + "jest-util": "^27.0.6", "micromatch": "^4.0.4", "pirates": "^4.0.1", "slash": "^3.0.0", @@ -2910,9 +2909,9 @@ } }, "node_modules/@jest/types": { - "version": "27.0.2", - "resolved": "https://registry.npmjs.org/@jest/types/-/types-27.0.2.tgz", - "integrity": "sha512-XpjCtJ/99HB4PmyJ2vgmN7vT+JLP7RW1FBT9RgnMFS4Dt7cvIyBee8O3/j98aUZ34ZpenPZFqmaaObWSeL65dg==", + "version": "27.0.6", + "resolved": "https://registry.npmjs.org/@jest/types/-/types-27.0.6.tgz", + "integrity": "sha512-aSquT1qa9Pik26JK5/3rvnYb4bGtm1VFNesHKmNTwmPIgOrixvhL2ghIvFRNEpzy3gU+rUgjIF/KodbkFAl++g==", "dev": true, "dependencies": { "@types/istanbul-lib-coverage": "^2.0.0", @@ -3015,26 +3014,13 @@ "upath": "^1.1.1" } }, - "node_modules/@nicolo-ribaudo/chokidar-2/node_modules/glob-parent": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", - "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", - "dev": true, - "optional": true, - "dependencies": { - "is-glob": "^4.0.1" - }, - "engines": { - "node": ">= 6" - } - }, "node_modules/@nodelib/fs.scandir": { - "version": "2.1.4", - "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.4.tgz", - "integrity": "sha512-33g3pMJk3bg5nXbL/+CY6I2eJDzZAni49PfJnL5fghPTggPvBd/pFNSgJsdAgWptuFu7qq/ERvOYFlhvsLTCKA==", + "version": "2.1.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", + "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", "dev": true, "dependencies": { - "@nodelib/fs.stat": "2.0.4", + "@nodelib/fs.stat": "2.0.5", "run-parallel": "^1.1.9" }, "engines": { @@ -3042,21 +3028,21 @@ } }, "node_modules/@nodelib/fs.stat": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.4.tgz", - "integrity": "sha512-IYlHJA0clt2+Vg7bccq+TzRdJvv19c2INqBSsoOLp1je7xjtr7J26+WXR72MCdvU9q1qTzIWDfhMf+DRvQJK4Q==", + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", + "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==", "dev": true, "engines": { "node": ">= 8" } }, "node_modules/@nodelib/fs.walk": { - "version": "1.2.6", - "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.6.tgz", - "integrity": "sha512-8Broas6vTtW4GIXTAHDoE32hnN2M5ykgCpWGbuXHQ15vEMqr23pB76e/GZcYsZCHALv50ktd24qhEyKr6wBtow==", + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.7.tgz", + "integrity": "sha512-BTIhocbPBSrRmHxOAJFtR18oLhxTtAFDAvL8hY1S3iU8k+E60W/YFs4jrixGzQjMpF4qPXxIQHcjVD9dz1C2QA==", "dev": true, "dependencies": { - "@nodelib/fs.scandir": "2.1.4", + "@nodelib/fs.scandir": "2.1.5", "fastq": "^1.6.0" }, "engines": { @@ -3123,9 +3109,9 @@ } }, "node_modules/@types/babel__traverse": { - "version": "7.11.1", - "resolved": "https://registry.npmjs.org/@types/babel__traverse/-/babel__traverse-7.11.1.tgz", - "integrity": "sha512-Vs0hm0vPahPMYi9tDjtP66llufgO3ST16WXaSTtDGEl9cewAl3AibmxWw6TINOqHPT9z0uABKAYjT9jNSg4npw==", + "version": "7.14.0", + "resolved": "https://registry.npmjs.org/@types/babel__traverse/-/babel__traverse-7.14.0.tgz", + "integrity": "sha512-IilJZ1hJBUZwMOVDNTdflOOLzJB/ZtljYVa7k3gEZN/jqIJIPkWHC6dvbX+DD2CwZDHB9wAKzZPzzqMIkW37/w==", "dev": true, "dependencies": { "@babel/types": "^7.3.0" @@ -3152,9 +3138,9 @@ } }, "node_modules/@types/estree": { - "version": "0.0.47", - "resolved": "https://registry.npmjs.org/@types/estree/-/estree-0.0.47.tgz", - "integrity": "sha512-c5ciR06jK8u9BstrmJyO97m+klJrrhCf9u3rLu3DEAJBirxRqSCvDQoYKmxuYwQI5SZChAWu+tq9oVlGRuzPAg==", + "version": "0.0.48", + "resolved": "https://registry.npmjs.org/@types/estree/-/estree-0.0.48.tgz", + "integrity": "sha512-LfZwXoGUDo0C3me81HXgkBg5CTQYb6xzEl+fNmbO4JdRiSKQ8A0GD1OBBvKAIsbCUgoyAty7m99GqqMQe784ew==", "dev": true }, "node_modules/@types/glob": { @@ -3224,9 +3210,9 @@ "dev": true }, "node_modules/@types/node": { - "version": "15.0.1", - "resolved": "https://registry.npmjs.org/@types/node/-/node-15.0.1.tgz", - "integrity": "sha512-TMkXt0Ck1y0KKsGr9gJtWGjttxlZnnvDtphxUOSd0bfaR6Q1jle+sPvrzNR1urqYTWMinoKvjKfXUGsumaO1PA==", + "version": "15.12.5", + "resolved": "https://registry.npmjs.org/@types/node/-/node-15.12.5.tgz", + "integrity": "sha512-se3yX7UHv5Bscf8f1ERKvQOD6sTyycH3hdaoozvaLxgUiY5lIGEeH37AD0G0Qi9kPqihPn0HOfd2yaIEN9VwEg==", "dev": true }, "node_modules/@types/normalize-package-data": { @@ -3920,16 +3906,16 @@ } }, "node_modules/babel-jest": { - "version": "27.0.2", - "resolved": "https://registry.npmjs.org/babel-jest/-/babel-jest-27.0.2.tgz", - "integrity": "sha512-9OThPl3/IQbo4Yul2vMz4FYwILPQak8XelX4YGowygfHaOl5R5gfjm4iVx4d8aUugkW683t8aq0A74E7b5DU1Q==", + "version": "27.0.6", + "resolved": "https://registry.npmjs.org/babel-jest/-/babel-jest-27.0.6.tgz", + "integrity": "sha512-iTJyYLNc4wRofASmofpOc5NK9QunwMk+TLFgGXsTFS8uEqmd8wdI7sga0FPe2oVH3b5Agt/EAK1QjPEuKL8VfA==", "dev": true, "dependencies": { - "@jest/transform": "^27.0.2", - "@jest/types": "^27.0.2", + "@jest/transform": "^27.0.6", + "@jest/types": "^27.0.6", "@types/babel__core": "^7.1.14", "babel-plugin-istanbul": "^6.0.0", - "babel-preset-jest": "^27.0.1", + "babel-preset-jest": "^27.0.6", "chalk": "^4.0.0", "graceful-fs": "^4.2.4", "slash": "^3.0.0" @@ -4046,9 +4032,9 @@ } }, "node_modules/babel-plugin-jest-hoist": { - "version": "27.0.1", - "resolved": "https://registry.npmjs.org/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-27.0.1.tgz", - "integrity": "sha512-sqBF0owAcCDBVEDtxqfYr2F36eSHdx7lAVGyYuOBRnKdD6gzcy0I0XrAYCZgOA3CRrLhmR+Uae9nogPzmAtOfQ==", + "version": "27.0.6", + "resolved": "https://registry.npmjs.org/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-27.0.6.tgz", + "integrity": "sha512-CewFeM9Vv2gM7Yr9n5eyyLVPRSiBnk6lKZRjgwYnGKSl9M14TMn2vkN02wTF04OGuSDLEzlWiMzvjXuW9mB6Gw==", "dev": true, "dependencies": { "@babel/template": "^7.3.3", @@ -4075,13 +4061,13 @@ } }, "node_modules/babel-plugin-polyfill-corejs3": { - "version": "0.2.2", - "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.2.2.tgz", - "integrity": "sha512-l1Cf8PKk12eEk5QP/NQ6TH8A1pee6wWDJ96WjxrMXFLHLOBFzYM4moG80HFgduVhTqAFez4alnZKEhP/bYHg0A==", + "version": "0.2.3", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.2.3.tgz", + "integrity": "sha512-rCOFzEIJpJEAU14XCcV/erIf/wZQMmMT5l5vXOpL5uoznyOGfDIjPj6FVytMvtzaKSTSVKouOCTPJ5OMUZH30g==", "dev": true, "dependencies": { "@babel/helper-define-polyfill-provider": "^0.2.2", - "core-js-compat": "^3.9.1" + "core-js-compat": "^3.14.0" }, "peerDependencies": { "@babel/core": "^7.0.0-0" @@ -4123,12 +4109,12 @@ } }, "node_modules/babel-preset-jest": { - "version": "27.0.1", - "resolved": "https://registry.npmjs.org/babel-preset-jest/-/babel-preset-jest-27.0.1.tgz", - "integrity": "sha512-nIBIqCEpuiyhvjQs2mVNwTxQQa2xk70p9Dd/0obQGBf8FBzbnI8QhQKzLsWMN2i6q+5B0OcWDtrboBX5gmOLyA==", + "version": "27.0.6", + "resolved": "https://registry.npmjs.org/babel-preset-jest/-/babel-preset-jest-27.0.6.tgz", + "integrity": "sha512-WObA0/Biw2LrVVwZkF/2GqbOdzhKD6Fkdwhoy9ASIrOWr/zodcSpQh72JOkEn6NWyjmnPDjNSqaGN4KnpKzhXw==", "dev": true, "dependencies": { - "babel-plugin-jest-hoist": "^27.0.1", + "babel-plugin-jest-hoist": "^27.0.6", "babel-preset-current-node-syntax": "^1.0.0" }, "engines": { @@ -4258,15 +4244,6 @@ "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", "dev": true }, - "node_modules/body-parser/node_modules/qs": { - "version": "6.7.0", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.7.0.tgz", - "integrity": "sha512-VCdBRNFTX1fyE7Nb6FYoURo/SPe62QCaAyzJvUjwRaIsc+NePBEniHlvxFmmX56+HZphIGtV0XeCirBtpDrTyQ==", - "dev": true, - "engines": { - "node": ">=0.6" - } - }, "node_modules/bonjour": { "version": "3.5.0", "resolved": "https://registry.npmjs.org/bonjour/-/bonjour-3.5.0.tgz", @@ -4454,10 +4431,14 @@ } }, "node_modules/caniuse-lite": { - "version": "1.0.30001219", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001219.tgz", - "integrity": "sha512-c0yixVG4v9KBc/tQ2rlbB3A/bgBFRvl8h8M4IeUbqCca4gsiCfvtaheUssbnux/Mb66Vjz7x8yYjDgYcNQOhyQ==", - "dev": true + "version": "1.0.30001241", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001241.tgz", + "integrity": "sha512-1uoSZ1Pq1VpH0WerIMqwptXHNNGfdl7d1cJUFs80CwQ/lVzdhTvsFZCeNFslze7AjsQnb4C85tzclPa1VShbeQ==", + "dev": true, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + } }, "node_modules/caporal": { "version": "1.4.0", @@ -4503,25 +4484,25 @@ } }, "node_modules/chokidar": { - "version": "3.5.1", - "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.1.tgz", - "integrity": "sha512-9+s+Od+W0VJJzawDma/gvBNQqkTiqYTWLuZoyAsivsI4AaWTCzHG06/TMjsf1cYe9Cb97UCEhjz7HvnPk2p/tw==", + "version": "3.5.2", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.2.tgz", + "integrity": "sha512-ekGhOnNVPgT77r4K/U3GDhu+FQ2S8TnK/s2KbIGXi0SZWuwkZ2QNyfWdZW+TVfn84DpEP7rLeCt2UI6bJ8GwbQ==", "dev": true, "optional": true, "dependencies": { - "anymatch": "~3.1.1", + "anymatch": "~3.1.2", "braces": "~3.0.2", - "glob-parent": "~5.1.0", + "glob-parent": "~5.1.2", "is-binary-path": "~2.1.0", "is-glob": "~4.0.1", "normalize-path": "~3.0.0", - "readdirp": "~3.5.0" + "readdirp": "~3.6.0" }, "engines": { "node": ">= 8.10.0" }, "optionalDependencies": { - "fsevents": "~2.3.1" + "fsevents": "~2.3.2" } }, "node_modules/chokidar/node_modules/anymatch": { @@ -4574,19 +4555,6 @@ "node": ">=8" } }, - "node_modules/chokidar/node_modules/glob-parent": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", - "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", - "dev": true, - "optional": true, - "dependencies": { - "is-glob": "^4.0.1" - }, - "engines": { - "node": ">= 6" - } - }, "node_modules/chokidar/node_modules/is-binary-path": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", @@ -4611,9 +4579,9 @@ } }, "node_modules/chokidar/node_modules/readdirp": { - "version": "3.5.0", - "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.5.0.tgz", - "integrity": "sha512-cMhu7c/8rdhkHXWsY+osBhfSy0JikwpHK/5+imo+LpeasTF8ouErHrlYkwT0++njiyuDvc7OFY5T3ukvZ8qmFQ==", + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", + "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", "dev": true, "optional": true, "dependencies": { @@ -5133,9 +5101,9 @@ "dev": true }, "node_modules/conventional-changelog-conventionalcommits": { - "version": "4.5.0", - "resolved": "https://registry.npmjs.org/conventional-changelog-conventionalcommits/-/conventional-changelog-conventionalcommits-4.5.0.tgz", - "integrity": "sha512-buge9xDvjjOxJlyxUnar/+6i/aVEVGA7EEh4OafBCXPlLUQPGbRUBhBUveWRxzvR8TEjhKEP4BdepnpG2FSZXw==", + "version": "4.6.0", + "resolved": "https://registry.npmjs.org/conventional-changelog-conventionalcommits/-/conventional-changelog-conventionalcommits-4.6.0.tgz", + "integrity": "sha512-sj9tj3z5cnHaSJCYObA9nISf7eq/YjscLPoq6nmew4SiOjxqL2KRpK20fjnjVbpNDjJ2HR3MoVcWKXwbVvzS0A==", "dev": true, "dependencies": { "compare-func": "^2.0.0", @@ -5323,9 +5291,9 @@ } }, "node_modules/convert-source-map": { - "version": "1.7.0", - "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.7.0.tgz", - "integrity": "sha512-4FJkXzKXEDB1snCFZlLP4gpC3JILicCpGbzG9f9G7tGqGCzETQ2hWPrcinA9oU4wtf2biUaEH5065UnMeR33oA==", + "version": "1.8.0", + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.8.0.tgz", + "integrity": "sha512-+OQdjP49zViI/6i7nIJpA8rAl4sV/JdPfU9nZs3VqOwGIgizICvuN2ru6fMd+4llL0tar18UYJXfZ/TWtmhUjA==", "dev": true, "dependencies": { "safe-buffer": "~5.1.1" @@ -5356,9 +5324,9 @@ } }, "node_modules/core-js-compat": { - "version": "3.14.0", - "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.14.0.tgz", - "integrity": "sha512-R4NS2eupxtiJU+VwgkF9WTpnSfZW4pogwKHd8bclWU2sp93Pr5S1uYJI84cMOubJRou7bcfL0vmwtLslWN5p3A==", + "version": "3.15.2", + "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.15.2.tgz", + "integrity": "sha512-Wp+BJVvwopjI+A1EFqm2dwUmWYXrvucmtIB2LgXn/Rb+gWPKYxtmb4GKHGKG/KGF1eK9jfjzT38DITbTOCX/SQ==", "dev": true, "dependencies": { "browserslist": "^4.16.6", @@ -5613,9 +5581,9 @@ } }, "node_modules/decimal.js": { - "version": "10.2.1", - "resolved": "https://registry.npmjs.org/decimal.js/-/decimal.js-10.2.1.tgz", - "integrity": "sha512-KaL7+6Fw6i5A2XSnsbhm/6B+NuEA7TZ4vqxnd5tXz9sbKtrN9Srj8ab4vKVdK8YAqZO9P1kg45Y6YLoduPf+kw==", + "version": "10.3.1", + "resolved": "https://registry.npmjs.org/decimal.js/-/decimal.js-10.3.1.tgz", + "integrity": "sha512-V0pfhfr8suzyPGOx3nmq4aHqabehUZn6Ch9kyFpV79TGDTWFmHqUqXdabR7QHqxzrYolF4+tVmJhUG4OURg5dQ==", "dev": true }, "node_modules/decode-uri-component": { @@ -5844,251 +5812,157 @@ } }, "node_modules/del-cli": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/del-cli/-/del-cli-3.0.1.tgz", - "integrity": "sha512-BLHItGr82rUbHhjMu41d+vw9Md49i81jmZSV00HdTq4t+RTHywmEht/23mNFpUl2YeLYJZJyGz4rdlMAyOxNeg==", + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/del-cli/-/del-cli-4.0.0.tgz", + "integrity": "sha512-G6FD38YZ28nkI34J+oxiYGbJg/t2hCkUgg9di9311gHZWWe9hY4CphewtU5l3RO1LTYxNMxla2D/we4CbBMHcA==", "dev": true, "dependencies": { - "del": "^5.1.0", - "meow": "^6.1.1" + "del": "^6.0.0", + "meow": "^10.0.1" }, "bin": { "del": "cli.js", "del-cli": "cli.js" }, "engines": { - "node": ">=8" + "node": ">=12.20" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/del-cli/node_modules/del": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/del/-/del-5.1.0.tgz", - "integrity": "sha512-wH9xOVHnczo9jN2IW68BabcecVPxacIA3g/7z6vhSU/4stOKQzeCRK0yD0A24WiAAUJmmVpWqrERcTxnLo3AnA==", - "dev": true, - "dependencies": { - "globby": "^10.0.1", - "graceful-fs": "^4.2.2", - "is-glob": "^4.0.1", - "is-path-cwd": "^2.2.0", - "is-path-inside": "^3.0.1", - "p-map": "^3.0.0", - "rimraf": "^3.0.0", - "slash": "^3.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/del-cli/node_modules/find-up": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", - "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", + "node_modules/del-cli/node_modules/decamelize": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-5.0.0.tgz", + "integrity": "sha512-U75DcT5hrio3KNtvdULAWnLiAPbFUC4191ldxMmj4FA/mRuBnmDwU0boNfPyFRhnan+Jm+haLeSn3P0afcBn4w==", "dev": true, - "dependencies": { - "locate-path": "^5.0.0", - "path-exists": "^4.0.0" - }, "engines": { - "node": ">=8" - } - }, - "node_modules/del-cli/node_modules/globby": { - "version": "10.0.2", - "resolved": "https://registry.npmjs.org/globby/-/globby-10.0.2.tgz", - "integrity": "sha512-7dUi7RvCoT/xast/o/dLN53oqND4yk0nsHkhRgn9w65C4PofCLOoJ39iSOg+qVDdWQPIEj+eszMHQ+aLVwwQSg==", - "dev": true, - "dependencies": { - "@types/glob": "^7.1.1", - "array-union": "^2.1.0", - "dir-glob": "^3.0.1", - "fast-glob": "^3.0.3", - "glob": "^7.1.3", - "ignore": "^5.1.1", - "merge2": "^1.2.3", - "slash": "^3.0.0" + "node": ">=10" }, - "engines": { - "node": ">=8" - } - }, - "node_modules/del-cli/node_modules/hosted-git-info": { - "version": "2.8.9", - "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.9.tgz", - "integrity": "sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw==", - "dev": true - }, - "node_modules/del-cli/node_modules/ignore": { - "version": "5.1.8", - "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.1.8.tgz", - "integrity": "sha512-BMpfD7PpiETpBl/A6S498BaIJ6Y/ABT93ETbby2fP00v4EbvPBXWEoaR1UBPKs3iR53pJY7EtZk5KACI57i1Uw==", - "dev": true, - "engines": { - "node": ">= 4" + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/del-cli/node_modules/locate-path": { + "node_modules/del-cli/node_modules/indent-string": { "version": "5.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", - "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", + "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-5.0.0.tgz", + "integrity": "sha512-m6FAo/spmsW2Ab2fU35JTYwtOKa2yAwXSwgjSv1TJzh4Mh7mC3lzAOVLBprb72XsTrgkEIsl7YrFNAiDiRhIGg==", "dev": true, - "dependencies": { - "p-locate": "^4.1.0" - }, "engines": { - "node": ">=8" + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/del-cli/node_modules/meow": { - "version": "6.1.1", - "resolved": "https://registry.npmjs.org/meow/-/meow-6.1.1.tgz", - "integrity": "sha512-3YffViIt2QWgTy6Pale5QpopX/IvU3LPL03jOTqp6pGj3VjesdO/U8CuHMKpnQr4shCNCM5fd5XFFvIIl6JBHg==", + "version": "10.0.1", + "resolved": "https://registry.npmjs.org/meow/-/meow-10.0.1.tgz", + "integrity": "sha512-65vCCdUI8wS5upK24fDFo25FcViNExdTGAR/vaWN4E6fXsWQ8fGdbkjCWp3nDTuJMlIYuEoAEMiB2/b81DBJjg==", "dev": true, "dependencies": { - "@types/minimist": "^1.2.0", + "@types/minimist": "^1.2.1", "camelcase-keys": "^6.2.2", + "decamelize": "^5.0.0", "decamelize-keys": "^1.1.0", "hard-rejection": "^2.1.0", - "minimist-options": "^4.0.2", - "normalize-package-data": "^2.5.0", - "read-pkg-up": "^7.0.1", - "redent": "^3.0.0", - "trim-newlines": "^3.0.0", - "type-fest": "^0.13.1", - "yargs-parser": "^18.1.3" + "minimist-options": "4.1.0", + "normalize-package-data": "^3.0.2", + "read-pkg-up": "^8.0.0", + "redent": "^4.0.0", + "trim-newlines": "^4.0.1", + "type-fest": "^1.0.2", + "yargs-parser": "^20.2.7" }, "engines": { - "node": ">=8" + "node": ">=12.17" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/del-cli/node_modules/normalize-package-data": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.5.0.tgz", - "integrity": "sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==", - "dev": true, - "dependencies": { - "hosted-git-info": "^2.1.4", - "resolve": "^1.10.0", - "semver": "2 || 3 || 4 || 5", - "validate-npm-package-license": "^3.0.1" - } - }, - "node_modules/del-cli/node_modules/p-limit": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", - "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", + "node_modules/del-cli/node_modules/read-pkg": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-6.0.0.tgz", + "integrity": "sha512-X1Fu3dPuk/8ZLsMhEj5f4wFAF0DWoK7qhGJvgaijocXxBmSToKfbFtqbxMO7bVjNA1dmE5huAzjXj/ey86iw9Q==", "dev": true, "dependencies": { - "p-try": "^2.0.0" + "@types/normalize-package-data": "^2.4.0", + "normalize-package-data": "^3.0.2", + "parse-json": "^5.2.0", + "type-fest": "^1.0.1" }, "engines": { - "node": ">=6" + "node": ">=12" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/del-cli/node_modules/p-locate": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", - "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", + "node_modules/del-cli/node_modules/read-pkg-up": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-8.0.0.tgz", + "integrity": "sha512-snVCqPczksT0HS2EC+SxUndvSzn6LRCwpfSvLrIfR5BKDQQZMaI6jPRC9dYvYFDRAuFEAnkwww8kBBNE/3VvzQ==", "dev": true, "dependencies": { - "p-limit": "^2.2.0" + "find-up": "^5.0.0", + "read-pkg": "^6.0.0", + "type-fest": "^1.0.1" }, "engines": { - "node": ">=8" - } - }, - "node_modules/del-cli/node_modules/p-map": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/p-map/-/p-map-3.0.0.tgz", - "integrity": "sha512-d3qXVTF/s+W+CdJ5A29wywV2n8CQQYahlgz2bFiA+4eVNJbHJodPZ+/gXwPGh0bOqA+j8S+6+ckmvLGPk1QpxQ==", - "dev": true, - "dependencies": { - "aggregate-error": "^3.0.0" + "node": ">=12" }, - "engines": { - "node": ">=8" + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/del-cli/node_modules/read-pkg": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-5.2.0.tgz", - "integrity": "sha512-Ug69mNOpfvKDAc2Q8DRpMjjzdtrnv9HcSMX+4VsZxD1aZ6ZzrIE7rlzXBtWTyhULSMKg076AW6WR5iZpD0JiOg==", + "node_modules/del-cli/node_modules/redent": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/redent/-/redent-4.0.0.tgz", + "integrity": "sha512-tYkDkVVtYkSVhuQ4zBgfvciymHaeuel+zFKXShfDnFP5SyVEP7qo70Rf1jTOTCx3vGNAbnEi/xFkcfQVMIBWag==", "dev": true, "dependencies": { - "@types/normalize-package-data": "^2.4.0", - "normalize-package-data": "^2.5.0", - "parse-json": "^5.0.0", - "type-fest": "^0.6.0" + "indent-string": "^5.0.0", + "strip-indent": "^4.0.0" }, "engines": { - "node": ">=8" + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/del-cli/node_modules/read-pkg-up": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-7.0.1.tgz", - "integrity": "sha512-zK0TB7Xd6JpCLmlLmufqykGE+/TlOePD6qKClNW7hHDKFh/J7/7gCWGR7joEQEW1bKq3a3yUZSObOoWLFQ4ohg==", + "node_modules/del-cli/node_modules/strip-indent": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/strip-indent/-/strip-indent-4.0.0.tgz", + "integrity": "sha512-mnVSV2l+Zv6BLpSD/8V87CW/y9EmmbYzGCIavsnsI6/nwn26DwffM/yztm30Z/I2DY9wdS3vXVCMnHDgZaVNoA==", "dev": true, "dependencies": { - "find-up": "^4.1.0", - "read-pkg": "^5.2.0", - "type-fest": "^0.8.1" + "min-indent": "^1.0.1" }, "engines": { - "node": ">=8" + "node": ">=12" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/del-cli/node_modules/read-pkg-up/node_modules/type-fest": { - "version": "0.8.1", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.8.1.tgz", - "integrity": "sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/del-cli/node_modules/read-pkg/node_modules/type-fest": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.6.0.tgz", - "integrity": "sha512-q+MB8nYR1KDLrgr4G5yemftpMC7/QLqVndBmEEdqzmNj5dcFOO4Oo8qlwZE3ULT3+Zim1F8Kq4cBnikNhlCMlg==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/del-cli/node_modules/semver": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", - "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", - "dev": true, - "bin": { - "semver": "bin/semver" - } - }, - "node_modules/del-cli/node_modules/slash": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", - "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", + "node_modules/del-cli/node_modules/trim-newlines": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/trim-newlines/-/trim-newlines-4.0.2.tgz", + "integrity": "sha512-GJtWyq9InR/2HRiLZgpIKv+ufIKrVrvjQWEj7PxAXNc5dwbNJkqhAUoAGgzRmULAnoOM5EIpveYd3J2VeSAIew==", "dev": true, "engines": { - "node": ">=8" + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/del-cli/node_modules/type-fest": { - "version": "0.13.1", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.13.1.tgz", - "integrity": "sha512-34R7HTnG0XIJcBSn5XhDd7nNFPRcXYRZrBB2O2jdKqYODldSzBAqzsWoZYYvduky73toYS/ESqxPvkDf/F0XMg==", + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-1.2.1.tgz", + "integrity": "sha512-SbmIRuXhJs8KTneu77Ecylt9zuqL683tuiLYpTRil4H++eIhqCmx6ko6KAFem9dty8sOdnEiX7j4K1nRE628fQ==", "dev": true, "engines": { "node": ">=10" @@ -6097,19 +5971,6 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/del-cli/node_modules/yargs-parser": { - "version": "18.1.3", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-18.1.3.tgz", - "integrity": "sha512-o50j0JeToy/4K6OZcaQmW6lyXXKhq7csREXcDwk2omFPJEwUNOVtJKvmDr9EI1fAJZUyZcRF7kxGBWmRXudrCQ==", - "dev": true, - "dependencies": { - "camelcase": "^5.0.0", - "decamelize": "^1.2.0" - }, - "engines": { - "node": ">=6" - } - }, "node_modules/del/node_modules/slash": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", @@ -6150,9 +6011,9 @@ "dev": true }, "node_modules/detect-indent": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/detect-indent/-/detect-indent-6.0.0.tgz", - "integrity": "sha512-oSyFlqaTHCItVRGK5RmrmjB+CmaMOW7IaNA/kdxqhoa6d17j/5ce9O9eWXmV/KEdRwqpQA+Vqe8a8Bsybu4YnA==", + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/detect-indent/-/detect-indent-6.1.0.tgz", + "integrity": "sha512-reYkTUJAZb9gUuZ2RvVCNhVHdg62RHnJ7WJl8ftMi4diZ6NWlciOzQN88pUhSELEwflJht4oQDv0F0BMlwaYtA==", "dev": true, "engines": { "node": ">=8" @@ -6168,15 +6029,15 @@ } }, "node_modules/detect-node": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/detect-node/-/detect-node-2.0.5.tgz", - "integrity": "sha512-qi86tE6hRcFHy8jI1m2VG+LaPUR1LhqDa5G8tVjuUXmOrpuAgqsA1pN0+ldgr3aKUH+QLI9hCY/OcRYisERejw==", + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/detect-node/-/detect-node-2.1.0.tgz", + "integrity": "sha512-T0NIuQpnTvFDATNuHN5roPwSBG83rFsuO+MXXH9/3N1eFbn4wcPjttvjMLEPWJ0RGUYgQE7cGgS3tNxbqCGM7g==", "dev": true }, "node_modules/diff-sequences": { - "version": "27.0.1", - "resolved": "https://registry.npmjs.org/diff-sequences/-/diff-sequences-27.0.1.tgz", - "integrity": "sha512-XPLijkfJUh/PIBnfkcSHgvD6tlYixmcMAn3osTk6jt+H0v/mgURto1XUiD9DKuGX5NDoVS6dSlA23gd9FUaCFg==", + "version": "27.0.6", + "resolved": "https://registry.npmjs.org/diff-sequences/-/diff-sequences-27.0.6.tgz", + "integrity": "sha512-ag6wfpBFyNXZ0p8pcuIDS//D8H062ZQJ3fzYxjpmeKjnz8W4pekL3AI8VohmyZmsWW2PWaHgjsmqR6L13101VQ==", "dev": true, "engines": { "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" @@ -6345,9 +6206,9 @@ "dev": true }, "node_modules/electron-to-chromium": { - "version": "1.3.723", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.723.tgz", - "integrity": "sha512-L+WXyXI7c7+G1V8ANzRsPI5giiimLAUDC6Zs1ojHHPhYXb3k/iTABFmWjivEtsWrRQymjnO66/rO2ZTABGdmWg==", + "version": "1.3.762", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.762.tgz", + "integrity": "sha512-LehWjRpfPcK8F1Lf/NZoAwWLWnjJVo0SZeQ9j/tvnBWYcT99qDqgo4raAfS2oTKZjPrR/jxruh85DGgDUmywEA==", "dev": true }, "node_modules/emittery": { @@ -6453,9 +6314,9 @@ } }, "node_modules/es-abstract": { - "version": "1.18.0", - "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.18.0.tgz", - "integrity": "sha512-LJzK7MrQa8TS0ja2w3YNLzUgJCGPdPOV1yVvezjNnS89D+VR08+Szt2mz3YB2Dck/+w5tfIq/RoUAFqJJGM2yw==", + "version": "1.18.3", + "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.18.3.tgz", + "integrity": "sha512-nQIr12dxV7SSxE6r6f1l3DtAeEYdsGpps13dR0TwJg1S8gyp4ZPgy3FZcHBgbiQqnoqSTb+oC+kO4UQ0C/J8vw==", "dev": true, "dependencies": { "call-bind": "^1.0.2", @@ -6466,14 +6327,14 @@ "has-symbols": "^1.0.2", "is-callable": "^1.2.3", "is-negative-zero": "^2.0.1", - "is-regex": "^1.1.2", - "is-string": "^1.0.5", - "object-inspect": "^1.9.0", + "is-regex": "^1.1.3", + "is-string": "^1.0.6", + "object-inspect": "^1.10.3", "object-keys": "^1.1.1", "object.assign": "^4.1.2", "string.prototype.trimend": "^1.0.4", "string.prototype.trimstart": "^1.0.4", - "unbox-primitive": "^1.0.0" + "unbox-primitive": "^1.0.1" }, "engines": { "node": ">= 0.4" @@ -6639,9 +6500,9 @@ } }, "node_modules/eslint": { - "version": "7.28.0", - "resolved": "https://registry.npmjs.org/eslint/-/eslint-7.28.0.tgz", - "integrity": "sha512-UMfH0VSjP0G4p3EWirscJEQ/cHqnT/iuH6oNZOB94nBjWbMnhGEPxsZm1eyIW0C/9jLI0Fow4W5DXLjEI7mn1g==", + "version": "7.29.0", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-7.29.0.tgz", + "integrity": "sha512-82G/JToB9qIy/ArBzIWG9xvvwL3R86AlCjtGw+A29OMZDqhTybz/MByORSukGxeI+YPCR4coYyITKk8BFH9nDA==", "dev": true, "dependencies": { "@babel/code-frame": "7.12.11", @@ -6984,30 +6845,18 @@ } }, "node_modules/eslint/node_modules/eslint-visitor-keys": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-2.0.0.tgz", - "integrity": "sha512-QudtT6av5WXels9WjIM7qz1XD1cWGvX4gGXvp/zBn9nXG02D0utdU3Em2m/QjTnrsk6bBjmCygl3rmj118msQQ==", + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-2.1.0.tgz", + "integrity": "sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw==", "dev": true, "engines": { "node": ">=10" } }, - "node_modules/eslint/node_modules/glob-parent": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", - "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", - "dev": true, - "dependencies": { - "is-glob": "^4.0.1" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/eslint/node_modules/globals": { - "version": "13.8.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-13.8.0.tgz", - "integrity": "sha512-rHtdA6+PDBIjeEvA91rpqzEvk/k3/i7EeNQiryiWuJH0Hw9cpyJMAt2jtbAwUaRdhD+573X4vWw6IcjKPasi9Q==", + "node_modules/eslint/node_modules/globals": { + "version": "13.9.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-13.9.0.tgz", + "integrity": "sha512-74/FduwI/JaIrr1H8e71UbDE+5x7pIPs1C2rrwC52SszOo043CsWOZEMW7o2Y58xwm9b+0RBKDxY5n2sUpEFxA==", "dev": true, "dependencies": { "type-fest": "^0.20.2" @@ -7203,19 +7052,19 @@ } }, "node_modules/execa": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/execa/-/execa-4.1.0.tgz", - "integrity": "sha512-j5W0//W7f8UxAn8hXVnwG8tLwdiUy4FJLcSupCg6maBYZDpyBvTApK7KyuI4bKj8KOh1r2YH+6ucuYtJv1bTZA==", + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/execa/-/execa-5.1.1.tgz", + "integrity": "sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==", "dev": true, "dependencies": { - "cross-spawn": "^7.0.0", - "get-stream": "^5.0.0", - "human-signals": "^1.1.1", + "cross-spawn": "^7.0.3", + "get-stream": "^6.0.0", + "human-signals": "^2.1.0", "is-stream": "^2.0.0", "merge-stream": "^2.0.0", - "npm-run-path": "^4.0.0", - "onetime": "^5.1.0", - "signal-exit": "^3.0.2", + "npm-run-path": "^4.0.1", + "onetime": "^5.1.2", + "signal-exit": "^3.0.3", "strip-final-newline": "^2.0.0" }, "engines": { @@ -7336,17 +7185,17 @@ "dev": true }, "node_modules/expect": { - "version": "27.0.2", - "resolved": "https://registry.npmjs.org/expect/-/expect-27.0.2.tgz", - "integrity": "sha512-YJFNJe2+P2DqH+ZrXy+ydRQYO87oxRUonZImpDodR1G7qo3NYd3pL+NQ9Keqpez3cehczYwZDBC3A7xk3n7M/w==", + "version": "27.0.6", + "resolved": "https://registry.npmjs.org/expect/-/expect-27.0.6.tgz", + "integrity": "sha512-psNLt8j2kwg42jGBDSfAlU49CEZxejN1f1PlANWDZqIhBOVU/c2Pm888FcjWJzFewhIsNWfZJeLjUjtKGiPuSw==", "dev": true, "dependencies": { - "@jest/types": "^27.0.2", + "@jest/types": "^27.0.6", "ansi-styles": "^5.0.0", - "jest-get-type": "^27.0.1", - "jest-matcher-utils": "^27.0.2", - "jest-message-util": "^27.0.2", - "jest-regex-util": "^27.0.1" + "jest-get-type": "^27.0.6", + "jest-matcher-utils": "^27.0.6", + "jest-message-util": "^27.0.6", + "jest-regex-util": "^27.0.6" }, "engines": { "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" @@ -7426,15 +7275,6 @@ "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", "dev": true }, - "node_modules/express/node_modules/qs": { - "version": "6.7.0", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.7.0.tgz", - "integrity": "sha512-VCdBRNFTX1fyE7Nb6FYoURo/SPe62QCaAyzJvUjwRaIsc+NePBEniHlvxFmmX56+HZphIGtV0XeCirBtpDrTyQ==", - "dev": true, - "engines": { - "node": ">=0.6" - } - }, "node_modules/extend": { "version": "3.0.2", "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz", @@ -7510,17 +7350,16 @@ "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==" }, "node_modules/fast-glob": { - "version": "3.2.5", - "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.5.tgz", - "integrity": "sha512-2DtFcgT68wiTTiwZ2hNdJfcHNke9XOfnwmBRWXhmeKM8rF0TGwmC/Qto3S7RoZKp5cilZbxzO5iTNTQsJ+EeDg==", + "version": "3.2.6", + "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.6.tgz", + "integrity": "sha512-GnLuqj/pvQ7pX8/L4J84nijv6sAnlwvSDpMkJi9i7nPmPxGtRPkBSStfvDW5l6nMdX9VWe+pkKWFTgD+vF2QSQ==", "dev": true, "dependencies": { "@nodelib/fs.stat": "^2.0.2", "@nodelib/fs.walk": "^1.2.3", - "glob-parent": "^5.1.0", + "glob-parent": "^5.1.2", "merge2": "^1.3.0", - "micromatch": "^4.0.2", - "picomatch": "^2.2.1" + "micromatch": "^4.0.4" }, "engines": { "node": ">=8" @@ -7550,18 +7389,6 @@ "node": ">=8" } }, - "node_modules/fast-glob/node_modules/glob-parent": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", - "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", - "dev": true, - "dependencies": { - "is-glob": "^4.0.1" - }, - "engines": { - "node": ">= 6" - } - }, "node_modules/fast-glob/node_modules/is-number": { "version": "7.0.0", "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", @@ -7623,9 +7450,9 @@ } }, "node_modules/faye-websocket": { - "version": "0.11.3", - "resolved": "https://registry.npmjs.org/faye-websocket/-/faye-websocket-0.11.3.tgz", - "integrity": "sha512-D2y4bovYpzziGgbHYtGCMjlJM36vAl/y+xUyn1C+FVx8szd1E+86KwVw6XvYSzOP8iMpm1X0I4xJD+QtUb36OA==", + "version": "0.11.4", + "resolved": "https://registry.npmjs.org/faye-websocket/-/faye-websocket-0.11.4.tgz", + "integrity": "sha512-CzbClwlXAuiRQAlUyfqPgvPoNKTckTPGfwZV4ZdAhVcP2lh9KUxJg2b5GkE7XbjKQ3YJnQ9z6D9ntLAlB+tP8g==", "dev": true, "dependencies": { "websocket-driver": ">=0.5.1" @@ -7781,9 +7608,9 @@ "dev": true }, "node_modules/follow-redirects": { - "version": "1.14.0", - "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.14.0.tgz", - "integrity": "sha512-0vRwd7RKQBTt+mgu87mtYeofLFZpTas2S9zY+jIeuLJMNvudIgF52nr19q40HOwH5RrhWIPuj9puybzSJiRrVg==", + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.14.1.tgz", + "integrity": "sha512-HWqDgT7ZEkqRzBvc2s64vSZ/hfOceEol3ac/7tKwzuvEyWx3/4UegXh5oBOIotkGsObyk3xznnSRVADBgWSQVg==", "dev": true, "funding": [ { @@ -7824,9 +7651,9 @@ } }, "node_modules/forwarded": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.1.2.tgz", - "integrity": "sha1-mMI9qxF1ZXuMBXPozszZGw/xjIQ=", + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.2.0.tgz", + "integrity": "sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==", "dev": true, "engines": { "node": ">= 0.6" @@ -8035,15 +7862,6 @@ "node": ">=0.10.0" } }, - "node_modules/get-pkg-repo/node_modules/get-stdin": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/get-stdin/-/get-stdin-4.0.1.tgz", - "integrity": "sha1-uWjGsKBDhDJJAui/Gl3zJXmkUP4=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/get-pkg-repo/node_modules/hosted-git-info": { "version": "2.8.9", "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.9.tgz", @@ -8262,16 +8080,22 @@ "node": ">=0.10.0" } }, + "node_modules/get-stdin": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/get-stdin/-/get-stdin-4.0.1.tgz", + "integrity": "sha1-uWjGsKBDhDJJAui/Gl3zJXmkUP4=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/get-stream": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.2.0.tgz", - "integrity": "sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==", + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz", + "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==", "dev": true, - "dependencies": { - "pump": "^3.0.0" - }, "engines": { - "node": ">=8" + "node": ">=10" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" @@ -8353,9 +8177,9 @@ } }, "node_modules/glob": { - "version": "7.1.6", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.6.tgz", - "integrity": "sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==", + "version": "7.1.7", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.7.tgz", + "integrity": "sha512-OvD9ENzPLbegENnYP5UUfJIirTg4+XwMWGaQfQTY0JenxNvvIKP3U3/tAQSPIu/lHxXYSZmpXlUHeqAIdKzBLQ==", "dev": true, "dependencies": { "fs.realpath": "^1.0.0", @@ -8373,25 +8197,15 @@ } }, "node_modules/glob-parent": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-3.1.0.tgz", - "integrity": "sha1-nmr2KZ2NO9K9QEMIMr0RPfkGxa4=", - "dev": true, - "dependencies": { - "is-glob": "^3.1.0", - "path-dirname": "^1.0.0" - } - }, - "node_modules/glob-parent/node_modules/is-glob": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-3.1.0.tgz", - "integrity": "sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo=", + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", "dev": true, "dependencies": { - "is-extglob": "^2.1.0" + "is-glob": "^4.0.1" }, "engines": { - "node": ">=0.10.0" + "node": ">= 6" } }, "node_modules/glob-to-regexp": { @@ -8422,9 +8236,9 @@ } }, "node_modules/globby": { - "version": "11.0.3", - "resolved": "https://registry.npmjs.org/globby/-/globby-11.0.3.tgz", - "integrity": "sha512-ffdmosjA807y7+lA1NM0jELARVmYul/715xiILEjo3hBLPTcirgQNnXECn5g3mtR8TOLCVbkfua1Hpen25/Xcg==", + "version": "11.0.4", + "resolved": "https://registry.npmjs.org/globby/-/globby-11.0.4.tgz", + "integrity": "sha512-9O4MVG9ioZJ08ffbcyVYyLOJLk5JQ688pJ4eMGLpdWLHq/Wr1D9BlriLQyL0E+jbkuePVZXYFj47QM/v093wHg==", "dev": true, "dependencies": { "array-union": "^2.1.0", @@ -8757,34 +8571,24 @@ } }, "node_modules/human-signals": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-1.1.1.tgz", - "integrity": "sha512-SEQu7vl8KjNL2eoGBLF3+wAjpsNfA9XMlXAYj/3EdaNfAlxKthD1xjEQfGOUhllCGGJVNY34bRr6lPINhNjyZw==", + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-2.1.0.tgz", + "integrity": "sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==", "dev": true, "engines": { - "node": ">=8.12.0" + "node": ">=10.17.0" } }, "node_modules/husky": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/husky/-/husky-5.2.0.tgz", - "integrity": "sha512-AM8T/auHXRBxlrfPVLKP6jt49GCM2Zz47m8G3FOMsLmTv8Dj/fKVWE0Rh2d4Qrvmy131xEsdQnb3OXRib67PGg==", + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/husky/-/husky-6.0.0.tgz", + "integrity": "sha512-SQS2gDTB7tBN486QSoKPKQItZw97BMOd+Kdb6ghfpBc0yXyzrddI0oDV5MkDAbuB4X2mO3/nj60TRMcYxwzZeQ==", "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/typicode" - }, - { - "type": "opencollective", - "url": "https://opencollective.com/husky" - } - ], "bin": { "husky": "lib/bin.js" }, - "engines": { - "node": ">= 10" + "funding": { + "url": "https://github.com/sponsors/typicode" } }, "node_modules/iconv-lite": { @@ -9222,9 +9026,9 @@ "dev": true }, "node_modules/is-bigint": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-bigint/-/is-bigint-1.0.1.tgz", - "integrity": "sha512-J0ELF4yHFxHy0cmSxZuheDOz2luOdVvqjwmEcj8H/L1JHeuEDSDbeRP+Dk9kFVk5RTFzbucJ2Kb9F7ixY2QaCg==", + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-bigint/-/is-bigint-1.0.2.tgz", + "integrity": "sha512-0JV5+SOCQkIdzjBK9buARcV804Ddu7A0Qet6sHi3FimE9ne6m4BGQZfRn+NZiXbBk4F4XmHfDZIipLj9pX8dSA==", "dev": true, "funding": { "url": "https://github.com/sponsors/ljharb" @@ -9243,12 +9047,12 @@ } }, "node_modules/is-boolean-object": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/is-boolean-object/-/is-boolean-object-1.1.0.tgz", - "integrity": "sha512-a7Uprx8UtD+HWdyYwnD1+ExtTgqQtD2k/1yJgtXP6wnMm8byhkoTZRl+95LLThpzNZJ5aEvi46cdH+ayMFRwmA==", + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/is-boolean-object/-/is-boolean-object-1.1.1.tgz", + "integrity": "sha512-bXdQWkECBUIAcCkeH1unwJLIpZYaa5VvuygSyS/c2lf719mTKZDU5UdDRlpd01UjADgmW8RfqaP+mRaVPdr/Ng==", "dev": true, "dependencies": { - "call-bind": "^1.0.0" + "call-bind": "^1.0.2" }, "engines": { "node": ">= 0.4" @@ -9321,9 +9125,9 @@ } }, "node_modules/is-date-object": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.2.tgz", - "integrity": "sha512-USlDT524woQ08aoZFzh3/Z6ch9Y/EWXEHQ/AaRN0SkKq4t2Jw2R2339tSXmwuVoY7LLlBCbOIlx2myP/L5zk0g==", + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.4.tgz", + "integrity": "sha512-/b4ZVsG7Z5XVtIxs/h9W8nvfLgSAyKYdtGWQLbqy6jA1icmgjf8WCoTKgeS4wy5tYaPePouzFMANbnj94c2Z+A==", "dev": true, "engines": { "node": ">= 0.4" @@ -9440,9 +9244,9 @@ } }, "node_modules/is-number-object": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/is-number-object/-/is-number-object-1.0.4.tgz", - "integrity": "sha512-zohwelOAur+5uXtk8O3GPQ1eAcu4ZX3UwxQhUlfFFMNpUd83gXgjbhJh6HmB6LUNV/ieOLQuDwJO3dWJosUeMw==", + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/is-number-object/-/is-number-object-1.0.5.tgz", + "integrity": "sha512-RU0lI/n95pMoUKu9v1BZP5MBcZuNSVJkMkAG2dJqC4z2GlkGUNeH68SuHuBKBD/XFe+LHZ+f9BKkLET60Niedw==", "dev": true, "engines": { "node": ">= 0.4" @@ -9530,13 +9334,13 @@ "dev": true }, "node_modules/is-regex": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.2.tgz", - "integrity": "sha512-axvdhb5pdhEVThqJzYXwMlVuZwC+FF2DpcOhTS+y/8jVq4trxyPgfcwIxIKiyeuLlSQYKkmUaPQJ8ZE4yNKXDg==", + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.3.tgz", + "integrity": "sha512-qSVXFz28HM7y+IWX6vLCsexdlvzT1PJNFSBuaQLQ5o0IEw8UDYW6/2+eCMVyIsbM8CNLX2a/QWmSpyxYEHY7CQ==", "dev": true, "dependencies": { "call-bind": "^1.0.2", - "has-symbols": "^1.0.1" + "has-symbols": "^1.0.2" }, "engines": { "node": ">= 0.4" @@ -9564,9 +9368,9 @@ } }, "node_modules/is-string": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/is-string/-/is-string-1.0.5.tgz", - "integrity": "sha512-buY6VNRjhQMiF1qWDouloZlQbRhDPCebwxSjxMjxgemYT46YMd2NR0/H+fBhEfWX4A/w9TBJ+ol+okqJKFE6vQ==", + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/is-string/-/is-string-1.0.6.tgz", + "integrity": "sha512-2gdzbKUuqtQ3lYNrUTQYoClPhm7oQu4UdpSZMp1/DGgkHBT8E2Z1l0yMdb6D4zNAxwDiMv8MdulKROJGNl0Q0w==", "dev": true, "engines": { "node": ">= 0.4" @@ -9576,12 +9380,12 @@ } }, "node_modules/is-symbol": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.3.tgz", - "integrity": "sha512-OwijhaRSgqvhm/0ZdAcXNZt9lYdKFpcRDT5ULUuYXPoT794UNOdU+gpT6Rzo7b4V2HUl/op6GqY894AZwv9faQ==", + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.4.tgz", + "integrity": "sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg==", "dev": true, "dependencies": { - "has-symbols": "^1.0.1" + "has-symbols": "^1.0.2" }, "engines": { "node": ">= 0.4" @@ -9782,14 +9586,14 @@ } }, "node_modules/jest": { - "version": "27.0.4", - "resolved": "https://registry.npmjs.org/jest/-/jest-27.0.4.tgz", - "integrity": "sha512-Px1iKFooXgGSkk1H8dJxxBIrM3tsc5SIuI4kfKYK2J+4rvCvPGr/cXktxh0e9zIPQ5g09kOMNfHQEmusBUf/ZA==", + "version": "27.0.6", + "resolved": "https://registry.npmjs.org/jest/-/jest-27.0.6.tgz", + "integrity": "sha512-EjV8aETrsD0wHl7CKMibKwQNQc3gIRBXlTikBmmHUeVMKaPFxdcUIBfoDqTSXDoGJIivAYGqCWVlzCSaVjPQsA==", "dev": true, "dependencies": { - "@jest/core": "^27.0.4", + "@jest/core": "^27.0.6", "import-local": "^3.0.2", - "jest-cli": "^27.0.4" + "jest-cli": "^27.0.6" }, "bin": { "jest": "bin/jest.js" @@ -9798,7 +9602,7 @@ "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" }, "peerDependencies": { - "node-notifier": "^8.0.1 || ^9.0.0" + "node-notifier": "^8.0.1 || ^9.0.0 || ^10.0.0" }, "peerDependenciesMeta": { "node-notifier": { @@ -9807,12 +9611,12 @@ } }, "node_modules/jest-changed-files": { - "version": "27.0.2", - "resolved": "https://registry.npmjs.org/jest-changed-files/-/jest-changed-files-27.0.2.tgz", - "integrity": "sha512-eMeb1Pn7w7x3wue5/vF73LPCJ7DKQuC9wQUR5ebP9hDPpk5hzcT/3Hmz3Q5BOFpR3tgbmaWhJcMTVgC8Z1NuMw==", + "version": "27.0.6", + "resolved": "https://registry.npmjs.org/jest-changed-files/-/jest-changed-files-27.0.6.tgz", + "integrity": "sha512-BuL/ZDauaq5dumYh5y20sn4IISnf1P9A0TDswTxUi84ORGtVa86ApuBHqICL0vepqAnZiY6a7xeSPWv2/yy4eA==", "dev": true, "dependencies": { - "@jest/types": "^27.0.2", + "@jest/types": "^27.0.6", "execa": "^5.0.0", "throat": "^6.0.1" }, @@ -9820,72 +9624,28 @@ "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" } }, - "node_modules/jest-changed-files/node_modules/execa": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/execa/-/execa-5.1.1.tgz", - "integrity": "sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==", - "dev": true, - "dependencies": { - "cross-spawn": "^7.0.3", - "get-stream": "^6.0.0", - "human-signals": "^2.1.0", - "is-stream": "^2.0.0", - "merge-stream": "^2.0.0", - "npm-run-path": "^4.0.1", - "onetime": "^5.1.2", - "signal-exit": "^3.0.3", - "strip-final-newline": "^2.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sindresorhus/execa?sponsor=1" - } - }, - "node_modules/jest-changed-files/node_modules/get-stream": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz", - "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==", - "dev": true, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/jest-changed-files/node_modules/human-signals": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-2.1.0.tgz", - "integrity": "sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==", - "dev": true, - "engines": { - "node": ">=10.17.0" - } - }, "node_modules/jest-circus": { - "version": "27.0.4", - "resolved": "https://registry.npmjs.org/jest-circus/-/jest-circus-27.0.4.tgz", - "integrity": "sha512-QD+eblDiRphta630WRKewuASLs/oY1Zki2G4bccntRvrTHQ63ljwFR5TLduuK4Zg0ZPzW0+8o6AP7KRd1yKOjw==", + "version": "27.0.6", + "resolved": "https://registry.npmjs.org/jest-circus/-/jest-circus-27.0.6.tgz", + "integrity": "sha512-OJlsz6BBeX9qR+7O9lXefWoc2m9ZqcZ5Ohlzz0pTEAG4xMiZUJoacY8f4YDHxgk0oKYxj277AfOk9w6hZYvi1Q==", "dev": true, "dependencies": { - "@jest/environment": "^27.0.3", - "@jest/test-result": "^27.0.2", - "@jest/types": "^27.0.2", + "@jest/environment": "^27.0.6", + "@jest/test-result": "^27.0.6", + "@jest/types": "^27.0.6", "@types/node": "*", "chalk": "^4.0.0", "co": "^4.6.0", "dedent": "^0.7.0", - "expect": "^27.0.2", + "expect": "^27.0.6", "is-generator-fn": "^2.0.0", - "jest-each": "^27.0.2", - "jest-matcher-utils": "^27.0.2", - "jest-message-util": "^27.0.2", - "jest-runtime": "^27.0.4", - "jest-snapshot": "^27.0.4", - "jest-util": "^27.0.2", - "pretty-format": "^27.0.2", + "jest-each": "^27.0.6", + "jest-matcher-utils": "^27.0.6", + "jest-message-util": "^27.0.6", + "jest-runtime": "^27.0.6", + "jest-snapshot": "^27.0.6", + "jest-util": "^27.0.6", + "pretty-format": "^27.0.6", "slash": "^3.0.0", "stack-utils": "^2.0.3", "throat": "^6.0.1" @@ -9974,21 +9734,21 @@ } }, "node_modules/jest-cli": { - "version": "27.0.4", - "resolved": "https://registry.npmjs.org/jest-cli/-/jest-cli-27.0.4.tgz", - "integrity": "sha512-E0T+/i2lxsWAzV7LKYd0SB7HUAvePqaeIh5vX43/G5jXLhv1VzjYzJAGEkTfvxV774ll9cyE2ljcL73PVMEOXQ==", + "version": "27.0.6", + "resolved": "https://registry.npmjs.org/jest-cli/-/jest-cli-27.0.6.tgz", + "integrity": "sha512-qUUVlGb9fdKir3RDE+B10ULI+LQrz+MCflEH2UJyoUjoHHCbxDrMxSzjQAPUMsic4SncI62ofYCcAvW6+6rhhg==", "dev": true, "dependencies": { - "@jest/core": "^27.0.4", - "@jest/test-result": "^27.0.2", - "@jest/types": "^27.0.2", + "@jest/core": "^27.0.6", + "@jest/test-result": "^27.0.6", + "@jest/types": "^27.0.6", "chalk": "^4.0.0", "exit": "^0.1.2", "graceful-fs": "^4.2.4", "import-local": "^3.0.2", - "jest-config": "^27.0.4", - "jest-util": "^27.0.2", - "jest-validate": "^27.0.2", + "jest-config": "^27.0.6", + "jest-util": "^27.0.6", + "jest-validate": "^27.0.6", "prompts": "^2.0.1", "yargs": "^16.0.3" }, @@ -9999,7 +9759,7 @@ "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" }, "peerDependencies": { - "node-notifier": "^8.0.1 || ^9.0.0" + "node-notifier": "^8.0.1 || ^9.0.0 || ^10.0.0" }, "peerDependenciesMeta": { "node-notifier": { @@ -10078,32 +9838,32 @@ } }, "node_modules/jest-config": { - "version": "27.0.4", - "resolved": "https://registry.npmjs.org/jest-config/-/jest-config-27.0.4.tgz", - "integrity": "sha512-VkQFAHWnPQefdvHU9A+G3H/Z3NrrTKqWpvxgQz3nkUdkDTWeKJE6e//BL+R7z79dXOMVksYgM/z6ndtN0hfChg==", + "version": "27.0.6", + "resolved": "https://registry.npmjs.org/jest-config/-/jest-config-27.0.6.tgz", + "integrity": "sha512-JZRR3I1Plr2YxPBhgqRspDE2S5zprbga3swYNrvY3HfQGu7p/GjyLOqwrYad97tX3U3mzT53TPHVmozacfP/3w==", "dev": true, "dependencies": { "@babel/core": "^7.1.0", - "@jest/test-sequencer": "^27.0.4", - "@jest/types": "^27.0.2", - "babel-jest": "^27.0.2", + "@jest/test-sequencer": "^27.0.6", + "@jest/types": "^27.0.6", + "babel-jest": "^27.0.6", "chalk": "^4.0.0", "deepmerge": "^4.2.2", "glob": "^7.1.1", "graceful-fs": "^4.2.4", "is-ci": "^3.0.0", - "jest-circus": "^27.0.4", - "jest-environment-jsdom": "^27.0.3", - "jest-environment-node": "^27.0.3", - "jest-get-type": "^27.0.1", - "jest-jasmine2": "^27.0.4", - "jest-regex-util": "^27.0.1", - "jest-resolve": "^27.0.4", - "jest-runner": "^27.0.4", - "jest-util": "^27.0.2", - "jest-validate": "^27.0.2", + "jest-circus": "^27.0.6", + "jest-environment-jsdom": "^27.0.6", + "jest-environment-node": "^27.0.6", + "jest-get-type": "^27.0.6", + "jest-jasmine2": "^27.0.6", + "jest-regex-util": "^27.0.6", + "jest-resolve": "^27.0.6", + "jest-runner": "^27.0.6", + "jest-util": "^27.0.6", + "jest-validate": "^27.0.6", "micromatch": "^4.0.4", - "pretty-format": "^27.0.2" + "pretty-format": "^27.0.6" }, "engines": { "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" @@ -10246,15 +10006,15 @@ } }, "node_modules/jest-diff": { - "version": "27.0.2", - "resolved": "https://registry.npmjs.org/jest-diff/-/jest-diff-27.0.2.tgz", - "integrity": "sha512-BFIdRb0LqfV1hBt8crQmw6gGQHVDhM87SpMIZ45FPYKReZYG5er1+5pIn2zKqvrJp6WNox0ylR8571Iwk2Dmgw==", + "version": "27.0.6", + "resolved": "https://registry.npmjs.org/jest-diff/-/jest-diff-27.0.6.tgz", + "integrity": "sha512-Z1mqgkTCSYaFgwTlP/NUiRzdqgxmmhzHY1Tq17zL94morOHfHu3K4bgSgl+CR4GLhpV8VxkuOYuIWnQ9LnFqmg==", "dev": true, "dependencies": { "chalk": "^4.0.0", - "diff-sequences": "^27.0.1", - "jest-get-type": "^27.0.1", - "pretty-format": "^27.0.2" + "diff-sequences": "^27.0.6", + "jest-get-type": "^27.0.6", + "pretty-format": "^27.0.6" }, "engines": { "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" @@ -10331,9 +10091,9 @@ } }, "node_modules/jest-docblock": { - "version": "27.0.1", - "resolved": "https://registry.npmjs.org/jest-docblock/-/jest-docblock-27.0.1.tgz", - "integrity": "sha512-TA4+21s3oebURc7VgFV4r7ltdIJ5rtBH1E3Tbovcg7AV+oLfD5DcJ2V2vJ5zFA9sL5CFd/d2D6IpsAeSheEdrA==", + "version": "27.0.6", + "resolved": "https://registry.npmjs.org/jest-docblock/-/jest-docblock-27.0.6.tgz", + "integrity": "sha512-Fid6dPcjwepTFraz0YxIMCi7dejjJ/KL9FBjPYhBp4Sv1Y9PdhImlKZqYU555BlN4TQKaTc+F2Av1z+anVyGkA==", "dev": true, "dependencies": { "detect-newline": "^3.0.0" @@ -10343,16 +10103,16 @@ } }, "node_modules/jest-each": { - "version": "27.0.2", - "resolved": "https://registry.npmjs.org/jest-each/-/jest-each-27.0.2.tgz", - "integrity": "sha512-OLMBZBZ6JkoXgUenDtseFRWA43wVl2BwmZYIWQws7eS7pqsIvePqj/jJmEnfq91ALk3LNphgwNK/PRFBYi7ITQ==", + "version": "27.0.6", + "resolved": "https://registry.npmjs.org/jest-each/-/jest-each-27.0.6.tgz", + "integrity": "sha512-m6yKcV3bkSWrUIjxkE9OC0mhBZZdhovIW5ergBYirqnkLXkyEn3oUUF/QZgyecA1cF1QFyTE8bRRl8Tfg1pfLA==", "dev": true, "dependencies": { - "@jest/types": "^27.0.2", + "@jest/types": "^27.0.6", "chalk": "^4.0.0", - "jest-get-type": "^27.0.1", - "jest-util": "^27.0.2", - "pretty-format": "^27.0.2" + "jest-get-type": "^27.0.6", + "jest-util": "^27.0.6", + "pretty-format": "^27.0.6" }, "engines": { "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" @@ -10429,17 +10189,17 @@ } }, "node_modules/jest-environment-jsdom": { - "version": "27.0.3", - "resolved": "https://registry.npmjs.org/jest-environment-jsdom/-/jest-environment-jsdom-27.0.3.tgz", - "integrity": "sha512-5KLmgv1bhiimpSA8oGTnZYk6g4fsNyZiA/6gI2tAZUgrufd7heRUSVh4gRokzZVEj8zlwAQYT0Zs6tuJSW/ECA==", + "version": "27.0.6", + "resolved": "https://registry.npmjs.org/jest-environment-jsdom/-/jest-environment-jsdom-27.0.6.tgz", + "integrity": "sha512-FvetXg7lnXL9+78H+xUAsra3IeZRTiegA3An01cWeXBspKXUhAwMM9ycIJ4yBaR0L7HkoMPaZsozCLHh4T8fuw==", "dev": true, "dependencies": { - "@jest/environment": "^27.0.3", - "@jest/fake-timers": "^27.0.3", - "@jest/types": "^27.0.2", + "@jest/environment": "^27.0.6", + "@jest/fake-timers": "^27.0.6", + "@jest/types": "^27.0.6", "@types/node": "*", - "jest-mock": "^27.0.3", - "jest-util": "^27.0.2", + "jest-mock": "^27.0.6", + "jest-util": "^27.0.6", "jsdom": "^16.6.0" }, "engines": { @@ -10447,47 +10207,47 @@ } }, "node_modules/jest-environment-node": { - "version": "27.0.3", - "resolved": "https://registry.npmjs.org/jest-environment-node/-/jest-environment-node-27.0.3.tgz", - "integrity": "sha512-co2/IVnIFL3cItpFULCvXFg9us4gvWXgs7mutAMPCbFhcqh56QAOdKhNzC2+RycsC/k4mbMj1VF+9F/NzA0ROg==", + "version": "27.0.6", + "resolved": "https://registry.npmjs.org/jest-environment-node/-/jest-environment-node-27.0.6.tgz", + "integrity": "sha512-+Vi6yLrPg/qC81jfXx3IBlVnDTI6kmRr08iVa2hFCWmJt4zha0XW7ucQltCAPhSR0FEKEoJ3i+W4E6T0s9is0w==", "dev": true, "dependencies": { - "@jest/environment": "^27.0.3", - "@jest/fake-timers": "^27.0.3", - "@jest/types": "^27.0.2", + "@jest/environment": "^27.0.6", + "@jest/fake-timers": "^27.0.6", + "@jest/types": "^27.0.6", "@types/node": "*", - "jest-mock": "^27.0.3", - "jest-util": "^27.0.2" + "jest-mock": "^27.0.6", + "jest-util": "^27.0.6" }, "engines": { "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" } }, "node_modules/jest-get-type": { - "version": "27.0.1", - "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-27.0.1.tgz", - "integrity": "sha512-9Tggo9zZbu0sHKebiAijyt1NM77Z0uO4tuWOxUCujAiSeXv30Vb5D4xVF4UR4YWNapcftj+PbByU54lKD7/xMg==", + "version": "27.0.6", + "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-27.0.6.tgz", + "integrity": "sha512-XTkK5exIeUbbveehcSR8w0bhH+c0yloW/Wpl+9vZrjzztCPWrxhHwkIFpZzCt71oRBsgxmuUfxEqOYoZI2macg==", "dev": true, "engines": { "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" } }, "node_modules/jest-haste-map": { - "version": "27.0.2", - "resolved": "https://registry.npmjs.org/jest-haste-map/-/jest-haste-map-27.0.2.tgz", - "integrity": "sha512-37gYfrYjjhEfk37C4bCMWAC0oPBxDpG0qpl8lYg8BT//wf353YT/fzgA7+Dq0EtM7rPFS3JEcMsxdtDwNMi2cA==", + "version": "27.0.6", + "resolved": "https://registry.npmjs.org/jest-haste-map/-/jest-haste-map-27.0.6.tgz", + "integrity": "sha512-4ldjPXX9h8doB2JlRzg9oAZ2p6/GpQUNAeiYXqcpmrKbP0Qev0wdZlxSMOmz8mPOEnt4h6qIzXFLDi8RScX/1w==", "dev": true, "dependencies": { - "@jest/types": "^27.0.2", + "@jest/types": "^27.0.6", "@types/graceful-fs": "^4.1.2", "@types/node": "*", "anymatch": "^3.0.3", "fb-watchman": "^2.0.0", "graceful-fs": "^4.2.4", - "jest-regex-util": "^27.0.1", - "jest-serializer": "^27.0.1", - "jest-util": "^27.0.2", - "jest-worker": "^27.0.2", + "jest-regex-util": "^27.0.6", + "jest-serializer": "^27.0.6", + "jest-util": "^27.0.6", + "jest-worker": "^27.0.6", "micromatch": "^4.0.4", "walker": "^1.0.7" }, @@ -10570,28 +10330,28 @@ } }, "node_modules/jest-jasmine2": { - "version": "27.0.4", - "resolved": "https://registry.npmjs.org/jest-jasmine2/-/jest-jasmine2-27.0.4.tgz", - "integrity": "sha512-yj3WrjjquZwkJw+eA4c9yucHw4/+EHndHWSqgHbHGQfT94ihaaQsa009j1a0puU8CNxPDk0c1oAPeOpdJUElwA==", + "version": "27.0.6", + "resolved": "https://registry.npmjs.org/jest-jasmine2/-/jest-jasmine2-27.0.6.tgz", + "integrity": "sha512-cjpH2sBy+t6dvCeKBsHpW41mjHzXgsavaFMp+VWRf0eR4EW8xASk1acqmljFtK2DgyIECMv2yCdY41r2l1+4iA==", "dev": true, "dependencies": { "@babel/traverse": "^7.1.0", - "@jest/environment": "^27.0.3", - "@jest/source-map": "^27.0.1", - "@jest/test-result": "^27.0.2", - "@jest/types": "^27.0.2", + "@jest/environment": "^27.0.6", + "@jest/source-map": "^27.0.6", + "@jest/test-result": "^27.0.6", + "@jest/types": "^27.0.6", "@types/node": "*", "chalk": "^4.0.0", "co": "^4.6.0", - "expect": "^27.0.2", + "expect": "^27.0.6", "is-generator-fn": "^2.0.0", - "jest-each": "^27.0.2", - "jest-matcher-utils": "^27.0.2", - "jest-message-util": "^27.0.2", - "jest-runtime": "^27.0.4", - "jest-snapshot": "^27.0.4", - "jest-util": "^27.0.2", - "pretty-format": "^27.0.2", + "jest-each": "^27.0.6", + "jest-matcher-utils": "^27.0.6", + "jest-message-util": "^27.0.6", + "jest-runtime": "^27.0.6", + "jest-snapshot": "^27.0.6", + "jest-util": "^27.0.6", + "pretty-format": "^27.0.6", "throat": "^6.0.1" }, "engines": { @@ -10669,28 +10429,28 @@ } }, "node_modules/jest-leak-detector": { - "version": "27.0.2", - "resolved": "https://registry.npmjs.org/jest-leak-detector/-/jest-leak-detector-27.0.2.tgz", - "integrity": "sha512-TZA3DmCOfe8YZFIMD1GxFqXUkQnIoOGQyy4hFCA2mlHtnAaf+FeOMxi0fZmfB41ZL+QbFG6BVaZF5IeFIVy53Q==", + "version": "27.0.6", + "resolved": "https://registry.npmjs.org/jest-leak-detector/-/jest-leak-detector-27.0.6.tgz", + "integrity": "sha512-2/d6n2wlH5zEcdctX4zdbgX8oM61tb67PQt4Xh8JFAIy6LRKUnX528HulkaG6nD5qDl5vRV1NXejCe1XRCH5gQ==", "dev": true, "dependencies": { - "jest-get-type": "^27.0.1", - "pretty-format": "^27.0.2" + "jest-get-type": "^27.0.6", + "pretty-format": "^27.0.6" }, "engines": { "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" } }, "node_modules/jest-matcher-utils": { - "version": "27.0.2", - "resolved": "https://registry.npmjs.org/jest-matcher-utils/-/jest-matcher-utils-27.0.2.tgz", - "integrity": "sha512-Qczi5xnTNjkhcIB0Yy75Txt+Ez51xdhOxsukN7awzq2auZQGPHcQrJ623PZj0ECDEMOk2soxWx05EXdXGd1CbA==", + "version": "27.0.6", + "resolved": "https://registry.npmjs.org/jest-matcher-utils/-/jest-matcher-utils-27.0.6.tgz", + "integrity": "sha512-OFgF2VCQx9vdPSYTHWJ9MzFCehs20TsyFi6bIHbk5V1u52zJOnvF0Y/65z3GLZHKRuTgVPY4Z6LVePNahaQ+tA==", "dev": true, "dependencies": { "chalk": "^4.0.0", - "jest-diff": "^27.0.2", - "jest-get-type": "^27.0.1", - "pretty-format": "^27.0.2" + "jest-diff": "^27.0.6", + "jest-get-type": "^27.0.6", + "pretty-format": "^27.0.6" }, "engines": { "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" @@ -10767,18 +10527,18 @@ } }, "node_modules/jest-message-util": { - "version": "27.0.2", - "resolved": "https://registry.npmjs.org/jest-message-util/-/jest-message-util-27.0.2.tgz", - "integrity": "sha512-rTqWUX42ec2LdMkoUPOzrEd1Tcm+R1KfLOmFK+OVNo4MnLsEaxO5zPDb2BbdSmthdM/IfXxOZU60P/WbWF8BTw==", + "version": "27.0.6", + "resolved": "https://registry.npmjs.org/jest-message-util/-/jest-message-util-27.0.6.tgz", + "integrity": "sha512-rBxIs2XK7rGy+zGxgi+UJKP6WqQ+KrBbD1YMj517HYN3v2BG66t3Xan3FWqYHKZwjdB700KiAJ+iES9a0M+ixw==", "dev": true, "dependencies": { "@babel/code-frame": "^7.12.13", - "@jest/types": "^27.0.2", + "@jest/types": "^27.0.6", "@types/stack-utils": "^2.0.0", "chalk": "^4.0.0", "graceful-fs": "^4.2.4", "micromatch": "^4.0.4", - "pretty-format": "^27.0.2", + "pretty-format": "^27.0.6", "slash": "^3.0.0", "stack-utils": "^2.0.3" }, @@ -10924,12 +10684,12 @@ } }, "node_modules/jest-mock": { - "version": "27.0.3", - "resolved": "https://registry.npmjs.org/jest-mock/-/jest-mock-27.0.3.tgz", - "integrity": "sha512-O5FZn5XDzEp+Xg28mUz4ovVcdwBBPfAhW9+zJLO0Efn2qNbYcDaJvSlRiQ6BCZUCVOJjALicuJQI9mRFjv1o9Q==", + "version": "27.0.6", + "resolved": "https://registry.npmjs.org/jest-mock/-/jest-mock-27.0.6.tgz", + "integrity": "sha512-lzBETUoK8cSxts2NYXSBWT+EJNzmUVtVVwS1sU9GwE1DLCfGsngg+ZVSIe0yd0ZSm+y791esiuo+WSwpXJQ5Bw==", "dev": true, "dependencies": { - "@jest/types": "^27.0.2", + "@jest/types": "^27.0.6", "@types/node": "*" }, "engines": { @@ -10954,27 +10714,27 @@ } }, "node_modules/jest-regex-util": { - "version": "27.0.1", - "resolved": "https://registry.npmjs.org/jest-regex-util/-/jest-regex-util-27.0.1.tgz", - "integrity": "sha512-6nY6QVcpTgEKQy1L41P4pr3aOddneK17kn3HJw6SdwGiKfgCGTvH02hVXL0GU8GEKtPH83eD2DIDgxHXOxVohQ==", + "version": "27.0.6", + "resolved": "https://registry.npmjs.org/jest-regex-util/-/jest-regex-util-27.0.6.tgz", + "integrity": "sha512-SUhPzBsGa1IKm8hx2F4NfTGGp+r7BXJ4CulsZ1k2kI+mGLG+lxGrs76veN2LF/aUdGosJBzKgXmNCw+BzFqBDQ==", "dev": true, "engines": { "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" } }, "node_modules/jest-resolve": { - "version": "27.0.4", - "resolved": "https://registry.npmjs.org/jest-resolve/-/jest-resolve-27.0.4.tgz", - "integrity": "sha512-BcfyK2i3cG79PDb/6gB6zFeFQlcqLsQjGBqznFCpA0L/3l1L/oOsltdUjs5eISAWA9HS9qtj8v2PSZr/yWxONQ==", + "version": "27.0.6", + "resolved": "https://registry.npmjs.org/jest-resolve/-/jest-resolve-27.0.6.tgz", + "integrity": "sha512-yKmIgw2LgTh7uAJtzv8UFHGF7Dm7XfvOe/LQ3Txv101fLM8cx2h1QVwtSJ51Q/SCxpIiKfVn6G2jYYMDNHZteA==", "dev": true, "dependencies": { - "@jest/types": "^27.0.2", + "@jest/types": "^27.0.6", "chalk": "^4.0.0", "escalade": "^3.1.1", "graceful-fs": "^4.2.4", "jest-pnp-resolver": "^1.2.2", - "jest-util": "^27.0.2", - "jest-validate": "^27.0.2", + "jest-util": "^27.0.6", + "jest-validate": "^27.0.6", "resolve": "^1.20.0", "slash": "^3.0.0" }, @@ -10983,14 +10743,14 @@ } }, "node_modules/jest-resolve-dependencies": { - "version": "27.0.4", - "resolved": "https://registry.npmjs.org/jest-resolve-dependencies/-/jest-resolve-dependencies-27.0.4.tgz", - "integrity": "sha512-F33UPfw1YGWCV2uxJl7wD6TvcQn5IC0LtguwY3r4L7R6H4twpLkp5Q2ZfzRx9A2I3G8feiy0O0sqcn/Qoym71A==", + "version": "27.0.6", + "resolved": "https://registry.npmjs.org/jest-resolve-dependencies/-/jest-resolve-dependencies-27.0.6.tgz", + "integrity": "sha512-mg9x9DS3BPAREWKCAoyg3QucCr0n6S8HEEsqRCKSPjPcu9HzRILzhdzY3imsLoZWeosEbJZz6TKasveczzpJZA==", "dev": true, "dependencies": { - "@jest/types": "^27.0.2", - "jest-regex-util": "^27.0.1", - "jest-snapshot": "^27.0.4" + "@jest/types": "^27.0.6", + "jest-regex-util": "^27.0.6", + "jest-snapshot": "^27.0.6" }, "engines": { "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" @@ -11076,31 +10836,31 @@ } }, "node_modules/jest-runner": { - "version": "27.0.4", - "resolved": "https://registry.npmjs.org/jest-runner/-/jest-runner-27.0.4.tgz", - "integrity": "sha512-NfmvSYLCsCJk2AG8Ar2NAh4PhsJJpO+/r+g4bKR5L/5jFzx/indUpnVBdrfDvuqhGLLAvrKJ9FM/Nt8o1dsqxg==", + "version": "27.0.6", + "resolved": "https://registry.npmjs.org/jest-runner/-/jest-runner-27.0.6.tgz", + "integrity": "sha512-W3Bz5qAgaSChuivLn+nKOgjqNxM7O/9JOJoKDCqThPIg2sH/d4A/lzyiaFgnb9V1/w29Le11NpzTJSzga1vyYQ==", "dev": true, "dependencies": { - "@jest/console": "^27.0.2", - "@jest/environment": "^27.0.3", - "@jest/test-result": "^27.0.2", - "@jest/transform": "^27.0.2", - "@jest/types": "^27.0.2", + "@jest/console": "^27.0.6", + "@jest/environment": "^27.0.6", + "@jest/test-result": "^27.0.6", + "@jest/transform": "^27.0.6", + "@jest/types": "^27.0.6", "@types/node": "*", "chalk": "^4.0.0", "emittery": "^0.8.1", "exit": "^0.1.2", "graceful-fs": "^4.2.4", - "jest-docblock": "^27.0.1", - "jest-environment-jsdom": "^27.0.3", - "jest-environment-node": "^27.0.3", - "jest-haste-map": "^27.0.2", - "jest-leak-detector": "^27.0.2", - "jest-message-util": "^27.0.2", - "jest-resolve": "^27.0.4", - "jest-runtime": "^27.0.4", - "jest-util": "^27.0.2", - "jest-worker": "^27.0.2", + "jest-docblock": "^27.0.6", + "jest-environment-jsdom": "^27.0.6", + "jest-environment-node": "^27.0.6", + "jest-haste-map": "^27.0.6", + "jest-leak-detector": "^27.0.6", + "jest-message-util": "^27.0.6", + "jest-resolve": "^27.0.6", + "jest-runtime": "^27.0.6", + "jest-util": "^27.0.6", + "jest-worker": "^27.0.6", "source-map-support": "^0.5.6", "throat": "^6.0.1" }, @@ -11179,19 +10939,19 @@ } }, "node_modules/jest-runtime": { - "version": "27.0.4", - "resolved": "https://registry.npmjs.org/jest-runtime/-/jest-runtime-27.0.4.tgz", - "integrity": "sha512-voJB4xbAjS/qYPboV+e+gmg3jfvHJJY4CagFWBOM9dQKtlaiTjcpD2tWwla84Z7PtXSQPeIpXY0qksA9Dum29A==", - "dev": true, - "dependencies": { - "@jest/console": "^27.0.2", - "@jest/environment": "^27.0.3", - "@jest/fake-timers": "^27.0.3", - "@jest/globals": "^27.0.3", - "@jest/source-map": "^27.0.1", - "@jest/test-result": "^27.0.2", - "@jest/transform": "^27.0.2", - "@jest/types": "^27.0.2", + "version": "27.0.6", + "resolved": "https://registry.npmjs.org/jest-runtime/-/jest-runtime-27.0.6.tgz", + "integrity": "sha512-BhvHLRVfKibYyqqEFkybsznKwhrsu7AWx2F3y9G9L95VSIN3/ZZ9vBpm/XCS2bS+BWz3sSeNGLzI3TVQ0uL85Q==", + "dev": true, + "dependencies": { + "@jest/console": "^27.0.6", + "@jest/environment": "^27.0.6", + "@jest/fake-timers": "^27.0.6", + "@jest/globals": "^27.0.6", + "@jest/source-map": "^27.0.6", + "@jest/test-result": "^27.0.6", + "@jest/transform": "^27.0.6", + "@jest/types": "^27.0.6", "@types/yargs": "^16.0.0", "chalk": "^4.0.0", "cjs-module-lexer": "^1.0.0", @@ -11199,14 +10959,14 @@ "exit": "^0.1.2", "glob": "^7.1.3", "graceful-fs": "^4.2.4", - "jest-haste-map": "^27.0.2", - "jest-message-util": "^27.0.2", - "jest-mock": "^27.0.3", - "jest-regex-util": "^27.0.1", - "jest-resolve": "^27.0.4", - "jest-snapshot": "^27.0.4", - "jest-util": "^27.0.2", - "jest-validate": "^27.0.2", + "jest-haste-map": "^27.0.6", + "jest-message-util": "^27.0.6", + "jest-mock": "^27.0.6", + "jest-regex-util": "^27.0.6", + "jest-resolve": "^27.0.6", + "jest-snapshot": "^27.0.6", + "jest-util": "^27.0.6", + "jest-validate": "^27.0.6", "slash": "^3.0.0", "strip-bom": "^4.0.0", "yargs": "^16.0.3" @@ -11295,9 +11055,9 @@ } }, "node_modules/jest-serializer": { - "version": "27.0.1", - "resolved": "https://registry.npmjs.org/jest-serializer/-/jest-serializer-27.0.1.tgz", - "integrity": "sha512-svy//5IH6bfQvAbkAEg1s7xhhgHTtXu0li0I2fdKHDsLP2P2MOiscPQIENQep8oU2g2B3jqLyxKKzotZOz4CwQ==", + "version": "27.0.6", + "resolved": "https://registry.npmjs.org/jest-serializer/-/jest-serializer-27.0.6.tgz", + "integrity": "sha512-PtGdVK9EGC7dsaziskfqaAPib6wTViY3G8E5wz9tLVPhHyiDNTZn/xjZ4khAw+09QkoOVpn7vF5nPSN6dtBexA==", "dev": true, "dependencies": { "@types/node": "*", @@ -11308,9 +11068,9 @@ } }, "node_modules/jest-snapshot": { - "version": "27.0.4", - "resolved": "https://registry.npmjs.org/jest-snapshot/-/jest-snapshot-27.0.4.tgz", - "integrity": "sha512-hnjrvpKGdSMvKfbHyaG5Kul7pDJGZvjVy0CKpzhu28MmAssDXS6GpynhXzgst1wBQoKD8c9b2VS2a5yhDLQRCA==", + "version": "27.0.6", + "resolved": "https://registry.npmjs.org/jest-snapshot/-/jest-snapshot-27.0.6.tgz", + "integrity": "sha512-NTHaz8He+ATUagUgE7C/UtFcRoHqR2Gc+KDfhQIyx+VFgwbeEMjeP+ILpUTLosZn/ZtbNdCF5LkVnN/l+V751A==", "dev": true, "dependencies": { "@babel/core": "^7.7.2", @@ -11319,23 +11079,23 @@ "@babel/plugin-syntax-typescript": "^7.7.2", "@babel/traverse": "^7.7.2", "@babel/types": "^7.0.0", - "@jest/transform": "^27.0.2", - "@jest/types": "^27.0.2", + "@jest/transform": "^27.0.6", + "@jest/types": "^27.0.6", "@types/babel__traverse": "^7.0.4", "@types/prettier": "^2.1.5", "babel-preset-current-node-syntax": "^1.0.0", "chalk": "^4.0.0", - "expect": "^27.0.2", + "expect": "^27.0.6", "graceful-fs": "^4.2.4", - "jest-diff": "^27.0.2", - "jest-get-type": "^27.0.1", - "jest-haste-map": "^27.0.2", - "jest-matcher-utils": "^27.0.2", - "jest-message-util": "^27.0.2", - "jest-resolve": "^27.0.4", - "jest-util": "^27.0.2", + "jest-diff": "^27.0.6", + "jest-get-type": "^27.0.6", + "jest-haste-map": "^27.0.6", + "jest-matcher-utils": "^27.0.6", + "jest-message-util": "^27.0.6", + "jest-resolve": "^27.0.6", + "jest-util": "^27.0.6", "natural-compare": "^1.4.0", - "pretty-format": "^27.0.2", + "pretty-format": "^27.0.6", "semver": "^7.3.2" }, "engines": { @@ -11428,12 +11188,12 @@ } }, "node_modules/jest-util": { - "version": "27.0.2", - "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-27.0.2.tgz", - "integrity": "sha512-1d9uH3a00OFGGWSibpNYr+jojZ6AckOMCXV2Z4K3YXDnzpkAaXQyIpY14FOJPiUmil7CD+A6Qs+lnnh6ctRbIA==", + "version": "27.0.6", + "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-27.0.6.tgz", + "integrity": "sha512-1JjlaIh+C65H/F7D11GNkGDDZtDfMEM8EBXsvd+l/cxtgQ6QhxuloOaiayt89DxUvDarbVhqI98HhgrM1yliFQ==", "dev": true, "dependencies": { - "@jest/types": "^27.0.2", + "@jest/types": "^27.0.6", "@types/node": "*", "chalk": "^4.0.0", "graceful-fs": "^4.2.4", @@ -11515,17 +11275,17 @@ } }, "node_modules/jest-validate": { - "version": "27.0.2", - "resolved": "https://registry.npmjs.org/jest-validate/-/jest-validate-27.0.2.tgz", - "integrity": "sha512-UgBF6/oVu1ofd1XbaSotXKihi8nZhg0Prm8twQ9uCuAfo59vlxCXMPI/RKmrZEVgi3Nd9dS0I8A0wzWU48pOvg==", + "version": "27.0.6", + "resolved": "https://registry.npmjs.org/jest-validate/-/jest-validate-27.0.6.tgz", + "integrity": "sha512-yhZZOaMH3Zg6DC83n60pLmdU1DQE46DW+KLozPiPbSbPhlXXaiUTDlhHQhHFpaqIFRrInko1FHXjTRpjWRuWfA==", "dev": true, "dependencies": { - "@jest/types": "^27.0.2", + "@jest/types": "^27.0.6", "camelcase": "^6.2.0", "chalk": "^4.0.0", - "jest-get-type": "^27.0.1", + "jest-get-type": "^27.0.6", "leven": "^3.1.0", - "pretty-format": "^27.0.2" + "pretty-format": "^27.0.6" }, "engines": { "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" @@ -11614,17 +11374,17 @@ } }, "node_modules/jest-watcher": { - "version": "27.0.2", - "resolved": "https://registry.npmjs.org/jest-watcher/-/jest-watcher-27.0.2.tgz", - "integrity": "sha512-8nuf0PGuTxWj/Ytfw5fyvNn/R80iXY8QhIT0ofyImUvdnoaBdT6kob0GmhXR+wO+ALYVnh8bQxN4Tjfez0JgkA==", + "version": "27.0.6", + "resolved": "https://registry.npmjs.org/jest-watcher/-/jest-watcher-27.0.6.tgz", + "integrity": "sha512-/jIoKBhAP00/iMGnTwUBLgvxkn7vsOweDrOTSPzc7X9uOyUtJIDthQBTI1EXz90bdkrxorUZVhJwiB69gcHtYQ==", "dev": true, "dependencies": { - "@jest/test-result": "^27.0.2", - "@jest/types": "^27.0.2", + "@jest/test-result": "^27.0.6", + "@jest/types": "^27.0.6", "@types/node": "*", "ansi-escapes": "^4.2.1", "chalk": "^4.0.0", - "jest-util": "^27.0.2", + "jest-util": "^27.0.6", "string-length": "^4.0.1" }, "engines": { @@ -11702,9 +11462,9 @@ } }, "node_modules/jest-worker": { - "version": "27.0.2", - "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-27.0.2.tgz", - "integrity": "sha512-EoBdilOTTyOgmHXtw/cPc+ZrCA0KJMrkXzkrPGNwLmnvvlN1nj7MPrxpT7m+otSv2e1TLaVffzDnE/LB14zJMg==", + "version": "27.0.6", + "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-27.0.6.tgz", + "integrity": "sha512-qupxcj/dRuA3xHPMUd40gr2EaAurFbkwzOh7wfPaeE9id7hyjURRQoqNfHifHK3XjJU6YJJUQKILGUnwGPEOCA==", "dev": true, "dependencies": { "@types/node": "*", @@ -11812,9 +11572,9 @@ } }, "node_modules/jsdom/node_modules/acorn": { - "version": "8.4.0", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.4.0.tgz", - "integrity": "sha512-ULr0LDaEqQrMFGyQ3bhJkLsbtrQ8QibAseGZeaSUiT/6zb9IvIkomWHJIvgvwad+hinRAgsI51JcWk2yvwyL+w==", + "version": "8.4.1", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.4.1.tgz", + "integrity": "sha512-asabaBSkEKosYKMITunzX177CXxQ4Q8BSSzMTKD+FefUhipQC70gfW5SiUDhYQ3vk8G+81HqQk7Fv9OXwwn9KA==", "dev": true, "bin": { "acorn": "bin/acorn" @@ -11977,22 +11737,22 @@ "dev": true }, "node_modules/lint-staged": { - "version": "10.5.4", - "resolved": "https://registry.npmjs.org/lint-staged/-/lint-staged-10.5.4.tgz", - "integrity": "sha512-EechC3DdFic/TdOPgj/RB3FicqE6932LTHCUm0Y2fsD9KGlLB+RwJl2q1IYBIvEsKzDOgn0D4gll+YxG5RsrKg==", + "version": "11.0.0", + "resolved": "https://registry.npmjs.org/lint-staged/-/lint-staged-11.0.0.tgz", + "integrity": "sha512-3rsRIoyaE8IphSUtO1RVTFl1e0SLBtxxUOPBtHxQgBHS5/i6nqvjcUfNioMa4BU9yGnPzbO+xkfLtXtxBpCzjw==", "dev": true, "dependencies": { - "chalk": "^4.1.0", + "chalk": "^4.1.1", "cli-truncate": "^2.1.0", - "commander": "^6.2.0", + "commander": "^7.2.0", "cosmiconfig": "^7.0.0", - "debug": "^4.2.0", + "debug": "^4.3.1", "dedent": "^0.7.0", "enquirer": "^2.3.6", - "execa": "^4.1.0", - "listr2": "^3.2.2", - "log-symbols": "^4.0.0", - "micromatch": "^4.0.2", + "execa": "^5.0.0", + "listr2": "^3.8.2", + "log-symbols": "^4.1.0", + "micromatch": "^4.0.4", "normalize-path": "^3.0.0", "please-upgrade-node": "^3.2.0", "string-argv": "0.3.1", @@ -12067,12 +11827,12 @@ "dev": true }, "node_modules/lint-staged/node_modules/commander": { - "version": "6.2.1", - "resolved": "https://registry.npmjs.org/commander/-/commander-6.2.1.tgz", - "integrity": "sha512-U7VdrJFnJgo4xjrHpTzu0yrHPGImdsmD95ZlgYSEajAn2JKzDhDTPG9kBTefmObL2w/ngeZnilk+OV9CG3d7UA==", + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-7.2.0.tgz", + "integrity": "sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw==", "dev": true, "engines": { - "node": ">= 6" + "node": ">= 10" } }, "node_modules/lint-staged/node_modules/fill-range": { @@ -12143,15 +11903,13 @@ } }, "node_modules/listr2": { - "version": "3.8.1", - "resolved": "https://registry.npmjs.org/listr2/-/listr2-3.8.1.tgz", - "integrity": "sha512-75vMLokDIEoZIXp3FE3P7U4yi7BRroZb7Az9+XBq+wGGnvq70QPT+BX41aSrROUMLuVan9l3aAjdeXWgaFyFEw==", + "version": "3.10.0", + "resolved": "https://registry.npmjs.org/listr2/-/listr2-3.10.0.tgz", + "integrity": "sha512-eP40ZHihu70sSmqFNbNy2NL1YwImmlMmPh9WO5sLmPDleurMHt3n+SwEWNu2kzKScexZnkyFtc1VI0z/TGlmpw==", "dev": true, "dependencies": { - "chalk": "^4.1.1", "cli-truncate": "^2.1.0", - "figures": "^3.2.0", - "indent-string": "^4.0.0", + "colorette": "^1.2.2", "log-update": "^4.0.0", "p-map": "^4.0.0", "rxjs": "^6.6.7", @@ -12165,76 +11923,6 @@ "enquirer": ">= 2.3.0 < 3" } }, - "node_modules/listr2/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/listr2/node_modules/chalk": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.1.tgz", - "integrity": "sha512-diHzdDKxcU+bAsUboHLPEDQiw0qEe0qd7SYUn3HgcFlWgbDcfLGswOHYeGrHKzG9z6UYf01d9VFMfZxPM1xZSg==", - "dev": true, - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" - } - }, - "node_modules/listr2/node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/listr2/node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true - }, - "node_modules/listr2/node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/listr2/node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dev": true, - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, "node_modules/load-json-file": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-4.0.0.tgz", @@ -12348,12 +12036,6 @@ "integrity": "sha1-nMtOUF1Ia5FlE0V3KIWi3yf9AXw=", "dev": true }, - "node_modules/lodash.flatten": { - "version": "4.4.0", - "resolved": "https://registry.npmjs.org/lodash.flatten/-/lodash.flatten-4.4.0.tgz", - "integrity": "sha1-8xwiIlqWMtK7+OSt2+8kCqdlph8=", - "dev": true - }, "node_modules/lodash.ismatch": { "version": "4.4.0", "resolved": "https://registry.npmjs.org/lodash.ismatch/-/lodash.ismatch-4.4.0.tgz", @@ -12996,21 +12678,21 @@ } }, "node_modules/mime-db": { - "version": "1.47.0", - "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.47.0.tgz", - "integrity": "sha512-QBmA/G2y+IfeS4oktet3qRZ+P5kPhCKRXxXnQEudYqUaEioAU1/Lq2us3D/t1Jfo4hE9REQPrbB7K5sOczJVIw==", + "version": "1.48.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.48.0.tgz", + "integrity": "sha512-FM3QwxV+TnZYQ2aRqhlKBMHxk10lTbMt3bBkMAp54ddrNeVSfcQYOOKuGuy3Ddrm38I04If834fOUSq1yzslJQ==", "dev": true, "engines": { "node": ">= 0.6" } }, "node_modules/mime-types": { - "version": "2.1.30", - "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.30.tgz", - "integrity": "sha512-crmjA4bLtR8m9qLpHvgxSChT+XoSlZi8J4n/aIdn3z92e/U47Z0V/yl+Wh9W046GgFVAmoNR/fmdbZYcSSIUeg==", + "version": "2.1.31", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.31.tgz", + "integrity": "sha512-XGZnNzm3QvgKxa8dpzyhFTHmpP3l5YNusmne07VUOXxou9CqUqYa/HBy124RqtVh/O2pECas/MOcsDgpilPOPg==", "dev": true, "dependencies": { - "mime-db": "1.47.0" + "mime-db": "1.48.0" }, "engines": { "node": ">= 0.6" @@ -13284,9 +12966,9 @@ } }, "node_modules/node-releases": { - "version": "1.1.71", - "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-1.1.71.tgz", - "integrity": "sha512-zR6HoT6LrLCRBwukmrVbHv0EpEQjksO6GmFcZQQuCAy139BEsoVKPYnf3jongYW83fAa1torLGYwxxky/p28sg==", + "version": "1.1.73", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-1.1.73.tgz", + "integrity": "sha512-uW7fodD6pyW2FZNZnp/Z3hvWKeEW1Y8R1+1CnErE8cXFXzl5blBOoVB41CvMer6P6Q0S5FXDwcHgFd1Wj0U9zg==", "dev": true }, "node_modules/normalize-package-data": { @@ -13550,9 +13232,9 @@ } }, "node_modules/object-inspect": { - "version": "1.10.2", - "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.10.2.tgz", - "integrity": "sha512-gz58rdPpadwztRrPjZE9DZLOABUpTGdcANUgOwBFO1C+HZZhePoP83M65WGDmbpwFYJSWqavbl4SgDn4k8RYTA==", + "version": "1.10.3", + "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.10.3.tgz", + "integrity": "sha512-e5mCJlSH7poANfC8z8S9s9S2IN5/4Zb3aZ33f5s8YqoazCFzNLloLU8r5VCG+G7WoqLvAAZoVMcy3tp/3X0Plw==", "dev": true, "funding": { "url": "https://github.com/sponsors/ljharb" @@ -13626,15 +13308,14 @@ } }, "node_modules/object.values": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/object.values/-/object.values-1.1.3.tgz", - "integrity": "sha512-nkF6PfDB9alkOUxpf1HNm/QlkeW3SReqL5WXeBLpEJJnlPSvRaDQpW3gQTksTN3fgJX4hL42RzKyOin6ff3tyw==", + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/object.values/-/object.values-1.1.4.tgz", + "integrity": "sha512-TnGo7j4XSnKQoK3MfvkzqKCi0nVe/D9I9IjwTNYdb/fxYHpjrluHVOgw0AF6jrRFGMPHdfuidR09tIDiIvnaSg==", "dev": true, "dependencies": { "call-bind": "^1.0.2", "define-properties": "^1.1.3", - "es-abstract": "^1.18.0-next.2", - "has": "^1.0.3" + "es-abstract": "^1.18.2" }, "engines": { "node": ">= 0.4" @@ -13937,9 +13618,9 @@ } }, "node_modules/path-parse": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.6.tgz", - "integrity": "sha512-GSmOT2EbHrINBf9SR7CDELwlJ8AENk3Qn7OikK4nFYAu3Ote2+JYNVvkpAEQm3/TLNEJFD/xZJjzyxg3KBWOzw==", + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", + "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==", "dev": true }, "node_modules/path-to-regexp": { @@ -13958,9 +13639,9 @@ } }, "node_modules/picomatch": { - "version": "2.2.3", - "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.2.3.tgz", - "integrity": "sha512-KpELjfwcCDUb9PeigTs2mBJzXUPzAuP2oPcA989He8Rte0+YUAjw1JVedDhuTKPkHjSYzMN3npC9luThGYEKdg==", + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.0.tgz", + "integrity": "sha512-lY1Q/PiJGC2zOv/z391WOTD+Z02bCgsFfvxoXXf6h7kv9o+WmsmzYqrAwY63sNgOxE4xEdq0WyUnXfKeBrSvYw==", "dev": true, "engines": { "node": ">=8.6" @@ -14235,9 +13916,9 @@ } }, "node_modules/postcss": { - "version": "8.3.0", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.3.0.tgz", - "integrity": "sha512-+ogXpdAjWGa+fdYY5BQ96V/6tAo+TdSSIMP5huJBIygdWwKtVoB5JWZ7yUd4xZ8r+8Kvvx4nyg/PQ071H4UtcQ==", + "version": "8.3.5", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.3.5.tgz", + "integrity": "sha512-NxTuJocUhYGsMiMFHDUkmjSKT3EdH4/WbGF6GCi1NDGk+vbcUTun4fpbOqaPtD8IIsztA2ilZm2DhYCuyN58gA==", "dev": true, "dependencies": { "colorette": "^1.2.2", @@ -14312,9 +13993,9 @@ } }, "node_modules/postcss-selector-parser": { - "version": "6.0.5", - "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.0.5.tgz", - "integrity": "sha512-aFYPoYmXbZ1V6HZaSvat08M97A8HqO6Pjz+PiNpw/DhuRrC72XWAdp3hL6wusDCN31sSmcZyMGa2hZEuX+Xfhg==", + "version": "6.0.6", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.0.6.tgz", + "integrity": "sha512-9LXrvaaX3+mcv5xkg5kFwqSzSH1JIObIx51PrndZwlmznwXRfxMddDvo9gve3gVR8ZTKgoFDdWkbRFmEhT4PMg==", "dev": true, "dependencies": { "cssesc": "^3.0.0", @@ -14340,9 +14021,9 @@ } }, "node_modules/prettier": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/prettier/-/prettier-2.3.1.tgz", - "integrity": "sha512-p+vNbgpLjif/+D+DwAZAbndtRrR0md0MwfmOVN9N+2RgyACMT+7tfaRnT+WDPkqnuVwleyuBIG2XBxKDme3hPA==", + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/prettier/-/prettier-2.3.2.tgz", + "integrity": "sha512-lnJzDfJ66zkMy58OL5/NY5zp70S7Nz6KqcKkXYzn2tMVrNxvbqaBpg7H3qHaLxCJ5lNMsGuM8+ohS7cZrthdLQ==", "dev": true, "bin": { "prettier": "bin-prettier.js" @@ -14352,12 +14033,12 @@ } }, "node_modules/pretty-format": { - "version": "27.0.2", - "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-27.0.2.tgz", - "integrity": "sha512-mXKbbBPnYTG7Yra9qFBtqj+IXcsvxsvOBco3QHxtxTl+hHKq6QdzMZ+q0CtL4ORHZgwGImRr2XZUX2EWzORxig==", + "version": "27.0.6", + "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-27.0.6.tgz", + "integrity": "sha512-8tGD7gBIENgzqA+UBzObyWqQ5B778VIFZA/S66cclyd5YkFLYs2Js7gxDKf0MXtTc9zcS7t1xhdfcElJ3YIvkQ==", "dev": true, "dependencies": { - "@jest/types": "^27.0.2", + "@jest/types": "^27.0.6", "ansi-regex": "^5.0.0", "ansi-styles": "^5.0.0", "react-is": "^17.0.1" @@ -14420,12 +14101,12 @@ } }, "node_modules/proxy-addr": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.6.tgz", - "integrity": "sha512-dh/frvCBVmSsDYzw6n926jv974gddhkFPfiN8hPOi30Wax25QZyZEGveluCgliBnqmuM+UJmBErbAUFIoDbjOw==", + "version": "2.0.7", + "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.7.tgz", + "integrity": "sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg==", "dev": true, "dependencies": { - "forwarded": "~0.1.2", + "forwarded": "0.2.0", "ipaddr.js": "1.9.1" }, "engines": { @@ -14472,10 +14153,20 @@ "teleport": ">=0.2.0" } }, + "node_modules/qs": { + "version": "6.7.0", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.7.0.tgz", + "integrity": "sha512-VCdBRNFTX1fyE7Nb6FYoURo/SPe62QCaAyzJvUjwRaIsc+NePBEniHlvxFmmX56+HZphIGtV0XeCirBtpDrTyQ==", + "dev": true, + "engines": { + "node": ">=0.6" + } + }, "node_modules/querystring": { "version": "0.2.0", "resolved": "https://registry.npmjs.org/querystring/-/querystring-0.2.0.tgz", "integrity": "sha1-sgmEkgO7Jd+CDadW50cAWHhSFiA=", + "deprecated": "The", "dev": true, "engines": { "node": ">=0.4.x" @@ -14848,9 +14539,9 @@ } }, "node_modules/regexpp": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/regexpp/-/regexpp-3.1.0.tgz", - "integrity": "sha512-ZOIzd8yVsQQA7j8GCSlPGXwg5PfmA1mrq0JP4nGhh54LaKN3xdai/vHUDu74pKwV8OxseMS65u2NImosQcSD0Q==", + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/regexpp/-/regexpp-3.2.0.tgz", + "integrity": "sha512-pq2bWo9mVD43nbts2wGv17XLiNLya+GklZ8kaDLV2Z08gDCsGpnKn9BFMepvWuHCbyVvY7J5o5+BVvoQbmlJLg==", "dev": true, "engines": { "node": ">=8" @@ -15185,9 +14876,9 @@ "dev": true }, "node_modules/selfsigned": { - "version": "1.10.8", - "resolved": "https://registry.npmjs.org/selfsigned/-/selfsigned-1.10.8.tgz", - "integrity": "sha512-2P4PtieJeEwVgTU9QEcwIRDQ/mXJLX8/+I3ur+Pg16nS8oNbrGxEso9NyYWy8NAmXiNl4dlAp5MwoNeCWzON4w==", + "version": "1.10.11", + "resolved": "https://registry.npmjs.org/selfsigned/-/selfsigned-1.10.11.tgz", + "integrity": "sha512-aVmbPOfViZqOZPgRBT0+3u4yZFHpmnIghLMlAcb5/xhp5ZtB/RVnKhz5vl2M32CLXAqR4kha9zfhNg0Lf/sxKA==", "dev": true, "dependencies": { "node-forge": "^0.10.0" @@ -15662,19 +15353,11 @@ "ms": "^2.1.1" } }, - "node_modules/sockjs/node_modules/uuid": { - "version": "3.4.0", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.4.0.tgz", - "integrity": "sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A==", - "dev": true, - "bin": { - "uuid": "bin/uuid" - } - }, "node_modules/source-list-map": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/source-list-map/-/source-list-map-2.0.1.tgz", - "integrity": "sha512-qnQ7gVMxGNxsiL4lEuJwe/To8UnK7fAnmbGEEH8RpLouuKbeEm0lhbQVFIrNSuB+G7tVrAlVsZgETT5nljf+Iw==" + "integrity": "sha512-qnQ7gVMxGNxsiL4lEuJwe/To8UnK7fAnmbGEEH8RpLouuKbeEm0lhbQVFIrNSuB+G7tVrAlVsZgETT5nljf+Iw==", + "dev": true }, "node_modules/source-map": { "version": "0.5.7", @@ -15785,9 +15468,9 @@ } }, "node_modules/spdx-license-ids": { - "version": "3.0.7", - "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.7.tgz", - "integrity": "sha512-U+MTEOO0AiDzxwFvoa4JVnMV6mZlJKk2sBLt90s7G0Gd0Mlknc7kxEn3nuDPNZRta7O2uy8oLcZLVT+4sqNZHQ==", + "version": "3.0.9", + "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.9.tgz", + "integrity": "sha512-Ki212dKK4ogX+xDo4CtOZBVIwhsKBEfsEEcwmJfLQzirgc2jIWdzg40Unxz/HzEUqM1WFzVlQSMF9kZZ2HboLQ==", "dev": true }, "node_modules/spdy": { @@ -15943,9 +15626,9 @@ } }, "node_modules/standard-version": { - "version": "9.2.0", - "resolved": "https://registry.npmjs.org/standard-version/-/standard-version-9.2.0.tgz", - "integrity": "sha512-utJcqjk/wR4sePSwDoRcc5CzJ6S+kec5Hd0+1TJI+j1TRYuuptweAnEUdkkjGf2vYoGab2ezefyVtW065HZ1Uw==", + "version": "9.3.0", + "resolved": "https://registry.npmjs.org/standard-version/-/standard-version-9.3.0.tgz", + "integrity": "sha512-cYxxKXhYfI3S9+CA84HmrJa9B88H56V5FQ302iFF2TNwJukJCNoU8FgWt+11YtwKFXRkQQFpepC2QOF7aDq2Ow==", "dev": true, "dependencies": { "chalk": "^2.4.2", @@ -15971,6 +15654,20 @@ "node": ">=10" } }, + "node_modules/standard-version/node_modules/conventional-changelog-conventionalcommits": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/conventional-changelog-conventionalcommits/-/conventional-changelog-conventionalcommits-4.5.0.tgz", + "integrity": "sha512-buge9xDvjjOxJlyxUnar/+6i/aVEVGA7EEh4OafBCXPlLUQPGbRUBhBUveWRxzvR8TEjhKEP4BdepnpG2FSZXw==", + "dev": true, + "dependencies": { + "compare-func": "^2.0.0", + "lodash": "^4.17.15", + "q": "^1.5.1" + }, + "engines": { + "node": ">=10" + } + }, "node_modules/standard-version/node_modules/semver": { "version": "7.3.5", "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.5.tgz", @@ -16329,14 +16026,13 @@ "dev": true }, "node_modules/table": { - "version": "6.6.0", - "resolved": "https://registry.npmjs.org/table/-/table-6.6.0.tgz", - "integrity": "sha512-iZMtp5tUvcnAdtHpZTWLPF0M7AgiQsURR2DwmxnJwSy8I3+cY+ozzVvYha3BOLG2TB+L0CqjIz+91htuj6yCXg==", + "version": "6.7.1", + "resolved": "https://registry.npmjs.org/table/-/table-6.7.1.tgz", + "integrity": "sha512-ZGum47Yi6KOOFDE8m223td53ath2enHcYLgOCjGr5ngu8bdIARQk6mN/wRMv4yMRcHnCSnHbCEha4sobQx5yWg==", "dev": true, "dependencies": { "ajv": "^8.0.1", "lodash.clonedeep": "^4.5.0", - "lodash.flatten": "^4.4.0", "lodash.truncate": "^4.4.2", "slice-ansi": "^4.0.0", "string-width": "^4.2.0", @@ -16347,9 +16043,9 @@ } }, "node_modules/table/node_modules/ajv": { - "version": "8.2.0", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.2.0.tgz", - "integrity": "sha512-WSNGFuyWd//XO8n/m/EaOlNLtO0yL8EXT/74LqT4khdhpZjP7lkj/kT5uwRmGitKEVp/Oj7ZUHeGfPtgHhQ5CA==", + "version": "8.6.0", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.6.0.tgz", + "integrity": "sha512-cnUG4NSBiM4YFBxgZIj/In3/6KX+rQ2l2YPRVcvAMQGWEPKuXoPIhxzwqh31jA3IPbI4qEOp/5ILI4ynioXsGQ==", "dev": true, "dependencies": { "fast-deep-equal": "^3.1.1", @@ -16492,9 +16188,9 @@ } }, "node_modules/terser": { - "version": "5.7.0", - "resolved": "https://registry.npmjs.org/terser/-/terser-5.7.0.tgz", - "integrity": "sha512-HP5/9hp2UaZt5fYkuhNBR8YyRcT8juw8+uFbAme53iN9hblvKnLUTKkmwJG6ocWpIKf8UK4DoeWG4ty0J6S6/g==", + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/terser/-/terser-5.7.1.tgz", + "integrity": "sha512-b3e+d5JbHAe/JSjwsC3Zn55wsBIM7AsHLjKxT31kGCldgbpFePaFo+PiddtO6uwRZWRw7sPXmAN8dTW61xmnSg==", "dev": true, "dependencies": { "commander": "^2.20.0", @@ -16751,9 +16447,9 @@ } }, "node_modules/tr46": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/tr46/-/tr46-2.0.2.tgz", - "integrity": "sha512-3n1qG+/5kg+jrbTzwAykB5yRYtQCTqOGKq5U5PE3b0a1/mzo6snDhjGS0zJVJunO0NrT3Dg1MLy5TjWP/UJppg==", + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/tr46/-/tr46-2.1.0.tgz", + "integrity": "sha512-15Ih7phfcdP5YxqiB+iDtLoaTz4Nd35+IiAv0kQ5FNKHzXgdWqPoTIqEDDJmXceQt4JZk6lVPT8lnDlPpGDppw==", "dev": true, "dependencies": { "punycode": "^2.1.1" @@ -16763,9 +16459,9 @@ } }, "node_modules/trim-newlines": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/trim-newlines/-/trim-newlines-3.0.0.tgz", - "integrity": "sha512-C4+gOpvmxaSMKuEf9Qc134F1ZuOHVXKRbtEflf4NTtuuJDEIJ9p5PXsalL8SkeRw+qit1Mo+yuvMPAKwWg/1hA==", + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/trim-newlines/-/trim-newlines-3.0.1.tgz", + "integrity": "sha512-c1PTsA3tYrIsLGkJkzHF+w9F2EyxfXGo4UyJc4pFL++FMjnq0HJS69T3M7d//gKrFKwy429bouPescbjecU+Zw==", "dev": true, "engines": { "node": ">=8" @@ -16881,9 +16577,9 @@ } }, "node_modules/uglify-js": { - "version": "3.13.4", - "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-3.13.4.tgz", - "integrity": "sha512-kv7fCkIXyQIilD5/yQy8O+uagsYIOt5cZvs890W40/e/rvjMSzJw81o9Bg0tkURxzZBROtDQhW2LFjOGoK3RZw==", + "version": "3.13.10", + "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-3.13.10.tgz", + "integrity": "sha512-57H3ACYFXeo1IaZ1w02sfA71wI60MGco/IQFjOqK+WtKoprh7Go2/yvd2HPtoJILO2Or84ncLccI4xoHMTSbGg==", "dev": true, "optional": true, "bin": { @@ -17104,6 +16800,16 @@ "node": ">= 0.4.0" } }, + "node_modules/uuid": { + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.4.0.tgz", + "integrity": "sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A==", + "deprecated": "Please upgrade to version 7 or higher. Older versions may use Math.random() in certain circumstances, which is known to be problematic. See https://v8.dev/blog/math-random for details.", + "dev": true, + "bin": { + "uuid": "bin/uuid" + } + }, "node_modules/v8-compile-cache": { "version": "2.3.0", "resolved": "https://registry.npmjs.org/v8-compile-cache/-/v8-compile-cache-2.3.0.tgz", @@ -17111,9 +16817,9 @@ "dev": true }, "node_modules/v8-to-istanbul": { - "version": "7.1.2", - "resolved": "https://registry.npmjs.org/v8-to-istanbul/-/v8-to-istanbul-7.1.2.tgz", - "integrity": "sha512-TxNb7YEUwkLXCQYeudi6lgQ/SZrzNO4kMdlqVxaZPUIUjCv6iSSypUQX70kNBSERpQ8fk48+d61FXk+tgqcWow==", + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/v8-to-istanbul/-/v8-to-istanbul-8.0.0.tgz", + "integrity": "sha512-LkmXi8UUNxnCC+JlH7/fsfsKr5AU110l+SYGJimWNkWhxbN5EyeOtm1MJ0hhvqMMOhGwBj1Fp70Yv9i+hX0QAg==", "dev": true, "dependencies": { "@types/istanbul-lib-coverage": "^2.0.1", @@ -17121,7 +16827,7 @@ "source-map": "^0.7.3" }, "engines": { - "node": ">=10.10.0" + "node": ">=10.12.0" } }, "node_modules/v8-to-istanbul/node_modules/source-map": { @@ -17214,13 +16920,13 @@ } }, "node_modules/webpack": { - "version": "5.40.0", - "resolved": "https://registry.npmjs.org/webpack/-/webpack-5.40.0.tgz", - "integrity": "sha512-c7f5e/WWrxXWUzQqTBg54vBs5RgcAgpvKE4F4VegVgfo4x660ZxYUF2/hpMkZUnLjgytVTitjeXaN4IPlXCGIw==", + "version": "5.41.1", + "resolved": "https://registry.npmjs.org/webpack/-/webpack-5.41.1.tgz", + "integrity": "sha512-AJZIIsqJ/MVTmegEq9Tlw5mk5EHdGiJbDdz9qP15vmUH+oxI1FdWcL0E9EO8K/zKaRPWqEs7G/OPxq1P61u5Ug==", "dev": true, "dependencies": { "@types/eslint-scope": "^3.7.0", - "@types/estree": "^0.0.47", + "@types/estree": "^0.0.48", "@webassemblyjs/ast": "1.11.0", "@webassemblyjs/wasm-edit": "1.11.0", "@webassemblyjs/wasm-parser": "1.11.0", @@ -17312,50 +17018,6 @@ "node": ">= 10" } }, - "node_modules/webpack-cli/node_modules/execa": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/execa/-/execa-5.0.0.tgz", - "integrity": "sha512-ov6w/2LCiuyO4RLYGdpFGjkcs0wMTgGE8PrkTHikeUy5iJekXyPIKUjifk5CsE0pt7sMCrMZ3YNqoCj6idQOnQ==", - "dev": true, - "dependencies": { - "cross-spawn": "^7.0.3", - "get-stream": "^6.0.0", - "human-signals": "^2.1.0", - "is-stream": "^2.0.0", - "merge-stream": "^2.0.0", - "npm-run-path": "^4.0.1", - "onetime": "^5.1.2", - "signal-exit": "^3.0.3", - "strip-final-newline": "^2.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sindresorhus/execa?sponsor=1" - } - }, - "node_modules/webpack-cli/node_modules/get-stream": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz", - "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==", - "dev": true, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/webpack-cli/node_modules/human-signals": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-2.1.0.tgz", - "integrity": "sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==", - "dev": true, - "engines": { - "node": ">=10.17.0" - } - }, "node_modules/webpack-cli/node_modules/interpret": { "version": "2.2.0", "resolved": "https://registry.npmjs.org/interpret/-/interpret-2.2.0.tgz", @@ -17594,6 +17256,28 @@ "node": ">= 4.0" } }, + "node_modules/webpack-dev-server/node_modules/glob-parent": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-3.1.0.tgz", + "integrity": "sha1-nmr2KZ2NO9K9QEMIMr0RPfkGxa4=", + "dev": true, + "dependencies": { + "is-glob": "^3.1.0", + "path-dirname": "^1.0.0" + } + }, + "node_modules/webpack-dev-server/node_modules/glob-parent/node_modules/is-glob": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-3.1.0.tgz", + "integrity": "sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo=", + "dev": true, + "dependencies": { + "is-extglob": "^2.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/webpack-dev-server/node_modules/globby": { "version": "6.1.0", "resolved": "https://registry.npmjs.org/globby/-/globby-6.1.0.tgz", @@ -17920,19 +17604,10 @@ "node": ">=6" } }, - "node_modules/webpack-log/node_modules/uuid": { - "version": "3.4.0", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.4.0.tgz", - "integrity": "sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A==", - "dev": true, - "bin": { - "uuid": "bin/uuid" - } - }, "node_modules/webpack-merge": { - "version": "5.7.3", - "resolved": "https://registry.npmjs.org/webpack-merge/-/webpack-merge-5.7.3.tgz", - "integrity": "sha512-6/JUQv0ELQ1igjGDzHkXbVDRxkfA57Zw7PfiupdLFJYrgFqY5ZP8xxbpp2lU3EPwYx89ht5Z/aDkD40hFCm5AA==", + "version": "5.8.0", + "resolved": "https://registry.npmjs.org/webpack-merge/-/webpack-merge-5.8.0.tgz", + "integrity": "sha512-/SaI7xY0831XwP6kzuwhKWVKDP9t1QY1h65lAFLbZqMPIuYcD9QAW4u9STIbU9kaJbPBB/geU/gLr1wDjOhQ+Q==", "dev": true, "dependencies": { "clone-deep": "^4.0.1", @@ -17943,18 +17618,23 @@ } }, "node_modules/webpack-sources": { - "version": "1.4.3", - "resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-1.4.3.tgz", - "integrity": "sha512-lgTS3Xhv1lCOKo7SA5TjKXMjpSM4sBjNV5+q2bqesbSPs5FjGmU6jjtBSkX9b4qW87vDIsCIlUPOEhbZrMdjeQ==", + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-2.3.0.tgz", + "integrity": "sha512-WyOdtwSvOML1kbgtXbTDnEW0jkJ7hZr/bDByIwszhWd/4XX1A3XMkrbFMsuH4+/MfLlZCUzlAdg4r7jaGKEIgQ==", + "dev": true, "dependencies": { - "source-list-map": "^2.0.0", - "source-map": "~0.6.1" + "source-list-map": "^2.0.1", + "source-map": "^0.6.1" + }, + "engines": { + "node": ">=10.13.0" } }, "node_modules/webpack-sources/node_modules/source-map": { "version": "0.6.1", "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true, "engines": { "node": ">=0.10.0" } @@ -17971,28 +17651,6 @@ "node": ">=0.4.0" } }, - "node_modules/webpack/node_modules/source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/webpack/node_modules/webpack-sources": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-2.3.0.tgz", - "integrity": "sha512-WyOdtwSvOML1kbgtXbTDnEW0jkJ7hZr/bDByIwszhWd/4XX1A3XMkrbFMsuH4+/MfLlZCUzlAdg4r7jaGKEIgQ==", - "dev": true, - "dependencies": { - "source-list-map": "^2.0.1", - "source-map": "^0.6.1" - }, - "engines": { - "node": ">=10.13.0" - } - }, "node_modules/websocket-driver": { "version": "0.7.4", "resolved": "https://registry.npmjs.org/websocket-driver/-/websocket-driver-0.7.4.tgz", @@ -18032,13 +17690,13 @@ "dev": true }, "node_modules/whatwg-url": { - "version": "8.5.0", - "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-8.5.0.tgz", - "integrity": "sha512-fy+R77xWv0AiqfLl4nuGUlQ3/6b5uNfQ4WAbGQVMYshCTCCPK9psC1nWh3XHuxGVCtlcDDQPQW1csmmIQo+fwg==", + "version": "8.7.0", + "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-8.7.0.tgz", + "integrity": "sha512-gAojqb/m9Q8a5IV96E3fHJM70AzCkgt4uXYX2O7EmuyOnLrViCQlsEBmF9UQIu3/aeAIp2U17rtbpZWNntQqdg==", "dev": true, "dependencies": { "lodash": "^4.7.0", - "tr46": "^2.0.2", + "tr46": "^2.1.0", "webidl-conversions": "^6.1.0" }, "engines": { @@ -18218,9 +17876,9 @@ } }, "node_modules/ws": { - "version": "7.4.6", - "resolved": "https://registry.npmjs.org/ws/-/ws-7.4.6.tgz", - "integrity": "sha512-YmhHDO4MzaDLB+M9ym/mDA5z0naX8j7SIlT8f8z+I0VtzsRbekxEutHSme7NPS2qE8StCYQNUnfWdXta/Yu85A==", + "version": "7.5.1", + "resolved": "https://registry.npmjs.org/ws/-/ws-7.5.1.tgz", + "integrity": "sha512-2c6faOUH/nhoQN6abwMloF7Iyl0ZS2E9HGtsiLrWn0zOOMWlhtDmdf/uihDt6jnuCxgtwGBNy6Onsoy2s2O2Ow==", "dev": true, "engines": { "node": ">=8.3.0" @@ -18302,9 +17960,9 @@ } }, "node_modules/yargs-parser": { - "version": "20.2.7", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.7.tgz", - "integrity": "sha512-FiNkvbeHzB/syOjIUxFDCnhSfzAL8R5vs40MgLFBorXACCOAEaWu0gRZl14vG8MR9AOJIZbmkjhusqBYZ3HTHw==", + "version": "20.2.9", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.9.tgz", + "integrity": "sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==", "dev": true, "engines": { "node": ">=10" @@ -18365,9 +18023,9 @@ } }, "@babel/compat-data": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.14.5.tgz", - "integrity": "sha512-kixrYn4JwfAVPa0f2yfzc2AWti6WRRyO3XjWW5PJAvtE11qhSayrrcrEnee05KAtNaPC+EwehE8Qt1UedEVB8w==", + "version": "7.14.7", + "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.14.7.tgz", + "integrity": "sha512-nS6dZaISCXJ3+518CWiBfEr//gHyMO02uDxBkXTKZDN5POruCnOZ1N4YBRZDCabwF8nZMWBpRxIicmXtBs+fvw==", "dev": true }, "@babel/core": { @@ -18514,9 +18172,9 @@ } }, "@babel/helper-member-expression-to-functions": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.14.5.tgz", - "integrity": "sha512-UxUeEYPrqH1Q/k0yRku1JE7dyfyehNwT6SVkMHvYvPDv4+uu627VXBckVj891BO8ruKBkiDoGnZf4qPDD8abDQ==", + "version": "7.14.7", + "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.14.7.tgz", + "integrity": "sha512-TMUt4xKxJn6ccjcOW7c4hlwyJArizskAhoSTOCkA0uZ+KghIaci0Qg9R043kUMWI9mtQfgny+NQ5QATnZ+paaA==", "dev": true, "requires": { "@babel/types": "^7.14.5" @@ -18659,9 +18317,9 @@ } }, "@babel/parser": { - "version": "7.14.6", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.14.6.tgz", - "integrity": "sha512-oG0ej7efjEXxb4UgE+klVx+3j4MVo+A2vCzm7OUN4CLo6WhQ+vSOD2yJ8m7B+DghObxtLxt3EfgMWpq+AsWehQ==", + "version": "7.14.7", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.14.7.tgz", + "integrity": "sha512-X67Z5y+VBJuHB/RjwECp8kSl5uYi0BvRbNeWqkaJCVh+LiTPl19WBUfG627psSgp9rSf6ojuXghQM3ha6qHHdA==", "dev": true }, "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": { @@ -18676,9 +18334,9 @@ } }, "@babel/plugin-proposal-async-generator-functions": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.14.5.tgz", - "integrity": "sha512-tbD/CG3l43FIXxmu4a7RBe4zH7MLJ+S/lFowPFO7HetS2hyOZ/0nnnznegDuzFzfkyQYTxqdTH/hKmuBngaDAA==", + "version": "7.14.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.14.7.tgz", + "integrity": "sha512-RK8Wj7lXLY3bqei69/cc25gwS5puEc3dknoFPFbqfy3XxYQBQFvu4ioWpafMBAB+L9NyptQK4nMOa5Xz16og8Q==", "dev": true, "requires": { "@babel/helper-plugin-utils": "^7.14.5", @@ -18768,12 +18426,12 @@ } }, "@babel/plugin-proposal-object-rest-spread": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.14.5.tgz", - "integrity": "sha512-VzMyY6PWNPPT3pxc5hi9LloKNr4SSrVCg7Yr6aZpW4Ym07r7KqSU/QXYwjXLVxqwSv0t/XSXkFoKBPUkZ8vb2A==", + "version": "7.14.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.14.7.tgz", + "integrity": "sha512-082hsZz+sVabfmDWo1Oct1u1AgbKbUAyVgmX4otIc7bdsRgHBXwTwb3DpDmD4Eyyx6DNiuz5UAATT655k+kL5g==", "dev": true, "requires": { - "@babel/compat-data": "^7.14.5", + "@babel/compat-data": "^7.14.7", "@babel/helper-compilation-targets": "^7.14.5", "@babel/helper-plugin-utils": "^7.14.5", "@babel/plugin-syntax-object-rest-spread": "^7.8.3", @@ -19049,9 +18707,9 @@ } }, "@babel/plugin-transform-destructuring": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.14.5.tgz", - "integrity": "sha512-wU9tYisEbRMxqDezKUqC9GleLycCRoUsai9ddlsq54r8QRLaeEhc+d+9DqCG+kV9W2GgQjTZESPTpn5bAFMDww==", + "version": "7.14.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.14.7.tgz", + "integrity": "sha512-0mDE99nK+kVh3xlc5vKwB6wnP9ecuSj+zQCa/n0voENtP/zymdT4HH6QEb65wjjcbqr1Jb/7z9Qp7TF5FtwYGw==", "dev": true, "requires": { "@babel/helper-plugin-utils": "^7.14.5" @@ -19170,9 +18828,9 @@ } }, "@babel/plugin-transform-named-capturing-groups-regex": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.14.5.tgz", - "integrity": "sha512-+Xe5+6MWFo311U8SchgeX5c1+lJM+eZDBZgD+tvXu9VVQPXwwVzeManMMjYX6xw2HczngfOSZjoFYKwdeB/Jvw==", + "version": "7.14.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.14.7.tgz", + "integrity": "sha512-DTNOTaS7TkW97xsDMrp7nycUVh6sn/eq22VaxWfEdzuEbRsiaOU0pqU7DlyUGHVsbQbSghvjKRpEl+nUCKGQSg==", "dev": true, "requires": { "@babel/helper-create-regexp-features-plugin": "^7.14.5" @@ -19299,17 +18957,17 @@ } }, "@babel/preset-env": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.14.5.tgz", - "integrity": "sha512-ci6TsS0bjrdPpWGnQ+m4f+JSSzDKlckqKIJJt9UZ/+g7Zz9k0N8lYU8IeLg/01o2h8LyNZDMLGgRLDTxpudLsA==", + "version": "7.14.7", + "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.14.7.tgz", + "integrity": "sha512-itOGqCKLsSUl0Y+1nSfhbuuOlTs0MJk2Iv7iSH+XT/mR8U1zRLO7NjWlYXB47yhK4J/7j+HYty/EhFZDYKa/VA==", "dev": true, "requires": { - "@babel/compat-data": "^7.14.5", + "@babel/compat-data": "^7.14.7", "@babel/helper-compilation-targets": "^7.14.5", "@babel/helper-plugin-utils": "^7.14.5", "@babel/helper-validator-option": "^7.14.5", "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": "^7.14.5", - "@babel/plugin-proposal-async-generator-functions": "^7.14.5", + "@babel/plugin-proposal-async-generator-functions": "^7.14.7", "@babel/plugin-proposal-class-properties": "^7.14.5", "@babel/plugin-proposal-class-static-block": "^7.14.5", "@babel/plugin-proposal-dynamic-import": "^7.14.5", @@ -19318,7 +18976,7 @@ "@babel/plugin-proposal-logical-assignment-operators": "^7.14.5", "@babel/plugin-proposal-nullish-coalescing-operator": "^7.14.5", "@babel/plugin-proposal-numeric-separator": "^7.14.5", - "@babel/plugin-proposal-object-rest-spread": "^7.14.5", + "@babel/plugin-proposal-object-rest-spread": "^7.14.7", "@babel/plugin-proposal-optional-catch-binding": "^7.14.5", "@babel/plugin-proposal-optional-chaining": "^7.14.5", "@babel/plugin-proposal-private-methods": "^7.14.5", @@ -19344,7 +19002,7 @@ "@babel/plugin-transform-block-scoping": "^7.14.5", "@babel/plugin-transform-classes": "^7.14.5", "@babel/plugin-transform-computed-properties": "^7.14.5", - "@babel/plugin-transform-destructuring": "^7.14.5", + "@babel/plugin-transform-destructuring": "^7.14.7", "@babel/plugin-transform-dotall-regex": "^7.14.5", "@babel/plugin-transform-duplicate-keys": "^7.14.5", "@babel/plugin-transform-exponentiation-operator": "^7.14.5", @@ -19356,7 +19014,7 @@ "@babel/plugin-transform-modules-commonjs": "^7.14.5", "@babel/plugin-transform-modules-systemjs": "^7.14.5", "@babel/plugin-transform-modules-umd": "^7.14.5", - "@babel/plugin-transform-named-capturing-groups-regex": "^7.14.5", + "@babel/plugin-transform-named-capturing-groups-regex": "^7.14.7", "@babel/plugin-transform-new-target": "^7.14.5", "@babel/plugin-transform-object-super": "^7.14.5", "@babel/plugin-transform-parameters": "^7.14.5", @@ -19364,7 +19022,7 @@ "@babel/plugin-transform-regenerator": "^7.14.5", "@babel/plugin-transform-reserved-words": "^7.14.5", "@babel/plugin-transform-shorthand-properties": "^7.14.5", - "@babel/plugin-transform-spread": "^7.14.5", + "@babel/plugin-transform-spread": "^7.14.6", "@babel/plugin-transform-sticky-regex": "^7.14.5", "@babel/plugin-transform-template-literals": "^7.14.5", "@babel/plugin-transform-typeof-symbol": "^7.14.5", @@ -19375,7 +19033,7 @@ "babel-plugin-polyfill-corejs2": "^0.2.2", "babel-plugin-polyfill-corejs3": "^0.2.2", "babel-plugin-polyfill-regenerator": "^0.2.2", - "core-js-compat": "^3.14.0", + "core-js-compat": "^3.15.0", "semver": "^6.3.0" } }, @@ -19413,9 +19071,9 @@ } }, "@babel/traverse": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.14.5.tgz", - "integrity": "sha512-G3BiS15vevepdmFqmUc9X+64y0viZYygubAMO8SvBmKARuF6CPSZtH4Ng9vi/lrWlZFGe3FWdXNy835akH8Glg==", + "version": "7.14.7", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.14.7.tgz", + "integrity": "sha512-9vDr5NzHu27wgwejuKL7kIOm4bwEtaPQ4Z6cpCmjSuaRqpH/7xc4qcGEscwMqlkwgcXl6MvqoAjZkQ24uSdIZQ==", "dev": true, "requires": { "@babel/code-frame": "^7.14.5", @@ -19423,7 +19081,7 @@ "@babel/helper-function-name": "^7.14.5", "@babel/helper-hoist-variables": "^7.14.5", "@babel/helper-split-export-declaration": "^7.14.5", - "@babel/parser": "^7.14.5", + "@babel/parser": "^7.14.7", "@babel/types": "^7.14.5", "debug": "^4.1.0", "globals": "^11.1.0" @@ -19776,9 +19434,9 @@ } }, "@discoveryjs/json-ext": { - "version": "0.5.2", - "resolved": "https://registry.npmjs.org/@discoveryjs/json-ext/-/json-ext-0.5.2.tgz", - "integrity": "sha512-HyYEUDeIj5rRQU2Hk5HTB2uHsbRQpF70nvMhVzi+VJR0X+xNEhjPui4/kBf3VeH/wqD28PT4sVOm8qqLjBrSZg==", + "version": "0.5.3", + "resolved": "https://registry.npmjs.org/@discoveryjs/json-ext/-/json-ext-0.5.3.tgz", + "integrity": "sha512-Fxt+AfXgjMoin2maPIYzFZnQjAXjAL0PHscM5pRTtatFqB+vZxAM9tLp2Optnuw3QOQC40jTNeGYFOMvyf7v9g==", "dev": true }, "@eslint/eslintrc": { @@ -19874,16 +19532,16 @@ "dev": true }, "@jest/console": { - "version": "27.0.2", - "resolved": "https://registry.npmjs.org/@jest/console/-/console-27.0.2.tgz", - "integrity": "sha512-/zYigssuHLImGeMAACkjI4VLAiiJznHgAl3xnFT19iWyct2LhrH3KXOjHRmxBGTkiPLZKKAJAgaPpiU9EZ9K+w==", + "version": "27.0.6", + "resolved": "https://registry.npmjs.org/@jest/console/-/console-27.0.6.tgz", + "integrity": "sha512-fMlIBocSHPZ3JxgWiDNW/KPj6s+YRd0hicb33IrmelCcjXo/pXPwvuiKFmZz+XuqI/1u7nbUK10zSsWL/1aegg==", "dev": true, "requires": { - "@jest/types": "^27.0.2", + "@jest/types": "^27.0.6", "@types/node": "*", "chalk": "^4.0.0", - "jest-message-util": "^27.0.2", - "jest-util": "^27.0.2", + "jest-message-util": "^27.0.6", + "jest-util": "^27.0.6", "slash": "^3.0.0" }, "dependencies": { @@ -19945,35 +19603,35 @@ } }, "@jest/core": { - "version": "27.0.4", - "resolved": "https://registry.npmjs.org/@jest/core/-/core-27.0.4.tgz", - "integrity": "sha512-+dsmV8VUs1h/Szb+rEWk8xBM1fp1I///uFy9nk3wXGvRsF2lBp8EVPmtWc+QFRb3MY2b7u2HbkGF1fzoDzQTLA==", + "version": "27.0.6", + "resolved": "https://registry.npmjs.org/@jest/core/-/core-27.0.6.tgz", + "integrity": "sha512-SsYBm3yhqOn5ZLJCtccaBcvD/ccTLCeuDv8U41WJH/V1MW5eKUkeMHT9U+Pw/v1m1AIWlnIW/eM2XzQr0rEmow==", "dev": true, "requires": { - "@jest/console": "^27.0.2", - "@jest/reporters": "^27.0.4", - "@jest/test-result": "^27.0.2", - "@jest/transform": "^27.0.2", - "@jest/types": "^27.0.2", + "@jest/console": "^27.0.6", + "@jest/reporters": "^27.0.6", + "@jest/test-result": "^27.0.6", + "@jest/transform": "^27.0.6", + "@jest/types": "^27.0.6", "@types/node": "*", "ansi-escapes": "^4.2.1", "chalk": "^4.0.0", "emittery": "^0.8.1", "exit": "^0.1.2", "graceful-fs": "^4.2.4", - "jest-changed-files": "^27.0.2", - "jest-config": "^27.0.4", - "jest-haste-map": "^27.0.2", - "jest-message-util": "^27.0.2", - "jest-regex-util": "^27.0.1", - "jest-resolve": "^27.0.4", - "jest-resolve-dependencies": "^27.0.4", - "jest-runner": "^27.0.4", - "jest-runtime": "^27.0.4", - "jest-snapshot": "^27.0.4", - "jest-util": "^27.0.2", - "jest-validate": "^27.0.2", - "jest-watcher": "^27.0.2", + "jest-changed-files": "^27.0.6", + "jest-config": "^27.0.6", + "jest-haste-map": "^27.0.6", + "jest-message-util": "^27.0.6", + "jest-regex-util": "^27.0.6", + "jest-resolve": "^27.0.6", + "jest-resolve-dependencies": "^27.0.6", + "jest-runner": "^27.0.6", + "jest-runtime": "^27.0.6", + "jest-snapshot": "^27.0.6", + "jest-util": "^27.0.6", + "jest-validate": "^27.0.6", + "jest-watcher": "^27.0.6", "micromatch": "^4.0.4", "p-each-series": "^2.1.0", "rimraf": "^3.0.0", @@ -20082,53 +19740,53 @@ } }, "@jest/environment": { - "version": "27.0.3", - "resolved": "https://registry.npmjs.org/@jest/environment/-/environment-27.0.3.tgz", - "integrity": "sha512-pN9m7fbKsop5vc3FOfH8NF7CKKdRbEZzcxfIo1n2TT6ucKWLFq0P6gCJH0GpnQp036++yY9utHOxpeT1WnkWTA==", + "version": "27.0.6", + "resolved": "https://registry.npmjs.org/@jest/environment/-/environment-27.0.6.tgz", + "integrity": "sha512-4XywtdhwZwCpPJ/qfAkqExRsERW+UaoSRStSHCCiQTUpoYdLukj+YJbQSFrZjhlUDRZeNiU9SFH0u7iNimdiIg==", "dev": true, "requires": { - "@jest/fake-timers": "^27.0.3", - "@jest/types": "^27.0.2", + "@jest/fake-timers": "^27.0.6", + "@jest/types": "^27.0.6", "@types/node": "*", - "jest-mock": "^27.0.3" + "jest-mock": "^27.0.6" } }, "@jest/fake-timers": { - "version": "27.0.3", - "resolved": "https://registry.npmjs.org/@jest/fake-timers/-/fake-timers-27.0.3.tgz", - "integrity": "sha512-fQ+UCKRIYKvTCEOyKPnaPnomLATIhMnHC/xPZ7yT1Uldp7yMgMxoYIFidDbpSTgB79+/U+FgfoD30c6wg3IUjA==", + "version": "27.0.6", + "resolved": "https://registry.npmjs.org/@jest/fake-timers/-/fake-timers-27.0.6.tgz", + "integrity": "sha512-sqd+xTWtZ94l3yWDKnRTdvTeZ+A/V7SSKrxsrOKSqdyddb9CeNRF8fbhAU0D7ZJBpTTW2nbp6MftmKJDZfW2LQ==", "dev": true, "requires": { - "@jest/types": "^27.0.2", + "@jest/types": "^27.0.6", "@sinonjs/fake-timers": "^7.0.2", "@types/node": "*", - "jest-message-util": "^27.0.2", - "jest-mock": "^27.0.3", - "jest-util": "^27.0.2" + "jest-message-util": "^27.0.6", + "jest-mock": "^27.0.6", + "jest-util": "^27.0.6" } }, "@jest/globals": { - "version": "27.0.3", - "resolved": "https://registry.npmjs.org/@jest/globals/-/globals-27.0.3.tgz", - "integrity": "sha512-OzsIuf7uf+QalqAGbjClyezzEcLQkdZ+7PejUrZgDs+okdAK8GwRCGcYCirHvhMBBQh60Jr3NlIGbn/KBPQLEQ==", + "version": "27.0.6", + "resolved": "https://registry.npmjs.org/@jest/globals/-/globals-27.0.6.tgz", + "integrity": "sha512-DdTGCP606rh9bjkdQ7VvChV18iS7q0IMJVP1piwTWyWskol4iqcVwthZmoJEf7obE1nc34OpIyoVGPeqLC+ryw==", "dev": true, "requires": { - "@jest/environment": "^27.0.3", - "@jest/types": "^27.0.2", - "expect": "^27.0.2" + "@jest/environment": "^27.0.6", + "@jest/types": "^27.0.6", + "expect": "^27.0.6" } }, "@jest/reporters": { - "version": "27.0.4", - "resolved": "https://registry.npmjs.org/@jest/reporters/-/reporters-27.0.4.tgz", - "integrity": "sha512-Xa90Nm3JnV0xCe4M6A10M9WuN9krb+WFKxV1A98Y4ePCw40n++r7uxFUNU7DT1i9Behj7fjrAIju9oU0t1QtCg==", + "version": "27.0.6", + "resolved": "https://registry.npmjs.org/@jest/reporters/-/reporters-27.0.6.tgz", + "integrity": "sha512-TIkBt09Cb2gptji3yJXb3EE+eVltW6BjO7frO7NEfjI9vSIYoISi5R3aI3KpEDXlB1xwB+97NXIqz84qYeYsfA==", "dev": true, "requires": { "@bcoe/v8-coverage": "^0.2.3", - "@jest/console": "^27.0.2", - "@jest/test-result": "^27.0.2", - "@jest/transform": "^27.0.2", - "@jest/types": "^27.0.2", + "@jest/console": "^27.0.6", + "@jest/test-result": "^27.0.6", + "@jest/transform": "^27.0.6", + "@jest/types": "^27.0.6", "chalk": "^4.0.0", "collect-v8-coverage": "^1.0.0", "exit": "^0.1.2", @@ -20139,15 +19797,15 @@ "istanbul-lib-report": "^3.0.0", "istanbul-lib-source-maps": "^4.0.0", "istanbul-reports": "^3.0.2", - "jest-haste-map": "^27.0.2", - "jest-resolve": "^27.0.4", - "jest-util": "^27.0.2", - "jest-worker": "^27.0.2", + "jest-haste-map": "^27.0.6", + "jest-resolve": "^27.0.6", + "jest-util": "^27.0.6", + "jest-worker": "^27.0.6", "slash": "^3.0.0", "source-map": "^0.6.0", "string-length": "^4.0.1", "terminal-link": "^2.0.0", - "v8-to-istanbul": "^7.0.0" + "v8-to-istanbul": "^8.0.0" }, "dependencies": { "ansi-styles": { @@ -20214,9 +19872,9 @@ } }, "@jest/source-map": { - "version": "27.0.1", - "resolved": "https://registry.npmjs.org/@jest/source-map/-/source-map-27.0.1.tgz", - "integrity": "sha512-yMgkF0f+6WJtDMdDYNavmqvbHtiSpwRN2U/W+6uztgfqgkq/PXdKPqjBTUF1RD/feth4rH5N3NW0T5+wIuln1A==", + "version": "27.0.6", + "resolved": "https://registry.npmjs.org/@jest/source-map/-/source-map-27.0.6.tgz", + "integrity": "sha512-Fek4mi5KQrqmlY07T23JRi0e7Z9bXTOOD86V/uS0EIW4PClvPDqZOyFlLpNJheS6QI0FNX1CgmPjtJ4EA/2M+g==", "dev": true, "requires": { "callsites": "^3.0.0", @@ -20233,45 +19891,45 @@ } }, "@jest/test-result": { - "version": "27.0.2", - "resolved": "https://registry.npmjs.org/@jest/test-result/-/test-result-27.0.2.tgz", - "integrity": "sha512-gcdWwL3yP5VaIadzwQtbZyZMgpmes8ryBAJp70tuxghiA8qL4imJyZex+i+USQH2H4jeLVVszhwntgdQ97fccA==", + "version": "27.0.6", + "resolved": "https://registry.npmjs.org/@jest/test-result/-/test-result-27.0.6.tgz", + "integrity": "sha512-ja/pBOMTufjX4JLEauLxE3LQBPaI2YjGFtXexRAjt1I/MbfNlMx0sytSX3tn5hSLzQsR3Qy2rd0hc1BWojtj9w==", "dev": true, "requires": { - "@jest/console": "^27.0.2", - "@jest/types": "^27.0.2", + "@jest/console": "^27.0.6", + "@jest/types": "^27.0.6", "@types/istanbul-lib-coverage": "^2.0.0", "collect-v8-coverage": "^1.0.0" } }, "@jest/test-sequencer": { - "version": "27.0.4", - "resolved": "https://registry.npmjs.org/@jest/test-sequencer/-/test-sequencer-27.0.4.tgz", - "integrity": "sha512-6UFEVwdmxYdyNffBxVVZxmXEdBE4riSddXYSnFNH0ELFQFk/bvagizim8WfgJTqF4EKd+j1yFxvhb8BMHfOjSQ==", + "version": "27.0.6", + "resolved": "https://registry.npmjs.org/@jest/test-sequencer/-/test-sequencer-27.0.6.tgz", + "integrity": "sha512-bISzNIApazYOlTHDum9PwW22NOyDa6VI31n6JucpjTVM0jD6JDgqEZ9+yn575nDdPF0+4csYDxNNW13NvFQGZA==", "dev": true, "requires": { - "@jest/test-result": "^27.0.2", + "@jest/test-result": "^27.0.6", "graceful-fs": "^4.2.4", - "jest-haste-map": "^27.0.2", - "jest-runtime": "^27.0.4" + "jest-haste-map": "^27.0.6", + "jest-runtime": "^27.0.6" } }, "@jest/transform": { - "version": "27.0.2", - "resolved": "https://registry.npmjs.org/@jest/transform/-/transform-27.0.2.tgz", - "integrity": "sha512-H8sqKlgtDfVog/s9I4GG2XMbi4Ar7RBxjsKQDUhn2XHAi3NG+GoQwWMER+YfantzExbjNqQvqBHzo/G2pfTiPw==", + "version": "27.0.6", + "resolved": "https://registry.npmjs.org/@jest/transform/-/transform-27.0.6.tgz", + "integrity": "sha512-rj5Dw+mtIcntAUnMlW/Vju5mr73u8yg+irnHwzgtgoeI6cCPOvUwQ0D1uQtc/APmWgvRweEb1g05pkUpxH3iCA==", "dev": true, "requires": { "@babel/core": "^7.1.0", - "@jest/types": "^27.0.2", + "@jest/types": "^27.0.6", "babel-plugin-istanbul": "^6.0.0", "chalk": "^4.0.0", "convert-source-map": "^1.4.0", "fast-json-stable-stringify": "^2.0.0", "graceful-fs": "^4.2.4", - "jest-haste-map": "^27.0.2", - "jest-regex-util": "^27.0.1", - "jest-util": "^27.0.2", + "jest-haste-map": "^27.0.6", + "jest-regex-util": "^27.0.6", + "jest-util": "^27.0.6", "micromatch": "^4.0.4", "pirates": "^4.0.1", "slash": "^3.0.0", @@ -20386,9 +20044,9 @@ } }, "@jest/types": { - "version": "27.0.2", - "resolved": "https://registry.npmjs.org/@jest/types/-/types-27.0.2.tgz", - "integrity": "sha512-XpjCtJ/99HB4PmyJ2vgmN7vT+JLP7RW1FBT9RgnMFS4Dt7cvIyBee8O3/j98aUZ34ZpenPZFqmaaObWSeL65dg==", + "version": "27.0.6", + "resolved": "https://registry.npmjs.org/@jest/types/-/types-27.0.6.tgz", + "integrity": "sha512-aSquT1qa9Pik26JK5/3rvnYb4bGtm1VFNesHKmNTwmPIgOrixvhL2ghIvFRNEpzy3gU+rUgjIF/KodbkFAl++g==", "dev": true, "requires": { "@types/istanbul-lib-coverage": "^2.0.0", @@ -20467,43 +20125,31 @@ "path-is-absolute": "^1.0.0", "readdirp": "^2.2.1", "upath": "^1.1.1" - }, - "dependencies": { - "glob-parent": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", - "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", - "dev": true, - "optional": true, - "requires": { - "is-glob": "^4.0.1" - } - } } }, "@nodelib/fs.scandir": { - "version": "2.1.4", - "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.4.tgz", - "integrity": "sha512-33g3pMJk3bg5nXbL/+CY6I2eJDzZAni49PfJnL5fghPTggPvBd/pFNSgJsdAgWptuFu7qq/ERvOYFlhvsLTCKA==", + "version": "2.1.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", + "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", "dev": true, "requires": { - "@nodelib/fs.stat": "2.0.4", + "@nodelib/fs.stat": "2.0.5", "run-parallel": "^1.1.9" } }, "@nodelib/fs.stat": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.4.tgz", - "integrity": "sha512-IYlHJA0clt2+Vg7bccq+TzRdJvv19c2INqBSsoOLp1je7xjtr7J26+WXR72MCdvU9q1qTzIWDfhMf+DRvQJK4Q==", + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", + "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==", "dev": true }, "@nodelib/fs.walk": { - "version": "1.2.6", - "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.6.tgz", - "integrity": "sha512-8Broas6vTtW4GIXTAHDoE32hnN2M5ykgCpWGbuXHQ15vEMqr23pB76e/GZcYsZCHALv50ktd24qhEyKr6wBtow==", + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.7.tgz", + "integrity": "sha512-BTIhocbPBSrRmHxOAJFtR18oLhxTtAFDAvL8hY1S3iU8k+E60W/YFs4jrixGzQjMpF4qPXxIQHcjVD9dz1C2QA==", "dev": true, "requires": { - "@nodelib/fs.scandir": "2.1.4", + "@nodelib/fs.scandir": "2.1.5", "fastq": "^1.6.0" } }, @@ -20564,9 +20210,9 @@ } }, "@types/babel__traverse": { - "version": "7.11.1", - "resolved": "https://registry.npmjs.org/@types/babel__traverse/-/babel__traverse-7.11.1.tgz", - "integrity": "sha512-Vs0hm0vPahPMYi9tDjtP66llufgO3ST16WXaSTtDGEl9cewAl3AibmxWw6TINOqHPT9z0uABKAYjT9jNSg4npw==", + "version": "7.14.0", + "resolved": "https://registry.npmjs.org/@types/babel__traverse/-/babel__traverse-7.14.0.tgz", + "integrity": "sha512-IilJZ1hJBUZwMOVDNTdflOOLzJB/ZtljYVa7k3gEZN/jqIJIPkWHC6dvbX+DD2CwZDHB9wAKzZPzzqMIkW37/w==", "dev": true, "requires": { "@babel/types": "^7.3.0" @@ -20593,9 +20239,9 @@ } }, "@types/estree": { - "version": "0.0.47", - "resolved": "https://registry.npmjs.org/@types/estree/-/estree-0.0.47.tgz", - "integrity": "sha512-c5ciR06jK8u9BstrmJyO97m+klJrrhCf9u3rLu3DEAJBirxRqSCvDQoYKmxuYwQI5SZChAWu+tq9oVlGRuzPAg==", + "version": "0.0.48", + "resolved": "https://registry.npmjs.org/@types/estree/-/estree-0.0.48.tgz", + "integrity": "sha512-LfZwXoGUDo0C3me81HXgkBg5CTQYb6xzEl+fNmbO4JdRiSKQ8A0GD1OBBvKAIsbCUgoyAty7m99GqqMQe784ew==", "dev": true }, "@types/glob": { @@ -20665,9 +20311,9 @@ "dev": true }, "@types/node": { - "version": "15.0.1", - "resolved": "https://registry.npmjs.org/@types/node/-/node-15.0.1.tgz", - "integrity": "sha512-TMkXt0Ck1y0KKsGr9gJtWGjttxlZnnvDtphxUOSd0bfaR6Q1jle+sPvrzNR1urqYTWMinoKvjKfXUGsumaO1PA==", + "version": "15.12.5", + "resolved": "https://registry.npmjs.org/@types/node/-/node-15.12.5.tgz", + "integrity": "sha512-se3yX7UHv5Bscf8f1ERKvQOD6sTyycH3hdaoozvaLxgUiY5lIGEeH37AD0G0Qi9kPqihPn0HOfd2yaIEN9VwEg==", "dev": true }, "@types/normalize-package-data": { @@ -21231,16 +20877,16 @@ } }, "babel-jest": { - "version": "27.0.2", - "resolved": "https://registry.npmjs.org/babel-jest/-/babel-jest-27.0.2.tgz", - "integrity": "sha512-9OThPl3/IQbo4Yul2vMz4FYwILPQak8XelX4YGowygfHaOl5R5gfjm4iVx4d8aUugkW683t8aq0A74E7b5DU1Q==", + "version": "27.0.6", + "resolved": "https://registry.npmjs.org/babel-jest/-/babel-jest-27.0.6.tgz", + "integrity": "sha512-iTJyYLNc4wRofASmofpOc5NK9QunwMk+TLFgGXsTFS8uEqmd8wdI7sga0FPe2oVH3b5Agt/EAK1QjPEuKL8VfA==", "dev": true, "requires": { - "@jest/transform": "^27.0.2", - "@jest/types": "^27.0.2", + "@jest/transform": "^27.0.6", + "@jest/types": "^27.0.6", "@types/babel__core": "^7.1.14", "babel-plugin-istanbul": "^6.0.0", - "babel-preset-jest": "^27.0.1", + "babel-preset-jest": "^27.0.6", "chalk": "^4.0.0", "graceful-fs": "^4.2.4", "slash": "^3.0.0" @@ -21326,9 +20972,9 @@ } }, "babel-plugin-jest-hoist": { - "version": "27.0.1", - "resolved": "https://registry.npmjs.org/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-27.0.1.tgz", - "integrity": "sha512-sqBF0owAcCDBVEDtxqfYr2F36eSHdx7lAVGyYuOBRnKdD6gzcy0I0XrAYCZgOA3CRrLhmR+Uae9nogPzmAtOfQ==", + "version": "27.0.6", + "resolved": "https://registry.npmjs.org/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-27.0.6.tgz", + "integrity": "sha512-CewFeM9Vv2gM7Yr9n5eyyLVPRSiBnk6lKZRjgwYnGKSl9M14TMn2vkN02wTF04OGuSDLEzlWiMzvjXuW9mB6Gw==", "dev": true, "requires": { "@babel/template": "^7.3.3", @@ -21349,13 +20995,13 @@ } }, "babel-plugin-polyfill-corejs3": { - "version": "0.2.2", - "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.2.2.tgz", - "integrity": "sha512-l1Cf8PKk12eEk5QP/NQ6TH8A1pee6wWDJ96WjxrMXFLHLOBFzYM4moG80HFgduVhTqAFez4alnZKEhP/bYHg0A==", + "version": "0.2.3", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.2.3.tgz", + "integrity": "sha512-rCOFzEIJpJEAU14XCcV/erIf/wZQMmMT5l5vXOpL5uoznyOGfDIjPj6FVytMvtzaKSTSVKouOCTPJ5OMUZH30g==", "dev": true, "requires": { "@babel/helper-define-polyfill-provider": "^0.2.2", - "core-js-compat": "^3.9.1" + "core-js-compat": "^3.14.0" } }, "babel-plugin-polyfill-regenerator": { @@ -21388,12 +21034,12 @@ } }, "babel-preset-jest": { - "version": "27.0.1", - "resolved": "https://registry.npmjs.org/babel-preset-jest/-/babel-preset-jest-27.0.1.tgz", - "integrity": "sha512-nIBIqCEpuiyhvjQs2mVNwTxQQa2xk70p9Dd/0obQGBf8FBzbnI8QhQKzLsWMN2i6q+5B0OcWDtrboBX5gmOLyA==", + "version": "27.0.6", + "resolved": "https://registry.npmjs.org/babel-preset-jest/-/babel-preset-jest-27.0.6.tgz", + "integrity": "sha512-WObA0/Biw2LrVVwZkF/2GqbOdzhKD6Fkdwhoy9ASIrOWr/zodcSpQh72JOkEn6NWyjmnPDjNSqaGN4KnpKzhXw==", "dev": true, "requires": { - "babel-plugin-jest-hoist": "^27.0.1", + "babel-plugin-jest-hoist": "^27.0.6", "babel-preset-current-node-syntax": "^1.0.0" } }, @@ -21500,12 +21146,6 @@ "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", "dev": true - }, - "qs": { - "version": "6.7.0", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.7.0.tgz", - "integrity": "sha512-VCdBRNFTX1fyE7Nb6FYoURo/SPe62QCaAyzJvUjwRaIsc+NePBEniHlvxFmmX56+HZphIGtV0XeCirBtpDrTyQ==", - "dev": true } } }, @@ -21655,9 +21295,9 @@ } }, "caniuse-lite": { - "version": "1.0.30001219", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001219.tgz", - "integrity": "sha512-c0yixVG4v9KBc/tQ2rlbB3A/bgBFRvl8h8M4IeUbqCca4gsiCfvtaheUssbnux/Mb66Vjz7x8yYjDgYcNQOhyQ==", + "version": "1.0.30001241", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001241.tgz", + "integrity": "sha512-1uoSZ1Pq1VpH0WerIMqwptXHNNGfdl7d1cJUFs80CwQ/lVzdhTvsFZCeNFslze7AjsQnb4C85tzclPa1VShbeQ==", "dev": true }, "caporal": { @@ -21695,20 +21335,20 @@ "dev": true }, "chokidar": { - "version": "3.5.1", - "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.1.tgz", - "integrity": "sha512-9+s+Od+W0VJJzawDma/gvBNQqkTiqYTWLuZoyAsivsI4AaWTCzHG06/TMjsf1cYe9Cb97UCEhjz7HvnPk2p/tw==", + "version": "3.5.2", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.2.tgz", + "integrity": "sha512-ekGhOnNVPgT77r4K/U3GDhu+FQ2S8TnK/s2KbIGXi0SZWuwkZ2QNyfWdZW+TVfn84DpEP7rLeCt2UI6bJ8GwbQ==", "dev": true, "optional": true, "requires": { - "anymatch": "~3.1.1", + "anymatch": "~3.1.2", "braces": "~3.0.2", - "fsevents": "~2.3.1", - "glob-parent": "~5.1.0", + "fsevents": "~2.3.2", + "glob-parent": "~5.1.2", "is-binary-path": "~2.1.0", "is-glob": "~4.0.1", "normalize-path": "~3.0.0", - "readdirp": "~3.5.0" + "readdirp": "~3.6.0" }, "dependencies": { "anymatch": { @@ -21749,16 +21389,6 @@ "to-regex-range": "^5.0.1" } }, - "glob-parent": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", - "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", - "dev": true, - "optional": true, - "requires": { - "is-glob": "^4.0.1" - } - }, "is-binary-path": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", @@ -21777,9 +21407,9 @@ "optional": true }, "readdirp": { - "version": "3.5.0", - "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.5.0.tgz", - "integrity": "sha512-cMhu7c/8rdhkHXWsY+osBhfSy0JikwpHK/5+imo+LpeasTF8ouErHrlYkwT0++njiyuDvc7OFY5T3ukvZ8qmFQ==", + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", + "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", "dev": true, "optional": true, "requires": { @@ -22207,9 +21837,9 @@ "dev": true }, "conventional-changelog-conventionalcommits": { - "version": "4.5.0", - "resolved": "https://registry.npmjs.org/conventional-changelog-conventionalcommits/-/conventional-changelog-conventionalcommits-4.5.0.tgz", - "integrity": "sha512-buge9xDvjjOxJlyxUnar/+6i/aVEVGA7EEh4OafBCXPlLUQPGbRUBhBUveWRxzvR8TEjhKEP4BdepnpG2FSZXw==", + "version": "4.6.0", + "resolved": "https://registry.npmjs.org/conventional-changelog-conventionalcommits/-/conventional-changelog-conventionalcommits-4.6.0.tgz", + "integrity": "sha512-sj9tj3z5cnHaSJCYObA9nISf7eq/YjscLPoq6nmew4SiOjxqL2KRpK20fjnjVbpNDjJ2HR3MoVcWKXwbVvzS0A==", "dev": true, "requires": { "compare-func": "^2.0.0", @@ -22352,9 +21982,9 @@ } }, "convert-source-map": { - "version": "1.7.0", - "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.7.0.tgz", - "integrity": "sha512-4FJkXzKXEDB1snCFZlLP4gpC3JILicCpGbzG9f9G7tGqGCzETQ2hWPrcinA9oU4wtf2biUaEH5065UnMeR33oA==", + "version": "1.8.0", + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.8.0.tgz", + "integrity": "sha512-+OQdjP49zViI/6i7nIJpA8rAl4sV/JdPfU9nZs3VqOwGIgizICvuN2ru6fMd+4llL0tar18UYJXfZ/TWtmhUjA==", "dev": true, "requires": { "safe-buffer": "~5.1.1" @@ -22379,9 +22009,9 @@ "dev": true }, "core-js-compat": { - "version": "3.14.0", - "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.14.0.tgz", - "integrity": "sha512-R4NS2eupxtiJU+VwgkF9WTpnSfZW4pogwKHd8bclWU2sp93Pr5S1uYJI84cMOubJRou7bcfL0vmwtLslWN5p3A==", + "version": "3.15.2", + "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.15.2.tgz", + "integrity": "sha512-Wp+BJVvwopjI+A1EFqm2dwUmWYXrvucmtIB2LgXn/Rb+gWPKYxtmb4GKHGKG/KGF1eK9jfjzT38DITbTOCX/SQ==", "dev": true, "requires": { "browserslist": "^4.16.6", @@ -22565,9 +22195,9 @@ } }, "decimal.js": { - "version": "10.2.1", - "resolved": "https://registry.npmjs.org/decimal.js/-/decimal.js-10.2.1.tgz", - "integrity": "sha512-KaL7+6Fw6i5A2XSnsbhm/6B+NuEA7TZ4vqxnd5tXz9sbKtrN9Srj8ab4vKVdK8YAqZO9P1kg45Y6YLoduPf+kw==", + "version": "10.3.1", + "resolved": "https://registry.npmjs.org/decimal.js/-/decimal.js-10.3.1.tgz", + "integrity": "sha512-V0pfhfr8suzyPGOx3nmq4aHqabehUZn6Ch9kyFpV79TGDTWFmHqUqXdabR7QHqxzrYolF4+tVmJhUG4OURg5dQ==", "dev": true }, "decode-uri-component": { @@ -22752,202 +22382,100 @@ } }, "del-cli": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/del-cli/-/del-cli-3.0.1.tgz", - "integrity": "sha512-BLHItGr82rUbHhjMu41d+vw9Md49i81jmZSV00HdTq4t+RTHywmEht/23mNFpUl2YeLYJZJyGz4rdlMAyOxNeg==", + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/del-cli/-/del-cli-4.0.0.tgz", + "integrity": "sha512-G6FD38YZ28nkI34J+oxiYGbJg/t2hCkUgg9di9311gHZWWe9hY4CphewtU5l3RO1LTYxNMxla2D/we4CbBMHcA==", "dev": true, "requires": { - "del": "^5.1.0", - "meow": "^6.1.1" + "del": "^6.0.0", + "meow": "^10.0.1" }, "dependencies": { - "del": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/del/-/del-5.1.0.tgz", - "integrity": "sha512-wH9xOVHnczo9jN2IW68BabcecVPxacIA3g/7z6vhSU/4stOKQzeCRK0yD0A24WiAAUJmmVpWqrERcTxnLo3AnA==", - "dev": true, - "requires": { - "globby": "^10.0.1", - "graceful-fs": "^4.2.2", - "is-glob": "^4.0.1", - "is-path-cwd": "^2.2.0", - "is-path-inside": "^3.0.1", - "p-map": "^3.0.0", - "rimraf": "^3.0.0", - "slash": "^3.0.0" - } - }, - "find-up": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", - "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", - "dev": true, - "requires": { - "locate-path": "^5.0.0", - "path-exists": "^4.0.0" - } - }, - "globby": { - "version": "10.0.2", - "resolved": "https://registry.npmjs.org/globby/-/globby-10.0.2.tgz", - "integrity": "sha512-7dUi7RvCoT/xast/o/dLN53oqND4yk0nsHkhRgn9w65C4PofCLOoJ39iSOg+qVDdWQPIEj+eszMHQ+aLVwwQSg==", - "dev": true, - "requires": { - "@types/glob": "^7.1.1", - "array-union": "^2.1.0", - "dir-glob": "^3.0.1", - "fast-glob": "^3.0.3", - "glob": "^7.1.3", - "ignore": "^5.1.1", - "merge2": "^1.2.3", - "slash": "^3.0.0" - } - }, - "hosted-git-info": { - "version": "2.8.9", - "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.9.tgz", - "integrity": "sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw==", - "dev": true - }, - "ignore": { - "version": "5.1.8", - "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.1.8.tgz", - "integrity": "sha512-BMpfD7PpiETpBl/A6S498BaIJ6Y/ABT93ETbby2fP00v4EbvPBXWEoaR1UBPKs3iR53pJY7EtZk5KACI57i1Uw==", + "decamelize": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-5.0.0.tgz", + "integrity": "sha512-U75DcT5hrio3KNtvdULAWnLiAPbFUC4191ldxMmj4FA/mRuBnmDwU0boNfPyFRhnan+Jm+haLeSn3P0afcBn4w==", "dev": true }, - "locate-path": { + "indent-string": { "version": "5.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", - "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", - "dev": true, - "requires": { - "p-locate": "^4.1.0" - } + "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-5.0.0.tgz", + "integrity": "sha512-m6FAo/spmsW2Ab2fU35JTYwtOKa2yAwXSwgjSv1TJzh4Mh7mC3lzAOVLBprb72XsTrgkEIsl7YrFNAiDiRhIGg==", + "dev": true }, "meow": { - "version": "6.1.1", - "resolved": "https://registry.npmjs.org/meow/-/meow-6.1.1.tgz", - "integrity": "sha512-3YffViIt2QWgTy6Pale5QpopX/IvU3LPL03jOTqp6pGj3VjesdO/U8CuHMKpnQr4shCNCM5fd5XFFvIIl6JBHg==", + "version": "10.0.1", + "resolved": "https://registry.npmjs.org/meow/-/meow-10.0.1.tgz", + "integrity": "sha512-65vCCdUI8wS5upK24fDFo25FcViNExdTGAR/vaWN4E6fXsWQ8fGdbkjCWp3nDTuJMlIYuEoAEMiB2/b81DBJjg==", "dev": true, "requires": { - "@types/minimist": "^1.2.0", + "@types/minimist": "^1.2.1", "camelcase-keys": "^6.2.2", + "decamelize": "^5.0.0", "decamelize-keys": "^1.1.0", "hard-rejection": "^2.1.0", - "minimist-options": "^4.0.2", - "normalize-package-data": "^2.5.0", - "read-pkg-up": "^7.0.1", - "redent": "^3.0.0", - "trim-newlines": "^3.0.0", - "type-fest": "^0.13.1", - "yargs-parser": "^18.1.3" - } - }, - "normalize-package-data": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.5.0.tgz", - "integrity": "sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==", - "dev": true, - "requires": { - "hosted-git-info": "^2.1.4", - "resolve": "^1.10.0", - "semver": "2 || 3 || 4 || 5", - "validate-npm-package-license": "^3.0.1" + "minimist-options": "4.1.0", + "normalize-package-data": "^3.0.2", + "read-pkg-up": "^8.0.0", + "redent": "^4.0.0", + "trim-newlines": "^4.0.1", + "type-fest": "^1.0.2", + "yargs-parser": "^20.2.7" } }, - "p-limit": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", - "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", + "read-pkg": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-6.0.0.tgz", + "integrity": "sha512-X1Fu3dPuk/8ZLsMhEj5f4wFAF0DWoK7qhGJvgaijocXxBmSToKfbFtqbxMO7bVjNA1dmE5huAzjXj/ey86iw9Q==", "dev": true, "requires": { - "p-try": "^2.0.0" + "@types/normalize-package-data": "^2.4.0", + "normalize-package-data": "^3.0.2", + "parse-json": "^5.2.0", + "type-fest": "^1.0.1" } }, - "p-locate": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", - "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", + "read-pkg-up": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-8.0.0.tgz", + "integrity": "sha512-snVCqPczksT0HS2EC+SxUndvSzn6LRCwpfSvLrIfR5BKDQQZMaI6jPRC9dYvYFDRAuFEAnkwww8kBBNE/3VvzQ==", "dev": true, "requires": { - "p-limit": "^2.2.0" + "find-up": "^5.0.0", + "read-pkg": "^6.0.0", + "type-fest": "^1.0.1" } }, - "p-map": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/p-map/-/p-map-3.0.0.tgz", - "integrity": "sha512-d3qXVTF/s+W+CdJ5A29wywV2n8CQQYahlgz2bFiA+4eVNJbHJodPZ+/gXwPGh0bOqA+j8S+6+ckmvLGPk1QpxQ==", + "redent": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/redent/-/redent-4.0.0.tgz", + "integrity": "sha512-tYkDkVVtYkSVhuQ4zBgfvciymHaeuel+zFKXShfDnFP5SyVEP7qo70Rf1jTOTCx3vGNAbnEi/xFkcfQVMIBWag==", "dev": true, "requires": { - "aggregate-error": "^3.0.0" + "indent-string": "^5.0.0", + "strip-indent": "^4.0.0" } }, - "read-pkg": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-5.2.0.tgz", - "integrity": "sha512-Ug69mNOpfvKDAc2Q8DRpMjjzdtrnv9HcSMX+4VsZxD1aZ6ZzrIE7rlzXBtWTyhULSMKg076AW6WR5iZpD0JiOg==", + "strip-indent": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/strip-indent/-/strip-indent-4.0.0.tgz", + "integrity": "sha512-mnVSV2l+Zv6BLpSD/8V87CW/y9EmmbYzGCIavsnsI6/nwn26DwffM/yztm30Z/I2DY9wdS3vXVCMnHDgZaVNoA==", "dev": true, "requires": { - "@types/normalize-package-data": "^2.4.0", - "normalize-package-data": "^2.5.0", - "parse-json": "^5.0.0", - "type-fest": "^0.6.0" - }, - "dependencies": { - "type-fest": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.6.0.tgz", - "integrity": "sha512-q+MB8nYR1KDLrgr4G5yemftpMC7/QLqVndBmEEdqzmNj5dcFOO4Oo8qlwZE3ULT3+Zim1F8Kq4cBnikNhlCMlg==", - "dev": true - } + "min-indent": "^1.0.1" } }, - "read-pkg-up": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-7.0.1.tgz", - "integrity": "sha512-zK0TB7Xd6JpCLmlLmufqykGE+/TlOePD6qKClNW7hHDKFh/J7/7gCWGR7joEQEW1bKq3a3yUZSObOoWLFQ4ohg==", - "dev": true, - "requires": { - "find-up": "^4.1.0", - "read-pkg": "^5.2.0", - "type-fest": "^0.8.1" - }, - "dependencies": { - "type-fest": { - "version": "0.8.1", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.8.1.tgz", - "integrity": "sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==", - "dev": true - } - } - }, - "semver": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", - "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", - "dev": true - }, - "slash": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", - "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", + "trim-newlines": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/trim-newlines/-/trim-newlines-4.0.2.tgz", + "integrity": "sha512-GJtWyq9InR/2HRiLZgpIKv+ufIKrVrvjQWEj7PxAXNc5dwbNJkqhAUoAGgzRmULAnoOM5EIpveYd3J2VeSAIew==", "dev": true }, "type-fest": { - "version": "0.13.1", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.13.1.tgz", - "integrity": "sha512-34R7HTnG0XIJcBSn5XhDd7nNFPRcXYRZrBB2O2jdKqYODldSzBAqzsWoZYYvduky73toYS/ESqxPvkDf/F0XMg==", + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-1.2.1.tgz", + "integrity": "sha512-SbmIRuXhJs8KTneu77Ecylt9zuqL683tuiLYpTRil4H++eIhqCmx6ko6KAFem9dty8sOdnEiX7j4K1nRE628fQ==", "dev": true - }, - "yargs-parser": { - "version": "18.1.3", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-18.1.3.tgz", - "integrity": "sha512-o50j0JeToy/4K6OZcaQmW6lyXXKhq7csREXcDwk2omFPJEwUNOVtJKvmDr9EI1fAJZUyZcRF7kxGBWmRXudrCQ==", - "dev": true, - "requires": { - "camelcase": "^5.0.0", - "decamelize": "^1.2.0" - } } } }, @@ -22976,9 +22504,9 @@ "dev": true }, "detect-indent": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/detect-indent/-/detect-indent-6.0.0.tgz", - "integrity": "sha512-oSyFlqaTHCItVRGK5RmrmjB+CmaMOW7IaNA/kdxqhoa6d17j/5ce9O9eWXmV/KEdRwqpQA+Vqe8a8Bsybu4YnA==", + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/detect-indent/-/detect-indent-6.1.0.tgz", + "integrity": "sha512-reYkTUJAZb9gUuZ2RvVCNhVHdg62RHnJ7WJl8ftMi4diZ6NWlciOzQN88pUhSELEwflJht4oQDv0F0BMlwaYtA==", "dev": true }, "detect-newline": { @@ -22988,15 +22516,15 @@ "dev": true }, "detect-node": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/detect-node/-/detect-node-2.0.5.tgz", - "integrity": "sha512-qi86tE6hRcFHy8jI1m2VG+LaPUR1LhqDa5G8tVjuUXmOrpuAgqsA1pN0+ldgr3aKUH+QLI9hCY/OcRYisERejw==", + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/detect-node/-/detect-node-2.1.0.tgz", + "integrity": "sha512-T0NIuQpnTvFDATNuHN5roPwSBG83rFsuO+MXXH9/3N1eFbn4wcPjttvjMLEPWJ0RGUYgQE7cGgS3tNxbqCGM7g==", "dev": true }, "diff-sequences": { - "version": "27.0.1", - "resolved": "https://registry.npmjs.org/diff-sequences/-/diff-sequences-27.0.1.tgz", - "integrity": "sha512-XPLijkfJUh/PIBnfkcSHgvD6tlYixmcMAn3osTk6jt+H0v/mgURto1XUiD9DKuGX5NDoVS6dSlA23gd9FUaCFg==", + "version": "27.0.6", + "resolved": "https://registry.npmjs.org/diff-sequences/-/diff-sequences-27.0.6.tgz", + "integrity": "sha512-ag6wfpBFyNXZ0p8pcuIDS//D8H062ZQJ3fzYxjpmeKjnz8W4pekL3AI8VohmyZmsWW2PWaHgjsmqR6L13101VQ==", "dev": true }, "dir-glob": { @@ -23130,9 +22658,9 @@ "dev": true }, "electron-to-chromium": { - "version": "1.3.723", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.723.tgz", - "integrity": "sha512-L+WXyXI7c7+G1V8ANzRsPI5giiimLAUDC6Zs1ojHHPhYXb3k/iTABFmWjivEtsWrRQymjnO66/rO2ZTABGdmWg==", + "version": "1.3.762", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.762.tgz", + "integrity": "sha512-LehWjRpfPcK8F1Lf/NZoAwWLWnjJVo0SZeQ9j/tvnBWYcT99qDqgo4raAfS2oTKZjPrR/jxruh85DGgDUmywEA==", "dev": true }, "emittery": { @@ -23211,9 +22739,9 @@ } }, "es-abstract": { - "version": "1.18.0", - "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.18.0.tgz", - "integrity": "sha512-LJzK7MrQa8TS0ja2w3YNLzUgJCGPdPOV1yVvezjNnS89D+VR08+Szt2mz3YB2Dck/+w5tfIq/RoUAFqJJGM2yw==", + "version": "1.18.3", + "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.18.3.tgz", + "integrity": "sha512-nQIr12dxV7SSxE6r6f1l3DtAeEYdsGpps13dR0TwJg1S8gyp4ZPgy3FZcHBgbiQqnoqSTb+oC+kO4UQ0C/J8vw==", "dev": true, "requires": { "call-bind": "^1.0.2", @@ -23224,14 +22752,14 @@ "has-symbols": "^1.0.2", "is-callable": "^1.2.3", "is-negative-zero": "^2.0.1", - "is-regex": "^1.1.2", - "is-string": "^1.0.5", - "object-inspect": "^1.9.0", + "is-regex": "^1.1.3", + "is-string": "^1.0.6", + "object-inspect": "^1.10.3", "object-keys": "^1.1.1", "object.assign": "^4.1.2", "string.prototype.trimend": "^1.0.4", "string.prototype.trimstart": "^1.0.4", - "unbox-primitive": "^1.0.0" + "unbox-primitive": "^1.0.1" } }, "es-check": { @@ -23348,9 +22876,9 @@ } }, "eslint": { - "version": "7.28.0", - "resolved": "https://registry.npmjs.org/eslint/-/eslint-7.28.0.tgz", - "integrity": "sha512-UMfH0VSjP0G4p3EWirscJEQ/cHqnT/iuH6oNZOB94nBjWbMnhGEPxsZm1eyIW0C/9jLI0Fow4W5DXLjEI7mn1g==", + "version": "7.29.0", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-7.29.0.tgz", + "integrity": "sha512-82G/JToB9qIy/ArBzIWG9xvvwL3R86AlCjtGw+A29OMZDqhTybz/MByORSukGxeI+YPCR4coYyITKk8BFH9nDA==", "dev": true, "requires": { "@babel/code-frame": "7.12.11", @@ -23443,25 +22971,16 @@ "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", "dev": true }, - "eslint-visitor-keys": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-2.0.0.tgz", - "integrity": "sha512-QudtT6av5WXels9WjIM7qz1XD1cWGvX4gGXvp/zBn9nXG02D0utdU3Em2m/QjTnrsk6bBjmCygl3rmj118msQQ==", - "dev": true - }, - "glob-parent": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", - "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", - "dev": true, - "requires": { - "is-glob": "^4.0.1" - } + "eslint-visitor-keys": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-2.1.0.tgz", + "integrity": "sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw==", + "dev": true }, "globals": { - "version": "13.8.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-13.8.0.tgz", - "integrity": "sha512-rHtdA6+PDBIjeEvA91rpqzEvk/k3/i7EeNQiryiWuJH0Hw9cpyJMAt2jtbAwUaRdhD+573X4vWw6IcjKPasi9Q==", + "version": "13.9.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-13.9.0.tgz", + "integrity": "sha512-74/FduwI/JaIrr1H8e71UbDE+5x7pIPs1C2rrwC52SszOo043CsWOZEMW7o2Y58xwm9b+0RBKDxY5n2sUpEFxA==", "dev": true, "requires": { "type-fest": "^0.20.2" @@ -23776,19 +23295,19 @@ } }, "execa": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/execa/-/execa-4.1.0.tgz", - "integrity": "sha512-j5W0//W7f8UxAn8hXVnwG8tLwdiUy4FJLcSupCg6maBYZDpyBvTApK7KyuI4bKj8KOh1r2YH+6ucuYtJv1bTZA==", + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/execa/-/execa-5.1.1.tgz", + "integrity": "sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==", "dev": true, "requires": { - "cross-spawn": "^7.0.0", - "get-stream": "^5.0.0", - "human-signals": "^1.1.1", + "cross-spawn": "^7.0.3", + "get-stream": "^6.0.0", + "human-signals": "^2.1.0", "is-stream": "^2.0.0", "merge-stream": "^2.0.0", - "npm-run-path": "^4.0.0", - "onetime": "^5.1.0", - "signal-exit": "^3.0.2", + "npm-run-path": "^4.0.1", + "onetime": "^5.1.2", + "signal-exit": "^3.0.3", "strip-final-newline": "^2.0.0" } }, @@ -23883,17 +23402,17 @@ } }, "expect": { - "version": "27.0.2", - "resolved": "https://registry.npmjs.org/expect/-/expect-27.0.2.tgz", - "integrity": "sha512-YJFNJe2+P2DqH+ZrXy+ydRQYO87oxRUonZImpDodR1G7qo3NYd3pL+NQ9Keqpez3cehczYwZDBC3A7xk3n7M/w==", + "version": "27.0.6", + "resolved": "https://registry.npmjs.org/expect/-/expect-27.0.6.tgz", + "integrity": "sha512-psNLt8j2kwg42jGBDSfAlU49CEZxejN1f1PlANWDZqIhBOVU/c2Pm888FcjWJzFewhIsNWfZJeLjUjtKGiPuSw==", "dev": true, "requires": { - "@jest/types": "^27.0.2", + "@jest/types": "^27.0.6", "ansi-styles": "^5.0.0", - "jest-get-type": "^27.0.1", - "jest-matcher-utils": "^27.0.2", - "jest-message-util": "^27.0.2", - "jest-regex-util": "^27.0.1" + "jest-get-type": "^27.0.6", + "jest-matcher-utils": "^27.0.6", + "jest-message-util": "^27.0.6", + "jest-regex-util": "^27.0.6" }, "dependencies": { "ansi-styles": { @@ -23962,12 +23481,6 @@ "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", "dev": true - }, - "qs": { - "version": "6.7.0", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.7.0.tgz", - "integrity": "sha512-VCdBRNFTX1fyE7Nb6FYoURo/SPe62QCaAyzJvUjwRaIsc+NePBEniHlvxFmmX56+HZphIGtV0XeCirBtpDrTyQ==", - "dev": true } } }, @@ -24036,17 +23549,16 @@ "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==" }, "fast-glob": { - "version": "3.2.5", - "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.5.tgz", - "integrity": "sha512-2DtFcgT68wiTTiwZ2hNdJfcHNke9XOfnwmBRWXhmeKM8rF0TGwmC/Qto3S7RoZKp5cilZbxzO5iTNTQsJ+EeDg==", + "version": "3.2.6", + "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.6.tgz", + "integrity": "sha512-GnLuqj/pvQ7pX8/L4J84nijv6sAnlwvSDpMkJi9i7nPmPxGtRPkBSStfvDW5l6nMdX9VWe+pkKWFTgD+vF2QSQ==", "dev": true, "requires": { "@nodelib/fs.stat": "^2.0.2", "@nodelib/fs.walk": "^1.2.3", - "glob-parent": "^5.1.0", + "glob-parent": "^5.1.2", "merge2": "^1.3.0", - "micromatch": "^4.0.2", - "picomatch": "^2.2.1" + "micromatch": "^4.0.4" }, "dependencies": { "braces": { @@ -24067,15 +23579,6 @@ "to-regex-range": "^5.0.1" } }, - "glob-parent": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", - "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", - "dev": true, - "requires": { - "is-glob": "^4.0.1" - } - }, "is-number": { "version": "7.0.0", "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", @@ -24130,9 +23633,9 @@ } }, "faye-websocket": { - "version": "0.11.3", - "resolved": "https://registry.npmjs.org/faye-websocket/-/faye-websocket-0.11.3.tgz", - "integrity": "sha512-D2y4bovYpzziGgbHYtGCMjlJM36vAl/y+xUyn1C+FVx8szd1E+86KwVw6XvYSzOP8iMpm1X0I4xJD+QtUb36OA==", + "version": "0.11.4", + "resolved": "https://registry.npmjs.org/faye-websocket/-/faye-websocket-0.11.4.tgz", + "integrity": "sha512-CzbClwlXAuiRQAlUyfqPgvPoNKTckTPGfwZV4ZdAhVcP2lh9KUxJg2b5GkE7XbjKQ3YJnQ9z6D9ntLAlB+tP8g==", "dev": true, "requires": { "websocket-driver": ">=0.5.1" @@ -24253,9 +23756,9 @@ "dev": true }, "follow-redirects": { - "version": "1.14.0", - "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.14.0.tgz", - "integrity": "sha512-0vRwd7RKQBTt+mgu87mtYeofLFZpTas2S9zY+jIeuLJMNvudIgF52nr19q40HOwH5RrhWIPuj9puybzSJiRrVg==", + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.14.1.tgz", + "integrity": "sha512-HWqDgT7ZEkqRzBvc2s64vSZ/hfOceEol3ac/7tKwzuvEyWx3/4UegXh5oBOIotkGsObyk3xznnSRVADBgWSQVg==", "dev": true }, "for-in": { @@ -24276,9 +23779,9 @@ } }, "forwarded": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.1.2.tgz", - "integrity": "sha1-mMI9qxF1ZXuMBXPozszZGw/xjIQ=", + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.2.0.tgz", + "integrity": "sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==", "dev": true }, "fragment-cache": { @@ -24441,12 +23944,6 @@ "pinkie-promise": "^2.0.0" } }, - "get-stdin": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/get-stdin/-/get-stdin-4.0.1.tgz", - "integrity": "sha1-uWjGsKBDhDJJAui/Gl3zJXmkUP4=", - "dev": true - }, "hosted-git-info": { "version": "2.8.9", "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.9.tgz", @@ -24619,14 +24116,17 @@ } } }, + "get-stdin": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/get-stdin/-/get-stdin-4.0.1.tgz", + "integrity": "sha1-uWjGsKBDhDJJAui/Gl3zJXmkUP4=", + "dev": true + }, "get-stream": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.2.0.tgz", - "integrity": "sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==", - "dev": true, - "requires": { - "pump": "^3.0.0" - } + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz", + "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==", + "dev": true }, "get-value": { "version": "2.0.6", @@ -24685,9 +24185,9 @@ } }, "glob": { - "version": "7.1.6", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.6.tgz", - "integrity": "sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==", + "version": "7.1.7", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.7.tgz", + "integrity": "sha512-OvD9ENzPLbegENnYP5UUfJIirTg4+XwMWGaQfQTY0JenxNvvIKP3U3/tAQSPIu/lHxXYSZmpXlUHeqAIdKzBLQ==", "dev": true, "requires": { "fs.realpath": "^1.0.0", @@ -24699,24 +24199,12 @@ } }, "glob-parent": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-3.1.0.tgz", - "integrity": "sha1-nmr2KZ2NO9K9QEMIMr0RPfkGxa4=", + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", "dev": true, "requires": { - "is-glob": "^3.1.0", - "path-dirname": "^1.0.0" - }, - "dependencies": { - "is-glob": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-3.1.0.tgz", - "integrity": "sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo=", - "dev": true, - "requires": { - "is-extglob": "^2.1.0" - } - } + "is-glob": "^4.0.1" } }, "glob-to-regexp": { @@ -24741,9 +24229,9 @@ "dev": true }, "globby": { - "version": "11.0.3", - "resolved": "https://registry.npmjs.org/globby/-/globby-11.0.3.tgz", - "integrity": "sha512-ffdmosjA807y7+lA1NM0jELARVmYul/715xiILEjo3hBLPTcirgQNnXECn5g3mtR8TOLCVbkfua1Hpen25/Xcg==", + "version": "11.0.4", + "resolved": "https://registry.npmjs.org/globby/-/globby-11.0.4.tgz", + "integrity": "sha512-9O4MVG9ioZJ08ffbcyVYyLOJLk5JQ688pJ4eMGLpdWLHq/Wr1D9BlriLQyL0E+jbkuePVZXYFj47QM/v093wHg==", "dev": true, "requires": { "array-union": "^2.1.0", @@ -25009,15 +24497,15 @@ } }, "human-signals": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-1.1.1.tgz", - "integrity": "sha512-SEQu7vl8KjNL2eoGBLF3+wAjpsNfA9XMlXAYj/3EdaNfAlxKthD1xjEQfGOUhllCGGJVNY34bRr6lPINhNjyZw==", + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-2.1.0.tgz", + "integrity": "sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==", "dev": true }, "husky": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/husky/-/husky-5.2.0.tgz", - "integrity": "sha512-AM8T/auHXRBxlrfPVLKP6jt49GCM2Zz47m8G3FOMsLmTv8Dj/fKVWE0Rh2d4Qrvmy131xEsdQnb3OXRib67PGg==", + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/husky/-/husky-6.0.0.tgz", + "integrity": "sha512-SQS2gDTB7tBN486QSoKPKQItZw97BMOd+Kdb6ghfpBc0yXyzrddI0oDV5MkDAbuB4X2mO3/nj60TRMcYxwzZeQ==", "dev": true }, "iconv-lite": { @@ -25350,9 +24838,9 @@ "dev": true }, "is-bigint": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-bigint/-/is-bigint-1.0.1.tgz", - "integrity": "sha512-J0ELF4yHFxHy0cmSxZuheDOz2luOdVvqjwmEcj8H/L1JHeuEDSDbeRP+Dk9kFVk5RTFzbucJ2Kb9F7ixY2QaCg==", + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-bigint/-/is-bigint-1.0.2.tgz", + "integrity": "sha512-0JV5+SOCQkIdzjBK9buARcV804Ddu7A0Qet6sHi3FimE9ne6m4BGQZfRn+NZiXbBk4F4XmHfDZIipLj9pX8dSA==", "dev": true }, "is-binary-path": { @@ -25365,12 +24853,12 @@ } }, "is-boolean-object": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/is-boolean-object/-/is-boolean-object-1.1.0.tgz", - "integrity": "sha512-a7Uprx8UtD+HWdyYwnD1+ExtTgqQtD2k/1yJgtXP6wnMm8byhkoTZRl+95LLThpzNZJ5aEvi46cdH+ayMFRwmA==", + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/is-boolean-object/-/is-boolean-object-1.1.1.tgz", + "integrity": "sha512-bXdQWkECBUIAcCkeH1unwJLIpZYaa5VvuygSyS/c2lf719mTKZDU5UdDRlpd01UjADgmW8RfqaP+mRaVPdr/Ng==", "dev": true, "requires": { - "call-bind": "^1.0.0" + "call-bind": "^1.0.2" } }, "is-buffer": { @@ -25421,9 +24909,9 @@ } }, "is-date-object": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.2.tgz", - "integrity": "sha512-USlDT524woQ08aoZFzh3/Z6ch9Y/EWXEHQ/AaRN0SkKq4t2Jw2R2339tSXmwuVoY7LLlBCbOIlx2myP/L5zk0g==", + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.4.tgz", + "integrity": "sha512-/b4ZVsG7Z5XVtIxs/h9W8nvfLgSAyKYdtGWQLbqy6jA1icmgjf8WCoTKgeS4wy5tYaPePouzFMANbnj94c2Z+A==", "dev": true }, "is-descriptor": { @@ -25500,9 +24988,9 @@ } }, "is-number-object": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/is-number-object/-/is-number-object-1.0.4.tgz", - "integrity": "sha512-zohwelOAur+5uXtk8O3GPQ1eAcu4ZX3UwxQhUlfFFMNpUd83gXgjbhJh6HmB6LUNV/ieOLQuDwJO3dWJosUeMw==", + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/is-number-object/-/is-number-object-1.0.5.tgz", + "integrity": "sha512-RU0lI/n95pMoUKu9v1BZP5MBcZuNSVJkMkAG2dJqC4z2GlkGUNeH68SuHuBKBD/XFe+LHZ+f9BKkLET60Niedw==", "dev": true }, "is-obj": { @@ -25565,13 +25053,13 @@ "dev": true }, "is-regex": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.2.tgz", - "integrity": "sha512-axvdhb5pdhEVThqJzYXwMlVuZwC+FF2DpcOhTS+y/8jVq4trxyPgfcwIxIKiyeuLlSQYKkmUaPQJ8ZE4yNKXDg==", + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.3.tgz", + "integrity": "sha512-qSVXFz28HM7y+IWX6vLCsexdlvzT1PJNFSBuaQLQ5o0IEw8UDYW6/2+eCMVyIsbM8CNLX2a/QWmSpyxYEHY7CQ==", "dev": true, "requires": { "call-bind": "^1.0.2", - "has-symbols": "^1.0.1" + "has-symbols": "^1.0.2" } }, "is-regexp": { @@ -25587,18 +25075,18 @@ "dev": true }, "is-string": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/is-string/-/is-string-1.0.5.tgz", - "integrity": "sha512-buY6VNRjhQMiF1qWDouloZlQbRhDPCebwxSjxMjxgemYT46YMd2NR0/H+fBhEfWX4A/w9TBJ+ol+okqJKFE6vQ==", + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/is-string/-/is-string-1.0.6.tgz", + "integrity": "sha512-2gdzbKUuqtQ3lYNrUTQYoClPhm7oQu4UdpSZMp1/DGgkHBT8E2Z1l0yMdb6D4zNAxwDiMv8MdulKROJGNl0Q0w==", "dev": true }, "is-symbol": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.3.tgz", - "integrity": "sha512-OwijhaRSgqvhm/0ZdAcXNZt9lYdKFpcRDT5ULUuYXPoT794UNOdU+gpT6Rzo7b4V2HUl/op6GqY894AZwv9faQ==", + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.4.tgz", + "integrity": "sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg==", "dev": true, "requires": { - "has-symbols": "^1.0.1" + "has-symbols": "^1.0.2" } }, "is-text-path": { @@ -25749,80 +25237,49 @@ } }, "jest": { - "version": "27.0.4", - "resolved": "https://registry.npmjs.org/jest/-/jest-27.0.4.tgz", - "integrity": "sha512-Px1iKFooXgGSkk1H8dJxxBIrM3tsc5SIuI4kfKYK2J+4rvCvPGr/cXktxh0e9zIPQ5g09kOMNfHQEmusBUf/ZA==", + "version": "27.0.6", + "resolved": "https://registry.npmjs.org/jest/-/jest-27.0.6.tgz", + "integrity": "sha512-EjV8aETrsD0wHl7CKMibKwQNQc3gIRBXlTikBmmHUeVMKaPFxdcUIBfoDqTSXDoGJIivAYGqCWVlzCSaVjPQsA==", "dev": true, "requires": { - "@jest/core": "^27.0.4", + "@jest/core": "^27.0.6", "import-local": "^3.0.2", - "jest-cli": "^27.0.4" + "jest-cli": "^27.0.6" } }, "jest-changed-files": { - "version": "27.0.2", - "resolved": "https://registry.npmjs.org/jest-changed-files/-/jest-changed-files-27.0.2.tgz", - "integrity": "sha512-eMeb1Pn7w7x3wue5/vF73LPCJ7DKQuC9wQUR5ebP9hDPpk5hzcT/3Hmz3Q5BOFpR3tgbmaWhJcMTVgC8Z1NuMw==", + "version": "27.0.6", + "resolved": "https://registry.npmjs.org/jest-changed-files/-/jest-changed-files-27.0.6.tgz", + "integrity": "sha512-BuL/ZDauaq5dumYh5y20sn4IISnf1P9A0TDswTxUi84ORGtVa86ApuBHqICL0vepqAnZiY6a7xeSPWv2/yy4eA==", "dev": true, "requires": { - "@jest/types": "^27.0.2", + "@jest/types": "^27.0.6", "execa": "^5.0.0", "throat": "^6.0.1" - }, - "dependencies": { - "execa": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/execa/-/execa-5.1.1.tgz", - "integrity": "sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==", - "dev": true, - "requires": { - "cross-spawn": "^7.0.3", - "get-stream": "^6.0.0", - "human-signals": "^2.1.0", - "is-stream": "^2.0.0", - "merge-stream": "^2.0.0", - "npm-run-path": "^4.0.1", - "onetime": "^5.1.2", - "signal-exit": "^3.0.3", - "strip-final-newline": "^2.0.0" - } - }, - "get-stream": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz", - "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==", - "dev": true - }, - "human-signals": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-2.1.0.tgz", - "integrity": "sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==", - "dev": true - } } }, "jest-circus": { - "version": "27.0.4", - "resolved": "https://registry.npmjs.org/jest-circus/-/jest-circus-27.0.4.tgz", - "integrity": "sha512-QD+eblDiRphta630WRKewuASLs/oY1Zki2G4bccntRvrTHQ63ljwFR5TLduuK4Zg0ZPzW0+8o6AP7KRd1yKOjw==", + "version": "27.0.6", + "resolved": "https://registry.npmjs.org/jest-circus/-/jest-circus-27.0.6.tgz", + "integrity": "sha512-OJlsz6BBeX9qR+7O9lXefWoc2m9ZqcZ5Ohlzz0pTEAG4xMiZUJoacY8f4YDHxgk0oKYxj277AfOk9w6hZYvi1Q==", "dev": true, "requires": { - "@jest/environment": "^27.0.3", - "@jest/test-result": "^27.0.2", - "@jest/types": "^27.0.2", + "@jest/environment": "^27.0.6", + "@jest/test-result": "^27.0.6", + "@jest/types": "^27.0.6", "@types/node": "*", "chalk": "^4.0.0", "co": "^4.6.0", "dedent": "^0.7.0", - "expect": "^27.0.2", + "expect": "^27.0.6", "is-generator-fn": "^2.0.0", - "jest-each": "^27.0.2", - "jest-matcher-utils": "^27.0.2", - "jest-message-util": "^27.0.2", - "jest-runtime": "^27.0.4", - "jest-snapshot": "^27.0.4", - "jest-util": "^27.0.2", - "pretty-format": "^27.0.2", + "jest-each": "^27.0.6", + "jest-matcher-utils": "^27.0.6", + "jest-message-util": "^27.0.6", + "jest-runtime": "^27.0.6", + "jest-snapshot": "^27.0.6", + "jest-util": "^27.0.6", + "pretty-format": "^27.0.6", "slash": "^3.0.0", "stack-utils": "^2.0.3", "throat": "^6.0.1" @@ -25886,21 +25343,21 @@ } }, "jest-cli": { - "version": "27.0.4", - "resolved": "https://registry.npmjs.org/jest-cli/-/jest-cli-27.0.4.tgz", - "integrity": "sha512-E0T+/i2lxsWAzV7LKYd0SB7HUAvePqaeIh5vX43/G5jXLhv1VzjYzJAGEkTfvxV774ll9cyE2ljcL73PVMEOXQ==", + "version": "27.0.6", + "resolved": "https://registry.npmjs.org/jest-cli/-/jest-cli-27.0.6.tgz", + "integrity": "sha512-qUUVlGb9fdKir3RDE+B10ULI+LQrz+MCflEH2UJyoUjoHHCbxDrMxSzjQAPUMsic4SncI62ofYCcAvW6+6rhhg==", "dev": true, "requires": { - "@jest/core": "^27.0.4", - "@jest/test-result": "^27.0.2", - "@jest/types": "^27.0.2", + "@jest/core": "^27.0.6", + "@jest/test-result": "^27.0.6", + "@jest/types": "^27.0.6", "chalk": "^4.0.0", "exit": "^0.1.2", "graceful-fs": "^4.2.4", "import-local": "^3.0.2", - "jest-config": "^27.0.4", - "jest-util": "^27.0.2", - "jest-validate": "^27.0.2", + "jest-config": "^27.0.6", + "jest-util": "^27.0.6", + "jest-validate": "^27.0.6", "prompts": "^2.0.1", "yargs": "^16.0.3" }, @@ -25957,32 +25414,32 @@ } }, "jest-config": { - "version": "27.0.4", - "resolved": "https://registry.npmjs.org/jest-config/-/jest-config-27.0.4.tgz", - "integrity": "sha512-VkQFAHWnPQefdvHU9A+G3H/Z3NrrTKqWpvxgQz3nkUdkDTWeKJE6e//BL+R7z79dXOMVksYgM/z6ndtN0hfChg==", + "version": "27.0.6", + "resolved": "https://registry.npmjs.org/jest-config/-/jest-config-27.0.6.tgz", + "integrity": "sha512-JZRR3I1Plr2YxPBhgqRspDE2S5zprbga3swYNrvY3HfQGu7p/GjyLOqwrYad97tX3U3mzT53TPHVmozacfP/3w==", "dev": true, "requires": { "@babel/core": "^7.1.0", - "@jest/test-sequencer": "^27.0.4", - "@jest/types": "^27.0.2", - "babel-jest": "^27.0.2", + "@jest/test-sequencer": "^27.0.6", + "@jest/types": "^27.0.6", + "babel-jest": "^27.0.6", "chalk": "^4.0.0", "deepmerge": "^4.2.2", "glob": "^7.1.1", "graceful-fs": "^4.2.4", "is-ci": "^3.0.0", - "jest-circus": "^27.0.4", - "jest-environment-jsdom": "^27.0.3", - "jest-environment-node": "^27.0.3", - "jest-get-type": "^27.0.1", - "jest-jasmine2": "^27.0.4", - "jest-regex-util": "^27.0.1", - "jest-resolve": "^27.0.4", - "jest-runner": "^27.0.4", - "jest-util": "^27.0.2", - "jest-validate": "^27.0.2", + "jest-circus": "^27.0.6", + "jest-environment-jsdom": "^27.0.6", + "jest-environment-node": "^27.0.6", + "jest-get-type": "^27.0.6", + "jest-jasmine2": "^27.0.6", + "jest-regex-util": "^27.0.6", + "jest-resolve": "^27.0.6", + "jest-runner": "^27.0.6", + "jest-util": "^27.0.6", + "jest-validate": "^27.0.6", "micromatch": "^4.0.4", - "pretty-format": "^27.0.2" + "pretty-format": "^27.0.6" }, "dependencies": { "ansi-styles": { @@ -26080,15 +25537,15 @@ } }, "jest-diff": { - "version": "27.0.2", - "resolved": "https://registry.npmjs.org/jest-diff/-/jest-diff-27.0.2.tgz", - "integrity": "sha512-BFIdRb0LqfV1hBt8crQmw6gGQHVDhM87SpMIZ45FPYKReZYG5er1+5pIn2zKqvrJp6WNox0ylR8571Iwk2Dmgw==", + "version": "27.0.6", + "resolved": "https://registry.npmjs.org/jest-diff/-/jest-diff-27.0.6.tgz", + "integrity": "sha512-Z1mqgkTCSYaFgwTlP/NUiRzdqgxmmhzHY1Tq17zL94morOHfHu3K4bgSgl+CR4GLhpV8VxkuOYuIWnQ9LnFqmg==", "dev": true, "requires": { "chalk": "^4.0.0", - "diff-sequences": "^27.0.1", - "jest-get-type": "^27.0.1", - "pretty-format": "^27.0.2" + "diff-sequences": "^27.0.6", + "jest-get-type": "^27.0.6", + "pretty-format": "^27.0.6" }, "dependencies": { "ansi-styles": { @@ -26143,25 +25600,25 @@ } }, "jest-docblock": { - "version": "27.0.1", - "resolved": "https://registry.npmjs.org/jest-docblock/-/jest-docblock-27.0.1.tgz", - "integrity": "sha512-TA4+21s3oebURc7VgFV4r7ltdIJ5rtBH1E3Tbovcg7AV+oLfD5DcJ2V2vJ5zFA9sL5CFd/d2D6IpsAeSheEdrA==", + "version": "27.0.6", + "resolved": "https://registry.npmjs.org/jest-docblock/-/jest-docblock-27.0.6.tgz", + "integrity": "sha512-Fid6dPcjwepTFraz0YxIMCi7dejjJ/KL9FBjPYhBp4Sv1Y9PdhImlKZqYU555BlN4TQKaTc+F2Av1z+anVyGkA==", "dev": true, "requires": { "detect-newline": "^3.0.0" } }, "jest-each": { - "version": "27.0.2", - "resolved": "https://registry.npmjs.org/jest-each/-/jest-each-27.0.2.tgz", - "integrity": "sha512-OLMBZBZ6JkoXgUenDtseFRWA43wVl2BwmZYIWQws7eS7pqsIvePqj/jJmEnfq91ALk3LNphgwNK/PRFBYi7ITQ==", + "version": "27.0.6", + "resolved": "https://registry.npmjs.org/jest-each/-/jest-each-27.0.6.tgz", + "integrity": "sha512-m6yKcV3bkSWrUIjxkE9OC0mhBZZdhovIW5ergBYirqnkLXkyEn3oUUF/QZgyecA1cF1QFyTE8bRRl8Tfg1pfLA==", "dev": true, "requires": { - "@jest/types": "^27.0.2", + "@jest/types": "^27.0.6", "chalk": "^4.0.0", - "jest-get-type": "^27.0.1", - "jest-util": "^27.0.2", - "pretty-format": "^27.0.2" + "jest-get-type": "^27.0.6", + "jest-util": "^27.0.6", + "pretty-format": "^27.0.6" }, "dependencies": { "ansi-styles": { @@ -26216,57 +25673,57 @@ } }, "jest-environment-jsdom": { - "version": "27.0.3", - "resolved": "https://registry.npmjs.org/jest-environment-jsdom/-/jest-environment-jsdom-27.0.3.tgz", - "integrity": "sha512-5KLmgv1bhiimpSA8oGTnZYk6g4fsNyZiA/6gI2tAZUgrufd7heRUSVh4gRokzZVEj8zlwAQYT0Zs6tuJSW/ECA==", + "version": "27.0.6", + "resolved": "https://registry.npmjs.org/jest-environment-jsdom/-/jest-environment-jsdom-27.0.6.tgz", + "integrity": "sha512-FvetXg7lnXL9+78H+xUAsra3IeZRTiegA3An01cWeXBspKXUhAwMM9ycIJ4yBaR0L7HkoMPaZsozCLHh4T8fuw==", "dev": true, "requires": { - "@jest/environment": "^27.0.3", - "@jest/fake-timers": "^27.0.3", - "@jest/types": "^27.0.2", + "@jest/environment": "^27.0.6", + "@jest/fake-timers": "^27.0.6", + "@jest/types": "^27.0.6", "@types/node": "*", - "jest-mock": "^27.0.3", - "jest-util": "^27.0.2", + "jest-mock": "^27.0.6", + "jest-util": "^27.0.6", "jsdom": "^16.6.0" } }, "jest-environment-node": { - "version": "27.0.3", - "resolved": "https://registry.npmjs.org/jest-environment-node/-/jest-environment-node-27.0.3.tgz", - "integrity": "sha512-co2/IVnIFL3cItpFULCvXFg9us4gvWXgs7mutAMPCbFhcqh56QAOdKhNzC2+RycsC/k4mbMj1VF+9F/NzA0ROg==", + "version": "27.0.6", + "resolved": "https://registry.npmjs.org/jest-environment-node/-/jest-environment-node-27.0.6.tgz", + "integrity": "sha512-+Vi6yLrPg/qC81jfXx3IBlVnDTI6kmRr08iVa2hFCWmJt4zha0XW7ucQltCAPhSR0FEKEoJ3i+W4E6T0s9is0w==", "dev": true, "requires": { - "@jest/environment": "^27.0.3", - "@jest/fake-timers": "^27.0.3", - "@jest/types": "^27.0.2", + "@jest/environment": "^27.0.6", + "@jest/fake-timers": "^27.0.6", + "@jest/types": "^27.0.6", "@types/node": "*", - "jest-mock": "^27.0.3", - "jest-util": "^27.0.2" + "jest-mock": "^27.0.6", + "jest-util": "^27.0.6" } }, "jest-get-type": { - "version": "27.0.1", - "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-27.0.1.tgz", - "integrity": "sha512-9Tggo9zZbu0sHKebiAijyt1NM77Z0uO4tuWOxUCujAiSeXv30Vb5D4xVF4UR4YWNapcftj+PbByU54lKD7/xMg==", + "version": "27.0.6", + "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-27.0.6.tgz", + "integrity": "sha512-XTkK5exIeUbbveehcSR8w0bhH+c0yloW/Wpl+9vZrjzztCPWrxhHwkIFpZzCt71oRBsgxmuUfxEqOYoZI2macg==", "dev": true }, "jest-haste-map": { - "version": "27.0.2", - "resolved": "https://registry.npmjs.org/jest-haste-map/-/jest-haste-map-27.0.2.tgz", - "integrity": "sha512-37gYfrYjjhEfk37C4bCMWAC0oPBxDpG0qpl8lYg8BT//wf353YT/fzgA7+Dq0EtM7rPFS3JEcMsxdtDwNMi2cA==", + "version": "27.0.6", + "resolved": "https://registry.npmjs.org/jest-haste-map/-/jest-haste-map-27.0.6.tgz", + "integrity": "sha512-4ldjPXX9h8doB2JlRzg9oAZ2p6/GpQUNAeiYXqcpmrKbP0Qev0wdZlxSMOmz8mPOEnt4h6qIzXFLDi8RScX/1w==", "dev": true, "requires": { - "@jest/types": "^27.0.2", + "@jest/types": "^27.0.6", "@types/graceful-fs": "^4.1.2", "@types/node": "*", "anymatch": "^3.0.3", "fb-watchman": "^2.0.0", "fsevents": "^2.3.2", "graceful-fs": "^4.2.4", - "jest-regex-util": "^27.0.1", - "jest-serializer": "^27.0.1", - "jest-util": "^27.0.2", - "jest-worker": "^27.0.2", + "jest-regex-util": "^27.0.6", + "jest-serializer": "^27.0.6", + "jest-util": "^27.0.6", + "jest-worker": "^27.0.6", "micromatch": "^4.0.4", "walker": "^1.0.7" }, @@ -26327,28 +25784,28 @@ } }, "jest-jasmine2": { - "version": "27.0.4", - "resolved": "https://registry.npmjs.org/jest-jasmine2/-/jest-jasmine2-27.0.4.tgz", - "integrity": "sha512-yj3WrjjquZwkJw+eA4c9yucHw4/+EHndHWSqgHbHGQfT94ihaaQsa009j1a0puU8CNxPDk0c1oAPeOpdJUElwA==", + "version": "27.0.6", + "resolved": "https://registry.npmjs.org/jest-jasmine2/-/jest-jasmine2-27.0.6.tgz", + "integrity": "sha512-cjpH2sBy+t6dvCeKBsHpW41mjHzXgsavaFMp+VWRf0eR4EW8xASk1acqmljFtK2DgyIECMv2yCdY41r2l1+4iA==", "dev": true, "requires": { "@babel/traverse": "^7.1.0", - "@jest/environment": "^27.0.3", - "@jest/source-map": "^27.0.1", - "@jest/test-result": "^27.0.2", - "@jest/types": "^27.0.2", + "@jest/environment": "^27.0.6", + "@jest/source-map": "^27.0.6", + "@jest/test-result": "^27.0.6", + "@jest/types": "^27.0.6", "@types/node": "*", "chalk": "^4.0.0", "co": "^4.6.0", - "expect": "^27.0.2", + "expect": "^27.0.6", "is-generator-fn": "^2.0.0", - "jest-each": "^27.0.2", - "jest-matcher-utils": "^27.0.2", - "jest-message-util": "^27.0.2", - "jest-runtime": "^27.0.4", - "jest-snapshot": "^27.0.4", - "jest-util": "^27.0.2", - "pretty-format": "^27.0.2", + "jest-each": "^27.0.6", + "jest-matcher-utils": "^27.0.6", + "jest-message-util": "^27.0.6", + "jest-runtime": "^27.0.6", + "jest-snapshot": "^27.0.6", + "jest-util": "^27.0.6", + "pretty-format": "^27.0.6", "throat": "^6.0.1" }, "dependencies": { @@ -26404,25 +25861,25 @@ } }, "jest-leak-detector": { - "version": "27.0.2", - "resolved": "https://registry.npmjs.org/jest-leak-detector/-/jest-leak-detector-27.0.2.tgz", - "integrity": "sha512-TZA3DmCOfe8YZFIMD1GxFqXUkQnIoOGQyy4hFCA2mlHtnAaf+FeOMxi0fZmfB41ZL+QbFG6BVaZF5IeFIVy53Q==", + "version": "27.0.6", + "resolved": "https://registry.npmjs.org/jest-leak-detector/-/jest-leak-detector-27.0.6.tgz", + "integrity": "sha512-2/d6n2wlH5zEcdctX4zdbgX8oM61tb67PQt4Xh8JFAIy6LRKUnX528HulkaG6nD5qDl5vRV1NXejCe1XRCH5gQ==", "dev": true, "requires": { - "jest-get-type": "^27.0.1", - "pretty-format": "^27.0.2" + "jest-get-type": "^27.0.6", + "pretty-format": "^27.0.6" } }, "jest-matcher-utils": { - "version": "27.0.2", - "resolved": "https://registry.npmjs.org/jest-matcher-utils/-/jest-matcher-utils-27.0.2.tgz", - "integrity": "sha512-Qczi5xnTNjkhcIB0Yy75Txt+Ez51xdhOxsukN7awzq2auZQGPHcQrJ623PZj0ECDEMOk2soxWx05EXdXGd1CbA==", + "version": "27.0.6", + "resolved": "https://registry.npmjs.org/jest-matcher-utils/-/jest-matcher-utils-27.0.6.tgz", + "integrity": "sha512-OFgF2VCQx9vdPSYTHWJ9MzFCehs20TsyFi6bIHbk5V1u52zJOnvF0Y/65z3GLZHKRuTgVPY4Z6LVePNahaQ+tA==", "dev": true, "requires": { "chalk": "^4.0.0", - "jest-diff": "^27.0.2", - "jest-get-type": "^27.0.1", - "pretty-format": "^27.0.2" + "jest-diff": "^27.0.6", + "jest-get-type": "^27.0.6", + "pretty-format": "^27.0.6" }, "dependencies": { "ansi-styles": { @@ -26477,18 +25934,18 @@ } }, "jest-message-util": { - "version": "27.0.2", - "resolved": "https://registry.npmjs.org/jest-message-util/-/jest-message-util-27.0.2.tgz", - "integrity": "sha512-rTqWUX42ec2LdMkoUPOzrEd1Tcm+R1KfLOmFK+OVNo4MnLsEaxO5zPDb2BbdSmthdM/IfXxOZU60P/WbWF8BTw==", + "version": "27.0.6", + "resolved": "https://registry.npmjs.org/jest-message-util/-/jest-message-util-27.0.6.tgz", + "integrity": "sha512-rBxIs2XK7rGy+zGxgi+UJKP6WqQ+KrBbD1YMj517HYN3v2BG66t3Xan3FWqYHKZwjdB700KiAJ+iES9a0M+ixw==", "dev": true, "requires": { "@babel/code-frame": "^7.12.13", - "@jest/types": "^27.0.2", + "@jest/types": "^27.0.6", "@types/stack-utils": "^2.0.0", "chalk": "^4.0.0", "graceful-fs": "^4.2.4", "micromatch": "^4.0.4", - "pretty-format": "^27.0.2", + "pretty-format": "^27.0.6", "slash": "^3.0.0", "stack-utils": "^2.0.3" }, @@ -26594,12 +26051,12 @@ } }, "jest-mock": { - "version": "27.0.3", - "resolved": "https://registry.npmjs.org/jest-mock/-/jest-mock-27.0.3.tgz", - "integrity": "sha512-O5FZn5XDzEp+Xg28mUz4ovVcdwBBPfAhW9+zJLO0Efn2qNbYcDaJvSlRiQ6BCZUCVOJjALicuJQI9mRFjv1o9Q==", + "version": "27.0.6", + "resolved": "https://registry.npmjs.org/jest-mock/-/jest-mock-27.0.6.tgz", + "integrity": "sha512-lzBETUoK8cSxts2NYXSBWT+EJNzmUVtVVwS1sU9GwE1DLCfGsngg+ZVSIe0yd0ZSm+y791esiuo+WSwpXJQ5Bw==", "dev": true, "requires": { - "@jest/types": "^27.0.2", + "@jest/types": "^27.0.6", "@types/node": "*" } }, @@ -26611,24 +26068,24 @@ "requires": {} }, "jest-regex-util": { - "version": "27.0.1", - "resolved": "https://registry.npmjs.org/jest-regex-util/-/jest-regex-util-27.0.1.tgz", - "integrity": "sha512-6nY6QVcpTgEKQy1L41P4pr3aOddneK17kn3HJw6SdwGiKfgCGTvH02hVXL0GU8GEKtPH83eD2DIDgxHXOxVohQ==", + "version": "27.0.6", + "resolved": "https://registry.npmjs.org/jest-regex-util/-/jest-regex-util-27.0.6.tgz", + "integrity": "sha512-SUhPzBsGa1IKm8hx2F4NfTGGp+r7BXJ4CulsZ1k2kI+mGLG+lxGrs76veN2LF/aUdGosJBzKgXmNCw+BzFqBDQ==", "dev": true }, "jest-resolve": { - "version": "27.0.4", - "resolved": "https://registry.npmjs.org/jest-resolve/-/jest-resolve-27.0.4.tgz", - "integrity": "sha512-BcfyK2i3cG79PDb/6gB6zFeFQlcqLsQjGBqznFCpA0L/3l1L/oOsltdUjs5eISAWA9HS9qtj8v2PSZr/yWxONQ==", + "version": "27.0.6", + "resolved": "https://registry.npmjs.org/jest-resolve/-/jest-resolve-27.0.6.tgz", + "integrity": "sha512-yKmIgw2LgTh7uAJtzv8UFHGF7Dm7XfvOe/LQ3Txv101fLM8cx2h1QVwtSJ51Q/SCxpIiKfVn6G2jYYMDNHZteA==", "dev": true, "requires": { - "@jest/types": "^27.0.2", + "@jest/types": "^27.0.6", "chalk": "^4.0.0", "escalade": "^3.1.1", "graceful-fs": "^4.2.4", "jest-pnp-resolver": "^1.2.2", - "jest-util": "^27.0.2", - "jest-validate": "^27.0.2", + "jest-util": "^27.0.6", + "jest-validate": "^27.0.6", "resolve": "^1.20.0", "slash": "^3.0.0" }, @@ -26691,42 +26148,42 @@ } }, "jest-resolve-dependencies": { - "version": "27.0.4", - "resolved": "https://registry.npmjs.org/jest-resolve-dependencies/-/jest-resolve-dependencies-27.0.4.tgz", - "integrity": "sha512-F33UPfw1YGWCV2uxJl7wD6TvcQn5IC0LtguwY3r4L7R6H4twpLkp5Q2ZfzRx9A2I3G8feiy0O0sqcn/Qoym71A==", + "version": "27.0.6", + "resolved": "https://registry.npmjs.org/jest-resolve-dependencies/-/jest-resolve-dependencies-27.0.6.tgz", + "integrity": "sha512-mg9x9DS3BPAREWKCAoyg3QucCr0n6S8HEEsqRCKSPjPcu9HzRILzhdzY3imsLoZWeosEbJZz6TKasveczzpJZA==", "dev": true, "requires": { - "@jest/types": "^27.0.2", - "jest-regex-util": "^27.0.1", - "jest-snapshot": "^27.0.4" + "@jest/types": "^27.0.6", + "jest-regex-util": "^27.0.6", + "jest-snapshot": "^27.0.6" } }, "jest-runner": { - "version": "27.0.4", - "resolved": "https://registry.npmjs.org/jest-runner/-/jest-runner-27.0.4.tgz", - "integrity": "sha512-NfmvSYLCsCJk2AG8Ar2NAh4PhsJJpO+/r+g4bKR5L/5jFzx/indUpnVBdrfDvuqhGLLAvrKJ9FM/Nt8o1dsqxg==", + "version": "27.0.6", + "resolved": "https://registry.npmjs.org/jest-runner/-/jest-runner-27.0.6.tgz", + "integrity": "sha512-W3Bz5qAgaSChuivLn+nKOgjqNxM7O/9JOJoKDCqThPIg2sH/d4A/lzyiaFgnb9V1/w29Le11NpzTJSzga1vyYQ==", "dev": true, "requires": { - "@jest/console": "^27.0.2", - "@jest/environment": "^27.0.3", - "@jest/test-result": "^27.0.2", - "@jest/transform": "^27.0.2", - "@jest/types": "^27.0.2", + "@jest/console": "^27.0.6", + "@jest/environment": "^27.0.6", + "@jest/test-result": "^27.0.6", + "@jest/transform": "^27.0.6", + "@jest/types": "^27.0.6", "@types/node": "*", "chalk": "^4.0.0", "emittery": "^0.8.1", "exit": "^0.1.2", "graceful-fs": "^4.2.4", - "jest-docblock": "^27.0.1", - "jest-environment-jsdom": "^27.0.3", - "jest-environment-node": "^27.0.3", - "jest-haste-map": "^27.0.2", - "jest-leak-detector": "^27.0.2", - "jest-message-util": "^27.0.2", - "jest-resolve": "^27.0.4", - "jest-runtime": "^27.0.4", - "jest-util": "^27.0.2", - "jest-worker": "^27.0.2", + "jest-docblock": "^27.0.6", + "jest-environment-jsdom": "^27.0.6", + "jest-environment-node": "^27.0.6", + "jest-haste-map": "^27.0.6", + "jest-leak-detector": "^27.0.6", + "jest-message-util": "^27.0.6", + "jest-resolve": "^27.0.6", + "jest-runtime": "^27.0.6", + "jest-util": "^27.0.6", + "jest-worker": "^27.0.6", "source-map-support": "^0.5.6", "throat": "^6.0.1" }, @@ -26783,19 +26240,19 @@ } }, "jest-runtime": { - "version": "27.0.4", - "resolved": "https://registry.npmjs.org/jest-runtime/-/jest-runtime-27.0.4.tgz", - "integrity": "sha512-voJB4xbAjS/qYPboV+e+gmg3jfvHJJY4CagFWBOM9dQKtlaiTjcpD2tWwla84Z7PtXSQPeIpXY0qksA9Dum29A==", - "dev": true, - "requires": { - "@jest/console": "^27.0.2", - "@jest/environment": "^27.0.3", - "@jest/fake-timers": "^27.0.3", - "@jest/globals": "^27.0.3", - "@jest/source-map": "^27.0.1", - "@jest/test-result": "^27.0.2", - "@jest/transform": "^27.0.2", - "@jest/types": "^27.0.2", + "version": "27.0.6", + "resolved": "https://registry.npmjs.org/jest-runtime/-/jest-runtime-27.0.6.tgz", + "integrity": "sha512-BhvHLRVfKibYyqqEFkybsznKwhrsu7AWx2F3y9G9L95VSIN3/ZZ9vBpm/XCS2bS+BWz3sSeNGLzI3TVQ0uL85Q==", + "dev": true, + "requires": { + "@jest/console": "^27.0.6", + "@jest/environment": "^27.0.6", + "@jest/fake-timers": "^27.0.6", + "@jest/globals": "^27.0.6", + "@jest/source-map": "^27.0.6", + "@jest/test-result": "^27.0.6", + "@jest/transform": "^27.0.6", + "@jest/types": "^27.0.6", "@types/yargs": "^16.0.0", "chalk": "^4.0.0", "cjs-module-lexer": "^1.0.0", @@ -26803,14 +26260,14 @@ "exit": "^0.1.2", "glob": "^7.1.3", "graceful-fs": "^4.2.4", - "jest-haste-map": "^27.0.2", - "jest-message-util": "^27.0.2", - "jest-mock": "^27.0.3", - "jest-regex-util": "^27.0.1", - "jest-resolve": "^27.0.4", - "jest-snapshot": "^27.0.4", - "jest-util": "^27.0.2", - "jest-validate": "^27.0.2", + "jest-haste-map": "^27.0.6", + "jest-message-util": "^27.0.6", + "jest-mock": "^27.0.6", + "jest-regex-util": "^27.0.6", + "jest-resolve": "^27.0.6", + "jest-snapshot": "^27.0.6", + "jest-util": "^27.0.6", + "jest-validate": "^27.0.6", "slash": "^3.0.0", "strip-bom": "^4.0.0", "yargs": "^16.0.3" @@ -26874,9 +26331,9 @@ } }, "jest-serializer": { - "version": "27.0.1", - "resolved": "https://registry.npmjs.org/jest-serializer/-/jest-serializer-27.0.1.tgz", - "integrity": "sha512-svy//5IH6bfQvAbkAEg1s7xhhgHTtXu0li0I2fdKHDsLP2P2MOiscPQIENQep8oU2g2B3jqLyxKKzotZOz4CwQ==", + "version": "27.0.6", + "resolved": "https://registry.npmjs.org/jest-serializer/-/jest-serializer-27.0.6.tgz", + "integrity": "sha512-PtGdVK9EGC7dsaziskfqaAPib6wTViY3G8E5wz9tLVPhHyiDNTZn/xjZ4khAw+09QkoOVpn7vF5nPSN6dtBexA==", "dev": true, "requires": { "@types/node": "*", @@ -26884,9 +26341,9 @@ } }, "jest-snapshot": { - "version": "27.0.4", - "resolved": "https://registry.npmjs.org/jest-snapshot/-/jest-snapshot-27.0.4.tgz", - "integrity": "sha512-hnjrvpKGdSMvKfbHyaG5Kul7pDJGZvjVy0CKpzhu28MmAssDXS6GpynhXzgst1wBQoKD8c9b2VS2a5yhDLQRCA==", + "version": "27.0.6", + "resolved": "https://registry.npmjs.org/jest-snapshot/-/jest-snapshot-27.0.6.tgz", + "integrity": "sha512-NTHaz8He+ATUagUgE7C/UtFcRoHqR2Gc+KDfhQIyx+VFgwbeEMjeP+ILpUTLosZn/ZtbNdCF5LkVnN/l+V751A==", "dev": true, "requires": { "@babel/core": "^7.7.2", @@ -26895,23 +26352,23 @@ "@babel/plugin-syntax-typescript": "^7.7.2", "@babel/traverse": "^7.7.2", "@babel/types": "^7.0.0", - "@jest/transform": "^27.0.2", - "@jest/types": "^27.0.2", + "@jest/transform": "^27.0.6", + "@jest/types": "^27.0.6", "@types/babel__traverse": "^7.0.4", "@types/prettier": "^2.1.5", "babel-preset-current-node-syntax": "^1.0.0", "chalk": "^4.0.0", - "expect": "^27.0.2", + "expect": "^27.0.6", "graceful-fs": "^4.2.4", - "jest-diff": "^27.0.2", - "jest-get-type": "^27.0.1", - "jest-haste-map": "^27.0.2", - "jest-matcher-utils": "^27.0.2", - "jest-message-util": "^27.0.2", - "jest-resolve": "^27.0.4", - "jest-util": "^27.0.2", + "jest-diff": "^27.0.6", + "jest-get-type": "^27.0.6", + "jest-haste-map": "^27.0.6", + "jest-matcher-utils": "^27.0.6", + "jest-message-util": "^27.0.6", + "jest-resolve": "^27.0.6", + "jest-util": "^27.0.6", "natural-compare": "^1.4.0", - "pretty-format": "^27.0.2", + "pretty-format": "^27.0.6", "semver": "^7.3.2" }, "dependencies": { @@ -26976,12 +26433,12 @@ } }, "jest-util": { - "version": "27.0.2", - "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-27.0.2.tgz", - "integrity": "sha512-1d9uH3a00OFGGWSibpNYr+jojZ6AckOMCXV2Z4K3YXDnzpkAaXQyIpY14FOJPiUmil7CD+A6Qs+lnnh6ctRbIA==", + "version": "27.0.6", + "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-27.0.6.tgz", + "integrity": "sha512-1JjlaIh+C65H/F7D11GNkGDDZtDfMEM8EBXsvd+l/cxtgQ6QhxuloOaiayt89DxUvDarbVhqI98HhgrM1yliFQ==", "dev": true, "requires": { - "@jest/types": "^27.0.2", + "@jest/types": "^27.0.6", "@types/node": "*", "chalk": "^4.0.0", "graceful-fs": "^4.2.4", @@ -27041,17 +26498,17 @@ } }, "jest-validate": { - "version": "27.0.2", - "resolved": "https://registry.npmjs.org/jest-validate/-/jest-validate-27.0.2.tgz", - "integrity": "sha512-UgBF6/oVu1ofd1XbaSotXKihi8nZhg0Prm8twQ9uCuAfo59vlxCXMPI/RKmrZEVgi3Nd9dS0I8A0wzWU48pOvg==", + "version": "27.0.6", + "resolved": "https://registry.npmjs.org/jest-validate/-/jest-validate-27.0.6.tgz", + "integrity": "sha512-yhZZOaMH3Zg6DC83n60pLmdU1DQE46DW+KLozPiPbSbPhlXXaiUTDlhHQhHFpaqIFRrInko1FHXjTRpjWRuWfA==", "dev": true, "requires": { - "@jest/types": "^27.0.2", + "@jest/types": "^27.0.6", "camelcase": "^6.2.0", "chalk": "^4.0.0", - "jest-get-type": "^27.0.1", + "jest-get-type": "^27.0.6", "leven": "^3.1.0", - "pretty-format": "^27.0.2" + "pretty-format": "^27.0.6" }, "dependencies": { "ansi-styles": { @@ -27112,17 +26569,17 @@ } }, "jest-watcher": { - "version": "27.0.2", - "resolved": "https://registry.npmjs.org/jest-watcher/-/jest-watcher-27.0.2.tgz", - "integrity": "sha512-8nuf0PGuTxWj/Ytfw5fyvNn/R80iXY8QhIT0ofyImUvdnoaBdT6kob0GmhXR+wO+ALYVnh8bQxN4Tjfez0JgkA==", + "version": "27.0.6", + "resolved": "https://registry.npmjs.org/jest-watcher/-/jest-watcher-27.0.6.tgz", + "integrity": "sha512-/jIoKBhAP00/iMGnTwUBLgvxkn7vsOweDrOTSPzc7X9uOyUtJIDthQBTI1EXz90bdkrxorUZVhJwiB69gcHtYQ==", "dev": true, "requires": { - "@jest/test-result": "^27.0.2", - "@jest/types": "^27.0.2", + "@jest/test-result": "^27.0.6", + "@jest/types": "^27.0.6", "@types/node": "*", "ansi-escapes": "^4.2.1", "chalk": "^4.0.0", - "jest-util": "^27.0.2", + "jest-util": "^27.0.6", "string-length": "^4.0.1" }, "dependencies": { @@ -27178,9 +26635,9 @@ } }, "jest-worker": { - "version": "27.0.2", - "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-27.0.2.tgz", - "integrity": "sha512-EoBdilOTTyOgmHXtw/cPc+ZrCA0KJMrkXzkrPGNwLmnvvlN1nj7MPrxpT7m+otSv2e1TLaVffzDnE/LB14zJMg==", + "version": "27.0.6", + "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-27.0.6.tgz", + "integrity": "sha512-qupxcj/dRuA3xHPMUd40gr2EaAurFbkwzOh7wfPaeE9id7hyjURRQoqNfHifHK3XjJU6YJJUQKILGUnwGPEOCA==", "dev": true, "requires": { "@types/node": "*", @@ -27264,9 +26721,9 @@ }, "dependencies": { "acorn": { - "version": "8.4.0", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.4.0.tgz", - "integrity": "sha512-ULr0LDaEqQrMFGyQ3bhJkLsbtrQ8QibAseGZeaSUiT/6zb9IvIkomWHJIvgvwad+hinRAgsI51JcWk2yvwyL+w==", + "version": "8.4.1", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.4.1.tgz", + "integrity": "sha512-asabaBSkEKosYKMITunzX177CXxQ4Q8BSSzMTKD+FefUhipQC70gfW5SiUDhYQ3vk8G+81HqQk7Fv9OXwwn9KA==", "dev": true } } @@ -27390,22 +26847,22 @@ "dev": true }, "lint-staged": { - "version": "10.5.4", - "resolved": "https://registry.npmjs.org/lint-staged/-/lint-staged-10.5.4.tgz", - "integrity": "sha512-EechC3DdFic/TdOPgj/RB3FicqE6932LTHCUm0Y2fsD9KGlLB+RwJl2q1IYBIvEsKzDOgn0D4gll+YxG5RsrKg==", + "version": "11.0.0", + "resolved": "https://registry.npmjs.org/lint-staged/-/lint-staged-11.0.0.tgz", + "integrity": "sha512-3rsRIoyaE8IphSUtO1RVTFl1e0SLBtxxUOPBtHxQgBHS5/i6nqvjcUfNioMa4BU9yGnPzbO+xkfLtXtxBpCzjw==", "dev": true, "requires": { - "chalk": "^4.1.0", + "chalk": "^4.1.1", "cli-truncate": "^2.1.0", - "commander": "^6.2.0", + "commander": "^7.2.0", "cosmiconfig": "^7.0.0", - "debug": "^4.2.0", + "debug": "^4.3.1", "dedent": "^0.7.0", "enquirer": "^2.3.6", - "execa": "^4.1.0", - "listr2": "^3.2.2", - "log-symbols": "^4.0.0", - "micromatch": "^4.0.2", + "execa": "^5.0.0", + "listr2": "^3.8.2", + "log-symbols": "^4.1.0", + "micromatch": "^4.0.4", "normalize-path": "^3.0.0", "please-upgrade-node": "^3.2.0", "string-argv": "0.3.1", @@ -27456,9 +26913,9 @@ "dev": true }, "commander": { - "version": "6.2.1", - "resolved": "https://registry.npmjs.org/commander/-/commander-6.2.1.tgz", - "integrity": "sha512-U7VdrJFnJgo4xjrHpTzu0yrHPGImdsmD95ZlgYSEajAn2JKzDhDTPG9kBTefmObL2w/ngeZnilk+OV9CG3d7UA==", + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-7.2.0.tgz", + "integrity": "sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw==", "dev": true }, "fill-range": { @@ -27513,71 +26970,18 @@ } }, "listr2": { - "version": "3.8.1", - "resolved": "https://registry.npmjs.org/listr2/-/listr2-3.8.1.tgz", - "integrity": "sha512-75vMLokDIEoZIXp3FE3P7U4yi7BRroZb7Az9+XBq+wGGnvq70QPT+BX41aSrROUMLuVan9l3aAjdeXWgaFyFEw==", + "version": "3.10.0", + "resolved": "https://registry.npmjs.org/listr2/-/listr2-3.10.0.tgz", + "integrity": "sha512-eP40ZHihu70sSmqFNbNy2NL1YwImmlMmPh9WO5sLmPDleurMHt3n+SwEWNu2kzKScexZnkyFtc1VI0z/TGlmpw==", "dev": true, "requires": { - "chalk": "^4.1.1", "cli-truncate": "^2.1.0", - "figures": "^3.2.0", - "indent-string": "^4.0.0", + "colorette": "^1.2.2", "log-update": "^4.0.0", "p-map": "^4.0.0", "rxjs": "^6.6.7", "through": "^2.3.8", "wrap-ansi": "^7.0.0" - }, - "dependencies": { - "ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "requires": { - "color-convert": "^2.0.1" - } - }, - "chalk": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.1.tgz", - "integrity": "sha512-diHzdDKxcU+bAsUboHLPEDQiw0qEe0qd7SYUn3HgcFlWgbDcfLGswOHYeGrHKzG9z6UYf01d9VFMfZxPM1xZSg==", - "dev": true, - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - }, - "color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "requires": { - "color-name": "~1.1.4" - } - }, - "color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true - }, - "has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true - }, - "supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dev": true, - "requires": { - "has-flag": "^4.0.0" - } - } } }, "load-json-file": { @@ -27671,12 +27075,6 @@ "integrity": "sha1-nMtOUF1Ia5FlE0V3KIWi3yf9AXw=", "dev": true }, - "lodash.flatten": { - "version": "4.4.0", - "resolved": "https://registry.npmjs.org/lodash.flatten/-/lodash.flatten-4.4.0.tgz", - "integrity": "sha1-8xwiIlqWMtK7+OSt2+8kCqdlph8=", - "dev": true - }, "lodash.ismatch": { "version": "4.4.0", "resolved": "https://registry.npmjs.org/lodash.ismatch/-/lodash.ismatch-4.4.0.tgz", @@ -28170,18 +27568,18 @@ "dev": true }, "mime-db": { - "version": "1.47.0", - "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.47.0.tgz", - "integrity": "sha512-QBmA/G2y+IfeS4oktet3qRZ+P5kPhCKRXxXnQEudYqUaEioAU1/Lq2us3D/t1Jfo4hE9REQPrbB7K5sOczJVIw==", + "version": "1.48.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.48.0.tgz", + "integrity": "sha512-FM3QwxV+TnZYQ2aRqhlKBMHxk10lTbMt3bBkMAp54ddrNeVSfcQYOOKuGuy3Ddrm38I04If834fOUSq1yzslJQ==", "dev": true }, "mime-types": { - "version": "2.1.30", - "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.30.tgz", - "integrity": "sha512-crmjA4bLtR8m9qLpHvgxSChT+XoSlZi8J4n/aIdn3z92e/U47Z0V/yl+Wh9W046GgFVAmoNR/fmdbZYcSSIUeg==", + "version": "2.1.31", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.31.tgz", + "integrity": "sha512-XGZnNzm3QvgKxa8dpzyhFTHmpP3l5YNusmne07VUOXxou9CqUqYa/HBy124RqtVh/O2pECas/MOcsDgpilPOPg==", "dev": true, "requires": { - "mime-db": "1.47.0" + "mime-db": "1.48.0" } }, "mimic-fn": { @@ -28401,9 +27799,9 @@ "dev": true }, "node-releases": { - "version": "1.1.71", - "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-1.1.71.tgz", - "integrity": "sha512-zR6HoT6LrLCRBwukmrVbHv0EpEQjksO6GmFcZQQuCAy139BEsoVKPYnf3jongYW83fAa1torLGYwxxky/p28sg==", + "version": "1.1.73", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-1.1.73.tgz", + "integrity": "sha512-uW7fodD6pyW2FZNZnp/Z3hvWKeEW1Y8R1+1CnErE8cXFXzl5blBOoVB41CvMer6P6Q0S5FXDwcHgFd1Wj0U9zg==", "dev": true }, "normalize-package-data": { @@ -28607,9 +28005,9 @@ } }, "object-inspect": { - "version": "1.10.2", - "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.10.2.tgz", - "integrity": "sha512-gz58rdPpadwztRrPjZE9DZLOABUpTGdcANUgOwBFO1C+HZZhePoP83M65WGDmbpwFYJSWqavbl4SgDn4k8RYTA==", + "version": "1.10.3", + "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.10.3.tgz", + "integrity": "sha512-e5mCJlSH7poANfC8z8S9s9S2IN5/4Zb3aZ33f5s8YqoazCFzNLloLU8r5VCG+G7WoqLvAAZoVMcy3tp/3X0Plw==", "dev": true }, "object-is": { @@ -28659,15 +28057,14 @@ } }, "object.values": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/object.values/-/object.values-1.1.3.tgz", - "integrity": "sha512-nkF6PfDB9alkOUxpf1HNm/QlkeW3SReqL5WXeBLpEJJnlPSvRaDQpW3gQTksTN3fgJX4hL42RzKyOin6ff3tyw==", + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/object.values/-/object.values-1.1.4.tgz", + "integrity": "sha512-TnGo7j4XSnKQoK3MfvkzqKCi0nVe/D9I9IjwTNYdb/fxYHpjrluHVOgw0AF6jrRFGMPHdfuidR09tIDiIvnaSg==", "dev": true, "requires": { "call-bind": "^1.0.2", "define-properties": "^1.1.3", - "es-abstract": "^1.18.0-next.2", - "has": "^1.0.3" + "es-abstract": "^1.18.2" } }, "obuf": { @@ -28883,9 +28280,9 @@ "dev": true }, "path-parse": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.6.tgz", - "integrity": "sha512-GSmOT2EbHrINBf9SR7CDELwlJ8AENk3Qn7OikK4nFYAu3Ote2+JYNVvkpAEQm3/TLNEJFD/xZJjzyxg3KBWOzw==", + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", + "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==", "dev": true }, "path-to-regexp": { @@ -28901,9 +28298,9 @@ "dev": true }, "picomatch": { - "version": "2.2.3", - "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.2.3.tgz", - "integrity": "sha512-KpELjfwcCDUb9PeigTs2mBJzXUPzAuP2oPcA989He8Rte0+YUAjw1JVedDhuTKPkHjSYzMN3npC9luThGYEKdg==", + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.0.tgz", + "integrity": "sha512-lY1Q/PiJGC2zOv/z391WOTD+Z02bCgsFfvxoXXf6h7kv9o+WmsmzYqrAwY63sNgOxE4xEdq0WyUnXfKeBrSvYw==", "dev": true }, "pidtree": { @@ -29107,9 +28504,9 @@ "dev": true }, "postcss": { - "version": "8.3.0", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.3.0.tgz", - "integrity": "sha512-+ogXpdAjWGa+fdYY5BQ96V/6tAo+TdSSIMP5huJBIygdWwKtVoB5JWZ7yUd4xZ8r+8Kvvx4nyg/PQ071H4UtcQ==", + "version": "8.3.5", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.3.5.tgz", + "integrity": "sha512-NxTuJocUhYGsMiMFHDUkmjSKT3EdH4/WbGF6GCi1NDGk+vbcUTun4fpbOqaPtD8IIsztA2ilZm2DhYCuyN58gA==", "dev": true, "requires": { "colorette": "^1.2.2", @@ -29154,9 +28551,9 @@ } }, "postcss-selector-parser": { - "version": "6.0.5", - "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.0.5.tgz", - "integrity": "sha512-aFYPoYmXbZ1V6HZaSvat08M97A8HqO6Pjz+PiNpw/DhuRrC72XWAdp3hL6wusDCN31sSmcZyMGa2hZEuX+Xfhg==", + "version": "6.0.6", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.0.6.tgz", + "integrity": "sha512-9LXrvaaX3+mcv5xkg5kFwqSzSH1JIObIx51PrndZwlmznwXRfxMddDvo9gve3gVR8ZTKgoFDdWkbRFmEhT4PMg==", "dev": true, "requires": { "cssesc": "^3.0.0", @@ -29176,18 +28573,18 @@ "dev": true }, "prettier": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/prettier/-/prettier-2.3.1.tgz", - "integrity": "sha512-p+vNbgpLjif/+D+DwAZAbndtRrR0md0MwfmOVN9N+2RgyACMT+7tfaRnT+WDPkqnuVwleyuBIG2XBxKDme3hPA==", + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/prettier/-/prettier-2.3.2.tgz", + "integrity": "sha512-lnJzDfJ66zkMy58OL5/NY5zp70S7Nz6KqcKkXYzn2tMVrNxvbqaBpg7H3qHaLxCJ5lNMsGuM8+ohS7cZrthdLQ==", "dev": true }, "pretty-format": { - "version": "27.0.2", - "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-27.0.2.tgz", - "integrity": "sha512-mXKbbBPnYTG7Yra9qFBtqj+IXcsvxsvOBco3QHxtxTl+hHKq6QdzMZ+q0CtL4ORHZgwGImRr2XZUX2EWzORxig==", + "version": "27.0.6", + "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-27.0.6.tgz", + "integrity": "sha512-8tGD7gBIENgzqA+UBzObyWqQ5B778VIFZA/S66cclyd5YkFLYs2Js7gxDKf0MXtTc9zcS7t1xhdfcElJ3YIvkQ==", "dev": true, "requires": { - "@jest/types": "^27.0.2", + "@jest/types": "^27.0.6", "ansi-regex": "^5.0.0", "ansi-styles": "^5.0.0", "react-is": "^17.0.1" @@ -29234,12 +28631,12 @@ } }, "proxy-addr": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.6.tgz", - "integrity": "sha512-dh/frvCBVmSsDYzw6n926jv974gddhkFPfiN8hPOi30Wax25QZyZEGveluCgliBnqmuM+UJmBErbAUFIoDbjOw==", + "version": "2.0.7", + "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.7.tgz", + "integrity": "sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg==", "dev": true, "requires": { - "forwarded": "~0.1.2", + "forwarded": "0.2.0", "ipaddr.js": "1.9.1" } }, @@ -29276,6 +28673,12 @@ "integrity": "sha1-fjL3W0E4EpHQRhHxvxQQmsAGUdc=", "dev": true }, + "qs": { + "version": "6.7.0", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.7.0.tgz", + "integrity": "sha512-VCdBRNFTX1fyE7Nb6FYoURo/SPe62QCaAyzJvUjwRaIsc+NePBEniHlvxFmmX56+HZphIGtV0XeCirBtpDrTyQ==", + "dev": true + }, "querystring": { "version": "0.2.0", "resolved": "https://registry.npmjs.org/querystring/-/querystring-0.2.0.tgz", @@ -29571,9 +28974,9 @@ } }, "regexpp": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/regexpp/-/regexpp-3.1.0.tgz", - "integrity": "sha512-ZOIzd8yVsQQA7j8GCSlPGXwg5PfmA1mrq0JP4nGhh54LaKN3xdai/vHUDu74pKwV8OxseMS65u2NImosQcSD0Q==", + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/regexpp/-/regexpp-3.2.0.tgz", + "integrity": "sha512-pq2bWo9mVD43nbts2wGv17XLiNLya+GklZ8kaDLV2Z08gDCsGpnKn9BFMepvWuHCbyVvY7J5o5+BVvoQbmlJLg==", "dev": true }, "regexpu-core": { @@ -29818,9 +29221,9 @@ "dev": true }, "selfsigned": { - "version": "1.10.8", - "resolved": "https://registry.npmjs.org/selfsigned/-/selfsigned-1.10.8.tgz", - "integrity": "sha512-2P4PtieJeEwVgTU9QEcwIRDQ/mXJLX8/+I3ur+Pg16nS8oNbrGxEso9NyYWy8NAmXiNl4dlAp5MwoNeCWzON4w==", + "version": "1.10.11", + "resolved": "https://registry.npmjs.org/selfsigned/-/selfsigned-1.10.11.tgz", + "integrity": "sha512-aVmbPOfViZqOZPgRBT0+3u4yZFHpmnIghLMlAcb5/xhp5ZtB/RVnKhz5vl2M32CLXAqR4kha9zfhNg0Lf/sxKA==", "dev": true, "requires": { "node-forge": "^0.10.0" @@ -30208,14 +29611,6 @@ "faye-websocket": "^0.11.3", "uuid": "^3.4.0", "websocket-driver": "^0.7.4" - }, - "dependencies": { - "uuid": { - "version": "3.4.0", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.4.0.tgz", - "integrity": "sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A==", - "dev": true - } } }, "sockjs-client": { @@ -30246,7 +29641,8 @@ "source-list-map": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/source-list-map/-/source-list-map-2.0.1.tgz", - "integrity": "sha512-qnQ7gVMxGNxsiL4lEuJwe/To8UnK7fAnmbGEEH8RpLouuKbeEm0lhbQVFIrNSuB+G7tVrAlVsZgETT5nljf+Iw==" + "integrity": "sha512-qnQ7gVMxGNxsiL4lEuJwe/To8UnK7fAnmbGEEH8RpLouuKbeEm0lhbQVFIrNSuB+G7tVrAlVsZgETT5nljf+Iw==", + "dev": true }, "source-map": { "version": "0.5.7", @@ -30348,9 +29744,9 @@ } }, "spdx-license-ids": { - "version": "3.0.7", - "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.7.tgz", - "integrity": "sha512-U+MTEOO0AiDzxwFvoa4JVnMV6mZlJKk2sBLt90s7G0Gd0Mlknc7kxEn3nuDPNZRta7O2uy8oLcZLVT+4sqNZHQ==", + "version": "3.0.9", + "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.9.tgz", + "integrity": "sha512-Ki212dKK4ogX+xDo4CtOZBVIwhsKBEfsEEcwmJfLQzirgc2jIWdzg40Unxz/HzEUqM1WFzVlQSMF9kZZ2HboLQ==", "dev": true }, "spdy": { @@ -30484,9 +29880,9 @@ } }, "standard-version": { - "version": "9.2.0", - "resolved": "https://registry.npmjs.org/standard-version/-/standard-version-9.2.0.tgz", - "integrity": "sha512-utJcqjk/wR4sePSwDoRcc5CzJ6S+kec5Hd0+1TJI+j1TRYuuptweAnEUdkkjGf2vYoGab2ezefyVtW065HZ1Uw==", + "version": "9.3.0", + "resolved": "https://registry.npmjs.org/standard-version/-/standard-version-9.3.0.tgz", + "integrity": "sha512-cYxxKXhYfI3S9+CA84HmrJa9B88H56V5FQ302iFF2TNwJukJCNoU8FgWt+11YtwKFXRkQQFpepC2QOF7aDq2Ow==", "dev": true, "requires": { "chalk": "^2.4.2", @@ -30506,6 +29902,17 @@ "yargs": "^16.0.0" }, "dependencies": { + "conventional-changelog-conventionalcommits": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/conventional-changelog-conventionalcommits/-/conventional-changelog-conventionalcommits-4.5.0.tgz", + "integrity": "sha512-buge9xDvjjOxJlyxUnar/+6i/aVEVGA7EEh4OafBCXPlLUQPGbRUBhBUveWRxzvR8TEjhKEP4BdepnpG2FSZXw==", + "dev": true, + "requires": { + "compare-func": "^2.0.0", + "lodash": "^4.17.15", + "q": "^1.5.1" + } + }, "semver": { "version": "7.3.5", "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.5.tgz", @@ -30780,14 +30187,13 @@ "dev": true }, "table": { - "version": "6.6.0", - "resolved": "https://registry.npmjs.org/table/-/table-6.6.0.tgz", - "integrity": "sha512-iZMtp5tUvcnAdtHpZTWLPF0M7AgiQsURR2DwmxnJwSy8I3+cY+ozzVvYha3BOLG2TB+L0CqjIz+91htuj6yCXg==", + "version": "6.7.1", + "resolved": "https://registry.npmjs.org/table/-/table-6.7.1.tgz", + "integrity": "sha512-ZGum47Yi6KOOFDE8m223td53ath2enHcYLgOCjGr5ngu8bdIARQk6mN/wRMv4yMRcHnCSnHbCEha4sobQx5yWg==", "dev": true, "requires": { "ajv": "^8.0.1", "lodash.clonedeep": "^4.5.0", - "lodash.flatten": "^4.4.0", "lodash.truncate": "^4.4.2", "slice-ansi": "^4.0.0", "string-width": "^4.2.0", @@ -30795,9 +30201,9 @@ }, "dependencies": { "ajv": { - "version": "8.2.0", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.2.0.tgz", - "integrity": "sha512-WSNGFuyWd//XO8n/m/EaOlNLtO0yL8EXT/74LqT4khdhpZjP7lkj/kT5uwRmGitKEVp/Oj7ZUHeGfPtgHhQ5CA==", + "version": "8.6.0", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.6.0.tgz", + "integrity": "sha512-cnUG4NSBiM4YFBxgZIj/In3/6KX+rQ2l2YPRVcvAMQGWEPKuXoPIhxzwqh31jA3IPbI4qEOp/5ILI4ynioXsGQ==", "dev": true, "requires": { "fast-deep-equal": "^3.1.1", @@ -30910,9 +30316,9 @@ } }, "terser": { - "version": "5.7.0", - "resolved": "https://registry.npmjs.org/terser/-/terser-5.7.0.tgz", - "integrity": "sha512-HP5/9hp2UaZt5fYkuhNBR8YyRcT8juw8+uFbAme53iN9hblvKnLUTKkmwJG6ocWpIKf8UK4DoeWG4ty0J6S6/g==", + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/terser/-/terser-5.7.1.tgz", + "integrity": "sha512-b3e+d5JbHAe/JSjwsC3Zn55wsBIM7AsHLjKxT31kGCldgbpFePaFo+PiddtO6uwRZWRw7sPXmAN8dTW61xmnSg==", "dev": true, "requires": { "commander": "^2.20.0", @@ -31118,18 +30524,18 @@ } }, "tr46": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/tr46/-/tr46-2.0.2.tgz", - "integrity": "sha512-3n1qG+/5kg+jrbTzwAykB5yRYtQCTqOGKq5U5PE3b0a1/mzo6snDhjGS0zJVJunO0NrT3Dg1MLy5TjWP/UJppg==", + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/tr46/-/tr46-2.1.0.tgz", + "integrity": "sha512-15Ih7phfcdP5YxqiB+iDtLoaTz4Nd35+IiAv0kQ5FNKHzXgdWqPoTIqEDDJmXceQt4JZk6lVPT8lnDlPpGDppw==", "dev": true, "requires": { "punycode": "^2.1.1" } }, "trim-newlines": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/trim-newlines/-/trim-newlines-3.0.0.tgz", - "integrity": "sha512-C4+gOpvmxaSMKuEf9Qc134F1ZuOHVXKRbtEflf4NTtuuJDEIJ9p5PXsalL8SkeRw+qit1Mo+yuvMPAKwWg/1hA==", + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/trim-newlines/-/trim-newlines-3.0.1.tgz", + "integrity": "sha512-c1PTsA3tYrIsLGkJkzHF+w9F2EyxfXGo4UyJc4pFL++FMjnq0HJS69T3M7d//gKrFKwy429bouPescbjecU+Zw==", "dev": true }, "trim-off-newlines": { @@ -31220,9 +30626,9 @@ } }, "uglify-js": { - "version": "3.13.4", - "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-3.13.4.tgz", - "integrity": "sha512-kv7fCkIXyQIilD5/yQy8O+uagsYIOt5cZvs890W40/e/rvjMSzJw81o9Bg0tkURxzZBROtDQhW2LFjOGoK3RZw==", + "version": "3.13.10", + "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-3.13.10.tgz", + "integrity": "sha512-57H3ACYFXeo1IaZ1w02sfA71wI60MGco/IQFjOqK+WtKoprh7Go2/yvd2HPtoJILO2Or84ncLccI4xoHMTSbGg==", "dev": true, "optional": true }, @@ -31396,6 +30802,12 @@ "integrity": "sha1-n5VxD1CiZ5R7LMwSR0HBAoQn5xM=", "dev": true }, + "uuid": { + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.4.0.tgz", + "integrity": "sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A==", + "dev": true + }, "v8-compile-cache": { "version": "2.3.0", "resolved": "https://registry.npmjs.org/v8-compile-cache/-/v8-compile-cache-2.3.0.tgz", @@ -31403,9 +30815,9 @@ "dev": true }, "v8-to-istanbul": { - "version": "7.1.2", - "resolved": "https://registry.npmjs.org/v8-to-istanbul/-/v8-to-istanbul-7.1.2.tgz", - "integrity": "sha512-TxNb7YEUwkLXCQYeudi6lgQ/SZrzNO4kMdlqVxaZPUIUjCv6iSSypUQX70kNBSERpQ8fk48+d61FXk+tgqcWow==", + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/v8-to-istanbul/-/v8-to-istanbul-8.0.0.tgz", + "integrity": "sha512-LkmXi8UUNxnCC+JlH7/fsfsKr5AU110l+SYGJimWNkWhxbN5EyeOtm1MJ0hhvqMMOhGwBj1Fp70Yv9i+hX0QAg==", "dev": true, "requires": { "@types/istanbul-lib-coverage": "^2.0.1", @@ -31490,13 +30902,13 @@ "dev": true }, "webpack": { - "version": "5.40.0", - "resolved": "https://registry.npmjs.org/webpack/-/webpack-5.40.0.tgz", - "integrity": "sha512-c7f5e/WWrxXWUzQqTBg54vBs5RgcAgpvKE4F4VegVgfo4x660ZxYUF2/hpMkZUnLjgytVTitjeXaN4IPlXCGIw==", + "version": "5.41.1", + "resolved": "https://registry.npmjs.org/webpack/-/webpack-5.41.1.tgz", + "integrity": "sha512-AJZIIsqJ/MVTmegEq9Tlw5mk5EHdGiJbDdz9qP15vmUH+oxI1FdWcL0E9EO8K/zKaRPWqEs7G/OPxq1P61u5Ug==", "dev": true, "requires": { "@types/eslint-scope": "^3.7.0", - "@types/estree": "^0.0.47", + "@types/estree": "^0.0.48", "@webassemblyjs/ast": "1.11.0", "@webassemblyjs/wasm-edit": "1.11.0", "@webassemblyjs/wasm-parser": "1.11.0", @@ -31525,22 +30937,6 @@ "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.4.1.tgz", "integrity": "sha512-asabaBSkEKosYKMITunzX177CXxQ4Q8BSSzMTKD+FefUhipQC70gfW5SiUDhYQ3vk8G+81HqQk7Fv9OXwwn9KA==", "dev": true - }, - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true - }, - "webpack-sources": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-2.3.0.tgz", - "integrity": "sha512-WyOdtwSvOML1kbgtXbTDnEW0jkJ7hZr/bDByIwszhWd/4XX1A3XMkrbFMsuH4+/MfLlZCUzlAdg4r7jaGKEIgQ==", - "dev": true, - "requires": { - "source-list-map": "^2.0.1", - "source-map": "^0.6.1" - } } } }, @@ -31571,35 +30967,6 @@ "integrity": "sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw==", "dev": true }, - "execa": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/execa/-/execa-5.0.0.tgz", - "integrity": "sha512-ov6w/2LCiuyO4RLYGdpFGjkcs0wMTgGE8PrkTHikeUy5iJekXyPIKUjifk5CsE0pt7sMCrMZ3YNqoCj6idQOnQ==", - "dev": true, - "requires": { - "cross-spawn": "^7.0.3", - "get-stream": "^6.0.0", - "human-signals": "^2.1.0", - "is-stream": "^2.0.0", - "merge-stream": "^2.0.0", - "npm-run-path": "^4.0.1", - "onetime": "^5.1.2", - "signal-exit": "^3.0.3", - "strip-final-newline": "^2.0.0" - } - }, - "get-stream": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz", - "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==", - "dev": true - }, - "human-signals": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-2.1.0.tgz", - "integrity": "sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==", - "dev": true - }, "interpret": { "version": "2.2.0", "resolved": "https://registry.npmjs.org/interpret/-/interpret-2.2.0.tgz", @@ -31783,6 +31150,27 @@ "nan": "^2.12.1" } }, + "glob-parent": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-3.1.0.tgz", + "integrity": "sha1-nmr2KZ2NO9K9QEMIMr0RPfkGxa4=", + "dev": true, + "requires": { + "is-glob": "^3.1.0", + "path-dirname": "^1.0.0" + }, + "dependencies": { + "is-glob": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-3.1.0.tgz", + "integrity": "sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo=", + "dev": true, + "requires": { + "is-extglob": "^2.1.0" + } + } + } + }, "globby": { "version": "6.1.0", "resolved": "https://registry.npmjs.org/globby/-/globby-6.1.0.tgz", @@ -32038,19 +31426,13 @@ "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-3.2.4.tgz", "integrity": "sha512-hHUXGagefjN2iRrID63xckIvotOXOojhQKWIPUZ4mNUZ9nLZW+7FMNoE1lOkEhNWYsx/7ysGIuJYCiMAA9FnrA==", "dev": true - }, - "uuid": { - "version": "3.4.0", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.4.0.tgz", - "integrity": "sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A==", - "dev": true } } }, "webpack-merge": { - "version": "5.7.3", - "resolved": "https://registry.npmjs.org/webpack-merge/-/webpack-merge-5.7.3.tgz", - "integrity": "sha512-6/JUQv0ELQ1igjGDzHkXbVDRxkfA57Zw7PfiupdLFJYrgFqY5ZP8xxbpp2lU3EPwYx89ht5Z/aDkD40hFCm5AA==", + "version": "5.8.0", + "resolved": "https://registry.npmjs.org/webpack-merge/-/webpack-merge-5.8.0.tgz", + "integrity": "sha512-/SaI7xY0831XwP6kzuwhKWVKDP9t1QY1h65lAFLbZqMPIuYcD9QAW4u9STIbU9kaJbPBB/geU/gLr1wDjOhQ+Q==", "dev": true, "requires": { "clone-deep": "^4.0.1", @@ -32058,18 +31440,20 @@ } }, "webpack-sources": { - "version": "1.4.3", - "resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-1.4.3.tgz", - "integrity": "sha512-lgTS3Xhv1lCOKo7SA5TjKXMjpSM4sBjNV5+q2bqesbSPs5FjGmU6jjtBSkX9b4qW87vDIsCIlUPOEhbZrMdjeQ==", + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-2.3.0.tgz", + "integrity": "sha512-WyOdtwSvOML1kbgtXbTDnEW0jkJ7hZr/bDByIwszhWd/4XX1A3XMkrbFMsuH4+/MfLlZCUzlAdg4r7jaGKEIgQ==", + "dev": true, "requires": { - "source-list-map": "^2.0.0", - "source-map": "~0.6.1" + "source-list-map": "^2.0.1", + "source-map": "^0.6.1" }, "dependencies": { "source-map": { "version": "0.6.1", "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==" + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true } } }, @@ -32106,13 +31490,13 @@ "dev": true }, "whatwg-url": { - "version": "8.5.0", - "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-8.5.0.tgz", - "integrity": "sha512-fy+R77xWv0AiqfLl4nuGUlQ3/6b5uNfQ4WAbGQVMYshCTCCPK9psC1nWh3XHuxGVCtlcDDQPQW1csmmIQo+fwg==", + "version": "8.7.0", + "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-8.7.0.tgz", + "integrity": "sha512-gAojqb/m9Q8a5IV96E3fHJM70AzCkgt4uXYX2O7EmuyOnLrViCQlsEBmF9UQIu3/aeAIp2U17rtbpZWNntQqdg==", "dev": true, "requires": { "lodash": "^4.7.0", - "tr46": "^2.0.2", + "tr46": "^2.1.0", "webidl-conversions": "^6.1.0" } }, @@ -32257,9 +31641,9 @@ } }, "ws": { - "version": "7.4.6", - "resolved": "https://registry.npmjs.org/ws/-/ws-7.4.6.tgz", - "integrity": "sha512-YmhHDO4MzaDLB+M9ym/mDA5z0naX8j7SIlT8f8z+I0VtzsRbekxEutHSme7NPS2qE8StCYQNUnfWdXta/Yu85A==", + "version": "7.5.1", + "resolved": "https://registry.npmjs.org/ws/-/ws-7.5.1.tgz", + "integrity": "sha512-2c6faOUH/nhoQN6abwMloF7Iyl0ZS2E9HGtsiLrWn0zOOMWlhtDmdf/uihDt6jnuCxgtwGBNy6Onsoy2s2O2Ow==", "dev": true, "requires": {} }, @@ -32328,9 +31712,9 @@ } }, "yargs-parser": { - "version": "20.2.7", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.7.tgz", - "integrity": "sha512-FiNkvbeHzB/syOjIUxFDCnhSfzAL8R5vs40MgLFBorXACCOAEaWu0gRZl14vG8MR9AOJIZbmkjhusqBYZ3HTHw==", + "version": "20.2.9", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.9.tgz", + "integrity": "sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==", "dev": true }, "yocto-queue": { diff --git a/package.json b/package.json index ed90804d..b9381786 100644 --- a/package.json +++ b/package.json @@ -39,41 +39,40 @@ "dist" ], "peerDependencies": { - "webpack": "^4.4.0 || ^5.0.0" + "webpack": "^5.0.0" }, "dependencies": { "loader-utils": "^2.0.0", - "schema-utils": "^3.0.0", - "webpack-sources": "^1.1.0" + "schema-utils": "^3.0.0" }, "devDependencies": { "@babel/cli": "^7.14.5", "@babel/core": "^7.14.6", - "@babel/preset-env": "^7.14.5", + "@babel/preset-env": "^7.14.7", "@commitlint/cli": "^12.1.4", "@commitlint/config-conventional": "^12.1.4", "@webpack-contrib/eslint-config-webpack": "^3.0.0", "babel-eslint": "^10.1.0", - "babel-jest": "^27.0.2", + "babel-jest": "^27.0.6", "bootstrap": "^4.6.0", "cross-env": "^7.0.3", "css-loader": "^5.2.6", "del": "^6.0.0", - "del-cli": "^3.0.1", + "del-cli": "^4.0.0", "es-check": "5.2.3", - "eslint": "^7.28.0", + "eslint": "^7.29.0", "eslint-config-prettier": "^8.1.0", "eslint-plugin-import": "^2.23.4", "file-loader": "^6.2.0", - "husky": "^5.2.0", - "jest": "^27.0.4", + "husky": "^6.0.0", + "jest": "^27.0.6", "jsdom": "^16.5.1", - "lint-staged": "^10.5.4", + "lint-staged": "^11.0.0", "memfs": "^3.0.2", "npm-run-all": "^4.1.5", - "prettier": "^2.3.1", - "standard-version": "^9.1.0", - "webpack": "^5.40.0", + "prettier": "^2.3.2", + "standard-version": "^9.3.0", + "webpack": "^5.41.1", "webpack-cli": "^4.7.2", "webpack-dev-server": "^3.11.2" }, diff --git a/src/index.js b/src/index.js index 9bec2650..87258478 100644 --- a/src/index.js +++ b/src/index.js @@ -2,17 +2,20 @@ import { validate } from 'schema-utils'; +import { getUndoPath } from 'webpack/lib/util/identifier'; + import schema from './plugin-options.json'; -import { trueFn, MODULE_TYPE, compareModulesByIdentifier } from './utils'; +import { + trueFn, + MODULE_TYPE, + AUTO_PUBLIC_PATH, + compareModulesByIdentifier, +} from './utils'; export const pluginName = 'mini-css-extract-plugin'; export const pluginSymbol = Symbol(pluginName); -const REGEXP_CHUNKHASH = /\[chunkhash(?::(\d+))?\]/i; -const REGEXP_CONTENTHASH = /\[contenthash(?::(\d+))?\]/i; -const REGEXP_NAME = /\[name\]/i; const DEFAULT_FILENAME = '[name].css'; - const TYPES = new Set([MODULE_TYPE]); const CODE_GENERATION_RESULT = { sources: new Map(), @@ -183,49 +186,43 @@ class MiniCssExtractPlugin { cssModuleCache.set(webpack, CssModule); - if ( - webpack.util && - webpack.util.serialization && - webpack.util.serialization.register - ) { - webpack.util.serialization.register( - CssModule, - 'mini-css-extract-plugin/dist/CssModule', - null, - { - serialize(instance, context) { - instance.serialize(context); - }, - deserialize(context) { - const { read } = context; - - const contextModule = read(); - const identifier = read(); - const identifierIndex = read(); - const content = read(); - const media = read(); - const sourceMap = read(); - const assets = read(); - const assetsInfo = read(); - - const dep = new CssModule({ - context: contextModule, - identifier, - identifierIndex, - content, - media, - sourceMap, - assets, - assetsInfo, - }); - - dep.deserialize(context); - - return dep; - }, - } - ); - } + webpack.util.serialization.register( + CssModule, + 'mini-css-extract-plugin/dist/CssModule', + null, + { + serialize(instance, context) { + instance.serialize(context); + }, + deserialize(context) { + const { read } = context; + + const contextModule = read(); + const identifier = read(); + const identifierIndex = read(); + const content = read(); + const media = read(); + const sourceMap = read(); + const assets = read(); + const assetsInfo = read(); + + const dep = new CssModule({ + context: contextModule, + identifier, + identifierIndex, + content, + media, + sourceMap, + assets, + assetsInfo, + }); + + dep.deserialize(context); + + return dep; + }, + } + ); return CssModule; } @@ -289,52 +286,45 @@ class MiniCssExtractPlugin { cssDependencyCache.set(webpack, CssDependency); - if ( - webpack.util && - webpack.util.serialization && - webpack.util.serialization.register - ) { - webpack.util.serialization.register( - CssDependency, - 'mini-css-extract-plugin/dist/CssDependency', - null, - { - serialize(instance, context) { - instance.serialize(context); - }, - deserialize(context) { - const { read } = context; - const dep = new CssDependency( - { - identifier: read(), - content: read(), - media: read(), - sourceMap: read(), - }, - read(), - read() - ); - - const assets = read(); - const assetsInfo = read(); - - dep.assets = assets; - dep.assetsInfo = assetsInfo; - - dep.deserialize(context); - - return dep; - }, - } - ); - } + webpack.util.serialization.register( + CssDependency, + 'mini-css-extract-plugin/dist/CssDependency', + null, + { + serialize(instance, context) { + instance.serialize(context); + }, + deserialize(context) { + const { read } = context; + const dep = new CssDependency( + { + identifier: read(), + content: read(), + media: read(), + sourceMap: read(), + }, + read(), + read() + ); + + const assets = read(); + const assetsInfo = read(); + + dep.assets = assets; + dep.assetsInfo = assetsInfo; + + dep.deserialize(context); + + return dep; + }, + } + ); return CssDependency; } constructor(options = {}) { validate(schema, options, { - name: 'Mini CSS Extract Plugin', baseDataPath: 'options', }); @@ -386,10 +376,7 @@ class MiniCssExtractPlugin { /** @param {import("webpack").Compiler} compiler */ apply(compiler) { - const webpack = compiler.webpack - ? compiler.webpack - : // eslint-disable-next-line global-require - require('webpack'); + const { webpack } = compiler; if (this.options.experimentalUseImportModule) { if (!compiler.options.experiments) { @@ -405,12 +392,7 @@ class MiniCssExtractPlugin { // TODO bug in webpack, remove it after it will be fixed // webpack tries to `require` loader firstly when serializer doesn't found - if ( - webpack.util && - webpack.util.serialization && - webpack.util.serialization.registerLoader && - !registered.has(webpack) - ) { + if (!registered.has(webpack)) { registered.add(webpack); webpack.util.serialization.registerLoader( @@ -419,34 +401,22 @@ class MiniCssExtractPlugin { ); } - const isWebpack4 = compiler.webpack - ? false - : typeof compiler.resolvers !== 'undefined'; - - if (!isWebpack4) { - const { splitChunks } = compiler.options.optimization; + const { splitChunks } = compiler.options.optimization; - if (splitChunks) { - if (splitChunks.defaultSizeTypes.includes('...')) { - splitChunks.defaultSizeTypes.push(MODULE_TYPE); - } + if (splitChunks) { + if (splitChunks.defaultSizeTypes.includes('...')) { + splitChunks.defaultSizeTypes.push(MODULE_TYPE); } } const CssModule = MiniCssExtractPlugin.getCssModule(webpack); const CssDependency = MiniCssExtractPlugin.getCssDependency(webpack); - const NormalModule = - compiler.webpack && compiler.webpack.NormalModule - ? compiler.webpack.NormalModule - : // eslint-disable-next-line global-require - require('webpack/lib/NormalModule'); + const { NormalModule } = compiler.webpack; compiler.hooks.compilation.tap(pluginName, (compilation) => { - const normalModuleHook = - typeof NormalModule.getCompilationHooks !== 'undefined' - ? NormalModule.getCompilationHooks(compilation).loader - : compilation.hooks.normalModuleLoader; + const { loader: normalModuleHook } = + NormalModule.getCompilationHooks(compilation); normalModuleHook.tap(pluginName, (loaderContext) => { // eslint-disable-next-line no-param-reassign @@ -479,178 +449,66 @@ class MiniCssExtractPlugin { new CssDependencyTemplate() ); - if (isWebpack4) { - compilation.mainTemplate.hooks.renderManifest.tap( - pluginName, - (result, { chunk }) => { - const { chunkGraph } = compilation; - - const renderedModules = Array.from( - this.getChunkModules(chunk, chunkGraph) - ).filter((module) => module.type === MODULE_TYPE); - - const filenameTemplate = - chunk.filenameTemplate || this.options.filename; - - if (renderedModules.length > 0) { - result.push({ - render: () => - this.renderContentAsset( - compiler, - compilation, - chunk, - renderedModules, - compilation.runtimeTemplate.requestShortener - ), - filenameTemplate, - pathOptions: { - chunk, - contentHashType: MODULE_TYPE, - }, - identifier: `${pluginName}.${chunk.id}`, - hash: chunk.contentHash[MODULE_TYPE], - }); - } - } - ); - - compilation.chunkTemplate.hooks.renderManifest.tap( - pluginName, - (result, { chunk }) => { - const { chunkGraph } = compilation; - - const renderedModules = Array.from( - this.getChunkModules(chunk, chunkGraph) - ).filter((module) => module.type === MODULE_TYPE); - - const filenameTemplate = - chunk.filenameTemplate || this.options.chunkFilename; - - if (renderedModules.length > 0) { - result.push({ - render: () => - this.renderContentAsset( - compiler, - compilation, - chunk, - renderedModules, - compilation.runtimeTemplate.requestShortener - ), - filenameTemplate, - pathOptions: { - chunk, - contentHashType: MODULE_TYPE, - }, - identifier: `${pluginName}.${chunk.id}`, - hash: chunk.contentHash[MODULE_TYPE], - }); - } - } - ); - } else { - compilation.hooks.renderManifest.tap( - pluginName, - (result, { chunk }) => { - const { chunkGraph } = compilation; - const { HotUpdateChunk } = webpack; - - // We don't need hot update chunks for css - // We will use the real asset instead to update - if (chunk instanceof HotUpdateChunk) { - return; - } + compilation.hooks.renderManifest.tap(pluginName, (result, { chunk }) => { + const { chunkGraph } = compilation; + const { HotUpdateChunk } = webpack; - const renderedModules = Array.from( - this.getChunkModules(chunk, chunkGraph) - ).filter((module) => module.type === MODULE_TYPE); - - const filenameTemplate = chunk.canBeInitial() - ? this.options.filename - : this.options.chunkFilename; - - if (renderedModules.length > 0) { - result.push({ - render: () => - this.renderContentAsset( - compiler, - compilation, - chunk, - renderedModules, - compilation.runtimeTemplate.requestShortener - ), - filenameTemplate, - pathOptions: { - chunk, - contentHashType: MODULE_TYPE, - }, - identifier: `${pluginName}.${chunk.id}`, - hash: chunk.contentHash[MODULE_TYPE], - }); - } - } - ); - } + // We don't need hot update chunks for css + // We will use the real asset instead to update + if (chunk instanceof HotUpdateChunk) { + return; + } - /* - * For webpack 5 this will be unneeded once the logic uses a RuntimeModule - * as the content of runtime modules is hashed and added to the chunk hash automatically - * */ - if (isWebpack4) { - compilation.mainTemplate.hooks.hashForChunk.tap( - pluginName, - (hash, chunk) => { - const { chunkFilename } = this.options; - - if (REGEXP_CHUNKHASH.test(chunkFilename)) { - hash.update(JSON.stringify(chunk.getChunkMaps(true).hash)); - } + const renderedModules = Array.from( + this.getChunkModules(chunk, chunkGraph) + ).filter((module) => module.type === MODULE_TYPE); - if (REGEXP_CONTENTHASH.test(chunkFilename)) { - hash.update( - JSON.stringify( - chunk.getChunkMaps(true).contentHash[MODULE_TYPE] || {} - ) - ); - } + const filenameTemplate = chunk.canBeInitial() + ? this.options.filename + : this.options.chunkFilename; - if (REGEXP_NAME.test(chunkFilename)) { - hash.update(JSON.stringify(chunk.getChunkMaps(true).name)); - } - } - ); - } + if (renderedModules.length > 0) { + result.push({ + render: () => + this.renderContentAsset( + compiler, + compilation, + chunk, + renderedModules, + compilation.runtimeTemplate.requestShortener, + filenameTemplate, + { + contentHashType: MODULE_TYPE, + chunk, + } + ), + filenameTemplate, + pathOptions: { + chunk, + contentHashType: MODULE_TYPE, + }, + identifier: `${pluginName}.${chunk.id}`, + hash: chunk.contentHash[MODULE_TYPE], + }); + } + }); compilation.hooks.contentHash.tap(pluginName, (chunk) => { const { outputOptions, chunkGraph } = compilation; - const modules = isWebpack4 - ? Array.from(this.getChunkModules(chunk, chunkGraph)).filter( - (module) => module.type === MODULE_TYPE - ) - : this.sortModules( - compilation, - chunk, - chunkGraph.getChunkModulesIterableBySourceType( - chunk, - MODULE_TYPE - ), - compilation.runtimeTemplate.requestShortener - ); + const modules = this.sortModules( + compilation, + chunk, + chunkGraph.getChunkModulesIterableBySourceType(chunk, MODULE_TYPE), + compilation.runtimeTemplate.requestShortener + ); if (modules) { const { hashFunction, hashDigest, hashDigestLength } = outputOptions; - const createHash = compiler.webpack - ? compiler.webpack.util.createHash - : webpack.util.createHash; + const { createHash } = compiler.webpack.util; const hash = createHash(hashFunction); - if (isWebpack4) { - for (const m of modules) { - m.updateHash(hash); - } - } else { - for (const m of modules) { - hash.update(chunkGraph.getModuleHash(m, chunk.runtime)); - } + for (const m of modules) { + hash.update(chunkGraph.getModuleHash(m, chunk.runtime)); } // eslint-disable-next-line no-param-reassign @@ -661,498 +519,300 @@ class MiniCssExtractPlugin { }); const { Template } = webpack; - const { mainTemplate } = compilation; - - if (isWebpack4) { - mainTemplate.hooks.localVars.tap(pluginName, (source, chunk) => { - const chunkMap = this.getCssChunkObject(chunk, compilation); - - if (Object.keys(chunkMap).length > 0) { - return Template.asString([ - source, - '', - '// object to store loaded CSS chunks', - 'var installedCssChunks = {', - Template.indent( - chunk.ids.map((id) => `${JSON.stringify(id)}: 0`).join(',\n') - ), - '};', - ]); - } - - return source; - }); - mainTemplate.hooks.requireEnsure.tap( - pluginName, - (source, chunk, hash) => { - const chunkMap = this.getCssChunkObject(chunk, compilation); + const { RuntimeGlobals, runtime } = webpack; - if (Object.keys(chunkMap).length > 0) { - const chunkMaps = chunk.getChunkMaps(); - const { crossOriginLoading } = mainTemplate.outputOptions; - const linkHrefPath = mainTemplate.getAssetPath( - JSON.stringify(this.options.chunkFilename), - { - hash: `" + ${mainTemplate.renderCurrentHashCode(hash)} + "`, - hashWithLength: (length) => - `" + ${mainTemplate.renderCurrentHashCode( - hash, - length - )} + "`, - chunk: { - id: '" + chunkId + "', - hash: `" + ${JSON.stringify(chunkMaps.hash)}[chunkId] + "`, - hashWithLength(length) { - const shortChunkHashMap = Object.create(null); - - for (const chunkId of Object.keys(chunkMaps.hash)) { - if (typeof chunkMaps.hash[chunkId] === 'string') { - shortChunkHashMap[chunkId] = chunkMaps.hash[ - chunkId - ].substring(0, length); - } - } - - return `" + ${JSON.stringify( - shortChunkHashMap - )}[chunkId] + "`; - }, - contentHash: { - [MODULE_TYPE]: `" + ${JSON.stringify( - chunkMaps.contentHash[MODULE_TYPE] - )}[chunkId] + "`, - }, - contentHashWithLength: { - [MODULE_TYPE]: (length) => { - const shortContentHashMap = {}; - const contentHash = chunkMaps.contentHash[MODULE_TYPE]; - - for (const chunkId of Object.keys(contentHash)) { - if (typeof contentHash[chunkId] === 'string') { - shortContentHashMap[chunkId] = contentHash[ - chunkId - ].substring(0, length); - } - } + // eslint-disable-next-line no-shadow + const getCssChunkObject = (mainChunk, compilation) => { + const obj = {}; + const { chunkGraph } = compilation; - return `" + ${JSON.stringify( - shortContentHashMap - )}[chunkId] + "`; - }, - }, - name: `" + (${JSON.stringify( - chunkMaps.name - )}[chunkId]||chunkId) + "`, - }, - contentHashType: MODULE_TYPE, - } - ); - - return Template.asString([ - source, - '', - `// ${pluginName} CSS loading`, - `var cssChunks = ${JSON.stringify(chunkMap)};`, - 'if(installedCssChunks[chunkId]) promises.push(installedCssChunks[chunkId]);', - 'else if(installedCssChunks[chunkId] !== 0 && cssChunks[chunkId]) {', - Template.indent([ - 'promises.push(installedCssChunks[chunkId] = new Promise(function(resolve, reject) {', - Template.indent([ - `var href = ${linkHrefPath};`, - `var fullhref = ${mainTemplate.requireFn}.p + href;`, - 'var existingLinkTags = document.getElementsByTagName("link");', - 'for(var i = 0; i < existingLinkTags.length; i++) {', - Template.indent([ - 'var tag = existingLinkTags[i];', - 'var dataHref = tag.getAttribute("data-href") || tag.getAttribute("href");', - 'if(tag.rel === "stylesheet" && (dataHref === href || dataHref === fullhref)) return resolve();', - ]), - '}', - 'var existingStyleTags = document.getElementsByTagName("style");', - 'for(var i = 0; i < existingStyleTags.length; i++) {', - Template.indent([ - 'var tag = existingStyleTags[i];', - 'var dataHref = tag.getAttribute("data-href");', - 'if(dataHref === href || dataHref === fullhref) return resolve();', - ]), - '}', - 'var linkTag = document.createElement("link");', - this.runtimeOptions.attributes - ? Template.asString( - Object.entries(this.runtimeOptions.attributes).map( - (entry) => { - const [key, value] = entry; - - return `linkTag.setAttribute(${JSON.stringify( - key - )}, ${JSON.stringify(value)});`; - } - ) - ) - : '', - 'linkTag.rel = "stylesheet";', - this.runtimeOptions.linkType - ? `linkTag.type = ${JSON.stringify( - this.runtimeOptions.linkType - )};` - : '', - 'var onLinkComplete = function (event) {', - Template.indent([ - '// avoid mem leaks.', - 'linkTag.onerror = linkTag.onload = null;', - "if (event.type === 'load') {", - Template.indent(['resolve();']), - '} else {', - Template.indent([ - "var errorType = event && (event.type === 'load' ? 'missing' : event.type);", - 'var realHref = event && event.target && event.target.href || fullhref;', - 'var err = new Error("Loading CSS chunk " + chunkId + " failed.\\n(" + realHref + ")");', - 'err.code = "CSS_CHUNK_LOAD_FAILED";', - 'err.type = errorType;', - 'err.request = realHref;', - 'delete installedCssChunks[chunkId]', - 'linkTag.parentNode.removeChild(linkTag)', - 'reject(err);', - ]), - '}', - ]), - '};', - 'linkTag.onerror = linkTag.onload = onLinkComplete;', - 'linkTag.href = fullhref;', - crossOriginLoading - ? Template.asString([ - `if (linkTag.href.indexOf(window.location.origin + '/') !== 0) {`, - Template.indent( - `linkTag.crossOrigin = ${JSON.stringify( - crossOriginLoading - )};` - ), - '}', - ]) - : '', - typeof this.runtimeOptions.insert !== 'undefined' - ? typeof this.runtimeOptions.insert === 'function' - ? `(${this.runtimeOptions.insert.toString()})(linkTag)` - : Template.asString([ - `var target = document.querySelector("${this.runtimeOptions.insert}");`, - `target.parentNode.insertBefore(linkTag, target.nextSibling);`, - ]) - : Template.asString([ - 'document.head.appendChild(linkTag);', - ]), - ]), - '}).then(function() {', - Template.indent(['installedCssChunks[chunkId] = 0;']), - '}));', - ]), - '}', - ]); + for (const chunk of mainChunk.getAllAsyncChunks()) { + const modules = chunkGraph.getOrderedChunkModulesIterable( + chunk, + compareModulesByIdentifier + ); + for (const module of modules) { + if (module.type === MODULE_TYPE) { + obj[chunk.id] = 1; + break; } - - return source; } - ); - } else { - const { RuntimeGlobals, runtime } = webpack; + } - // eslint-disable-next-line no-shadow - const getCssChunkObject = (mainChunk, compilation) => { - const obj = {}; - const { chunkGraph } = compilation; + return obj; + }; - for (const chunk of mainChunk.getAllAsyncChunks()) { - const modules = chunkGraph.getOrderedChunkModulesIterable( - chunk, - compareModulesByIdentifier - ); - for (const module of modules) { - if (module.type === MODULE_TYPE) { - obj[chunk.id] = 1; - break; - } - } - } + const { RuntimeModule } = webpack; - return obj; - }; + class CssLoadingRuntimeModule extends RuntimeModule { + constructor(runtimeRequirements, runtimeOptions) { + super('css loading', 10); - const { RuntimeModule } = webpack; + this.runtimeRequirements = runtimeRequirements; + this.runtimeOptions = runtimeOptions; + } - class CssLoadingRuntimeModule extends RuntimeModule { - constructor(runtimeRequirements, runtimeOptions) { - super('css loading', 10); + generate() { + const { chunk, runtimeRequirements } = this; + const { + runtimeTemplate, + outputOptions: { crossOriginLoading }, + } = this.compilation; + const chunkMap = getCssChunkObject(chunk, this.compilation); + + const withLoading = + runtimeRequirements.has(RuntimeGlobals.ensureChunkHandlers) && + Object.keys(chunkMap).length > 0; + const withHmr = runtimeRequirements.has( + RuntimeGlobals.hmrDownloadUpdateHandlers + ); - this.runtimeRequirements = runtimeRequirements; - this.runtimeOptions = runtimeOptions; + if (!withLoading && !withHmr) { + return null; } - generate() { - const { chunk, runtimeRequirements } = this; - const { - runtimeTemplate, - outputOptions: { crossOriginLoading }, - } = this.compilation; - const chunkMap = getCssChunkObject(chunk, this.compilation); - - const withLoading = - runtimeRequirements.has(RuntimeGlobals.ensureChunkHandlers) && - Object.keys(chunkMap).length > 0; - const withHmr = runtimeRequirements.has( - RuntimeGlobals.hmrDownloadUpdateHandlers - ); - - if (!withLoading && !withHmr) { - return null; - } - - return Template.asString([ - `var createStylesheet = ${runtimeTemplate.basicFunction( - 'chunkId, fullhref, resolve, reject', - [ - 'var linkTag = document.createElement("link");', - this.runtimeOptions.attributes - ? Template.asString( - Object.entries(this.runtimeOptions.attributes).map( - (entry) => { - const [key, value] = entry; - - return `linkTag.setAttribute(${JSON.stringify( - key - )}, ${JSON.stringify(value)});`; - } - ) + return Template.asString([ + `var createStylesheet = ${runtimeTemplate.basicFunction( + 'chunkId, fullhref, resolve, reject', + [ + 'var linkTag = document.createElement("link");', + this.runtimeOptions.attributes + ? Template.asString( + Object.entries(this.runtimeOptions.attributes).map( + (entry) => { + const [key, value] = entry; + + return `linkTag.setAttribute(${JSON.stringify( + key + )}, ${JSON.stringify(value)});`; + } ) - : '', - 'linkTag.rel = "stylesheet";', - this.runtimeOptions.linkType - ? `linkTag.type = ${JSON.stringify( - this.runtimeOptions.linkType - )};` - : '', - `var onLinkComplete = ${runtimeTemplate.basicFunction( - 'event', + ) + : '', + 'linkTag.rel = "stylesheet";', + this.runtimeOptions.linkType + ? `linkTag.type = ${JSON.stringify( + this.runtimeOptions.linkType + )};` + : '', + `var onLinkComplete = ${runtimeTemplate.basicFunction('event', [ + '// avoid mem leaks.', + 'linkTag.onerror = linkTag.onload = null;', + "if (event.type === 'load') {", + Template.indent(['resolve();']), + '} else {', + Template.indent([ + "var errorType = event && (event.type === 'load' ? 'missing' : event.type);", + 'var realHref = event && event.target && event.target.href || fullhref;', + 'var err = new Error("Loading CSS chunk " + chunkId + " failed.\\n(" + realHref + ")");', + 'err.code = "CSS_CHUNK_LOAD_FAILED";', + 'err.type = errorType;', + 'err.request = realHref;', + 'linkTag.parentNode.removeChild(linkTag)', + 'reject(err);', + ]), + '}', + ])}`, + 'linkTag.onerror = linkTag.onload = onLinkComplete;', + 'linkTag.href = fullhref;', + crossOriginLoading + ? Template.asString([ + `if (linkTag.href.indexOf(window.location.origin + '/') !== 0) {`, + Template.indent( + `linkTag.crossOrigin = ${JSON.stringify( + crossOriginLoading + )};` + ), + '}', + ]) + : '', + typeof this.runtimeOptions.insert !== 'undefined' + ? typeof this.runtimeOptions.insert === 'function' + ? `(${this.runtimeOptions.insert.toString()})(linkTag)` + : Template.asString([ + `var target = document.querySelector("${this.runtimeOptions.insert}");`, + `target.parentNode.insertBefore(linkTag, target.nextSibling);`, + ]) + : Template.asString(['document.head.appendChild(linkTag);']), + 'return linkTag;', + ] + )};`, + `var findStylesheet = ${runtimeTemplate.basicFunction( + 'href, fullhref', + [ + 'var existingLinkTags = document.getElementsByTagName("link");', + 'for(var i = 0; i < existingLinkTags.length; i++) {', + Template.indent([ + 'var tag = existingLinkTags[i];', + 'var dataHref = tag.getAttribute("data-href") || tag.getAttribute("href");', + 'if(tag.rel === "stylesheet" && (dataHref === href || dataHref === fullhref)) return tag;', + ]), + '}', + 'var existingStyleTags = document.getElementsByTagName("style");', + 'for(var i = 0; i < existingStyleTags.length; i++) {', + Template.indent([ + 'var tag = existingStyleTags[i];', + 'var dataHref = tag.getAttribute("data-href");', + 'if(dataHref === href || dataHref === fullhref) return tag;', + ]), + '}', + ] + )};`, + `var loadStylesheet = ${runtimeTemplate.basicFunction( + 'chunkId', + `return new Promise(${runtimeTemplate.basicFunction( + 'resolve, reject', + [ + `var href = ${RuntimeGlobals.require}.miniCssF(chunkId);`, + `var fullhref = ${RuntimeGlobals.publicPath} + href;`, + 'if(findStylesheet(href, fullhref)) return resolve();', + 'createStylesheet(chunkId, fullhref, resolve, reject);', + ] + )});` + )}`, + withLoading + ? Template.asString([ + '// object to store loaded CSS chunks', + 'var installedCssChunks = {', + Template.indent( + chunk.ids + .map((id) => `${JSON.stringify(id)}: 0`) + .join(',\n') + ), + '};', + '', + `${ + RuntimeGlobals.ensureChunkHandlers + }.miniCss = ${runtimeTemplate.basicFunction( + 'chunkId, promises', [ - '// avoid mem leaks.', - 'linkTag.onerror = linkTag.onload = null;', - "if (event.type === 'load') {", - Template.indent(['resolve();']), - '} else {', + `var cssChunks = ${JSON.stringify(chunkMap)};`, + 'if(installedCssChunks[chunkId]) promises.push(installedCssChunks[chunkId]);', + 'else if(installedCssChunks[chunkId] !== 0 && cssChunks[chunkId]) {', Template.indent([ - "var errorType = event && (event.type === 'load' ? 'missing' : event.type);", - 'var realHref = event && event.target && event.target.href || fullhref;', - 'var err = new Error("Loading CSS chunk " + chunkId + " failed.\\n(" + realHref + ")");', - 'err.code = "CSS_CHUNK_LOAD_FAILED";', - 'err.type = errorType;', - 'err.request = realHref;', - 'linkTag.parentNode.removeChild(linkTag)', - 'reject(err);', + `promises.push(installedCssChunks[chunkId] = loadStylesheet(chunkId).then(${runtimeTemplate.basicFunction( + '', + 'installedCssChunks[chunkId] = 0;' + )}, ${runtimeTemplate.basicFunction('e', [ + 'delete installedCssChunks[chunkId];', + 'throw e;', + ])}));`, ]), '}', ] - )}`, - 'linkTag.onerror = linkTag.onload = onLinkComplete;', - 'linkTag.href = fullhref;', - crossOriginLoading - ? Template.asString([ - `if (linkTag.href.indexOf(window.location.origin + '/') !== 0) {`, - Template.indent( - `linkTag.crossOrigin = ${JSON.stringify( - crossOriginLoading - )};` - ), - '}', - ]) - : '', - typeof this.runtimeOptions.insert !== 'undefined' - ? typeof this.runtimeOptions.insert === 'function' - ? `(${this.runtimeOptions.insert.toString()})(linkTag)` - : Template.asString([ - `var target = document.querySelector("${this.runtimeOptions.insert}");`, - `target.parentNode.insertBefore(linkTag, target.nextSibling);`, - ]) - : Template.asString([ - 'document.head.appendChild(linkTag);', - ]), - 'return linkTag;', - ] - )};`, - `var findStylesheet = ${runtimeTemplate.basicFunction( - 'href, fullhref', - [ - 'var existingLinkTags = document.getElementsByTagName("link");', - 'for(var i = 0; i < existingLinkTags.length; i++) {', - Template.indent([ - 'var tag = existingLinkTags[i];', - 'var dataHref = tag.getAttribute("data-href") || tag.getAttribute("href");', - 'if(tag.rel === "stylesheet" && (dataHref === href || dataHref === fullhref)) return tag;', - ]), - '}', - 'var existingStyleTags = document.getElementsByTagName("style");', - 'for(var i = 0; i < existingStyleTags.length; i++) {', - Template.indent([ - 'var tag = existingStyleTags[i];', - 'var dataHref = tag.getAttribute("data-href");', - 'if(dataHref === href || dataHref === fullhref) return tag;', - ]), - '}', - ] - )};`, - `var loadStylesheet = ${runtimeTemplate.basicFunction( - 'chunkId', - `return new Promise(${runtimeTemplate.basicFunction( - 'resolve, reject', - [ - `var href = ${RuntimeGlobals.require}.miniCssF(chunkId);`, - `var fullhref = ${RuntimeGlobals.publicPath} + href;`, - 'if(findStylesheet(href, fullhref)) return resolve();', - 'createStylesheet(chunkId, fullhref, resolve, reject);', - ] - )});` - )}`, - withLoading - ? Template.asString([ - '// object to store loaded CSS chunks', - 'var installedCssChunks = {', - Template.indent( - chunk.ids - .map((id) => `${JSON.stringify(id)}: 0`) - .join(',\n') - ), - '};', - '', - `${ - RuntimeGlobals.ensureChunkHandlers - }.miniCss = ${runtimeTemplate.basicFunction( - 'chunkId, promises', - [ - `var cssChunks = ${JSON.stringify(chunkMap)};`, - 'if(installedCssChunks[chunkId]) promises.push(installedCssChunks[chunkId]);', - 'else if(installedCssChunks[chunkId] !== 0 && cssChunks[chunkId]) {', + )};`, + ]) + : '// no chunk loading', + '', + withHmr + ? Template.asString([ + 'var oldTags = [];', + 'var newTags = [];', + `var applyHandler = ${runtimeTemplate.basicFunction( + 'options', + [ + `return { dispose: ${runtimeTemplate.basicFunction('', [ + 'for(var i = 0; i < oldTags.length; i++) {', Template.indent([ - `promises.push(installedCssChunks[chunkId] = loadStylesheet(chunkId).then(${runtimeTemplate.basicFunction( - '', - 'installedCssChunks[chunkId] = 0;' - )}, ${runtimeTemplate.basicFunction('e', [ - 'delete installedCssChunks[chunkId];', - 'throw e;', - ])}));`, + 'var oldTag = oldTags[i];', + 'if(oldTag.parentNode) oldTag.parentNode.removeChild(oldTag);', ]), '}', - ] - )};`, - ]) - : '// no chunk loading', - '', - withHmr - ? Template.asString([ - 'var oldTags = [];', - 'var newTags = [];', - `var applyHandler = ${runtimeTemplate.basicFunction( - 'options', - [ - `return { dispose: ${runtimeTemplate.basicFunction('', [ - 'for(var i = 0; i < oldTags.length; i++) {', - Template.indent([ - 'var oldTag = oldTags[i];', - 'if(oldTag.parentNode) oldTag.parentNode.removeChild(oldTag);', - ]), - '}', - 'oldTags.length = 0;', - ])}, apply: ${runtimeTemplate.basicFunction('', [ - 'for(var i = 0; i < newTags.length; i++) newTags[i].rel = "stylesheet";', - 'newTags.length = 0;', - ])} };`, - ] - )}`, - `${ - RuntimeGlobals.hmrDownloadUpdateHandlers - }.miniCss = ${runtimeTemplate.basicFunction( - 'chunkIds, removedChunks, removedModules, promises, applyHandlers, updatedModulesList', - [ - 'applyHandlers.push(applyHandler);', - `chunkIds.forEach(${runtimeTemplate.basicFunction( - 'chunkId', - [ - `var href = ${RuntimeGlobals.require}.miniCssF(chunkId);`, - `var fullhref = ${RuntimeGlobals.publicPath} + href;`, - 'var oldTag = findStylesheet(href, fullhref);', - 'if(!oldTag) return;', - `promises.push(new Promise(${runtimeTemplate.basicFunction( - 'resolve, reject', - [ - `var tag = createStylesheet(chunkId, fullhref, ${runtimeTemplate.basicFunction( - '', - [ - 'tag.as = "style";', - 'tag.rel = "preload";', - 'resolve();', - ] - )}, reject);`, - 'oldTags.push(oldTag);', - 'newTags.push(tag);', - ] - )}));`, - ] - )});`, - ] - )}`, - ]) - : '// no hmr', - ]); - } + 'oldTags.length = 0;', + ])}, apply: ${runtimeTemplate.basicFunction('', [ + 'for(var i = 0; i < newTags.length; i++) newTags[i].rel = "stylesheet";', + 'newTags.length = 0;', + ])} };`, + ] + )}`, + `${ + RuntimeGlobals.hmrDownloadUpdateHandlers + }.miniCss = ${runtimeTemplate.basicFunction( + 'chunkIds, removedChunks, removedModules, promises, applyHandlers, updatedModulesList', + [ + 'applyHandlers.push(applyHandler);', + `chunkIds.forEach(${runtimeTemplate.basicFunction( + 'chunkId', + [ + `var href = ${RuntimeGlobals.require}.miniCssF(chunkId);`, + `var fullhref = ${RuntimeGlobals.publicPath} + href;`, + 'var oldTag = findStylesheet(href, fullhref);', + 'if(!oldTag) return;', + `promises.push(new Promise(${runtimeTemplate.basicFunction( + 'resolve, reject', + [ + `var tag = createStylesheet(chunkId, fullhref, ${runtimeTemplate.basicFunction( + '', + [ + 'tag.as = "style";', + 'tag.rel = "preload";', + 'resolve();', + ] + )}, reject);`, + 'oldTags.push(oldTag);', + 'newTags.push(tag);', + ] + )}));`, + ] + )});`, + ] + )}`, + ]) + : '// no hmr', + ]); } + } - const enabledChunks = new WeakSet(); + const enabledChunks = new WeakSet(); - const handler = (chunk, set) => { - if (enabledChunks.has(chunk)) { - return; - } + const handler = (chunk, set) => { + if (enabledChunks.has(chunk)) { + return; + } - enabledChunks.add(chunk); + enabledChunks.add(chunk); - if ( - typeof this.options.chunkFilename === 'string' && - /\[(full)?hash(:\d+)?\]/.test(this.options.chunkFilename) - ) { - set.add(RuntimeGlobals.getFullHash); - } + if ( + typeof this.options.chunkFilename === 'string' && + /\[(full)?hash(:\d+)?\]/.test(this.options.chunkFilename) + ) { + set.add(RuntimeGlobals.getFullHash); + } - set.add(RuntimeGlobals.publicPath); + set.add(RuntimeGlobals.publicPath); - compilation.addRuntimeModule( - chunk, - new runtime.GetChunkFilenameRuntimeModule( - MODULE_TYPE, - 'mini-css', - `${RuntimeGlobals.require}.miniCssF`, - (referencedChunk) => { - if (!referencedChunk.contentHash[MODULE_TYPE]) { - return false; - } - - return referencedChunk.canBeInitial() - ? this.options.filename - : this.options.chunkFilename; - }, - true - ) - ); + compilation.addRuntimeModule( + chunk, + new runtime.GetChunkFilenameRuntimeModule( + MODULE_TYPE, + 'mini-css', + `${RuntimeGlobals.require}.miniCssF`, + (referencedChunk) => { + if (!referencedChunk.contentHash[MODULE_TYPE]) { + return false; + } - compilation.addRuntimeModule( - chunk, - new CssLoadingRuntimeModule(set, this.runtimeOptions) - ); - }; + return referencedChunk.canBeInitial() + ? this.options.filename + : this.options.chunkFilename; + }, + true + ) + ); - compilation.hooks.runtimeRequirementInTree - .for(RuntimeGlobals.ensureChunkHandlers) - .tap(pluginName, handler); - compilation.hooks.runtimeRequirementInTree - .for(RuntimeGlobals.hmrDownloadUpdateHandlers) - .tap(pluginName, handler); - } + compilation.addRuntimeModule( + chunk, + new CssLoadingRuntimeModule(set, this.runtimeOptions) + ); + }; + + compilation.hooks.runtimeRequirementInTree + .for(RuntimeGlobals.ensureChunkHandlers) + .tap(pluginName, handler); + compilation.hooks.runtimeRequirementInTree + .for(RuntimeGlobals.hmrDownloadUpdateHandlers) + .tap(pluginName, handler); }); } @@ -1165,22 +825,6 @@ class MiniCssExtractPlugin { : chunk.modulesIterable; } - getCssChunkObject(mainChunk, compilation) { - const obj = {}; - const { chunkGraph } = compilation; - - for (const chunk of mainChunk.getAllAsyncChunks()) { - for (const module of this.getChunkModules(chunk, chunkGraph)) { - if (module.type === MODULE_TYPE) { - obj[chunk.id] = 1; - break; - } - } - } - - return obj; - } - sortModules(compilation, chunk, modules, requestShortener) { let usedModules = this._sortedModulesCache.get(chunk); @@ -1189,31 +833,22 @@ class MiniCssExtractPlugin { } const modulesList = [...modules]; - - const [chunkGroup] = chunk.groupsIterable; - const moduleIndexFunctionName = - typeof compilation.chunkGraph !== 'undefined' - ? 'getModulePostOrderIndex' - : 'getModuleIndex2'; - - if (typeof chunkGroup[moduleIndexFunctionName] === 'function') { - // Store dependencies for modules - const moduleDependencies = new Map( - modulesList.map((m) => [m, new Set()]) - ); - const moduleDependenciesReasons = new Map( - modulesList.map((m) => [m, new Map()]) - ); - - // Get ordered list of modules per chunk group - // This loop also gathers dependencies from the ordered lists - // Lists are in reverse order to allow to use Array.pop() - const modulesByChunkGroup = Array.from(chunk.groupsIterable, (cg) => { + // Store dependencies for modules + const moduleDependencies = new Map(modulesList.map((m) => [m, new Set()])); + const moduleDependenciesReasons = new Map( + modulesList.map((m) => [m, new Map()]) + ); + // Get ordered list of modules per chunk group + // This loop also gathers dependencies from the ordered lists + // Lists are in reverse order to allow to use Array.pop() + const modulesByChunkGroup = Array.from( + chunk.groupsIterable, + (chunkGroup) => { const sortedModules = modulesList - .map((m) => { + .map((module) => { return { - module: m, - index: cg[moduleIndexFunctionName](m), + module, + index: chunkGroup.getModulePostOrderIndex(module), }; }) // eslint-disable-next-line no-undefined @@ -1227,105 +862,101 @@ class MiniCssExtractPlugin { for (let j = i + 1; j < sortedModules.length; j++) { const module = sortedModules[j]; + set.add(module); + const reason = reasons.get(module) || new Set(); - reason.add(cg); + + reason.add(chunkGroup); reasons.set(module, reason); } } return sortedModules; - }); - - // set with already included modules in correct order - usedModules = new Set(); + } + ); - const unusedModulesFilter = (m) => !usedModules.has(m); + // set with already included modules in correct order + usedModules = new Set(); - while (usedModules.size < modulesList.length) { - let success = false; - let bestMatch; - let bestMatchDeps; + const unusedModulesFilter = (m) => !usedModules.has(m); - // get first module where dependencies are fulfilled - for (const list of modulesByChunkGroup) { - // skip and remove already added modules - while (list.length > 0 && usedModules.has(list[list.length - 1])) { - list.pop(); - } + while (usedModules.size < modulesList.length) { + let success = false; + let bestMatch; + let bestMatchDeps; - // skip empty lists - if (list.length !== 0) { - const module = list[list.length - 1]; - const deps = moduleDependencies.get(module); - // determine dependencies that are not yet included - const failedDeps = Array.from(deps).filter(unusedModulesFilter); - - // store best match for fallback behavior - if (!bestMatchDeps || bestMatchDeps.length > failedDeps.length) { - bestMatch = list; - bestMatchDeps = failedDeps; - } - - if (failedDeps.length === 0) { - // use this module and remove it from list - usedModules.add(list.pop()); - success = true; - break; - } - } + // get first module where dependencies are fulfilled + for (const list of modulesByChunkGroup) { + // skip and remove already added modules + while (list.length > 0 && usedModules.has(list[list.length - 1])) { + list.pop(); } - if (!success) { - // no module found => there is a conflict - // use list with fewest failed deps - // and emit a warning - const fallbackModule = bestMatch.pop(); + // skip empty lists + if (list.length !== 0) { + const module = list[list.length - 1]; + const deps = moduleDependencies.get(module); + // determine dependencies that are not yet included + const failedDeps = Array.from(deps).filter(unusedModulesFilter); + + // store best match for fallback behavior + if (!bestMatchDeps || bestMatchDeps.length > failedDeps.length) { + bestMatch = list; + bestMatchDeps = failedDeps; + } - if (!this.options.ignoreOrder) { - const reasons = moduleDependenciesReasons.get(fallbackModule); - compilation.warnings.push( - new Error( - [ - `chunk ${chunk.name || chunk.id} [${pluginName}]`, - 'Conflicting order. Following module has been added:', - ` * ${fallbackModule.readableIdentifier(requestShortener)}`, - 'despite it was not able to fulfill desired ordering with these modules:', - ...bestMatchDeps.map((m) => { - const goodReasonsMap = moduleDependenciesReasons.get(m); - const goodReasons = - goodReasonsMap && goodReasonsMap.get(fallbackModule); - const failedChunkGroups = Array.from( - reasons.get(m), - (cg) => cg.name - ).join(', '); - const goodChunkGroups = - goodReasons && - Array.from(goodReasons, (cg) => cg.name).join(', '); - return [ - ` * ${m.readableIdentifier(requestShortener)}`, - ` - couldn't fulfill desired order of chunk group(s) ${failedChunkGroups}`, - goodChunkGroups && - ` - while fulfilling desired order of chunk group(s) ${goodChunkGroups}`, - ] - .filter(Boolean) - .join('\n'); - }), - ].join('\n') - ) - ); + if (failedDeps.length === 0) { + // use this module and remove it from list + usedModules.add(list.pop()); + success = true; + break; } + } + } - usedModules.add(fallbackModule); + if (!success) { + // no module found => there is a conflict + // use list with fewest failed deps + // and emit a warning + const fallbackModule = bestMatch.pop(); + + if (!this.options.ignoreOrder) { + const reasons = moduleDependenciesReasons.get(fallbackModule); + compilation.warnings.push( + new Error( + [ + `chunk ${chunk.name || chunk.id} [${pluginName}]`, + 'Conflicting order. Following module has been added:', + ` * ${fallbackModule.readableIdentifier(requestShortener)}`, + 'despite it was not able to fulfill desired ordering with these modules:', + ...bestMatchDeps.map((m) => { + const goodReasonsMap = moduleDependenciesReasons.get(m); + const goodReasons = + goodReasonsMap && goodReasonsMap.get(fallbackModule); + const failedChunkGroups = Array.from( + reasons.get(m), + (cg) => cg.name + ).join(', '); + const goodChunkGroups = + goodReasons && + Array.from(goodReasons, (cg) => cg.name).join(', '); + return [ + ` * ${m.readableIdentifier(requestShortener)}`, + ` - couldn't fulfill desired order of chunk group(s) ${failedChunkGroups}`, + goodChunkGroups && + ` - while fulfilling desired order of chunk group(s) ${goodChunkGroups}`, + ] + .filter(Boolean) + .join('\n'); + }), + ].join('\n') + ) + ); } + + usedModules.add(fallbackModule); } - } else { - // fallback for older webpack versions - // (to avoid a breaking change) - // TODO remove this in next major version - // and increase minimum webpack version to 4.12.0 - modulesList.sort((a, b) => a.index2 - b.index2); - usedModules = modulesList; } this._sortedModulesCache.set(chunk, usedModules); @@ -1333,7 +964,15 @@ class MiniCssExtractPlugin { return usedModules; } - renderContentAsset(compiler, compilation, chunk, modules, requestShortener) { + renderContentAsset( + compiler, + compilation, + chunk, + modules, + requestShortener, + filenameTemplate, + pathData + ) { const usedModules = this.sortModules( compilation, chunk, @@ -1341,12 +980,8 @@ class MiniCssExtractPlugin { requestShortener ); - // TODO remove after drop webpack v4 - const { ConcatSource, SourceMapSource, RawSource } = compiler.webpack - ? compiler.webpack.sources - : // eslint-disable-next-line global-require - require('webpack-sources'); - + const { ConcatSource, SourceMapSource, RawSource } = + compiler.webpack.sources; const source = new ConcatSource(); const externalsSource = new ConcatSource(); @@ -1370,6 +1005,15 @@ class MiniCssExtractPlugin { source.add(`@media ${m.media} {\n`); } + const { path: filename } = compilation.getPathWithInfo( + filenameTemplate, + pathData + ); + + const undoPath = getUndoPath(filename, compiler.outputPath, false); + + content = content.replace(new RegExp(AUTO_PUBLIC_PATH, 'g'), undoPath); + if (m.sourceMap) { source.add( new SourceMapSource( diff --git a/src/loader-options.json b/src/loader-options.json index 08b6933c..b64a5d74 100644 --- a/src/loader-options.json +++ b/src/loader-options.json @@ -1,4 +1,5 @@ { + "title": "Mini CSS Extract Plugin Loader options", "type": "object", "additionalProperties": false, "properties": { @@ -20,16 +21,6 @@ }, "layer": { "type": "string" - }, - "modules": { - "type": "object", - "additionalProperties": false, - "properties": { - "namedExport": { - "description": "Enables/disables ES modules named export for locals (https://webpack.js.org/plugins/mini-css-extract-plugin/#namedexport).", - "type": "boolean" - } - } } } } diff --git a/src/loader.js b/src/loader.js index c106184f..59535bb5 100644 --- a/src/loader.js +++ b/src/loader.js @@ -1,9 +1,8 @@ import path from 'path'; import loaderUtils from 'loader-utils'; -import { validate } from 'schema-utils'; -import { findModuleById, evalModuleCode } from './utils'; +import { findModuleById, evalModuleCode, AUTO_PUBLIC_PATH } from './utils'; import schema from './loader-options.json'; import MiniCssExtractPlugin, { pluginName, pluginSymbol } from './index'; @@ -30,16 +29,10 @@ function hotLoader(content, context) { } export function pitch(request) { - const options = loaderUtils.getOptions(this) || {}; - - validate(schema, options, { - name: 'Mini CSS Extract Plugin Loader', - baseDataPath: 'options', - }); - + const options = this.getOptions(schema); const callback = this.async(); - const optionsFromPlugin = this[pluginSymbol]; + if (!optionsFromPlugin) { callback( new Error( @@ -50,18 +43,14 @@ export function pitch(request) { return; } - // TODO simplify after drop webpack v4 - // eslint-disable-next-line global-require - const webpack = this._compiler.webpack || require('webpack'); + const { webpack } = this._compiler; const handleExports = (originalExports, compilation, assets, assetsInfo) => { let locals; + let namedExport; const esModule = typeof options.esModule !== 'undefined' ? options.esModule : true; - const namedExport = - esModule && options.modules && options.modules.namedExport; - const addDependencies = (dependencies) => { if (!Array.isArray(dependencies) && dependencies != null) { throw new Error( @@ -102,6 +91,10 @@ export function pitch(request) { ? originalExports.default : originalExports; + namedExport = + // eslint-disable-next-line no-underscore-dangle + originalExports.__esModule && !('locals' in originalExports.default); + if (namedExport) { Object.keys(originalExports).forEach((key) => { if (key !== 'default') { @@ -174,18 +167,18 @@ export function pitch(request) { return callback(null, resultSource); }; - const publicPath = - typeof options.publicPath === 'string' - ? options.publicPath === 'auto' - ? '' - : options.publicPath === '' || options.publicPath.endsWith('/') - ? options.publicPath - : `${options.publicPath}/` - : typeof options.publicPath === 'function' - ? options.publicPath(this.resourcePath, this.rootContext) - : this._compilation.outputOptions.publicPath === 'auto' - ? '' - : this._compilation.outputOptions.publicPath; + let { publicPath } = this._compilation.outputOptions; + + if (typeof options.publicPath === 'string') { + // eslint-disable-next-line prefer-destructuring + publicPath = options.publicPath; + } else if (typeof options.publicPath === 'function') { + publicPath = options.publicPath(this.resourcePath, this.rootContext); + } + + if (publicPath === 'auto') { + publicPath = AUTO_PUBLIC_PATH; + } if (optionsFromPlugin.experimentalUseImportModule) { if (!this.importModule) { @@ -244,56 +237,38 @@ export function pitch(request) { }; const { NodeTemplatePlugin } = webpack.node; - const NodeTargetPlugin = webpack.node.NodeTargetPlugin - ? webpack.node.NodeTargetPlugin - : // eslint-disable-next-line global-require - require('webpack/lib/node/NodeTargetPlugin'); + const { NodeTargetPlugin } = webpack.node; new NodeTemplatePlugin(outputOptions).apply(childCompiler); new NodeTargetPlugin().apply(childCompiler); const { EntryOptionPlugin } = webpack; - if (EntryOptionPlugin) { - const { - library: { EnableLibraryPlugin }, - } = webpack; + const { + library: { EnableLibraryPlugin }, + } = webpack; - new EnableLibraryPlugin('commonjs2').apply(childCompiler); + new EnableLibraryPlugin('commonjs2').apply(childCompiler); - EntryOptionPlugin.applyEntryOption(childCompiler, this.context, { - child: { - library: { - type: 'commonjs2', - }, - import: [`!!${request}`], + EntryOptionPlugin.applyEntryOption(childCompiler, this.context, { + child: { + library: { + type: 'commonjs2', }, - }); - } else { - const { LibraryTemplatePlugin, SingleEntryPlugin } = webpack; - - new LibraryTemplatePlugin(null, 'commonjs2').apply(childCompiler); - new SingleEntryPlugin(this.context, `!!${request}`, pluginName).apply( - childCompiler - ); - } - + import: [`!!${request}`], + }, + }); const { LimitChunkCountPlugin } = webpack.optimize; new LimitChunkCountPlugin({ maxChunks: 1 }).apply(childCompiler); - const NormalModule = webpack.NormalModule - ? webpack.NormalModule - : // eslint-disable-next-line global-require - require('webpack/lib/NormalModule'); + const { NormalModule } = webpack; childCompiler.hooks.thisCompilation.tap( `${pluginName} loader`, (compilation) => { const normalModuleHook = - typeof NormalModule.getCompilationHooks !== 'undefined' - ? NormalModule.getCompilationHooks(compilation).loader - : compilation.hooks.normalModuleLoader; + NormalModule.getCompilationHooks(compilation).loader; normalModuleHook.tap(`${pluginName} loader`, (loaderContext, module) => { if (module.request === request) { @@ -312,12 +287,8 @@ export function pitch(request) { let source; - const isWebpack4 = childCompiler.webpack - ? false - : typeof childCompiler.resolvers !== 'undefined'; - - if (isWebpack4) { - childCompiler.hooks.afterCompile.tap(pluginName, (compilation) => { + childCompiler.hooks.compilation.tap(pluginName, (compilation) => { + compilation.hooks.processAssets.tap(pluginName, () => { source = compilation.assets[childFilename] && compilation.assets[childFilename].source(); @@ -325,38 +296,13 @@ export function pitch(request) { // Remove all chunk assets compilation.chunks.forEach((chunk) => { chunk.files.forEach((file) => { - delete compilation.assets[file]; // eslint-disable-line no-param-reassign - }); - }); - }); - } else { - childCompiler.hooks.compilation.tap(pluginName, (compilation) => { - compilation.hooks.processAssets.tap(pluginName, () => { - source = - compilation.assets[childFilename] && - compilation.assets[childFilename].source(); - - // console.log(source); - - // Remove all chunk assets - compilation.chunks.forEach((chunk) => { - chunk.files.forEach((file) => { - compilation.deleteAsset(file); - }); + compilation.deleteAsset(file); }); }); }); - } + }); childCompiler.runAsChild((error, entries, compilation) => { - const assets = Object.create(null); - const assetsInfo = new Map(); - - for (const asset of compilation.getAssets()) { - assets[asset.name] = asset.source; - assetsInfo.set(asset.name, asset.info); - } - if (error) { return callback(error); } @@ -365,6 +311,14 @@ export function pitch(request) { return callback(compilation.errors[0]); } + const assets = Object.create(null); + const assetsInfo = new Map(); + + for (const asset of compilation.getAssets()) { + assets[asset.name] = asset.source; + assetsInfo.set(asset.name, asset.info); + } + compilation.fileDependencies.forEach((dep) => { this.addDependency(dep); }, this); diff --git a/src/plugin-options.json b/src/plugin-options.json index 509803a6..81bb53a2 100644 --- a/src/plugin-options.json +++ b/src/plugin-options.json @@ -1,4 +1,5 @@ { + "title": "Mini CSS Extract Plugin options", "type": "object", "additionalProperties": false, "properties": { diff --git a/src/utils.js b/src/utils.js index f5c8e2e5..6f27db13 100644 --- a/src/utils.js +++ b/src/utils.js @@ -52,6 +52,7 @@ function compareModulesByIdentifier(a, b) { } const MODULE_TYPE = 'css/mini-extract'; +const AUTO_PUBLIC_PATH = '__MINI_CSS_EXTRACT_PLUGIN_PUBLIC_PATH__'; export { trueFn, @@ -59,4 +60,5 @@ export { evalModuleCode, compareModulesByIdentifier, MODULE_TYPE, + AUTO_PUBLIC_PATH, }; diff --git a/test/TestCache.test.js b/test/TestCache.test.js index c1409b94..7ebb2cd2 100644 --- a/test/TestCache.test.js +++ b/test/TestCache.test.js @@ -13,541 +13,521 @@ describe('TestCache', () => { }); it('should work without cache', async () => { - if (webpack.version[0] !== '4') { - const casesDirectory = path.resolve(__dirname, 'cases'); - const directoryForCase = path.resolve(casesDirectory, 'asset-modules'); - // eslint-disable-next-line import/no-dynamic-require, global-require - const webpackConfig = require(path.resolve( - directoryForCase, - 'webpack.config.js' - )); - const outputPath = path.resolve(__dirname, 'js/cache-false'); - - await del([outputPath]); - - const compiler1 = webpack({ - ...webpackConfig, - mode: 'development', - context: directoryForCase, - cache: false, - output: { - path: outputPath, - }, - }); - - await new Promise((resolve, reject) => { - compiler1.run((error, stats) => { - if (error) { - reject(error); - - return; - } - - compiler1.close(() => { - expect(Object.keys(stats.compilation.assets).sort()) - .toMatchInlineSnapshot(` + const casesDirectory = path.resolve(__dirname, 'cases'); + const directoryForCase = path.resolve(casesDirectory, 'asset-modules'); + // eslint-disable-next-line import/no-dynamic-require, global-require + const webpackConfig = require(path.resolve( + directoryForCase, + 'webpack.config.js' + )); + const outputPath = path.resolve(__dirname, 'js/cache-false'); + + await del([outputPath]); + + const compiler1 = webpack({ + ...webpackConfig, + mode: 'development', + context: directoryForCase, + cache: false, + output: { + path: outputPath, + }, + }); + + await new Promise((resolve, reject) => { + compiler1.run((error, stats) => { + if (error) { + reject(error); + + return; + } + + compiler1.close(() => { + expect(Object.keys(stats.compilation.assets).sort()) + .toMatchInlineSnapshot(` Array [ "main.css", "main.js", "static/react.svg", ] `); - expect(Array.from(stats.compilation.emittedAssets).sort()) - .toMatchInlineSnapshot(` + expect(Array.from(stats.compilation.emittedAssets).sort()) + .toMatchInlineSnapshot(` Array [ "main.css", "main.js", "static/react.svg", ] `); - expect(stats.compilation.warnings).toHaveLength(0); - expect(stats.compilation.errors).toHaveLength(0); + expect(stats.compilation.warnings).toHaveLength(0); + expect(stats.compilation.errors).toHaveLength(0); - resolve(); - }); + resolve(); }); }); - - const compiler2 = webpack({ - ...webpackConfig, - mode: 'development', - context: directoryForCase, - cache: false, - output: { - path: outputPath, - }, - }); - - await new Promise((resolve, reject) => { - compiler2.run((error, stats) => { - if (error) { - reject(error); - - return; - } - - compiler2.close(() => { - expect(Object.keys(stats.compilation.assets).sort()) - .toMatchInlineSnapshot(` + }); + + const compiler2 = webpack({ + ...webpackConfig, + mode: 'development', + context: directoryForCase, + cache: false, + output: { + path: outputPath, + }, + }); + + await new Promise((resolve, reject) => { + compiler2.run((error, stats) => { + if (error) { + reject(error); + + return; + } + + compiler2.close(() => { + expect(Object.keys(stats.compilation.assets).sort()) + .toMatchInlineSnapshot(` Array [ "main.css", "main.js", "static/react.svg", ] `); - expect( - Array.from(stats.compilation.emittedAssets).sort() - ).toMatchInlineSnapshot(`Array []`); - expect(stats.compilation.warnings).toHaveLength(0); - expect(stats.compilation.errors).toHaveLength(0); - - resolve(); - }); + expect( + Array.from(stats.compilation.emittedAssets).sort() + ).toMatchInlineSnapshot(`Array []`); + expect(stats.compilation.warnings).toHaveLength(0); + expect(stats.compilation.errors).toHaveLength(0); + + resolve(); }); }); - } else { - expect(true).toBe(true); - } + }); }); it('should work with the "memory" cache', async () => { - if (webpack.version[0] !== '4') { - const casesDirectory = path.resolve(__dirname, 'cases'); - const directoryForCase = path.resolve(casesDirectory, 'asset-modules'); - // eslint-disable-next-line import/no-dynamic-require, global-require - const webpackConfig = require(path.resolve( - directoryForCase, - 'webpack.config.js' - )); - const outputPath = path.resolve(__dirname, 'js/cache-memory'); - - await del([outputPath]); - - const compiler1 = webpack({ - ...webpackConfig, - mode: 'development', - context: directoryForCase, - cache: { - type: 'memory', - }, - output: { - path: outputPath, - }, - }); - - await new Promise((resolve, reject) => { - compiler1.run((error, stats) => { - if (error) { - reject(error); - - return; - } - - compiler1.close(() => { - expect(Object.keys(stats.compilation.assets).sort()) - .toMatchInlineSnapshot(` + const casesDirectory = path.resolve(__dirname, 'cases'); + const directoryForCase = path.resolve(casesDirectory, 'asset-modules'); + // eslint-disable-next-line import/no-dynamic-require, global-require + const webpackConfig = require(path.resolve( + directoryForCase, + 'webpack.config.js' + )); + const outputPath = path.resolve(__dirname, 'js/cache-memory'); + + await del([outputPath]); + + const compiler1 = webpack({ + ...webpackConfig, + mode: 'development', + context: directoryForCase, + cache: { + type: 'memory', + }, + output: { + path: outputPath, + }, + }); + + await new Promise((resolve, reject) => { + compiler1.run((error, stats) => { + if (error) { + reject(error); + + return; + } + + compiler1.close(() => { + expect(Object.keys(stats.compilation.assets).sort()) + .toMatchInlineSnapshot(` Array [ "main.css", "main.js", "static/react.svg", ] `); - expect(Array.from(stats.compilation.emittedAssets).sort()) - .toMatchInlineSnapshot(` + expect(Array.from(stats.compilation.emittedAssets).sort()) + .toMatchInlineSnapshot(` Array [ "main.css", "main.js", "static/react.svg", ] `); - expect(stats.compilation.warnings).toHaveLength(0); - expect(stats.compilation.errors).toHaveLength(0); + expect(stats.compilation.warnings).toHaveLength(0); + expect(stats.compilation.errors).toHaveLength(0); - resolve(); - }); + resolve(); }); }); - - const compiler2 = webpack({ - ...webpackConfig, - mode: 'development', - context: directoryForCase, - cache: { - type: 'memory', - }, - output: { - path: outputPath, - }, - }); - - await new Promise((resolve, reject) => { - compiler2.run((error, stats) => { - if (error) { - reject(error); - - return; - } - - compiler2.close(() => { - expect(Object.keys(stats.compilation.assets).sort()) - .toMatchInlineSnapshot(` + }); + + const compiler2 = webpack({ + ...webpackConfig, + mode: 'development', + context: directoryForCase, + cache: { + type: 'memory', + }, + output: { + path: outputPath, + }, + }); + + await new Promise((resolve, reject) => { + compiler2.run((error, stats) => { + if (error) { + reject(error); + + return; + } + + compiler2.close(() => { + expect(Object.keys(stats.compilation.assets).sort()) + .toMatchInlineSnapshot(` Array [ "main.css", "main.js", "static/react.svg", ] `); - expect( - Array.from(stats.compilation.emittedAssets).sort() - ).toMatchInlineSnapshot(`Array []`); - expect(stats.compilation.warnings).toHaveLength(0); - expect(stats.compilation.errors).toHaveLength(0); - - resolve(); - }); + expect( + Array.from(stats.compilation.emittedAssets).sort() + ).toMatchInlineSnapshot(`Array []`); + expect(stats.compilation.warnings).toHaveLength(0); + expect(stats.compilation.errors).toHaveLength(0); + + resolve(); }); }); - } else { - expect(true).toBe(true); - } + }); }); it('should work with the "filesystem" cache', async () => { - if (webpack.version[0] !== '4') { - const casesDirectory = path.resolve(__dirname, 'cases'); - const directoryForCase = path.resolve(casesDirectory, 'simple'); - // eslint-disable-next-line import/no-dynamic-require, global-require - const webpackConfig = require(path.resolve( - directoryForCase, - 'webpack.config.js' - )); - const outputPath = path.resolve(__dirname, 'js/cache-filesystem'); - const fileSystemCacheDirectory = path.resolve( - __dirname, - './js/.cache/type-filesystem' - ); - - await del([outputPath, fileSystemCacheDirectory]); - - const compiler1 = webpack({ - ...webpackConfig, - mode: 'development', - context: directoryForCase, - cache: { - type: 'filesystem', - cacheDirectory: fileSystemCacheDirectory, - idleTimeout: 0, - idleTimeoutForInitialStore: 0, - }, - output: { - path: outputPath, - }, - }); - - await new Promise((resolve, reject) => { - compiler1.run((error, stats) => { - if (error) { - reject(error); - - return; - } - - compiler1.close(() => { - expect(Object.keys(stats.compilation.assets).sort()) - .toMatchInlineSnapshot(` + const casesDirectory = path.resolve(__dirname, 'cases'); + const directoryForCase = path.resolve(casesDirectory, 'simple'); + // eslint-disable-next-line import/no-dynamic-require, global-require + const webpackConfig = require(path.resolve( + directoryForCase, + 'webpack.config.js' + )); + const outputPath = path.resolve(__dirname, 'js/cache-filesystem'); + const fileSystemCacheDirectory = path.resolve( + __dirname, + './js/.cache/type-filesystem' + ); + + await del([outputPath, fileSystemCacheDirectory]); + + const compiler1 = webpack({ + ...webpackConfig, + mode: 'development', + context: directoryForCase, + cache: { + type: 'filesystem', + cacheDirectory: fileSystemCacheDirectory, + idleTimeout: 0, + idleTimeoutForInitialStore: 0, + }, + output: { + path: outputPath, + }, + }); + + await new Promise((resolve, reject) => { + compiler1.run((error, stats) => { + if (error) { + reject(error); + + return; + } + + compiler1.close(() => { + expect(Object.keys(stats.compilation.assets).sort()) + .toMatchInlineSnapshot(` Array [ "main.css", "main.js", ] `); - expect(Array.from(stats.compilation.emittedAssets).sort()) - .toMatchInlineSnapshot(` + expect(Array.from(stats.compilation.emittedAssets).sort()) + .toMatchInlineSnapshot(` Array [ "main.css", "main.js", ] `); - expect(stats.compilation.warnings).toHaveLength(0); - expect(stats.compilation.errors).toHaveLength(0); + expect(stats.compilation.warnings).toHaveLength(0); + expect(stats.compilation.errors).toHaveLength(0); - resolve(); - }); + resolve(); }); }); - - const compiler2 = webpack({ - ...webpackConfig, - mode: 'development', - context: directoryForCase, - cache: { - type: 'filesystem', - cacheDirectory: fileSystemCacheDirectory, - idleTimeout: 0, - idleTimeoutForInitialStore: 0, - }, - output: { - path: outputPath, - }, - }); - - await new Promise((resolve, reject) => { - compiler2.run((error, stats) => { - if (error) { - reject(error); - - return; - } - - compiler2.close(() => { - expect(Object.keys(stats.compilation.assets).sort()) - .toMatchInlineSnapshot(` + }); + + const compiler2 = webpack({ + ...webpackConfig, + mode: 'development', + context: directoryForCase, + cache: { + type: 'filesystem', + cacheDirectory: fileSystemCacheDirectory, + idleTimeout: 0, + idleTimeoutForInitialStore: 0, + }, + output: { + path: outputPath, + }, + }); + + await new Promise((resolve, reject) => { + compiler2.run((error, stats) => { + if (error) { + reject(error); + + return; + } + + compiler2.close(() => { + expect(Object.keys(stats.compilation.assets).sort()) + .toMatchInlineSnapshot(` Array [ "main.css", "main.js", ] `); - expect( - Array.from(stats.compilation.emittedAssets).sort() - ).toMatchInlineSnapshot(`Array []`); - expect(stats.compilation.warnings).toHaveLength(0); - expect(stats.compilation.errors).toHaveLength(0); - - resolve(); - }); + expect( + Array.from(stats.compilation.emittedAssets).sort() + ).toMatchInlineSnapshot(`Array []`); + expect(stats.compilation.warnings).toHaveLength(0); + expect(stats.compilation.errors).toHaveLength(0); + + resolve(); }); }); - } else { - expect(true).toBe(true); - } + }); }); it('should work with the "filesystem" cache and asset modules', async () => { - if (webpack.version[0] !== '4') { - const casesDirectory = path.resolve(__dirname, 'cases'); - const directoryForCase = path.resolve(casesDirectory, 'asset-modules'); - // eslint-disable-next-line import/no-dynamic-require, global-require - const webpackConfig = require(path.resolve( - directoryForCase, - 'webpack.config.js' - )); - const outputPath = path.resolve( - __dirname, - 'js/cache-filesystem-asset-modules' - ); - const fileSystemCacheDirectory = path.resolve( - __dirname, - './js/.cache/type-filesystem' - ); - - await del([outputPath, fileSystemCacheDirectory]); - - const compiler1 = webpack({ - ...webpackConfig, - mode: 'development', - context: directoryForCase, - cache: { - type: 'filesystem', - cacheDirectory: fileSystemCacheDirectory, - idleTimeout: 0, - idleTimeoutForInitialStore: 0, - }, - output: { - path: outputPath, - }, - }); - - await new Promise((resolve, reject) => { - compiler1.run((error, stats) => { - if (error) { - reject(error); - - return; - } - - compiler1.close(() => { - expect(Object.keys(stats.compilation.assets).sort()) - .toMatchInlineSnapshot(` + const casesDirectory = path.resolve(__dirname, 'cases'); + const directoryForCase = path.resolve(casesDirectory, 'asset-modules'); + // eslint-disable-next-line import/no-dynamic-require, global-require + const webpackConfig = require(path.resolve( + directoryForCase, + 'webpack.config.js' + )); + const outputPath = path.resolve( + __dirname, + 'js/cache-filesystem-asset-modules' + ); + const fileSystemCacheDirectory = path.resolve( + __dirname, + './js/.cache/type-filesystem' + ); + + await del([outputPath, fileSystemCacheDirectory]); + + const compiler1 = webpack({ + ...webpackConfig, + mode: 'development', + context: directoryForCase, + cache: { + type: 'filesystem', + cacheDirectory: fileSystemCacheDirectory, + idleTimeout: 0, + idleTimeoutForInitialStore: 0, + }, + output: { + path: outputPath, + }, + }); + + await new Promise((resolve, reject) => { + compiler1.run((error, stats) => { + if (error) { + reject(error); + + return; + } + + compiler1.close(() => { + expect(Object.keys(stats.compilation.assets).sort()) + .toMatchInlineSnapshot(` Array [ "main.css", "main.js", "static/react.svg", ] `); - expect(Array.from(stats.compilation.emittedAssets).sort()) - .toMatchInlineSnapshot(` + expect(Array.from(stats.compilation.emittedAssets).sort()) + .toMatchInlineSnapshot(` Array [ "main.css", "main.js", "static/react.svg", ] `); - expect(stats.compilation.warnings).toHaveLength(0); - expect(stats.compilation.errors).toHaveLength(0); + expect(stats.compilation.warnings).toHaveLength(0); + expect(stats.compilation.errors).toHaveLength(0); - resolve(); - }); + resolve(); }); }); - - const compiler2 = webpack({ - ...webpackConfig, - mode: 'development', - context: directoryForCase, - cache: { - type: 'filesystem', - cacheDirectory: fileSystemCacheDirectory, - idleTimeout: 0, - idleTimeoutForInitialStore: 0, - }, - output: { - path: outputPath, - }, - }); - - await new Promise((resolve, reject) => { - compiler2.run((error, stats) => { - if (error) { - reject(error); - - return; - } - - compiler2.close(() => { - expect(Object.keys(stats.compilation.assets).sort()) - .toMatchInlineSnapshot(` + }); + + const compiler2 = webpack({ + ...webpackConfig, + mode: 'development', + context: directoryForCase, + cache: { + type: 'filesystem', + cacheDirectory: fileSystemCacheDirectory, + idleTimeout: 0, + idleTimeoutForInitialStore: 0, + }, + output: { + path: outputPath, + }, + }); + + await new Promise((resolve, reject) => { + compiler2.run((error, stats) => { + if (error) { + reject(error); + + return; + } + + compiler2.close(() => { + expect(Object.keys(stats.compilation.assets).sort()) + .toMatchInlineSnapshot(` Array [ "main.css", "main.js", "static/react.svg", ] `); - expect( - Array.from(stats.compilation.emittedAssets).sort() - ).toMatchInlineSnapshot(`Array []`); - expect(stats.compilation.warnings).toHaveLength(0); - expect(stats.compilation.errors).toHaveLength(0); - - resolve(); - }); + expect( + Array.from(stats.compilation.emittedAssets).sort() + ).toMatchInlineSnapshot(`Array []`); + expect(stats.compilation.warnings).toHaveLength(0); + expect(stats.compilation.errors).toHaveLength(0); + + resolve(); }); }); - } else { - expect(true).toBe(true); - } + }); }); it('should work with the "filesystem" cache and file-loader', async () => { - if (webpack.version[0] !== '4') { - const casesDirectory = path.resolve(__dirname, 'cases'); - const directoryForCase = path.resolve(casesDirectory, 'file-loader'); - // eslint-disable-next-line import/no-dynamic-require, global-require - const webpackConfig = require(path.resolve( - directoryForCase, - 'webpack.config.js' - )); - const outputPath = path.resolve( - __dirname, - 'js/cache-filesystem-file-loader' - ); - const fileSystemCacheDirectory = path.resolve( - __dirname, - './js/.cache/type-filesystem' - ); - - await del([outputPath, fileSystemCacheDirectory]); - - const compiler1 = webpack({ - ...webpackConfig, - mode: 'development', - context: directoryForCase, - cache: { - type: 'filesystem', - cacheDirectory: fileSystemCacheDirectory, - idleTimeout: 0, - idleTimeoutForInitialStore: 0, - }, - output: { - path: outputPath, - }, - }); - - await new Promise((resolve, reject) => { - compiler1.run((error, stats) => { - if (error) { - reject(error); - - return; - } - - compiler1.close(() => { - expect(Object.keys(stats.compilation.assets).sort()) - .toMatchInlineSnapshot(` + const casesDirectory = path.resolve(__dirname, 'cases'); + const directoryForCase = path.resolve(casesDirectory, 'file-loader'); + // eslint-disable-next-line import/no-dynamic-require, global-require + const webpackConfig = require(path.resolve( + directoryForCase, + 'webpack.config.js' + )); + const outputPath = path.resolve( + __dirname, + 'js/cache-filesystem-file-loader' + ); + const fileSystemCacheDirectory = path.resolve( + __dirname, + './js/.cache/type-filesystem' + ); + + await del([outputPath, fileSystemCacheDirectory]); + + const compiler1 = webpack({ + ...webpackConfig, + mode: 'development', + context: directoryForCase, + cache: { + type: 'filesystem', + cacheDirectory: fileSystemCacheDirectory, + idleTimeout: 0, + idleTimeoutForInitialStore: 0, + }, + output: { + path: outputPath, + }, + }); + + await new Promise((resolve, reject) => { + compiler1.run((error, stats) => { + if (error) { + reject(error); + + return; + } + + compiler1.close(() => { + expect(Object.keys(stats.compilation.assets).sort()) + .toMatchInlineSnapshot(` Array [ "main.css", "main.js", "static/react.svg", ] `); - expect(Array.from(stats.compilation.emittedAssets).sort()) - .toMatchInlineSnapshot(` + expect(Array.from(stats.compilation.emittedAssets).sort()) + .toMatchInlineSnapshot(` Array [ "main.css", "main.js", "static/react.svg", ] `); - expect(stats.compilation.warnings).toHaveLength(0); - expect(stats.compilation.errors).toHaveLength(0); + expect(stats.compilation.warnings).toHaveLength(0); + expect(stats.compilation.errors).toHaveLength(0); - resolve(); - }); + resolve(); }); }); - - const compiler2 = webpack({ - ...webpackConfig, - mode: 'development', - context: directoryForCase, - cache: { - type: 'filesystem', - cacheDirectory: fileSystemCacheDirectory, - idleTimeout: 0, - idleTimeoutForInitialStore: 0, - }, - output: { - path: outputPath, - }, - }); - - await new Promise((resolve, reject) => { - compiler2.run((error, stats) => { - if (error) { - reject(error); - - return; - } - - compiler2.close(() => { - expect(Object.keys(stats.compilation.assets).sort()) - .toMatchInlineSnapshot(` + }); + + const compiler2 = webpack({ + ...webpackConfig, + mode: 'development', + context: directoryForCase, + cache: { + type: 'filesystem', + cacheDirectory: fileSystemCacheDirectory, + idleTimeout: 0, + idleTimeoutForInitialStore: 0, + }, + output: { + path: outputPath, + }, + }); + + await new Promise((resolve, reject) => { + compiler2.run((error, stats) => { + if (error) { + reject(error); + + return; + } + + compiler2.close(() => { + expect(Object.keys(stats.compilation.assets).sort()) + .toMatchInlineSnapshot(` Array [ "main.css", "main.js", "static/react.svg", ] `); - expect( - Array.from(stats.compilation.emittedAssets).sort() - ).toMatchInlineSnapshot(`Array []`); - expect(stats.compilation.warnings).toHaveLength(0); - expect(stats.compilation.errors).toHaveLength(0); - - resolve(); - }); + expect( + Array.from(stats.compilation.emittedAssets).sort() + ).toMatchInlineSnapshot(`Array []`); + expect(stats.compilation.warnings).toHaveLength(0); + expect(stats.compilation.errors).toHaveLength(0); + + resolve(); }); }); - } else { - expect(true).toBe(true); - } + }); }); }); diff --git a/test/TestCases.test.js b/test/TestCases.test.js index 99e99b75..f9d70513 100644 --- a/test/TestCases.test.js +++ b/test/TestCases.test.js @@ -206,28 +206,16 @@ describe('TestCases', () => { res = res.replace(dateRegexp, ''); - if (webpack.version[0] === '4') { - const matchAll = res.match(/var hotCurrentHash = "([\d\w].*)"/i); - const replacer = new Array(matchAll[1].length); - - res = res.replace( - /var hotCurrentHash = "([\d\w].*)"/i, - `var hotCurrentHash = "${replacer.fill('x').join('')}"` - ); - } else { - const matchAll = res.match( - /__webpack_require__\.h = \(\) => \(("[\d\w].*")\)/i - ); + const matchAll = res.match( + /__webpack_require__\.h = \(\) => \(("[\d\w].*")\)/i + ); - const replacer = new Array(matchAll[1].length); + const replacer = new Array(matchAll[1].length); - res = res.replace( - /__webpack_require__\.h = \(\) => \(("[\d\w].*")\)/i, - `__webpack_require__.h = () => ("${replacer - .fill('x') - .join('')}")` - ); - } + res = res.replace( + /__webpack_require__\.h = \(\) => \(("[\d\w].*")\)/i, + `__webpack_require__.h = () => ("${replacer.fill('x').join('')}")` + ); fs.writeFileSync( path.resolve(outputDirectoryForCase, 'main.js'), diff --git a/test/TestMemoryFS.test.js b/test/TestMemoryFS.test.js index 8d55a166..db79d4f9 100644 --- a/test/TestMemoryFS.test.js +++ b/test/TestMemoryFS.test.js @@ -20,11 +20,8 @@ describe('TestMemoryFS', () => { context: directoryForCase, cache: false, }); - const outputFileSystem = createFsFromVolume(new Volume()); - // Todo remove when we drop webpack@4 support - outputFileSystem.join = path.join.bind(path); - compiler.outputFileSystem = outputFileSystem; + compiler.outputFileSystem = createFsFromVolume(new Volume()); compiler.run((err1, stats1) => { if (err1) { diff --git a/test/__snapshots__/HMR.test.js.snap.webpack4 b/test/__snapshots__/HMR.test.js.snap similarity index 100% rename from test/__snapshots__/HMR.test.js.snap.webpack4 rename to test/__snapshots__/HMR.test.js.snap diff --git a/test/__snapshots__/HMR.test.js.snap.webpack5 b/test/__snapshots__/HMR.test.js.snap.webpack5 deleted file mode 100644 index bf306c32..00000000 --- a/test/__snapshots__/HMR.test.js.snap.webpack5 +++ /dev/null @@ -1,43 +0,0 @@ -// Jest Snapshot v1, https://goo.gl/fbAQLP - -exports[`HMR should handle error event 1`] = `"[HMR] css reload %s"`; - -exports[`HMR should handle error event 2`] = `""`; - -exports[`HMR should reloads with # link href 1`] = `"[HMR] css reload %s"`; - -exports[`HMR should reloads with # link href 2`] = `""`; - -exports[`HMR should reloads with absolute remove url 1`] = `"[HMR] css reload %s"`; - -exports[`HMR should reloads with absolute remove url 2`] = `""`; - -exports[`HMR should reloads with link without href 1`] = `"[HMR] css reload %s"`; - -exports[`HMR should reloads with link without href 2`] = `""`; - -exports[`HMR should reloads with locals 1`] = `"[HMR] Detected local css modules. Reload all css"`; - -exports[`HMR should reloads with locals 2`] = `""`; - -exports[`HMR should reloads with non http/https link href 1`] = `"[HMR] css reload %s"`; - -exports[`HMR should reloads with non http/https link href 2`] = `""`; - -exports[`HMR should reloads with non-file script in the end of page 1`] = `"[HMR] Reload all css"`; - -exports[`HMR should reloads with non-file script in the end of page 2`] = `""`; - -exports[`HMR should work reload all css 1`] = `"[HMR] Reload all css"`; - -exports[`HMR should work reload all css 2`] = `""`; - -exports[`HMR should works 1`] = `"[HMR] css reload %s"`; - -exports[`HMR should works 2`] = `""`; - -exports[`HMR should works with multiple updates 1`] = `"[HMR] css reload %s"`; - -exports[`HMR should works with multiple updates 2`] = `""`; - -exports[`HMR should works with multiple updates 3`] = `""`; diff --git a/test/__snapshots__/attributes-option.test.js.snap.webpack4 b/test/__snapshots__/attributes-option.test.js.snap similarity index 100% rename from test/__snapshots__/attributes-option.test.js.snap.webpack4 rename to test/__snapshots__/attributes-option.test.js.snap diff --git a/test/__snapshots__/attributes-option.test.js.snap.webpack5 b/test/__snapshots__/attributes-option.test.js.snap.webpack5 deleted file mode 100644 index 84007ca0..00000000 --- a/test/__snapshots__/attributes-option.test.js.snap.webpack5 +++ /dev/null @@ -1,37 +0,0 @@ -// Jest Snapshot v1, https://goo.gl/fbAQLP - -exports[`attributes option should work with attributes option: DOM 1`] = ` -" - style-loader test - - - -

Body

-
- - - -" -`; - -exports[`attributes option should work with attributes option: errors 1`] = `Array []`; - -exports[`attributes option should work with attributes option: warnings 1`] = `Array []`; - -exports[`attributes option should work without attributes option: DOM 1`] = ` -" - style-loader test - - - -

Body

-
- - - -" -`; - -exports[`attributes option should work without attributes option: errors 1`] = `Array []`; - -exports[`attributes option should work without attributes option: warnings 1`] = `Array []`; diff --git a/test/__snapshots__/emit-option.test.js.snap.webpack5 b/test/__snapshots__/emit-option.test.js.snap similarity index 100% rename from test/__snapshots__/emit-option.test.js.snap.webpack5 rename to test/__snapshots__/emit-option.test.js.snap diff --git a/test/__snapshots__/emit-option.test.js.snap.webpack4 b/test/__snapshots__/emit-option.test.js.snap.webpack4 deleted file mode 100644 index 6608229e..00000000 --- a/test/__snapshots__/emit-option.test.js.snap.webpack4 +++ /dev/null @@ -1,52 +0,0 @@ -// Jest Snapshot v1, https://goo.gl/fbAQLP - -exports[`emit option should work when emit option is "false": assets 1`] = ` -Array [ - "main.js", - "react.svg", -] -`; - -exports[`emit option should work when emit option is "false": errors 1`] = `Array []`; - -exports[`emit option should work when emit option is "false": warnings 1`] = `Array []`; - -exports[`emit option should work when emit option is "true": assets 1`] = ` -Array [ - "main.css", - "main.js", - "react.svg", -] -`; - -exports[`emit option should work when emit option is "true": errors 1`] = `Array []`; - -exports[`emit option should work when emit option is "true": warnings 1`] = `Array []`; - -exports[`emit option should work with locals when emit option is "false": DOM 1`] = ` -" - style-loader test - - - -css.foo: _1F17fUrdX_cbcyDHpFqmAD -css.bar: _3TZVxmkrZR2cTfifKhDoZn -css.baz: M-pzkE59YBii7EXzFyxE6 -" -`; - -exports[`emit option should work with locals when emit option is "false": errors 1`] = `Array []`; - -exports[`emit option should work with locals when emit option is "false": warnings 1`] = `Array []`; - -exports[`emit option should work without emit option: assets 1`] = ` -Array [ - "main.bundle.js", - "main.css", - "react.svg", -] -`; - -exports[`emit option should work without emit option: errors 1`] = `Array []`; - -exports[`emit option should work without emit option: warnings 1`] = `Array []`; diff --git a/test/__snapshots__/insert-option.test.js.snap.webpack4 b/test/__snapshots__/insert-option.test.js.snap similarity index 100% rename from test/__snapshots__/insert-option.test.js.snap.webpack4 rename to test/__snapshots__/insert-option.test.js.snap diff --git a/test/__snapshots__/insert-option.test.js.snap.webpack5 b/test/__snapshots__/insert-option.test.js.snap.webpack5 deleted file mode 100644 index 1e8530eb..00000000 --- a/test/__snapshots__/insert-option.test.js.snap.webpack5 +++ /dev/null @@ -1,55 +0,0 @@ -// Jest Snapshot v1, https://goo.gl/fbAQLP - -exports[`insert option should work when insert option is function: DOM 1`] = ` -" - style-loader test - - - -

Body

-
- - - -" -`; - -exports[`insert option should work when insert option is function: errors 1`] = `Array []`; - -exports[`insert option should work when insert option is function: warnings 1`] = `Array []`; - -exports[`insert option should work when insert option is string: DOM 1`] = ` -" - style-loader test - - - -

Body

-
- - - -" -`; - -exports[`insert option should work when insert option is string: errors 1`] = `Array []`; - -exports[`insert option should work when insert option is string: warnings 1`] = `Array []`; - -exports[`insert option should work without insert option: DOM 1`] = ` -" - style-loader test - - - -

Body

-
- - - -" -`; - -exports[`insert option should work without insert option: errors 1`] = `Array []`; - -exports[`insert option should work without insert option: warnings 1`] = `Array []`; diff --git a/test/__snapshots__/linkTag-option.test.js.snap.webpack4 b/test/__snapshots__/linkTag-option.test.js.snap similarity index 100% rename from test/__snapshots__/linkTag-option.test.js.snap.webpack4 rename to test/__snapshots__/linkTag-option.test.js.snap diff --git a/test/__snapshots__/linkTag-option.test.js.snap.webpack5 b/test/__snapshots__/linkTag-option.test.js.snap.webpack5 deleted file mode 100644 index 8a4e62d9..00000000 --- a/test/__snapshots__/linkTag-option.test.js.snap.webpack5 +++ /dev/null @@ -1,55 +0,0 @@ -// Jest Snapshot v1, https://goo.gl/fbAQLP - -exports[`linkType option should work when linkType option is "false": DOM 1`] = ` -" - style-loader test - - - -

Body

-
- - - -" -`; - -exports[`linkType option should work when linkType option is "false": errors 1`] = `Array []`; - -exports[`linkType option should work when linkType option is "false": warnings 1`] = `Array []`; - -exports[`linkType option should work when linkType option is "text/css": DOM 1`] = ` -" - style-loader test - - - -

Body

-
- - - -" -`; - -exports[`linkType option should work when linkType option is "text/css": errors 1`] = `Array []`; - -exports[`linkType option should work when linkType option is "text/css": warnings 1`] = `Array []`; - -exports[`linkType option should work without linkType option: DOM 1`] = ` -" - style-loader test - - - -

Body

-
- - - -" -`; - -exports[`linkType option should work without linkType option: errors 1`] = `Array []`; - -exports[`linkType option should work without linkType option: warnings 1`] = `Array []`; diff --git a/test/__snapshots__/validate-loader-options.test.js.snap.webpack5 b/test/__snapshots__/validate-loader-options.test.js.snap similarity index 72% rename from test/__snapshots__/validate-loader-options.test.js.snap.webpack5 rename to test/__snapshots__/validate-loader-options.test.js.snap index 208df811..3ef75319 100644 --- a/test/__snapshots__/validate-loader-options.test.js.snap.webpack5 +++ b/test/__snapshots__/validate-loader-options.test.js.snap @@ -5,18 +5,6 @@ exports[`validate options should throw an error on the "esModule" option with "1 - options.esModule should be a boolean." `; -exports[`validate options should throw an error on the "modules" option with "{"namedExport":"false"}" value 1`] = ` -"Invalid options object. Mini CSS Extract Plugin Loader has been initialized using an options object that does not match the API schema. - - options.modules.namedExport should be a boolean. - -> Enables/disables ES modules named export for locals (https://webpack.js.org/plugins/mini-css-extract-plugin/#namedexport)." -`; - -exports[`validate options should throw an error on the "modules" option with "true" value 1`] = ` -"Invalid options object. Mini CSS Extract Plugin Loader has been initialized using an options object that does not match the API schema. - - options.modules should be an object: - object { namedExport? }" -`; - exports[`validate options should throw an error on the "publicPath" option with "true" value 1`] = ` "Invalid options object. Mini CSS Extract Plugin Loader has been initialized using an options object that does not match the API schema. - options.publicPath should be one of these: @@ -29,47 +17,47 @@ exports[`validate options should throw an error on the "publicPath" option with exports[`validate options should throw an error on the "unknown" option with "/test/" value 1`] = ` "Invalid options object. Mini CSS Extract Plugin Loader has been initialized using an options object that does not match the API schema. - options has an unknown property 'unknown'. These properties are valid: - object { publicPath?, emit?, esModule?, layer?, modules? }" + object { publicPath?, emit?, esModule?, layer? }" `; exports[`validate options should throw an error on the "unknown" option with "[]" value 1`] = ` "Invalid options object. Mini CSS Extract Plugin Loader has been initialized using an options object that does not match the API schema. - options has an unknown property 'unknown'. These properties are valid: - object { publicPath?, emit?, esModule?, layer?, modules? }" + object { publicPath?, emit?, esModule?, layer? }" `; exports[`validate options should throw an error on the "unknown" option with "{"foo":"bar"}" value 1`] = ` "Invalid options object. Mini CSS Extract Plugin Loader has been initialized using an options object that does not match the API schema. - options has an unknown property 'unknown'. These properties are valid: - object { publicPath?, emit?, esModule?, layer?, modules? }" + object { publicPath?, emit?, esModule?, layer? }" `; exports[`validate options should throw an error on the "unknown" option with "{}" value 1`] = ` "Invalid options object. Mini CSS Extract Plugin Loader has been initialized using an options object that does not match the API schema. - options has an unknown property 'unknown'. These properties are valid: - object { publicPath?, emit?, esModule?, layer?, modules? }" + object { publicPath?, emit?, esModule?, layer? }" `; exports[`validate options should throw an error on the "unknown" option with "1" value 1`] = ` "Invalid options object. Mini CSS Extract Plugin Loader has been initialized using an options object that does not match the API schema. - options has an unknown property 'unknown'. These properties are valid: - object { publicPath?, emit?, esModule?, layer?, modules? }" + object { publicPath?, emit?, esModule?, layer? }" `; exports[`validate options should throw an error on the "unknown" option with "false" value 1`] = ` "Invalid options object. Mini CSS Extract Plugin Loader has been initialized using an options object that does not match the API schema. - options has an unknown property 'unknown'. These properties are valid: - object { publicPath?, emit?, esModule?, layer?, modules? }" + object { publicPath?, emit?, esModule?, layer? }" `; exports[`validate options should throw an error on the "unknown" option with "test" value 1`] = ` "Invalid options object. Mini CSS Extract Plugin Loader has been initialized using an options object that does not match the API schema. - options has an unknown property 'unknown'. These properties are valid: - object { publicPath?, emit?, esModule?, layer?, modules? }" + object { publicPath?, emit?, esModule?, layer? }" `; exports[`validate options should throw an error on the "unknown" option with "true" value 1`] = ` "Invalid options object. Mini CSS Extract Plugin Loader has been initialized using an options object that does not match the API schema. - options has an unknown property 'unknown'. These properties are valid: - object { publicPath?, emit?, esModule?, layer?, modules? }" + object { publicPath?, emit?, esModule?, layer? }" `; diff --git a/test/__snapshots__/validate-loader-options.test.js.snap.webpack4 b/test/__snapshots__/validate-loader-options.test.js.snap.webpack4 deleted file mode 100644 index 208df811..00000000 --- a/test/__snapshots__/validate-loader-options.test.js.snap.webpack4 +++ /dev/null @@ -1,75 +0,0 @@ -// Jest Snapshot v1, https://goo.gl/fbAQLP - -exports[`validate options should throw an error on the "esModule" option with "1" value 1`] = ` -"Invalid options object. Mini CSS Extract Plugin Loader has been initialized using an options object that does not match the API schema. - - options.esModule should be a boolean." -`; - -exports[`validate options should throw an error on the "modules" option with "{"namedExport":"false"}" value 1`] = ` -"Invalid options object. Mini CSS Extract Plugin Loader has been initialized using an options object that does not match the API schema. - - options.modules.namedExport should be a boolean. - -> Enables/disables ES modules named export for locals (https://webpack.js.org/plugins/mini-css-extract-plugin/#namedexport)." -`; - -exports[`validate options should throw an error on the "modules" option with "true" value 1`] = ` -"Invalid options object. Mini CSS Extract Plugin Loader has been initialized using an options object that does not match the API schema. - - options.modules should be an object: - object { namedExport? }" -`; - -exports[`validate options should throw an error on the "publicPath" option with "true" value 1`] = ` -"Invalid options object. Mini CSS Extract Plugin Loader has been initialized using an options object that does not match the API schema. - - options.publicPath should be one of these: - string | function - Details: - * options.publicPath should be a string. - * options.publicPath should be an instance of function." -`; - -exports[`validate options should throw an error on the "unknown" option with "/test/" value 1`] = ` -"Invalid options object. Mini CSS Extract Plugin Loader has been initialized using an options object that does not match the API schema. - - options has an unknown property 'unknown'. These properties are valid: - object { publicPath?, emit?, esModule?, layer?, modules? }" -`; - -exports[`validate options should throw an error on the "unknown" option with "[]" value 1`] = ` -"Invalid options object. Mini CSS Extract Plugin Loader has been initialized using an options object that does not match the API schema. - - options has an unknown property 'unknown'. These properties are valid: - object { publicPath?, emit?, esModule?, layer?, modules? }" -`; - -exports[`validate options should throw an error on the "unknown" option with "{"foo":"bar"}" value 1`] = ` -"Invalid options object. Mini CSS Extract Plugin Loader has been initialized using an options object that does not match the API schema. - - options has an unknown property 'unknown'. These properties are valid: - object { publicPath?, emit?, esModule?, layer?, modules? }" -`; - -exports[`validate options should throw an error on the "unknown" option with "{}" value 1`] = ` -"Invalid options object. Mini CSS Extract Plugin Loader has been initialized using an options object that does not match the API schema. - - options has an unknown property 'unknown'. These properties are valid: - object { publicPath?, emit?, esModule?, layer?, modules? }" -`; - -exports[`validate options should throw an error on the "unknown" option with "1" value 1`] = ` -"Invalid options object. Mini CSS Extract Plugin Loader has been initialized using an options object that does not match the API schema. - - options has an unknown property 'unknown'. These properties are valid: - object { publicPath?, emit?, esModule?, layer?, modules? }" -`; - -exports[`validate options should throw an error on the "unknown" option with "false" value 1`] = ` -"Invalid options object. Mini CSS Extract Plugin Loader has been initialized using an options object that does not match the API schema. - - options has an unknown property 'unknown'. These properties are valid: - object { publicPath?, emit?, esModule?, layer?, modules? }" -`; - -exports[`validate options should throw an error on the "unknown" option with "test" value 1`] = ` -"Invalid options object. Mini CSS Extract Plugin Loader has been initialized using an options object that does not match the API schema. - - options has an unknown property 'unknown'. These properties are valid: - object { publicPath?, emit?, esModule?, layer?, modules? }" -`; - -exports[`validate options should throw an error on the "unknown" option with "true" value 1`] = ` -"Invalid options object. Mini CSS Extract Plugin Loader has been initialized using an options object that does not match the API schema. - - options has an unknown property 'unknown'. These properties are valid: - object { publicPath?, emit?, esModule?, layer?, modules? }" -`; diff --git a/test/__snapshots__/validate-plugin-options.test.js.snap.webpack4 b/test/__snapshots__/validate-plugin-options.test.js.snap similarity index 100% rename from test/__snapshots__/validate-plugin-options.test.js.snap.webpack4 rename to test/__snapshots__/validate-plugin-options.test.js.snap diff --git a/test/__snapshots__/validate-plugin-options.test.js.snap.webpack5 b/test/__snapshots__/validate-plugin-options.test.js.snap.webpack5 deleted file mode 100644 index 7da02d24..00000000 --- a/test/__snapshots__/validate-plugin-options.test.js.snap.webpack5 +++ /dev/null @@ -1,145 +0,0 @@ -// Jest Snapshot v1, https://goo.gl/fbAQLP - -exports[`validate options should throw an error on the "attributes" option with "true" value 1`] = ` -"Invalid options object. Mini CSS Extract Plugin has been initialized using an options object that does not match the API schema. - - options.attributes should be an object: - object { … } - -> Adds custom attributes to tag (https://github.com/webpack-contrib/mini-css-extract-plugin#attributes)." -`; - -exports[`validate options should throw an error on the "chunkFilename" option with "true" value 1`] = ` -"Invalid options object. Mini CSS Extract Plugin has been initialized using an options object that does not match the API schema. - - options.chunkFilename should be one of these: - string | function - Details: - * options.chunkFilename should be a string. - * options.chunkFilename should be an instance of function." -`; - -exports[`validate options should throw an error on the "filename" option with "true" value 1`] = ` -"Invalid options object. Mini CSS Extract Plugin has been initialized using an options object that does not match the API schema. - - options.filename should be one of these: - string | function - Details: - * options.filename should be a string. - * options.filename should be an instance of function." -`; - -exports[`validate options should throw an error on the "ignoreOrder" option with "1" value 1`] = ` -"Invalid options object. Mini CSS Extract Plugin has been initialized using an options object that does not match the API schema. - - options.ignoreOrder should be a boolean." -`; - -exports[`validate options should throw an error on the "insert" option with "{}" value 1`] = ` -"Invalid options object. Mini CSS Extract Plugin has been initialized using an options object that does not match the API schema. - - options.insert should be one of these: - string | function - -> Inserts \`\` at the given position (https://github.com/webpack-contrib/mini-css-extract-plugin#insert). - Details: - * options.insert should be a string. - * options.insert should be an instance of function." -`; - -exports[`validate options should throw an error on the "insert" option with "1" value 1`] = ` -"Invalid options object. Mini CSS Extract Plugin has been initialized using an options object that does not match the API schema. - - options.insert should be one of these: - string | function - -> Inserts \`\` at the given position (https://github.com/webpack-contrib/mini-css-extract-plugin#insert). - Details: - * options.insert should be a string. - * options.insert should be an instance of function." -`; - -exports[`validate options should throw an error on the "insert" option with "true" value 1`] = ` -"Invalid options object. Mini CSS Extract Plugin has been initialized using an options object that does not match the API schema. - - options.insert should be one of these: - string | function - -> Inserts \`\` at the given position (https://github.com/webpack-contrib/mini-css-extract-plugin#insert). - Details: - * options.insert should be a string. - * options.insert should be an instance of function." -`; - -exports[`validate options should throw an error on the "linkType" option with "[]" value 1`] = ` -"Invalid options object. Mini CSS Extract Plugin has been initialized using an options object that does not match the API schema. - - options.linkType should be one of these: - \\"text/css\\" | boolean - Details: - * options.linkType should be \\"text/css\\". - * options.linkType should be a boolean." -`; - -exports[`validate options should throw an error on the "linkType" option with "{}" value 1`] = ` -"Invalid options object. Mini CSS Extract Plugin has been initialized using an options object that does not match the API schema. - - options.linkType should be one of these: - \\"text/css\\" | boolean - Details: - * options.linkType should be \\"text/css\\". - * options.linkType should be a boolean." -`; - -exports[`validate options should throw an error on the "linkType" option with "1" value 1`] = ` -"Invalid options object. Mini CSS Extract Plugin has been initialized using an options object that does not match the API schema. - - options.linkType should be one of these: - \\"text/css\\" | boolean - Details: - * options.linkType should be \\"text/css\\". - * options.linkType should be a boolean." -`; - -exports[`validate options should throw an error on the "linkType" option with "invalid/type" value 1`] = ` -"Invalid options object. Mini CSS Extract Plugin has been initialized using an options object that does not match the API schema. - - options.linkType should be one of these: - \\"text/css\\" | boolean - Details: - * options.linkType should be \\"text/css\\". - * options.linkType should be a boolean." -`; - -exports[`validate options should throw an error on the "unknown" option with "/test/" value 1`] = ` -"Invalid options object. Mini CSS Extract Plugin has been initialized using an options object that does not match the API schema. - - options has an unknown property 'unknown'. These properties are valid: - object { filename?, chunkFilename?, experimentalUseImportModule?, ignoreOrder?, insert?, attributes?, linkType? }" -`; - -exports[`validate options should throw an error on the "unknown" option with "[]" value 1`] = ` -"Invalid options object. Mini CSS Extract Plugin has been initialized using an options object that does not match the API schema. - - options has an unknown property 'unknown'. These properties are valid: - object { filename?, chunkFilename?, experimentalUseImportModule?, ignoreOrder?, insert?, attributes?, linkType? }" -`; - -exports[`validate options should throw an error on the "unknown" option with "{"foo":"bar"}" value 1`] = ` -"Invalid options object. Mini CSS Extract Plugin has been initialized using an options object that does not match the API schema. - - options has an unknown property 'unknown'. These properties are valid: - object { filename?, chunkFilename?, experimentalUseImportModule?, ignoreOrder?, insert?, attributes?, linkType? }" -`; - -exports[`validate options should throw an error on the "unknown" option with "{}" value 1`] = ` -"Invalid options object. Mini CSS Extract Plugin has been initialized using an options object that does not match the API schema. - - options has an unknown property 'unknown'. These properties are valid: - object { filename?, chunkFilename?, experimentalUseImportModule?, ignoreOrder?, insert?, attributes?, linkType? }" -`; - -exports[`validate options should throw an error on the "unknown" option with "1" value 1`] = ` -"Invalid options object. Mini CSS Extract Plugin has been initialized using an options object that does not match the API schema. - - options has an unknown property 'unknown'. These properties are valid: - object { filename?, chunkFilename?, experimentalUseImportModule?, ignoreOrder?, insert?, attributes?, linkType? }" -`; - -exports[`validate options should throw an error on the "unknown" option with "false" value 1`] = ` -"Invalid options object. Mini CSS Extract Plugin has been initialized using an options object that does not match the API schema. - - options has an unknown property 'unknown'. These properties are valid: - object { filename?, chunkFilename?, experimentalUseImportModule?, ignoreOrder?, insert?, attributes?, linkType? }" -`; - -exports[`validate options should throw an error on the "unknown" option with "test" value 1`] = ` -"Invalid options object. Mini CSS Extract Plugin has been initialized using an options object that does not match the API schema. - - options has an unknown property 'unknown'. These properties are valid: - object { filename?, chunkFilename?, experimentalUseImportModule?, ignoreOrder?, insert?, attributes?, linkType? }" -`; - -exports[`validate options should throw an error on the "unknown" option with "true" value 1`] = ` -"Invalid options object. Mini CSS Extract Plugin has been initialized using an options object that does not match the API schema. - - options has an unknown property 'unknown'. These properties are valid: - object { filename?, chunkFilename?, experimentalUseImportModule?, ignoreOrder?, insert?, attributes?, linkType? }" -`; diff --git a/test/cases/auxiliaryAssets/test.filter.js b/test/cases/auxiliaryAssets/test.filter.js index 20341d78..d04b7de0 100644 --- a/test/cases/auxiliaryAssets/test.filter.js +++ b/test/cases/auxiliaryAssets/test.filter.js @@ -1,4 +1 @@ -const webpack = require('webpack'); - -module.exports = () => - webpack.version[0] !== '4' && !process.env.EXPERIMENTAL_USE_IMPORT_MODULE; +module.exports = () => !process.env.EXPERIMENTAL_USE_IMPORT_MODULE; diff --git a/test/cases/chunkFilename-as-function/expected/webpack-4/1.async.css b/test/cases/chunkFilename-as-function/expected/webpack-4/1.async.css deleted file mode 100644 index e665100a..00000000 --- a/test/cases/chunkFilename-as-function/expected/webpack-4/1.async.css +++ /dev/null @@ -1,4 +0,0 @@ -.async { - color: red; -} - diff --git a/test/cases/chunkFilename/expected/webpack-4/1.async.css b/test/cases/chunkFilename/expected/webpack-4/1.async.css deleted file mode 100644 index e665100a..00000000 --- a/test/cases/chunkFilename/expected/webpack-4/1.async.css +++ /dev/null @@ -1,4 +0,0 @@ -.async { - color: red; -} - diff --git a/test/cases/contenthash-multiple-entries/expected/webpack-4/45abc72feb203941b169.css b/test/cases/contenthash-multiple-entries/expected/webpack-4/45abc72feb203941b169.css deleted file mode 100644 index 95d70a8e..00000000 --- a/test/cases/contenthash-multiple-entries/expected/webpack-4/45abc72feb203941b169.css +++ /dev/null @@ -1,4 +0,0 @@ -.styleA { - background: red; -} - diff --git a/test/cases/contenthash-multiple-entries/expected/webpack-4/94cfefd2079cb855c465.css b/test/cases/contenthash-multiple-entries/expected/webpack-4/94cfefd2079cb855c465.css deleted file mode 100644 index c6856116..00000000 --- a/test/cases/contenthash-multiple-entries/expected/webpack-4/94cfefd2079cb855c465.css +++ /dev/null @@ -1,8 +0,0 @@ -.styleA { - background: red; -} - -.styleB { - background: blue; -} - diff --git a/test/cases/contenthash/expected/webpack-4/2.main.950eec8c261fd54102ea.css b/test/cases/contenthash/expected/webpack-4/2.main.950eec8c261fd54102ea.css deleted file mode 100644 index ec3b88b5..00000000 --- a/test/cases/contenthash/expected/webpack-4/2.main.950eec8c261fd54102ea.css +++ /dev/null @@ -1,4 +0,0 @@ -body { - background: green; -} - diff --git a/test/cases/devtool-source-map-from-loaders/expected/webpack-4/main.css b/test/cases/devtool-source-map-from-loaders/expected/webpack-4/main.css deleted file mode 100644 index 8f8cf968..00000000 --- a/test/cases/devtool-source-map-from-loaders/expected/webpack-4/main.css +++ /dev/null @@ -1,6 +0,0 @@ -body { - background: red; -} - - -/*# sourceMappingURL=main.css.map*/ \ No newline at end of file diff --git a/test/cases/devtool-source-map-from-loaders/expected/webpack-4/main.css.map b/test/cases/devtool-source-map-from-loaders/expected/webpack-4/main.css.map deleted file mode 100644 index bb767168..00000000 --- a/test/cases/devtool-source-map-from-loaders/expected/webpack-4/main.css.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"sources":["webpack:///./style.css"],"names":[],"mappings":"AAAA;EACE,eAAe;AACjB","file":"main.css","sourcesContent":["body {\n background: red;\n}\n"],"sourceRoot":""} \ No newline at end of file diff --git a/test/cases/devtool-source-map-no-source-maps-from-loaders/expected/webpack-4/main.css b/test/cases/devtool-source-map-no-source-maps-from-loaders/expected/webpack-4/main.css deleted file mode 100644 index 8f8cf968..00000000 --- a/test/cases/devtool-source-map-no-source-maps-from-loaders/expected/webpack-4/main.css +++ /dev/null @@ -1,6 +0,0 @@ -body { - background: red; -} - - -/*# sourceMappingURL=main.css.map*/ \ No newline at end of file diff --git a/test/cases/devtool-source-map-no-source-maps-from-loaders/expected/webpack-4/main.css.map b/test/cases/devtool-source-map-no-source-maps-from-loaders/expected/webpack-4/main.css.map deleted file mode 100644 index b350621d..00000000 --- a/test/cases/devtool-source-map-no-source-maps-from-loaders/expected/webpack-4/main.css.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"sources":[],"names":[],"mappings":"","file":"main.css","sourceRoot":""} \ No newline at end of file diff --git a/test/cases/es-module-concatenation-modules/expected/webpack-4/main.css b/test/cases/es-module-concatenation-modules/expected/webpack-4/main.css deleted file mode 100644 index 414d12e5..00000000 --- a/test/cases/es-module-concatenation-modules/expected/webpack-4/main.css +++ /dev/null @@ -1,12 +0,0 @@ -.foo__a { - background: red; -} - -.foo__b { - background: green; -} - -.foo__c { - background: blue; -} - diff --git a/test/cases/es-module-concatenation-modules/expected/webpack-4/main.js b/test/cases/es-module-concatenation-modules/expected/webpack-4/main.js deleted file mode 100644 index 0552cd62..00000000 --- a/test/cases/es-module-concatenation-modules/expected/webpack-4/main.js +++ /dev/null @@ -1,141 +0,0 @@ -/******/ (function(modules) { // webpackBootstrap -/******/ // The module cache -/******/ var installedModules = {}; -/******/ -/******/ // The require function -/******/ function __webpack_require__(moduleId) { -/******/ -/******/ // Check if module is in cache -/******/ if(installedModules[moduleId]) { -/******/ return installedModules[moduleId].exports; -/******/ } -/******/ // Create a new module (and put it into the cache) -/******/ var module = installedModules[moduleId] = { -/******/ i: moduleId, -/******/ l: false, -/******/ exports: {} -/******/ }; -/******/ -/******/ // Execute the module function -/******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__); -/******/ -/******/ // Flag the module as loaded -/******/ module.l = true; -/******/ -/******/ // Return the exports of the module -/******/ return module.exports; -/******/ } -/******/ -/******/ -/******/ // expose the modules object (__webpack_modules__) -/******/ __webpack_require__.m = modules; -/******/ -/******/ // expose the module cache -/******/ __webpack_require__.c = installedModules; -/******/ -/******/ // define getter function for harmony exports -/******/ __webpack_require__.d = function(exports, name, getter) { -/******/ if(!__webpack_require__.o(exports, name)) { -/******/ Object.defineProperty(exports, name, { enumerable: true, get: getter }); -/******/ } -/******/ }; -/******/ -/******/ // define __esModule on exports -/******/ __webpack_require__.r = function(exports) { -/******/ if(typeof Symbol !== 'undefined' && Symbol.toStringTag) { -/******/ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' }); -/******/ } -/******/ Object.defineProperty(exports, '__esModule', { value: true }); -/******/ }; -/******/ -/******/ // create a fake namespace object -/******/ // mode & 1: value is a module id, require it -/******/ // mode & 2: merge all properties of value into the ns -/******/ // mode & 4: return value when already ns object -/******/ // mode & 8|1: behave like require -/******/ __webpack_require__.t = function(value, mode) { -/******/ if(mode & 1) value = __webpack_require__(value); -/******/ if(mode & 8) return value; -/******/ if((mode & 4) && typeof value === 'object' && value && value.__esModule) return value; -/******/ var ns = Object.create(null); -/******/ __webpack_require__.r(ns); -/******/ Object.defineProperty(ns, 'default', { enumerable: true, value: value }); -/******/ if(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key)); -/******/ return ns; -/******/ }; -/******/ -/******/ // getDefaultExport function for compatibility with non-harmony modules -/******/ __webpack_require__.n = function(module) { -/******/ var getter = module && module.__esModule ? -/******/ function getDefault() { return module['default']; } : -/******/ function getModuleExports() { return module; }; -/******/ __webpack_require__.d(getter, 'a', getter); -/******/ return getter; -/******/ }; -/******/ -/******/ // Object.prototype.hasOwnProperty.call -/******/ __webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); }; -/******/ -/******/ // __webpack_public_path__ -/******/ __webpack_require__.p = ""; -/******/ -/******/ -/******/ // Load entry module and return exports -/******/ return __webpack_require__(__webpack_require__.s = 0); -/******/ }) -/************************************************************************/ -/******/ ([ -/* 0 */ -/***/ (function(module, __webpack_exports__, __webpack_require__) { - -"use strict"; -// ESM COMPAT FLAG -__webpack_require__.r(__webpack_exports__); - -// EXPORTS -__webpack_require__.d(__webpack_exports__, "c", function() { return /* reexport */ c; }); -__webpack_require__.d(__webpack_exports__, "a", function() { return /* reexport */ a_namespaceObject; }); -__webpack_require__.d(__webpack_exports__, "b", function() { return /* reexport */ b_namespaceObject; }); - -// NAMESPACE OBJECT: ./a.css -var a_namespaceObject = {}; -__webpack_require__.r(a_namespaceObject); -__webpack_require__.d(a_namespaceObject, "a", function() { return a; }); - -// NAMESPACE OBJECT: ./b.css -var b_namespaceObject = {}; -__webpack_require__.r(b_namespaceObject); -__webpack_require__.d(b_namespaceObject, "b", function() { return b; }); - -// NAMESPACE OBJECT: ./index.js -var index_namespaceObject = {}; -__webpack_require__.r(index_namespaceObject); -__webpack_require__.d(index_namespaceObject, "c", function() { return c; }); -__webpack_require__.d(index_namespaceObject, "a", function() { return a_namespaceObject; }); -__webpack_require__.d(index_namespaceObject, "b", function() { return b_namespaceObject; }); - -// CONCATENATED MODULE: ./a.css -// extracted by mini-css-extract-plugin -var a = "foo__a"; -// CONCATENATED MODULE: ./b.css -// extracted by mini-css-extract-plugin -var b = "foo__b"; -// CONCATENATED MODULE: ./c.css -// extracted by mini-css-extract-plugin -var c = "foo__c"; -// CONCATENATED MODULE: ./index.js -/* eslint-disable import/no-namespace */ - - - - - - - - -// eslint-disable-next-line no-console -console.log(index_namespaceObject); - - -/***/ }) -/******/ ]); \ No newline at end of file diff --git a/test/cases/es-module-concatenation-modules/webpack.config.js b/test/cases/es-module-concatenation-modules/webpack.config.js index 1ad92dfd..d99cc612 100644 --- a/test/cases/es-module-concatenation-modules/webpack.config.js +++ b/test/cases/es-module-concatenation-modules/webpack.config.js @@ -14,9 +14,6 @@ module.exports = { loader: Self.loader, options: { esModule: true, - modules: { - namedExport: true, - }, }, }, { diff --git a/test/cases/es-module-concatenation/expected/webpack-4/main.css b/test/cases/es-module-concatenation/expected/webpack-4/main.css deleted file mode 100644 index a5728976..00000000 --- a/test/cases/es-module-concatenation/expected/webpack-4/main.css +++ /dev/null @@ -1,12 +0,0 @@ -.a { - background: red; -} - -.b { - background: green; -} - -.c { - background: blue; -} - diff --git a/test/cases/es-module-concatenation/expected/webpack-4/main.js b/test/cases/es-module-concatenation/expected/webpack-4/main.js deleted file mode 100644 index 001ba1de..00000000 --- a/test/cases/es-module-concatenation/expected/webpack-4/main.js +++ /dev/null @@ -1,111 +0,0 @@ -/******/ (function(modules) { // webpackBootstrap -/******/ // The module cache -/******/ var installedModules = {}; -/******/ -/******/ // The require function -/******/ function __webpack_require__(moduleId) { -/******/ -/******/ // Check if module is in cache -/******/ if(installedModules[moduleId]) { -/******/ return installedModules[moduleId].exports; -/******/ } -/******/ // Create a new module (and put it into the cache) -/******/ var module = installedModules[moduleId] = { -/******/ i: moduleId, -/******/ l: false, -/******/ exports: {} -/******/ }; -/******/ -/******/ // Execute the module function -/******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__); -/******/ -/******/ // Flag the module as loaded -/******/ module.l = true; -/******/ -/******/ // Return the exports of the module -/******/ return module.exports; -/******/ } -/******/ -/******/ -/******/ // expose the modules object (__webpack_modules__) -/******/ __webpack_require__.m = modules; -/******/ -/******/ // expose the module cache -/******/ __webpack_require__.c = installedModules; -/******/ -/******/ // define getter function for harmony exports -/******/ __webpack_require__.d = function(exports, name, getter) { -/******/ if(!__webpack_require__.o(exports, name)) { -/******/ Object.defineProperty(exports, name, { enumerable: true, get: getter }); -/******/ } -/******/ }; -/******/ -/******/ // define __esModule on exports -/******/ __webpack_require__.r = function(exports) { -/******/ if(typeof Symbol !== 'undefined' && Symbol.toStringTag) { -/******/ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' }); -/******/ } -/******/ Object.defineProperty(exports, '__esModule', { value: true }); -/******/ }; -/******/ -/******/ // create a fake namespace object -/******/ // mode & 1: value is a module id, require it -/******/ // mode & 2: merge all properties of value into the ns -/******/ // mode & 4: return value when already ns object -/******/ // mode & 8|1: behave like require -/******/ __webpack_require__.t = function(value, mode) { -/******/ if(mode & 1) value = __webpack_require__(value); -/******/ if(mode & 8) return value; -/******/ if((mode & 4) && typeof value === 'object' && value && value.__esModule) return value; -/******/ var ns = Object.create(null); -/******/ __webpack_require__.r(ns); -/******/ Object.defineProperty(ns, 'default', { enumerable: true, value: value }); -/******/ if(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key)); -/******/ return ns; -/******/ }; -/******/ -/******/ // getDefaultExport function for compatibility with non-harmony modules -/******/ __webpack_require__.n = function(module) { -/******/ var getter = module && module.__esModule ? -/******/ function getDefault() { return module['default']; } : -/******/ function getModuleExports() { return module; }; -/******/ __webpack_require__.d(getter, 'a', getter); -/******/ return getter; -/******/ }; -/******/ -/******/ // Object.prototype.hasOwnProperty.call -/******/ __webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); }; -/******/ -/******/ // __webpack_public_path__ -/******/ __webpack_require__.p = ""; -/******/ -/******/ -/******/ // Load entry module and return exports -/******/ return __webpack_require__(__webpack_require__.s = 0); -/******/ }) -/************************************************************************/ -/******/ ([ -/* 0 */ -/***/ (function(module, __webpack_exports__, __webpack_require__) { - -"use strict"; -// ESM COMPAT FLAG -__webpack_require__.r(__webpack_exports__); - -// CONCATENATED MODULE: ./a.css -// extracted by mini-css-extract-plugin - -// CONCATENATED MODULE: ./b.css -// extracted by mini-css-extract-plugin - -// CONCATENATED MODULE: ./c.css -// extracted by mini-css-extract-plugin - -// CONCATENATED MODULE: ./index.js - - - - - -/***/ }) -/******/ ]); \ No newline at end of file diff --git a/test/cases/es-named-export-output-module/expected/main.js b/test/cases/es-named-export-output-module/expected/main.mjs similarity index 100% rename from test/cases/es-named-export-output-module/expected/main.js rename to test/cases/es-named-export-output-module/expected/main.mjs diff --git a/test/cases/es-named-export-output-module/webpack.config.js b/test/cases/es-named-export-output-module/webpack.config.js index af5c0d71..214626a7 100644 --- a/test/cases/es-named-export-output-module/webpack.config.js +++ b/test/cases/es-named-export-output-module/webpack.config.js @@ -9,12 +9,6 @@ module.exports = { use: [ { loader: Self.loader, - options: { - esModule: true, - modules: { - namedExport: true, - }, - }, }, { loader: 'css-loader', diff --git a/test/cases/es-named-export/expected/webpack-4/main.css b/test/cases/es-named-export/expected/webpack-4/main.css deleted file mode 100644 index aa9b1569..00000000 --- a/test/cases/es-named-export/expected/webpack-4/main.css +++ /dev/null @@ -1,12 +0,0 @@ -.foo__style__a-class { - background: red; -} - -.foo__style__b__class { - color: green; -} - -.foo__style__cClass { - color: blue; -} - diff --git a/test/cases/es-named-export/expected/webpack-4/main.js b/test/cases/es-named-export/expected/webpack-4/main.js deleted file mode 100644 index 9386c187..00000000 --- a/test/cases/es-named-export/expected/webpack-4/main.js +++ /dev/null @@ -1,115 +0,0 @@ -/******/ (function(modules) { // webpackBootstrap -/******/ // The module cache -/******/ var installedModules = {}; -/******/ -/******/ // The require function -/******/ function __webpack_require__(moduleId) { -/******/ -/******/ // Check if module is in cache -/******/ if(installedModules[moduleId]) { -/******/ return installedModules[moduleId].exports; -/******/ } -/******/ // Create a new module (and put it into the cache) -/******/ var module = installedModules[moduleId] = { -/******/ i: moduleId, -/******/ l: false, -/******/ exports: {} -/******/ }; -/******/ -/******/ // Execute the module function -/******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__); -/******/ -/******/ // Flag the module as loaded -/******/ module.l = true; -/******/ -/******/ // Return the exports of the module -/******/ return module.exports; -/******/ } -/******/ -/******/ -/******/ // expose the modules object (__webpack_modules__) -/******/ __webpack_require__.m = modules; -/******/ -/******/ // expose the module cache -/******/ __webpack_require__.c = installedModules; -/******/ -/******/ // define getter function for harmony exports -/******/ __webpack_require__.d = function(exports, name, getter) { -/******/ if(!__webpack_require__.o(exports, name)) { -/******/ Object.defineProperty(exports, name, { enumerable: true, get: getter }); -/******/ } -/******/ }; -/******/ -/******/ // define __esModule on exports -/******/ __webpack_require__.r = function(exports) { -/******/ if(typeof Symbol !== 'undefined' && Symbol.toStringTag) { -/******/ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' }); -/******/ } -/******/ Object.defineProperty(exports, '__esModule', { value: true }); -/******/ }; -/******/ -/******/ // create a fake namespace object -/******/ // mode & 1: value is a module id, require it -/******/ // mode & 2: merge all properties of value into the ns -/******/ // mode & 4: return value when already ns object -/******/ // mode & 8|1: behave like require -/******/ __webpack_require__.t = function(value, mode) { -/******/ if(mode & 1) value = __webpack_require__(value); -/******/ if(mode & 8) return value; -/******/ if((mode & 4) && typeof value === 'object' && value && value.__esModule) return value; -/******/ var ns = Object.create(null); -/******/ __webpack_require__.r(ns); -/******/ Object.defineProperty(ns, 'default', { enumerable: true, value: value }); -/******/ if(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key)); -/******/ return ns; -/******/ }; -/******/ -/******/ // getDefaultExport function for compatibility with non-harmony modules -/******/ __webpack_require__.n = function(module) { -/******/ var getter = module && module.__esModule ? -/******/ function getDefault() { return module['default']; } : -/******/ function getModuleExports() { return module; }; -/******/ __webpack_require__.d(getter, 'a', getter); -/******/ return getter; -/******/ }; -/******/ -/******/ // Object.prototype.hasOwnProperty.call -/******/ __webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); }; -/******/ -/******/ // __webpack_public_path__ -/******/ __webpack_require__.p = ""; -/******/ -/******/ -/******/ // Load entry module and return exports -/******/ return __webpack_require__(__webpack_require__.s = 0); -/******/ }) -/************************************************************************/ -/******/ ([ -/* 0 */ -/***/ (function(module, __webpack_exports__, __webpack_require__) { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony import */ var _style_css__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(1); - - -// eslint-disable-next-line no-console -console.log({ css: _style_css__WEBPACK_IMPORTED_MODULE_0__["default"], aClass: _style_css__WEBPACK_IMPORTED_MODULE_0__["aClass"], bClass: _style_css__WEBPACK_IMPORTED_MODULE_0__["bClass"], cClass: _style_css__WEBPACK_IMPORTED_MODULE_0__["cClass"] }); - - -/***/ }), -/* 1 */ -/***/ (function(module, __webpack_exports__, __webpack_require__) { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "aClass", function() { return aClass; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "bClass", function() { return bClass; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "cClass", function() { return cClass; }); -// extracted by mini-css-extract-plugin -var aClass = "foo__style__a-class"; -var bClass = "foo__style__b__class"; -var cClass = "foo__style__cClass"; - -/***/ }) -/******/ ]); \ No newline at end of file diff --git a/test/cases/es-named-export/webpack.config.js b/test/cases/es-named-export/webpack.config.js index a9511d74..3337cfb4 100644 --- a/test/cases/es-named-export/webpack.config.js +++ b/test/cases/es-named-export/webpack.config.js @@ -9,12 +9,6 @@ module.exports = { use: [ { loader: Self.loader, - options: { - esModule: true, - modules: { - namedExport: true, - }, - }, }, { loader: 'css-loader', diff --git a/test/cases/filename-without-template/expected/webpack-4/1.main.css b/test/cases/filename-without-template/expected/webpack-4/1.main.css deleted file mode 100644 index e665100a..00000000 --- a/test/cases/filename-without-template/expected/webpack-4/1.main.css +++ /dev/null @@ -1,4 +0,0 @@ -.async { - color: red; -} - diff --git a/test/cases/hmr/expected/webpack-4/main.css b/test/cases/hmr/expected/webpack-4/main.css deleted file mode 100644 index 6f77cc07..00000000 --- a/test/cases/hmr/expected/webpack-4/main.css +++ /dev/null @@ -1,24 +0,0 @@ -@import url(https://some/other/external/css); -@import url(https://some/external/css); -body { - background: red; -} - -.c { - background: red; -} - -.c { - color: yellow; -} - -.b { - background: red; -} - -.b { - color: yellow; -} - - - diff --git a/test/cases/hmr/expected/webpack-4/main.js b/test/cases/hmr/expected/webpack-4/main.js deleted file mode 100644 index 3ddc13a2..00000000 --- a/test/cases/hmr/expected/webpack-4/main.js +++ /dev/null @@ -1,1167 +0,0 @@ -/******/ (function(modules) { // webpackBootstrap -/******/ function hotDisposeChunk(chunkId) { -/******/ delete installedChunks[chunkId]; -/******/ } -/******/ var parentHotUpdateCallback = window["webpackHotUpdate"]; -/******/ window["webpackHotUpdate"] = // eslint-disable-next-line no-unused-vars -/******/ function webpackHotUpdateCallback(chunkId, moreModules) { -/******/ hotAddUpdateChunk(chunkId, moreModules); -/******/ if (parentHotUpdateCallback) parentHotUpdateCallback(chunkId, moreModules); -/******/ } ; -/******/ -/******/ // eslint-disable-next-line no-unused-vars -/******/ function hotDownloadUpdateChunk(chunkId) { -/******/ var script = document.createElement("script"); -/******/ script.charset = "utf-8"; -/******/ script.src = __webpack_require__.p + "" + chunkId + "." + hotCurrentHash + ".hot-update.js"; -/******/ if (null) script.crossOrigin = null; -/******/ document.head.appendChild(script); -/******/ } -/******/ -/******/ // eslint-disable-next-line no-unused-vars -/******/ function hotDownloadManifest(requestTimeout) { -/******/ requestTimeout = requestTimeout || 10000; -/******/ return new Promise(function(resolve, reject) { -/******/ if (typeof XMLHttpRequest === "undefined") { -/******/ return reject(new Error("No browser support")); -/******/ } -/******/ try { -/******/ var request = new XMLHttpRequest(); -/******/ var requestPath = __webpack_require__.p + "" + hotCurrentHash + ".hot-update.json"; -/******/ request.open("GET", requestPath, true); -/******/ request.timeout = requestTimeout; -/******/ request.send(null); -/******/ } catch (err) { -/******/ return reject(err); -/******/ } -/******/ request.onreadystatechange = function() { -/******/ if (request.readyState !== 4) return; -/******/ if (request.status === 0) { -/******/ // timeout -/******/ reject( -/******/ new Error("Manifest request to " + requestPath + " timed out.") -/******/ ); -/******/ } else if (request.status === 404) { -/******/ // no update available -/******/ resolve(); -/******/ } else if (request.status !== 200 && request.status !== 304) { -/******/ // other failure -/******/ reject(new Error("Manifest request to " + requestPath + " failed.")); -/******/ } else { -/******/ // success -/******/ try { -/******/ var update = JSON.parse(request.responseText); -/******/ } catch (e) { -/******/ reject(e); -/******/ return; -/******/ } -/******/ resolve(update); -/******/ } -/******/ }; -/******/ }); -/******/ } -/******/ -/******/ var hotApplyOnUpdate = true; -/******/ // eslint-disable-next-line no-unused-vars -/******/ var hotCurrentHash = "xxxxxxxxxxxxxxxxxxxx"; -/******/ var hotRequestTimeout = 10000; -/******/ var hotCurrentModuleData = {}; -/******/ var hotCurrentChildModule; -/******/ // eslint-disable-next-line no-unused-vars -/******/ var hotCurrentParents = []; -/******/ // eslint-disable-next-line no-unused-vars -/******/ var hotCurrentParentsTemp = []; -/******/ -/******/ // eslint-disable-next-line no-unused-vars -/******/ function hotCreateRequire(moduleId) { -/******/ var me = installedModules[moduleId]; -/******/ if (!me) return __webpack_require__; -/******/ var fn = function(request) { -/******/ if (me.hot.active) { -/******/ if (installedModules[request]) { -/******/ if (installedModules[request].parents.indexOf(moduleId) === -1) { -/******/ installedModules[request].parents.push(moduleId); -/******/ } -/******/ } else { -/******/ hotCurrentParents = [moduleId]; -/******/ hotCurrentChildModule = request; -/******/ } -/******/ if (me.children.indexOf(request) === -1) { -/******/ me.children.push(request); -/******/ } -/******/ } else { -/******/ console.warn( -/******/ "[HMR] unexpected require(" + -/******/ request + -/******/ ") from disposed module " + -/******/ moduleId -/******/ ); -/******/ hotCurrentParents = []; -/******/ } -/******/ return __webpack_require__(request); -/******/ }; -/******/ var ObjectFactory = function ObjectFactory(name) { -/******/ return { -/******/ configurable: true, -/******/ enumerable: true, -/******/ get: function() { -/******/ return __webpack_require__[name]; -/******/ }, -/******/ set: function(value) { -/******/ __webpack_require__[name] = value; -/******/ } -/******/ }; -/******/ }; -/******/ for (var name in __webpack_require__) { -/******/ if ( -/******/ Object.prototype.hasOwnProperty.call(__webpack_require__, name) && -/******/ name !== "e" && -/******/ name !== "t" -/******/ ) { -/******/ Object.defineProperty(fn, name, ObjectFactory(name)); -/******/ } -/******/ } -/******/ fn.e = function(chunkId) { -/******/ if (hotStatus === "ready") hotSetStatus("prepare"); -/******/ hotChunksLoading++; -/******/ return __webpack_require__.e(chunkId).then(finishChunkLoading, function(err) { -/******/ finishChunkLoading(); -/******/ throw err; -/******/ }); -/******/ -/******/ function finishChunkLoading() { -/******/ hotChunksLoading--; -/******/ if (hotStatus === "prepare") { -/******/ if (!hotWaitingFilesMap[chunkId]) { -/******/ hotEnsureUpdateChunk(chunkId); -/******/ } -/******/ if (hotChunksLoading === 0 && hotWaitingFiles === 0) { -/******/ hotUpdateDownloaded(); -/******/ } -/******/ } -/******/ } -/******/ }; -/******/ fn.t = function(value, mode) { -/******/ if (mode & 1) value = fn(value); -/******/ return __webpack_require__.t(value, mode & ~1); -/******/ }; -/******/ return fn; -/******/ } -/******/ -/******/ // eslint-disable-next-line no-unused-vars -/******/ function hotCreateModule(moduleId) { -/******/ var hot = { -/******/ // private stuff -/******/ _acceptedDependencies: {}, -/******/ _declinedDependencies: {}, -/******/ _selfAccepted: false, -/******/ _selfDeclined: false, -/******/ _selfInvalidated: false, -/******/ _disposeHandlers: [], -/******/ _main: hotCurrentChildModule !== moduleId, -/******/ -/******/ // Module API -/******/ active: true, -/******/ accept: function(dep, callback) { -/******/ if (dep === undefined) hot._selfAccepted = true; -/******/ else if (typeof dep === "function") hot._selfAccepted = dep; -/******/ else if (typeof dep === "object") -/******/ for (var i = 0; i < dep.length; i++) -/******/ hot._acceptedDependencies[dep[i]] = callback || function() {}; -/******/ else hot._acceptedDependencies[dep] = callback || function() {}; -/******/ }, -/******/ decline: function(dep) { -/******/ if (dep === undefined) hot._selfDeclined = true; -/******/ else if (typeof dep === "object") -/******/ for (var i = 0; i < dep.length; i++) -/******/ hot._declinedDependencies[dep[i]] = true; -/******/ else hot._declinedDependencies[dep] = true; -/******/ }, -/******/ dispose: function(callback) { -/******/ hot._disposeHandlers.push(callback); -/******/ }, -/******/ addDisposeHandler: function(callback) { -/******/ hot._disposeHandlers.push(callback); -/******/ }, -/******/ removeDisposeHandler: function(callback) { -/******/ var idx = hot._disposeHandlers.indexOf(callback); -/******/ if (idx >= 0) hot._disposeHandlers.splice(idx, 1); -/******/ }, -/******/ invalidate: function() { -/******/ this._selfInvalidated = true; -/******/ switch (hotStatus) { -/******/ case "idle": -/******/ hotUpdate = {}; -/******/ hotUpdate[moduleId] = modules[moduleId]; -/******/ hotSetStatus("ready"); -/******/ break; -/******/ case "ready": -/******/ hotApplyInvalidatedModule(moduleId); -/******/ break; -/******/ case "prepare": -/******/ case "check": -/******/ case "dispose": -/******/ case "apply": -/******/ (hotQueuedInvalidatedModules = -/******/ hotQueuedInvalidatedModules || []).push(moduleId); -/******/ break; -/******/ default: -/******/ // ignore requests in error states -/******/ break; -/******/ } -/******/ }, -/******/ -/******/ // Management API -/******/ check: hotCheck, -/******/ apply: hotApply, -/******/ status: function(l) { -/******/ if (!l) return hotStatus; -/******/ hotStatusHandlers.push(l); -/******/ }, -/******/ addStatusHandler: function(l) { -/******/ hotStatusHandlers.push(l); -/******/ }, -/******/ removeStatusHandler: function(l) { -/******/ var idx = hotStatusHandlers.indexOf(l); -/******/ if (idx >= 0) hotStatusHandlers.splice(idx, 1); -/******/ }, -/******/ -/******/ //inherit from previous dispose call -/******/ data: hotCurrentModuleData[moduleId] -/******/ }; -/******/ hotCurrentChildModule = undefined; -/******/ return hot; -/******/ } -/******/ -/******/ var hotStatusHandlers = []; -/******/ var hotStatus = "idle"; -/******/ -/******/ function hotSetStatus(newStatus) { -/******/ hotStatus = newStatus; -/******/ for (var i = 0; i < hotStatusHandlers.length; i++) -/******/ hotStatusHandlers[i].call(null, newStatus); -/******/ } -/******/ -/******/ // while downloading -/******/ var hotWaitingFiles = 0; -/******/ var hotChunksLoading = 0; -/******/ var hotWaitingFilesMap = {}; -/******/ var hotRequestedFilesMap = {}; -/******/ var hotAvailableFilesMap = {}; -/******/ var hotDeferred; -/******/ -/******/ // The update info -/******/ var hotUpdate, hotUpdateNewHash, hotQueuedInvalidatedModules; -/******/ -/******/ function toModuleId(id) { -/******/ var isNumber = +id + "" === id; -/******/ return isNumber ? +id : id; -/******/ } -/******/ -/******/ function hotCheck(apply) { -/******/ if (hotStatus !== "idle") { -/******/ throw new Error("check() is only allowed in idle status"); -/******/ } -/******/ hotApplyOnUpdate = apply; -/******/ hotSetStatus("check"); -/******/ return hotDownloadManifest(hotRequestTimeout).then(function(update) { -/******/ if (!update) { -/******/ hotSetStatus(hotApplyInvalidatedModules() ? "ready" : "idle"); -/******/ return null; -/******/ } -/******/ hotRequestedFilesMap = {}; -/******/ hotWaitingFilesMap = {}; -/******/ hotAvailableFilesMap = update.c; -/******/ hotUpdateNewHash = update.h; -/******/ -/******/ hotSetStatus("prepare"); -/******/ var promise = new Promise(function(resolve, reject) { -/******/ hotDeferred = { -/******/ resolve: resolve, -/******/ reject: reject -/******/ }; -/******/ }); -/******/ hotUpdate = {}; -/******/ var chunkId = 0; -/******/ // eslint-disable-next-line no-lone-blocks -/******/ { -/******/ hotEnsureUpdateChunk(chunkId); -/******/ } -/******/ if ( -/******/ hotStatus === "prepare" && -/******/ hotChunksLoading === 0 && -/******/ hotWaitingFiles === 0 -/******/ ) { -/******/ hotUpdateDownloaded(); -/******/ } -/******/ return promise; -/******/ }); -/******/ } -/******/ -/******/ // eslint-disable-next-line no-unused-vars -/******/ function hotAddUpdateChunk(chunkId, moreModules) { -/******/ if (!hotAvailableFilesMap[chunkId] || !hotRequestedFilesMap[chunkId]) -/******/ return; -/******/ hotRequestedFilesMap[chunkId] = false; -/******/ for (var moduleId in moreModules) { -/******/ if (Object.prototype.hasOwnProperty.call(moreModules, moduleId)) { -/******/ hotUpdate[moduleId] = moreModules[moduleId]; -/******/ } -/******/ } -/******/ if (--hotWaitingFiles === 0 && hotChunksLoading === 0) { -/******/ hotUpdateDownloaded(); -/******/ } -/******/ } -/******/ -/******/ function hotEnsureUpdateChunk(chunkId) { -/******/ if (!hotAvailableFilesMap[chunkId]) { -/******/ hotWaitingFilesMap[chunkId] = true; -/******/ } else { -/******/ hotRequestedFilesMap[chunkId] = true; -/******/ hotWaitingFiles++; -/******/ hotDownloadUpdateChunk(chunkId); -/******/ } -/******/ } -/******/ -/******/ function hotUpdateDownloaded() { -/******/ hotSetStatus("ready"); -/******/ var deferred = hotDeferred; -/******/ hotDeferred = null; -/******/ if (!deferred) return; -/******/ if (hotApplyOnUpdate) { -/******/ // Wrap deferred object in Promise to mark it as a well-handled Promise to -/******/ // avoid triggering uncaught exception warning in Chrome. -/******/ // See https://bugs.chromium.org/p/chromium/issues/detail?id=465666 -/******/ Promise.resolve() -/******/ .then(function() { -/******/ return hotApply(hotApplyOnUpdate); -/******/ }) -/******/ .then( -/******/ function(result) { -/******/ deferred.resolve(result); -/******/ }, -/******/ function(err) { -/******/ deferred.reject(err); -/******/ } -/******/ ); -/******/ } else { -/******/ var outdatedModules = []; -/******/ for (var id in hotUpdate) { -/******/ if (Object.prototype.hasOwnProperty.call(hotUpdate, id)) { -/******/ outdatedModules.push(toModuleId(id)); -/******/ } -/******/ } -/******/ deferred.resolve(outdatedModules); -/******/ } -/******/ } -/******/ -/******/ function hotApply(options) { -/******/ if (hotStatus !== "ready") -/******/ throw new Error("apply() is only allowed in ready status"); -/******/ options = options || {}; -/******/ return hotApplyInternal(options); -/******/ } -/******/ -/******/ function hotApplyInternal(options) { -/******/ hotApplyInvalidatedModules(); -/******/ -/******/ var cb; -/******/ var i; -/******/ var j; -/******/ var module; -/******/ var moduleId; -/******/ -/******/ function getAffectedStuff(updateModuleId) { -/******/ var outdatedModules = [updateModuleId]; -/******/ var outdatedDependencies = {}; -/******/ -/******/ var queue = outdatedModules.map(function(id) { -/******/ return { -/******/ chain: [id], -/******/ id: id -/******/ }; -/******/ }); -/******/ while (queue.length > 0) { -/******/ var queueItem = queue.pop(); -/******/ var moduleId = queueItem.id; -/******/ var chain = queueItem.chain; -/******/ module = installedModules[moduleId]; -/******/ if ( -/******/ !module || -/******/ (module.hot._selfAccepted && !module.hot._selfInvalidated) -/******/ ) -/******/ continue; -/******/ if (module.hot._selfDeclined) { -/******/ return { -/******/ type: "self-declined", -/******/ chain: chain, -/******/ moduleId: moduleId -/******/ }; -/******/ } -/******/ if (module.hot._main) { -/******/ return { -/******/ type: "unaccepted", -/******/ chain: chain, -/******/ moduleId: moduleId -/******/ }; -/******/ } -/******/ for (var i = 0; i < module.parents.length; i++) { -/******/ var parentId = module.parents[i]; -/******/ var parent = installedModules[parentId]; -/******/ if (!parent) continue; -/******/ if (parent.hot._declinedDependencies[moduleId]) { -/******/ return { -/******/ type: "declined", -/******/ chain: chain.concat([parentId]), -/******/ moduleId: moduleId, -/******/ parentId: parentId -/******/ }; -/******/ } -/******/ if (outdatedModules.indexOf(parentId) !== -1) continue; -/******/ if (parent.hot._acceptedDependencies[moduleId]) { -/******/ if (!outdatedDependencies[parentId]) -/******/ outdatedDependencies[parentId] = []; -/******/ addAllToSet(outdatedDependencies[parentId], [moduleId]); -/******/ continue; -/******/ } -/******/ delete outdatedDependencies[parentId]; -/******/ outdatedModules.push(parentId); -/******/ queue.push({ -/******/ chain: chain.concat([parentId]), -/******/ id: parentId -/******/ }); -/******/ } -/******/ } -/******/ -/******/ return { -/******/ type: "accepted", -/******/ moduleId: updateModuleId, -/******/ outdatedModules: outdatedModules, -/******/ outdatedDependencies: outdatedDependencies -/******/ }; -/******/ } -/******/ -/******/ function addAllToSet(a, b) { -/******/ for (var i = 0; i < b.length; i++) { -/******/ var item = b[i]; -/******/ if (a.indexOf(item) === -1) a.push(item); -/******/ } -/******/ } -/******/ -/******/ // at begin all updates modules are outdated -/******/ // the "outdated" status can propagate to parents if they don't accept the children -/******/ var outdatedDependencies = {}; -/******/ var outdatedModules = []; -/******/ var appliedUpdate = {}; -/******/ -/******/ var warnUnexpectedRequire = function warnUnexpectedRequire() { -/******/ console.warn( -/******/ "[HMR] unexpected require(" + result.moduleId + ") to disposed module" -/******/ ); -/******/ }; -/******/ -/******/ for (var id in hotUpdate) { -/******/ if (Object.prototype.hasOwnProperty.call(hotUpdate, id)) { -/******/ moduleId = toModuleId(id); -/******/ /** @type {TODO} */ -/******/ var result; -/******/ if (hotUpdate[id]) { -/******/ result = getAffectedStuff(moduleId); -/******/ } else { -/******/ result = { -/******/ type: "disposed", -/******/ moduleId: id -/******/ }; -/******/ } -/******/ /** @type {Error|false} */ -/******/ var abortError = false; -/******/ var doApply = false; -/******/ var doDispose = false; -/******/ var chainInfo = ""; -/******/ if (result.chain) { -/******/ chainInfo = "\nUpdate propagation: " + result.chain.join(" -> "); -/******/ } -/******/ switch (result.type) { -/******/ case "self-declined": -/******/ if (options.onDeclined) options.onDeclined(result); -/******/ if (!options.ignoreDeclined) -/******/ abortError = new Error( -/******/ "Aborted because of self decline: " + -/******/ result.moduleId + -/******/ chainInfo -/******/ ); -/******/ break; -/******/ case "declined": -/******/ if (options.onDeclined) options.onDeclined(result); -/******/ if (!options.ignoreDeclined) -/******/ abortError = new Error( -/******/ "Aborted because of declined dependency: " + -/******/ result.moduleId + -/******/ " in " + -/******/ result.parentId + -/******/ chainInfo -/******/ ); -/******/ break; -/******/ case "unaccepted": -/******/ if (options.onUnaccepted) options.onUnaccepted(result); -/******/ if (!options.ignoreUnaccepted) -/******/ abortError = new Error( -/******/ "Aborted because " + moduleId + " is not accepted" + chainInfo -/******/ ); -/******/ break; -/******/ case "accepted": -/******/ if (options.onAccepted) options.onAccepted(result); -/******/ doApply = true; -/******/ break; -/******/ case "disposed": -/******/ if (options.onDisposed) options.onDisposed(result); -/******/ doDispose = true; -/******/ break; -/******/ default: -/******/ throw new Error("Unexception type " + result.type); -/******/ } -/******/ if (abortError) { -/******/ hotSetStatus("abort"); -/******/ return Promise.reject(abortError); -/******/ } -/******/ if (doApply) { -/******/ appliedUpdate[moduleId] = hotUpdate[moduleId]; -/******/ addAllToSet(outdatedModules, result.outdatedModules); -/******/ for (moduleId in result.outdatedDependencies) { -/******/ if ( -/******/ Object.prototype.hasOwnProperty.call( -/******/ result.outdatedDependencies, -/******/ moduleId -/******/ ) -/******/ ) { -/******/ if (!outdatedDependencies[moduleId]) -/******/ outdatedDependencies[moduleId] = []; -/******/ addAllToSet( -/******/ outdatedDependencies[moduleId], -/******/ result.outdatedDependencies[moduleId] -/******/ ); -/******/ } -/******/ } -/******/ } -/******/ if (doDispose) { -/******/ addAllToSet(outdatedModules, [result.moduleId]); -/******/ appliedUpdate[moduleId] = warnUnexpectedRequire; -/******/ } -/******/ } -/******/ } -/******/ -/******/ // Store self accepted outdated modules to require them later by the module system -/******/ var outdatedSelfAcceptedModules = []; -/******/ for (i = 0; i < outdatedModules.length; i++) { -/******/ moduleId = outdatedModules[i]; -/******/ if ( -/******/ installedModules[moduleId] && -/******/ installedModules[moduleId].hot._selfAccepted && -/******/ // removed self-accepted modules should not be required -/******/ appliedUpdate[moduleId] !== warnUnexpectedRequire && -/******/ // when called invalidate self-accepting is not possible -/******/ !installedModules[moduleId].hot._selfInvalidated -/******/ ) { -/******/ outdatedSelfAcceptedModules.push({ -/******/ module: moduleId, -/******/ parents: installedModules[moduleId].parents.slice(), -/******/ errorHandler: installedModules[moduleId].hot._selfAccepted -/******/ }); -/******/ } -/******/ } -/******/ -/******/ // Now in "dispose" phase -/******/ hotSetStatus("dispose"); -/******/ Object.keys(hotAvailableFilesMap).forEach(function(chunkId) { -/******/ if (hotAvailableFilesMap[chunkId] === false) { -/******/ hotDisposeChunk(chunkId); -/******/ } -/******/ }); -/******/ -/******/ var idx; -/******/ var queue = outdatedModules.slice(); -/******/ while (queue.length > 0) { -/******/ moduleId = queue.pop(); -/******/ module = installedModules[moduleId]; -/******/ if (!module) continue; -/******/ -/******/ var data = {}; -/******/ -/******/ // Call dispose handlers -/******/ var disposeHandlers = module.hot._disposeHandlers; -/******/ for (j = 0; j < disposeHandlers.length; j++) { -/******/ cb = disposeHandlers[j]; -/******/ cb(data); -/******/ } -/******/ hotCurrentModuleData[moduleId] = data; -/******/ -/******/ // disable module (this disables requires from this module) -/******/ module.hot.active = false; -/******/ -/******/ // remove module from cache -/******/ delete installedModules[moduleId]; -/******/ -/******/ // when disposing there is no need to call dispose handler -/******/ delete outdatedDependencies[moduleId]; -/******/ -/******/ // remove "parents" references from all children -/******/ for (j = 0; j < module.children.length; j++) { -/******/ var child = installedModules[module.children[j]]; -/******/ if (!child) continue; -/******/ idx = child.parents.indexOf(moduleId); -/******/ if (idx >= 0) { -/******/ child.parents.splice(idx, 1); -/******/ } -/******/ } -/******/ } -/******/ -/******/ // remove outdated dependency from module children -/******/ var dependency; -/******/ var moduleOutdatedDependencies; -/******/ for (moduleId in outdatedDependencies) { -/******/ if ( -/******/ Object.prototype.hasOwnProperty.call(outdatedDependencies, moduleId) -/******/ ) { -/******/ module = installedModules[moduleId]; -/******/ if (module) { -/******/ moduleOutdatedDependencies = outdatedDependencies[moduleId]; -/******/ for (j = 0; j < moduleOutdatedDependencies.length; j++) { -/******/ dependency = moduleOutdatedDependencies[j]; -/******/ idx = module.children.indexOf(dependency); -/******/ if (idx >= 0) module.children.splice(idx, 1); -/******/ } -/******/ } -/******/ } -/******/ } -/******/ -/******/ // Now in "apply" phase -/******/ hotSetStatus("apply"); -/******/ -/******/ if (hotUpdateNewHash !== undefined) { -/******/ hotCurrentHash = hotUpdateNewHash; -/******/ hotUpdateNewHash = undefined; -/******/ } -/******/ hotUpdate = undefined; -/******/ -/******/ // insert new code -/******/ for (moduleId in appliedUpdate) { -/******/ if (Object.prototype.hasOwnProperty.call(appliedUpdate, moduleId)) { -/******/ modules[moduleId] = appliedUpdate[moduleId]; -/******/ } -/******/ } -/******/ -/******/ // call accept handlers -/******/ var error = null; -/******/ for (moduleId in outdatedDependencies) { -/******/ if ( -/******/ Object.prototype.hasOwnProperty.call(outdatedDependencies, moduleId) -/******/ ) { -/******/ module = installedModules[moduleId]; -/******/ if (module) { -/******/ moduleOutdatedDependencies = outdatedDependencies[moduleId]; -/******/ var callbacks = []; -/******/ for (i = 0; i < moduleOutdatedDependencies.length; i++) { -/******/ dependency = moduleOutdatedDependencies[i]; -/******/ cb = module.hot._acceptedDependencies[dependency]; -/******/ if (cb) { -/******/ if (callbacks.indexOf(cb) !== -1) continue; -/******/ callbacks.push(cb); -/******/ } -/******/ } -/******/ for (i = 0; i < callbacks.length; i++) { -/******/ cb = callbacks[i]; -/******/ try { -/******/ cb(moduleOutdatedDependencies); -/******/ } catch (err) { -/******/ if (options.onErrored) { -/******/ options.onErrored({ -/******/ type: "accept-errored", -/******/ moduleId: moduleId, -/******/ dependencyId: moduleOutdatedDependencies[i], -/******/ error: err -/******/ }); -/******/ } -/******/ if (!options.ignoreErrored) { -/******/ if (!error) error = err; -/******/ } -/******/ } -/******/ } -/******/ } -/******/ } -/******/ } -/******/ -/******/ // Load self accepted modules -/******/ for (i = 0; i < outdatedSelfAcceptedModules.length; i++) { -/******/ var item = outdatedSelfAcceptedModules[i]; -/******/ moduleId = item.module; -/******/ hotCurrentParents = item.parents; -/******/ hotCurrentChildModule = moduleId; -/******/ try { -/******/ __webpack_require__(moduleId); -/******/ } catch (err) { -/******/ if (typeof item.errorHandler === "function") { -/******/ try { -/******/ item.errorHandler(err); -/******/ } catch (err2) { -/******/ if (options.onErrored) { -/******/ options.onErrored({ -/******/ type: "self-accept-error-handler-errored", -/******/ moduleId: moduleId, -/******/ error: err2, -/******/ originalError: err -/******/ }); -/******/ } -/******/ if (!options.ignoreErrored) { -/******/ if (!error) error = err2; -/******/ } -/******/ if (!error) error = err; -/******/ } -/******/ } else { -/******/ if (options.onErrored) { -/******/ options.onErrored({ -/******/ type: "self-accept-errored", -/******/ moduleId: moduleId, -/******/ error: err -/******/ }); -/******/ } -/******/ if (!options.ignoreErrored) { -/******/ if (!error) error = err; -/******/ } -/******/ } -/******/ } -/******/ } -/******/ -/******/ // handle errors in accept handlers and self accepted module load -/******/ if (error) { -/******/ hotSetStatus("fail"); -/******/ return Promise.reject(error); -/******/ } -/******/ -/******/ if (hotQueuedInvalidatedModules) { -/******/ return hotApplyInternal(options).then(function(list) { -/******/ outdatedModules.forEach(function(moduleId) { -/******/ if (list.indexOf(moduleId) < 0) list.push(moduleId); -/******/ }); -/******/ return list; -/******/ }); -/******/ } -/******/ -/******/ hotSetStatus("idle"); -/******/ return new Promise(function(resolve) { -/******/ resolve(outdatedModules); -/******/ }); -/******/ } -/******/ -/******/ function hotApplyInvalidatedModules() { -/******/ if (hotQueuedInvalidatedModules) { -/******/ if (!hotUpdate) hotUpdate = {}; -/******/ hotQueuedInvalidatedModules.forEach(hotApplyInvalidatedModule); -/******/ hotQueuedInvalidatedModules = undefined; -/******/ return true; -/******/ } -/******/ } -/******/ -/******/ function hotApplyInvalidatedModule(moduleId) { -/******/ if (!Object.prototype.hasOwnProperty.call(hotUpdate, moduleId)) -/******/ hotUpdate[moduleId] = modules[moduleId]; -/******/ } -/******/ -/******/ // The module cache -/******/ var installedModules = {}; -/******/ -/******/ // The require function -/******/ function __webpack_require__(moduleId) { -/******/ -/******/ // Check if module is in cache -/******/ if(installedModules[moduleId]) { -/******/ return installedModules[moduleId].exports; -/******/ } -/******/ // Create a new module (and put it into the cache) -/******/ var module = installedModules[moduleId] = { -/******/ i: moduleId, -/******/ l: false, -/******/ exports: {}, -/******/ hot: hotCreateModule(moduleId), -/******/ parents: (hotCurrentParentsTemp = hotCurrentParents, hotCurrentParents = [], hotCurrentParentsTemp), -/******/ children: [] -/******/ }; -/******/ -/******/ // Execute the module function -/******/ modules[moduleId].call(module.exports, module, module.exports, hotCreateRequire(moduleId)); -/******/ -/******/ // Flag the module as loaded -/******/ module.l = true; -/******/ -/******/ // Return the exports of the module -/******/ return module.exports; -/******/ } -/******/ -/******/ -/******/ // expose the modules object (__webpack_modules__) -/******/ __webpack_require__.m = modules; -/******/ -/******/ // expose the module cache -/******/ __webpack_require__.c = installedModules; -/******/ -/******/ // define getter function for harmony exports -/******/ __webpack_require__.d = function(exports, name, getter) { -/******/ if(!__webpack_require__.o(exports, name)) { -/******/ Object.defineProperty(exports, name, { enumerable: true, get: getter }); -/******/ } -/******/ }; -/******/ -/******/ // define __esModule on exports -/******/ __webpack_require__.r = function(exports) { -/******/ if(typeof Symbol !== 'undefined' && Symbol.toStringTag) { -/******/ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' }); -/******/ } -/******/ Object.defineProperty(exports, '__esModule', { value: true }); -/******/ }; -/******/ -/******/ // create a fake namespace object -/******/ // mode & 1: value is a module id, require it -/******/ // mode & 2: merge all properties of value into the ns -/******/ // mode & 4: return value when already ns object -/******/ // mode & 8|1: behave like require -/******/ __webpack_require__.t = function(value, mode) { -/******/ if(mode & 1) value = __webpack_require__(value); -/******/ if(mode & 8) return value; -/******/ if((mode & 4) && typeof value === 'object' && value && value.__esModule) return value; -/******/ var ns = Object.create(null); -/******/ __webpack_require__.r(ns); -/******/ Object.defineProperty(ns, 'default', { enumerable: true, value: value }); -/******/ if(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key)); -/******/ return ns; -/******/ }; -/******/ -/******/ // getDefaultExport function for compatibility with non-harmony modules -/******/ __webpack_require__.n = function(module) { -/******/ var getter = module && module.__esModule ? -/******/ function getDefault() { return module['default']; } : -/******/ function getModuleExports() { return module; }; -/******/ __webpack_require__.d(getter, 'a', getter); -/******/ return getter; -/******/ }; -/******/ -/******/ // Object.prototype.hasOwnProperty.call -/******/ __webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); }; -/******/ -/******/ // __webpack_public_path__ -/******/ __webpack_require__.p = ""; -/******/ -/******/ // __webpack_hash__ -/******/ __webpack_require__.h = function() { return hotCurrentHash; }; -/******/ -/******/ -/******/ // Load entry module and return exports -/******/ return hotCreateRequire(0)(__webpack_require__.s = 0); -/******/ }) -/************************************************************************/ -/******/ ([ -/* 0 */ -/***/ (function(module, __webpack_exports__, __webpack_require__) { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -// extracted by mini-css-extract-plugin - - if(true) { - // - var cssReload = __webpack_require__(1)(module.i, {"locals":false}); - module.hot.dispose(cssReload); - module.hot.accept(undefined, cssReload); - } - - -/***/ }), -/* 1 */ -/***/ (function(module, exports, __webpack_require__) { - -/* eslint-env browser */ -/* - eslint-disable - no-console, - func-names -*/ - -const normalizeUrl = __webpack_require__(2); - -const srcByModuleId = Object.create(null); - -const noDocument = typeof document === 'undefined'; - -const { forEach } = Array.prototype; - -function debounce(fn, time) { - let timeout = 0; - - return function () { - const self = this; - // eslint-disable-next-line prefer-rest-params - const args = arguments; - - const functionCall = function functionCall() { - return fn.apply(self, args); - }; - - clearTimeout(timeout); - timeout = setTimeout(functionCall, time); - }; -} - -function noop() {} - -function getCurrentScriptUrl(moduleId) { - let src = srcByModuleId[moduleId]; - - if (!src) { - if (document.currentScript) { - ({ src } = document.currentScript); - } else { - const scripts = document.getElementsByTagName('script'); - const lastScriptTag = scripts[scripts.length - 1]; - - if (lastScriptTag) { - ({ src } = lastScriptTag); - } - } - - srcByModuleId[moduleId] = src; - } - - return function (fileMap) { - if (!src) { - return null; - } - - const splitResult = src.split(/([^\\/]+)\.js$/); - const filename = splitResult && splitResult[1]; - - if (!filename) { - return [src.replace('.js', '.css')]; - } - - if (!fileMap) { - return [src.replace('.js', '.css')]; - } - - return fileMap.split(',').map((mapRule) => { - const reg = new RegExp(`${filename}\\.js$`, 'g'); - - return normalizeUrl( - src.replace(reg, `${mapRule.replace(/{fileName}/g, filename)}.css`) - ); - }); - }; -} - -function updateCss(el, url) { - if (!url) { - if (!el.href) { - return; - } - - // eslint-disable-next-line - url = el.href.split('?')[0]; - } - - if (!isUrlRequest(url)) { - return; - } - - if (el.isLoaded === false) { - // We seem to be about to replace a css link that hasn't loaded yet. - // We're probably changing the same file more than once. - return; - } - - if (!url || !(url.indexOf('.css') > -1)) { - return; - } - - // eslint-disable-next-line no-param-reassign - el.visited = true; - - const newEl = el.cloneNode(); - - newEl.isLoaded = false; - - newEl.addEventListener('load', () => { - if (newEl.isLoaded) { - return; - } - - newEl.isLoaded = true; - el.parentNode.removeChild(el); - }); - - newEl.addEventListener('error', () => { - if (newEl.isLoaded) { - return; - } - - newEl.isLoaded = true; - el.parentNode.removeChild(el); - }); - - newEl.href = `${url}?${Date.now()}`; - - if (el.nextSibling) { - el.parentNode.insertBefore(newEl, el.nextSibling); - } else { - el.parentNode.appendChild(newEl); - } -} - -function getReloadUrl(href, src) { - let ret; - - // eslint-disable-next-line no-param-reassign - href = normalizeUrl(href, { stripWWW: false }); - - // eslint-disable-next-line array-callback-return - src.some((url) => { - if (href.indexOf(src) > -1) { - ret = url; - } - }); - - return ret; -} - -function reloadStyle(src) { - if (!src) { - return false; - } - - const elements = document.querySelectorAll('link'); - let loaded = false; - - forEach.call(elements, (el) => { - if (!el.href) { - return; - } - - const url = getReloadUrl(el.href, src); - - if (!isUrlRequest(url)) { - return; - } - - if (el.visited === true) { - return; - } - - if (url) { - updateCss(el, url); - - loaded = true; - } - }); - - return loaded; -} - -function reloadAll() { - const elements = document.querySelectorAll('link'); - - forEach.call(elements, (el) => { - if (el.visited === true) { - return; - } - - updateCss(el); - }); -} - -function isUrlRequest(url) { - // An URL is not an request if - - // It is not http or https - if (!/^https?:/i.test(url)) { - return false; - } - - return true; -} - -module.exports = function (moduleId, options) { - if (noDocument) { - console.log('no window.document found, will not HMR CSS'); - - return noop; - } - - const getScriptSrc = getCurrentScriptUrl(moduleId); - - function update() { - const src = getScriptSrc(options.filename); - const reloaded = reloadStyle(src); - - if (options.locals) { - console.log('[HMR] Detected local css modules. Reload all css'); - - reloadAll(); - - return; - } - - if (reloaded) { - console.log('[HMR] css reload %s', src.join(' ')); - } else { - console.log('[HMR] Reload all css'); - - reloadAll(); - } - } - - return debounce(update, 50); -}; - - -/***/ }), -/* 2 */ -/***/ (function(module, exports) { - -/* eslint-disable */ - -function normalizeUrl(pathComponents) { - return pathComponents - .reduce(function (accumulator, item) { - switch (item) { - case '..': - accumulator.pop(); - break; - case '.': - break; - default: - accumulator.push(item); - } - - return accumulator; - }, []) - .join('/'); -} - -module.exports = function (urlString) { - urlString = urlString.trim(); - - if (/^data:/i.test(urlString)) { - return urlString; - } - - var protocol = - urlString.indexOf('//') !== -1 ? urlString.split('//')[0] + '//' : ''; - var components = urlString.replace(new RegExp(protocol, 'i'), '').split('/'); - var host = components[0].toLowerCase().replace(/\.$/, ''); - - components[0] = ''; - - var path = normalizeUrl(components); - - return protocol + host + path; -}; - - -/***/ }) -/******/ ]); \ No newline at end of file diff --git a/test/cases/insert-function/expected/webpack-4/1.js b/test/cases/insert-function/expected/webpack-4/1.js deleted file mode 100644 index 4292040c..00000000 --- a/test/cases/insert-function/expected/webpack-4/1.js +++ /dev/null @@ -1,12 +0,0 @@ -(window["webpackJsonp"] = window["webpackJsonp"] || []).push([[1],[ -/* 0 */, -/* 1 */ -/***/ (function(module, __webpack_exports__, __webpack_require__) { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -// extracted by mini-css-extract-plugin - - -/***/ }) -]]); \ No newline at end of file diff --git a/test/cases/insert-function/expected/webpack-4/main.js b/test/cases/insert-function/expected/webpack-4/main.js deleted file mode 100644 index 469a9aa6..00000000 --- a/test/cases/insert-function/expected/webpack-4/main.js +++ /dev/null @@ -1,273 +0,0 @@ -/******/ (function(modules) { // webpackBootstrap -/******/ // install a JSONP callback for chunk loading -/******/ function webpackJsonpCallback(data) { -/******/ var chunkIds = data[0]; -/******/ var moreModules = data[1]; -/******/ -/******/ -/******/ // add "moreModules" to the modules object, -/******/ // then flag all "chunkIds" as loaded and fire callback -/******/ var moduleId, chunkId, i = 0, resolves = []; -/******/ for(;i < chunkIds.length; i++) { -/******/ chunkId = chunkIds[i]; -/******/ if(Object.prototype.hasOwnProperty.call(installedChunks, chunkId) && installedChunks[chunkId]) { -/******/ resolves.push(installedChunks[chunkId][0]); -/******/ } -/******/ installedChunks[chunkId] = 0; -/******/ } -/******/ for(moduleId in moreModules) { -/******/ if(Object.prototype.hasOwnProperty.call(moreModules, moduleId)) { -/******/ modules[moduleId] = moreModules[moduleId]; -/******/ } -/******/ } -/******/ if(parentJsonpFunction) parentJsonpFunction(data); -/******/ -/******/ while(resolves.length) { -/******/ resolves.shift()(); -/******/ } -/******/ -/******/ }; -/******/ -/******/ -/******/ // The module cache -/******/ var installedModules = {}; -/******/ -/******/ // object to store loaded CSS chunks -/******/ var installedCssChunks = { -/******/ 0: 0 -/******/ }; -/******/ -/******/ // object to store loaded and loading chunks -/******/ // undefined = chunk not loaded, null = chunk preloaded/prefetched -/******/ // Promise = chunk loading, 0 = chunk loaded -/******/ var installedChunks = { -/******/ 0: 0 -/******/ }; -/******/ -/******/ -/******/ -/******/ // script path function -/******/ function jsonpScriptSrc(chunkId) { -/******/ return __webpack_require__.p + "" + ({}[chunkId]||chunkId) + ".js" -/******/ } -/******/ -/******/ // The require function -/******/ function __webpack_require__(moduleId) { -/******/ -/******/ // Check if module is in cache -/******/ if(installedModules[moduleId]) { -/******/ return installedModules[moduleId].exports; -/******/ } -/******/ // Create a new module (and put it into the cache) -/******/ var module = installedModules[moduleId] = { -/******/ i: moduleId, -/******/ l: false, -/******/ exports: {} -/******/ }; -/******/ -/******/ // Execute the module function -/******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__); -/******/ -/******/ // Flag the module as loaded -/******/ module.l = true; -/******/ -/******/ // Return the exports of the module -/******/ return module.exports; -/******/ } -/******/ -/******/ // This file contains only the entry chunk. -/******/ // The chunk loading function for additional chunks -/******/ __webpack_require__.e = function requireEnsure(chunkId) { -/******/ var promises = []; -/******/ -/******/ -/******/ // mini-css-extract-plugin CSS loading -/******/ var cssChunks = {"1":1}; -/******/ if(installedCssChunks[chunkId]) promises.push(installedCssChunks[chunkId]); -/******/ else if(installedCssChunks[chunkId] !== 0 && cssChunks[chunkId]) { -/******/ promises.push(installedCssChunks[chunkId] = new Promise(function(resolve, reject) { -/******/ var href = "" + chunkId + ".css"; -/******/ var fullhref = __webpack_require__.p + href; -/******/ var existingLinkTags = document.getElementsByTagName("link"); -/******/ for(var i = 0; i < existingLinkTags.length; i++) { -/******/ var tag = existingLinkTags[i]; -/******/ var dataHref = tag.getAttribute("data-href") || tag.getAttribute("href"); -/******/ if(tag.rel === "stylesheet" && (dataHref === href || dataHref === fullhref)) return resolve(); -/******/ } -/******/ var existingStyleTags = document.getElementsByTagName("style"); -/******/ for(var i = 0; i < existingStyleTags.length; i++) { -/******/ var tag = existingStyleTags[i]; -/******/ var dataHref = tag.getAttribute("data-href"); -/******/ if(dataHref === href || dataHref === fullhref) return resolve(); -/******/ } -/******/ var linkTag = document.createElement("link"); -/******/ -/******/ linkTag.rel = "stylesheet"; -/******/ linkTag.type = "text/css"; -/******/ var onLinkComplete = function (event) { -/******/ // avoid mem leaks. -/******/ linkTag.onerror = linkTag.onload = null; -/******/ if (event.type === 'load') { -/******/ resolve(); -/******/ } else { -/******/ var errorType = event && (event.type === 'load' ? 'missing' : event.type); -/******/ var realHref = event && event.target && event.target.href || fullhref; -/******/ var err = new Error("Loading CSS chunk " + chunkId + " failed.\n(" + realHref + ")"); -/******/ err.code = "CSS_CHUNK_LOAD_FAILED"; -/******/ err.type = errorType; -/******/ err.request = realHref; -/******/ delete installedCssChunks[chunkId] -/******/ linkTag.parentNode.removeChild(linkTag) -/******/ reject(err); -/******/ } -/******/ }; -/******/ linkTag.onerror = linkTag.onload = onLinkComplete; -/******/ linkTag.href = fullhref; -/******/ -/******/ (function (linkTag) { -/******/ const reference = document.querySelector('.hot-reload'); -/******/ -/******/ if (reference) { -/******/ reference.parentNode.insertBefore(linkTag, reference); -/******/ } -/******/ })(linkTag) -/******/ }).then(function() { -/******/ installedCssChunks[chunkId] = 0; -/******/ })); -/******/ } -/******/ -/******/ // JSONP chunk loading for javascript -/******/ -/******/ var installedChunkData = installedChunks[chunkId]; -/******/ if(installedChunkData !== 0) { // 0 means "already installed". -/******/ -/******/ // a Promise means "currently loading". -/******/ if(installedChunkData) { -/******/ promises.push(installedChunkData[2]); -/******/ } else { -/******/ // setup Promise in chunk cache -/******/ var promise = new Promise(function(resolve, reject) { -/******/ installedChunkData = installedChunks[chunkId] = [resolve, reject]; -/******/ }); -/******/ promises.push(installedChunkData[2] = promise); -/******/ -/******/ // start chunk loading -/******/ var script = document.createElement('script'); -/******/ var onScriptComplete; -/******/ -/******/ script.charset = 'utf-8'; -/******/ script.timeout = 120; -/******/ if (__webpack_require__.nc) { -/******/ script.setAttribute("nonce", __webpack_require__.nc); -/******/ } -/******/ script.src = jsonpScriptSrc(chunkId); -/******/ -/******/ // create error before stack unwound to get useful stacktrace later -/******/ var error = new Error(); -/******/ onScriptComplete = function (event) { -/******/ // avoid mem leaks in IE. -/******/ script.onerror = script.onload = null; -/******/ clearTimeout(timeout); -/******/ var chunk = installedChunks[chunkId]; -/******/ if(chunk !== 0) { -/******/ if(chunk) { -/******/ var errorType = event && (event.type === 'load' ? 'missing' : event.type); -/******/ var realSrc = event && event.target && event.target.src; -/******/ error.message = 'Loading chunk ' + chunkId + ' failed.\n(' + errorType + ': ' + realSrc + ')'; -/******/ error.name = 'ChunkLoadError'; -/******/ error.type = errorType; -/******/ error.request = realSrc; -/******/ chunk[1](error); -/******/ } -/******/ installedChunks[chunkId] = undefined; -/******/ } -/******/ }; -/******/ var timeout = setTimeout(function(){ -/******/ onScriptComplete({ type: 'timeout', target: script }); -/******/ }, 120000); -/******/ script.onerror = script.onload = onScriptComplete; -/******/ document.head.appendChild(script); -/******/ } -/******/ } -/******/ return Promise.all(promises); -/******/ }; -/******/ -/******/ // expose the modules object (__webpack_modules__) -/******/ __webpack_require__.m = modules; -/******/ -/******/ // expose the module cache -/******/ __webpack_require__.c = installedModules; -/******/ -/******/ // define getter function for harmony exports -/******/ __webpack_require__.d = function(exports, name, getter) { -/******/ if(!__webpack_require__.o(exports, name)) { -/******/ Object.defineProperty(exports, name, { enumerable: true, get: getter }); -/******/ } -/******/ }; -/******/ -/******/ // define __esModule on exports -/******/ __webpack_require__.r = function(exports) { -/******/ if(typeof Symbol !== 'undefined' && Symbol.toStringTag) { -/******/ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' }); -/******/ } -/******/ Object.defineProperty(exports, '__esModule', { value: true }); -/******/ }; -/******/ -/******/ // create a fake namespace object -/******/ // mode & 1: value is a module id, require it -/******/ // mode & 2: merge all properties of value into the ns -/******/ // mode & 4: return value when already ns object -/******/ // mode & 8|1: behave like require -/******/ __webpack_require__.t = function(value, mode) { -/******/ if(mode & 1) value = __webpack_require__(value); -/******/ if(mode & 8) return value; -/******/ if((mode & 4) && typeof value === 'object' && value && value.__esModule) return value; -/******/ var ns = Object.create(null); -/******/ __webpack_require__.r(ns); -/******/ Object.defineProperty(ns, 'default', { enumerable: true, value: value }); -/******/ if(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key)); -/******/ return ns; -/******/ }; -/******/ -/******/ // getDefaultExport function for compatibility with non-harmony modules -/******/ __webpack_require__.n = function(module) { -/******/ var getter = module && module.__esModule ? -/******/ function getDefault() { return module['default']; } : -/******/ function getModuleExports() { return module; }; -/******/ __webpack_require__.d(getter, 'a', getter); -/******/ return getter; -/******/ }; -/******/ -/******/ // Object.prototype.hasOwnProperty.call -/******/ __webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); }; -/******/ -/******/ // __webpack_public_path__ -/******/ __webpack_require__.p = ""; -/******/ -/******/ // on error function for async loading -/******/ __webpack_require__.oe = function(err) { console.error(err); throw err; }; -/******/ -/******/ var jsonpArray = window["webpackJsonp"] = window["webpackJsonp"] || []; -/******/ var oldJsonpFunction = jsonpArray.push.bind(jsonpArray); -/******/ jsonpArray.push = webpackJsonpCallback; -/******/ jsonpArray = jsonpArray.slice(); -/******/ for(var i = 0; i < jsonpArray.length; i++) webpackJsonpCallback(jsonpArray[i]); -/******/ var parentJsonpFunction = oldJsonpFunction; -/******/ -/******/ -/******/ // Load entry module and return exports -/******/ return __webpack_require__(__webpack_require__.s = 0); -/******/ }) -/************************************************************************/ -/******/ ([ -/* 0 */ -/***/ (function(module, exports, __webpack_require__) { - -/* eslint-env browser */ - -// eslint-disable-next-line -__webpack_require__.e(/* import() */ 1).then(__webpack_require__.bind(null, 1)); - - -/***/ }) -/******/ ]); \ No newline at end of file diff --git a/test/cases/insert-string/expected/webpack-4/1.css b/test/cases/insert-string/expected/webpack-4/1.css deleted file mode 100644 index cebc5c1c..00000000 --- a/test/cases/insert-string/expected/webpack-4/1.css +++ /dev/null @@ -1,4 +0,0 @@ -body { - background: red; -} - diff --git a/test/cases/insert-string/expected/webpack-4/1.js b/test/cases/insert-string/expected/webpack-4/1.js deleted file mode 100644 index 4292040c..00000000 --- a/test/cases/insert-string/expected/webpack-4/1.js +++ /dev/null @@ -1,12 +0,0 @@ -(window["webpackJsonp"] = window["webpackJsonp"] || []).push([[1],[ -/* 0 */, -/* 1 */ -/***/ (function(module, __webpack_exports__, __webpack_require__) { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -// extracted by mini-css-extract-plugin - - -/***/ }) -]]); \ No newline at end of file diff --git a/test/cases/insert-string/expected/webpack-4/main.js b/test/cases/insert-string/expected/webpack-4/main.js deleted file mode 100644 index 9af8b299..00000000 --- a/test/cases/insert-string/expected/webpack-4/main.js +++ /dev/null @@ -1,268 +0,0 @@ -/******/ (function(modules) { // webpackBootstrap -/******/ // install a JSONP callback for chunk loading -/******/ function webpackJsonpCallback(data) { -/******/ var chunkIds = data[0]; -/******/ var moreModules = data[1]; -/******/ -/******/ -/******/ // add "moreModules" to the modules object, -/******/ // then flag all "chunkIds" as loaded and fire callback -/******/ var moduleId, chunkId, i = 0, resolves = []; -/******/ for(;i < chunkIds.length; i++) { -/******/ chunkId = chunkIds[i]; -/******/ if(Object.prototype.hasOwnProperty.call(installedChunks, chunkId) && installedChunks[chunkId]) { -/******/ resolves.push(installedChunks[chunkId][0]); -/******/ } -/******/ installedChunks[chunkId] = 0; -/******/ } -/******/ for(moduleId in moreModules) { -/******/ if(Object.prototype.hasOwnProperty.call(moreModules, moduleId)) { -/******/ modules[moduleId] = moreModules[moduleId]; -/******/ } -/******/ } -/******/ if(parentJsonpFunction) parentJsonpFunction(data); -/******/ -/******/ while(resolves.length) { -/******/ resolves.shift()(); -/******/ } -/******/ -/******/ }; -/******/ -/******/ -/******/ // The module cache -/******/ var installedModules = {}; -/******/ -/******/ // object to store loaded CSS chunks -/******/ var installedCssChunks = { -/******/ 0: 0 -/******/ }; -/******/ -/******/ // object to store loaded and loading chunks -/******/ // undefined = chunk not loaded, null = chunk preloaded/prefetched -/******/ // Promise = chunk loading, 0 = chunk loaded -/******/ var installedChunks = { -/******/ 0: 0 -/******/ }; -/******/ -/******/ -/******/ -/******/ // script path function -/******/ function jsonpScriptSrc(chunkId) { -/******/ return __webpack_require__.p + "" + ({}[chunkId]||chunkId) + ".js" -/******/ } -/******/ -/******/ // The require function -/******/ function __webpack_require__(moduleId) { -/******/ -/******/ // Check if module is in cache -/******/ if(installedModules[moduleId]) { -/******/ return installedModules[moduleId].exports; -/******/ } -/******/ // Create a new module (and put it into the cache) -/******/ var module = installedModules[moduleId] = { -/******/ i: moduleId, -/******/ l: false, -/******/ exports: {} -/******/ }; -/******/ -/******/ // Execute the module function -/******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__); -/******/ -/******/ // Flag the module as loaded -/******/ module.l = true; -/******/ -/******/ // Return the exports of the module -/******/ return module.exports; -/******/ } -/******/ -/******/ // This file contains only the entry chunk. -/******/ // The chunk loading function for additional chunks -/******/ __webpack_require__.e = function requireEnsure(chunkId) { -/******/ var promises = []; -/******/ -/******/ -/******/ // mini-css-extract-plugin CSS loading -/******/ var cssChunks = {"1":1}; -/******/ if(installedCssChunks[chunkId]) promises.push(installedCssChunks[chunkId]); -/******/ else if(installedCssChunks[chunkId] !== 0 && cssChunks[chunkId]) { -/******/ promises.push(installedCssChunks[chunkId] = new Promise(function(resolve, reject) { -/******/ var href = "" + chunkId + ".css"; -/******/ var fullhref = __webpack_require__.p + href; -/******/ var existingLinkTags = document.getElementsByTagName("link"); -/******/ for(var i = 0; i < existingLinkTags.length; i++) { -/******/ var tag = existingLinkTags[i]; -/******/ var dataHref = tag.getAttribute("data-href") || tag.getAttribute("href"); -/******/ if(tag.rel === "stylesheet" && (dataHref === href || dataHref === fullhref)) return resolve(); -/******/ } -/******/ var existingStyleTags = document.getElementsByTagName("style"); -/******/ for(var i = 0; i < existingStyleTags.length; i++) { -/******/ var tag = existingStyleTags[i]; -/******/ var dataHref = tag.getAttribute("data-href"); -/******/ if(dataHref === href || dataHref === fullhref) return resolve(); -/******/ } -/******/ var linkTag = document.createElement("link"); -/******/ -/******/ linkTag.rel = "stylesheet"; -/******/ linkTag.type = "text/css"; -/******/ var onLinkComplete = function (event) { -/******/ // avoid mem leaks. -/******/ linkTag.onerror = linkTag.onload = null; -/******/ if (event.type === 'load') { -/******/ resolve(); -/******/ } else { -/******/ var errorType = event && (event.type === 'load' ? 'missing' : event.type); -/******/ var realHref = event && event.target && event.target.href || fullhref; -/******/ var err = new Error("Loading CSS chunk " + chunkId + " failed.\n(" + realHref + ")"); -/******/ err.code = "CSS_CHUNK_LOAD_FAILED"; -/******/ err.type = errorType; -/******/ err.request = realHref; -/******/ delete installedCssChunks[chunkId] -/******/ linkTag.parentNode.removeChild(linkTag) -/******/ reject(err); -/******/ } -/******/ }; -/******/ linkTag.onerror = linkTag.onload = onLinkComplete; -/******/ linkTag.href = fullhref; -/******/ -/******/ var target = document.querySelector("script[src='1.js']"); -/******/ target.parentNode.insertBefore(linkTag, target.nextSibling); -/******/ }).then(function() { -/******/ installedCssChunks[chunkId] = 0; -/******/ })); -/******/ } -/******/ -/******/ // JSONP chunk loading for javascript -/******/ -/******/ var installedChunkData = installedChunks[chunkId]; -/******/ if(installedChunkData !== 0) { // 0 means "already installed". -/******/ -/******/ // a Promise means "currently loading". -/******/ if(installedChunkData) { -/******/ promises.push(installedChunkData[2]); -/******/ } else { -/******/ // setup Promise in chunk cache -/******/ var promise = new Promise(function(resolve, reject) { -/******/ installedChunkData = installedChunks[chunkId] = [resolve, reject]; -/******/ }); -/******/ promises.push(installedChunkData[2] = promise); -/******/ -/******/ // start chunk loading -/******/ var script = document.createElement('script'); -/******/ var onScriptComplete; -/******/ -/******/ script.charset = 'utf-8'; -/******/ script.timeout = 120; -/******/ if (__webpack_require__.nc) { -/******/ script.setAttribute("nonce", __webpack_require__.nc); -/******/ } -/******/ script.src = jsonpScriptSrc(chunkId); -/******/ -/******/ // create error before stack unwound to get useful stacktrace later -/******/ var error = new Error(); -/******/ onScriptComplete = function (event) { -/******/ // avoid mem leaks in IE. -/******/ script.onerror = script.onload = null; -/******/ clearTimeout(timeout); -/******/ var chunk = installedChunks[chunkId]; -/******/ if(chunk !== 0) { -/******/ if(chunk) { -/******/ var errorType = event && (event.type === 'load' ? 'missing' : event.type); -/******/ var realSrc = event && event.target && event.target.src; -/******/ error.message = 'Loading chunk ' + chunkId + ' failed.\n(' + errorType + ': ' + realSrc + ')'; -/******/ error.name = 'ChunkLoadError'; -/******/ error.type = errorType; -/******/ error.request = realSrc; -/******/ chunk[1](error); -/******/ } -/******/ installedChunks[chunkId] = undefined; -/******/ } -/******/ }; -/******/ var timeout = setTimeout(function(){ -/******/ onScriptComplete({ type: 'timeout', target: script }); -/******/ }, 120000); -/******/ script.onerror = script.onload = onScriptComplete; -/******/ document.head.appendChild(script); -/******/ } -/******/ } -/******/ return Promise.all(promises); -/******/ }; -/******/ -/******/ // expose the modules object (__webpack_modules__) -/******/ __webpack_require__.m = modules; -/******/ -/******/ // expose the module cache -/******/ __webpack_require__.c = installedModules; -/******/ -/******/ // define getter function for harmony exports -/******/ __webpack_require__.d = function(exports, name, getter) { -/******/ if(!__webpack_require__.o(exports, name)) { -/******/ Object.defineProperty(exports, name, { enumerable: true, get: getter }); -/******/ } -/******/ }; -/******/ -/******/ // define __esModule on exports -/******/ __webpack_require__.r = function(exports) { -/******/ if(typeof Symbol !== 'undefined' && Symbol.toStringTag) { -/******/ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' }); -/******/ } -/******/ Object.defineProperty(exports, '__esModule', { value: true }); -/******/ }; -/******/ -/******/ // create a fake namespace object -/******/ // mode & 1: value is a module id, require it -/******/ // mode & 2: merge all properties of value into the ns -/******/ // mode & 4: return value when already ns object -/******/ // mode & 8|1: behave like require -/******/ __webpack_require__.t = function(value, mode) { -/******/ if(mode & 1) value = __webpack_require__(value); -/******/ if(mode & 8) return value; -/******/ if((mode & 4) && typeof value === 'object' && value && value.__esModule) return value; -/******/ var ns = Object.create(null); -/******/ __webpack_require__.r(ns); -/******/ Object.defineProperty(ns, 'default', { enumerable: true, value: value }); -/******/ if(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key)); -/******/ return ns; -/******/ }; -/******/ -/******/ // getDefaultExport function for compatibility with non-harmony modules -/******/ __webpack_require__.n = function(module) { -/******/ var getter = module && module.__esModule ? -/******/ function getDefault() { return module['default']; } : -/******/ function getModuleExports() { return module; }; -/******/ __webpack_require__.d(getter, 'a', getter); -/******/ return getter; -/******/ }; -/******/ -/******/ // Object.prototype.hasOwnProperty.call -/******/ __webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); }; -/******/ -/******/ // __webpack_public_path__ -/******/ __webpack_require__.p = ""; -/******/ -/******/ // on error function for async loading -/******/ __webpack_require__.oe = function(err) { console.error(err); throw err; }; -/******/ -/******/ var jsonpArray = window["webpackJsonp"] = window["webpackJsonp"] || []; -/******/ var oldJsonpFunction = jsonpArray.push.bind(jsonpArray); -/******/ jsonpArray.push = webpackJsonpCallback; -/******/ jsonpArray = jsonpArray.slice(); -/******/ for(var i = 0; i < jsonpArray.length; i++) webpackJsonpCallback(jsonpArray[i]); -/******/ var parentJsonpFunction = oldJsonpFunction; -/******/ -/******/ -/******/ // Load entry module and return exports -/******/ return __webpack_require__(__webpack_require__.s = 0); -/******/ }) -/************************************************************************/ -/******/ ([ -/* 0 */ -/***/ (function(module, exports, __webpack_require__) { - -/* eslint-env browser */ - -// eslint-disable-next-line -__webpack_require__.e(/* import() */ 1).then(__webpack_require__.bind(null, 1)); - - -/***/ }) -/******/ ]); \ No newline at end of file diff --git a/test/cases/insert-undefined/expected/webpack-4/1.css b/test/cases/insert-undefined/expected/webpack-4/1.css deleted file mode 100644 index cebc5c1c..00000000 --- a/test/cases/insert-undefined/expected/webpack-4/1.css +++ /dev/null @@ -1,4 +0,0 @@ -body { - background: red; -} - diff --git a/test/cases/insert-undefined/expected/webpack-4/1.js b/test/cases/insert-undefined/expected/webpack-4/1.js deleted file mode 100644 index 4292040c..00000000 --- a/test/cases/insert-undefined/expected/webpack-4/1.js +++ /dev/null @@ -1,12 +0,0 @@ -(window["webpackJsonp"] = window["webpackJsonp"] || []).push([[1],[ -/* 0 */, -/* 1 */ -/***/ (function(module, __webpack_exports__, __webpack_require__) { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -// extracted by mini-css-extract-plugin - - -/***/ }) -]]); \ No newline at end of file diff --git a/test/cases/insert-undefined/expected/webpack-4/main.js b/test/cases/insert-undefined/expected/webpack-4/main.js deleted file mode 100644 index dffcd674..00000000 --- a/test/cases/insert-undefined/expected/webpack-4/main.js +++ /dev/null @@ -1,267 +0,0 @@ -/******/ (function(modules) { // webpackBootstrap -/******/ // install a JSONP callback for chunk loading -/******/ function webpackJsonpCallback(data) { -/******/ var chunkIds = data[0]; -/******/ var moreModules = data[1]; -/******/ -/******/ -/******/ // add "moreModules" to the modules object, -/******/ // then flag all "chunkIds" as loaded and fire callback -/******/ var moduleId, chunkId, i = 0, resolves = []; -/******/ for(;i < chunkIds.length; i++) { -/******/ chunkId = chunkIds[i]; -/******/ if(Object.prototype.hasOwnProperty.call(installedChunks, chunkId) && installedChunks[chunkId]) { -/******/ resolves.push(installedChunks[chunkId][0]); -/******/ } -/******/ installedChunks[chunkId] = 0; -/******/ } -/******/ for(moduleId in moreModules) { -/******/ if(Object.prototype.hasOwnProperty.call(moreModules, moduleId)) { -/******/ modules[moduleId] = moreModules[moduleId]; -/******/ } -/******/ } -/******/ if(parentJsonpFunction) parentJsonpFunction(data); -/******/ -/******/ while(resolves.length) { -/******/ resolves.shift()(); -/******/ } -/******/ -/******/ }; -/******/ -/******/ -/******/ // The module cache -/******/ var installedModules = {}; -/******/ -/******/ // object to store loaded CSS chunks -/******/ var installedCssChunks = { -/******/ 0: 0 -/******/ }; -/******/ -/******/ // object to store loaded and loading chunks -/******/ // undefined = chunk not loaded, null = chunk preloaded/prefetched -/******/ // Promise = chunk loading, 0 = chunk loaded -/******/ var installedChunks = { -/******/ 0: 0 -/******/ }; -/******/ -/******/ -/******/ -/******/ // script path function -/******/ function jsonpScriptSrc(chunkId) { -/******/ return __webpack_require__.p + "" + ({}[chunkId]||chunkId) + ".js" -/******/ } -/******/ -/******/ // The require function -/******/ function __webpack_require__(moduleId) { -/******/ -/******/ // Check if module is in cache -/******/ if(installedModules[moduleId]) { -/******/ return installedModules[moduleId].exports; -/******/ } -/******/ // Create a new module (and put it into the cache) -/******/ var module = installedModules[moduleId] = { -/******/ i: moduleId, -/******/ l: false, -/******/ exports: {} -/******/ }; -/******/ -/******/ // Execute the module function -/******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__); -/******/ -/******/ // Flag the module as loaded -/******/ module.l = true; -/******/ -/******/ // Return the exports of the module -/******/ return module.exports; -/******/ } -/******/ -/******/ // This file contains only the entry chunk. -/******/ // The chunk loading function for additional chunks -/******/ __webpack_require__.e = function requireEnsure(chunkId) { -/******/ var promises = []; -/******/ -/******/ -/******/ // mini-css-extract-plugin CSS loading -/******/ var cssChunks = {"1":1}; -/******/ if(installedCssChunks[chunkId]) promises.push(installedCssChunks[chunkId]); -/******/ else if(installedCssChunks[chunkId] !== 0 && cssChunks[chunkId]) { -/******/ promises.push(installedCssChunks[chunkId] = new Promise(function(resolve, reject) { -/******/ var href = "" + chunkId + ".css"; -/******/ var fullhref = __webpack_require__.p + href; -/******/ var existingLinkTags = document.getElementsByTagName("link"); -/******/ for(var i = 0; i < existingLinkTags.length; i++) { -/******/ var tag = existingLinkTags[i]; -/******/ var dataHref = tag.getAttribute("data-href") || tag.getAttribute("href"); -/******/ if(tag.rel === "stylesheet" && (dataHref === href || dataHref === fullhref)) return resolve(); -/******/ } -/******/ var existingStyleTags = document.getElementsByTagName("style"); -/******/ for(var i = 0; i < existingStyleTags.length; i++) { -/******/ var tag = existingStyleTags[i]; -/******/ var dataHref = tag.getAttribute("data-href"); -/******/ if(dataHref === href || dataHref === fullhref) return resolve(); -/******/ } -/******/ var linkTag = document.createElement("link"); -/******/ -/******/ linkTag.rel = "stylesheet"; -/******/ linkTag.type = "text/css"; -/******/ var onLinkComplete = function (event) { -/******/ // avoid mem leaks. -/******/ linkTag.onerror = linkTag.onload = null; -/******/ if (event.type === 'load') { -/******/ resolve(); -/******/ } else { -/******/ var errorType = event && (event.type === 'load' ? 'missing' : event.type); -/******/ var realHref = event && event.target && event.target.href || fullhref; -/******/ var err = new Error("Loading CSS chunk " + chunkId + " failed.\n(" + realHref + ")"); -/******/ err.code = "CSS_CHUNK_LOAD_FAILED"; -/******/ err.type = errorType; -/******/ err.request = realHref; -/******/ delete installedCssChunks[chunkId] -/******/ linkTag.parentNode.removeChild(linkTag) -/******/ reject(err); -/******/ } -/******/ }; -/******/ linkTag.onerror = linkTag.onload = onLinkComplete; -/******/ linkTag.href = fullhref; -/******/ -/******/ document.head.appendChild(linkTag); -/******/ }).then(function() { -/******/ installedCssChunks[chunkId] = 0; -/******/ })); -/******/ } -/******/ -/******/ // JSONP chunk loading for javascript -/******/ -/******/ var installedChunkData = installedChunks[chunkId]; -/******/ if(installedChunkData !== 0) { // 0 means "already installed". -/******/ -/******/ // a Promise means "currently loading". -/******/ if(installedChunkData) { -/******/ promises.push(installedChunkData[2]); -/******/ } else { -/******/ // setup Promise in chunk cache -/******/ var promise = new Promise(function(resolve, reject) { -/******/ installedChunkData = installedChunks[chunkId] = [resolve, reject]; -/******/ }); -/******/ promises.push(installedChunkData[2] = promise); -/******/ -/******/ // start chunk loading -/******/ var script = document.createElement('script'); -/******/ var onScriptComplete; -/******/ -/******/ script.charset = 'utf-8'; -/******/ script.timeout = 120; -/******/ if (__webpack_require__.nc) { -/******/ script.setAttribute("nonce", __webpack_require__.nc); -/******/ } -/******/ script.src = jsonpScriptSrc(chunkId); -/******/ -/******/ // create error before stack unwound to get useful stacktrace later -/******/ var error = new Error(); -/******/ onScriptComplete = function (event) { -/******/ // avoid mem leaks in IE. -/******/ script.onerror = script.onload = null; -/******/ clearTimeout(timeout); -/******/ var chunk = installedChunks[chunkId]; -/******/ if(chunk !== 0) { -/******/ if(chunk) { -/******/ var errorType = event && (event.type === 'load' ? 'missing' : event.type); -/******/ var realSrc = event && event.target && event.target.src; -/******/ error.message = 'Loading chunk ' + chunkId + ' failed.\n(' + errorType + ': ' + realSrc + ')'; -/******/ error.name = 'ChunkLoadError'; -/******/ error.type = errorType; -/******/ error.request = realSrc; -/******/ chunk[1](error); -/******/ } -/******/ installedChunks[chunkId] = undefined; -/******/ } -/******/ }; -/******/ var timeout = setTimeout(function(){ -/******/ onScriptComplete({ type: 'timeout', target: script }); -/******/ }, 120000); -/******/ script.onerror = script.onload = onScriptComplete; -/******/ document.head.appendChild(script); -/******/ } -/******/ } -/******/ return Promise.all(promises); -/******/ }; -/******/ -/******/ // expose the modules object (__webpack_modules__) -/******/ __webpack_require__.m = modules; -/******/ -/******/ // expose the module cache -/******/ __webpack_require__.c = installedModules; -/******/ -/******/ // define getter function for harmony exports -/******/ __webpack_require__.d = function(exports, name, getter) { -/******/ if(!__webpack_require__.o(exports, name)) { -/******/ Object.defineProperty(exports, name, { enumerable: true, get: getter }); -/******/ } -/******/ }; -/******/ -/******/ // define __esModule on exports -/******/ __webpack_require__.r = function(exports) { -/******/ if(typeof Symbol !== 'undefined' && Symbol.toStringTag) { -/******/ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' }); -/******/ } -/******/ Object.defineProperty(exports, '__esModule', { value: true }); -/******/ }; -/******/ -/******/ // create a fake namespace object -/******/ // mode & 1: value is a module id, require it -/******/ // mode & 2: merge all properties of value into the ns -/******/ // mode & 4: return value when already ns object -/******/ // mode & 8|1: behave like require -/******/ __webpack_require__.t = function(value, mode) { -/******/ if(mode & 1) value = __webpack_require__(value); -/******/ if(mode & 8) return value; -/******/ if((mode & 4) && typeof value === 'object' && value && value.__esModule) return value; -/******/ var ns = Object.create(null); -/******/ __webpack_require__.r(ns); -/******/ Object.defineProperty(ns, 'default', { enumerable: true, value: value }); -/******/ if(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key)); -/******/ return ns; -/******/ }; -/******/ -/******/ // getDefaultExport function for compatibility with non-harmony modules -/******/ __webpack_require__.n = function(module) { -/******/ var getter = module && module.__esModule ? -/******/ function getDefault() { return module['default']; } : -/******/ function getModuleExports() { return module; }; -/******/ __webpack_require__.d(getter, 'a', getter); -/******/ return getter; -/******/ }; -/******/ -/******/ // Object.prototype.hasOwnProperty.call -/******/ __webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); }; -/******/ -/******/ // __webpack_public_path__ -/******/ __webpack_require__.p = ""; -/******/ -/******/ // on error function for async loading -/******/ __webpack_require__.oe = function(err) { console.error(err); throw err; }; -/******/ -/******/ var jsonpArray = window["webpackJsonp"] = window["webpackJsonp"] || []; -/******/ var oldJsonpFunction = jsonpArray.push.bind(jsonpArray); -/******/ jsonpArray.push = webpackJsonpCallback; -/******/ jsonpArray = jsonpArray.slice(); -/******/ for(var i = 0; i < jsonpArray.length; i++) webpackJsonpCallback(jsonpArray[i]); -/******/ var parentJsonpFunction = oldJsonpFunction; -/******/ -/******/ -/******/ // Load entry module and return exports -/******/ return __webpack_require__(__webpack_require__.s = 0); -/******/ }) -/************************************************************************/ -/******/ ([ -/* 0 */ -/***/ (function(module, exports, __webpack_require__) { - -/* eslint-env browser */ - -// eslint-disable-next-line -__webpack_require__.e(/* import() */ 1).then(__webpack_require__.bind(null, 1)); - - -/***/ }) -/******/ ]); \ No newline at end of file diff --git a/test/cases/js-hash/expected/webpack-4/style.05ce3c307a634dcd5169.1.css b/test/cases/js-hash/expected/webpack-4/style.05ce3c307a634dcd5169.1.css deleted file mode 100644 index c7349e60..00000000 --- a/test/cases/js-hash/expected/webpack-4/style.05ce3c307a634dcd5169.1.css +++ /dev/null @@ -1,4 +0,0 @@ -._1vsR78e9UKJf5jCq7eLSYu { - background: red; -} - diff --git a/test/cases/js-hash/expected/webpack-4/style.c9487d3c46193641a005.2.css b/test/cases/js-hash/expected/webpack-4/style.c9487d3c46193641a005.2.css deleted file mode 100644 index 0f225f15..00000000 --- a/test/cases/js-hash/expected/webpack-4/style.c9487d3c46193641a005.2.css +++ /dev/null @@ -1,5 +0,0 @@ - -._1vsR78e9UKJf5jCq7eLSYu { - background: green; -} - diff --git a/test/cases/multiple-compiler/expected/webpack-5-importModule/one-main.js b/test/cases/multiple-compiler/expected/webpack-5-importModule/one-main.js new file mode 100644 index 00000000..adf06601 --- /dev/null +++ b/test/cases/multiple-compiler/expected/webpack-5-importModule/one-main.js @@ -0,0 +1,62 @@ +/******/ (() => { // webpackBootstrap +/******/ "use strict"; +/******/ var __webpack_modules__ = ([ +/* 0 */, +/* 1 */ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.r(__webpack_exports__); +// extracted by mini-css-extract-plugin + + +/***/ }) +/******/ ]); +/************************************************************************/ +/******/ // The module cache +/******/ var __webpack_module_cache__ = {}; +/******/ +/******/ // The require function +/******/ function __webpack_require__(moduleId) { +/******/ // Check if module is in cache +/******/ var cachedModule = __webpack_module_cache__[moduleId]; +/******/ if (cachedModule !== undefined) { +/******/ return cachedModule.exports; +/******/ } +/******/ // Create a new module (and put it into the cache) +/******/ var module = __webpack_module_cache__[moduleId] = { +/******/ // no module.id needed +/******/ // no module.loaded needed +/******/ exports: {} +/******/ }; +/******/ +/******/ // Execute the module function +/******/ __webpack_modules__[moduleId](module, module.exports, __webpack_require__); +/******/ +/******/ // Return the exports of the module +/******/ return module.exports; +/******/ } +/******/ +/************************************************************************/ +/******/ /* webpack/runtime/make namespace object */ +/******/ (() => { +/******/ // define __esModule on exports +/******/ __webpack_require__.r = (exports) => { +/******/ if(typeof Symbol !== 'undefined' && Symbol.toStringTag) { +/******/ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' }); +/******/ } +/******/ Object.defineProperty(exports, '__esModule', { value: true }); +/******/ }; +/******/ })(); +/******/ +/************************************************************************/ +var __webpack_exports__ = {}; +// This entry need to be wrapped in an IIFE because it need to be isolated against other modules in the chunk. +(() => { +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _style_css__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(1); + + +})(); + +/******/ })() +; \ No newline at end of file diff --git a/test/cases/chunkFilename-as-function/expected/webpack-4/main.css b/test/cases/multiple-compiler/expected/webpack-5-importModule/one/main.css similarity index 100% rename from test/cases/chunkFilename-as-function/expected/webpack-4/main.css rename to test/cases/multiple-compiler/expected/webpack-5-importModule/one/main.css diff --git a/test/cases/multiple-compiler/expected/webpack-5-importModule/two-main.js b/test/cases/multiple-compiler/expected/webpack-5-importModule/two-main.js new file mode 100644 index 00000000..adf06601 --- /dev/null +++ b/test/cases/multiple-compiler/expected/webpack-5-importModule/two-main.js @@ -0,0 +1,62 @@ +/******/ (() => { // webpackBootstrap +/******/ "use strict"; +/******/ var __webpack_modules__ = ([ +/* 0 */, +/* 1 */ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.r(__webpack_exports__); +// extracted by mini-css-extract-plugin + + +/***/ }) +/******/ ]); +/************************************************************************/ +/******/ // The module cache +/******/ var __webpack_module_cache__ = {}; +/******/ +/******/ // The require function +/******/ function __webpack_require__(moduleId) { +/******/ // Check if module is in cache +/******/ var cachedModule = __webpack_module_cache__[moduleId]; +/******/ if (cachedModule !== undefined) { +/******/ return cachedModule.exports; +/******/ } +/******/ // Create a new module (and put it into the cache) +/******/ var module = __webpack_module_cache__[moduleId] = { +/******/ // no module.id needed +/******/ // no module.loaded needed +/******/ exports: {} +/******/ }; +/******/ +/******/ // Execute the module function +/******/ __webpack_modules__[moduleId](module, module.exports, __webpack_require__); +/******/ +/******/ // Return the exports of the module +/******/ return module.exports; +/******/ } +/******/ +/************************************************************************/ +/******/ /* webpack/runtime/make namespace object */ +/******/ (() => { +/******/ // define __esModule on exports +/******/ __webpack_require__.r = (exports) => { +/******/ if(typeof Symbol !== 'undefined' && Symbol.toStringTag) { +/******/ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' }); +/******/ } +/******/ Object.defineProperty(exports, '__esModule', { value: true }); +/******/ }; +/******/ })(); +/******/ +/************************************************************************/ +var __webpack_exports__ = {}; +// This entry need to be wrapped in an IIFE because it need to be isolated against other modules in the chunk. +(() => { +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _style_css__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(1); + + +})(); + +/******/ })() +; \ No newline at end of file diff --git a/test/cases/chunkFilename/expected/webpack-4/main.css b/test/cases/multiple-compiler/expected/webpack-5-importModule/two/main.css similarity index 100% rename from test/cases/chunkFilename/expected/webpack-4/main.css rename to test/cases/multiple-compiler/expected/webpack-5-importModule/two/main.css diff --git a/test/cases/multiple-compiler/expected/webpack-5/one-main.js b/test/cases/multiple-compiler/expected/webpack-5/one-main.js new file mode 100644 index 00000000..adf06601 --- /dev/null +++ b/test/cases/multiple-compiler/expected/webpack-5/one-main.js @@ -0,0 +1,62 @@ +/******/ (() => { // webpackBootstrap +/******/ "use strict"; +/******/ var __webpack_modules__ = ([ +/* 0 */, +/* 1 */ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.r(__webpack_exports__); +// extracted by mini-css-extract-plugin + + +/***/ }) +/******/ ]); +/************************************************************************/ +/******/ // The module cache +/******/ var __webpack_module_cache__ = {}; +/******/ +/******/ // The require function +/******/ function __webpack_require__(moduleId) { +/******/ // Check if module is in cache +/******/ var cachedModule = __webpack_module_cache__[moduleId]; +/******/ if (cachedModule !== undefined) { +/******/ return cachedModule.exports; +/******/ } +/******/ // Create a new module (and put it into the cache) +/******/ var module = __webpack_module_cache__[moduleId] = { +/******/ // no module.id needed +/******/ // no module.loaded needed +/******/ exports: {} +/******/ }; +/******/ +/******/ // Execute the module function +/******/ __webpack_modules__[moduleId](module, module.exports, __webpack_require__); +/******/ +/******/ // Return the exports of the module +/******/ return module.exports; +/******/ } +/******/ +/************************************************************************/ +/******/ /* webpack/runtime/make namespace object */ +/******/ (() => { +/******/ // define __esModule on exports +/******/ __webpack_require__.r = (exports) => { +/******/ if(typeof Symbol !== 'undefined' && Symbol.toStringTag) { +/******/ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' }); +/******/ } +/******/ Object.defineProperty(exports, '__esModule', { value: true }); +/******/ }; +/******/ })(); +/******/ +/************************************************************************/ +var __webpack_exports__ = {}; +// This entry need to be wrapped in an IIFE because it need to be isolated against other modules in the chunk. +(() => { +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _style_css__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(1); + + +})(); + +/******/ })() +; \ No newline at end of file diff --git a/test/cases/filename-without-template/expected/webpack-4/main.css b/test/cases/multiple-compiler/expected/webpack-5/one/main.css similarity index 100% rename from test/cases/filename-without-template/expected/webpack-4/main.css rename to test/cases/multiple-compiler/expected/webpack-5/one/main.css diff --git a/test/cases/multiple-compiler/expected/webpack-5/two-main.js b/test/cases/multiple-compiler/expected/webpack-5/two-main.js new file mode 100644 index 00000000..adf06601 --- /dev/null +++ b/test/cases/multiple-compiler/expected/webpack-5/two-main.js @@ -0,0 +1,62 @@ +/******/ (() => { // webpackBootstrap +/******/ "use strict"; +/******/ var __webpack_modules__ = ([ +/* 0 */, +/* 1 */ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.r(__webpack_exports__); +// extracted by mini-css-extract-plugin + + +/***/ }) +/******/ ]); +/************************************************************************/ +/******/ // The module cache +/******/ var __webpack_module_cache__ = {}; +/******/ +/******/ // The require function +/******/ function __webpack_require__(moduleId) { +/******/ // Check if module is in cache +/******/ var cachedModule = __webpack_module_cache__[moduleId]; +/******/ if (cachedModule !== undefined) { +/******/ return cachedModule.exports; +/******/ } +/******/ // Create a new module (and put it into the cache) +/******/ var module = __webpack_module_cache__[moduleId] = { +/******/ // no module.id needed +/******/ // no module.loaded needed +/******/ exports: {} +/******/ }; +/******/ +/******/ // Execute the module function +/******/ __webpack_modules__[moduleId](module, module.exports, __webpack_require__); +/******/ +/******/ // Return the exports of the module +/******/ return module.exports; +/******/ } +/******/ +/************************************************************************/ +/******/ /* webpack/runtime/make namespace object */ +/******/ (() => { +/******/ // define __esModule on exports +/******/ __webpack_require__.r = (exports) => { +/******/ if(typeof Symbol !== 'undefined' && Symbol.toStringTag) { +/******/ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' }); +/******/ } +/******/ Object.defineProperty(exports, '__esModule', { value: true }); +/******/ }; +/******/ })(); +/******/ +/************************************************************************/ +var __webpack_exports__ = {}; +// This entry need to be wrapped in an IIFE because it need to be isolated against other modules in the chunk. +(() => { +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _style_css__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(1); + + +})(); + +/******/ })() +; \ No newline at end of file diff --git a/test/cases/contenthash/expected/webpack-4/1.main.45423f56597309256073.css b/test/cases/multiple-compiler/expected/webpack-5/two/main.css similarity index 100% rename from test/cases/contenthash/expected/webpack-4/1.main.45423f56597309256073.css rename to test/cases/multiple-compiler/expected/webpack-5/two/main.css diff --git a/test/cases/multiple-compiler/index.js b/test/cases/multiple-compiler/index.js new file mode 100644 index 00000000..aa3357bf --- /dev/null +++ b/test/cases/multiple-compiler/index.js @@ -0,0 +1 @@ +import './style.css'; diff --git a/test/cases/insert-function/expected/webpack-4/1.css b/test/cases/multiple-compiler/style.css similarity index 96% rename from test/cases/insert-function/expected/webpack-4/1.css rename to test/cases/multiple-compiler/style.css index cebc5c1c..67ce83e4 100644 --- a/test/cases/insert-function/expected/webpack-4/1.css +++ b/test/cases/multiple-compiler/style.css @@ -1,4 +1,3 @@ body { background: red; } - diff --git a/test/cases/multiple-compiler/webpack.config.js b/test/cases/multiple-compiler/webpack.config.js new file mode 100644 index 00000000..ce9a310f --- /dev/null +++ b/test/cases/multiple-compiler/webpack.config.js @@ -0,0 +1,42 @@ +import Self from '../../../src'; + +module.exports = [ + { + entry: './index.js', + output: { + filename: 'one-[name].js', + }, + module: { + rules: [ + { + test: /\.css$/, + use: [Self.loader, 'css-loader'], + }, + ], + }, + plugins: [ + new Self({ + filename: 'one/[name].css', + }), + ], + }, + { + entry: './index.js', + output: { + filename: 'two-[name].js', + }, + module: { + rules: [ + { + test: /\.css$/, + use: [Self.loader, 'css-loader'], + }, + ], + }, + plugins: [ + new Self({ + filename: 'two/[name].css', + }), + ], + }, +]; diff --git a/test/cases/new-url-with-public-path-auto/test.filter.js b/test/cases/new-url-with-public-path-auto/test.filter.js index 20341d78..d04b7de0 100644 --- a/test/cases/new-url-with-public-path-auto/test.filter.js +++ b/test/cases/new-url-with-public-path-auto/test.filter.js @@ -1,4 +1 @@ -const webpack = require('webpack'); - -module.exports = () => - webpack.version[0] !== '4' && !process.env.EXPERIMENTAL_USE_IMPORT_MODULE; +module.exports = () => !process.env.EXPERIMENTAL_USE_IMPORT_MODULE; diff --git a/test/cases/new-url-with-public-path/test.filter.js b/test/cases/new-url-with-public-path/test.filter.js index 20341d78..d04b7de0 100644 --- a/test/cases/new-url-with-public-path/test.filter.js +++ b/test/cases/new-url-with-public-path/test.filter.js @@ -1,4 +1 @@ -const webpack = require('webpack'); - -module.exports = () => - webpack.version[0] !== '4' && !process.env.EXPERIMENTAL_USE_IMPORT_MODULE; +module.exports = () => !process.env.EXPERIMENTAL_USE_IMPORT_MODULE; diff --git a/test/cases/new-url-with-public-path/webpack.config.js b/test/cases/new-url-with-public-path/webpack.config.js index 1d7453d9..0b819e77 100644 --- a/test/cases/new-url-with-public-path/webpack.config.js +++ b/test/cases/new-url-with-public-path/webpack.config.js @@ -13,7 +13,7 @@ module.exports = { { loader: Self.loader, options: { - publicPath: 'public', + publicPath: 'public/', }, }, './mockLoader', diff --git a/test/cases/publicpath-auto-2/expected/assets/img/react.svg b/test/cases/publicpath-auto-2/expected/assets/img/react.svg new file mode 100644 index 00000000..5b3b22a4 --- /dev/null +++ b/test/cases/publicpath-auto-2/expected/assets/img/react.svg @@ -0,0 +1 @@ +logo-on-dark-bg \ No newline at end of file diff --git a/test/cases/publicpath-auto-2/expected/same_root.svg b/test/cases/publicpath-auto-2/expected/same_root.svg new file mode 100644 index 00000000..5b3b22a4 --- /dev/null +++ b/test/cases/publicpath-auto-2/expected/same_root.svg @@ -0,0 +1 @@ +logo-on-dark-bg \ No newline at end of file diff --git a/test/cases/publicpath-auto-2/expected/styles/main.css b/test/cases/publicpath-auto-2/expected/styles/main.css new file mode 100644 index 00000000..ce980054 --- /dev/null +++ b/test/cases/publicpath-auto-2/expected/styles/main.css @@ -0,0 +1,20 @@ +.a { + background-image: url(../same_root.svg); +} + +.b { + background-image: url(../styles/same_dir.svg); +} + +.c { + background-image: url(../styles/nested/nested_dir.svg); +} + +.d { + background-image: url(../../outer.svg); +} + +.e { + background-image: url(../assets/img/react.svg); +} + diff --git a/test/cases/publicpath-auto-2/expected/styles/nested/nested_dir.svg b/test/cases/publicpath-auto-2/expected/styles/nested/nested_dir.svg new file mode 100644 index 00000000..5b3b22a4 --- /dev/null +++ b/test/cases/publicpath-auto-2/expected/styles/nested/nested_dir.svg @@ -0,0 +1 @@ +logo-on-dark-bg \ No newline at end of file diff --git a/test/cases/publicpath-auto-2/expected/styles/same_dir.svg b/test/cases/publicpath-auto-2/expected/styles/same_dir.svg new file mode 100644 index 00000000..5b3b22a4 --- /dev/null +++ b/test/cases/publicpath-auto-2/expected/styles/same_dir.svg @@ -0,0 +1 @@ +logo-on-dark-bg \ No newline at end of file diff --git a/test/cases/publicpath-auto-2/images/react.svg b/test/cases/publicpath-auto-2/images/react.svg new file mode 100644 index 00000000..5b3b22a4 --- /dev/null +++ b/test/cases/publicpath-auto-2/images/react.svg @@ -0,0 +1 @@ +logo-on-dark-bg \ No newline at end of file diff --git a/test/cases/publicpath-auto-2/index.js b/test/cases/publicpath-auto-2/index.js new file mode 100644 index 00000000..aa3357bf --- /dev/null +++ b/test/cases/publicpath-auto-2/index.js @@ -0,0 +1 @@ +import './style.css'; diff --git a/test/cases/publicpath-auto-2/nested_dir.svg b/test/cases/publicpath-auto-2/nested_dir.svg new file mode 100644 index 00000000..5b3b22a4 --- /dev/null +++ b/test/cases/publicpath-auto-2/nested_dir.svg @@ -0,0 +1 @@ +logo-on-dark-bg \ No newline at end of file diff --git a/test/cases/publicpath-auto-2/outer.svg b/test/cases/publicpath-auto-2/outer.svg new file mode 100644 index 00000000..5b3b22a4 --- /dev/null +++ b/test/cases/publicpath-auto-2/outer.svg @@ -0,0 +1 @@ +logo-on-dark-bg \ No newline at end of file diff --git a/test/cases/publicpath-auto-2/same_dir.svg b/test/cases/publicpath-auto-2/same_dir.svg new file mode 100644 index 00000000..5b3b22a4 --- /dev/null +++ b/test/cases/publicpath-auto-2/same_dir.svg @@ -0,0 +1 @@ +logo-on-dark-bg \ No newline at end of file diff --git a/test/cases/publicpath-auto-2/same_root.svg b/test/cases/publicpath-auto-2/same_root.svg new file mode 100644 index 00000000..5b3b22a4 --- /dev/null +++ b/test/cases/publicpath-auto-2/same_root.svg @@ -0,0 +1 @@ +logo-on-dark-bg \ No newline at end of file diff --git a/test/cases/publicpath-auto-2/style.css b/test/cases/publicpath-auto-2/style.css new file mode 100644 index 00000000..aacb0169 --- /dev/null +++ b/test/cases/publicpath-auto-2/style.css @@ -0,0 +1,19 @@ +.a { + background-image: url(./same_root.svg); +} + +.b { + background-image: url(./same_dir.svg); +} + +.c { + background-image: url(./nested_dir.svg); +} + +.d { + background-image: url(./outer.svg); +} + +.e { + background-image: url(./images/react.svg); +} diff --git a/test/cases/publicpath-auto-2/webpack.config.js b/test/cases/publicpath-auto-2/webpack.config.js new file mode 100644 index 00000000..5f11917b --- /dev/null +++ b/test/cases/publicpath-auto-2/webpack.config.js @@ -0,0 +1,51 @@ +import Self from '../../../src'; + +module.exports = { + entry: './index.js', + output: { + publicPath: 'auto', + }, + module: { + rules: [ + { + test: /\.css$/, + use: [ + { + loader: Self.loader, + }, + 'css-loader', + ], + }, + { + test: /outer\.(svg)$/, + type: 'asset/resource', + generator: { filename: '../[name][ext]' }, + }, + { + test: /same_root\.(svg)$/, + type: 'asset/resource', + generator: { filename: '[name][ext]' }, + }, + { + test: /same_dir\.(svg)$/, + type: 'asset/resource', + generator: { filename: 'styles/[name][ext]' }, + }, + { + test: /nested_dir\.(svg)$/, + type: 'asset/resource', + generator: { filename: 'styles/nested/[name][ext]' }, + }, + { + test: /react\.(svg)$/, + type: 'asset/resource', + generator: { filename: 'assets/img/[name][ext]' }, + }, + ], + }, + plugins: [ + new Self({ + filename: 'styles/[name].css', + }), + ], +}; diff --git a/test/cases/publicpath-auto-3/expected/assets/img/react.svg b/test/cases/publicpath-auto-3/expected/assets/img/react.svg new file mode 100644 index 00000000..5b3b22a4 --- /dev/null +++ b/test/cases/publicpath-auto-3/expected/assets/img/react.svg @@ -0,0 +1 @@ +logo-on-dark-bg \ No newline at end of file diff --git a/test/cases/publicpath-auto-3/expected/assets/img2.svg b/test/cases/publicpath-auto-3/expected/assets/img2.svg new file mode 100644 index 00000000..5b3b22a4 --- /dev/null +++ b/test/cases/publicpath-auto-3/expected/assets/img2.svg @@ -0,0 +1 @@ +logo-on-dark-bg \ No newline at end of file diff --git a/test/cases/publicpath-auto-3/expected/assets/nested/img3.svg b/test/cases/publicpath-auto-3/expected/assets/nested/img3.svg new file mode 100644 index 00000000..5b3b22a4 --- /dev/null +++ b/test/cases/publicpath-auto-3/expected/assets/nested/img3.svg @@ -0,0 +1 @@ +logo-on-dark-bg \ No newline at end of file diff --git a/test/cases/publicpath-auto-3/expected/img1.svg b/test/cases/publicpath-auto-3/expected/img1.svg new file mode 100644 index 00000000..5b3b22a4 --- /dev/null +++ b/test/cases/publicpath-auto-3/expected/img1.svg @@ -0,0 +1 @@ +logo-on-dark-bg \ No newline at end of file diff --git a/test/cases/publicpath-auto-3/expected/img4.svg b/test/cases/publicpath-auto-3/expected/img4.svg new file mode 100644 index 00000000..5b3b22a4 --- /dev/null +++ b/test/cases/publicpath-auto-3/expected/img4.svg @@ -0,0 +1 @@ +logo-on-dark-bg \ No newline at end of file diff --git a/test/cases/publicpath-auto-3/expected/main.css b/test/cases/publicpath-auto-3/expected/main.css new file mode 100644 index 00000000..a0162fed --- /dev/null +++ b/test/cases/publicpath-auto-3/expected/main.css @@ -0,0 +1,24 @@ +.a { + background-image: url(img1.svg); +} + +.b { + background-image: url(assets/img2.svg); +} + +.c { + background-image: url(assets/nested/img3.svg); +} + +.d { + background-image: url(img4.svg); +} + +.e { + background-image: url(assets/img/react.svg); +} + +.f { + background-image: url(../outer.svg); +} + diff --git a/test/cases/publicpath-auto-3/images/react.svg b/test/cases/publicpath-auto-3/images/react.svg new file mode 100644 index 00000000..5b3b22a4 --- /dev/null +++ b/test/cases/publicpath-auto-3/images/react.svg @@ -0,0 +1 @@ +logo-on-dark-bg \ No newline at end of file diff --git a/test/cases/publicpath-auto-3/img2.svg b/test/cases/publicpath-auto-3/img2.svg new file mode 100644 index 00000000..5b3b22a4 --- /dev/null +++ b/test/cases/publicpath-auto-3/img2.svg @@ -0,0 +1 @@ +logo-on-dark-bg \ No newline at end of file diff --git a/test/cases/publicpath-auto-3/img3.svg b/test/cases/publicpath-auto-3/img3.svg new file mode 100644 index 00000000..5b3b22a4 --- /dev/null +++ b/test/cases/publicpath-auto-3/img3.svg @@ -0,0 +1 @@ +logo-on-dark-bg \ No newline at end of file diff --git a/test/cases/publicpath-auto-3/index.js b/test/cases/publicpath-auto-3/index.js new file mode 100644 index 00000000..cfc06994 --- /dev/null +++ b/test/cases/publicpath-auto-3/index.js @@ -0,0 +1 @@ +import './src/styles/style.css'; diff --git a/test/cases/publicpath-auto-3/outer.svg b/test/cases/publicpath-auto-3/outer.svg new file mode 100644 index 00000000..5b3b22a4 --- /dev/null +++ b/test/cases/publicpath-auto-3/outer.svg @@ -0,0 +1 @@ +logo-on-dark-bg \ No newline at end of file diff --git a/test/cases/publicpath-auto-3/src/styles/img/img4.svg b/test/cases/publicpath-auto-3/src/styles/img/img4.svg new file mode 100644 index 00000000..5b3b22a4 --- /dev/null +++ b/test/cases/publicpath-auto-3/src/styles/img/img4.svg @@ -0,0 +1 @@ +logo-on-dark-bg \ No newline at end of file diff --git a/test/cases/publicpath-auto-3/src/styles/img1.svg b/test/cases/publicpath-auto-3/src/styles/img1.svg new file mode 100644 index 00000000..5b3b22a4 --- /dev/null +++ b/test/cases/publicpath-auto-3/src/styles/img1.svg @@ -0,0 +1 @@ +logo-on-dark-bg \ No newline at end of file diff --git a/test/cases/publicpath-auto-3/src/styles/style.css b/test/cases/publicpath-auto-3/src/styles/style.css new file mode 100644 index 00000000..783b19f7 --- /dev/null +++ b/test/cases/publicpath-auto-3/src/styles/style.css @@ -0,0 +1,23 @@ +.a { + background-image: url(img1.svg); +} + +.b { + background-image: url(../../img2.svg); +} + +.c { + background-image: url(../../img3.svg); +} + +.d { + background-image: url(img/img4.svg); +} + +.e { + background-image: url(../../images/react.svg); +} + +.f { + background-image: url(../../outer.svg); +} diff --git a/test/cases/publicpath-auto-3/webpack.config.js b/test/cases/publicpath-auto-3/webpack.config.js new file mode 100644 index 00000000..1926f6ef --- /dev/null +++ b/test/cases/publicpath-auto-3/webpack.config.js @@ -0,0 +1,56 @@ +import Self from '../../../src'; + +module.exports = { + entry: './index.js', + module: { + rules: [ + { + test: /\.css$/, + use: [ + { + loader: Self.loader, + options: { + publicPath: 'auto', + }, + }, + 'css-loader', + ], + }, + { + test: /outer\.(svg)$/, + type: 'asset/resource', + generator: { filename: '../[name][ext]' }, + }, + { + test: /img1\.(svg)$/, + type: 'asset/resource', + generator: { filename: '[name][ext]' }, + }, + { + test: /img2\.(svg)$/, + type: 'asset/resource', + generator: { filename: 'assets/[name][ext]' }, + }, + { + test: /img3\.(svg)$/, + type: 'asset/resource', + generator: { filename: 'assets/nested/[name][ext]' }, + }, + { + test: /img4\.(svg)$/, + type: 'asset/resource', + generator: { filename: '[name][ext]' }, + }, + { + test: /react\.(svg)$/, + type: 'asset/resource', + generator: { filename: 'assets/img/[name][ext]' }, + }, + ], + }, + plugins: [ + new Self({ + filename: '[name].css', + }), + ], +}; diff --git a/test/cases/publicpath-auto/expected/assets/react.svg b/test/cases/publicpath-auto/expected/assets/react.svg new file mode 100644 index 00000000..5b3b22a4 --- /dev/null +++ b/test/cases/publicpath-auto/expected/assets/react.svg @@ -0,0 +1 @@ +logo-on-dark-bg \ No newline at end of file diff --git a/test/cases/publicpath-auto/expected/styles/acd3bf0b9406dcf364d6/main.css b/test/cases/publicpath-auto/expected/styles/acd3bf0b9406dcf364d6/main.css new file mode 100644 index 00000000..6b63f890 --- /dev/null +++ b/test/cases/publicpath-auto/expected/styles/acd3bf0b9406dcf364d6/main.css @@ -0,0 +1,5 @@ +body { + background: red; + background-image: url(../../assets/react.svg); +} + diff --git a/test/cases/publicpath-auto/index.js b/test/cases/publicpath-auto/index.js new file mode 100644 index 00000000..aa3357bf --- /dev/null +++ b/test/cases/publicpath-auto/index.js @@ -0,0 +1 @@ +import './style.css'; diff --git a/test/cases/publicpath-auto/react.svg b/test/cases/publicpath-auto/react.svg new file mode 100644 index 00000000..5b3b22a4 --- /dev/null +++ b/test/cases/publicpath-auto/react.svg @@ -0,0 +1 @@ +logo-on-dark-bg \ No newline at end of file diff --git a/test/cases/publicpath-auto/style.css b/test/cases/publicpath-auto/style.css new file mode 100644 index 00000000..52c2b3e4 --- /dev/null +++ b/test/cases/publicpath-auto/style.css @@ -0,0 +1,4 @@ +body { + background: red; + background-image: url(./react.svg); +} diff --git a/test/cases/publicpath-auto/webpack.config.js b/test/cases/publicpath-auto/webpack.config.js new file mode 100644 index 00000000..e1d69512 --- /dev/null +++ b/test/cases/publicpath-auto/webpack.config.js @@ -0,0 +1,31 @@ +import Self from '../../../src'; + +module.exports = { + entry: './index.js', + module: { + rules: [ + { + test: /\.css$/, + use: [ + { + loader: Self.loader, + options: { + publicPath: 'auto', + }, + }, + 'css-loader', + ], + }, + { + test: /\.(svg|png)$/, + type: 'asset/resource', + generator: { filename: 'assets/[name][ext]' }, + }, + ], + }, + plugins: [ + new Self({ + filename: 'styles/[contenthash]/[name].css', + }), + ], +}; diff --git a/test/cases/publicpath-trailing-slash/expected/main.css b/test/cases/publicpath-trailing-slash/expected/main.css deleted file mode 100644 index 6d14c42a..00000000 --- a/test/cases/publicpath-trailing-slash/expected/main.css +++ /dev/null @@ -1,5 +0,0 @@ -body { - background: red; - background-image: url(/static/img/c9e192c015437a21dea1faa1d30f4941.svg); -} - diff --git a/test/cases/runtime/expected/webpack-4/main.45423f56597309256073.css b/test/cases/runtime/expected/webpack-4/main.45423f56597309256073.css deleted file mode 100644 index cebc5c1c..00000000 --- a/test/cases/runtime/expected/webpack-4/main.45423f56597309256073.css +++ /dev/null @@ -1,4 +0,0 @@ -body { - background: red; -} - diff --git a/test/cases/runtime/expected/webpack-4/runtime~main.js b/test/cases/runtime/expected/webpack-4/runtime~main.js deleted file mode 100644 index 27b6ee56..00000000 --- a/test/cases/runtime/expected/webpack-4/runtime~main.js +++ /dev/null @@ -1,223 +0,0 @@ -/******/ (function(modules) { // webpackBootstrap -/******/ // install a JSONP callback for chunk loading -/******/ function webpackJsonpCallback(data) { -/******/ var chunkIds = data[0]; -/******/ var moreModules = data[1]; -/******/ var executeModules = data[2]; -/******/ -/******/ // add "moreModules" to the modules object, -/******/ // then flag all "chunkIds" as loaded and fire callback -/******/ var moduleId, chunkId, i = 0, resolves = []; -/******/ for(;i < chunkIds.length; i++) { -/******/ chunkId = chunkIds[i]; -/******/ if(Object.prototype.hasOwnProperty.call(installedChunks, chunkId) && installedChunks[chunkId]) { -/******/ resolves.push(installedChunks[chunkId][0]); -/******/ } -/******/ installedChunks[chunkId] = 0; -/******/ } -/******/ for(moduleId in moreModules) { -/******/ if(Object.prototype.hasOwnProperty.call(moreModules, moduleId)) { -/******/ modules[moduleId] = moreModules[moduleId]; -/******/ } -/******/ } -/******/ if(parentJsonpFunction) parentJsonpFunction(data); -/******/ -/******/ while(resolves.length) { -/******/ resolves.shift()(); -/******/ } -/******/ -/******/ // add entry modules from loaded chunk to deferred list -/******/ deferredModules.push.apply(deferredModules, executeModules || []); -/******/ -/******/ // run deferred modules when all chunks ready -/******/ return checkDeferredModules(); -/******/ }; -/******/ function checkDeferredModules() { -/******/ var result; -/******/ for(var i = 0; i < deferredModules.length; i++) { -/******/ var deferredModule = deferredModules[i]; -/******/ var fulfilled = true; -/******/ for(var j = 1; j < deferredModule.length; j++) { -/******/ var depId = deferredModule[j]; -/******/ if(installedChunks[depId] !== 0) fulfilled = false; -/******/ } -/******/ if(fulfilled) { -/******/ deferredModules.splice(i--, 1); -/******/ result = __webpack_require__(__webpack_require__.s = deferredModule[0]); -/******/ } -/******/ } -/******/ -/******/ return result; -/******/ } -/******/ -/******/ // The module cache -/******/ var installedModules = {}; -/******/ -/******/ // object to store loaded and loading chunks -/******/ // undefined = chunk not loaded, null = chunk preloaded/prefetched -/******/ // Promise = chunk loading, 0 = chunk loaded -/******/ var installedChunks = { -/******/ 0: 0 -/******/ }; -/******/ -/******/ var deferredModules = []; -/******/ -/******/ // script path function -/******/ function jsonpScriptSrc(chunkId) { -/******/ return __webpack_require__.p + "" + ({}[chunkId]||chunkId) + ".js" -/******/ } -/******/ -/******/ // The require function -/******/ function __webpack_require__(moduleId) { -/******/ -/******/ // Check if module is in cache -/******/ if(installedModules[moduleId]) { -/******/ return installedModules[moduleId].exports; -/******/ } -/******/ // Create a new module (and put it into the cache) -/******/ var module = installedModules[moduleId] = { -/******/ i: moduleId, -/******/ l: false, -/******/ exports: {} -/******/ }; -/******/ -/******/ // Execute the module function -/******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__); -/******/ -/******/ // Flag the module as loaded -/******/ module.l = true; -/******/ -/******/ // Return the exports of the module -/******/ return module.exports; -/******/ } -/******/ -/******/ // This file contains only the entry chunk. -/******/ // The chunk loading function for additional chunks -/******/ __webpack_require__.e = function requireEnsure(chunkId) { -/******/ var promises = []; -/******/ -/******/ -/******/ // JSONP chunk loading for javascript -/******/ -/******/ var installedChunkData = installedChunks[chunkId]; -/******/ if(installedChunkData !== 0) { // 0 means "already installed". -/******/ -/******/ // a Promise means "currently loading". -/******/ if(installedChunkData) { -/******/ promises.push(installedChunkData[2]); -/******/ } else { -/******/ // setup Promise in chunk cache -/******/ var promise = new Promise(function(resolve, reject) { -/******/ installedChunkData = installedChunks[chunkId] = [resolve, reject]; -/******/ }); -/******/ promises.push(installedChunkData[2] = promise); -/******/ -/******/ // start chunk loading -/******/ var script = document.createElement('script'); -/******/ var onScriptComplete; -/******/ -/******/ script.charset = 'utf-8'; -/******/ script.timeout = 120; -/******/ if (__webpack_require__.nc) { -/******/ script.setAttribute("nonce", __webpack_require__.nc); -/******/ } -/******/ script.src = jsonpScriptSrc(chunkId); -/******/ -/******/ // create error before stack unwound to get useful stacktrace later -/******/ var error = new Error(); -/******/ onScriptComplete = function (event) { -/******/ // avoid mem leaks in IE. -/******/ script.onerror = script.onload = null; -/******/ clearTimeout(timeout); -/******/ var chunk = installedChunks[chunkId]; -/******/ if(chunk !== 0) { -/******/ if(chunk) { -/******/ var errorType = event && (event.type === 'load' ? 'missing' : event.type); -/******/ var realSrc = event && event.target && event.target.src; -/******/ error.message = 'Loading chunk ' + chunkId + ' failed.\n(' + errorType + ': ' + realSrc + ')'; -/******/ error.name = 'ChunkLoadError'; -/******/ error.type = errorType; -/******/ error.request = realSrc; -/******/ chunk[1](error); -/******/ } -/******/ installedChunks[chunkId] = undefined; -/******/ } -/******/ }; -/******/ var timeout = setTimeout(function(){ -/******/ onScriptComplete({ type: 'timeout', target: script }); -/******/ }, 120000); -/******/ script.onerror = script.onload = onScriptComplete; -/******/ document.head.appendChild(script); -/******/ } -/******/ } -/******/ return Promise.all(promises); -/******/ }; -/******/ -/******/ // expose the modules object (__webpack_modules__) -/******/ __webpack_require__.m = modules; -/******/ -/******/ // expose the module cache -/******/ __webpack_require__.c = installedModules; -/******/ -/******/ // define getter function for harmony exports -/******/ __webpack_require__.d = function(exports, name, getter) { -/******/ if(!__webpack_require__.o(exports, name)) { -/******/ Object.defineProperty(exports, name, { enumerable: true, get: getter }); -/******/ } -/******/ }; -/******/ -/******/ // define __esModule on exports -/******/ __webpack_require__.r = function(exports) { -/******/ if(typeof Symbol !== 'undefined' && Symbol.toStringTag) { -/******/ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' }); -/******/ } -/******/ Object.defineProperty(exports, '__esModule', { value: true }); -/******/ }; -/******/ -/******/ // create a fake namespace object -/******/ // mode & 1: value is a module id, require it -/******/ // mode & 2: merge all properties of value into the ns -/******/ // mode & 4: return value when already ns object -/******/ // mode & 8|1: behave like require -/******/ __webpack_require__.t = function(value, mode) { -/******/ if(mode & 1) value = __webpack_require__(value); -/******/ if(mode & 8) return value; -/******/ if((mode & 4) && typeof value === 'object' && value && value.__esModule) return value; -/******/ var ns = Object.create(null); -/******/ __webpack_require__.r(ns); -/******/ Object.defineProperty(ns, 'default', { enumerable: true, value: value }); -/******/ if(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key)); -/******/ return ns; -/******/ }; -/******/ -/******/ // getDefaultExport function for compatibility with non-harmony modules -/******/ __webpack_require__.n = function(module) { -/******/ var getter = module && module.__esModule ? -/******/ function getDefault() { return module['default']; } : -/******/ function getModuleExports() { return module; }; -/******/ __webpack_require__.d(getter, 'a', getter); -/******/ return getter; -/******/ }; -/******/ -/******/ // Object.prototype.hasOwnProperty.call -/******/ __webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); }; -/******/ -/******/ // __webpack_public_path__ -/******/ __webpack_require__.p = ""; -/******/ -/******/ // on error function for async loading -/******/ __webpack_require__.oe = function(err) { console.error(err); throw err; }; -/******/ -/******/ var jsonpArray = window["webpackJsonp"] = window["webpackJsonp"] || []; -/******/ var oldJsonpFunction = jsonpArray.push.bind(jsonpArray); -/******/ jsonpArray.push = webpackJsonpCallback; -/******/ jsonpArray = jsonpArray.slice(); -/******/ for(var i = 0; i < jsonpArray.length; i++) webpackJsonpCallback(jsonpArray[i]); -/******/ var parentJsonpFunction = oldJsonpFunction; -/******/ -/******/ -/******/ // run deferred modules from other chunks -/******/ checkDeferredModules(); -/******/ }) -/************************************************************************/ -/******/ ([]); \ No newline at end of file diff --git a/test/cases/split-chunks-all/expected/webpack-4/styles~a~b.css b/test/cases/split-chunks-all/expected/webpack-4/styles~a~b.css deleted file mode 100644 index cebc5c1c..00000000 --- a/test/cases/split-chunks-all/expected/webpack-4/styles~a~b.css +++ /dev/null @@ -1,4 +0,0 @@ -body { - background: red; -} - diff --git a/test/cases/split-chunks-all/webpack.config.js b/test/cases/split-chunks-all/webpack.config.js index e9edc39b..e19df414 100644 --- a/test/cases/split-chunks-all/webpack.config.js +++ b/test/cases/split-chunks-all/webpack.config.js @@ -1,5 +1,3 @@ -import webpack from 'webpack'; - import Self from '../../../src'; module.exports = { @@ -18,17 +16,11 @@ module.exports = { optimization: { splitChunks: { cacheGroups: { - styles: - webpack.version[0] === '4' - ? { - chunks: 'all', - enforce: true, - } - : { - type: 'css/mini-extract', - chunks: 'all', - enforce: true, - }, + styles: { + type: 'css/mini-extract', + chunks: 'all', + enforce: true, + }, }, }, }, diff --git a/test/emit-option.test.js b/test/emit-option.test.js index 6015dbbb..2ecd8f84 100644 --- a/test/emit-option.test.js +++ b/test/emit-option.test.js @@ -172,212 +172,204 @@ describe('emit option', () => { } } - if (webpack.version[0] !== '4') { - const outputPath = path.resolve(__dirname, './js/cache-memory'); - const webpackConfig = { - mode: 'development', - context: path.resolve(__dirname, './fixtures'), - cache: { - type: 'memory', - }, - entry: './locals.js', - output: { - publicPath: '', - path: outputPath, - }, - module: { - rules: [ - { - test: /\.css$/, - use: [ - { - loader: MiniCssExtractPlugin.loader, - options: { - emit: false, - }, + const outputPath = path.resolve(__dirname, './js/cache-memory'); + const webpackConfig = { + mode: 'development', + context: path.resolve(__dirname, './fixtures'), + cache: { + type: 'memory', + }, + entry: './locals.js', + output: { + publicPath: '', + path: outputPath, + }, + module: { + rules: [ + { + test: /\.css$/, + use: [ + { + loader: MiniCssExtractPlugin.loader, + options: { + emit: false, }, - { - loader: 'css-loader', - options: { - modules: true, - }, + }, + { + loader: 'css-loader', + options: { + modules: true, }, - ], - }, - ], - }, - plugins: [ - new MiniCssExtractPlugin({ - filename: '[name].css', - }), - new AssetsModifyPlugin({ - file: modifyAsset, - }), + }, + ], + }, ], - }; - - await del([outputPath]); - - const compiler1 = webpack(webpackConfig); - - await new Promise((resolve, reject) => { - compiler1.run((error, stats) => { - if (error) { - reject(error); - - return; - } - - compiler1.close(() => { - expect( - Object.keys(stats.compilation.assets).sort() - ).toMatchSnapshot(`assets`); - expect( - Array.from(stats.compilation.emittedAssets).sort() - ).toMatchSnapshot(`emittedAssets`); - runInJsDom('main.js', compiler1, stats, (dom) => { - expect(dom.serialize()).toMatchSnapshot('DOM'); - }); - expect(getWarnings(stats)).toMatchSnapshot('warnings'); - expect(getErrors(stats)).toMatchSnapshot('errors'); - - resolve(); + }, + plugins: [ + new MiniCssExtractPlugin({ + filename: '[name].css', + }), + new AssetsModifyPlugin({ + file: modifyAsset, + }), + ], + }; + + await del([outputPath]); + + const compiler1 = webpack(webpackConfig); + + await new Promise((resolve, reject) => { + compiler1.run((error, stats) => { + if (error) { + reject(error); + + return; + } + + compiler1.close(() => { + expect(Object.keys(stats.compilation.assets).sort()).toMatchSnapshot( + `assets` + ); + expect( + Array.from(stats.compilation.emittedAssets).sort() + ).toMatchSnapshot(`emittedAssets`); + runInJsDom('main.js', compiler1, stats, (dom) => { + expect(dom.serialize()).toMatchSnapshot('DOM'); }); + expect(getWarnings(stats)).toMatchSnapshot('warnings'); + expect(getErrors(stats)).toMatchSnapshot('errors'); + + resolve(); }); }); + }); - const compiler2 = webpack(webpackConfig); - - await new Promise((resolve, reject) => { - compiler2.run((error, stats) => { - if (error) { - reject(error); - - return; - } - - compiler2.close(() => { - expect( - Object.keys(stats.compilation.assets).sort() - ).toMatchSnapshot(`assets`); - expect( - Array.from(stats.compilation.emittedAssets).sort() - ).toMatchSnapshot(`emittedAssets`); - runInJsDom('main.js', compiler2, stats, (dom) => { - expect(dom.serialize()).toMatchSnapshot('DOM'); - }); - expect(getWarnings(stats)).toMatchSnapshot('warnings'); - expect(getErrors(stats)).toMatchSnapshot('errors'); - - resolve(); + const compiler2 = webpack(webpackConfig); + + await new Promise((resolve, reject) => { + compiler2.run((error, stats) => { + if (error) { + reject(error); + + return; + } + + compiler2.close(() => { + expect(Object.keys(stats.compilation.assets).sort()).toMatchSnapshot( + `assets` + ); + expect( + Array.from(stats.compilation.emittedAssets).sort() + ).toMatchSnapshot(`emittedAssets`); + runInJsDom('main.js', compiler2, stats, (dom) => { + expect(dom.serialize()).toMatchSnapshot('DOM'); }); + expect(getWarnings(stats)).toMatchSnapshot('warnings'); + expect(getErrors(stats)).toMatchSnapshot('errors'); + + resolve(); }); }); + }); - fs.writeFileSync(modifyAsset, modifyAssetContent); - } else { - expect(true).toBe(true); - } + fs.writeFileSync(modifyAsset, modifyAssetContent); }); it('should work with the "memory" cache and disabled "emit" option', async () => { - if (webpack.version[0] !== '4') { - const outputPath = path.resolve(__dirname, './js/cache-memory'); - const webpackConfig = { - mode: 'development', - context: path.resolve(__dirname, 'fixtures'), - cache: { - type: 'memory', - }, - output: { - path: outputPath, - }, - entry: './style-url.js', - module: { - rules: [ - { - test: /\.css$/, - use: [ - { - loader: MiniCssExtractPlugin.loader, - options: { - publicPath: '', - emit: false, - }, + const outputPath = path.resolve(__dirname, './js/cache-memory'); + const webpackConfig = { + mode: 'development', + context: path.resolve(__dirname, 'fixtures'), + cache: { + type: 'memory', + }, + output: { + path: outputPath, + }, + entry: './style-url.js', + module: { + rules: [ + { + test: /\.css$/, + use: [ + { + loader: MiniCssExtractPlugin.loader, + options: { + publicPath: '', + emit: false, }, - 'css-loader', - ], - }, - { - test: /\.svg$/, - type: 'asset/resource', - generator: { - filename: 'static/[name][ext][query]', }, + 'css-loader', + ], + }, + { + test: /\.svg$/, + type: 'asset/resource', + generator: { + filename: 'static/[name][ext][query]', }, - ], - }, - plugins: [ - new MiniCssExtractPlugin({ - filename: '[name].css', - }), + }, ], - }; - - await del([outputPath]); - - const compiler1 = webpack(webpackConfig); - - await new Promise((resolve, reject) => { - compiler1.run((error, stats) => { - if (error) { - reject(error); - - return; - } - - compiler1.close(() => { - expect( - Object.keys(stats.compilation.assets).sort() - ).toMatchSnapshot(`assets`); - expect( - Array.from(stats.compilation.emittedAssets).sort() - ).toMatchSnapshot(`emittedAssets`); - expect(getWarnings(stats)).toMatchSnapshot('warnings'); - expect(getErrors(stats)).toMatchSnapshot('errors'); - - resolve(); - }); + }, + plugins: [ + new MiniCssExtractPlugin({ + filename: '[name].css', + }), + ], + }; + + await del([outputPath]); + + const compiler1 = webpack(webpackConfig); + + await new Promise((resolve, reject) => { + compiler1.run((error, stats) => { + if (error) { + reject(error); + + return; + } + + compiler1.close(() => { + expect(Object.keys(stats.compilation.assets).sort()).toMatchSnapshot( + `assets` + ); + expect( + Array.from(stats.compilation.emittedAssets).sort() + ).toMatchSnapshot(`emittedAssets`); + expect(getWarnings(stats)).toMatchSnapshot('warnings'); + expect(getErrors(stats)).toMatchSnapshot('errors'); + + resolve(); }); }); + }); - const compiler2 = webpack(webpackConfig); + const compiler2 = webpack(webpackConfig); - await new Promise((resolve, reject) => { - compiler2.run((error, stats) => { - if (error) { - reject(error); + await new Promise((resolve, reject) => { + compiler2.run((error, stats) => { + if (error) { + reject(error); - return; - } + return; + } - compiler2.close(() => { - expect( - Object.keys(stats.compilation.assets).sort() - ).toMatchSnapshot(`assets`); - expect( - Array.from(stats.compilation.emittedAssets).sort() - ).toMatchSnapshot(`emittedAssets`); - expect(getWarnings(stats)).toMatchSnapshot('warnings'); - expect(getErrors(stats)).toMatchSnapshot('errors'); - - resolve(); - }); + compiler2.close(() => { + expect(Object.keys(stats.compilation.assets).sort()).toMatchSnapshot( + `assets` + ); + expect( + Array.from(stats.compilation.emittedAssets).sort() + ).toMatchSnapshot(`emittedAssets`); + expect(getWarnings(stats)).toMatchSnapshot('warnings'); + expect(getErrors(stats)).toMatchSnapshot('errors'); + + resolve(); }); }); - } else { - expect(true).toBe(true); - } + }); }); it('should invalidate the cache with disabled "emit" option', async () => { @@ -398,109 +390,105 @@ describe('emit option', () => { } } - if (webpack.version[0] !== '4') { - const outputPath = path.resolve(__dirname, './js/cache-memory'); - const modifyAsset = path.resolve(__dirname, 'fixtures', 'style-url.css'); - const modifyAssetContent = fs.readFileSync(modifyAsset); - const webpackConfig = { - mode: 'development', - context: path.resolve(__dirname, 'fixtures'), - cache: { - type: 'memory', - }, - output: { - path: outputPath, - }, - entry: './style-url.js', - module: { - rules: [ - { - test: /\.css$/, - use: [ - { - loader: MiniCssExtractPlugin.loader, - options: { - publicPath: '', - emit: false, - }, + const outputPath = path.resolve(__dirname, './js/cache-memory'); + const modifyAsset = path.resolve(__dirname, 'fixtures', 'style-url.css'); + const modifyAssetContent = fs.readFileSync(modifyAsset); + const webpackConfig = { + mode: 'development', + context: path.resolve(__dirname, 'fixtures'), + cache: { + type: 'memory', + }, + output: { + path: outputPath, + }, + entry: './style-url.js', + module: { + rules: [ + { + test: /\.css$/, + use: [ + { + loader: MiniCssExtractPlugin.loader, + options: { + publicPath: '', + emit: false, }, - 'css-loader', - ], - }, - { - test: /\.svg$/, - type: 'asset/resource', - generator: { - filename: 'static/[name][ext][query]', }, + 'css-loader', + ], + }, + { + test: /\.svg$/, + type: 'asset/resource', + generator: { + filename: 'static/[name][ext][query]', }, - ], - }, - plugins: [ - new MiniCssExtractPlugin({ - filename: '[name].css', - }), - new AssetsModifyPlugin({ - file: modifyAsset, - }), + }, ], - }; - - await del([outputPath]); - - const compiler1 = webpack(webpackConfig); - - await new Promise((resolve, reject) => { - compiler1.run((error, stats) => { - if (error) { - reject(error); - - return; - } - - compiler1.close(() => { - expect( - Object.keys(stats.compilation.assets).sort() - ).toMatchSnapshot(`assets`); - expect( - Array.from(stats.compilation.emittedAssets).sort() - ).toMatchSnapshot(`emittedAssets`); - expect(getWarnings(stats)).toMatchSnapshot('warnings'); - expect(getErrors(stats)).toMatchSnapshot('errors'); - - resolve(); - }); + }, + plugins: [ + new MiniCssExtractPlugin({ + filename: '[name].css', + }), + new AssetsModifyPlugin({ + file: modifyAsset, + }), + ], + }; + + await del([outputPath]); + + const compiler1 = webpack(webpackConfig); + + await new Promise((resolve, reject) => { + compiler1.run((error, stats) => { + if (error) { + reject(error); + + return; + } + + compiler1.close(() => { + expect(Object.keys(stats.compilation.assets).sort()).toMatchSnapshot( + `assets` + ); + expect( + Array.from(stats.compilation.emittedAssets).sort() + ).toMatchSnapshot(`emittedAssets`); + expect(getWarnings(stats)).toMatchSnapshot('warnings'); + expect(getErrors(stats)).toMatchSnapshot('errors'); + + resolve(); }); }); + }); - const compiler2 = webpack(webpackConfig); + const compiler2 = webpack(webpackConfig); - await new Promise((resolve, reject) => { - compiler2.run((error, stats) => { - if (error) { - reject(error); + await new Promise((resolve, reject) => { + compiler2.run((error, stats) => { + if (error) { + reject(error); - return; - } + return; + } - compiler2.close(() => { - expect( - Object.keys(stats.compilation.assets).sort() - ).toMatchSnapshot(`assets`); - expect( - Array.from(stats.compilation.emittedAssets).sort() - ).toMatchSnapshot(`emittedAssets`); - expect(getWarnings(stats)).toMatchSnapshot('warnings'); - expect(getErrors(stats)).toMatchSnapshot('errors'); - - resolve(); - }); + compiler2.close(() => { + expect(Object.keys(stats.compilation.assets).sort()).toMatchSnapshot( + `assets` + ); + expect( + Array.from(stats.compilation.emittedAssets).sort() + ).toMatchSnapshot(`emittedAssets`); + expect(getWarnings(stats)).toMatchSnapshot('warnings'); + expect(getErrors(stats)).toMatchSnapshot('errors'); + + resolve(); }); }); + }); - fs.writeFileSync(modifyAsset, modifyAssetContent); - } else { - expect(true).toBe(true); - } + fs.writeFileSync(modifyAsset, modifyAssetContent); }); }); diff --git a/test/enforce-esm.test.js b/test/enforce-esm.test.js index 03de4d19..86b54af1 100644 --- a/test/enforce-esm.test.js +++ b/test/enforce-esm.test.js @@ -1,9 +1,5 @@ -import webpack from 'webpack'; - import { getCompiler, source, compile } from './helpers'; -const isWebpack4 = webpack.version[0] === '4'; - it('should enforce esm for empty module without options.esModule', async () => { expect.assertions(3); @@ -20,7 +16,7 @@ it('should enforce esm for empty module without options.esModule', async () => { const { modules } = stats.toJson({ all: false, modules: true }); expect( modules.filter((m) => m.moduleType !== 'runtime' && !m.orphan).length - ).toBe(isWebpack4 ? 1 : 2); + ).toBe(2); expect(source('./simple.css', stats)).toMatchInlineSnapshot(` "// extracted by mini-css-extract-plugin export {};" @@ -43,7 +39,7 @@ it('should enforce esm for empty module with options.esModule', async () => { const { modules } = stats.toJson({ all: false, modules: true }); expect( modules.filter((m) => m.moduleType !== 'runtime' && !m.orphan).length - ).toBe(isWebpack4 ? 1 : 2); + ).toBe(2); expect(source('./simple.css', stats)).toMatchInlineSnapshot(` "// extracted by mini-css-extract-plugin export {};" diff --git a/test/helpers/getCompiler.js b/test/helpers/getCompiler.js index 0b4b03df..257a80f9 100644 --- a/test/helpers/getCompiler.js +++ b/test/helpers/getCompiler.js @@ -32,29 +32,13 @@ export default (fixture, loaderOptions = {}, config = {}) => { }, ], }, - ].concat( - webpack.version[0] !== '4' - ? { - test: /\.svg$/, - type: 'asset/resource', - generator: { - filename: '[name][ext]', - }, - } - : [ - { - test: /\.svg$/i, - rules: [ - { - loader: 'file-loader', - options: { - name: '[name].[ext]', - }, - }, - ], - }, - ] - ), + ].concat({ + test: /\.svg$/, + type: 'asset/resource', + generator: { + filename: '[name][ext]', + }, + }), }, plugins: [ new MiniCssExtractPlugin({ @@ -70,11 +54,7 @@ export default (fixture, loaderOptions = {}, config = {}) => { const compiler = webpack(fullConfig); if (!outputFileSystem) { - const outputFS = createFsFromVolume(new Volume()); - // Todo remove when we drop webpack@4 support - outputFS.join = path.join.bind(path); - - compiler.outputFileSystem = outputFS; + compiler.outputFileSystem = createFsFromVolume(new Volume()); } else { compiler.outputFileSystem = outputFileSystem; } diff --git a/test/helpers/snapshotResolver.js b/test/helpers/snapshotResolver.js deleted file mode 100644 index bb368528..00000000 --- a/test/helpers/snapshotResolver.js +++ /dev/null @@ -1,34 +0,0 @@ -const path = require('path'); - -const webpack = require('webpack'); - -// eslint-disable-next-line global-require -const [webpackVersion] = webpack.version; -const snapshotExtension = `.snap.webpack${webpackVersion}`; - -// eslint-disable-next-line no-console -console.log( - 'Current webpack version:', - webpackVersion, - process.env.EXPERIMENTAL_USE_IMPORT_MODULE - ? '(experimental use importModule)' - : '' -); - -module.exports = { - resolveSnapshotPath: (testPath) => - path.join( - path.dirname(testPath), - '__snapshots__', - `${path.basename(testPath)}${snapshotExtension}` - ), - resolveTestPath: (snapshotPath) => - snapshotPath - .replace(`${path.sep}__snapshots__`, '') - .slice(0, -snapshotExtension.length), - testPathForConsistencyCheck: path.join( - 'consistency_check', - '__tests__', - 'example.test.js' - ), -}; diff --git a/test/validate-loader-options.test.js b/test/validate-loader-options.test.js index 14cfeda1..92646efb 100644 --- a/test/validate-loader-options.test.js +++ b/test/validate-loader-options.test.js @@ -10,10 +10,6 @@ describe('validate options', () => { success: [true, false], failure: [1], }, - modules: { - success: [{ namedExport: true }, { namedExport: false }], - failure: ['true', { namedExport: 'false' }], - }, unknown: { success: [], failure: [1, true, false, 'test', /test/, [], {}, { foo: 'bar' }], diff --git a/test/validate-plugin-options.test.js b/test/validate-plugin-options.test.js index 0638f4a8..bc4890ec 100644 --- a/test/validate-plugin-options.test.js +++ b/test/validate-plugin-options.test.js @@ -1,5 +1,3 @@ -import { version as webpackVersion } from 'webpack'; - import MiniCssExtractPlugin from '../src'; describe('validate options', () => { @@ -12,12 +10,7 @@ describe('validate options', () => { failure: [true], }, chunkFilename: { - success: [ - '[id].css', - webpackVersion[0] === '4' - ? '[id].[name].css' - : ({ chunk }) => `${chunk.id}.${chunk.name}.css`, - ], + success: ['[id].css', ({ chunk }) => `${chunk.id}.${chunk.name}.css`], failure: [true], }, ignoreOrder: { From 935add45621394fdd2cf3d7b60a304ae428ca38a Mon Sep 17 00:00:00 2001 From: Alexander Akait <4567934+alexander-akait@users.noreply.github.com> Date: Wed, 30 Jun 2021 19:27:45 +0300 Subject: [PATCH 22/30] refactor: reduce deps --- package-lock.json | 19 ++++++++++++++----- package.json | 1 - src/loader.js | 11 +++++++---- src/utils.js | 46 ++++++++++++++++++++++++++++++++++++++++++++++ 4 files changed, 67 insertions(+), 10 deletions(-) diff --git a/package-lock.json b/package-lock.json index 4b290126..8814b4a1 100644 --- a/package-lock.json +++ b/package-lock.json @@ -8,7 +8,6 @@ "version": "1.6.2", "license": "MIT", "dependencies": { - "loader-utils": "^2.0.0", "schema-utils": "^3.0.0" }, "devDependencies": { @@ -4170,6 +4169,7 @@ "version": "5.2.2", "resolved": "https://registry.npmjs.org/big.js/-/big.js-5.2.2.tgz", "integrity": "sha512-vyL2OymJxmarO8gxMr0mhChsO9QGwhynfuu4+MHTAW6czfq9humCB7rKpUjDd9YUiDPU4mzpyupFSvOClAwbmQ==", + "dev": true, "engines": { "node": "*" } @@ -6233,6 +6233,7 @@ "version": "3.0.0", "resolved": "https://registry.npmjs.org/emojis-list/-/emojis-list-3.0.0.tgz", "integrity": "sha512-/kyM18EfinwXZbno9FyUGeFh87KC8HRQBQGildHZbEuRyWFOmv1U10o9BBp8XVZDVNNuQKyIGIu5ZYAAXJ0V2Q==", + "dev": true, "engines": { "node": ">= 4" } @@ -11634,6 +11635,7 @@ "version": "2.2.0", "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.0.tgz", "integrity": "sha512-f+8cldu7X/y7RAJurMEJmdoKXGB/X550w2Nr3tTbezL6RwEE/iMcm+tZnXeoZtKuOq6ft8+CqzEkrIgx1fPoQA==", + "dev": true, "dependencies": { "minimist": "^1.2.5" }, @@ -11982,6 +11984,7 @@ "version": "2.0.0", "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-2.0.0.tgz", "integrity": "sha512-rP4F0h2RaWSvPEkD7BLDFQnvSf+nK+wr3ESUjNTyAGobqrijmW92zc+SO6d4p4B1wh7+B/Jg1mkQe5NYUEHtHQ==", + "dev": true, "dependencies": { "big.js": "^5.2.2", "emojis-list": "^3.0.0", @@ -12737,7 +12740,8 @@ "node_modules/minimist": { "version": "1.2.5", "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz", - "integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==" + "integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==", + "dev": true }, "node_modules/minimist-options": { "version": "4.1.0", @@ -21084,7 +21088,8 @@ "big.js": { "version": "5.2.2", "resolved": "https://registry.npmjs.org/big.js/-/big.js-5.2.2.tgz", - "integrity": "sha512-vyL2OymJxmarO8gxMr0mhChsO9QGwhynfuu4+MHTAW6czfq9humCB7rKpUjDd9YUiDPU4mzpyupFSvOClAwbmQ==" + "integrity": "sha512-vyL2OymJxmarO8gxMr0mhChsO9QGwhynfuu4+MHTAW6czfq9humCB7rKpUjDd9YUiDPU4mzpyupFSvOClAwbmQ==", + "dev": true }, "binary-extensions": { "version": "1.13.1", @@ -22678,7 +22683,8 @@ "emojis-list": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/emojis-list/-/emojis-list-3.0.0.tgz", - "integrity": "sha512-/kyM18EfinwXZbno9FyUGeFh87KC8HRQBQGildHZbEuRyWFOmv1U10o9BBp8XVZDVNNuQKyIGIu5ZYAAXJ0V2Q==" + "integrity": "sha512-/kyM18EfinwXZbno9FyUGeFh87KC8HRQBQGildHZbEuRyWFOmv1U10o9BBp8XVZDVNNuQKyIGIu5ZYAAXJ0V2Q==", + "dev": true }, "encodeurl": { "version": "1.0.2", @@ -26773,6 +26779,7 @@ "version": "2.2.0", "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.0.tgz", "integrity": "sha512-f+8cldu7X/y7RAJurMEJmdoKXGB/X550w2Nr3tTbezL6RwEE/iMcm+tZnXeoZtKuOq6ft8+CqzEkrIgx1fPoQA==", + "dev": true, "requires": { "minimist": "^1.2.5" } @@ -27030,6 +27037,7 @@ "version": "2.0.0", "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-2.0.0.tgz", "integrity": "sha512-rP4F0h2RaWSvPEkD7BLDFQnvSf+nK+wr3ESUjNTyAGobqrijmW92zc+SO6d4p4B1wh7+B/Jg1mkQe5NYUEHtHQ==", + "dev": true, "requires": { "big.js": "^5.2.2", "emojis-list": "^3.0.0", @@ -27612,7 +27620,8 @@ "minimist": { "version": "1.2.5", "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz", - "integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==" + "integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==", + "dev": true }, "minimist-options": { "version": "4.1.0", diff --git a/package.json b/package.json index b9381786..bb68432a 100644 --- a/package.json +++ b/package.json @@ -42,7 +42,6 @@ "webpack": "^5.0.0" }, "dependencies": { - "loader-utils": "^2.0.0", "schema-utils": "^3.0.0" }, "devDependencies": { diff --git a/src/loader.js b/src/loader.js index 59535bb5..7cd4ef3a 100644 --- a/src/loader.js +++ b/src/loader.js @@ -1,8 +1,11 @@ import path from 'path'; -import loaderUtils from 'loader-utils'; - -import { findModuleById, evalModuleCode, AUTO_PUBLIC_PATH } from './utils'; +import { + findModuleById, + evalModuleCode, + AUTO_PUBLIC_PATH, + stringifyRequest, +} from './utils'; import schema from './loader-options.json'; import MiniCssExtractPlugin, { pluginName, pluginSymbol } from './index'; @@ -15,7 +18,7 @@ function hotLoader(content, context) { return `${content} if(module.hot) { // ${Date.now()} - var cssReload = require(${loaderUtils.stringifyRequest( + var cssReload = require(${stringifyRequest( context.context, path.join(__dirname, 'hmr/hotModuleReplacement.js') )})(module.id, ${JSON.stringify({ diff --git a/src/utils.js b/src/utils.js index 6f27db13..3b9c447b 100644 --- a/src/utils.js +++ b/src/utils.js @@ -1,4 +1,5 @@ import NativeModule from 'module'; +import path from 'path'; function trueFn() { return true; @@ -54,6 +55,50 @@ function compareModulesByIdentifier(a, b) { const MODULE_TYPE = 'css/mini-extract'; const AUTO_PUBLIC_PATH = '__MINI_CSS_EXTRACT_PLUGIN_PUBLIC_PATH__'; +function isAbsolutePath(str) { + return path.posix.isAbsolute(str) || path.win32.isAbsolute(str); +} + +const RELATIVE_PATH_REGEXP = /^\.\.?[/\\]/; + +function isRelativePath(str) { + return RELATIVE_PATH_REGEXP.test(str); +} + +function stringifyRequest(loaderContext, request) { + const splitted = request.split('!'); + const { context } = loaderContext; + + return JSON.stringify( + splitted + .map((part) => { + // First, separate singlePath from query, because the query might contain paths again + const splittedPart = part.match(/^(.*?)(\?.*)/); + const query = splittedPart ? splittedPart[2] : ''; + let singlePath = splittedPart ? splittedPart[1] : part; + + if (isAbsolutePath(singlePath) && context) { + singlePath = path.relative(context, singlePath); + + if (isAbsolutePath(singlePath)) { + // If singlePath still matches an absolute path, singlePath was on a different drive than context. + // In this case, we leave the path platform-specific without replacing any separators. + // @see https://github.com/webpack/loader-utils/pull/14 + return singlePath + query; + } + + if (isRelativePath(singlePath) === false) { + // Ensure that the relative path starts at least with ./ otherwise it would be a request into the modules directory (like node_modules). + singlePath = `./${singlePath}`; + } + } + + return singlePath.replace(/\\/g, '/') + query; + }) + .join('!') + ); +} + export { trueFn, findModuleById, @@ -61,4 +106,5 @@ export { compareModulesByIdentifier, MODULE_TYPE, AUTO_PUBLIC_PATH, + stringifyRequest, }; From f6223b60bc6118d92193a92761882ac4592b94c1 Mon Sep 17 00:00:00 2001 From: Alexander Akait <4567934+alexander-akait@users.noreply.github.com> Date: Wed, 30 Jun 2021 19:40:07 +0300 Subject: [PATCH 23/30] fix: engines field (#777) --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index bb68432a..520b4b6b 100644 --- a/package.json +++ b/package.json @@ -13,7 +13,7 @@ }, "main": "dist/cjs.js", "engines": { - "node": ">= 10.13.0" + "node": ">= 12.13.0" }, "scripts": { "start": "npm run build -- -w", From 794b60228d9800c7812e206953066197b486cf3d Mon Sep 17 00:00:00 2001 From: evilebottnawi Date: Wed, 30 Jun 2021 20:00:45 +0300 Subject: [PATCH 24/30] chore(release): 2.0.0 --- CHANGELOG.md | 22 ++++++++++++++++++++++ package-lock.json | 2 +- package.json | 2 +- 3 files changed, 24 insertions(+), 2 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index e9cc15cc..e9c664c1 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,6 +2,28 @@ All notable changes to this project will be documented in this file. See [standard-version](https://github.com/conventional-changelog/standard-version) for commit guidelines. +## [2.0.0](https://github.com/webpack-contrib/mini-css-extract-plugin/compare/v1.6.2...v2.0.0) (2021-06-30) + +### NOTES + +In the current release we have fixed many problems with `publicPath`, previously to generate relative URLs inside CSS files developers use different hacks: `publicPath: ''`, `publicPath: '../'`, using relative `../../` in the `outputPath` option for `file-loader` and etc. Now you don't need it anymore. Webpack v5 uses `publicPath: "auto"` by default, which means to always generate relative URLs, and now `mini-css-extract-plugin` does the same. + +**We strongly recommend use `auto` value by default (except when using CDN).** + +**We also want to show you that the [`file-loader`](https://github.com/webpack-contrib/file-loader) and [`url-loader`](https://github.com/webpack-contrib/url-loader) are outdated, please migrate on [Asset Modules](https://webpack.js.org/guides/asset-modules/).** + +### ⚠ BREAKING CHANGES + +* minimum supported `Node.js` version is `12.13.0` +* minimum supported `webpack` version is `5.0.0` +* the `modules.namedExport` option was removed, you don't need it anymore, because we respect the `modules.namedExport` option from `css-loader`, just remove it +* the `publicPath` option no longer automatically adds `/` (trailing slash), you need to specify, you need to specify it yourself if it is absent, i.e. if you have `publicPath: "/my/public/path"` replace it with `publicPath: "/my/public/path/"` + +### Bug Fixes + +* generating correct relative `url()` for assets inside CSS files when you use `publicPath: "auto"` (default value) + + ### [1.6.2](https://github.com/webpack-contrib/mini-css-extract-plugin/compare/v1.6.1...v1.6.2) (2021-06-28) ### Bug Fixes diff --git a/package-lock.json b/package-lock.json index 8814b4a1..51b92597 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,6 +1,6 @@ { "name": "mini-css-extract-plugin", - "version": "1.6.2", + "version": "2.0.0", "lockfileVersion": 2, "requires": true, "packages": { diff --git a/package.json b/package.json index 520b4b6b..33a1c16b 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "mini-css-extract-plugin", - "version": "1.6.2", + "version": "2.0.0", "description": "extracts CSS into separate files", "license": "MIT", "repository": "webpack-contrib/mini-css-extract-plugin", From 0420b78a2144dad530a6118b2922dacd15a7a82c Mon Sep 17 00:00:00 2001 From: Alexander Akait <4567934+alexander-akait@users.noreply.github.com> Date: Thu, 1 Jul 2021 17:21:09 +0300 Subject: [PATCH 25/30] test: clean up (#780) --- test/cases/asset-modules/test.filter.js | 3 --- test/cases/chunkFilename-as-function/webpack.config.js | 7 +------ test/cases/chunkFilename-fullhash/test.filter.js | 3 --- .../content-entries-with-same-import/test.filter.js | 3 --- .../dependOn-multiple-files-per-entry/test.filter.js | 3 --- test/cases/dependOn/test.filter.js | 3 --- test/cases/es-named-export-output-module/test.filter.js | 3 --- test/cases/output-iife/test.filter.js | 3 --- test/cases/output-module/test.filter.js | 3 --- .../test.filter.js | 3 --- .../cases/split-chunks-recursiveIssuer/webpack.config.js | 9 ++------- 11 files changed, 3 insertions(+), 40 deletions(-) delete mode 100644 test/cases/asset-modules/test.filter.js delete mode 100644 test/cases/chunkFilename-fullhash/test.filter.js delete mode 100644 test/cases/content-entries-with-same-import/test.filter.js delete mode 100644 test/cases/dependOn-multiple-files-per-entry/test.filter.js delete mode 100644 test/cases/dependOn/test.filter.js delete mode 100644 test/cases/es-named-export-output-module/test.filter.js delete mode 100644 test/cases/output-iife/test.filter.js delete mode 100644 test/cases/output-module/test.filter.js delete mode 100644 test/cases/simple-css-modules-mode-local-output-module/test.filter.js diff --git a/test/cases/asset-modules/test.filter.js b/test/cases/asset-modules/test.filter.js deleted file mode 100644 index 042a0256..00000000 --- a/test/cases/asset-modules/test.filter.js +++ /dev/null @@ -1,3 +0,0 @@ -const webpack = require('webpack'); - -module.exports = () => webpack.version[0] !== '4'; diff --git a/test/cases/chunkFilename-as-function/webpack.config.js b/test/cases/chunkFilename-as-function/webpack.config.js index 38450896..6a4fee5b 100644 --- a/test/cases/chunkFilename-as-function/webpack.config.js +++ b/test/cases/chunkFilename-as-function/webpack.config.js @@ -1,5 +1,3 @@ -import { version as webpackVersion } from 'webpack'; - import Self from '../../../src'; module.exports = { @@ -15,10 +13,7 @@ module.exports = { plugins: [ new Self({ filename: '[name].css', - chunkFilename: - webpackVersion[0] === '4' - ? '[id].[name].css' - : ({ chunk }) => `${chunk.id}.${chunk.name}.css`, + chunkFilename: ({ chunk }) => `${chunk.id}.${chunk.name}.css`, }), ], }; diff --git a/test/cases/chunkFilename-fullhash/test.filter.js b/test/cases/chunkFilename-fullhash/test.filter.js deleted file mode 100644 index 042a0256..00000000 --- a/test/cases/chunkFilename-fullhash/test.filter.js +++ /dev/null @@ -1,3 +0,0 @@ -const webpack = require('webpack'); - -module.exports = () => webpack.version[0] !== '4'; diff --git a/test/cases/content-entries-with-same-import/test.filter.js b/test/cases/content-entries-with-same-import/test.filter.js deleted file mode 100644 index 042a0256..00000000 --- a/test/cases/content-entries-with-same-import/test.filter.js +++ /dev/null @@ -1,3 +0,0 @@ -const webpack = require('webpack'); - -module.exports = () => webpack.version[0] !== '4'; diff --git a/test/cases/dependOn-multiple-files-per-entry/test.filter.js b/test/cases/dependOn-multiple-files-per-entry/test.filter.js deleted file mode 100644 index 042a0256..00000000 --- a/test/cases/dependOn-multiple-files-per-entry/test.filter.js +++ /dev/null @@ -1,3 +0,0 @@ -const webpack = require('webpack'); - -module.exports = () => webpack.version[0] !== '4'; diff --git a/test/cases/dependOn/test.filter.js b/test/cases/dependOn/test.filter.js deleted file mode 100644 index 042a0256..00000000 --- a/test/cases/dependOn/test.filter.js +++ /dev/null @@ -1,3 +0,0 @@ -const webpack = require('webpack'); - -module.exports = () => webpack.version[0] !== '4'; diff --git a/test/cases/es-named-export-output-module/test.filter.js b/test/cases/es-named-export-output-module/test.filter.js deleted file mode 100644 index 042a0256..00000000 --- a/test/cases/es-named-export-output-module/test.filter.js +++ /dev/null @@ -1,3 +0,0 @@ -const webpack = require('webpack'); - -module.exports = () => webpack.version[0] !== '4'; diff --git a/test/cases/output-iife/test.filter.js b/test/cases/output-iife/test.filter.js deleted file mode 100644 index 042a0256..00000000 --- a/test/cases/output-iife/test.filter.js +++ /dev/null @@ -1,3 +0,0 @@ -const webpack = require('webpack'); - -module.exports = () => webpack.version[0] !== '4'; diff --git a/test/cases/output-module/test.filter.js b/test/cases/output-module/test.filter.js deleted file mode 100644 index 042a0256..00000000 --- a/test/cases/output-module/test.filter.js +++ /dev/null @@ -1,3 +0,0 @@ -const webpack = require('webpack'); - -module.exports = () => webpack.version[0] !== '4'; diff --git a/test/cases/simple-css-modules-mode-local-output-module/test.filter.js b/test/cases/simple-css-modules-mode-local-output-module/test.filter.js deleted file mode 100644 index 042a0256..00000000 --- a/test/cases/simple-css-modules-mode-local-output-module/test.filter.js +++ /dev/null @@ -1,3 +0,0 @@ -const webpack = require('webpack'); - -module.exports = () => webpack.version[0] !== '4'; diff --git a/test/cases/split-chunks-recursiveIssuer/webpack.config.js b/test/cases/split-chunks-recursiveIssuer/webpack.config.js index 205f9be5..d94301fb 100644 --- a/test/cases/split-chunks-recursiveIssuer/webpack.config.js +++ b/test/cases/split-chunks-recursiveIssuer/webpack.config.js @@ -1,18 +1,13 @@ -import { version as webpackVersion } from 'webpack'; - import Self from '../../../src'; function recursiveIssuer(m, c) { - const issuer = - webpackVersion[0] === '4' ? m.issuer : c.moduleGraph.getIssuer(m); + const issuer = c.moduleGraph.getIssuer(m); if (issuer) { return recursiveIssuer(issuer, c); } - const chunks = - // eslint-disable-next-line no-underscore-dangle - webpackVersion[0] === '4' ? m._chunks : c.chunkGraph.getModuleChunks(m); + const chunks = c.chunkGraph.getModuleChunks(m); for (const chunk of chunks) { return chunk.name; From 90445dd1d81da0c10b9b0e8a17b417d0651816b8 Mon Sep 17 00:00:00 2001 From: Alexander Akait <4567934+alexander-akait@users.noreply.github.com> Date: Thu, 1 Jul 2021 17:42:15 +0300 Subject: [PATCH 26/30] style: default prettier options --- .eslintrc.js | 4 +- .github/workflows/nodejs.yml | 2 +- .prettierrc.js | 1 - README.md | 190 +++++++-------- babel.config.js | 10 +- commitlint.config.js | 2 +- jest.config.js | 8 +- lint-staged.config.js | 4 +- src/cjs.js | 2 +- src/hmr/hotModuleReplacement.js | 34 +-- src/hmr/normalize-url.js | 14 +- src/index.js | 230 +++++++++--------- src/loader.js | 42 ++-- src/utils.js | 18 +- test/HMR.test.js | 96 ++++---- test/TestCache.test.js | 92 +++---- test/TestCases.test.js | 56 ++--- test/TestMemoryFS.test.js | 18 +- test/api.test.js | 10 +- test/attributes-option.test.js | 48 ++-- test/cases/asset-modules/index.js | 2 +- test/cases/asset-modules/webpack.config.js | 14 +- test/cases/at-import/a.css | 10 +- test/cases/at-import/b.css | 4 +- test/cases/at-import/index.js | 4 +- test/cases/at-import/webpack.config.js | 8 +- test/cases/auxiliaryAssets/fonts.css | 10 +- test/cases/auxiliaryAssets/index.js | 2 +- test/cases/auxiliaryAssets/webpack.config.js | 18 +- test/cases/chunkFilename-as-function/index.js | 4 +- .../webpack.config.js | 8 +- ...95b3ac2.css => 0.ab3ada7332542b91ceb4.css} | 0 ...7a95b3ac2.css => ab3ada7332542b91ceb4.css} | 0 .../expected/webpack-5-importModule/main.js | 2 +- ...9c551f2.css => 0.05170166b8a070c9e23e.css} | 0 ...6b9c551f2.css => 05170166b8a070c9e23e.css} | 0 .../expected/webpack-5/main.js | 2 +- test/cases/chunkFilename-fullhash/index.js | 4 +- .../chunkFilename-fullhash/webpack.config.js | 10 +- test/cases/chunkFilename/index.js | 4 +- test/cases/chunkFilename/webpack.config.js | 10 +- test/cases/commonjs-module-syntax/index.js | 2 +- .../commonjs-module-syntax/webpack.config.js | 12 +- test/cases/composes-async/async-1.css | 2 +- test/cases/composes-async/index.js | 4 +- test/cases/composes-async/webpack.config.js | 14 +- .../content-entries-with-same-import/index.js | 4 +- .../content-entries-with-same-import/one.js | 6 +- .../content-entries-with-same-import/two.js | 6 +- .../webpack.config.js | 10 +- .../contenthash-multiple-entries/entryA.js | 4 +- .../contenthash-multiple-entries/entryB.js | 2 +- .../contenthash-multiple-entries/entryD.js | 4 +- .../contenthash-multiple-entries/entryE.js | 4 +- .../webpack.config.js | 18 +- test/cases/contenthash/index.js | 2 +- test/cases/contenthash/webpack.config.js | 8 +- test/cases/css-import/b.css | 2 +- test/cases/css-import/c.css | 4 +- test/cases/css-import/index.css | 4 +- test/cases/css-import/webpack.config.js | 8 +- test/cases/default-options/index.js | 2 +- test/cases/default-options/webpack.config.js | 6 +- .../entryA.js | 2 +- .../entryB.js | 2 +- .../entryC.js | 2 +- .../entryD.js | 2 +- .../webpack.config.js | 10 +- test/cases/dependOn/entryA.js | 2 +- test/cases/dependOn/entryB.js | 2 +- test/cases/dependOn/webpack.config.js | 10 +- .../devtool-source-map-from-loaders/index.js | 2 +- .../webpack.config.js | 10 +- .../index.js | 2 +- .../webpack.config.js | 10 +- test/cases/devtool-source-map/index.js | 2 +- .../devtool-source-map/webpack.config.js | 10 +- .../es-module-concatenation-modules/index.js | 8 +- .../webpack.config.js | 10 +- test/cases/es-module-concatenation/index.js | 6 +- .../es-module-concatenation/webpack.config.js | 8 +- test/cases/es-module-syntax/index.js | 2 +- test/cases/es-module-syntax/webpack.config.js | 12 +- .../es-named-export-output-module/index.js | 2 +- .../webpack.config.js | 10 +- test/cases/es-named-export/index.js | 2 +- test/cases/es-named-export/webpack.config.js | 10 +- test/cases/file-loader/index.js | 2 +- test/cases/file-loader/webpack.config.js | 14 +- test/cases/filename-as-function/index.js | 2 +- .../filename-as-function/webpack.config.js | 10 +- test/cases/filename-with-template/index.js | 4 +- .../filename-with-template/webpack.config.js | 8 +- test/cases/filename-without-template/index.js | 4 +- .../webpack.config.js | 8 +- test/cases/hmr/b.css | 2 +- test/cases/hmr/c.css | 4 +- .../expected/webpack-5-importModule/main.js | 46 ++-- test/cases/hmr/expected/webpack-5/main.js | 46 ++-- test/cases/hmr/index.css | 4 +- test/cases/hmr/webpack.config.js | 12 +- test/cases/ignoreOrder/e1.css | 2 +- test/cases/ignoreOrder/e2.css | 2 +- test/cases/ignoreOrder/expected/styles.css | 4 +- test/cases/ignoreOrder/index.js | 4 +- test/cases/ignoreOrder/index2.js | 4 +- test/cases/ignoreOrder/webpack.config.js | 12 +- test/cases/ignoreOrderFalse/e1.css | 2 +- test/cases/ignoreOrderFalse/e2.css | 2 +- test/cases/ignoreOrderFalse/e3.css | 2 +- .../ignoreOrderFalse/expected/styles.css | 6 +- test/cases/ignoreOrderFalse/index.js | 4 +- test/cases/ignoreOrderFalse/index2.js | 4 +- test/cases/ignoreOrderFalse/index3.js | 4 +- test/cases/ignoreOrderFalse/warnings.js | 14 +- test/cases/ignoreOrderFalse/webpack.config.js | 14 +- .../ignoreOrderFalseWithoutGoodChunks/e1.css | 2 +- .../ignoreOrderFalseWithoutGoodChunks/e2.css | 2 +- .../ignoreOrderFalseWithoutGoodChunks/e3.css | 2 +- .../ignoreOrderFalseWithoutGoodChunks/e4.css | 2 +- .../expected/styles.css | 8 +- .../index.js | 2 +- .../index2.js | 4 +- .../index3.js | 6 +- .../index4.js | 6 +- .../warnings.js | 32 +-- .../webpack.config.js | 16 +- test/cases/import/b.css | 2 +- test/cases/import/c.css | 2 +- test/cases/import/index.js | 6 +- test/cases/import/webpack.config.js | 8 +- .../expected/webpack-5-importModule/main.js | 2 +- .../expected/webpack-5/main.js | 2 +- test/cases/insert-function/src/index.js | 2 +- test/cases/insert-function/webpack.config.js | 10 +- test/cases/insert-string/src/index.js | 2 +- test/cases/insert-string/webpack.config.js | 8 +- test/cases/insert-undefined/src/index.js | 2 +- test/cases/insert-undefined/webpack.config.js | 8 +- test/cases/js-hash/index.js | 2 +- test/cases/js-hash/webpack.config.js | 10 +- .../moduleFilenameMutableFilename/index.js | 2 +- .../webpack.config.js | 12 +- test/cases/multiple-compiler/index.js | 2 +- .../cases/multiple-compiler/webpack.config.js | 18 +- test/cases/multiple-entry/async-one.js | 4 +- test/cases/multiple-entry/async-two.js | 4 +- test/cases/multiple-entry/index-one.js | 6 +- test/cases/multiple-entry/index-two.js | 6 +- test/cases/multiple-entry/webpack.config.js | 10 +- test/cases/nested/component.js | 2 +- test/cases/nested/index.js | 6 +- test/cases/nested/webpack.config.js | 8 +- .../app/index.js | 2 +- .../webpack.config.js | 18 +- .../new-url-with-public-path/app/index.js | 2 +- .../webpack.config.js | 18 +- test/cases/no-identifier/index.js | 2 +- test/cases/no-identifier/webpack.config.js | 12 +- test/cases/no-loader/index.js | 2 +- test/cases/no-loader/webpack.config.js | 8 +- test/cases/no-source-map/index.js | 2 +- test/cases/no-source-map/webpack.config.js | 8 +- test/cases/output-iife/index.js | 2 +- test/cases/output-iife/webpack.config.js | 8 +- test/cases/output-module/index.js | 2 +- test/cases/output-module/webpack.config.js | 8 +- test/cases/publicpath-auto-2/index.js | 2 +- .../cases/publicpath-auto-2/webpack.config.js | 30 +-- test/cases/publicpath-auto-3/index.js | 2 +- .../cases/publicpath-auto-3/webpack.config.js | 34 +-- test/cases/publicpath-auto/index.js | 2 +- test/cases/publicpath-auto/webpack.config.js | 14 +- test/cases/publicpath-compiler-auto/index.js | 2 +- .../webpack.config.js | 14 +- test/cases/publicpath-emptystring/index.js | 2 +- .../publicpath-emptystring/webpack.config.js | 14 +- .../publicpath-function/webpack.config.js | 18 +- test/cases/publicpath-loader-auto/index.js | 2 +- .../publicpath-loader-auto/webpack.config.js | 14 +- test/cases/publicpath-trailing-slash/index.js | 2 +- .../webpack.config.js | 14 +- test/cases/runtime/async.js | 2 +- test/cases/runtime/index.js | 4 +- test/cases/runtime/webpack.config.js | 6 +- .../serializingBigStrings/webpack.config.js | 12 +- test/cases/shared-import/a.css | 2 +- test/cases/shared-import/b.css | 2 +- test/cases/shared-import/c.css | 2 +- test/cases/shared-import/index.js | 6 +- test/cases/shared-import/webpack.config.js | 8 +- .../async-one.js | 4 +- .../async-two.js | 4 +- .../simple-async-load-css-fallback/index.js | 8 +- .../webpack.config.js | 12 +- test/cases/simple-async-load-css/async-one.js | 4 +- test/cases/simple-async-load-css/async-two.js | 4 +- test/cases/simple-async-load-css/index.js | 8 +- .../simple-async-load-css/webpack.config.js | 8 +- test/cases/simple-async-source-map/async.js | 2 +- test/cases/simple-async-source-map/index.js | 6 +- .../simple-async-source-map/webpack.config.js | 10 +- test/cases/simple-async/async.js | 2 +- test/cases/simple-async/index.js | 6 +- test/cases/simple-async/webpack.config.js | 8 +- test/cases/simple-commonjs-syntax/index.js | 2 +- .../simple-commonjs-syntax/webpack.config.js | 8 +- .../simple-css-modules-mode-global/index.js | 2 +- .../webpack.config.js | 12 +- .../index.js | 2 +- .../webpack.config.js | 12 +- .../simple-css-modules-mode-local/index.js | 2 +- .../webpack.config.js | 12 +- .../simple-css-modules-mode-pure/index.js | 2 +- .../webpack.config.js | 12 +- test/cases/simple-es-module-syntax/index.js | 2 +- .../simple-es-module-syntax/webpack.config.js | 8 +- test/cases/simple-multiple/index.js | 4 +- test/cases/simple-multiple/webpack.config.js | 8 +- test/cases/simple-publicpath/index.js | 2 +- .../cases/simple-publicpath/webpack.config.js | 14 +- test/cases/simple/index.js | 2 +- test/cases/simple/webpack.config.js | 8 +- test/cases/source-map/index.js | 2 +- test/cases/source-map/webpack.config.js | 10 +- test/cases/split-chunks-all/a.js | 2 +- test/cases/split-chunks-all/b.js | 2 +- test/cases/split-chunks-all/index.js | 2 +- test/cases/split-chunks-all/webpack.config.js | 12 +- test/cases/split-chunks-recursiveIssuer/a.js | 4 +- test/cases/split-chunks-recursiveIssuer/b.js | 4 +- .../components/comp1.js | 2 +- .../components/comp2.js | 2 +- .../webpack.config.js | 24 +- test/cases/split-chunks-single/a.css | 2 +- test/cases/split-chunks-single/b.css | 2 +- test/cases/split-chunks-single/c.css | 2 +- test/cases/split-chunks-single/chunk1.js | 4 +- test/cases/split-chunks-single/chunk2.js | 4 +- test/cases/split-chunks-single/d.css | 2 +- test/cases/split-chunks-single/e1.css | 2 +- test/cases/split-chunks-single/e2.css | 2 +- test/cases/split-chunks-single/entry1.js | 12 +- test/cases/split-chunks-single/entry2.js | 10 +- .../split-chunks-single/expected/styles.css | 18 +- test/cases/split-chunks-single/f.css | 2 +- test/cases/split-chunks-single/g.css | 2 +- test/cases/split-chunks-single/h.css | 2 +- .../split-chunks-single/webpack.config.js | 14 +- test/cases/split-chunks/index.js | 4 +- test/cases/split-chunks/webpack.config.js | 12 +- test/cjs.test.js | 8 +- test/emit-option.test.js | 182 +++++++------- test/enforce-esm.test.js | 30 +-- test/helpers/getCompiler.js | 30 +-- test/helpers/getErrors.js | 2 +- test/helpers/getWarnings.js | 2 +- test/helpers/index.js | 14 +- test/helpers/normalizeErrors.js | 10 +- test/helpers/readAsset.js | 6 +- test/helpers/runInJsDom.js | 8 +- test/ignoreOrder-option.test.js | 26 +- test/insert-option.test.js | 72 +++--- test/linkTag-option.test.js | 64 ++--- test/manual/index.html | 164 +++++++------ test/manual/src/crossorigin.js | 2 +- test/manual/src/index.js | 44 ++-- test/manual/src/lazy-failure.js | 2 +- test/manual/src/lazy.js | 2 +- test/manual/src/preloaded1.js | 4 +- test/manual/src/preloaded2.js | 4 +- test/manual/webpack.config.js | 26 +- test/normalize-url.test.js | 6 +- test/validate-loader-options.test.js | 18 +- test/validate-plugin-options.test.js | 30 +-- 275 files changed, 1592 insertions(+), 1567 deletions(-) delete mode 100644 .prettierrc.js rename test/cases/chunkFilename-fullhash/expected/webpack-5-importModule/{0.a0b77e3a9967a95b3ac2.css => 0.ab3ada7332542b91ceb4.css} (100%) rename test/cases/chunkFilename-fullhash/expected/webpack-5-importModule/{a0b77e3a9967a95b3ac2.css => ab3ada7332542b91ceb4.css} (100%) rename test/cases/chunkFilename-fullhash/expected/webpack-5/{0.f8dea56ca966b9c551f2.css => 0.05170166b8a070c9e23e.css} (100%) rename test/cases/chunkFilename-fullhash/expected/webpack-5/{f8dea56ca966b9c551f2.css => 05170166b8a070c9e23e.css} (100%) diff --git a/.eslintrc.js b/.eslintrc.js index c897f8ee..9b709a49 100644 --- a/.eslintrc.js +++ b/.eslintrc.js @@ -1,5 +1,5 @@ module.exports = { root: true, - parser: 'babel-eslint', - extends: ['@webpack-contrib/eslint-config-webpack', 'prettier'], + parser: "babel-eslint", + extends: ["@webpack-contrib/eslint-config-webpack", "prettier"], }; diff --git a/.github/workflows/nodejs.yml b/.github/workflows/nodejs.yml index 3f259adc..9fe52903 100644 --- a/.github/workflows/nodejs.yml +++ b/.github/workflows/nodejs.yml @@ -157,7 +157,7 @@ jobs: - name: Run tests for webpack version latest with experimentalUseImportModule run: npm run test:coverage -- --ci env: - EXPERIMENTAL_USE_IMPORT_MODULE: 'true' + EXPERIMENTAL_USE_IMPORT_MODULE: "true" - name: Submit coverage data to codecov uses: codecov/codecov-action@v1 diff --git a/.prettierrc.js b/.prettierrc.js deleted file mode 100644 index 4f14003f..00000000 --- a/.prettierrc.js +++ /dev/null @@ -1 +0,0 @@ -module.exports = { singleQuote: true }; diff --git a/README.md b/README.md index 7815b61d..82a9eee4 100644 --- a/README.md +++ b/README.md @@ -50,13 +50,13 @@ body { **component.js** ```js -import './style.css'; +import "./style.css"; ``` **webpack.config.js** ```js -const MiniCssExtractPlugin = require('mini-css-extract-plugin'); +const MiniCssExtractPlugin = require("mini-css-extract-plugin"); module.exports = { plugins: [new MiniCssExtractPlugin()], @@ -64,7 +64,7 @@ module.exports = { rules: [ { test: /\.css$/i, - use: [MiniCssExtractPlugin.loader, 'css-loader'], + use: [MiniCssExtractPlugin.loader, "css-loader"], }, ], }, @@ -135,7 +135,7 @@ A new `` element will be inserted after the found item. ```js new MiniCssExtractPlugin({ - insert: '#some-element', + insert: "#some-element", }); ``` @@ -154,7 +154,7 @@ Allows to override default behavior and insert styles at any position. ```js new MiniCssExtractPlugin({ insert: function (linkTag) { - var reference = document.querySelector('#some-element'); + var reference = document.querySelector("#some-element"); if (reference) { reference.parentNode.insertBefore(linkTag, reference); } @@ -174,14 +174,14 @@ If defined, the `mini-css-extract-plugin` will attach given attributes with thei **webpack.config.js** ```js -const MiniCssExtractPlugin = require('mini-css-extract-plugin'); +const MiniCssExtractPlugin = require("mini-css-extract-plugin"); module.exports = { plugins: [ new MiniCssExtractPlugin({ attributes: { - id: 'target', - 'data-target': 'example', + id: "target", + "data-target": "example", }, }), ], @@ -189,7 +189,7 @@ module.exports = { rules: [ { test: /\.css$/i, - use: [MiniCssExtractPlugin.loader, 'css-loader'], + use: [MiniCssExtractPlugin.loader, "css-loader"], }, ], }, @@ -212,19 +212,19 @@ Possible values: `text/css` **webpack.config.js** ```js -const MiniCssExtractPlugin = require('mini-css-extract-plugin'); +const MiniCssExtractPlugin = require("mini-css-extract-plugin"); module.exports = { plugins: [ new MiniCssExtractPlugin({ - linkType: 'text/css', + linkType: "text/css", }), ], module: { rules: [ { test: /\.css$/i, - use: [MiniCssExtractPlugin.loader, 'css-loader'], + use: [MiniCssExtractPlugin.loader, "css-loader"], }, ], }, @@ -238,7 +238,7 @@ module.exports = { **webpack.config.js** ```js -const MiniCssExtractPlugin = require('mini-css-extract-plugin'); +const MiniCssExtractPlugin = require("mini-css-extract-plugin"); module.exports = { plugins: [ @@ -250,7 +250,7 @@ module.exports = { rules: [ { test: /\.css$/i, - use: [MiniCssExtractPlugin.loader, 'css-loader'], + use: [MiniCssExtractPlugin.loader, "css-loader"], }, ], }, @@ -270,7 +270,7 @@ You need to have at least webpack 5.33.2. **webpack.config.js** ```js -const MiniCssExtractPlugin = require('mini-css-extract-plugin'); +const MiniCssExtractPlugin = require("mini-css-extract-plugin"); module.exports = { plugins: [ @@ -282,7 +282,7 @@ module.exports = { rules: [ { test: /\.css$/i, - use: [MiniCssExtractPlugin.loader, 'css-loader'], + use: [MiniCssExtractPlugin.loader, "css-loader"], }, ], }, @@ -310,15 +310,15 @@ Works like [`output.publicPath`](https://webpack.js.org/configuration/output/#ou **webpack.config.js** ```js -const MiniCssExtractPlugin = require('mini-css-extract-plugin'); +const MiniCssExtractPlugin = require("mini-css-extract-plugin"); module.exports = { plugins: [ new MiniCssExtractPlugin({ // Options similar to the same options in webpackOptions.output // both options are optional - filename: '[name].css', - chunkFilename: '[id].css', + filename: "[name].css", + chunkFilename: "[id].css", }), ], module: { @@ -329,10 +329,10 @@ module.exports = { { loader: MiniCssExtractPlugin.loader, options: { - publicPath: '/public/path/to/', + publicPath: "/public/path/to/", }, }, - 'css-loader', + "css-loader", ], }, ], @@ -345,15 +345,15 @@ module.exports = { **webpack.config.js** ```js -const MiniCssExtractPlugin = require('mini-css-extract-plugin'); +const MiniCssExtractPlugin = require("mini-css-extract-plugin"); module.exports = { plugins: [ new MiniCssExtractPlugin({ // Options similar to the same options in webpackOptions.output // both options are optional - filename: '[name].css', - chunkFilename: '[id].css', + filename: "[name].css", + chunkFilename: "[id].css", }), ], module: { @@ -365,11 +365,11 @@ module.exports = { loader: MiniCssExtractPlugin.loader, options: { publicPath: (resourcePath, context) => { - return path.relative(path.dirname(resourcePath), context) + '/'; + return path.relative(path.dirname(resourcePath), context) + "/"; }, }, }, - 'css-loader', + "css-loader", ], }, ], @@ -398,7 +398,7 @@ You can enable a CommonJS syntax using: **webpack.config.js** ```js -const MiniCssExtractPlugin = require('mini-css-extract-plugin'); +const MiniCssExtractPlugin = require("mini-css-extract-plugin"); module.exports = { plugins: [new MiniCssExtractPlugin()], @@ -413,7 +413,7 @@ module.exports = { esModule: false, }, }, - 'css-loader', + "css-loader", ], }, ], @@ -434,8 +434,8 @@ For `development` mode (including `webpack-dev-server`) you can use [style-loade **webpack.config.js** ```js -const MiniCssExtractPlugin = require('mini-css-extract-plugin'); -const devMode = process.env.NODE_ENV !== 'production'; +const MiniCssExtractPlugin = require("mini-css-extract-plugin"); +const devMode = process.env.NODE_ENV !== "production"; module.exports = { module: { @@ -443,10 +443,10 @@ module.exports = { { test: /\.(sa|sc|c)ss$/, use: [ - devMode ? 'style-loader' : MiniCssExtractPlugin.loader, - 'css-loader', - 'postcss-loader', - 'sass-loader', + devMode ? "style-loader" : MiniCssExtractPlugin.loader, + "css-loader", + "postcss-loader", + "sass-loader", ], }, ], @@ -460,15 +460,15 @@ module.exports = { **webpack.config.js** ```js -const MiniCssExtractPlugin = require('mini-css-extract-plugin'); +const MiniCssExtractPlugin = require("mini-css-extract-plugin"); module.exports = { plugins: [ new MiniCssExtractPlugin({ // Options similar to the same options in webpackOptions.output // all options are optional - filename: '[name].css', - chunkFilename: '[id].css', + filename: "[name].css", + chunkFilename: "[id].css", ignoreOrder: false, // Enable to remove warnings about conflicting order }), ], @@ -482,10 +482,10 @@ module.exports = { options: { // you can specify a publicPath here // by default it uses publicPath in webpackOptions.output - publicPath: '../', + publicPath: "../", }, }, - 'css-loader', + "css-loader", ], }, ], @@ -515,7 +515,7 @@ module.exports = { **index.js** ```js -import { fooBaz, bar } from './styles.css'; +import { fooBaz, bar } from "./styles.css"; console.log(fooBaz, bar); ``` @@ -525,7 +525,7 @@ You can enable a ES module named export using: **webpack.config.js** ```js -const MiniCssExtractPlugin = require('mini-css-extract-plugin'); +const MiniCssExtractPlugin = require("mini-css-extract-plugin"); module.exports = { plugins: [new MiniCssExtractPlugin()], @@ -538,12 +538,12 @@ module.exports = { loader: MiniCssExtractPlugin.loader, }, { - loader: 'css-loader', + loader: "css-loader", options: { esModule: true, modules: { namedExport: true, - localIdentName: 'foo__[name]__[local]', + localIdentName: "foo__[name]__[local]", }, }, }, @@ -559,15 +559,15 @@ module.exports = { **webpack.config.js** ```js -const MiniCssExtractPlugin = require('mini-css-extract-plugin'); +const MiniCssExtractPlugin = require("mini-css-extract-plugin"); module.exports = { plugins: [ new MiniCssExtractPlugin({ // Options similar to the same options in webpackOptions.output // both options are optional - filename: '[name].css', - chunkFilename: '[id].css', + filename: "[name].css", + chunkFilename: "[id].css", }), ], module: { @@ -582,11 +582,11 @@ module.exports = { // publicPath is the relative path of the resource to the context // e.g. for ./css/admin/main.css the publicPath will be ../../ // while for ./css/main.css the publicPath will be ../ - return path.relative(path.dirname(resourcePath), context) + '/'; + return path.relative(path.dirname(resourcePath), context) + "/"; }, }, }, - 'css-loader', + "css-loader", ], }, ], @@ -608,16 +608,16 @@ You should not use `HotModuleReplacementPlugin` plugin if you are using a `webpa **webpack.config.js** ```js -const webpack = require('webpack'); -const MiniCssExtractPlugin = require('mini-css-extract-plugin'); -const devMode = process.env.NODE_ENV !== 'production'; +const webpack = require("webpack"); +const MiniCssExtractPlugin = require("mini-css-extract-plugin"); +const devMode = process.env.NODE_ENV !== "production"; const plugins = [ new MiniCssExtractPlugin({ // Options similar to the same options in webpackOptions.output // both options are optional - filename: devMode ? '[name].css' : '[name].[contenthash].css', - chunkFilename: devMode ? '[id].css' : '[id].[contenthash].css', + filename: devMode ? "[name].css" : "[name].[contenthash].css", + chunkFilename: devMode ? "[id].css" : "[id].[contenthash].css", }), ]; if (devMode) { @@ -633,9 +633,9 @@ module.exports = { test: /\.(sa|sc|c)ss$/, use: [ MiniCssExtractPlugin.loader, - 'css-loader', - 'postcss-loader', - 'sass-loader', + "css-loader", + "postcss-loader", + "sass-loader", ], }, ], @@ -657,15 +657,15 @@ You should not use `HotModuleReplacementPlugin` plugin if you are using a `webpa **webpack.config.js** ```js -const webpack = require('webpack'); -const MiniCssExtractPlugin = require('mini-css-extract-plugin'); +const webpack = require("webpack"); +const MiniCssExtractPlugin = require("mini-css-extract-plugin"); const plugins = [ new MiniCssExtractPlugin({ // Options similar to the same options in webpackOptions.output // both options are optional - filename: devMode ? '[name].css' : '[name].[contenthash].css', - chunkFilename: devMode ? '[id].css' : '[id].[contenthash].css', + filename: devMode ? "[name].css" : "[name].[contenthash].css", + chunkFilename: devMode ? "[id].css" : "[id].[contenthash].css", }), ]; if (devMode) { @@ -684,7 +684,7 @@ module.exports = { loader: MiniCssExtractPlugin.loader, options: {}, }, - 'css-loader', + "css-loader", ], }, ], @@ -699,21 +699,21 @@ To minify the output, use a plugin like [css-minimizer-webpack-plugin](https://g **webpack.config.js** ```js -const MiniCssExtractPlugin = require('mini-css-extract-plugin'); -const CssMinimizerPlugin = require('css-minimizer-webpack-plugin'); +const MiniCssExtractPlugin = require("mini-css-extract-plugin"); +const CssMinimizerPlugin = require("css-minimizer-webpack-plugin"); module.exports = { plugins: [ new MiniCssExtractPlugin({ - filename: '[name].css', - chunkFilename: '[id].css', + filename: "[name].css", + chunkFilename: "[id].css", }), ], module: { rules: [ { test: /\.css$/, - use: [MiniCssExtractPlugin.loader, 'css-loader'], + use: [MiniCssExtractPlugin.loader, "css-loader"], }, ], }, @@ -744,18 +744,18 @@ The CSS can be extracted in one CSS file using `optimization.splitChunks.cacheGr **webpack.config.js** ```js -const MiniCssExtractPlugin = require('mini-css-extract-plugin'); +const MiniCssExtractPlugin = require("mini-css-extract-plugin"); module.exports = { optimization: { splitChunks: { cacheGroups: { styles: { - name: 'styles', - type: 'css/mini-extract', + name: "styles", + type: "css/mini-extract", // For webpack@4 // test: /\.css$/, - chunks: 'all', + chunks: "all", enforce: true, }, }, @@ -763,14 +763,14 @@ module.exports = { }, plugins: [ new MiniCssExtractPlugin({ - filename: '[name].css', + filename: "[name].css", }), ], module: { rules: [ { test: /\.css$/, - use: [MiniCssExtractPlugin.loader, 'css-loader'], + use: [MiniCssExtractPlugin.loader, "css-loader"], }, ], }, @@ -786,8 +786,8 @@ This is especially useful if you import routes dynamically but want to keep your This also prevents the CSS duplication issue one had with the ExtractTextPlugin. ```js -const path = require('path'); -const MiniCssExtractPlugin = require('mini-css-extract-plugin'); +const path = require("path"); +const MiniCssExtractPlugin = require("mini-css-extract-plugin"); function recursiveIssuer(m, c) { const issuer = c.moduleGraph.getIssuer(m); @@ -809,26 +809,26 @@ function recursiveIssuer(m, c) { module.exports = { entry: { - foo: path.resolve(__dirname, 'src/foo'), - bar: path.resolve(__dirname, 'src/bar'), + foo: path.resolve(__dirname, "src/foo"), + bar: path.resolve(__dirname, "src/bar"), }, optimization: { splitChunks: { cacheGroups: { fooStyles: { - name: 'styles_foo', - test: (m, c, entry = 'foo') => - m.constructor.name === 'CssModule' && + name: "styles_foo", + test: (m, c, entry = "foo") => + m.constructor.name === "CssModule" && recursiveIssuer(m, c) === entry, - chunks: 'all', + chunks: "all", enforce: true, }, barStyles: { - name: 'styles_bar', - test: (m, c, entry = 'bar') => - m.constructor.name === 'CssModule' && + name: "styles_bar", + test: (m, c, entry = "bar") => + m.constructor.name === "CssModule" && recursiveIssuer(m, c) === entry, - chunks: 'all', + chunks: "all", enforce: true, }, }, @@ -836,14 +836,14 @@ module.exports = { }, plugins: [ new MiniCssExtractPlugin({ - filename: '[name].css', + filename: "[name].css", }), ], module: { rules: [ { test: /\.css$/, - use: [MiniCssExtractPlugin.loader, 'css-loader'], + use: [MiniCssExtractPlugin.loader, "css-loader"], }, ], }, @@ -859,19 +859,19 @@ In the example below, we'll use `filename` to output the generated css into a di **webpack.config.js** ```js -const MiniCssExtractPlugin = require('mini-css-extract-plugin'); +const MiniCssExtractPlugin = require("mini-css-extract-plugin"); module.exports = { plugins: [ new MiniCssExtractPlugin({ - filename: ({ chunk }) => `${chunk.name.replace('/js/', '/css/')}.css`, + filename: ({ chunk }) => `${chunk.name.replace("/js/", "/css/")}.css`, }), ], module: { rules: [ { test: /\.css$/, - use: [MiniCssExtractPlugin.loader, 'css-loader'], + use: [MiniCssExtractPlugin.loader, "css-loader"], }, ], }, @@ -885,20 +885,20 @@ For long term caching use `filename: "[contenthash].css"`. Optionally add `[name **webpack.config.js** ```js -const MiniCssExtractPlugin = require('mini-css-extract-plugin'); +const MiniCssExtractPlugin = require("mini-css-extract-plugin"); module.exports = { plugins: [ new MiniCssExtractPlugin({ - filename: '[name].[contenthash].css', - chunkFilename: '[id].[contenthash].css', + filename: "[name].[contenthash].css", + chunkFilename: "[id].[contenthash].css", }), ], module: { rules: [ { test: /\.css$/, - use: [MiniCssExtractPlugin.loader, 'css-loader'], + use: [MiniCssExtractPlugin.loader, "css-loader"], }, ], }, @@ -912,7 +912,7 @@ For projects where css ordering has been mitigated through consistent use of sco **webpack.config.js** ```js -const MiniCssExtractPlugin = require('mini-css-extract-plugin'); +const MiniCssExtractPlugin = require("mini-css-extract-plugin"); module.exports = { plugins: [ @@ -924,7 +924,7 @@ module.exports = { rules: [ { test: /\.css$/i, - use: [MiniCssExtractPlugin.loader, 'css-loader'], + use: [MiniCssExtractPlugin.loader, "css-loader"], }, ], }, diff --git a/babel.config.js b/babel.config.js index ef459fe8..a13a0e34 100644 --- a/babel.config.js +++ b/babel.config.js @@ -7,23 +7,23 @@ module.exports = (api) => { return { presets: [ [ - '@babel/preset-env', + "@babel/preset-env", { targets: { - node: '10.13.0', + node: "10.13.0", }, }, ], ], overrides: [ { - test: '**/hmr/**/*.js', + test: "**/hmr/**/*.js", presets: [ [ - '@babel/preset-env', + "@babel/preset-env", { targets: { - node: '0.12', + node: "0.12", }, }, ], diff --git a/commitlint.config.js b/commitlint.config.js index 84dcb122..69b4242c 100644 --- a/commitlint.config.js +++ b/commitlint.config.js @@ -1,3 +1,3 @@ module.exports = { - extends: ['@commitlint/config-conventional'], + extends: ["@commitlint/config-conventional"], }; diff --git a/jest.config.js b/jest.config.js index 9d9cc847..83ce7da3 100644 --- a/jest.config.js +++ b/jest.config.js @@ -1,6 +1,6 @@ module.exports = { - testURL: 'http://localhost/', - transformIgnorePatterns: ['/node_modules/', '/dist/'], - watchPathIgnorePatterns: ['/test/js'], - setupFilesAfterEnv: ['/setupTest.js'], + testURL: "http://localhost/", + transformIgnorePatterns: ["/node_modules/", "/dist/"], + watchPathIgnorePatterns: ["/test/js"], + setupFilesAfterEnv: ["/setupTest.js"], }; diff --git a/lint-staged.config.js b/lint-staged.config.js index d48668db..dc1bf519 100644 --- a/lint-staged.config.js +++ b/lint-staged.config.js @@ -1,4 +1,4 @@ module.exports = { - '*.js': ['eslint --fix', 'prettier --write'], - '*.{json,md,yml,css,ts}': ['prettier --write'], + "*.js": ["eslint --fix", "prettier --write"], + "*.{json,md,yml,css,ts}": ["prettier --write"], }; diff --git a/src/cjs.js b/src/cjs.js index 82657ce3..0f29dbe5 100644 --- a/src/cjs.js +++ b/src/cjs.js @@ -1 +1 @@ -module.exports = require('./index').default; +module.exports = require("./index").default; diff --git a/src/hmr/hotModuleReplacement.js b/src/hmr/hotModuleReplacement.js index 2154dc7d..73fabbd2 100644 --- a/src/hmr/hotModuleReplacement.js +++ b/src/hmr/hotModuleReplacement.js @@ -5,11 +5,11 @@ func-names */ -const normalizeUrl = require('./normalize-url'); +const normalizeUrl = require("./normalize-url"); const srcByModuleId = Object.create(null); -const noDocument = typeof document === 'undefined'; +const noDocument = typeof document === "undefined"; const { forEach } = Array.prototype; @@ -39,7 +39,7 @@ function getCurrentScriptUrl(moduleId) { if (document.currentScript) { ({ src } = document.currentScript); } else { - const scripts = document.getElementsByTagName('script'); + const scripts = document.getElementsByTagName("script"); const lastScriptTag = scripts[scripts.length - 1]; if (lastScriptTag) { @@ -59,15 +59,15 @@ function getCurrentScriptUrl(moduleId) { const filename = splitResult && splitResult[1]; if (!filename) { - return [src.replace('.js', '.css')]; + return [src.replace(".js", ".css")]; } if (!fileMap) { - return [src.replace('.js', '.css')]; + return [src.replace(".js", ".css")]; } - return fileMap.split(',').map((mapRule) => { - const reg = new RegExp(`${filename}\\.js$`, 'g'); + return fileMap.split(",").map((mapRule) => { + const reg = new RegExp(`${filename}\\.js$`, "g"); return normalizeUrl( src.replace(reg, `${mapRule.replace(/{fileName}/g, filename)}.css`) @@ -83,7 +83,7 @@ function updateCss(el, url) { } // eslint-disable-next-line - url = el.href.split('?')[0]; + url = el.href.split("?")[0]; } if (!isUrlRequest(url)) { @@ -96,7 +96,7 @@ function updateCss(el, url) { return; } - if (!url || !(url.indexOf('.css') > -1)) { + if (!url || !(url.indexOf(".css") > -1)) { return; } @@ -107,7 +107,7 @@ function updateCss(el, url) { newEl.isLoaded = false; - newEl.addEventListener('load', () => { + newEl.addEventListener("load", () => { if (newEl.isLoaded) { return; } @@ -116,7 +116,7 @@ function updateCss(el, url) { el.parentNode.removeChild(el); }); - newEl.addEventListener('error', () => { + newEl.addEventListener("error", () => { if (newEl.isLoaded) { return; } @@ -155,7 +155,7 @@ function reloadStyle(src) { return false; } - const elements = document.querySelectorAll('link'); + const elements = document.querySelectorAll("link"); let loaded = false; forEach.call(elements, (el) => { @@ -184,7 +184,7 @@ function reloadStyle(src) { } function reloadAll() { - const elements = document.querySelectorAll('link'); + const elements = document.querySelectorAll("link"); forEach.call(elements, (el) => { if (el.visited === true) { @@ -208,7 +208,7 @@ function isUrlRequest(url) { module.exports = function (moduleId, options) { if (noDocument) { - console.log('no window.document found, will not HMR CSS'); + console.log("no window.document found, will not HMR CSS"); return noop; } @@ -220,7 +220,7 @@ module.exports = function (moduleId, options) { const reloaded = reloadStyle(src); if (options.locals) { - console.log('[HMR] Detected local css modules. Reload all css'); + console.log("[HMR] Detected local css modules. Reload all css"); reloadAll(); @@ -228,9 +228,9 @@ module.exports = function (moduleId, options) { } if (reloaded) { - console.log('[HMR] css reload %s', src.join(' ')); + console.log("[HMR] css reload %s", src.join(" ")); } else { - console.log('[HMR] Reload all css'); + console.log("[HMR] Reload all css"); reloadAll(); } diff --git a/src/hmr/normalize-url.js b/src/hmr/normalize-url.js index ddf15e97..53999f09 100644 --- a/src/hmr/normalize-url.js +++ b/src/hmr/normalize-url.js @@ -4,10 +4,10 @@ function normalizeUrl(pathComponents) { return pathComponents .reduce(function (accumulator, item) { switch (item) { - case '..': + case "..": accumulator.pop(); break; - case '.': + case ".": break; default: accumulator.push(item); @@ -15,7 +15,7 @@ function normalizeUrl(pathComponents) { return accumulator; }, []) - .join('/'); + .join("/"); } module.exports = function (urlString) { @@ -26,11 +26,11 @@ module.exports = function (urlString) { } var protocol = - urlString.indexOf('//') !== -1 ? urlString.split('//')[0] + '//' : ''; - var components = urlString.replace(new RegExp(protocol, 'i'), '').split('/'); - var host = components[0].toLowerCase().replace(/\.$/, ''); + urlString.indexOf("//") !== -1 ? urlString.split("//")[0] + "//" : ""; + var components = urlString.replace(new RegExp(protocol, "i"), "").split("/"); + var host = components[0].toLowerCase().replace(/\.$/, ""); - components[0] = ''; + components[0] = ""; var path = normalizeUrl(components); diff --git a/src/index.js b/src/index.js index 87258478..284604c5 100644 --- a/src/index.js +++ b/src/index.js @@ -1,21 +1,21 @@ /* eslint-disable class-methods-use-this */ -import { validate } from 'schema-utils'; +import { validate } from "schema-utils"; -import { getUndoPath } from 'webpack/lib/util/identifier'; +import { getUndoPath } from "webpack/lib/util/identifier"; -import schema from './plugin-options.json'; +import schema from "./plugin-options.json"; import { trueFn, MODULE_TYPE, AUTO_PUBLIC_PATH, compareModulesByIdentifier, -} from './utils'; +} from "./utils"; -export const pluginName = 'mini-css-extract-plugin'; +export const pluginName = "mini-css-extract-plugin"; export const pluginSymbol = Symbol(pluginName); -const DEFAULT_FILENAME = '[name].css'; +const DEFAULT_FILENAME = "[name].css"; const TYPES = new Set([MODULE_TYPE]); const CODE_GENERATION_RESULT = { sources: new Map(), @@ -54,7 +54,7 @@ class MiniCssExtractPlugin { }) { super(MODULE_TYPE, context); - this.id = ''; + this.id = ""; this._context = context; this._identifier = identifier; this._identifierIndex = identifierIndex; @@ -78,7 +78,7 @@ class MiniCssExtractPlugin { readableIdentifier(requestShortener) { return `css ${requestShortener.shorten(this._identifier)}${ - this._identifierIndex ? ` (${this._identifierIndex})` : '' + this._identifierIndex ? ` (${this._identifierIndex})` : "" }`; } @@ -93,8 +93,8 @@ class MiniCssExtractPlugin { } nameForCondition() { - const resource = this._identifier.split('!').pop(); - const idx = resource.indexOf('?'); + const resource = this._identifier.split("!").pop(); + const idx = resource.indexOf("?"); if (idx >= 0) { return resource.substring(0, idx); @@ -148,10 +148,10 @@ class MiniCssExtractPlugin { const hash = webpack.util.createHash(hashFunction); hash.update(this.content); - hash.update(this.media || ''); - hash.update(this.sourceMap || ''); + hash.update(this.media || ""); + hash.update(this.sourceMap || ""); - return hash.digest('hex'); + return hash.digest("hex"); } updateHash(hash, context) { @@ -188,7 +188,7 @@ class MiniCssExtractPlugin { webpack.util.serialization.register( CssModule, - 'mini-css-extract-plugin/dist/CssModule', + "mini-css-extract-plugin/dist/CssModule", null, { serialize(instance, context) { @@ -288,7 +288,7 @@ class MiniCssExtractPlugin { webpack.util.serialization.register( CssDependency, - 'mini-css-extract-plugin/dist/CssDependency', + "mini-css-extract-plugin/dist/CssDependency", null, { serialize(instance, context) { @@ -325,7 +325,7 @@ class MiniCssExtractPlugin { constructor(options = {}) { validate(schema, options, { - baseDataPath: 'options', + baseDataPath: "options", }); this._sortedModulesCache = new WeakMap(); @@ -343,8 +343,8 @@ class MiniCssExtractPlugin { insert: options.insert, linkType: // Todo in next major release set default to "false" - options.linkType === true || typeof options.linkType === 'undefined' - ? 'text/css' + options.linkType === true || typeof options.linkType === "undefined" + ? "text/css" : options.linkType, attributes: options.attributes, }; @@ -352,11 +352,11 @@ class MiniCssExtractPlugin { if (!this.options.chunkFilename) { const { filename } = this.options; - if (typeof filename !== 'function') { - const hasName = filename.includes('[name]'); - const hasId = filename.includes('[id]'); - const hasChunkHash = filename.includes('[chunkhash]'); - const hasContentHash = filename.includes('[contenthash]'); + if (typeof filename !== "function") { + const hasName = filename.includes("[name]"); + const hasId = filename.includes("[id]"); + const hasChunkHash = filename.includes("[chunkhash]"); + const hasContentHash = filename.includes("[contenthash]"); // Anything changing depending on chunk is fine if (hasChunkHash || hasContentHash || hasName || hasId) { @@ -365,11 +365,11 @@ class MiniCssExtractPlugin { // Otherwise prefix "[id]." in front of the basename to make it changing this.options.chunkFilename = filename.replace( /(^|\/)([^/]*(?:\?|$))/, - '$1[id].$2' + "$1[id].$2" ); } } else { - this.options.chunkFilename = '[id].css'; + this.options.chunkFilename = "[id].css"; } } } @@ -381,10 +381,10 @@ class MiniCssExtractPlugin { if (this.options.experimentalUseImportModule) { if (!compiler.options.experiments) { throw new Error( - 'experimentalUseImportModule is only support for webpack >= 5.33.2' + "experimentalUseImportModule is only support for webpack >= 5.33.2" ); } - if (typeof compiler.options.experiments.executeModule === 'undefined') { + if (typeof compiler.options.experiments.executeModule === "undefined") { // eslint-disable-next-line no-param-reassign compiler.options.experiments.executeModule = true; } @@ -404,7 +404,7 @@ class MiniCssExtractPlugin { const { splitChunks } = compiler.options.optimization; if (splitChunks) { - if (splitChunks.defaultSizeTypes.includes('...')) { + if (splitChunks.defaultSizeTypes.includes("...")) { splitChunks.defaultSizeTypes.push(MODULE_TYPE); } } @@ -547,7 +547,7 @@ class MiniCssExtractPlugin { class CssLoadingRuntimeModule extends RuntimeModule { constructor(runtimeRequirements, runtimeOptions) { - super('css loading', 10); + super("css loading", 10); this.runtimeRequirements = runtimeRequirements; this.runtimeOptions = runtimeOptions; @@ -574,7 +574,7 @@ class MiniCssExtractPlugin { return Template.asString([ `var createStylesheet = ${runtimeTemplate.basicFunction( - 'chunkId, fullhref, resolve, reject', + "chunkId, fullhref, resolve, reject", [ 'var linkTag = document.createElement("link");', this.runtimeOptions.attributes @@ -589,33 +589,33 @@ class MiniCssExtractPlugin { } ) ) - : '', + : "", 'linkTag.rel = "stylesheet";', this.runtimeOptions.linkType ? `linkTag.type = ${JSON.stringify( this.runtimeOptions.linkType )};` - : '', - `var onLinkComplete = ${runtimeTemplate.basicFunction('event', [ - '// avoid mem leaks.', - 'linkTag.onerror = linkTag.onload = null;', + : "", + `var onLinkComplete = ${runtimeTemplate.basicFunction("event", [ + "// avoid mem leaks.", + "linkTag.onerror = linkTag.onload = null;", "if (event.type === 'load') {", - Template.indent(['resolve();']), - '} else {', + Template.indent(["resolve();"]), + "} else {", Template.indent([ "var errorType = event && (event.type === 'load' ? 'missing' : event.type);", - 'var realHref = event && event.target && event.target.href || fullhref;', + "var realHref = event && event.target && event.target.href || fullhref;", 'var err = new Error("Loading CSS chunk " + chunkId + " failed.\\n(" + realHref + ")");', 'err.code = "CSS_CHUNK_LOAD_FAILED";', - 'err.type = errorType;', - 'err.request = realHref;', - 'linkTag.parentNode.removeChild(linkTag)', - 'reject(err);', + "err.type = errorType;", + "err.request = realHref;", + "linkTag.parentNode.removeChild(linkTag)", + "reject(err);", ]), - '}', + "}", ])}`, - 'linkTag.onerror = linkTag.onload = onLinkComplete;', - 'linkTag.href = fullhref;', + "linkTag.onerror = linkTag.onload = onLinkComplete;", + "linkTag.href = fullhref;", crossOriginLoading ? Template.asString([ `if (linkTag.href.indexOf(window.location.origin + '/') !== 0) {`, @@ -624,134 +624,134 @@ class MiniCssExtractPlugin { crossOriginLoading )};` ), - '}', + "}", ]) - : '', - typeof this.runtimeOptions.insert !== 'undefined' - ? typeof this.runtimeOptions.insert === 'function' + : "", + typeof this.runtimeOptions.insert !== "undefined" + ? typeof this.runtimeOptions.insert === "function" ? `(${this.runtimeOptions.insert.toString()})(linkTag)` : Template.asString([ `var target = document.querySelector("${this.runtimeOptions.insert}");`, `target.parentNode.insertBefore(linkTag, target.nextSibling);`, ]) - : Template.asString(['document.head.appendChild(linkTag);']), - 'return linkTag;', + : Template.asString(["document.head.appendChild(linkTag);"]), + "return linkTag;", ] )};`, `var findStylesheet = ${runtimeTemplate.basicFunction( - 'href, fullhref', + "href, fullhref", [ 'var existingLinkTags = document.getElementsByTagName("link");', - 'for(var i = 0; i < existingLinkTags.length; i++) {', + "for(var i = 0; i < existingLinkTags.length; i++) {", Template.indent([ - 'var tag = existingLinkTags[i];', + "var tag = existingLinkTags[i];", 'var dataHref = tag.getAttribute("data-href") || tag.getAttribute("href");', 'if(tag.rel === "stylesheet" && (dataHref === href || dataHref === fullhref)) return tag;', ]), - '}', + "}", 'var existingStyleTags = document.getElementsByTagName("style");', - 'for(var i = 0; i < existingStyleTags.length; i++) {', + "for(var i = 0; i < existingStyleTags.length; i++) {", Template.indent([ - 'var tag = existingStyleTags[i];', + "var tag = existingStyleTags[i];", 'var dataHref = tag.getAttribute("data-href");', - 'if(dataHref === href || dataHref === fullhref) return tag;', + "if(dataHref === href || dataHref === fullhref) return tag;", ]), - '}', + "}", ] )};`, `var loadStylesheet = ${runtimeTemplate.basicFunction( - 'chunkId', + "chunkId", `return new Promise(${runtimeTemplate.basicFunction( - 'resolve, reject', + "resolve, reject", [ `var href = ${RuntimeGlobals.require}.miniCssF(chunkId);`, `var fullhref = ${RuntimeGlobals.publicPath} + href;`, - 'if(findStylesheet(href, fullhref)) return resolve();', - 'createStylesheet(chunkId, fullhref, resolve, reject);', + "if(findStylesheet(href, fullhref)) return resolve();", + "createStylesheet(chunkId, fullhref, resolve, reject);", ] )});` )}`, withLoading ? Template.asString([ - '// object to store loaded CSS chunks', - 'var installedCssChunks = {', + "// object to store loaded CSS chunks", + "var installedCssChunks = {", Template.indent( chunk.ids .map((id) => `${JSON.stringify(id)}: 0`) - .join(',\n') + .join(",\n") ), - '};', - '', + "};", + "", `${ RuntimeGlobals.ensureChunkHandlers }.miniCss = ${runtimeTemplate.basicFunction( - 'chunkId, promises', + "chunkId, promises", [ `var cssChunks = ${JSON.stringify(chunkMap)};`, - 'if(installedCssChunks[chunkId]) promises.push(installedCssChunks[chunkId]);', - 'else if(installedCssChunks[chunkId] !== 0 && cssChunks[chunkId]) {', + "if(installedCssChunks[chunkId]) promises.push(installedCssChunks[chunkId]);", + "else if(installedCssChunks[chunkId] !== 0 && cssChunks[chunkId]) {", Template.indent([ `promises.push(installedCssChunks[chunkId] = loadStylesheet(chunkId).then(${runtimeTemplate.basicFunction( - '', - 'installedCssChunks[chunkId] = 0;' - )}, ${runtimeTemplate.basicFunction('e', [ - 'delete installedCssChunks[chunkId];', - 'throw e;', + "", + "installedCssChunks[chunkId] = 0;" + )}, ${runtimeTemplate.basicFunction("e", [ + "delete installedCssChunks[chunkId];", + "throw e;", ])}));`, ]), - '}', + "}", ] )};`, ]) - : '// no chunk loading', - '', + : "// no chunk loading", + "", withHmr ? Template.asString([ - 'var oldTags = [];', - 'var newTags = [];', + "var oldTags = [];", + "var newTags = [];", `var applyHandler = ${runtimeTemplate.basicFunction( - 'options', + "options", [ - `return { dispose: ${runtimeTemplate.basicFunction('', [ - 'for(var i = 0; i < oldTags.length; i++) {', + `return { dispose: ${runtimeTemplate.basicFunction("", [ + "for(var i = 0; i < oldTags.length; i++) {", Template.indent([ - 'var oldTag = oldTags[i];', - 'if(oldTag.parentNode) oldTag.parentNode.removeChild(oldTag);', + "var oldTag = oldTags[i];", + "if(oldTag.parentNode) oldTag.parentNode.removeChild(oldTag);", ]), - '}', - 'oldTags.length = 0;', - ])}, apply: ${runtimeTemplate.basicFunction('', [ + "}", + "oldTags.length = 0;", + ])}, apply: ${runtimeTemplate.basicFunction("", [ 'for(var i = 0; i < newTags.length; i++) newTags[i].rel = "stylesheet";', - 'newTags.length = 0;', + "newTags.length = 0;", ])} };`, ] )}`, `${ RuntimeGlobals.hmrDownloadUpdateHandlers }.miniCss = ${runtimeTemplate.basicFunction( - 'chunkIds, removedChunks, removedModules, promises, applyHandlers, updatedModulesList', + "chunkIds, removedChunks, removedModules, promises, applyHandlers, updatedModulesList", [ - 'applyHandlers.push(applyHandler);', + "applyHandlers.push(applyHandler);", `chunkIds.forEach(${runtimeTemplate.basicFunction( - 'chunkId', + "chunkId", [ `var href = ${RuntimeGlobals.require}.miniCssF(chunkId);`, `var fullhref = ${RuntimeGlobals.publicPath} + href;`, - 'var oldTag = findStylesheet(href, fullhref);', - 'if(!oldTag) return;', + "var oldTag = findStylesheet(href, fullhref);", + "if(!oldTag) return;", `promises.push(new Promise(${runtimeTemplate.basicFunction( - 'resolve, reject', + "resolve, reject", [ `var tag = createStylesheet(chunkId, fullhref, ${runtimeTemplate.basicFunction( - '', + "", [ 'tag.as = "style";', 'tag.rel = "preload";', - 'resolve();', + "resolve();", ] )}, reject);`, - 'oldTags.push(oldTag);', - 'newTags.push(tag);', + "oldTags.push(oldTag);", + "newTags.push(tag);", ] )}));`, ] @@ -759,7 +759,7 @@ class MiniCssExtractPlugin { ] )}`, ]) - : '// no hmr', + : "// no hmr", ]); } } @@ -774,7 +774,7 @@ class MiniCssExtractPlugin { enabledChunks.add(chunk); if ( - typeof this.options.chunkFilename === 'string' && + typeof this.options.chunkFilename === "string" && /\[(full)?hash(:\d+)?\]/.test(this.options.chunkFilename) ) { set.add(RuntimeGlobals.getFullHash); @@ -786,7 +786,7 @@ class MiniCssExtractPlugin { chunk, new runtime.GetChunkFilenameRuntimeModule( MODULE_TYPE, - 'mini-css', + "mini-css", `${RuntimeGlobals.require}.miniCssF`, (referencedChunk) => { if (!referencedChunk.contentHash[MODULE_TYPE]) { @@ -817,7 +817,7 @@ class MiniCssExtractPlugin { } getChunkModules(chunk, chunkGraph) { - return typeof chunkGraph !== 'undefined' + return typeof chunkGraph !== "undefined" ? chunkGraph.getOrderedChunkModulesIterable( chunk, compareModulesByIdentifier @@ -927,9 +927,9 @@ class MiniCssExtractPlugin { new Error( [ `chunk ${chunk.name || chunk.id} [${pluginName}]`, - 'Conflicting order. Following module has been added:', + "Conflicting order. Following module has been added:", ` * ${fallbackModule.readableIdentifier(requestShortener)}`, - 'despite it was not able to fulfill desired ordering with these modules:', + "despite it was not able to fulfill desired ordering with these modules:", ...bestMatchDeps.map((m) => { const goodReasonsMap = moduleDependenciesReasons.get(m); const goodReasons = @@ -937,10 +937,10 @@ class MiniCssExtractPlugin { const failedChunkGroups = Array.from( reasons.get(m), (cg) => cg.name - ).join(', '); + ).join(", "); const goodChunkGroups = goodReasons && - Array.from(goodReasons, (cg) => cg.name).join(', '); + Array.from(goodReasons, (cg) => cg.name).join(", "); return [ ` * ${m.readableIdentifier(requestShortener)}`, ` - couldn't fulfill desired order of chunk group(s) ${failedChunkGroups}`, @@ -948,9 +948,9 @@ class MiniCssExtractPlugin { ` - while fulfilling desired order of chunk group(s) ${goodChunkGroups}`, ] .filter(Boolean) - .join('\n'); + .join("\n"); }), - ].join('\n') + ].join("\n") ) ); } @@ -999,7 +999,7 @@ class MiniCssExtractPlugin { } externalsSource.add(content); - externalsSource.add('\n'); + externalsSource.add("\n"); } else { if (m.media) { source.add(`@media ${m.media} {\n`); @@ -1012,7 +1012,7 @@ class MiniCssExtractPlugin { const undoPath = getUndoPath(filename, compiler.outputPath, false); - content = content.replace(new RegExp(AUTO_PUBLIC_PATH, 'g'), undoPath); + content = content.replace(new RegExp(AUTO_PUBLIC_PATH, "g"), undoPath); if (m.sourceMap) { source.add( @@ -1027,10 +1027,10 @@ class MiniCssExtractPlugin { new RawSource(content, m.readableIdentifier(requestShortener)) ); } - source.add('\n'); + source.add("\n"); if (m.media) { - source.add('}\n'); + source.add("}\n"); } } } @@ -1039,6 +1039,6 @@ class MiniCssExtractPlugin { } } -MiniCssExtractPlugin.loader = require.resolve('./loader'); +MiniCssExtractPlugin.loader = require.resolve("./loader"); export default MiniCssExtractPlugin; diff --git a/src/loader.js b/src/loader.js index 7cd4ef3a..11f60dbc 100644 --- a/src/loader.js +++ b/src/loader.js @@ -1,26 +1,26 @@ -import path from 'path'; +import path from "path"; import { findModuleById, evalModuleCode, AUTO_PUBLIC_PATH, stringifyRequest, -} from './utils'; -import schema from './loader-options.json'; +} from "./utils"; +import schema from "./loader-options.json"; -import MiniCssExtractPlugin, { pluginName, pluginSymbol } from './index'; +import MiniCssExtractPlugin, { pluginName, pluginSymbol } from "./index"; function hotLoader(content, context) { const accept = context.locals - ? '' - : 'module.hot.accept(undefined, cssReload);'; + ? "" + : "module.hot.accept(undefined, cssReload);"; return `${content} if(module.hot) { // ${Date.now()} var cssReload = require(${stringifyRequest( context.context, - path.join(__dirname, 'hmr/hotModuleReplacement.js') + path.join(__dirname, "hmr/hotModuleReplacement.js") )})(module.id, ${JSON.stringify({ ...context.options, locals: !!context.locals, @@ -53,7 +53,7 @@ export function pitch(request) { let namedExport; const esModule = - typeof options.esModule !== 'undefined' ? options.esModule : true; + typeof options.esModule !== "undefined" ? options.esModule : true; const addDependencies = (dependencies) => { if (!Array.isArray(dependencies) && dependencies != null) { throw new Error( @@ -64,7 +64,7 @@ export function pitch(request) { } const identifierCountMap = new Map(); - const emit = typeof options.emit !== 'undefined' ? options.emit : true; + const emit = typeof options.emit !== "undefined" ? options.emit : true; let lastDep; for (const dependency of dependencies) { @@ -96,11 +96,11 @@ export function pitch(request) { namedExport = // eslint-disable-next-line no-underscore-dangle - originalExports.__esModule && !('locals' in originalExports.default); + originalExports.__esModule && !("locals" in originalExports.default); if (namedExport) { Object.keys(originalExports).forEach((key) => { - if (key !== 'default') { + if (key !== "default") { if (!locals) { locals = {}; } @@ -153,13 +153,13 @@ export function pitch(request) { .map( (key) => `\nexport var ${key} = ${JSON.stringify(locals[key])};` ) - .join('') + .join("") : `\n${ - esModule ? 'export default' : 'module.exports =' + esModule ? "export default" : "module.exports =" } ${JSON.stringify(locals)};` : esModule ? `\nexport {};` - : ''; + : ""; let resultSource = `// extracted by ${pluginName}`; @@ -172,14 +172,14 @@ export function pitch(request) { let { publicPath } = this._compilation.outputOptions; - if (typeof options.publicPath === 'string') { + if (typeof options.publicPath === "string") { // eslint-disable-next-line prefer-destructuring publicPath = options.publicPath; - } else if (typeof options.publicPath === 'function') { + } else if (typeof options.publicPath === "function") { publicPath = options.publicPath(this.resourcePath, this.rootContext); } - if (publicPath === 'auto') { + if (publicPath === "auto") { publicPath = AUTO_PUBLIC_PATH; } @@ -215,7 +215,7 @@ export function pitch(request) { this.addDependency(this.resourcePath); - const childFilename = '*'; + const childFilename = "*"; const outputOptions = { filename: childFilename, @@ -236,7 +236,7 @@ export function pitch(request) { }; childCompiler.options.module.parser.javascript = { ...childCompiler.options.module.parser.javascript, - url: 'relative', + url: "relative", }; const { NodeTemplatePlugin } = webpack.node; @@ -251,12 +251,12 @@ export function pitch(request) { library: { EnableLibraryPlugin }, } = webpack; - new EnableLibraryPlugin('commonjs2').apply(childCompiler); + new EnableLibraryPlugin("commonjs2").apply(childCompiler); EntryOptionPlugin.applyEntryOption(childCompiler, this.context, { child: { library: { - type: 'commonjs2', + type: "commonjs2", }, import: [`!!${request}`], }, diff --git a/src/utils.js b/src/utils.js index 3b9c447b..c3480acb 100644 --- a/src/utils.js +++ b/src/utils.js @@ -1,5 +1,5 @@ -import NativeModule from 'module'; -import path from 'path'; +import NativeModule from "module"; +import path from "path"; function trueFn() { return true; @@ -10,7 +10,7 @@ function findModuleById(compilation, id) { for (const module of modules) { const moduleId = - typeof chunkGraph !== 'undefined' + typeof chunkGraph !== "undefined" ? chunkGraph.getModuleId(module) : module.id; @@ -52,8 +52,8 @@ function compareModulesByIdentifier(a, b) { return compareIds(a.identifier(), b.identifier()); } -const MODULE_TYPE = 'css/mini-extract'; -const AUTO_PUBLIC_PATH = '__MINI_CSS_EXTRACT_PLUGIN_PUBLIC_PATH__'; +const MODULE_TYPE = "css/mini-extract"; +const AUTO_PUBLIC_PATH = "__MINI_CSS_EXTRACT_PLUGIN_PUBLIC_PATH__"; function isAbsolutePath(str) { return path.posix.isAbsolute(str) || path.win32.isAbsolute(str); @@ -66,7 +66,7 @@ function isRelativePath(str) { } function stringifyRequest(loaderContext, request) { - const splitted = request.split('!'); + const splitted = request.split("!"); const { context } = loaderContext; return JSON.stringify( @@ -74,7 +74,7 @@ function stringifyRequest(loaderContext, request) { .map((part) => { // First, separate singlePath from query, because the query might contain paths again const splittedPart = part.match(/^(.*?)(\?.*)/); - const query = splittedPart ? splittedPart[2] : ''; + const query = splittedPart ? splittedPart[2] : ""; let singlePath = splittedPart ? splittedPart[1] : part; if (isAbsolutePath(singlePath) && context) { @@ -93,9 +93,9 @@ function stringifyRequest(loaderContext, request) { } } - return singlePath.replace(/\\/g, '/') + query; + return singlePath.replace(/\\/g, "/") + query; }) - .join('!') + .join("!") ); } diff --git a/test/HMR.test.js b/test/HMR.test.js index ed543aea..360af375 100644 --- a/test/HMR.test.js +++ b/test/HMR.test.js @@ -4,31 +4,31 @@ /* eslint-env browser */ /* eslint-disable no-console */ -import hotModuleReplacement from '../src/hmr/hotModuleReplacement'; +import hotModuleReplacement from "../src/hmr/hotModuleReplacement"; function getLoadEvent() { - const event = document.createEvent('Event'); + const event = document.createEvent("Event"); - event.initEvent('load', false, false); + event.initEvent("load", false, false); return event; } function getErrorEvent() { - const event = document.createEvent('Event'); + const event = document.createEvent("Event"); - event.initEvent('error', false, false); + event.initEvent("error", false, false); return event; } -describe('HMR', () => { +describe("HMR", () => { let consoleMock = null; beforeEach(() => { - consoleMock = jest.spyOn(console, 'log').mockImplementation(() => () => {}); + consoleMock = jest.spyOn(console, "log").mockImplementation(() => () => {}); - jest.spyOn(Date, 'now').mockImplementation(() => 1479427200000); + jest.spyOn(Date, "now").mockImplementation(() => 1479427200000); document.head.innerHTML = ''; document.body.innerHTML = ''; @@ -38,8 +38,8 @@ describe('HMR', () => { consoleMock.mockClear(); }); - it('should works', (done) => { - const update = hotModuleReplacement('./src/style.css', {}); + it("should works", (done) => { + const update = hotModuleReplacement("./src/style.css", {}); update(); @@ -47,7 +47,7 @@ describe('HMR', () => { expect(console.log.mock.calls[0][0]).toMatchSnapshot(); const links = Array.prototype.slice.call( - document.querySelectorAll('link') + document.querySelectorAll("link") ); expect(links[0].visited).toBe(true); @@ -61,8 +61,8 @@ describe('HMR', () => { }, 100); }); - it('should works with multiple updates', (done) => { - const update = hotModuleReplacement('./src/style.css', {}); + it("should works with multiple updates", (done) => { + const update = hotModuleReplacement("./src/style.css", {}); update(); @@ -70,7 +70,7 @@ describe('HMR', () => { expect(console.log.mock.calls[0][0]).toMatchSnapshot(); const links = Array.prototype.slice.call( - document.querySelectorAll('link') + document.querySelectorAll("link") ); expect(links[0].visited).toBe(true); @@ -80,15 +80,15 @@ describe('HMR', () => { expect(links[1].isLoaded).toBe(true); - jest.spyOn(Date, 'now').mockImplementation(() => 1479427200001); + jest.spyOn(Date, "now").mockImplementation(() => 1479427200001); - const update2 = hotModuleReplacement('./src/style.css', {}); + const update2 = hotModuleReplacement("./src/style.css", {}); update2(); setTimeout(() => { const links2 = Array.prototype.slice.call( - document.querySelectorAll('link') + document.querySelectorAll("link") ); expect(links2[0].visited).toBe(true); @@ -104,9 +104,9 @@ describe('HMR', () => { }, 100); }); - it('should reloads with locals', (done) => { - const update = hotModuleReplacement('./src/style.css', { - locals: { foo: 'bar' }, + it("should reloads with locals", (done) => { + const update = hotModuleReplacement("./src/style.css", { + locals: { foo: "bar" }, }); update(); @@ -115,7 +115,7 @@ describe('HMR', () => { expect(console.log.mock.calls[0][0]).toMatchSnapshot(); const links = Array.prototype.slice.call( - document.querySelectorAll('link') + document.querySelectorAll("link") ); expect(links[0].visited).toBe(true); @@ -129,9 +129,9 @@ describe('HMR', () => { }, 100); }); - it('should work reload all css', (done) => { - const update = hotModuleReplacement('./src/style.css', { - filename: 'unreload_url', + it("should work reload all css", (done) => { + const update = hotModuleReplacement("./src/style.css", { + filename: "unreload_url", }); update(); @@ -140,7 +140,7 @@ describe('HMR', () => { expect(console.log.mock.calls[0][0]).toMatchSnapshot(); const links = Array.prototype.slice.call( - document.querySelectorAll('link') + document.querySelectorAll("link") ); expect(links[0].visited).toBe(true); @@ -154,11 +154,11 @@ describe('HMR', () => { }, 100); }); - it('should reloads with non http/https link href', (done) => { + it("should reloads with non http/https link href", (done) => { document.head.innerHTML = ''; - const update = hotModuleReplacement('./src/style.css', {}); + const update = hotModuleReplacement("./src/style.css", {}); update(); @@ -166,7 +166,7 @@ describe('HMR', () => { expect(console.log.mock.calls[0][0]).toMatchSnapshot(); const links = Array.prototype.slice.call( - document.querySelectorAll('link') + document.querySelectorAll("link") ); expect(links[0].visited).toBe(true); @@ -181,11 +181,11 @@ describe('HMR', () => { }, 100); }); - it('should reloads with # link href', (done) => { + it("should reloads with # link href", (done) => { document.head.innerHTML = ''; - const update = hotModuleReplacement('./src/style.css', {}); + const update = hotModuleReplacement("./src/style.css", {}); update(); @@ -193,7 +193,7 @@ describe('HMR', () => { expect(console.log.mock.calls[0][0]).toMatchSnapshot(); const links = Array.prototype.slice.call( - document.querySelectorAll('link') + document.querySelectorAll("link") ); expect(links[0].visited).toBe(true); @@ -208,11 +208,11 @@ describe('HMR', () => { }, 100); }); - it('should reloads with link without href', (done) => { + it("should reloads with link without href", (done) => { document.head.innerHTML = ''; - const update = hotModuleReplacement('./src/style.css', {}); + const update = hotModuleReplacement("./src/style.css", {}); update(); @@ -220,7 +220,7 @@ describe('HMR', () => { expect(console.log.mock.calls[0][0]).toMatchSnapshot(); const links = Array.prototype.slice.call( - document.querySelectorAll('link') + document.querySelectorAll("link") ); expect(links[0].visited).toBe(true); @@ -235,11 +235,11 @@ describe('HMR', () => { }, 100); }); - it('should reloads with absolute remove url', (done) => { + it("should reloads with absolute remove url", (done) => { document.head.innerHTML = ''; - const update = hotModuleReplacement('./src/style.css', {}); + const update = hotModuleReplacement("./src/style.css", {}); update(); @@ -247,7 +247,7 @@ describe('HMR', () => { expect(console.log.mock.calls[0][0]).toMatchSnapshot(); const links = Array.prototype.slice.call( - document.querySelectorAll('link') + document.querySelectorAll("link") ); expect(links[0].visited).toBe(true); @@ -262,10 +262,10 @@ describe('HMR', () => { }, 100); }); - it('should reloads with non-file script in the end of page', (done) => { - document.body.appendChild(document.createElement('script')); + it("should reloads with non-file script in the end of page", (done) => { + document.body.appendChild(document.createElement("script")); - const update = hotModuleReplacement('./src/non_file_styles.css', {}); + const update = hotModuleReplacement("./src/non_file_styles.css", {}); update(); @@ -273,7 +273,7 @@ describe('HMR', () => { expect(console.log.mock.calls[0][0]).toMatchSnapshot(); const links = Array.prototype.slice.call( - document.querySelectorAll('link') + document.querySelectorAll("link") ); expect(links[0].visited).toBe(true); @@ -287,8 +287,8 @@ describe('HMR', () => { }, 100); }); - it('should handle error event', (done) => { - const update = hotModuleReplacement('./src/style.css', {}); + it("should handle error event", (done) => { + const update = hotModuleReplacement("./src/style.css", {}); update(); @@ -296,7 +296,7 @@ describe('HMR', () => { expect(console.log.mock.calls[0][0]).toMatchSnapshot(); const links = Array.prototype.slice.call( - document.querySelectorAll('link') + document.querySelectorAll("link") ); expect(links[0].visited).toBe(true); @@ -310,20 +310,20 @@ describe('HMR', () => { }, 100); }); - it('should not remove old link when new link is loaded twice', (done) => { - const link = document.createElement('link'); + it("should not remove old link when new link is loaded twice", (done) => { + const link = document.createElement("link"); link.innerHTML = ''; document.head.appendChild(link); document.head.removeChild = jest.fn(); - const update = hotModuleReplacement('./dist/main.css', {}); + const update = hotModuleReplacement("./dist/main.css", {}); update(); setTimeout(() => { const links = Array.prototype.slice.call( - document.querySelectorAll('link') + document.querySelectorAll("link") ); links[1].dispatchEvent(getLoadEvent()); diff --git a/test/TestCache.test.js b/test/TestCache.test.js index 7ebb2cd2..2ad3c3fd 100644 --- a/test/TestCache.test.js +++ b/test/TestCache.test.js @@ -2,31 +2,31 @@ * @jest-environment node */ -import path from 'path'; +import path from "path"; -import webpack from 'webpack'; -import del from 'del'; +import webpack from "webpack"; +import del from "del"; -describe('TestCache', () => { +describe("TestCache", () => { afterEach(() => { jest.clearAllMocks(); }); - it('should work without cache', async () => { - const casesDirectory = path.resolve(__dirname, 'cases'); - const directoryForCase = path.resolve(casesDirectory, 'asset-modules'); + it("should work without cache", async () => { + const casesDirectory = path.resolve(__dirname, "cases"); + const directoryForCase = path.resolve(casesDirectory, "asset-modules"); // eslint-disable-next-line import/no-dynamic-require, global-require const webpackConfig = require(path.resolve( directoryForCase, - 'webpack.config.js' + "webpack.config.js" )); - const outputPath = path.resolve(__dirname, 'js/cache-false'); + const outputPath = path.resolve(__dirname, "js/cache-false"); await del([outputPath]); const compiler1 = webpack({ ...webpackConfig, - mode: 'development', + mode: "development", context: directoryForCase, cache: false, output: { @@ -69,7 +69,7 @@ describe('TestCache', () => { const compiler2 = webpack({ ...webpackConfig, - mode: 'development', + mode: "development", context: directoryForCase, cache: false, output: { @@ -107,23 +107,23 @@ describe('TestCache', () => { }); it('should work with the "memory" cache', async () => { - const casesDirectory = path.resolve(__dirname, 'cases'); - const directoryForCase = path.resolve(casesDirectory, 'asset-modules'); + const casesDirectory = path.resolve(__dirname, "cases"); + const directoryForCase = path.resolve(casesDirectory, "asset-modules"); // eslint-disable-next-line import/no-dynamic-require, global-require const webpackConfig = require(path.resolve( directoryForCase, - 'webpack.config.js' + "webpack.config.js" )); - const outputPath = path.resolve(__dirname, 'js/cache-memory'); + const outputPath = path.resolve(__dirname, "js/cache-memory"); await del([outputPath]); const compiler1 = webpack({ ...webpackConfig, - mode: 'development', + mode: "development", context: directoryForCase, cache: { - type: 'memory', + type: "memory", }, output: { path: outputPath, @@ -165,10 +165,10 @@ describe('TestCache', () => { const compiler2 = webpack({ ...webpackConfig, - mode: 'development', + mode: "development", context: directoryForCase, cache: { - type: 'memory', + type: "memory", }, output: { path: outputPath, @@ -205,27 +205,27 @@ describe('TestCache', () => { }); it('should work with the "filesystem" cache', async () => { - const casesDirectory = path.resolve(__dirname, 'cases'); - const directoryForCase = path.resolve(casesDirectory, 'simple'); + const casesDirectory = path.resolve(__dirname, "cases"); + const directoryForCase = path.resolve(casesDirectory, "simple"); // eslint-disable-next-line import/no-dynamic-require, global-require const webpackConfig = require(path.resolve( directoryForCase, - 'webpack.config.js' + "webpack.config.js" )); - const outputPath = path.resolve(__dirname, 'js/cache-filesystem'); + const outputPath = path.resolve(__dirname, "js/cache-filesystem"); const fileSystemCacheDirectory = path.resolve( __dirname, - './js/.cache/type-filesystem' + "./js/.cache/type-filesystem" ); await del([outputPath, fileSystemCacheDirectory]); const compiler1 = webpack({ ...webpackConfig, - mode: 'development', + mode: "development", context: directoryForCase, cache: { - type: 'filesystem', + type: "filesystem", cacheDirectory: fileSystemCacheDirectory, idleTimeout: 0, idleTimeoutForInitialStore: 0, @@ -268,10 +268,10 @@ describe('TestCache', () => { const compiler2 = webpack({ ...webpackConfig, - mode: 'development', + mode: "development", context: directoryForCase, cache: { - type: 'filesystem', + type: "filesystem", cacheDirectory: fileSystemCacheDirectory, idleTimeout: 0, idleTimeoutForInitialStore: 0, @@ -310,30 +310,30 @@ describe('TestCache', () => { }); it('should work with the "filesystem" cache and asset modules', async () => { - const casesDirectory = path.resolve(__dirname, 'cases'); - const directoryForCase = path.resolve(casesDirectory, 'asset-modules'); + const casesDirectory = path.resolve(__dirname, "cases"); + const directoryForCase = path.resolve(casesDirectory, "asset-modules"); // eslint-disable-next-line import/no-dynamic-require, global-require const webpackConfig = require(path.resolve( directoryForCase, - 'webpack.config.js' + "webpack.config.js" )); const outputPath = path.resolve( __dirname, - 'js/cache-filesystem-asset-modules' + "js/cache-filesystem-asset-modules" ); const fileSystemCacheDirectory = path.resolve( __dirname, - './js/.cache/type-filesystem' + "./js/.cache/type-filesystem" ); await del([outputPath, fileSystemCacheDirectory]); const compiler1 = webpack({ ...webpackConfig, - mode: 'development', + mode: "development", context: directoryForCase, cache: { - type: 'filesystem', + type: "filesystem", cacheDirectory: fileSystemCacheDirectory, idleTimeout: 0, idleTimeoutForInitialStore: 0, @@ -378,10 +378,10 @@ describe('TestCache', () => { const compiler2 = webpack({ ...webpackConfig, - mode: 'development', + mode: "development", context: directoryForCase, cache: { - type: 'filesystem', + type: "filesystem", cacheDirectory: fileSystemCacheDirectory, idleTimeout: 0, idleTimeoutForInitialStore: 0, @@ -421,30 +421,30 @@ describe('TestCache', () => { }); it('should work with the "filesystem" cache and file-loader', async () => { - const casesDirectory = path.resolve(__dirname, 'cases'); - const directoryForCase = path.resolve(casesDirectory, 'file-loader'); + const casesDirectory = path.resolve(__dirname, "cases"); + const directoryForCase = path.resolve(casesDirectory, "file-loader"); // eslint-disable-next-line import/no-dynamic-require, global-require const webpackConfig = require(path.resolve( directoryForCase, - 'webpack.config.js' + "webpack.config.js" )); const outputPath = path.resolve( __dirname, - 'js/cache-filesystem-file-loader' + "js/cache-filesystem-file-loader" ); const fileSystemCacheDirectory = path.resolve( __dirname, - './js/.cache/type-filesystem' + "./js/.cache/type-filesystem" ); await del([outputPath, fileSystemCacheDirectory]); const compiler1 = webpack({ ...webpackConfig, - mode: 'development', + mode: "development", context: directoryForCase, cache: { - type: 'filesystem', + type: "filesystem", cacheDirectory: fileSystemCacheDirectory, idleTimeout: 0, idleTimeoutForInitialStore: 0, @@ -489,10 +489,10 @@ describe('TestCache', () => { const compiler2 = webpack({ ...webpackConfig, - mode: 'development', + mode: "development", context: directoryForCase, cache: { - type: 'filesystem', + type: "filesystem", cacheDirectory: fileSystemCacheDirectory, idleTimeout: 0, idleTimeoutForInitialStore: 0, diff --git a/test/TestCases.test.js b/test/TestCases.test.js index f9d70513..256bbcbc 100644 --- a/test/TestCases.test.js +++ b/test/TestCases.test.js @@ -2,12 +2,12 @@ * @jest-environment node */ -import fs from 'fs'; -import path from 'path'; +import fs from "fs"; +import path from "path"; -import webpack from 'webpack'; +import webpack from "webpack"; -import Self from '../src/index'; +import Self from "../src/index"; function clearDirectory(dirPath) { let files; @@ -46,14 +46,14 @@ function compareDirectory(actual, expected) { path.resolve(expected, file) ); } else if (stats.isFile()) { - const content = fs.readFileSync(path.resolve(expected, file), 'utf8'); + const content = fs.readFileSync(path.resolve(expected, file), "utf8"); let actualContent; if (/^MISSING/.test(content)) { expect(fs.existsSync(path.resolve(actual, file))).toBe(false); } else { try { - actualContent = fs.readFileSync(path.resolve(actual, file), 'utf8'); + actualContent = fs.readFileSync(path.resolve(actual, file), "utf8"); } catch (error) { // eslint-disable-next-line no-console console.log(error); @@ -70,17 +70,17 @@ function compareDirectory(actual, expected) { } } -describe('TestCases', () => { - const casesDirectory = path.resolve(__dirname, 'cases'); - const outputDirectory = path.resolve(__dirname, 'js'); +describe("TestCases", () => { + const casesDirectory = path.resolve(__dirname, "cases"); + const outputDirectory = path.resolve(__dirname, "js"); const tests = fs.readdirSync(casesDirectory).filter((test) => { const testDirectory = path.join(casesDirectory, test); - const filterPath = path.join(testDirectory, 'test.filter.js'); + const filterPath = path.join(testDirectory, "test.filter.js"); // eslint-disable-next-line global-require, import/no-dynamic-require if (fs.existsSync(filterPath) && !require(filterPath)()) { describe.skip(test, () => { - it('filtered', () => {}); + it("filtered", () => {}); }); return false; @@ -95,8 +95,8 @@ describe('TestCases', () => { if (!/^(\.|_)/.test(directory)) { // eslint-disable-next-line no-loop-func it(`${directory} should compile to the expected result`, (done) => { - if (directory === 'serializingBigStrings') { - clearDirectory(path.resolve(__dirname, '../node_modules/.cache')); + if (directory === "serializingBigStrings") { + clearDirectory(path.resolve(__dirname, "../node_modules/.cache")); } const directoryForCase = path.resolve(casesDirectory, directory); @@ -104,7 +104,7 @@ describe('TestCases', () => { // eslint-disable-next-line import/no-dynamic-require, global-require const webpackConfig = require(path.resolve( directoryForCase, - 'webpack.config.js' + "webpack.config.js" )); const { context } = webpackConfig; @@ -112,7 +112,7 @@ describe('TestCases', () => { Object.assign( config, { - mode: 'none', + mode: "none", context: directoryForCase, }, config, @@ -146,7 +146,7 @@ describe('TestCases', () => { } if (stats.hasErrors()) { - const errorsPath = path.join(directoryForCase, './errors.test.js'); + const errorsPath = path.join(directoryForCase, "./errors.test.js"); if (fs.existsSync(errorsPath)) { const { errors } = stats.compilation; @@ -159,7 +159,7 @@ describe('TestCases', () => { ); if (filteredErrors.length > 0) { - done(new Error(`Errors:\n${filteredErrors.join(',\n')}`)); + done(new Error(`Errors:\n${filteredErrors.join(",\n")}`)); return; } @@ -178,7 +178,7 @@ describe('TestCases', () => { done( new Error( stats.toString({ - context: path.resolve(__dirname, '..'), + context: path.resolve(__dirname, ".."), errorDetails: true, warnings: true, }) @@ -188,23 +188,23 @@ describe('TestCases', () => { return; } - const expectedDirectory = path.resolve(directoryForCase, 'expected'); + const expectedDirectory = path.resolve(directoryForCase, "expected"); const expectedDirectoryByVersion = path.join( expectedDirectory, `webpack-${webpack.version[0]}${ - process.env.EXPERIMENTAL_USE_IMPORT_MODULE ? '-importModule' : '' + process.env.EXPERIMENTAL_USE_IMPORT_MODULE ? "-importModule" : "" }` ); if (/^hmr/.test(directory)) { let res = fs - .readFileSync(path.resolve(outputDirectoryForCase, 'main.js')) + .readFileSync(path.resolve(outputDirectoryForCase, "main.js")) .toString(); const date = Date.now().toString().slice(0, 6); - const dateRegexp = new RegExp(`${date}\\d+`, 'gi'); + const dateRegexp = new RegExp(`${date}\\d+`, "gi"); - res = res.replace(dateRegexp, ''); + res = res.replace(dateRegexp, ""); const matchAll = res.match( /__webpack_require__\.h = \(\) => \(("[\d\w].*")\)/i @@ -214,11 +214,11 @@ describe('TestCases', () => { res = res.replace( /__webpack_require__\.h = \(\) => \(("[\d\w].*")\)/i, - `__webpack_require__.h = () => ("${replacer.fill('x').join('')}")` + `__webpack_require__.h = () => ("${replacer.fill("x").join("")}")` ); fs.writeFileSync( - path.resolve(outputDirectoryForCase, 'main.js'), + path.resolve(outputDirectoryForCase, "main.js"), res ); } @@ -232,7 +232,7 @@ describe('TestCases', () => { compareDirectory(outputDirectoryForCase, expectedDirectory); } - const warningsFile = path.resolve(directoryForCase, 'warnings.js'); + const warningsFile = path.resolve(directoryForCase, "warnings.js"); if (fs.existsSync(warningsFile)) { const actualWarnings = stats.toString({ @@ -245,11 +245,11 @@ describe('TestCases', () => { expect( actualWarnings .trim() - .replace(/\*\scss\s(.*)?!/g, '* css /path/to/loader.js!') + .replace(/\*\scss\s(.*)?!/g, "* css /path/to/loader.js!") ).toBe( expectedWarnings .trim() - .replace(/\*\scss\s(.*)?!/g, '* css /path/to/loader.js!') + .replace(/\*\scss\s(.*)?!/g, "* css /path/to/loader.js!") ); } diff --git a/test/TestMemoryFS.test.js b/test/TestMemoryFS.test.js index db79d4f9..46eaa463 100644 --- a/test/TestMemoryFS.test.js +++ b/test/TestMemoryFS.test.js @@ -1,22 +1,22 @@ -import path from 'path'; +import path from "path"; -import { createFsFromVolume, Volume } from 'memfs'; -import webpack from 'webpack'; +import { createFsFromVolume, Volume } from "memfs"; +import webpack from "webpack"; const assetsNames = (assets) => assets.map((asset) => asset.name); -describe('TestMemoryFS', () => { - it('should preserve asset even if not emitted', (done) => { - const casesDirectory = path.resolve(__dirname, 'cases'); - const directoryForCase = path.resolve(casesDirectory, 'simple-publicpath'); +describe("TestMemoryFS", () => { + it("should preserve asset even if not emitted", (done) => { + const casesDirectory = path.resolve(__dirname, "cases"); + const directoryForCase = path.resolve(casesDirectory, "simple-publicpath"); // eslint-disable-next-line import/no-dynamic-require, global-require const webpackConfig = require(path.resolve( directoryForCase, - 'webpack.config.js' + "webpack.config.js" )); const compiler = webpack({ ...webpackConfig, - mode: 'development', + mode: "development", context: directoryForCase, cache: false, }); diff --git a/test/api.test.js b/test/api.test.js index a6e79a6c..1f00bdbc 100644 --- a/test/api.test.js +++ b/test/api.test.js @@ -1,15 +1,15 @@ -import webpack from 'webpack'; +import webpack from "webpack"; -import MiniCssExtractPlugin from '../src'; +import MiniCssExtractPlugin from "../src"; -describe('API', () => { - it('should return the same CssModule when same webpack instance provided', () => { +describe("API", () => { + it("should return the same CssModule when same webpack instance provided", () => { expect(MiniCssExtractPlugin.getCssModule(webpack)).toEqual( MiniCssExtractPlugin.getCssModule(webpack) ); }); - it('should return the same CssDependency when same webpack instance provided', () => { + it("should return the same CssDependency when same webpack instance provided", () => { expect(MiniCssExtractPlugin.getCssDependency(webpack)).toEqual( MiniCssExtractPlugin.getCssDependency(webpack) ); diff --git a/test/attributes-option.test.js b/test/attributes-option.test.js index 4449a8ea..68a4d47c 100644 --- a/test/attributes-option.test.js +++ b/test/attributes-option.test.js @@ -1,7 +1,7 @@ /* eslint-env browser */ -import path from 'path'; +import path from "path"; -import MiniCssExtractPlugin from '../src/cjs'; +import MiniCssExtractPlugin from "../src/cjs"; import { compile, @@ -9,66 +9,66 @@ import { getErrors, getWarnings, runInJsDom, -} from './helpers/index'; +} from "./helpers/index"; -describe('attributes option', () => { +describe("attributes option", () => { it(`should work without attributes option`, async () => { const compiler = getCompiler( - 'attributes.js', + "attributes.js", {}, { output: { - publicPath: '', - path: path.resolve(__dirname, '../outputs'), - filename: '[name].bundle.js', + publicPath: "", + path: path.resolve(__dirname, "../outputs"), + filename: "[name].bundle.js", }, plugins: [ new MiniCssExtractPlugin({ - filename: '[name].css', + filename: "[name].css", }), ], } ); const stats = await compile(compiler); - runInJsDom('main.bundle.js', compiler, stats, (dom) => { + runInJsDom("main.bundle.js", compiler, stats, (dom) => { // console.log(dom.serialize()) - expect(dom.serialize()).toMatchSnapshot('DOM'); + expect(dom.serialize()).toMatchSnapshot("DOM"); }); - expect(getWarnings(stats)).toMatchSnapshot('warnings'); - expect(getErrors(stats)).toMatchSnapshot('errors'); + expect(getWarnings(stats)).toMatchSnapshot("warnings"); + expect(getErrors(stats)).toMatchSnapshot("errors"); }); it(`should work with attributes option`, async () => { const compiler = getCompiler( - 'attributes.js', + "attributes.js", {}, { output: { - publicPath: '', - path: path.resolve(__dirname, '../outputs'), - filename: '[name].bundle.js', + publicPath: "", + path: path.resolve(__dirname, "../outputs"), + filename: "[name].bundle.js", }, plugins: [ new MiniCssExtractPlugin({ attributes: { - id: 'target', - 'data-target': 'example', + id: "target", + "data-target": "example", }, - filename: '[name].css', + filename: "[name].css", }), ], } ); const stats = await compile(compiler); - runInJsDom('main.bundle.js', compiler, stats, (dom) => { + runInJsDom("main.bundle.js", compiler, stats, (dom) => { // console.log(dom.serialize()) - expect(dom.serialize()).toMatchSnapshot('DOM'); + expect(dom.serialize()).toMatchSnapshot("DOM"); }); - expect(getWarnings(stats)).toMatchSnapshot('warnings'); - expect(getErrors(stats)).toMatchSnapshot('errors'); + expect(getWarnings(stats)).toMatchSnapshot("warnings"); + expect(getErrors(stats)).toMatchSnapshot("errors"); }); }); diff --git a/test/cases/asset-modules/index.js b/test/cases/asset-modules/index.js index aa3357bf..4fe51c72 100644 --- a/test/cases/asset-modules/index.js +++ b/test/cases/asset-modules/index.js @@ -1 +1 @@ -import './style.css'; +import "./style.css"; diff --git a/test/cases/asset-modules/webpack.config.js b/test/cases/asset-modules/webpack.config.js index a7746a62..a62b00cf 100644 --- a/test/cases/asset-modules/webpack.config.js +++ b/test/cases/asset-modules/webpack.config.js @@ -1,7 +1,7 @@ -import Self from '../../../src'; +import Self from "../../../src"; module.exports = { - entry: './index.js', + entry: "./index.js", module: { rules: [ { @@ -10,24 +10,24 @@ module.exports = { { loader: Self.loader, options: { - publicPath: '', + publicPath: "", }, }, - 'css-loader', + "css-loader", ], }, { test: /\.svg$/, - type: 'asset/resource', + type: "asset/resource", generator: { - filename: 'static/[name][ext][query]', + filename: "static/[name][ext][query]", }, }, ], }, plugins: [ new Self({ - filename: '[name].css', + filename: "[name].css", }), ], }; diff --git a/test/cases/at-import/a.css b/test/cases/at-import/a.css index 34ce1e9c..fcc50d64 100644 --- a/test/cases/at-import/a.css +++ b/test/cases/at-import/a.css @@ -1,8 +1,8 @@ -@import './ae.css'; -@import './aa.css'; -@import './ab.css'; -@import './ac.css'; -@import './ad.css'; +@import "./ae.css"; +@import "./aa.css"; +@import "./ab.css"; +@import "./ac.css"; +@import "./ad.css"; body { background: red; diff --git a/test/cases/at-import/b.css b/test/cases/at-import/b.css index e300b655..eab9cbdc 100644 --- a/test/cases/at-import/b.css +++ b/test/cases/at-import/b.css @@ -1,5 +1,5 @@ -@import './ba.css'; -@import './bb.css'; +@import "./ba.css"; +@import "./bb.css"; body { background: yellow; diff --git a/test/cases/at-import/index.js b/test/cases/at-import/index.js index a0ec7954..5337afb9 100644 --- a/test/cases/at-import/index.js +++ b/test/cases/at-import/index.js @@ -1,2 +1,2 @@ -import './a.css'; -import './b.css'; +import "./a.css"; +import "./b.css"; diff --git a/test/cases/at-import/webpack.config.js b/test/cases/at-import/webpack.config.js index 4e160f26..cf55c08c 100644 --- a/test/cases/at-import/webpack.config.js +++ b/test/cases/at-import/webpack.config.js @@ -1,18 +1,18 @@ -import Self from '../../../src'; +import Self from "../../../src"; module.exports = { - entry: './index.js', + entry: "./index.js", module: { rules: [ { test: /\.css$/, - use: [Self.loader, 'css-loader'], + use: [Self.loader, "css-loader"], }, ], }, plugins: [ new Self({ - filename: '[name].css', + filename: "[name].css", }), ], }; diff --git a/test/cases/auxiliaryAssets/fonts.css b/test/cases/auxiliaryAssets/fonts.css index 954a9a05..959441f9 100644 --- a/test/cases/auxiliaryAssets/fonts.css +++ b/test/cases/auxiliaryAssets/fonts.css @@ -1,10 +1,10 @@ @font-face { - font-family: 'Roboto'; + font-family: "Roboto"; font-style: normal; font-weight: 300; font-display: swap; - src: local('Roboto Light'), local('Roboto-Light'), - url('fonts/roboto-v18-latin-300.woff2') format('woff2'), - url('fonts/roboto-v18-latin-300.woff') format('woff'), - url('fonts/roboto-v18-latin-300.ttf') format('truetype'); + src: local("Roboto Light"), local("Roboto-Light"), + url("fonts/roboto-v18-latin-300.woff2") format("woff2"), + url("fonts/roboto-v18-latin-300.woff") format("woff"), + url("fonts/roboto-v18-latin-300.ttf") format("truetype"); } diff --git a/test/cases/auxiliaryAssets/index.js b/test/cases/auxiliaryAssets/index.js index 1028876f..ccb42f55 100644 --- a/test/cases/auxiliaryAssets/index.js +++ b/test/cases/auxiliaryAssets/index.js @@ -1 +1 @@ -import './fonts.css'; +import "./fonts.css"; diff --git a/test/cases/auxiliaryAssets/webpack.config.js b/test/cases/auxiliaryAssets/webpack.config.js index 0324534a..81d78b60 100644 --- a/test/cases/auxiliaryAssets/webpack.config.js +++ b/test/cases/auxiliaryAssets/webpack.config.js @@ -1,9 +1,9 @@ -import Self from '../../../src'; +import Self from "../../../src"; class AssetsPlugin { // eslint-disable-next-line class-methods-use-this apply(compiler) { - compiler.hooks.emit.tapAsync('AssetsPlugin', (compilation, cb) => { + compiler.hooks.emit.tapAsync("AssetsPlugin", (compilation, cb) => { const stats = compilation.getStats().toJson({ all: true, }); @@ -21,10 +21,10 @@ class AssetsPlugin { } module.exports = { - entry: './index.js', - mode: 'development', + entry: "./index.js", + mode: "development", output: { - publicPath: '/', + publicPath: "/", }, optimization: { sideEffects: true, @@ -33,7 +33,7 @@ module.exports = { rules: [ { test: /\.(woff2?|ttf|eot|otf|png|jpe?g|gif|ico|svg|webp)$/, - type: 'asset', + type: "asset", }, { test: /\.css$/, @@ -45,7 +45,7 @@ module.exports = { }, }, { - loader: 'css-loader', + loader: "css-loader", options: { esModule: true, }, @@ -56,8 +56,8 @@ module.exports = { }, plugins: [ new Self({ - filename: '[name].css', - chunkFilename: '[id].[name].css', + filename: "[name].css", + chunkFilename: "[id].[name].css", }), new AssetsPlugin(), ], diff --git a/test/cases/chunkFilename-as-function/index.js b/test/cases/chunkFilename-as-function/index.js index 361d71f3..6eca02b4 100644 --- a/test/cases/chunkFilename-as-function/index.js +++ b/test/cases/chunkFilename-as-function/index.js @@ -1,4 +1,4 @@ -import './style.css'; +import "./style.css"; /* eslint-disable-next-line no-unused-expressions */ -import(/* webpackChunkName: "async" */ './async.css'); +import(/* webpackChunkName: "async" */ "./async.css"); diff --git a/test/cases/chunkFilename-as-function/webpack.config.js b/test/cases/chunkFilename-as-function/webpack.config.js index 6a4fee5b..f836622f 100644 --- a/test/cases/chunkFilename-as-function/webpack.config.js +++ b/test/cases/chunkFilename-as-function/webpack.config.js @@ -1,18 +1,18 @@ -import Self from '../../../src'; +import Self from "../../../src"; module.exports = { - entry: './index.js', + entry: "./index.js", module: { rules: [ { test: /\.css$/, - use: [Self.loader, 'css-loader'], + use: [Self.loader, "css-loader"], }, ], }, plugins: [ new Self({ - filename: '[name].css', + filename: "[name].css", chunkFilename: ({ chunk }) => `${chunk.id}.${chunk.name}.css`, }), ], diff --git a/test/cases/chunkFilename-fullhash/expected/webpack-5-importModule/0.a0b77e3a9967a95b3ac2.css b/test/cases/chunkFilename-fullhash/expected/webpack-5-importModule/0.ab3ada7332542b91ceb4.css similarity index 100% rename from test/cases/chunkFilename-fullhash/expected/webpack-5-importModule/0.a0b77e3a9967a95b3ac2.css rename to test/cases/chunkFilename-fullhash/expected/webpack-5-importModule/0.ab3ada7332542b91ceb4.css diff --git a/test/cases/chunkFilename-fullhash/expected/webpack-5-importModule/a0b77e3a9967a95b3ac2.css b/test/cases/chunkFilename-fullhash/expected/webpack-5-importModule/ab3ada7332542b91ceb4.css similarity index 100% rename from test/cases/chunkFilename-fullhash/expected/webpack-5-importModule/a0b77e3a9967a95b3ac2.css rename to test/cases/chunkFilename-fullhash/expected/webpack-5-importModule/ab3ada7332542b91ceb4.css diff --git a/test/cases/chunkFilename-fullhash/expected/webpack-5-importModule/main.js b/test/cases/chunkFilename-fullhash/expected/webpack-5-importModule/main.js index e129e640..a1329cfa 100644 --- a/test/cases/chunkFilename-fullhash/expected/webpack-5-importModule/main.js +++ b/test/cases/chunkFilename-fullhash/expected/webpack-5-importModule/main.js @@ -73,7 +73,7 @@ __webpack_require__.r(__webpack_exports__); /******/ /******/ /* webpack/runtime/getFullHash */ /******/ (() => { -/******/ __webpack_require__.h = () => ("a0b77e3a9967a95b3ac2") +/******/ __webpack_require__.h = () => ("ab3ada7332542b91ceb4") /******/ })(); /******/ /******/ /* webpack/runtime/global */ diff --git a/test/cases/chunkFilename-fullhash/expected/webpack-5/0.f8dea56ca966b9c551f2.css b/test/cases/chunkFilename-fullhash/expected/webpack-5/0.05170166b8a070c9e23e.css similarity index 100% rename from test/cases/chunkFilename-fullhash/expected/webpack-5/0.f8dea56ca966b9c551f2.css rename to test/cases/chunkFilename-fullhash/expected/webpack-5/0.05170166b8a070c9e23e.css diff --git a/test/cases/chunkFilename-fullhash/expected/webpack-5/f8dea56ca966b9c551f2.css b/test/cases/chunkFilename-fullhash/expected/webpack-5/05170166b8a070c9e23e.css similarity index 100% rename from test/cases/chunkFilename-fullhash/expected/webpack-5/f8dea56ca966b9c551f2.css rename to test/cases/chunkFilename-fullhash/expected/webpack-5/05170166b8a070c9e23e.css diff --git a/test/cases/chunkFilename-fullhash/expected/webpack-5/main.js b/test/cases/chunkFilename-fullhash/expected/webpack-5/main.js index fdbe9a74..c44321c5 100644 --- a/test/cases/chunkFilename-fullhash/expected/webpack-5/main.js +++ b/test/cases/chunkFilename-fullhash/expected/webpack-5/main.js @@ -73,7 +73,7 @@ __webpack_require__.r(__webpack_exports__); /******/ /******/ /* webpack/runtime/getFullHash */ /******/ (() => { -/******/ __webpack_require__.h = () => ("f8dea56ca966b9c551f2") +/******/ __webpack_require__.h = () => ("05170166b8a070c9e23e") /******/ })(); /******/ /******/ /* webpack/runtime/global */ diff --git a/test/cases/chunkFilename-fullhash/index.js b/test/cases/chunkFilename-fullhash/index.js index 361d71f3..6eca02b4 100644 --- a/test/cases/chunkFilename-fullhash/index.js +++ b/test/cases/chunkFilename-fullhash/index.js @@ -1,4 +1,4 @@ -import './style.css'; +import "./style.css"; /* eslint-disable-next-line no-unused-expressions */ -import(/* webpackChunkName: "async" */ './async.css'); +import(/* webpackChunkName: "async" */ "./async.css"); diff --git a/test/cases/chunkFilename-fullhash/webpack.config.js b/test/cases/chunkFilename-fullhash/webpack.config.js index 7a098a6d..17eb927b 100644 --- a/test/cases/chunkFilename-fullhash/webpack.config.js +++ b/test/cases/chunkFilename-fullhash/webpack.config.js @@ -1,19 +1,19 @@ -import Self from '../../../src'; +import Self from "../../../src"; module.exports = { - entry: './index.js', + entry: "./index.js", module: { rules: [ { test: /\.css$/, - use: [Self.loader, 'css-loader'], + use: [Self.loader, "css-loader"], }, ], }, plugins: [ new Self({ - filename: '[fullhash].css', - chunkFilename: '[id].[fullhash].css', + filename: "[fullhash].css", + chunkFilename: "[id].[fullhash].css", }), ], }; diff --git a/test/cases/chunkFilename/index.js b/test/cases/chunkFilename/index.js index 361d71f3..6eca02b4 100644 --- a/test/cases/chunkFilename/index.js +++ b/test/cases/chunkFilename/index.js @@ -1,4 +1,4 @@ -import './style.css'; +import "./style.css"; /* eslint-disable-next-line no-unused-expressions */ -import(/* webpackChunkName: "async" */ './async.css'); +import(/* webpackChunkName: "async" */ "./async.css"); diff --git a/test/cases/chunkFilename/webpack.config.js b/test/cases/chunkFilename/webpack.config.js index 74275c66..60efe871 100644 --- a/test/cases/chunkFilename/webpack.config.js +++ b/test/cases/chunkFilename/webpack.config.js @@ -1,19 +1,19 @@ -import Self from '../../../src'; +import Self from "../../../src"; module.exports = { - entry: './index.js', + entry: "./index.js", module: { rules: [ { test: /\.css$/, - use: [Self.loader, 'css-loader'], + use: [Self.loader, "css-loader"], }, ], }, plugins: [ new Self({ - filename: '[name].css', - chunkFilename: '[id].[name].css', + filename: "[name].css", + chunkFilename: "[id].[name].css", }), ], }; diff --git a/test/cases/commonjs-module-syntax/index.js b/test/cases/commonjs-module-syntax/index.js index aa3357bf..4fe51c72 100644 --- a/test/cases/commonjs-module-syntax/index.js +++ b/test/cases/commonjs-module-syntax/index.js @@ -1 +1 @@ -import './style.css'; +import "./style.css"; diff --git a/test/cases/commonjs-module-syntax/webpack.config.js b/test/cases/commonjs-module-syntax/webpack.config.js index fff4b7f8..7bde7d86 100644 --- a/test/cases/commonjs-module-syntax/webpack.config.js +++ b/test/cases/commonjs-module-syntax/webpack.config.js @@ -1,7 +1,7 @@ -import Self from '../../../src'; +import Self from "../../../src"; module.exports = { - entry: './index.js', + entry: "./index.js", module: { rules: [ { @@ -12,11 +12,11 @@ module.exports = { options: { esModule: false }, }, { - loader: 'css-loader', + loader: "css-loader", options: { modules: { - mode: 'local', - localIdentName: 'foo__[name]__[local]', + mode: "local", + localIdentName: "foo__[name]__[local]", }, }, }, @@ -26,7 +26,7 @@ module.exports = { }, plugins: [ new Self({ - filename: '[name].css', + filename: "[name].css", }), ], }; diff --git a/test/cases/composes-async/async-1.css b/test/cases/composes-async/async-1.css index 0cd611ac..41ae9f37 100644 --- a/test/cases/composes-async/async-1.css +++ b/test/cases/composes-async/async-1.css @@ -1,4 +1,4 @@ :local .base { - composes: composed from './async-2.css'; + composes: composed from "./async-2.css"; background: blue; } diff --git a/test/cases/composes-async/index.js b/test/cases/composes-async/index.js index 3f7d8808..3bbe1838 100644 --- a/test/cases/composes-async/index.js +++ b/test/cases/composes-async/index.js @@ -1,4 +1,4 @@ /* eslint-disable-next-line no-unused-expressions */ -import(/* webpackChunkName: "async-1" */ './async-1.css'); +import(/* webpackChunkName: "async-1" */ "./async-1.css"); /* eslint-disable-next-line no-unused-expressions */ -import(/* webpackChunkName: "async-2" */ './async-2.css'); +import(/* webpackChunkName: "async-2" */ "./async-2.css"); diff --git a/test/cases/composes-async/webpack.config.js b/test/cases/composes-async/webpack.config.js index 828d8b52..b7881622 100644 --- a/test/cases/composes-async/webpack.config.js +++ b/test/cases/composes-async/webpack.config.js @@ -1,7 +1,7 @@ -import Self from '../../../src'; +import Self from "../../../src"; module.exports = { - entry: './index.js', + entry: "./index.js", module: { rules: [ { @@ -9,10 +9,10 @@ module.exports = { use: [ Self.loader, { - loader: 'css-loader', + loader: "css-loader", options: { modules: { - localIdentName: '[local]', + localIdentName: "[local]", }, }, }, @@ -25,8 +25,8 @@ module.exports = { cacheGroups: { cssDedupe: { test: /\.css$/, - name: 'dedupe', - chunks: 'all', + name: "dedupe", + chunks: "all", minChunks: 2, enforce: true, }, @@ -35,7 +35,7 @@ module.exports = { }, plugins: [ new Self({ - filename: '[name].css', + filename: "[name].css", }), ], }; diff --git a/test/cases/content-entries-with-same-import/index.js b/test/cases/content-entries-with-same-import/index.js index f3b5f43e..9f79e91b 100644 --- a/test/cases/content-entries-with-same-import/index.js +++ b/test/cases/content-entries-with-same-import/index.js @@ -1,5 +1,5 @@ -const app1 = import('./one'); -const app2 = import('./two'); +const app1 = import("./one"); +const app2 = import("./two"); // eslint-disable-next-line no-console console.log(app1); diff --git a/test/cases/content-entries-with-same-import/one.js b/test/cases/content-entries-with-same-import/one.js index f9f16b34..66fdbaa9 100644 --- a/test/cases/content-entries-with-same-import/one.js +++ b/test/cases/content-entries-with-same-import/one.js @@ -1,4 +1,4 @@ -import './style1.css'; -import './style2.css'; +import "./style1.css"; +import "./style2.css"; -export default 'one'; +export default "one"; diff --git a/test/cases/content-entries-with-same-import/two.js b/test/cases/content-entries-with-same-import/two.js index ea6f0b50..952a31e5 100644 --- a/test/cases/content-entries-with-same-import/two.js +++ b/test/cases/content-entries-with-same-import/two.js @@ -1,4 +1,4 @@ -import './style2.css'; -import './style1.css'; +import "./style2.css"; +import "./style1.css"; -export default 'two'; +export default "two"; diff --git a/test/cases/content-entries-with-same-import/webpack.config.js b/test/cases/content-entries-with-same-import/webpack.config.js index b317ec1c..7681d343 100644 --- a/test/cases/content-entries-with-same-import/webpack.config.js +++ b/test/cases/content-entries-with-same-import/webpack.config.js @@ -1,21 +1,21 @@ -import Self from '../../../src'; +import Self from "../../../src"; module.exports = { - entry: './index.js', + entry: "./index.js", module: { rules: [ { test: /\.css$/, - use: [Self.loader, 'css-loader'], + use: [Self.loader, "css-loader"], }, ], }, output: { - filename: '[name].[contenthash].js', + filename: "[name].[contenthash].js", }, plugins: [ new Self({ - filename: '[name].[contenthash].css', + filename: "[name].[contenthash].css", }), ], }; diff --git a/test/cases/contenthash-multiple-entries/entryA.js b/test/cases/contenthash-multiple-entries/entryA.js index e608b00b..c1845fd4 100644 --- a/test/cases/contenthash-multiple-entries/entryA.js +++ b/test/cases/contenthash-multiple-entries/entryA.js @@ -1,2 +1,2 @@ -import './styleA.css'; -import './styleB.css'; +import "./styleA.css"; +import "./styleB.css"; diff --git a/test/cases/contenthash-multiple-entries/entryB.js b/test/cases/contenthash-multiple-entries/entryB.js index 5579c153..e5558621 100644 --- a/test/cases/contenthash-multiple-entries/entryB.js +++ b/test/cases/contenthash-multiple-entries/entryB.js @@ -1 +1 @@ -import './styleA.css'; +import "./styleA.css"; diff --git a/test/cases/contenthash-multiple-entries/entryD.js b/test/cases/contenthash-multiple-entries/entryD.js index e608b00b..c1845fd4 100644 --- a/test/cases/contenthash-multiple-entries/entryD.js +++ b/test/cases/contenthash-multiple-entries/entryD.js @@ -1,2 +1,2 @@ -import './styleA.css'; -import './styleB.css'; +import "./styleA.css"; +import "./styleB.css"; diff --git a/test/cases/contenthash-multiple-entries/entryE.js b/test/cases/contenthash-multiple-entries/entryE.js index c2cf35dd..11bc2609 100644 --- a/test/cases/contenthash-multiple-entries/entryE.js +++ b/test/cases/contenthash-multiple-entries/entryE.js @@ -1,2 +1,2 @@ -import './styleC.css'; -import './styleD.css'; +import "./styleC.css"; +import "./styleD.css"; diff --git a/test/cases/contenthash-multiple-entries/webpack.config.js b/test/cases/contenthash-multiple-entries/webpack.config.js index 41e24f0a..eebe88a2 100644 --- a/test/cases/contenthash-multiple-entries/webpack.config.js +++ b/test/cases/contenthash-multiple-entries/webpack.config.js @@ -1,27 +1,27 @@ -import Self from '../../../src'; +import Self from "../../../src"; module.exports = { entry: { - entryA: './entryA.js', - entryB: './entryB.js', - entryC: './entryC.js', - entryD: './entryD.js', - entryE: './entryE.js', + entryA: "./entryA.js", + entryB: "./entryB.js", + entryC: "./entryC.js", + entryD: "./entryD.js", + entryE: "./entryE.js", }, module: { rules: [ { test: /\.css$/, - use: [Self.loader, 'css-loader'], + use: [Self.loader, "css-loader"], }, ], }, output: { - filename: '[name]-[contenthash].js', + filename: "[name]-[contenthash].js", }, plugins: [ new Self({ - filename: '[contenthash].css', + filename: "[contenthash].css", }), ], }; diff --git a/test/cases/contenthash/index.js b/test/cases/contenthash/index.js index b2998624..6392568d 100644 --- a/test/cases/contenthash/index.js +++ b/test/cases/contenthash/index.js @@ -1,2 +1,2 @@ // eslint-disable-next-line import/no-unresolved -import './style.css'; +import "./style.css"; diff --git a/test/cases/contenthash/webpack.config.js b/test/cases/contenthash/webpack.config.js index b96f567c..59681eef 100644 --- a/test/cases/contenthash/webpack.config.js +++ b/test/cases/contenthash/webpack.config.js @@ -1,13 +1,13 @@ -import Self from '../../../src'; +import Self from "../../../src"; module.exports = [1, 2].map((n) => { return { - entry: './index.js', + entry: "./index.js", module: { rules: [ { test: /\.css$/, - use: [Self.loader, 'css-loader'], + use: [Self.loader, "css-loader"], }, ], }, @@ -16,7 +16,7 @@ module.exports = [1, 2].map((n) => { }, resolve: { alias: { - './style.css': `./style${n}.css`, + "./style.css": `./style${n}.css`, }, }, plugins: [ diff --git a/test/cases/css-import/b.css b/test/cases/css-import/b.css index ce9932a5..5e0da74e 100644 --- a/test/cases/css-import/b.css +++ b/test/cases/css-import/b.css @@ -2,7 +2,7 @@ background: red; } -@import url('https://some/external/css'); +@import url("https://some/external/css"); .b { color: yellow; diff --git a/test/cases/css-import/c.css b/test/cases/css-import/c.css index c1fec894..7760f9b4 100644 --- a/test/cases/css-import/c.css +++ b/test/cases/css-import/c.css @@ -1,8 +1,8 @@ .c { background: red; } -@import './a.css'; -@import url('https://some/other/external/css'); +@import "./a.css"; +@import url("https://some/other/external/css"); .c { color: yellow; diff --git a/test/cases/css-import/index.css b/test/cases/css-import/index.css index c03e069d..1d835e13 100644 --- a/test/cases/css-import/index.css +++ b/test/cases/css-import/index.css @@ -1,2 +1,2 @@ -@import './c.css'; -@import './b.css'; +@import "./c.css"; +@import "./b.css"; diff --git a/test/cases/css-import/webpack.config.js b/test/cases/css-import/webpack.config.js index d28b0088..bebf16ef 100644 --- a/test/cases/css-import/webpack.config.js +++ b/test/cases/css-import/webpack.config.js @@ -1,18 +1,18 @@ -import Self from '../../../src'; +import Self from "../../../src"; module.exports = { - entry: './index.css', + entry: "./index.css", module: { rules: [ { test: /\.css$/, - use: [Self.loader, 'css-loader'], + use: [Self.loader, "css-loader"], }, ], }, plugins: [ new Self({ - filename: '[name].css', + filename: "[name].css", }), ], }; diff --git a/test/cases/default-options/index.js b/test/cases/default-options/index.js index aa3357bf..4fe51c72 100644 --- a/test/cases/default-options/index.js +++ b/test/cases/default-options/index.js @@ -1 +1 @@ -import './style.css'; +import "./style.css"; diff --git a/test/cases/default-options/webpack.config.js b/test/cases/default-options/webpack.config.js index 2cfff88d..7d53ef2d 100644 --- a/test/cases/default-options/webpack.config.js +++ b/test/cases/default-options/webpack.config.js @@ -1,12 +1,12 @@ -import Self from '../../../src'; +import Self from "../../../src"; module.exports = { - entry: './index.js', + entry: "./index.js", module: { rules: [ { test: /\.css$/, - use: [Self.loader, 'css-loader'], + use: [Self.loader, "css-loader"], }, ], }, diff --git a/test/cases/dependOn-multiple-files-per-entry/entryA.js b/test/cases/dependOn-multiple-files-per-entry/entryA.js index 5579c153..e5558621 100644 --- a/test/cases/dependOn-multiple-files-per-entry/entryA.js +++ b/test/cases/dependOn-multiple-files-per-entry/entryA.js @@ -1 +1 @@ -import './styleA.css'; +import "./styleA.css"; diff --git a/test/cases/dependOn-multiple-files-per-entry/entryB.js b/test/cases/dependOn-multiple-files-per-entry/entryB.js index 31e1b1f5..3a760688 100644 --- a/test/cases/dependOn-multiple-files-per-entry/entryB.js +++ b/test/cases/dependOn-multiple-files-per-entry/entryB.js @@ -1 +1 @@ -import './styleB.css'; +import "./styleB.css"; diff --git a/test/cases/dependOn-multiple-files-per-entry/entryC.js b/test/cases/dependOn-multiple-files-per-entry/entryC.js index cb62801c..8fc7193e 100644 --- a/test/cases/dependOn-multiple-files-per-entry/entryC.js +++ b/test/cases/dependOn-multiple-files-per-entry/entryC.js @@ -1 +1 @@ -import './styleC.css'; +import "./styleC.css"; diff --git a/test/cases/dependOn-multiple-files-per-entry/entryD.js b/test/cases/dependOn-multiple-files-per-entry/entryD.js index 0db76bbe..f6c8f50d 100644 --- a/test/cases/dependOn-multiple-files-per-entry/entryD.js +++ b/test/cases/dependOn-multiple-files-per-entry/entryD.js @@ -1 +1 @@ -import './styleD.css'; +import "./styleD.css"; diff --git a/test/cases/dependOn-multiple-files-per-entry/webpack.config.js b/test/cases/dependOn-multiple-files-per-entry/webpack.config.js index dd0dcb49..dcb98f72 100644 --- a/test/cases/dependOn-multiple-files-per-entry/webpack.config.js +++ b/test/cases/dependOn-multiple-files-per-entry/webpack.config.js @@ -1,21 +1,21 @@ -import Self from '../../../src'; +import Self from "../../../src"; module.exports = { entry: { - entry1: { import: ['./entryA.js', './entryB.js'], dependOn: 'common' }, - common: ['./entryC.js', './entryD.js'], + entry1: { import: ["./entryA.js", "./entryB.js"], dependOn: "common" }, + common: ["./entryC.js", "./entryD.js"], }, module: { rules: [ { test: /\.css$/, - use: [Self.loader, 'css-loader'], + use: [Self.loader, "css-loader"], }, ], }, plugins: [ new Self({ - filename: '[name].css', + filename: "[name].css", }), ], }; diff --git a/test/cases/dependOn/entryA.js b/test/cases/dependOn/entryA.js index 5579c153..e5558621 100644 --- a/test/cases/dependOn/entryA.js +++ b/test/cases/dependOn/entryA.js @@ -1 +1 @@ -import './styleA.css'; +import "./styleA.css"; diff --git a/test/cases/dependOn/entryB.js b/test/cases/dependOn/entryB.js index 31e1b1f5..3a760688 100644 --- a/test/cases/dependOn/entryB.js +++ b/test/cases/dependOn/entryB.js @@ -1 +1 @@ -import './styleB.css'; +import "./styleB.css"; diff --git a/test/cases/dependOn/webpack.config.js b/test/cases/dependOn/webpack.config.js index e839a8f1..f5d8b85e 100644 --- a/test/cases/dependOn/webpack.config.js +++ b/test/cases/dependOn/webpack.config.js @@ -1,21 +1,21 @@ -import Self from '../../../src'; +import Self from "../../../src"; module.exports = { entry: { - entry1: { import: './entryA.js', dependOn: 'common' }, - common: './entryB.js', + entry1: { import: "./entryA.js", dependOn: "common" }, + common: "./entryB.js", }, module: { rules: [ { test: /\.css$/, - use: [Self.loader, 'css-loader'], + use: [Self.loader, "css-loader"], }, ], }, plugins: [ new Self({ - filename: '[name].css', + filename: "[name].css", }), ], }; diff --git a/test/cases/devtool-source-map-from-loaders/index.js b/test/cases/devtool-source-map-from-loaders/index.js index aa3357bf..4fe51c72 100644 --- a/test/cases/devtool-source-map-from-loaders/index.js +++ b/test/cases/devtool-source-map-from-loaders/index.js @@ -1 +1 @@ -import './style.css'; +import "./style.css"; diff --git a/test/cases/devtool-source-map-from-loaders/webpack.config.js b/test/cases/devtool-source-map-from-loaders/webpack.config.js index c9443105..b3a1eca7 100644 --- a/test/cases/devtool-source-map-from-loaders/webpack.config.js +++ b/test/cases/devtool-source-map-from-loaders/webpack.config.js @@ -1,8 +1,8 @@ -import Self from '../../../src'; +import Self from "../../../src"; module.exports = { - entry: './index.js', - devtool: 'source-map', + entry: "./index.js", + devtool: "source-map", module: { rules: [ { @@ -10,7 +10,7 @@ module.exports = { use: [ Self.loader, { - loader: 'css-loader', + loader: "css-loader", options: { sourceMap: true, }, @@ -21,7 +21,7 @@ module.exports = { }, plugins: [ new Self({ - filename: '[name].css', + filename: "[name].css", }), ], }; diff --git a/test/cases/devtool-source-map-no-source-maps-from-loaders/index.js b/test/cases/devtool-source-map-no-source-maps-from-loaders/index.js index aa3357bf..4fe51c72 100644 --- a/test/cases/devtool-source-map-no-source-maps-from-loaders/index.js +++ b/test/cases/devtool-source-map-no-source-maps-from-loaders/index.js @@ -1 +1 @@ -import './style.css'; +import "./style.css"; diff --git a/test/cases/devtool-source-map-no-source-maps-from-loaders/webpack.config.js b/test/cases/devtool-source-map-no-source-maps-from-loaders/webpack.config.js index 4fe65f63..c874de2c 100644 --- a/test/cases/devtool-source-map-no-source-maps-from-loaders/webpack.config.js +++ b/test/cases/devtool-source-map-no-source-maps-from-loaders/webpack.config.js @@ -1,8 +1,8 @@ -import Self from '../../../src'; +import Self from "../../../src"; module.exports = { - entry: './index.js', - devtool: 'source-map', + entry: "./index.js", + devtool: "source-map", module: { rules: [ { @@ -10,7 +10,7 @@ module.exports = { use: [ Self.loader, { - loader: 'css-loader', + loader: "css-loader", options: { sourceMap: false, }, @@ -21,7 +21,7 @@ module.exports = { }, plugins: [ new Self({ - filename: '[name].css', + filename: "[name].css", }), ], }; diff --git a/test/cases/devtool-source-map/index.js b/test/cases/devtool-source-map/index.js index aa3357bf..4fe51c72 100644 --- a/test/cases/devtool-source-map/index.js +++ b/test/cases/devtool-source-map/index.js @@ -1 +1 @@ -import './style.css'; +import "./style.css"; diff --git a/test/cases/devtool-source-map/webpack.config.js b/test/cases/devtool-source-map/webpack.config.js index 27fdcc4f..4e07e687 100644 --- a/test/cases/devtool-source-map/webpack.config.js +++ b/test/cases/devtool-source-map/webpack.config.js @@ -1,19 +1,19 @@ -import Self from '../../../src'; +import Self from "../../../src"; module.exports = { - entry: './index.js', - devtool: 'source-map', + entry: "./index.js", + devtool: "source-map", module: { rules: [ { test: /\.css$/, - use: [Self.loader, 'css-loader'], + use: [Self.loader, "css-loader"], }, ], }, plugins: [ new Self({ - filename: '[name].css', + filename: "[name].css", }), ], }; diff --git a/test/cases/es-module-concatenation-modules/index.js b/test/cases/es-module-concatenation-modules/index.js index c0f0fe59..42710aa3 100644 --- a/test/cases/es-module-concatenation-modules/index.js +++ b/test/cases/es-module-concatenation-modules/index.js @@ -1,10 +1,10 @@ /* eslint-disable import/no-namespace */ -import * as a from './a.css'; -import * as b from './b.css'; +import * as a from "./a.css"; +import * as b from "./b.css"; -import * as all from './index'; +import * as all from "./index"; -export * from './c.css'; +export * from "./c.css"; export { a, b }; // eslint-disable-next-line no-console diff --git a/test/cases/es-module-concatenation-modules/webpack.config.js b/test/cases/es-module-concatenation-modules/webpack.config.js index d99cc612..2e113d33 100644 --- a/test/cases/es-module-concatenation-modules/webpack.config.js +++ b/test/cases/es-module-concatenation-modules/webpack.config.js @@ -1,7 +1,7 @@ -import Self from '../../../src'; +import Self from "../../../src"; module.exports = { - entry: './index.js', + entry: "./index.js", optimization: { concatenateModules: true, }, @@ -17,12 +17,12 @@ module.exports = { }, }, { - loader: 'css-loader', + loader: "css-loader", options: { esModule: true, modules: { namedExport: true, - localIdentName: 'foo__[local]', + localIdentName: "foo__[local]", }, }, }, @@ -32,7 +32,7 @@ module.exports = { }, plugins: [ new Self({ - filename: '[name].css', + filename: "[name].css", }), ], }; diff --git a/test/cases/es-module-concatenation/index.js b/test/cases/es-module-concatenation/index.js index 134f6474..84ce35d2 100644 --- a/test/cases/es-module-concatenation/index.js +++ b/test/cases/es-module-concatenation/index.js @@ -1,3 +1,3 @@ -import './a.css'; -import './b.css'; -import './c.css'; +import "./a.css"; +import "./b.css"; +import "./c.css"; diff --git a/test/cases/es-module-concatenation/webpack.config.js b/test/cases/es-module-concatenation/webpack.config.js index 88877333..c54e4624 100644 --- a/test/cases/es-module-concatenation/webpack.config.js +++ b/test/cases/es-module-concatenation/webpack.config.js @@ -1,7 +1,7 @@ -import Self from '../../../src'; +import Self from "../../../src"; module.exports = { - entry: './index.js', + entry: "./index.js", optimization: { concatenateModules: true, }, @@ -16,14 +16,14 @@ module.exports = { esModule: true, }, }, - 'css-loader', + "css-loader", ], }, ], }, plugins: [ new Self({ - filename: '[name].css', + filename: "[name].css", }), ], }; diff --git a/test/cases/es-module-syntax/index.js b/test/cases/es-module-syntax/index.js index aa3357bf..4fe51c72 100644 --- a/test/cases/es-module-syntax/index.js +++ b/test/cases/es-module-syntax/index.js @@ -1 +1 @@ -import './style.css'; +import "./style.css"; diff --git a/test/cases/es-module-syntax/webpack.config.js b/test/cases/es-module-syntax/webpack.config.js index 751f009f..db2af7e8 100644 --- a/test/cases/es-module-syntax/webpack.config.js +++ b/test/cases/es-module-syntax/webpack.config.js @@ -1,7 +1,7 @@ -import Self from '../../../src'; +import Self from "../../../src"; module.exports = { - entry: './index.js', + entry: "./index.js", module: { rules: [ { @@ -12,11 +12,11 @@ module.exports = { options: { esModule: true }, }, { - loader: 'css-loader', + loader: "css-loader", options: { modules: { - mode: 'local', - localIdentName: 'foo__[name]__[local]', + mode: "local", + localIdentName: "foo__[name]__[local]", }, }, }, @@ -26,7 +26,7 @@ module.exports = { }, plugins: [ new Self({ - filename: '[name].css', + filename: "[name].css", }), ], }; diff --git a/test/cases/es-named-export-output-module/index.js b/test/cases/es-named-export-output-module/index.js index 203372d5..ccbeff4d 100644 --- a/test/cases/es-named-export-output-module/index.js +++ b/test/cases/es-named-export-output-module/index.js @@ -1,4 +1,4 @@ -import css, { aClass, bClass, cClass } from './style.css'; +import css, { aClass, bClass, cClass } from "./style.css"; // eslint-disable-next-line no-console console.log({ css, aClass, bClass, cClass }); diff --git a/test/cases/es-named-export-output-module/webpack.config.js b/test/cases/es-named-export-output-module/webpack.config.js index 214626a7..c4831a52 100644 --- a/test/cases/es-named-export-output-module/webpack.config.js +++ b/test/cases/es-named-export-output-module/webpack.config.js @@ -1,7 +1,7 @@ -import Self from '../../../src'; +import Self from "../../../src"; module.exports = { - entry: './index.js', + entry: "./index.js", module: { rules: [ { @@ -11,12 +11,12 @@ module.exports = { loader: Self.loader, }, { - loader: 'css-loader', + loader: "css-loader", options: { esModule: true, modules: { namedExport: true, - localIdentName: 'foo__[name]__[local]', + localIdentName: "foo__[name]__[local]", }, }, }, @@ -32,7 +32,7 @@ module.exports = { }, plugins: [ new Self({ - filename: '[name].css', + filename: "[name].css", }), ], }; diff --git a/test/cases/es-named-export/index.js b/test/cases/es-named-export/index.js index 203372d5..ccbeff4d 100644 --- a/test/cases/es-named-export/index.js +++ b/test/cases/es-named-export/index.js @@ -1,4 +1,4 @@ -import css, { aClass, bClass, cClass } from './style.css'; +import css, { aClass, bClass, cClass } from "./style.css"; // eslint-disable-next-line no-console console.log({ css, aClass, bClass, cClass }); diff --git a/test/cases/es-named-export/webpack.config.js b/test/cases/es-named-export/webpack.config.js index 3337cfb4..6ab62bc2 100644 --- a/test/cases/es-named-export/webpack.config.js +++ b/test/cases/es-named-export/webpack.config.js @@ -1,7 +1,7 @@ -import Self from '../../../src'; +import Self from "../../../src"; module.exports = { - entry: './index.js', + entry: "./index.js", module: { rules: [ { @@ -11,12 +11,12 @@ module.exports = { loader: Self.loader, }, { - loader: 'css-loader', + loader: "css-loader", options: { esModule: true, modules: { namedExport: true, - localIdentName: 'foo__[name]__[local]', + localIdentName: "foo__[name]__[local]", }, }, }, @@ -26,7 +26,7 @@ module.exports = { }, plugins: [ new Self({ - filename: '[name].css', + filename: "[name].css", }), ], }; diff --git a/test/cases/file-loader/index.js b/test/cases/file-loader/index.js index aa3357bf..4fe51c72 100644 --- a/test/cases/file-loader/index.js +++ b/test/cases/file-loader/index.js @@ -1 +1 @@ -import './style.css'; +import "./style.css"; diff --git a/test/cases/file-loader/webpack.config.js b/test/cases/file-loader/webpack.config.js index 05db214f..081922be 100644 --- a/test/cases/file-loader/webpack.config.js +++ b/test/cases/file-loader/webpack.config.js @@ -1,7 +1,7 @@ -import Self from '../../../src'; +import Self from "../../../src"; module.exports = { - entry: './index.js', + entry: "./index.js", module: { rules: [ { @@ -10,19 +10,19 @@ module.exports = { { loader: Self.loader, options: { - publicPath: '', + publicPath: "", }, }, - 'css-loader', + "css-loader", ], }, { test: /\.svg$/, use: [ { - loader: 'file-loader', + loader: "file-loader", options: { - name: 'static/[name].[ext]', + name: "static/[name].[ext]", }, }, ], @@ -31,7 +31,7 @@ module.exports = { }, plugins: [ new Self({ - filename: '[name].css', + filename: "[name].css", }), ], }; diff --git a/test/cases/filename-as-function/index.js b/test/cases/filename-as-function/index.js index aa3357bf..4fe51c72 100644 --- a/test/cases/filename-as-function/index.js +++ b/test/cases/filename-as-function/index.js @@ -1 +1 @@ -import './style.css'; +import "./style.css"; diff --git a/test/cases/filename-as-function/webpack.config.js b/test/cases/filename-as-function/webpack.config.js index 051478b7..8e37fd85 100644 --- a/test/cases/filename-as-function/webpack.config.js +++ b/test/cases/filename-as-function/webpack.config.js @@ -1,23 +1,23 @@ -import Self from '../../../src'; +import Self from "../../../src"; module.exports = { entry: { - 'demo/js/main': './index.js', + "demo/js/main": "./index.js", }, module: { rules: [ { test: /\.css$/, - use: [Self.loader, 'css-loader'], + use: [Self.loader, "css-loader"], }, ], }, output: { - filename: '[name].js', + filename: "[name].js", }, plugins: [ new Self({ - filename: ({ chunk }) => `${chunk.name.replace('/js/', '/css/')}.css`, + filename: ({ chunk }) => `${chunk.name.replace("/js/", "/css/")}.css`, }), ], }; diff --git a/test/cases/filename-with-template/index.js b/test/cases/filename-with-template/index.js index 361d71f3..6eca02b4 100644 --- a/test/cases/filename-with-template/index.js +++ b/test/cases/filename-with-template/index.js @@ -1,4 +1,4 @@ -import './style.css'; +import "./style.css"; /* eslint-disable-next-line no-unused-expressions */ -import(/* webpackChunkName: "async" */ './async.css'); +import(/* webpackChunkName: "async" */ "./async.css"); diff --git a/test/cases/filename-with-template/webpack.config.js b/test/cases/filename-with-template/webpack.config.js index 4e160f26..cf55c08c 100644 --- a/test/cases/filename-with-template/webpack.config.js +++ b/test/cases/filename-with-template/webpack.config.js @@ -1,18 +1,18 @@ -import Self from '../../../src'; +import Self from "../../../src"; module.exports = { - entry: './index.js', + entry: "./index.js", module: { rules: [ { test: /\.css$/, - use: [Self.loader, 'css-loader'], + use: [Self.loader, "css-loader"], }, ], }, plugins: [ new Self({ - filename: '[name].css', + filename: "[name].css", }), ], }; diff --git a/test/cases/filename-without-template/index.js b/test/cases/filename-without-template/index.js index 361d71f3..6eca02b4 100644 --- a/test/cases/filename-without-template/index.js +++ b/test/cases/filename-without-template/index.js @@ -1,4 +1,4 @@ -import './style.css'; +import "./style.css"; /* eslint-disable-next-line no-unused-expressions */ -import(/* webpackChunkName: "async" */ './async.css'); +import(/* webpackChunkName: "async" */ "./async.css"); diff --git a/test/cases/filename-without-template/webpack.config.js b/test/cases/filename-without-template/webpack.config.js index 6814befd..52a8abd6 100644 --- a/test/cases/filename-without-template/webpack.config.js +++ b/test/cases/filename-without-template/webpack.config.js @@ -1,18 +1,18 @@ -import Self from '../../../src'; +import Self from "../../../src"; module.exports = { - entry: './index.js', + entry: "./index.js", module: { rules: [ { test: /\.css$/, - use: [Self.loader, 'css-loader'], + use: [Self.loader, "css-loader"], }, ], }, plugins: [ new Self({ - filename: 'main.css', + filename: "main.css", }), ], }; diff --git a/test/cases/hmr/b.css b/test/cases/hmr/b.css index ce9932a5..5e0da74e 100644 --- a/test/cases/hmr/b.css +++ b/test/cases/hmr/b.css @@ -2,7 +2,7 @@ background: red; } -@import url('https://some/external/css'); +@import url("https://some/external/css"); .b { color: yellow; diff --git a/test/cases/hmr/c.css b/test/cases/hmr/c.css index c1fec894..7760f9b4 100644 --- a/test/cases/hmr/c.css +++ b/test/cases/hmr/c.css @@ -1,8 +1,8 @@ .c { background: red; } -@import './a.css'; -@import url('https://some/other/external/css'); +@import "./a.css"; +@import url("https://some/other/external/css"); .c { color: yellow; diff --git a/test/cases/hmr/expected/webpack-5-importModule/main.js b/test/cases/hmr/expected/webpack-5-importModule/main.js index 1642f5af..6db73b01 100644 --- a/test/cases/hmr/expected/webpack-5-importModule/main.js +++ b/test/cases/hmr/expected/webpack-5-importModule/main.js @@ -30,7 +30,7 @@ const normalizeUrl = __webpack_require__(2); const srcByModuleId = Object.create(null); -const noDocument = typeof document === 'undefined'; +const noDocument = typeof document === "undefined"; const { forEach } = Array.prototype; @@ -60,7 +60,7 @@ function getCurrentScriptUrl(moduleId) { if (document.currentScript) { ({ src } = document.currentScript); } else { - const scripts = document.getElementsByTagName('script'); + const scripts = document.getElementsByTagName("script"); const lastScriptTag = scripts[scripts.length - 1]; if (lastScriptTag) { @@ -80,15 +80,15 @@ function getCurrentScriptUrl(moduleId) { const filename = splitResult && splitResult[1]; if (!filename) { - return [src.replace('.js', '.css')]; + return [src.replace(".js", ".css")]; } if (!fileMap) { - return [src.replace('.js', '.css')]; + return [src.replace(".js", ".css")]; } - return fileMap.split(',').map((mapRule) => { - const reg = new RegExp(`${filename}\\.js$`, 'g'); + return fileMap.split(",").map((mapRule) => { + const reg = new RegExp(`${filename}\\.js$`, "g"); return normalizeUrl( src.replace(reg, `${mapRule.replace(/{fileName}/g, filename)}.css`) @@ -104,7 +104,7 @@ function updateCss(el, url) { } // eslint-disable-next-line - url = el.href.split('?')[0]; + url = el.href.split("?")[0]; } if (!isUrlRequest(url)) { @@ -117,7 +117,7 @@ function updateCss(el, url) { return; } - if (!url || !(url.indexOf('.css') > -1)) { + if (!url || !(url.indexOf(".css") > -1)) { return; } @@ -128,7 +128,7 @@ function updateCss(el, url) { newEl.isLoaded = false; - newEl.addEventListener('load', () => { + newEl.addEventListener("load", () => { if (newEl.isLoaded) { return; } @@ -137,7 +137,7 @@ function updateCss(el, url) { el.parentNode.removeChild(el); }); - newEl.addEventListener('error', () => { + newEl.addEventListener("error", () => { if (newEl.isLoaded) { return; } @@ -176,7 +176,7 @@ function reloadStyle(src) { return false; } - const elements = document.querySelectorAll('link'); + const elements = document.querySelectorAll("link"); let loaded = false; forEach.call(elements, (el) => { @@ -205,7 +205,7 @@ function reloadStyle(src) { } function reloadAll() { - const elements = document.querySelectorAll('link'); + const elements = document.querySelectorAll("link"); forEach.call(elements, (el) => { if (el.visited === true) { @@ -229,7 +229,7 @@ function isUrlRequest(url) { module.exports = function (moduleId, options) { if (noDocument) { - console.log('no window.document found, will not HMR CSS'); + console.log("no window.document found, will not HMR CSS"); return noop; } @@ -241,7 +241,7 @@ module.exports = function (moduleId, options) { const reloaded = reloadStyle(src); if (options.locals) { - console.log('[HMR] Detected local css modules. Reload all css'); + console.log("[HMR] Detected local css modules. Reload all css"); reloadAll(); @@ -249,9 +249,9 @@ module.exports = function (moduleId, options) { } if (reloaded) { - console.log('[HMR] css reload %s', src.join(' ')); + console.log("[HMR] css reload %s", src.join(" ")); } else { - console.log('[HMR] Reload all css'); + console.log("[HMR] Reload all css"); reloadAll(); } @@ -271,10 +271,10 @@ function normalizeUrl(pathComponents) { return pathComponents .reduce(function (accumulator, item) { switch (item) { - case '..': + case "..": accumulator.pop(); break; - case '.': + case ".": break; default: accumulator.push(item); @@ -282,7 +282,7 @@ function normalizeUrl(pathComponents) { return accumulator; }, []) - .join('/'); + .join("/"); } module.exports = function (urlString) { @@ -293,11 +293,11 @@ module.exports = function (urlString) { } var protocol = - urlString.indexOf('//') !== -1 ? urlString.split('//')[0] + '//' : ''; - var components = urlString.replace(new RegExp(protocol, 'i'), '').split('/'); - var host = components[0].toLowerCase().replace(/\.$/, ''); + urlString.indexOf("//") !== -1 ? urlString.split("//")[0] + "//" : ""; + var components = urlString.replace(new RegExp(protocol, "i"), "").split("/"); + var host = components[0].toLowerCase().replace(/\.$/, ""); - components[0] = ''; + components[0] = ""; var path = normalizeUrl(components); diff --git a/test/cases/hmr/expected/webpack-5/main.js b/test/cases/hmr/expected/webpack-5/main.js index 1642f5af..6db73b01 100644 --- a/test/cases/hmr/expected/webpack-5/main.js +++ b/test/cases/hmr/expected/webpack-5/main.js @@ -30,7 +30,7 @@ const normalizeUrl = __webpack_require__(2); const srcByModuleId = Object.create(null); -const noDocument = typeof document === 'undefined'; +const noDocument = typeof document === "undefined"; const { forEach } = Array.prototype; @@ -60,7 +60,7 @@ function getCurrentScriptUrl(moduleId) { if (document.currentScript) { ({ src } = document.currentScript); } else { - const scripts = document.getElementsByTagName('script'); + const scripts = document.getElementsByTagName("script"); const lastScriptTag = scripts[scripts.length - 1]; if (lastScriptTag) { @@ -80,15 +80,15 @@ function getCurrentScriptUrl(moduleId) { const filename = splitResult && splitResult[1]; if (!filename) { - return [src.replace('.js', '.css')]; + return [src.replace(".js", ".css")]; } if (!fileMap) { - return [src.replace('.js', '.css')]; + return [src.replace(".js", ".css")]; } - return fileMap.split(',').map((mapRule) => { - const reg = new RegExp(`${filename}\\.js$`, 'g'); + return fileMap.split(",").map((mapRule) => { + const reg = new RegExp(`${filename}\\.js$`, "g"); return normalizeUrl( src.replace(reg, `${mapRule.replace(/{fileName}/g, filename)}.css`) @@ -104,7 +104,7 @@ function updateCss(el, url) { } // eslint-disable-next-line - url = el.href.split('?')[0]; + url = el.href.split("?")[0]; } if (!isUrlRequest(url)) { @@ -117,7 +117,7 @@ function updateCss(el, url) { return; } - if (!url || !(url.indexOf('.css') > -1)) { + if (!url || !(url.indexOf(".css") > -1)) { return; } @@ -128,7 +128,7 @@ function updateCss(el, url) { newEl.isLoaded = false; - newEl.addEventListener('load', () => { + newEl.addEventListener("load", () => { if (newEl.isLoaded) { return; } @@ -137,7 +137,7 @@ function updateCss(el, url) { el.parentNode.removeChild(el); }); - newEl.addEventListener('error', () => { + newEl.addEventListener("error", () => { if (newEl.isLoaded) { return; } @@ -176,7 +176,7 @@ function reloadStyle(src) { return false; } - const elements = document.querySelectorAll('link'); + const elements = document.querySelectorAll("link"); let loaded = false; forEach.call(elements, (el) => { @@ -205,7 +205,7 @@ function reloadStyle(src) { } function reloadAll() { - const elements = document.querySelectorAll('link'); + const elements = document.querySelectorAll("link"); forEach.call(elements, (el) => { if (el.visited === true) { @@ -229,7 +229,7 @@ function isUrlRequest(url) { module.exports = function (moduleId, options) { if (noDocument) { - console.log('no window.document found, will not HMR CSS'); + console.log("no window.document found, will not HMR CSS"); return noop; } @@ -241,7 +241,7 @@ module.exports = function (moduleId, options) { const reloaded = reloadStyle(src); if (options.locals) { - console.log('[HMR] Detected local css modules. Reload all css'); + console.log("[HMR] Detected local css modules. Reload all css"); reloadAll(); @@ -249,9 +249,9 @@ module.exports = function (moduleId, options) { } if (reloaded) { - console.log('[HMR] css reload %s', src.join(' ')); + console.log("[HMR] css reload %s", src.join(" ")); } else { - console.log('[HMR] Reload all css'); + console.log("[HMR] Reload all css"); reloadAll(); } @@ -271,10 +271,10 @@ function normalizeUrl(pathComponents) { return pathComponents .reduce(function (accumulator, item) { switch (item) { - case '..': + case "..": accumulator.pop(); break; - case '.': + case ".": break; default: accumulator.push(item); @@ -282,7 +282,7 @@ function normalizeUrl(pathComponents) { return accumulator; }, []) - .join('/'); + .join("/"); } module.exports = function (urlString) { @@ -293,11 +293,11 @@ module.exports = function (urlString) { } var protocol = - urlString.indexOf('//') !== -1 ? urlString.split('//')[0] + '//' : ''; - var components = urlString.replace(new RegExp(protocol, 'i'), '').split('/'); - var host = components[0].toLowerCase().replace(/\.$/, ''); + urlString.indexOf("//") !== -1 ? urlString.split("//")[0] + "//" : ""; + var components = urlString.replace(new RegExp(protocol, "i"), "").split("/"); + var host = components[0].toLowerCase().replace(/\.$/, ""); - components[0] = ''; + components[0] = ""; var path = normalizeUrl(components); diff --git a/test/cases/hmr/index.css b/test/cases/hmr/index.css index c03e069d..1d835e13 100644 --- a/test/cases/hmr/index.css +++ b/test/cases/hmr/index.css @@ -1,2 +1,2 @@ -@import './c.css'; -@import './b.css'; +@import "./c.css"; +@import "./b.css"; diff --git a/test/cases/hmr/webpack.config.js b/test/cases/hmr/webpack.config.js index c64ce9ea..fbbe0159 100644 --- a/test/cases/hmr/webpack.config.js +++ b/test/cases/hmr/webpack.config.js @@ -1,10 +1,10 @@ -import { HotModuleReplacementPlugin } from 'webpack'; +import { HotModuleReplacementPlugin } from "webpack"; -import Self from '../../../src'; +import Self from "../../../src"; module.exports = { - entry: './index.css', - mode: 'development', + entry: "./index.css", + mode: "development", module: { rules: [ { @@ -13,7 +13,7 @@ module.exports = { { loader: Self.loader, }, - 'css-loader', + "css-loader", ], }, ], @@ -21,7 +21,7 @@ module.exports = { plugins: [ new HotModuleReplacementPlugin(), new Self({ - filename: '[name].css', + filename: "[name].css", }), ], }; diff --git a/test/cases/ignoreOrder/e1.css b/test/cases/ignoreOrder/e1.css index b3a307e8..06e4b188 100644 --- a/test/cases/ignoreOrder/e1.css +++ b/test/cases/ignoreOrder/e1.css @@ -1,3 +1,3 @@ body { - content: 'e1'; + content: "e1"; } diff --git a/test/cases/ignoreOrder/e2.css b/test/cases/ignoreOrder/e2.css index f651f0fc..3bc4fc4e 100644 --- a/test/cases/ignoreOrder/e2.css +++ b/test/cases/ignoreOrder/e2.css @@ -1,3 +1,3 @@ body { - content: 'e2'; + content: "e2"; } diff --git a/test/cases/ignoreOrder/expected/styles.css b/test/cases/ignoreOrder/expected/styles.css index 4412a785..0e6f6fe7 100644 --- a/test/cases/ignoreOrder/expected/styles.css +++ b/test/cases/ignoreOrder/expected/styles.css @@ -1,8 +1,8 @@ body { - content: 'e2'; + content: "e2"; } body { - content: 'e1'; + content: "e1"; } diff --git a/test/cases/ignoreOrder/index.js b/test/cases/ignoreOrder/index.js index af315736..cfe7d6e6 100644 --- a/test/cases/ignoreOrder/index.js +++ b/test/cases/ignoreOrder/index.js @@ -1,2 +1,2 @@ -import './e2.css'; -import './e1.css'; +import "./e2.css"; +import "./e1.css"; diff --git a/test/cases/ignoreOrder/index2.js b/test/cases/ignoreOrder/index2.js index 05a1cfb5..d030f68b 100644 --- a/test/cases/ignoreOrder/index2.js +++ b/test/cases/ignoreOrder/index2.js @@ -1,2 +1,2 @@ -import './e1.css'; -import './e2.css'; +import "./e1.css"; +import "./e2.css"; diff --git a/test/cases/ignoreOrder/webpack.config.js b/test/cases/ignoreOrder/webpack.config.js index 715f9615..4b9c949c 100644 --- a/test/cases/ignoreOrder/webpack.config.js +++ b/test/cases/ignoreOrder/webpack.config.js @@ -1,15 +1,15 @@ -import Self from '../../../src'; +import Self from "../../../src"; module.exports = { entry: { - entry1: './index.js', - entry2: './index2.js', + entry1: "./index.js", + entry2: "./index2.js", }, module: { rules: [ { test: /\.css$/, - use: [Self.loader, 'css-loader'], + use: [Self.loader, "css-loader"], }, ], }, @@ -17,8 +17,8 @@ module.exports = { splitChunks: { cacheGroups: { styles: { - name: 'styles', - chunks: 'all', + name: "styles", + chunks: "all", test: /\.css$/, enforce: true, }, diff --git a/test/cases/ignoreOrderFalse/e1.css b/test/cases/ignoreOrderFalse/e1.css index b3a307e8..06e4b188 100644 --- a/test/cases/ignoreOrderFalse/e1.css +++ b/test/cases/ignoreOrderFalse/e1.css @@ -1,3 +1,3 @@ body { - content: 'e1'; + content: "e1"; } diff --git a/test/cases/ignoreOrderFalse/e2.css b/test/cases/ignoreOrderFalse/e2.css index f651f0fc..3bc4fc4e 100644 --- a/test/cases/ignoreOrderFalse/e2.css +++ b/test/cases/ignoreOrderFalse/e2.css @@ -1,3 +1,3 @@ body { - content: 'e2'; + content: "e2"; } diff --git a/test/cases/ignoreOrderFalse/e3.css b/test/cases/ignoreOrderFalse/e3.css index bd54bb75..64490218 100644 --- a/test/cases/ignoreOrderFalse/e3.css +++ b/test/cases/ignoreOrderFalse/e3.css @@ -1,3 +1,3 @@ body { - content: 'e3'; + content: "e3"; } diff --git a/test/cases/ignoreOrderFalse/expected/styles.css b/test/cases/ignoreOrderFalse/expected/styles.css index e1b5ed0d..ab2b5a6e 100644 --- a/test/cases/ignoreOrderFalse/expected/styles.css +++ b/test/cases/ignoreOrderFalse/expected/styles.css @@ -1,12 +1,12 @@ body { - content: 'e2'; + content: "e2"; } body { - content: 'e1'; + content: "e1"; } body { - content: 'e3'; + content: "e3"; } diff --git a/test/cases/ignoreOrderFalse/index.js b/test/cases/ignoreOrderFalse/index.js index af315736..cfe7d6e6 100644 --- a/test/cases/ignoreOrderFalse/index.js +++ b/test/cases/ignoreOrderFalse/index.js @@ -1,2 +1,2 @@ -import './e2.css'; -import './e1.css'; +import "./e2.css"; +import "./e1.css"; diff --git a/test/cases/ignoreOrderFalse/index2.js b/test/cases/ignoreOrderFalse/index2.js index 05a1cfb5..d030f68b 100644 --- a/test/cases/ignoreOrderFalse/index2.js +++ b/test/cases/ignoreOrderFalse/index2.js @@ -1,2 +1,2 @@ -import './e1.css'; -import './e2.css'; +import "./e1.css"; +import "./e2.css"; diff --git a/test/cases/ignoreOrderFalse/index3.js b/test/cases/ignoreOrderFalse/index3.js index b071c976..0c56c95b 100644 --- a/test/cases/ignoreOrderFalse/index3.js +++ b/test/cases/ignoreOrderFalse/index3.js @@ -1,2 +1,2 @@ -import './e2.css'; -import './e3.css'; +import "./e2.css"; +import "./e3.css"; diff --git a/test/cases/ignoreOrderFalse/warnings.js b/test/cases/ignoreOrderFalse/warnings.js index 663ac913..ed161fd0 100644 --- a/test/cases/ignoreOrderFalse/warnings.js +++ b/test/cases/ignoreOrderFalse/warnings.js @@ -1,12 +1,12 @@ -const cssLoaderPath = require.resolve('css-loader').replace(/\\/g, '/'); +const cssLoaderPath = require.resolve("css-loader").replace(/\\/g, "/"); module.exports = [ - '', - 'WARNING in chunk styles [mini-css-extract-plugin]', - 'Conflicting order. Following module has been added:', + "", + "WARNING in chunk styles [mini-css-extract-plugin]", + "Conflicting order. Following module has been added:", ` * css ${cssLoaderPath}!./e2.css`, - 'despite it was not able to fulfill desired ordering with these modules:', + "despite it was not able to fulfill desired ordering with these modules:", ` * css ${cssLoaderPath}!./e1.css`, " - couldn't fulfill desired order of chunk group(s) entry2", - ' - while fulfilling desired order of chunk group(s) entry1', -].join('\n'); + " - while fulfilling desired order of chunk group(s) entry1", +].join("\n"); diff --git a/test/cases/ignoreOrderFalse/webpack.config.js b/test/cases/ignoreOrderFalse/webpack.config.js index 9758b21d..f178118f 100644 --- a/test/cases/ignoreOrderFalse/webpack.config.js +++ b/test/cases/ignoreOrderFalse/webpack.config.js @@ -1,16 +1,16 @@ -import Self from '../../../src'; +import Self from "../../../src"; module.exports = { entry: { - entry1: './index.js', - entry2: './index2.js', - entry3: './index3.js', + entry1: "./index.js", + entry2: "./index2.js", + entry3: "./index3.js", }, module: { rules: [ { test: /\.css$/, - use: [Self.loader, 'css-loader'], + use: [Self.loader, "css-loader"], }, ], }, @@ -18,8 +18,8 @@ module.exports = { splitChunks: { cacheGroups: { styles: { - name: 'styles', - chunks: 'all', + name: "styles", + chunks: "all", test: /\.css$/, enforce: true, }, diff --git a/test/cases/ignoreOrderFalseWithoutGoodChunks/e1.css b/test/cases/ignoreOrderFalseWithoutGoodChunks/e1.css index b3a307e8..06e4b188 100644 --- a/test/cases/ignoreOrderFalseWithoutGoodChunks/e1.css +++ b/test/cases/ignoreOrderFalseWithoutGoodChunks/e1.css @@ -1,3 +1,3 @@ body { - content: 'e1'; + content: "e1"; } diff --git a/test/cases/ignoreOrderFalseWithoutGoodChunks/e2.css b/test/cases/ignoreOrderFalseWithoutGoodChunks/e2.css index f651f0fc..3bc4fc4e 100644 --- a/test/cases/ignoreOrderFalseWithoutGoodChunks/e2.css +++ b/test/cases/ignoreOrderFalseWithoutGoodChunks/e2.css @@ -1,3 +1,3 @@ body { - content: 'e2'; + content: "e2"; } diff --git a/test/cases/ignoreOrderFalseWithoutGoodChunks/e3.css b/test/cases/ignoreOrderFalseWithoutGoodChunks/e3.css index bd54bb75..64490218 100644 --- a/test/cases/ignoreOrderFalseWithoutGoodChunks/e3.css +++ b/test/cases/ignoreOrderFalseWithoutGoodChunks/e3.css @@ -1,3 +1,3 @@ body { - content: 'e3'; + content: "e3"; } diff --git a/test/cases/ignoreOrderFalseWithoutGoodChunks/e4.css b/test/cases/ignoreOrderFalseWithoutGoodChunks/e4.css index 1e6308ef..52c33c89 100644 --- a/test/cases/ignoreOrderFalseWithoutGoodChunks/e4.css +++ b/test/cases/ignoreOrderFalseWithoutGoodChunks/e4.css @@ -1,3 +1,3 @@ body { - content: 'e4'; + content: "e4"; } diff --git a/test/cases/ignoreOrderFalseWithoutGoodChunks/expected/styles.css b/test/cases/ignoreOrderFalseWithoutGoodChunks/expected/styles.css index b1cc4dc0..d7b7c62d 100644 --- a/test/cases/ignoreOrderFalseWithoutGoodChunks/expected/styles.css +++ b/test/cases/ignoreOrderFalseWithoutGoodChunks/expected/styles.css @@ -1,16 +1,16 @@ body { - content: 'e1'; + content: "e1"; } body { - content: 'e4'; + content: "e4"; } body { - content: 'e2'; + content: "e2"; } body { - content: 'e3'; + content: "e3"; } diff --git a/test/cases/ignoreOrderFalseWithoutGoodChunks/index.js b/test/cases/ignoreOrderFalseWithoutGoodChunks/index.js index d2b747d5..2f873998 100644 --- a/test/cases/ignoreOrderFalseWithoutGoodChunks/index.js +++ b/test/cases/ignoreOrderFalseWithoutGoodChunks/index.js @@ -1 +1 @@ -import './e1.css'; +import "./e1.css"; diff --git a/test/cases/ignoreOrderFalseWithoutGoodChunks/index2.js b/test/cases/ignoreOrderFalseWithoutGoodChunks/index2.js index af315736..cfe7d6e6 100644 --- a/test/cases/ignoreOrderFalseWithoutGoodChunks/index2.js +++ b/test/cases/ignoreOrderFalseWithoutGoodChunks/index2.js @@ -1,2 +1,2 @@ -import './e2.css'; -import './e1.css'; +import "./e2.css"; +import "./e1.css"; diff --git a/test/cases/ignoreOrderFalseWithoutGoodChunks/index3.js b/test/cases/ignoreOrderFalseWithoutGoodChunks/index3.js index 8264cc8a..7e36cb3c 100644 --- a/test/cases/ignoreOrderFalseWithoutGoodChunks/index3.js +++ b/test/cases/ignoreOrderFalseWithoutGoodChunks/index3.js @@ -1,3 +1,3 @@ -import './e3.css'; -import './e4.css'; -import './e2.css'; +import "./e3.css"; +import "./e4.css"; +import "./e2.css"; diff --git a/test/cases/ignoreOrderFalseWithoutGoodChunks/index4.js b/test/cases/ignoreOrderFalseWithoutGoodChunks/index4.js index 27a505ed..aa581074 100644 --- a/test/cases/ignoreOrderFalseWithoutGoodChunks/index4.js +++ b/test/cases/ignoreOrderFalseWithoutGoodChunks/index4.js @@ -1,3 +1,3 @@ -import './e4.css'; -import './e2.css'; -import './e3.css'; +import "./e4.css"; +import "./e2.css"; +import "./e3.css"; diff --git a/test/cases/ignoreOrderFalseWithoutGoodChunks/warnings.js b/test/cases/ignoreOrderFalseWithoutGoodChunks/warnings.js index 0d2d5768..3acedadc 100644 --- a/test/cases/ignoreOrderFalseWithoutGoodChunks/warnings.js +++ b/test/cases/ignoreOrderFalseWithoutGoodChunks/warnings.js @@ -1,27 +1,27 @@ -const cssLoaderPath = require.resolve('css-loader').replace(/\\/g, '/'); +const cssLoaderPath = require.resolve("css-loader").replace(/\\/g, "/"); module.exports = [ - '', - 'WARNING in chunk styles [mini-css-extract-plugin]', - 'Conflicting order. Following module has been added:', + "", + "WARNING in chunk styles [mini-css-extract-plugin]", + "Conflicting order. Following module has been added:", ` * css ${cssLoaderPath}!./e1.css`, - 'despite it was not able to fulfill desired ordering with these modules:', + "despite it was not able to fulfill desired ordering with these modules:", ` * css ${cssLoaderPath}!./e2.css`, " - couldn't fulfill desired order of chunk group(s) entry2", - '', - 'WARNING in chunk styles [mini-css-extract-plugin]', - 'Conflicting order. Following module has been added:', + "", + "WARNING in chunk styles [mini-css-extract-plugin]", + "Conflicting order. Following module has been added:", ` * css ${cssLoaderPath}!./e4.css`, - 'despite it was not able to fulfill desired ordering with these modules:', + "despite it was not able to fulfill desired ordering with these modules:", ` * css ${cssLoaderPath}!./e3.css`, " - couldn't fulfill desired order of chunk group(s) entry3", - ' - while fulfilling desired order of chunk group(s) entry4', - '', - 'WARNING in chunk styles [mini-css-extract-plugin]', - 'Conflicting order. Following module has been added:', + " - while fulfilling desired order of chunk group(s) entry4", + "", + "WARNING in chunk styles [mini-css-extract-plugin]", + "Conflicting order. Following module has been added:", ` * css ${cssLoaderPath}!./e2.css`, - 'despite it was not able to fulfill desired ordering with these modules:', + "despite it was not able to fulfill desired ordering with these modules:", ` * css ${cssLoaderPath}!./e3.css`, " - couldn't fulfill desired order of chunk group(s) entry3", - ' - while fulfilling desired order of chunk group(s) entry4', -].join('\n'); + " - while fulfilling desired order of chunk group(s) entry4", +].join("\n"); diff --git a/test/cases/ignoreOrderFalseWithoutGoodChunks/webpack.config.js b/test/cases/ignoreOrderFalseWithoutGoodChunks/webpack.config.js index 18ff2341..4d3a45ae 100644 --- a/test/cases/ignoreOrderFalseWithoutGoodChunks/webpack.config.js +++ b/test/cases/ignoreOrderFalseWithoutGoodChunks/webpack.config.js @@ -1,17 +1,17 @@ -import Self from '../../../src'; +import Self from "../../../src"; module.exports = { entry: { - entry1: './index.js', - entry2: './index2.js', - entry3: './index3.js', - entry4: './index4.js', + entry1: "./index.js", + entry2: "./index2.js", + entry3: "./index3.js", + entry4: "./index4.js", }, module: { rules: [ { test: /\.css$/, - use: [Self.loader, 'css-loader'], + use: [Self.loader, "css-loader"], }, ], }, @@ -19,8 +19,8 @@ module.exports = { splitChunks: { cacheGroups: { styles: { - name: 'styles', - chunks: 'all', + name: "styles", + chunks: "all", test: /\.css$/, enforce: true, }, diff --git a/test/cases/import/b.css b/test/cases/import/b.css index ce9932a5..5e0da74e 100644 --- a/test/cases/import/b.css +++ b/test/cases/import/b.css @@ -2,7 +2,7 @@ background: red; } -@import url('https://some/external/css'); +@import url("https://some/external/css"); .b { color: yellow; diff --git a/test/cases/import/c.css b/test/cases/import/c.css index 7c6684cc..faf37f06 100644 --- a/test/cases/import/c.css +++ b/test/cases/import/c.css @@ -2,7 +2,7 @@ background: red; } -@import url('https://some/other/external/css'); +@import url("https://some/other/external/css"); .c { color: yellow; diff --git a/test/cases/import/index.js b/test/cases/import/index.js index e2af4d20..42721dd6 100644 --- a/test/cases/import/index.js +++ b/test/cases/import/index.js @@ -1,3 +1,3 @@ -import './c.css'; -import './a.css'; -import './b.css'; +import "./c.css"; +import "./a.css"; +import "./b.css"; diff --git a/test/cases/import/webpack.config.js b/test/cases/import/webpack.config.js index 4e160f26..cf55c08c 100644 --- a/test/cases/import/webpack.config.js +++ b/test/cases/import/webpack.config.js @@ -1,18 +1,18 @@ -import Self from '../../../src'; +import Self from "../../../src"; module.exports = { - entry: './index.js', + entry: "./index.js", module: { rules: [ { test: /\.css$/, - use: [Self.loader, 'css-loader'], + use: [Self.loader, "css-loader"], }, ], }, plugins: [ new Self({ - filename: '[name].css', + filename: "[name].css", }), ], }; diff --git a/test/cases/insert-function/expected/webpack-5-importModule/main.js b/test/cases/insert-function/expected/webpack-5-importModule/main.js index f114f470..98c4fdfa 100644 --- a/test/cases/insert-function/expected/webpack-5-importModule/main.js +++ b/test/cases/insert-function/expected/webpack-5-importModule/main.js @@ -181,7 +181,7 @@ /******/ linkTag.href = fullhref; /******/ /******/ (function (linkTag) { -/******/ const reference = document.querySelector('.hot-reload'); +/******/ const reference = document.querySelector(".hot-reload"); /******/ /******/ if (reference) { /******/ reference.parentNode.insertBefore(linkTag, reference); diff --git a/test/cases/insert-function/expected/webpack-5/main.js b/test/cases/insert-function/expected/webpack-5/main.js index f114f470..98c4fdfa 100644 --- a/test/cases/insert-function/expected/webpack-5/main.js +++ b/test/cases/insert-function/expected/webpack-5/main.js @@ -181,7 +181,7 @@ /******/ linkTag.href = fullhref; /******/ /******/ (function (linkTag) { -/******/ const reference = document.querySelector('.hot-reload'); +/******/ const reference = document.querySelector(".hot-reload"); /******/ /******/ if (reference) { /******/ reference.parentNode.insertBefore(linkTag, reference); diff --git a/test/cases/insert-function/src/index.js b/test/cases/insert-function/src/index.js index 49171c3c..d017d40a 100644 --- a/test/cases/insert-function/src/index.js +++ b/test/cases/insert-function/src/index.js @@ -1,4 +1,4 @@ /* eslint-env browser */ // eslint-disable-next-line -import('./inject.css'); +import("./inject.css"); diff --git a/test/cases/insert-function/webpack.config.js b/test/cases/insert-function/webpack.config.js index 49a85ef1..e241e5ea 100644 --- a/test/cases/insert-function/webpack.config.js +++ b/test/cases/insert-function/webpack.config.js @@ -1,6 +1,6 @@ /* global document */ -const Self = require('../../../src/cjs'); +const Self = require("../../../src/cjs"); module.exports = { module: { @@ -12,7 +12,7 @@ module.exports = { loader: Self.loader, }, { - loader: 'css-loader', + loader: "css-loader", }, ], }, @@ -20,11 +20,11 @@ module.exports = { }, plugins: [ new Self({ - filename: '[name].css', - chunkFilename: '[id].css', + filename: "[name].css", + chunkFilename: "[id].css", // eslint-disable-next-line insert: function (linkTag) { - const reference = document.querySelector('.hot-reload'); + const reference = document.querySelector(".hot-reload"); if (reference) { reference.parentNode.insertBefore(linkTag, reference); } diff --git a/test/cases/insert-string/src/index.js b/test/cases/insert-string/src/index.js index 49171c3c..d017d40a 100644 --- a/test/cases/insert-string/src/index.js +++ b/test/cases/insert-string/src/index.js @@ -1,4 +1,4 @@ /* eslint-env browser */ // eslint-disable-next-line -import('./inject.css'); +import("./inject.css"); diff --git a/test/cases/insert-string/webpack.config.js b/test/cases/insert-string/webpack.config.js index 85943cd1..f6eed531 100644 --- a/test/cases/insert-string/webpack.config.js +++ b/test/cases/insert-string/webpack.config.js @@ -1,6 +1,6 @@ /* global document */ -const Self = require('../../../src/cjs'); +const Self = require("../../../src/cjs"); module.exports = { module: { @@ -12,7 +12,7 @@ module.exports = { loader: Self.loader, }, { - loader: 'css-loader', + loader: "css-loader", }, ], }, @@ -20,8 +20,8 @@ module.exports = { }, plugins: [ new Self({ - filename: '[name].css', - chunkFilename: '[id].css', + filename: "[name].css", + chunkFilename: "[id].css", insert: "script[src='1.js']", }), ], diff --git a/test/cases/insert-undefined/src/index.js b/test/cases/insert-undefined/src/index.js index 49171c3c..d017d40a 100644 --- a/test/cases/insert-undefined/src/index.js +++ b/test/cases/insert-undefined/src/index.js @@ -1,4 +1,4 @@ /* eslint-env browser */ // eslint-disable-next-line -import('./inject.css'); +import("./inject.css"); diff --git a/test/cases/insert-undefined/webpack.config.js b/test/cases/insert-undefined/webpack.config.js index cf2c96c8..cf32bc36 100644 --- a/test/cases/insert-undefined/webpack.config.js +++ b/test/cases/insert-undefined/webpack.config.js @@ -1,6 +1,6 @@ /* global document */ -const Self = require('../../../src/cjs'); +const Self = require("../../../src/cjs"); module.exports = { module: { @@ -12,7 +12,7 @@ module.exports = { loader: Self.loader, }, { - loader: 'css-loader', + loader: "css-loader", }, ], }, @@ -20,8 +20,8 @@ module.exports = { }, plugins: [ new Self({ - filename: '[name].css', - chunkFilename: '[id].css', + filename: "[name].css", + chunkFilename: "[id].css", }), ], }; diff --git a/test/cases/js-hash/index.js b/test/cases/js-hash/index.js index e357a9dd..ce1e11c8 100644 --- a/test/cases/js-hash/index.js +++ b/test/cases/js-hash/index.js @@ -1,2 +1,2 @@ /* eslint-disable-next-line no-unused-expressions */ -import(/* webpackChunkName: "style" */ './style.css'); +import(/* webpackChunkName: "style" */ "./style.css"); diff --git a/test/cases/js-hash/webpack.config.js b/test/cases/js-hash/webpack.config.js index f0181102..b9749b1c 100644 --- a/test/cases/js-hash/webpack.config.js +++ b/test/cases/js-hash/webpack.config.js @@ -1,8 +1,8 @@ -import Self from '../../../src'; +import Self from "../../../src"; module.exports = [1, 2].map((n) => { return { - entry: './index.js', + entry: "./index.js", module: { rules: [ { @@ -12,14 +12,14 @@ module.exports = [1, 2].map((n) => { loader: Self.loader, }, { - loader: 'css-loader', + loader: "css-loader", options: { modules: true, }, }, { - loader: './loader', - ident: 'my-loader', + loader: "./loader", + ident: "my-loader", options: { number: n, }, diff --git a/test/cases/moduleFilenameMutableFilename/index.js b/test/cases/moduleFilenameMutableFilename/index.js index aa3357bf..4fe51c72 100644 --- a/test/cases/moduleFilenameMutableFilename/index.js +++ b/test/cases/moduleFilenameMutableFilename/index.js @@ -1 +1 @@ -import './style.css'; +import "./style.css"; diff --git a/test/cases/moduleFilenameMutableFilename/webpack.config.js b/test/cases/moduleFilenameMutableFilename/webpack.config.js index 8afe27f2..f8dd1fbc 100644 --- a/test/cases/moduleFilenameMutableFilename/webpack.config.js +++ b/test/cases/moduleFilenameMutableFilename/webpack.config.js @@ -1,25 +1,25 @@ -import Self from '../../../src'; +import Self from "../../../src"; module.exports = { entry: { - main: './index.js', + main: "./index.js", }, module: { rules: [ { test: /\.css$/, - use: [Self.loader, 'css-loader'], + use: [Self.loader, "css-loader"], }, ], }, output: { - filename: '[name].js', + filename: "[name].js", }, plugins: [ (() => { - const self = new Self({ filename: 'constructed.css' }); + const self = new Self({ filename: "constructed.css" }); - self.options.filename = 'mutated.css'; + self.options.filename = "mutated.css"; return self; })(), diff --git a/test/cases/multiple-compiler/index.js b/test/cases/multiple-compiler/index.js index aa3357bf..4fe51c72 100644 --- a/test/cases/multiple-compiler/index.js +++ b/test/cases/multiple-compiler/index.js @@ -1 +1 @@ -import './style.css'; +import "./style.css"; diff --git a/test/cases/multiple-compiler/webpack.config.js b/test/cases/multiple-compiler/webpack.config.js index ce9a310f..35691703 100644 --- a/test/cases/multiple-compiler/webpack.config.js +++ b/test/cases/multiple-compiler/webpack.config.js @@ -1,41 +1,41 @@ -import Self from '../../../src'; +import Self from "../../../src"; module.exports = [ { - entry: './index.js', + entry: "./index.js", output: { - filename: 'one-[name].js', + filename: "one-[name].js", }, module: { rules: [ { test: /\.css$/, - use: [Self.loader, 'css-loader'], + use: [Self.loader, "css-loader"], }, ], }, plugins: [ new Self({ - filename: 'one/[name].css', + filename: "one/[name].css", }), ], }, { - entry: './index.js', + entry: "./index.js", output: { - filename: 'two-[name].js', + filename: "two-[name].js", }, module: { rules: [ { test: /\.css$/, - use: [Self.loader, 'css-loader'], + use: [Self.loader, "css-loader"], }, ], }, plugins: [ new Self({ - filename: 'two/[name].css', + filename: "two/[name].css", }), ], }, diff --git a/test/cases/multiple-entry/async-one.js b/test/cases/multiple-entry/async-one.js index 882b0824..eb558470 100644 --- a/test/cases/multiple-entry/async-one.js +++ b/test/cases/multiple-entry/async-one.js @@ -1,2 +1,2 @@ -import './c.css'; -import './d.css'; +import "./c.css"; +import "./d.css"; diff --git a/test/cases/multiple-entry/async-two.js b/test/cases/multiple-entry/async-two.js index 69733f71..3dd844df 100644 --- a/test/cases/multiple-entry/async-two.js +++ b/test/cases/multiple-entry/async-two.js @@ -1,2 +1,2 @@ -import './d.css'; -import './c.css'; +import "./d.css"; +import "./c.css"; diff --git a/test/cases/multiple-entry/index-one.js b/test/cases/multiple-entry/index-one.js index a85380cb..cbdd3100 100644 --- a/test/cases/multiple-entry/index-one.js +++ b/test/cases/multiple-entry/index-one.js @@ -1,5 +1,5 @@ -import './a.css'; -import './b.css'; +import "./a.css"; +import "./b.css"; /* eslint-disable-next-line no-unused-expressions */ -import(/* webpackChunkName: 'async-one' */ './async-one'); +import(/* webpackChunkName: 'async-one' */ "./async-one"); diff --git a/test/cases/multiple-entry/index-two.js b/test/cases/multiple-entry/index-two.js index 93a2054a..140d28ec 100644 --- a/test/cases/multiple-entry/index-two.js +++ b/test/cases/multiple-entry/index-two.js @@ -1,5 +1,5 @@ -import './b.css'; -import './a.css'; +import "./b.css"; +import "./a.css"; /* eslint-disable-next-line no-unused-expressions */ -import(/* webpackChunkName: 'async-two' */ './async-two'); +import(/* webpackChunkName: 'async-two' */ "./async-two"); diff --git a/test/cases/multiple-entry/webpack.config.js b/test/cases/multiple-entry/webpack.config.js index 40b15d39..eca7a8d5 100644 --- a/test/cases/multiple-entry/webpack.config.js +++ b/test/cases/multiple-entry/webpack.config.js @@ -1,21 +1,21 @@ -import Self from '../../../src'; +import Self from "../../../src"; module.exports = { entry: { - 'main-one': './index-one.js', - 'main-two': './index-two.js', + "main-one": "./index-one.js", + "main-two": "./index-two.js", }, module: { rules: [ { test: /\.css$/, - use: [Self.loader, 'css-loader'], + use: [Self.loader, "css-loader"], }, ], }, plugins: [ new Self({ - filename: '[name].css', + filename: "[name].css", }), ], }; diff --git a/test/cases/nested/component.js b/test/cases/nested/component.js index 2be110d5..18dae071 100644 --- a/test/cases/nested/component.js +++ b/test/cases/nested/component.js @@ -1 +1 @@ -import './component.css'; +import "./component.css"; diff --git a/test/cases/nested/index.js b/test/cases/nested/index.js index f9be6766..37a9c167 100644 --- a/test/cases/nested/index.js +++ b/test/cases/nested/index.js @@ -1,3 +1,3 @@ -import './a.css'; -import './component'; -import './b.css'; +import "./a.css"; +import "./component"; +import "./b.css"; diff --git a/test/cases/nested/webpack.config.js b/test/cases/nested/webpack.config.js index 4e160f26..cf55c08c 100644 --- a/test/cases/nested/webpack.config.js +++ b/test/cases/nested/webpack.config.js @@ -1,18 +1,18 @@ -import Self from '../../../src'; +import Self from "../../../src"; module.exports = { - entry: './index.js', + entry: "./index.js", module: { rules: [ { test: /\.css$/, - use: [Self.loader, 'css-loader'], + use: [Self.loader, "css-loader"], }, ], }, plugins: [ new Self({ - filename: '[name].css', + filename: "[name].css", }), ], }; diff --git a/test/cases/new-url-with-public-path-auto/app/index.js b/test/cases/new-url-with-public-path-auto/app/index.js index aa3357bf..4fe51c72 100644 --- a/test/cases/new-url-with-public-path-auto/app/index.js +++ b/test/cases/new-url-with-public-path-auto/app/index.js @@ -1 +1 @@ -import './style.css'; +import "./style.css"; diff --git a/test/cases/new-url-with-public-path-auto/webpack.config.js b/test/cases/new-url-with-public-path-auto/webpack.config.js index 1a1c7a41..c4af6ef0 100644 --- a/test/cases/new-url-with-public-path-auto/webpack.config.js +++ b/test/cases/new-url-with-public-path-auto/webpack.config.js @@ -1,10 +1,10 @@ -import path from 'path'; +import path from "path"; -import Self from '../../../src'; +import Self from "../../../src"; module.exports = { - entry: './index.js', - context: path.resolve(__dirname, 'app'), + entry: "./index.js", + context: path.resolve(__dirname, "app"), module: { rules: [ { @@ -13,24 +13,24 @@ module.exports = { { loader: Self.loader, options: { - publicPath: 'auto', + publicPath: "auto", }, }, - './mockLoader', + "./mockLoader", ], }, { test: /\.png$/, - type: 'asset/resource', + type: "asset/resource", generator: { - filename: '[path][name][ext]', + filename: "[path][name][ext]", }, }, ], }, plugins: [ new Self({ - filename: '[name].css', + filename: "[name].css", }), ], }; diff --git a/test/cases/new-url-with-public-path/app/index.js b/test/cases/new-url-with-public-path/app/index.js index aa3357bf..4fe51c72 100644 --- a/test/cases/new-url-with-public-path/app/index.js +++ b/test/cases/new-url-with-public-path/app/index.js @@ -1 +1 @@ -import './style.css'; +import "./style.css"; diff --git a/test/cases/new-url-with-public-path/webpack.config.js b/test/cases/new-url-with-public-path/webpack.config.js index 0b819e77..4eecda40 100644 --- a/test/cases/new-url-with-public-path/webpack.config.js +++ b/test/cases/new-url-with-public-path/webpack.config.js @@ -1,10 +1,10 @@ -import path from 'path'; +import path from "path"; -import Self from '../../../src'; +import Self from "../../../src"; module.exports = { - entry: './index.js', - context: path.resolve(__dirname, 'app'), + entry: "./index.js", + context: path.resolve(__dirname, "app"), module: { rules: [ { @@ -13,24 +13,24 @@ module.exports = { { loader: Self.loader, options: { - publicPath: 'public/', + publicPath: "public/", }, }, - './mockLoader', + "./mockLoader", ], }, { test: /\.png$/, - type: 'asset/resource', + type: "asset/resource", generator: { - filename: '[path][name][ext]', + filename: "[path][name][ext]", }, }, ], }, plugins: [ new Self({ - filename: '[name].css', + filename: "[name].css", }), ], }; diff --git a/test/cases/no-identifier/index.js b/test/cases/no-identifier/index.js index aa3357bf..4fe51c72 100644 --- a/test/cases/no-identifier/index.js +++ b/test/cases/no-identifier/index.js @@ -1 +1 @@ -import './style.css'; +import "./style.css"; diff --git a/test/cases/no-identifier/webpack.config.js b/test/cases/no-identifier/webpack.config.js index 8ef9616a..eee693e8 100644 --- a/test/cases/no-identifier/webpack.config.js +++ b/test/cases/no-identifier/webpack.config.js @@ -1,7 +1,7 @@ -import Self from '../../../src'; +import Self from "../../../src"; module.exports = { - entry: './index.js', + entry: "./index.js", module: { rules: [ { @@ -9,11 +9,11 @@ module.exports = { use: [ Self.loader, { - loader: 'css-loader', + loader: "css-loader", options: { modules: { - mode: 'local', - localIdentName: 'foo__[name]__[local]', + mode: "local", + localIdentName: "foo__[name]__[local]", exportOnlyLocals: true, }, }, @@ -24,7 +24,7 @@ module.exports = { }, plugins: [ new Self({ - filename: '[name].css', + filename: "[name].css", }), ], }; diff --git a/test/cases/no-loader/index.js b/test/cases/no-loader/index.js index aa3357bf..4fe51c72 100644 --- a/test/cases/no-loader/index.js +++ b/test/cases/no-loader/index.js @@ -1 +1 @@ -import './style.css'; +import "./style.css"; diff --git a/test/cases/no-loader/webpack.config.js b/test/cases/no-loader/webpack.config.js index acadf575..f32b6f40 100644 --- a/test/cases/no-loader/webpack.config.js +++ b/test/cases/no-loader/webpack.config.js @@ -1,18 +1,18 @@ -import Self from '../../../src'; +import Self from "../../../src"; module.exports = { - entry: './index.js', + entry: "./index.js", module: { rules: [ { test: /\.css$/, - use: ['css-loader'], + use: ["css-loader"], }, ], }, plugins: [ new Self({ - filename: '[name].css', + filename: "[name].css", }), ], }; diff --git a/test/cases/no-source-map/index.js b/test/cases/no-source-map/index.js index aa3357bf..4fe51c72 100644 --- a/test/cases/no-source-map/index.js +++ b/test/cases/no-source-map/index.js @@ -1 +1 @@ -import './style.css'; +import "./style.css"; diff --git a/test/cases/no-source-map/webpack.config.js b/test/cases/no-source-map/webpack.config.js index 22addbd6..161da415 100644 --- a/test/cases/no-source-map/webpack.config.js +++ b/test/cases/no-source-map/webpack.config.js @@ -1,7 +1,7 @@ -import Self from '../../../src'; +import Self from "../../../src"; module.exports = { - entry: './index.js', + entry: "./index.js", // Required to disable source maps in webpack@4 devtool: false, module: { @@ -13,7 +13,7 @@ module.exports = { loader: Self.loader, }, { - loader: 'css-loader', + loader: "css-loader", options: { sourceMap: false, }, @@ -24,7 +24,7 @@ module.exports = { }, plugins: [ new Self({ - filename: '[name].css', + filename: "[name].css", }), ], }; diff --git a/test/cases/output-iife/index.js b/test/cases/output-iife/index.js index aa3357bf..4fe51c72 100644 --- a/test/cases/output-iife/index.js +++ b/test/cases/output-iife/index.js @@ -1 +1 @@ -import './style.css'; +import "./style.css"; diff --git a/test/cases/output-iife/webpack.config.js b/test/cases/output-iife/webpack.config.js index 6f0417f4..ab785fc9 100644 --- a/test/cases/output-iife/webpack.config.js +++ b/test/cases/output-iife/webpack.config.js @@ -1,12 +1,12 @@ -import Self from '../../../src'; +import Self from "../../../src"; module.exports = { - entry: './index.js', + entry: "./index.js", module: { rules: [ { test: /\.css$/, - use: [Self.loader, 'css-loader'], + use: [Self.loader, "css-loader"], }, ], }, @@ -15,7 +15,7 @@ module.exports = { }, plugins: [ new Self({ - filename: '[name].css', + filename: "[name].css", }), ], }; diff --git a/test/cases/output-module/index.js b/test/cases/output-module/index.js index aa3357bf..4fe51c72 100644 --- a/test/cases/output-module/index.js +++ b/test/cases/output-module/index.js @@ -1 +1 @@ -import './style.css'; +import "./style.css"; diff --git a/test/cases/output-module/webpack.config.js b/test/cases/output-module/webpack.config.js index e691f544..c18a6752 100644 --- a/test/cases/output-module/webpack.config.js +++ b/test/cases/output-module/webpack.config.js @@ -1,12 +1,12 @@ -import Self from '../../../src'; +import Self from "../../../src"; module.exports = { - entry: './index.js', + entry: "./index.js", module: { rules: [ { test: /\.css$/, - use: [Self.loader, 'css-loader'], + use: [Self.loader, "css-loader"], }, ], }, @@ -18,7 +18,7 @@ module.exports = { }, plugins: [ new Self({ - filename: '[name].css', + filename: "[name].css", }), ], }; diff --git a/test/cases/publicpath-auto-2/index.js b/test/cases/publicpath-auto-2/index.js index aa3357bf..4fe51c72 100644 --- a/test/cases/publicpath-auto-2/index.js +++ b/test/cases/publicpath-auto-2/index.js @@ -1 +1 @@ -import './style.css'; +import "./style.css"; diff --git a/test/cases/publicpath-auto-2/webpack.config.js b/test/cases/publicpath-auto-2/webpack.config.js index 5f11917b..3fb0e338 100644 --- a/test/cases/publicpath-auto-2/webpack.config.js +++ b/test/cases/publicpath-auto-2/webpack.config.js @@ -1,9 +1,9 @@ -import Self from '../../../src'; +import Self from "../../../src"; module.exports = { - entry: './index.js', + entry: "./index.js", output: { - publicPath: 'auto', + publicPath: "auto", }, module: { rules: [ @@ -13,39 +13,39 @@ module.exports = { { loader: Self.loader, }, - 'css-loader', + "css-loader", ], }, { test: /outer\.(svg)$/, - type: 'asset/resource', - generator: { filename: '../[name][ext]' }, + type: "asset/resource", + generator: { filename: "../[name][ext]" }, }, { test: /same_root\.(svg)$/, - type: 'asset/resource', - generator: { filename: '[name][ext]' }, + type: "asset/resource", + generator: { filename: "[name][ext]" }, }, { test: /same_dir\.(svg)$/, - type: 'asset/resource', - generator: { filename: 'styles/[name][ext]' }, + type: "asset/resource", + generator: { filename: "styles/[name][ext]" }, }, { test: /nested_dir\.(svg)$/, - type: 'asset/resource', - generator: { filename: 'styles/nested/[name][ext]' }, + type: "asset/resource", + generator: { filename: "styles/nested/[name][ext]" }, }, { test: /react\.(svg)$/, - type: 'asset/resource', - generator: { filename: 'assets/img/[name][ext]' }, + type: "asset/resource", + generator: { filename: "assets/img/[name][ext]" }, }, ], }, plugins: [ new Self({ - filename: 'styles/[name].css', + filename: "styles/[name].css", }), ], }; diff --git a/test/cases/publicpath-auto-3/index.js b/test/cases/publicpath-auto-3/index.js index cfc06994..332c82b0 100644 --- a/test/cases/publicpath-auto-3/index.js +++ b/test/cases/publicpath-auto-3/index.js @@ -1 +1 @@ -import './src/styles/style.css'; +import "./src/styles/style.css"; diff --git a/test/cases/publicpath-auto-3/webpack.config.js b/test/cases/publicpath-auto-3/webpack.config.js index 1926f6ef..e0d935a6 100644 --- a/test/cases/publicpath-auto-3/webpack.config.js +++ b/test/cases/publicpath-auto-3/webpack.config.js @@ -1,7 +1,7 @@ -import Self from '../../../src'; +import Self from "../../../src"; module.exports = { - entry: './index.js', + entry: "./index.js", module: { rules: [ { @@ -10,47 +10,47 @@ module.exports = { { loader: Self.loader, options: { - publicPath: 'auto', + publicPath: "auto", }, }, - 'css-loader', + "css-loader", ], }, { test: /outer\.(svg)$/, - type: 'asset/resource', - generator: { filename: '../[name][ext]' }, + type: "asset/resource", + generator: { filename: "../[name][ext]" }, }, { test: /img1\.(svg)$/, - type: 'asset/resource', - generator: { filename: '[name][ext]' }, + type: "asset/resource", + generator: { filename: "[name][ext]" }, }, { test: /img2\.(svg)$/, - type: 'asset/resource', - generator: { filename: 'assets/[name][ext]' }, + type: "asset/resource", + generator: { filename: "assets/[name][ext]" }, }, { test: /img3\.(svg)$/, - type: 'asset/resource', - generator: { filename: 'assets/nested/[name][ext]' }, + type: "asset/resource", + generator: { filename: "assets/nested/[name][ext]" }, }, { test: /img4\.(svg)$/, - type: 'asset/resource', - generator: { filename: '[name][ext]' }, + type: "asset/resource", + generator: { filename: "[name][ext]" }, }, { test: /react\.(svg)$/, - type: 'asset/resource', - generator: { filename: 'assets/img/[name][ext]' }, + type: "asset/resource", + generator: { filename: "assets/img/[name][ext]" }, }, ], }, plugins: [ new Self({ - filename: '[name].css', + filename: "[name].css", }), ], }; diff --git a/test/cases/publicpath-auto/index.js b/test/cases/publicpath-auto/index.js index aa3357bf..4fe51c72 100644 --- a/test/cases/publicpath-auto/index.js +++ b/test/cases/publicpath-auto/index.js @@ -1 +1 @@ -import './style.css'; +import "./style.css"; diff --git a/test/cases/publicpath-auto/webpack.config.js b/test/cases/publicpath-auto/webpack.config.js index e1d69512..54a7697f 100644 --- a/test/cases/publicpath-auto/webpack.config.js +++ b/test/cases/publicpath-auto/webpack.config.js @@ -1,7 +1,7 @@ -import Self from '../../../src'; +import Self from "../../../src"; module.exports = { - entry: './index.js', + entry: "./index.js", module: { rules: [ { @@ -10,22 +10,22 @@ module.exports = { { loader: Self.loader, options: { - publicPath: 'auto', + publicPath: "auto", }, }, - 'css-loader', + "css-loader", ], }, { test: /\.(svg|png)$/, - type: 'asset/resource', - generator: { filename: 'assets/[name][ext]' }, + type: "asset/resource", + generator: { filename: "assets/[name][ext]" }, }, ], }, plugins: [ new Self({ - filename: 'styles/[contenthash]/[name].css', + filename: "styles/[contenthash]/[name].css", }), ], }; diff --git a/test/cases/publicpath-compiler-auto/index.js b/test/cases/publicpath-compiler-auto/index.js index aa3357bf..4fe51c72 100644 --- a/test/cases/publicpath-compiler-auto/index.js +++ b/test/cases/publicpath-compiler-auto/index.js @@ -1 +1 @@ -import './style.css'; +import "./style.css"; diff --git a/test/cases/publicpath-compiler-auto/webpack.config.js b/test/cases/publicpath-compiler-auto/webpack.config.js index 9b1ec19a..b19928ad 100644 --- a/test/cases/publicpath-compiler-auto/webpack.config.js +++ b/test/cases/publicpath-compiler-auto/webpack.config.js @@ -1,9 +1,9 @@ -import Self from '../../../src'; +import Self from "../../../src"; module.exports = { - entry: './index.js', + entry: "./index.js", output: { - publicPath: 'auto', + publicPath: "auto", }, module: { rules: [ @@ -14,16 +14,16 @@ module.exports = { loader: Self.loader, options: {}, }, - 'css-loader', + "css-loader", ], }, { test: /\.(svg|png)$/, use: [ { - loader: 'file-loader', + loader: "file-loader", options: { - filename: '[name].[ext]', + filename: "[name].[ext]", }, }, ], @@ -32,7 +32,7 @@ module.exports = { }, plugins: [ new Self({ - filename: '[name].css', + filename: "[name].css", }), ], }; diff --git a/test/cases/publicpath-emptystring/index.js b/test/cases/publicpath-emptystring/index.js index aa3357bf..4fe51c72 100644 --- a/test/cases/publicpath-emptystring/index.js +++ b/test/cases/publicpath-emptystring/index.js @@ -1 +1 @@ -import './style.css'; +import "./style.css"; diff --git a/test/cases/publicpath-emptystring/webpack.config.js b/test/cases/publicpath-emptystring/webpack.config.js index eb6125c8..6fbf3c4a 100644 --- a/test/cases/publicpath-emptystring/webpack.config.js +++ b/test/cases/publicpath-emptystring/webpack.config.js @@ -1,7 +1,7 @@ -import Self from '../../../src'; +import Self from "../../../src"; module.exports = { - entry: './index.js', + entry: "./index.js", module: { rules: [ { @@ -10,19 +10,19 @@ module.exports = { { loader: Self.loader, options: { - publicPath: '', + publicPath: "", }, }, - 'css-loader', + "css-loader", ], }, { test: /\.(svg|png)$/, use: [ { - loader: 'file-loader', + loader: "file-loader", options: { - filename: '[name].[ext]', + filename: "[name].[ext]", }, }, ], @@ -31,7 +31,7 @@ module.exports = { }, plugins: [ new Self({ - filename: '[name].css', + filename: "[name].css", }), ], }; diff --git a/test/cases/publicpath-function/webpack.config.js b/test/cases/publicpath-function/webpack.config.js index 61b6fcdf..9b20fef0 100644 --- a/test/cases/publicpath-function/webpack.config.js +++ b/test/cases/publicpath-function/webpack.config.js @@ -1,13 +1,13 @@ -import path from 'path'; +import path from "path"; -import Self from '../../../src'; +import Self from "../../../src"; module.exports = { entry: { // Specific CSS entry point, with output to a nested folder - 'nested/style': './nested/style.css', + "nested/style": "./nested/style.css", // Note that relative nesting of output is the same as that of the input - 'nested/again/style': './nested/again/style.css', + "nested/again/style": "./nested/again/style.css", }, module: { rules: [ @@ -21,19 +21,19 @@ module.exports = { publicPath: (resourcePath, context) => `${path .relative(path.dirname(resourcePath), context) - .replace(/\\/g, '/')}/`, + .replace(/\\/g, "/")}/`, }, }, - 'css-loader', + "css-loader", ], }, { test: /\.(svg|png)$/, use: [ { - loader: 'file-loader', + loader: "file-loader", options: { - filename: '[name].[ext]', + filename: "[name].[ext]", }, }, ], @@ -42,7 +42,7 @@ module.exports = { }, plugins: [ new Self({ - filename: '[name].css', + filename: "[name].css", }), ], }; diff --git a/test/cases/publicpath-loader-auto/index.js b/test/cases/publicpath-loader-auto/index.js index aa3357bf..4fe51c72 100644 --- a/test/cases/publicpath-loader-auto/index.js +++ b/test/cases/publicpath-loader-auto/index.js @@ -1 +1 @@ -import './style.css'; +import "./style.css"; diff --git a/test/cases/publicpath-loader-auto/webpack.config.js b/test/cases/publicpath-loader-auto/webpack.config.js index 9ea565d3..6156cbd4 100644 --- a/test/cases/publicpath-loader-auto/webpack.config.js +++ b/test/cases/publicpath-loader-auto/webpack.config.js @@ -1,7 +1,7 @@ -import Self from '../../../src'; +import Self from "../../../src"; module.exports = { - entry: './index.js', + entry: "./index.js", module: { rules: [ { @@ -10,19 +10,19 @@ module.exports = { { loader: Self.loader, options: { - publicPath: 'auto', + publicPath: "auto", }, }, - 'css-loader', + "css-loader", ], }, { test: /\.(svg|png)$/, use: [ { - loader: 'file-loader', + loader: "file-loader", options: { - filename: '[name].[ext]', + filename: "[name].[ext]", }, }, ], @@ -31,7 +31,7 @@ module.exports = { }, plugins: [ new Self({ - filename: '[name].css', + filename: "[name].css", }), ], }; diff --git a/test/cases/publicpath-trailing-slash/index.js b/test/cases/publicpath-trailing-slash/index.js index aa3357bf..4fe51c72 100644 --- a/test/cases/publicpath-trailing-slash/index.js +++ b/test/cases/publicpath-trailing-slash/index.js @@ -1 +1 @@ -import './style.css'; +import "./style.css"; diff --git a/test/cases/publicpath-trailing-slash/webpack.config.js b/test/cases/publicpath-trailing-slash/webpack.config.js index fabbe68b..3eb468dc 100644 --- a/test/cases/publicpath-trailing-slash/webpack.config.js +++ b/test/cases/publicpath-trailing-slash/webpack.config.js @@ -1,7 +1,7 @@ -import Self from '../../../src'; +import Self from "../../../src"; module.exports = { - entry: './index.js', + entry: "./index.js", module: { rules: [ { @@ -10,19 +10,19 @@ module.exports = { { loader: Self.loader, options: { - publicPath: '/static/img', + publicPath: "/static/img", }, }, - 'css-loader', + "css-loader", ], }, { test: /\.(svg|png)$/, use: [ { - loader: 'file-loader', + loader: "file-loader", options: { - filename: '[name].[ext]', + filename: "[name].[ext]", }, }, ], @@ -31,7 +31,7 @@ module.exports = { }, plugins: [ new Self({ - filename: '[name].css', + filename: "[name].css", }), ], }; diff --git a/test/cases/runtime/async.js b/test/cases/runtime/async.js index 96edba9d..55223ca5 100644 --- a/test/cases/runtime/async.js +++ b/test/cases/runtime/async.js @@ -1,2 +1,2 @@ // eslint-disable-next-line no-console -console.log('HERE'); +console.log("HERE"); diff --git a/test/cases/runtime/index.js b/test/cases/runtime/index.js index ea347a54..0e0da3fd 100644 --- a/test/cases/runtime/index.js +++ b/test/cases/runtime/index.js @@ -1,4 +1,4 @@ // eslint-disable-next-line import/no-unresolved -import './style.css'; +import "./style.css"; -import('./async'); +import("./async"); diff --git a/test/cases/runtime/webpack.config.js b/test/cases/runtime/webpack.config.js index d0ad3ee2..8f433156 100644 --- a/test/cases/runtime/webpack.config.js +++ b/test/cases/runtime/webpack.config.js @@ -1,12 +1,12 @@ -import Self from '../../../src'; +import Self from "../../../src"; module.exports = { - entry: './index.js', + entry: "./index.js", module: { rules: [ { test: /\.css$/, - use: [Self.loader, 'css-loader'], + use: [Self.loader, "css-loader"], }, ], }, diff --git a/test/cases/serializingBigStrings/webpack.config.js b/test/cases/serializingBigStrings/webpack.config.js index 4117185e..72d6de49 100644 --- a/test/cases/serializingBigStrings/webpack.config.js +++ b/test/cases/serializingBigStrings/webpack.config.js @@ -1,8 +1,8 @@ -import Self from '../../../src/index'; +import Self from "../../../src/index"; module.exports = { - cache: { type: 'filesystem' }, - entry: 'bootstrap/dist/css/bootstrap.css', + cache: { type: "filesystem" }, + entry: "bootstrap/dist/css/bootstrap.css", module: { rules: [ { @@ -10,7 +10,7 @@ module.exports = { use: [ Self.loader, { - loader: 'css-loader', + loader: "css-loader", options: { sourceMap: true, }, @@ -24,8 +24,8 @@ module.exports = { new Self(), { apply(compiler) { - compiler.hooks.infrastructureLog.tap('test', (origin, type, args) => { - if (type === 'warn' || type === 'error') { + compiler.hooks.infrastructureLog.tap("test", (origin, type, args) => { + if (type === "warn" || type === "error") { throw new Error(`<${type}> [${origin}] ${args.toString()}`); } }); diff --git a/test/cases/shared-import/a.css b/test/cases/shared-import/a.css index 5a010a54..8dc398e7 100644 --- a/test/cases/shared-import/a.css +++ b/test/cases/shared-import/a.css @@ -1,4 +1,4 @@ -@import './shared.css'; +@import "./shared.css"; .shared { color: red; diff --git a/test/cases/shared-import/b.css b/test/cases/shared-import/b.css index ca63ae59..0d915613 100644 --- a/test/cases/shared-import/b.css +++ b/test/cases/shared-import/b.css @@ -1,4 +1,4 @@ -@import './shared.css'; +@import "./shared.css"; .shared { background-color: red; diff --git a/test/cases/shared-import/c.css b/test/cases/shared-import/c.css index 45c9938e..527afee7 100644 --- a/test/cases/shared-import/c.css +++ b/test/cases/shared-import/c.css @@ -1,4 +1,4 @@ -@import './shared.css'; +@import "./shared.css"; .shared { border: 1px solid red; diff --git a/test/cases/shared-import/index.js b/test/cases/shared-import/index.js index a4a2df2f..89a5d766 100644 --- a/test/cases/shared-import/index.js +++ b/test/cases/shared-import/index.js @@ -1,5 +1,5 @@ -import './a.css'; -import './b.css'; +import "./a.css"; +import "./b.css"; /* eslint-disable-next-line no-unused-expressions */ -import('./c.css'); +import("./c.css"); diff --git a/test/cases/shared-import/webpack.config.js b/test/cases/shared-import/webpack.config.js index 4e160f26..cf55c08c 100644 --- a/test/cases/shared-import/webpack.config.js +++ b/test/cases/shared-import/webpack.config.js @@ -1,18 +1,18 @@ -import Self from '../../../src'; +import Self from "../../../src"; module.exports = { - entry: './index.js', + entry: "./index.js", module: { rules: [ { test: /\.css$/, - use: [Self.loader, 'css-loader'], + use: [Self.loader, "css-loader"], }, ], }, plugins: [ new Self({ - filename: '[name].css', + filename: "[name].css", }), ], }; diff --git a/test/cases/simple-async-load-css-fallback/async-one.js b/test/cases/simple-async-load-css-fallback/async-one.js index 882b0824..eb558470 100644 --- a/test/cases/simple-async-load-css-fallback/async-one.js +++ b/test/cases/simple-async-load-css-fallback/async-one.js @@ -1,2 +1,2 @@ -import './c.css'; -import './d.css'; +import "./c.css"; +import "./d.css"; diff --git a/test/cases/simple-async-load-css-fallback/async-two.js b/test/cases/simple-async-load-css-fallback/async-two.js index e83f933c..bdf9cbec 100644 --- a/test/cases/simple-async-load-css-fallback/async-two.js +++ b/test/cases/simple-async-load-css-fallback/async-two.js @@ -1,2 +1,2 @@ -import './e.css'; -import './f.css'; +import "./e.css"; +import "./f.css"; diff --git a/test/cases/simple-async-load-css-fallback/index.js b/test/cases/simple-async-load-css-fallback/index.js index 50960e1c..66ed9b02 100644 --- a/test/cases/simple-async-load-css-fallback/index.js +++ b/test/cases/simple-async-load-css-fallback/index.js @@ -1,7 +1,7 @@ -import './a.css'; -import './b.css'; +import "./a.css"; +import "./b.css"; /* eslint-disable-next-line no-unused-expressions */ -import(/* webpackChunkName: 'async-one' */ './async-one'); +import(/* webpackChunkName: 'async-one' */ "./async-one"); /* eslint-disable-next-line no-unused-expressions */ -import(/* webpackChunkName: 'async-two' */ './async-two'); +import(/* webpackChunkName: 'async-two' */ "./async-two"); diff --git a/test/cases/simple-async-load-css-fallback/webpack.config.js b/test/cases/simple-async-load-css-fallback/webpack.config.js index 04e84b33..072aeac1 100644 --- a/test/cases/simple-async-load-css-fallback/webpack.config.js +++ b/test/cases/simple-async-load-css-fallback/webpack.config.js @@ -1,21 +1,21 @@ -import Self from '../../../src'; +import Self from "../../../src"; module.exports = { entry: { - main: './index.js', + main: "./index.js", }, module: { rules: [ { test: /\.css$/, - use: [Self.loader, 'css-loader'], + use: [Self.loader, "css-loader"], }, ], }, plugins: [ function Plugin() { - this.hooks.compilation.tap('Test', (compilation) => { - compilation.hooks.beforeChunkAssets.tap('Test', () => { + this.hooks.compilation.tap("Test", (compilation) => { + compilation.hooks.beforeChunkAssets.tap("Test", () => { for (const chunkGroup of compilation.chunkGroups) { // remove getModuleIndex2 to enforce using fallback // eslint-disable-next-line no-undefined @@ -25,7 +25,7 @@ module.exports = { }); }, new Self({ - filename: '[name].css', + filename: "[name].css", }), ], }; diff --git a/test/cases/simple-async-load-css/async-one.js b/test/cases/simple-async-load-css/async-one.js index 882b0824..eb558470 100644 --- a/test/cases/simple-async-load-css/async-one.js +++ b/test/cases/simple-async-load-css/async-one.js @@ -1,2 +1,2 @@ -import './c.css'; -import './d.css'; +import "./c.css"; +import "./d.css"; diff --git a/test/cases/simple-async-load-css/async-two.js b/test/cases/simple-async-load-css/async-two.js index e83f933c..bdf9cbec 100644 --- a/test/cases/simple-async-load-css/async-two.js +++ b/test/cases/simple-async-load-css/async-two.js @@ -1,2 +1,2 @@ -import './e.css'; -import './f.css'; +import "./e.css"; +import "./f.css"; diff --git a/test/cases/simple-async-load-css/index.js b/test/cases/simple-async-load-css/index.js index 50960e1c..66ed9b02 100644 --- a/test/cases/simple-async-load-css/index.js +++ b/test/cases/simple-async-load-css/index.js @@ -1,7 +1,7 @@ -import './a.css'; -import './b.css'; +import "./a.css"; +import "./b.css"; /* eslint-disable-next-line no-unused-expressions */ -import(/* webpackChunkName: 'async-one' */ './async-one'); +import(/* webpackChunkName: 'async-one' */ "./async-one"); /* eslint-disable-next-line no-unused-expressions */ -import(/* webpackChunkName: 'async-two' */ './async-two'); +import(/* webpackChunkName: 'async-two' */ "./async-two"); diff --git a/test/cases/simple-async-load-css/webpack.config.js b/test/cases/simple-async-load-css/webpack.config.js index 355c3ce2..64326a95 100644 --- a/test/cases/simple-async-load-css/webpack.config.js +++ b/test/cases/simple-async-load-css/webpack.config.js @@ -1,20 +1,20 @@ -import Self from '../../../src'; +import Self from "../../../src"; module.exports = { entry: { - main: './index.js', + main: "./index.js", }, module: { rules: [ { test: /\.css$/, - use: [Self.loader, 'css-loader'], + use: [Self.loader, "css-loader"], }, ], }, plugins: [ new Self({ - filename: '[name].css', + filename: "[name].css", }), ], }; diff --git a/test/cases/simple-async-source-map/async.js b/test/cases/simple-async-source-map/async.js index 1a2ee580..10fdd583 100644 --- a/test/cases/simple-async-source-map/async.js +++ b/test/cases/simple-async-source-map/async.js @@ -1 +1 @@ -import './in-async.css'; +import "./in-async.css"; diff --git a/test/cases/simple-async-source-map/index.js b/test/cases/simple-async-source-map/index.js index d00ddf2d..6c74b41d 100644 --- a/test/cases/simple-async-source-map/index.js +++ b/test/cases/simple-async-source-map/index.js @@ -1,7 +1,7 @@ -import './main.css'; +import "./main.css"; /* eslint-disable-next-line no-unused-expressions */ -import('./async'); +import("./async"); /* eslint-disable-next-line no-unused-expressions */ -import('./async.css'); +import("./async.css"); diff --git a/test/cases/simple-async-source-map/webpack.config.js b/test/cases/simple-async-source-map/webpack.config.js index 27fdcc4f..4e07e687 100644 --- a/test/cases/simple-async-source-map/webpack.config.js +++ b/test/cases/simple-async-source-map/webpack.config.js @@ -1,19 +1,19 @@ -import Self from '../../../src'; +import Self from "../../../src"; module.exports = { - entry: './index.js', - devtool: 'source-map', + entry: "./index.js", + devtool: "source-map", module: { rules: [ { test: /\.css$/, - use: [Self.loader, 'css-loader'], + use: [Self.loader, "css-loader"], }, ], }, plugins: [ new Self({ - filename: '[name].css', + filename: "[name].css", }), ], }; diff --git a/test/cases/simple-async/async.js b/test/cases/simple-async/async.js index 1a2ee580..10fdd583 100644 --- a/test/cases/simple-async/async.js +++ b/test/cases/simple-async/async.js @@ -1 +1 @@ -import './in-async.css'; +import "./in-async.css"; diff --git a/test/cases/simple-async/index.js b/test/cases/simple-async/index.js index d00ddf2d..6c74b41d 100644 --- a/test/cases/simple-async/index.js +++ b/test/cases/simple-async/index.js @@ -1,7 +1,7 @@ -import './main.css'; +import "./main.css"; /* eslint-disable-next-line no-unused-expressions */ -import('./async'); +import("./async"); /* eslint-disable-next-line no-unused-expressions */ -import('./async.css'); +import("./async.css"); diff --git a/test/cases/simple-async/webpack.config.js b/test/cases/simple-async/webpack.config.js index 4e160f26..cf55c08c 100644 --- a/test/cases/simple-async/webpack.config.js +++ b/test/cases/simple-async/webpack.config.js @@ -1,18 +1,18 @@ -import Self from '../../../src'; +import Self from "../../../src"; module.exports = { - entry: './index.js', + entry: "./index.js", module: { rules: [ { test: /\.css$/, - use: [Self.loader, 'css-loader'], + use: [Self.loader, "css-loader"], }, ], }, plugins: [ new Self({ - filename: '[name].css', + filename: "[name].css", }), ], }; diff --git a/test/cases/simple-commonjs-syntax/index.js b/test/cases/simple-commonjs-syntax/index.js index aa3357bf..4fe51c72 100644 --- a/test/cases/simple-commonjs-syntax/index.js +++ b/test/cases/simple-commonjs-syntax/index.js @@ -1 +1 @@ -import './style.css'; +import "./style.css"; diff --git a/test/cases/simple-commonjs-syntax/webpack.config.js b/test/cases/simple-commonjs-syntax/webpack.config.js index 47ae1868..8933fde1 100644 --- a/test/cases/simple-commonjs-syntax/webpack.config.js +++ b/test/cases/simple-commonjs-syntax/webpack.config.js @@ -1,7 +1,7 @@ -import Self from '../../../src'; +import Self from "../../../src"; module.exports = { - entry: './index.js', + entry: "./index.js", module: { rules: [ { @@ -9,7 +9,7 @@ module.exports = { use: [ Self.loader, { - loader: 'css-loader', + loader: "css-loader", // TODO Uncomment after `css-loader` release the `esModule` option // options: { esModule: false }, }, @@ -19,7 +19,7 @@ module.exports = { }, plugins: [ new Self({ - filename: '[name].css', + filename: "[name].css", }), ], }; diff --git a/test/cases/simple-css-modules-mode-global/index.js b/test/cases/simple-css-modules-mode-global/index.js index aa3357bf..4fe51c72 100644 --- a/test/cases/simple-css-modules-mode-global/index.js +++ b/test/cases/simple-css-modules-mode-global/index.js @@ -1 +1 @@ -import './style.css'; +import "./style.css"; diff --git a/test/cases/simple-css-modules-mode-global/webpack.config.js b/test/cases/simple-css-modules-mode-global/webpack.config.js index 3be1e05f..23768a7a 100644 --- a/test/cases/simple-css-modules-mode-global/webpack.config.js +++ b/test/cases/simple-css-modules-mode-global/webpack.config.js @@ -1,7 +1,7 @@ -import Self from '../../../src'; +import Self from "../../../src"; module.exports = { - entry: './index.js', + entry: "./index.js", module: { rules: [ { @@ -9,11 +9,11 @@ module.exports = { use: [ Self.loader, { - loader: 'css-loader', + loader: "css-loader", options: { modules: { - mode: 'global', - localIdentName: 'foo__[name]__[local]', + mode: "global", + localIdentName: "foo__[name]__[local]", }, }, }, @@ -23,7 +23,7 @@ module.exports = { }, plugins: [ new Self({ - filename: '[name].css', + filename: "[name].css", }), ], }; diff --git a/test/cases/simple-css-modules-mode-local-output-module/index.js b/test/cases/simple-css-modules-mode-local-output-module/index.js index aa3357bf..4fe51c72 100644 --- a/test/cases/simple-css-modules-mode-local-output-module/index.js +++ b/test/cases/simple-css-modules-mode-local-output-module/index.js @@ -1 +1 @@ -import './style.css'; +import "./style.css"; diff --git a/test/cases/simple-css-modules-mode-local-output-module/webpack.config.js b/test/cases/simple-css-modules-mode-local-output-module/webpack.config.js index 590b9308..fc1c7054 100644 --- a/test/cases/simple-css-modules-mode-local-output-module/webpack.config.js +++ b/test/cases/simple-css-modules-mode-local-output-module/webpack.config.js @@ -1,7 +1,7 @@ -import Self from '../../../src'; +import Self from "../../../src"; module.exports = { - entry: './index.js', + entry: "./index.js", module: { rules: [ { @@ -9,11 +9,11 @@ module.exports = { use: [ Self.loader, { - loader: 'css-loader', + loader: "css-loader", options: { modules: { - mode: 'local', - localIdentName: 'foo__[name]__[local]', + mode: "local", + localIdentName: "foo__[name]__[local]", }, }, }, @@ -29,7 +29,7 @@ module.exports = { }, plugins: [ new Self({ - filename: '[name].css', + filename: "[name].css", }), ], }; diff --git a/test/cases/simple-css-modules-mode-local/index.js b/test/cases/simple-css-modules-mode-local/index.js index aa3357bf..4fe51c72 100644 --- a/test/cases/simple-css-modules-mode-local/index.js +++ b/test/cases/simple-css-modules-mode-local/index.js @@ -1 +1 @@ -import './style.css'; +import "./style.css"; diff --git a/test/cases/simple-css-modules-mode-local/webpack.config.js b/test/cases/simple-css-modules-mode-local/webpack.config.js index 3081e87b..9c4114d9 100644 --- a/test/cases/simple-css-modules-mode-local/webpack.config.js +++ b/test/cases/simple-css-modules-mode-local/webpack.config.js @@ -1,7 +1,7 @@ -import Self from '../../../src'; +import Self from "../../../src"; module.exports = { - entry: './index.js', + entry: "./index.js", module: { rules: [ { @@ -9,11 +9,11 @@ module.exports = { use: [ Self.loader, { - loader: 'css-loader', + loader: "css-loader", options: { modules: { - mode: 'local', - localIdentName: 'foo__[name]__[local]', + mode: "local", + localIdentName: "foo__[name]__[local]", }, }, }, @@ -23,7 +23,7 @@ module.exports = { }, plugins: [ new Self({ - filename: '[name].css', + filename: "[name].css", }), ], }; diff --git a/test/cases/simple-css-modules-mode-pure/index.js b/test/cases/simple-css-modules-mode-pure/index.js index aa3357bf..4fe51c72 100644 --- a/test/cases/simple-css-modules-mode-pure/index.js +++ b/test/cases/simple-css-modules-mode-pure/index.js @@ -1 +1 @@ -import './style.css'; +import "./style.css"; diff --git a/test/cases/simple-css-modules-mode-pure/webpack.config.js b/test/cases/simple-css-modules-mode-pure/webpack.config.js index bc5f62d8..f033e9e2 100644 --- a/test/cases/simple-css-modules-mode-pure/webpack.config.js +++ b/test/cases/simple-css-modules-mode-pure/webpack.config.js @@ -1,7 +1,7 @@ -import Self from '../../../src'; +import Self from "../../../src"; module.exports = { - entry: './index.js', + entry: "./index.js", module: { rules: [ { @@ -9,11 +9,11 @@ module.exports = { use: [ Self.loader, { - loader: 'css-loader', + loader: "css-loader", options: { modules: { - mode: 'pure', - localIdentName: 'foo__[name]__[local]', + mode: "pure", + localIdentName: "foo__[name]__[local]", }, }, }, @@ -23,7 +23,7 @@ module.exports = { }, plugins: [ new Self({ - filename: '[name].css', + filename: "[name].css", }), ], }; diff --git a/test/cases/simple-es-module-syntax/index.js b/test/cases/simple-es-module-syntax/index.js index aa3357bf..4fe51c72 100644 --- a/test/cases/simple-es-module-syntax/index.js +++ b/test/cases/simple-es-module-syntax/index.js @@ -1 +1 @@ -import './style.css'; +import "./style.css"; diff --git a/test/cases/simple-es-module-syntax/webpack.config.js b/test/cases/simple-es-module-syntax/webpack.config.js index 565b7754..8b31439a 100644 --- a/test/cases/simple-es-module-syntax/webpack.config.js +++ b/test/cases/simple-es-module-syntax/webpack.config.js @@ -1,7 +1,7 @@ -import Self from '../../../src'; +import Self from "../../../src"; module.exports = { - entry: './index.js', + entry: "./index.js", module: { rules: [ { @@ -9,7 +9,7 @@ module.exports = { use: [ Self.loader, { - loader: 'css-loader', + loader: "css-loader", // TODO Uncomment after `css-loader` release the `esModule` option // options: { esModule: true }, }, @@ -19,7 +19,7 @@ module.exports = { }, plugins: [ new Self({ - filename: '[name].css', + filename: "[name].css", }), ], }; diff --git a/test/cases/simple-multiple/index.js b/test/cases/simple-multiple/index.js index a0ec7954..5337afb9 100644 --- a/test/cases/simple-multiple/index.js +++ b/test/cases/simple-multiple/index.js @@ -1,2 +1,2 @@ -import './a.css'; -import './b.css'; +import "./a.css"; +import "./b.css"; diff --git a/test/cases/simple-multiple/webpack.config.js b/test/cases/simple-multiple/webpack.config.js index 4e160f26..cf55c08c 100644 --- a/test/cases/simple-multiple/webpack.config.js +++ b/test/cases/simple-multiple/webpack.config.js @@ -1,18 +1,18 @@ -import Self from '../../../src'; +import Self from "../../../src"; module.exports = { - entry: './index.js', + entry: "./index.js", module: { rules: [ { test: /\.css$/, - use: [Self.loader, 'css-loader'], + use: [Self.loader, "css-loader"], }, ], }, plugins: [ new Self({ - filename: '[name].css', + filename: "[name].css", }), ], }; diff --git a/test/cases/simple-publicpath/index.js b/test/cases/simple-publicpath/index.js index aa3357bf..4fe51c72 100644 --- a/test/cases/simple-publicpath/index.js +++ b/test/cases/simple-publicpath/index.js @@ -1 +1 @@ -import './style.css'; +import "./style.css"; diff --git a/test/cases/simple-publicpath/webpack.config.js b/test/cases/simple-publicpath/webpack.config.js index 745eaf79..649e936c 100644 --- a/test/cases/simple-publicpath/webpack.config.js +++ b/test/cases/simple-publicpath/webpack.config.js @@ -1,7 +1,7 @@ -import Self from '../../../src'; +import Self from "../../../src"; module.exports = { - entry: './index.js', + entry: "./index.js", module: { rules: [ { @@ -10,19 +10,19 @@ module.exports = { { loader: Self.loader, options: { - publicPath: '/static/img/', + publicPath: "/static/img/", }, }, - 'css-loader', + "css-loader", ], }, { test: /\.(svg|png)$/, use: [ { - loader: 'file-loader', + loader: "file-loader", options: { - filename: '[name].[ext]', + filename: "[name].[ext]", }, }, ], @@ -31,7 +31,7 @@ module.exports = { }, plugins: [ new Self({ - filename: '[name].css', + filename: "[name].css", }), ], }; diff --git a/test/cases/simple/index.js b/test/cases/simple/index.js index aa3357bf..4fe51c72 100644 --- a/test/cases/simple/index.js +++ b/test/cases/simple/index.js @@ -1 +1 @@ -import './style.css'; +import "./style.css"; diff --git a/test/cases/simple/webpack.config.js b/test/cases/simple/webpack.config.js index 4e160f26..cf55c08c 100644 --- a/test/cases/simple/webpack.config.js +++ b/test/cases/simple/webpack.config.js @@ -1,18 +1,18 @@ -import Self from '../../../src'; +import Self from "../../../src"; module.exports = { - entry: './index.js', + entry: "./index.js", module: { rules: [ { test: /\.css$/, - use: [Self.loader, 'css-loader'], + use: [Self.loader, "css-loader"], }, ], }, plugins: [ new Self({ - filename: '[name].css', + filename: "[name].css", }), ], }; diff --git a/test/cases/source-map/index.js b/test/cases/source-map/index.js index aa3357bf..4fe51c72 100644 --- a/test/cases/source-map/index.js +++ b/test/cases/source-map/index.js @@ -1 +1 @@ -import './style.css'; +import "./style.css"; diff --git a/test/cases/source-map/webpack.config.js b/test/cases/source-map/webpack.config.js index 5fd68666..38240d39 100644 --- a/test/cases/source-map/webpack.config.js +++ b/test/cases/source-map/webpack.config.js @@ -1,8 +1,8 @@ -import Self from '../../../src'; +import Self from "../../../src"; module.exports = { - entry: './index.js', - devtool: 'source-map', + entry: "./index.js", + devtool: "source-map", module: { rules: [ { @@ -12,7 +12,7 @@ module.exports = { loader: Self.loader, }, { - loader: 'css-loader', + loader: "css-loader", options: { sourceMap: true, }, @@ -23,7 +23,7 @@ module.exports = { }, plugins: [ new Self({ - filename: '[name].css', + filename: "[name].css", }), ], }; diff --git a/test/cases/split-chunks-all/a.js b/test/cases/split-chunks-all/a.js index aa3357bf..4fe51c72 100644 --- a/test/cases/split-chunks-all/a.js +++ b/test/cases/split-chunks-all/a.js @@ -1 +1 @@ -import './style.css'; +import "./style.css"; diff --git a/test/cases/split-chunks-all/b.js b/test/cases/split-chunks-all/b.js index aa3357bf..4fe51c72 100644 --- a/test/cases/split-chunks-all/b.js +++ b/test/cases/split-chunks-all/b.js @@ -1 +1 @@ -import './style.css'; +import "./style.css"; diff --git a/test/cases/split-chunks-all/index.js b/test/cases/split-chunks-all/index.js index aa3357bf..4fe51c72 100644 --- a/test/cases/split-chunks-all/index.js +++ b/test/cases/split-chunks-all/index.js @@ -1 +1 @@ -import './style.css'; +import "./style.css"; diff --git a/test/cases/split-chunks-all/webpack.config.js b/test/cases/split-chunks-all/webpack.config.js index e19df414..f57c93a3 100644 --- a/test/cases/split-chunks-all/webpack.config.js +++ b/test/cases/split-chunks-all/webpack.config.js @@ -1,15 +1,15 @@ -import Self from '../../../src'; +import Self from "../../../src"; module.exports = { entry: { - a: './a.js', - b: './b.js', + a: "./a.js", + b: "./b.js", }, module: { rules: [ { test: /\.css$/, - use: [Self.loader, 'css-loader'], + use: [Self.loader, "css-loader"], }, ], }, @@ -17,8 +17,8 @@ module.exports = { splitChunks: { cacheGroups: { styles: { - type: 'css/mini-extract', - chunks: 'all', + type: "css/mini-extract", + chunks: "all", enforce: true, }, }, diff --git a/test/cases/split-chunks-recursiveIssuer/a.js b/test/cases/split-chunks-recursiveIssuer/a.js index c772d417..0c13bc98 100644 --- a/test/cases/split-chunks-recursiveIssuer/a.js +++ b/test/cases/split-chunks-recursiveIssuer/a.js @@ -1,3 +1,3 @@ -import './a.css'; +import "./a.css"; -import(/* webpackChunkName: "comp1" */ './components/comp1'); +import(/* webpackChunkName: "comp1" */ "./components/comp1"); diff --git a/test/cases/split-chunks-recursiveIssuer/b.js b/test/cases/split-chunks-recursiveIssuer/b.js index 792392ad..c3f9e8ec 100644 --- a/test/cases/split-chunks-recursiveIssuer/b.js +++ b/test/cases/split-chunks-recursiveIssuer/b.js @@ -1,3 +1,3 @@ -import './b.css'; +import "./b.css"; -import(/* webpackChunkName: "comp2" */ './components/comp2'); +import(/* webpackChunkName: "comp2" */ "./components/comp2"); diff --git a/test/cases/split-chunks-recursiveIssuer/components/comp1.js b/test/cases/split-chunks-recursiveIssuer/components/comp1.js index 36a1b18c..d9122966 100644 --- a/test/cases/split-chunks-recursiveIssuer/components/comp1.js +++ b/test/cases/split-chunks-recursiveIssuer/components/comp1.js @@ -1 +1 @@ -import './comp1.css'; +import "./comp1.css"; diff --git a/test/cases/split-chunks-recursiveIssuer/components/comp2.js b/test/cases/split-chunks-recursiveIssuer/components/comp2.js index 1509031a..232dd5bd 100644 --- a/test/cases/split-chunks-recursiveIssuer/components/comp2.js +++ b/test/cases/split-chunks-recursiveIssuer/components/comp2.js @@ -1 +1 @@ -import './comp2.css'; +import "./comp2.css"; diff --git a/test/cases/split-chunks-recursiveIssuer/webpack.config.js b/test/cases/split-chunks-recursiveIssuer/webpack.config.js index d94301fb..357f8bcb 100644 --- a/test/cases/split-chunks-recursiveIssuer/webpack.config.js +++ b/test/cases/split-chunks-recursiveIssuer/webpack.config.js @@ -1,4 +1,4 @@ -import Self from '../../../src'; +import Self from "../../../src"; function recursiveIssuer(m, c) { const issuer = c.moduleGraph.getIssuer(m); @@ -18,14 +18,14 @@ function recursiveIssuer(m, c) { module.exports = { entry: { - a: './a.js', - b: './b.js', + a: "./a.js", + b: "./b.js", }, module: { rules: [ { test: /\.css$/, - use: [Self.loader, 'css-loader'], + use: [Self.loader, "css-loader"], }, ], }, @@ -33,19 +33,19 @@ module.exports = { splitChunks: { cacheGroups: { aStyles: { - name: 'styles_a', - test: (m, c, entry = 'a') => - m.constructor.name === 'CssModule' && + name: "styles_a", + test: (m, c, entry = "a") => + m.constructor.name === "CssModule" && recursiveIssuer(m, c) === entry, - chunks: 'all', + chunks: "all", enforce: true, }, bStyles: { - name: 'styles_b', - test: (m, c, entry = 'b') => - m.constructor.name === 'CssModule' && + name: "styles_b", + test: (m, c, entry = "b") => + m.constructor.name === "CssModule" && recursiveIssuer(m, c) === entry, - chunks: 'all', + chunks: "all", enforce: true, }, }, diff --git a/test/cases/split-chunks-single/a.css b/test/cases/split-chunks-single/a.css index 6bc7f2c0..5dfbbae2 100644 --- a/test/cases/split-chunks-single/a.css +++ b/test/cases/split-chunks-single/a.css @@ -1,3 +1,3 @@ body { - content: 'a'; + content: "a"; } diff --git a/test/cases/split-chunks-single/b.css b/test/cases/split-chunks-single/b.css index 6cbcc83c..9c96da60 100644 --- a/test/cases/split-chunks-single/b.css +++ b/test/cases/split-chunks-single/b.css @@ -1,3 +1,3 @@ body { - content: 'b'; + content: "b"; } diff --git a/test/cases/split-chunks-single/c.css b/test/cases/split-chunks-single/c.css index 919e566e..a8b60b1e 100644 --- a/test/cases/split-chunks-single/c.css +++ b/test/cases/split-chunks-single/c.css @@ -1,3 +1,3 @@ body { - content: 'c'; + content: "c"; } diff --git a/test/cases/split-chunks-single/chunk1.js b/test/cases/split-chunks-single/chunk1.js index 882b0824..eb558470 100644 --- a/test/cases/split-chunks-single/chunk1.js +++ b/test/cases/split-chunks-single/chunk1.js @@ -1,2 +1,2 @@ -import './c.css'; -import './d.css'; +import "./c.css"; +import "./d.css"; diff --git a/test/cases/split-chunks-single/chunk2.js b/test/cases/split-chunks-single/chunk2.js index 59aff85a..7254062a 100644 --- a/test/cases/split-chunks-single/chunk2.js +++ b/test/cases/split-chunks-single/chunk2.js @@ -1,2 +1,2 @@ -import './d.css'; -import './h.css'; +import "./d.css"; +import "./h.css"; diff --git a/test/cases/split-chunks-single/d.css b/test/cases/split-chunks-single/d.css index 004a42f4..28b0c8a2 100644 --- a/test/cases/split-chunks-single/d.css +++ b/test/cases/split-chunks-single/d.css @@ -1,3 +1,3 @@ body { - content: 'd'; + content: "d"; } diff --git a/test/cases/split-chunks-single/e1.css b/test/cases/split-chunks-single/e1.css index b3a307e8..06e4b188 100644 --- a/test/cases/split-chunks-single/e1.css +++ b/test/cases/split-chunks-single/e1.css @@ -1,3 +1,3 @@ body { - content: 'e1'; + content: "e1"; } diff --git a/test/cases/split-chunks-single/e2.css b/test/cases/split-chunks-single/e2.css index f651f0fc..3bc4fc4e 100644 --- a/test/cases/split-chunks-single/e2.css +++ b/test/cases/split-chunks-single/e2.css @@ -1,3 +1,3 @@ body { - content: 'e2'; + content: "e2"; } diff --git a/test/cases/split-chunks-single/entry1.js b/test/cases/split-chunks-single/entry1.js index c49e3ef9..a9eb31cb 100644 --- a/test/cases/split-chunks-single/entry1.js +++ b/test/cases/split-chunks-single/entry1.js @@ -1,9 +1,9 @@ -import './a.css'; -import './e1.css'; -import './e2.css'; -import './f.css'; +import "./a.css"; +import "./e1.css"; +import "./e2.css"; +import "./f.css"; /* eslint-disable-next-line no-unused-expressions */ -import('./chunk1'); +import("./chunk1"); /* eslint-disable-next-line no-unused-expressions */ -import('./chunk2'); +import("./chunk2"); diff --git a/test/cases/split-chunks-single/entry2.js b/test/cases/split-chunks-single/entry2.js index a8576c43..ac99cd5c 100644 --- a/test/cases/split-chunks-single/entry2.js +++ b/test/cases/split-chunks-single/entry2.js @@ -1,5 +1,5 @@ -import './b.css'; -import './e2.css'; -import './e1.css'; -import './g.css'; -import './h.css'; +import "./b.css"; +import "./e2.css"; +import "./e1.css"; +import "./g.css"; +import "./h.css"; diff --git a/test/cases/split-chunks-single/expected/styles.css b/test/cases/split-chunks-single/expected/styles.css index e2ece2e2..35cc00ff 100644 --- a/test/cases/split-chunks-single/expected/styles.css +++ b/test/cases/split-chunks-single/expected/styles.css @@ -1,36 +1,36 @@ body { - content: 'a'; + content: "a"; } body { - content: 'b'; + content: "b"; } body { - content: 'c'; + content: "c"; } body { - content: 'd'; + content: "d"; } body { - content: 'e1'; + content: "e1"; } body { - content: 'e2'; + content: "e2"; } body { - content: 'f'; + content: "f"; } body { - content: 'g'; + content: "g"; } body { - content: 'h'; + content: "h"; } diff --git a/test/cases/split-chunks-single/f.css b/test/cases/split-chunks-single/f.css index ec33b458..e99da47e 100644 --- a/test/cases/split-chunks-single/f.css +++ b/test/cases/split-chunks-single/f.css @@ -1,3 +1,3 @@ body { - content: 'f'; + content: "f"; } diff --git a/test/cases/split-chunks-single/g.css b/test/cases/split-chunks-single/g.css index a1c50ffa..01e55e27 100644 --- a/test/cases/split-chunks-single/g.css +++ b/test/cases/split-chunks-single/g.css @@ -1,3 +1,3 @@ body { - content: 'g'; + content: "g"; } diff --git a/test/cases/split-chunks-single/h.css b/test/cases/split-chunks-single/h.css index efa1d4de..f1ebf2eb 100644 --- a/test/cases/split-chunks-single/h.css +++ b/test/cases/split-chunks-single/h.css @@ -1,3 +1,3 @@ body { - content: 'h'; + content: "h"; } diff --git a/test/cases/split-chunks-single/webpack.config.js b/test/cases/split-chunks-single/webpack.config.js index 18a062a1..0637e600 100644 --- a/test/cases/split-chunks-single/webpack.config.js +++ b/test/cases/split-chunks-single/webpack.config.js @@ -1,15 +1,15 @@ -import Self from '../../../src'; +import Self from "../../../src"; module.exports = { entry: { - entry1: './entry1.js', - entry2: './entry2.js', + entry1: "./entry1.js", + entry2: "./entry2.js", }, module: { rules: [ { test: /\.css$/, - use: [Self.loader, 'css-loader'], + use: [Self.loader, "css-loader"], }, ], }, @@ -17,8 +17,8 @@ module.exports = { splitChunks: { cacheGroups: { styles: { - name: 'styles', - chunks: 'all', + name: "styles", + chunks: "all", test: /\.css$/, enforce: true, }, @@ -27,7 +27,7 @@ module.exports = { }, plugins: [ new Self({ - filename: '[name].css', + filename: "[name].css", }), ], }; diff --git a/test/cases/split-chunks/index.js b/test/cases/split-chunks/index.js index b90fdc81..ebec65b9 100644 --- a/test/cases/split-chunks/index.js +++ b/test/cases/split-chunks/index.js @@ -1,3 +1,3 @@ // eslint-disable-next-line import/no-extraneous-dependencies -import 'bootstrap.css'; -import './style.css'; +import "bootstrap.css"; +import "./style.css"; diff --git a/test/cases/split-chunks/webpack.config.js b/test/cases/split-chunks/webpack.config.js index 9cbe1fd6..a93e6d17 100644 --- a/test/cases/split-chunks/webpack.config.js +++ b/test/cases/split-chunks/webpack.config.js @@ -1,21 +1,21 @@ -import Self from '../../../src'; +import Self from "../../../src"; module.exports = { - entry: './index.js', + entry: "./index.js", module: { rules: [ { test: /\.css$/, - use: [Self.loader, 'css-loader'], + use: [Self.loader, "css-loader"], }, ], }, optimization: { splitChunks: { - chunks: 'all', + chunks: "all", cacheGroups: { vendors: { - name: 'vendors', + name: "vendors", test: /node_modules/, enforce: true, }, @@ -24,7 +24,7 @@ module.exports = { }, plugins: [ new Self({ - filename: '[name].css', + filename: "[name].css", }), ], }; diff --git a/test/cjs.test.js b/test/cjs.test.js index b17dfc75..659d6b5b 100644 --- a/test/cjs.test.js +++ b/test/cjs.test.js @@ -1,8 +1,8 @@ -import MiniCssExtractPlugin from '../src'; -import CJSMiniCssExtractPlugin from '../src/cjs'; +import MiniCssExtractPlugin from "../src"; +import CJSMiniCssExtractPlugin from "../src/cjs"; -describe('CJS', () => { - it('should exported plugin', () => { +describe("CJS", () => { + it("should exported plugin", () => { expect(CJSMiniCssExtractPlugin).toEqual(MiniCssExtractPlugin); }); }); diff --git a/test/emit-option.test.js b/test/emit-option.test.js index 2ecd8f84..6f14bd6d 100644 --- a/test/emit-option.test.js +++ b/test/emit-option.test.js @@ -1,11 +1,11 @@ /* eslint-env browser */ -import fs from 'fs'; -import path from 'path'; +import fs from "fs"; +import path from "path"; -import webpack from 'webpack'; -import del from 'del'; +import webpack from "webpack"; +import del from "del"; -import MiniCssExtractPlugin from '../src'; +import MiniCssExtractPlugin from "../src"; import { compile, @@ -13,24 +13,24 @@ import { getErrors, getWarnings, runInJsDom, -} from './helpers/index'; +} from "./helpers/index"; -describe('emit option', () => { +describe("emit option", () => { it(`should work without emit option`, async () => { const compiler = getCompiler( - 'style-url.js', + "style-url.js", {}, { - mode: 'none', + mode: "none", output: { - publicPath: '', - path: path.resolve(__dirname, '../outputs'), - filename: '[name].bundle.js', + publicPath: "", + path: path.resolve(__dirname, "../outputs"), + filename: "[name].bundle.js", }, plugins: [ new MiniCssExtractPlugin({ - filename: '[name].css', + filename: "[name].css", }), ], } @@ -38,28 +38,28 @@ describe('emit option', () => { const stats = await compile(compiler); expect(Object.keys(stats.compilation.assets).sort()).toMatchSnapshot( - 'assets' + "assets" ); - expect(getWarnings(stats)).toMatchSnapshot('warnings'); - expect(getErrors(stats)).toMatchSnapshot('errors'); + expect(getWarnings(stats)).toMatchSnapshot("warnings"); + expect(getErrors(stats)).toMatchSnapshot("errors"); }); it(`should work when emit option is "true"`, async () => { const compiler = getCompiler( - 'style-url.js', + "style-url.js", { emit: true, }, { - mode: 'none', + mode: "none", output: { - publicPath: '', - path: path.resolve(__dirname, '../outputs'), + publicPath: "", + path: path.resolve(__dirname, "../outputs"), }, plugins: [ new MiniCssExtractPlugin({ - filename: '[name].css', + filename: "[name].css", }), ], } @@ -67,27 +67,27 @@ describe('emit option', () => { const stats = await compile(compiler); expect(Object.keys(stats.compilation.assets).sort()).toMatchSnapshot( - 'assets' + "assets" ); - expect(getWarnings(stats)).toMatchSnapshot('warnings'); - expect(getErrors(stats)).toMatchSnapshot('errors'); + expect(getWarnings(stats)).toMatchSnapshot("warnings"); + expect(getErrors(stats)).toMatchSnapshot("errors"); }); it(`should work when emit option is "false"`, async () => { const compiler = getCompiler( - 'style-url.js', + "style-url.js", { emit: false, }, { - mode: 'none', + mode: "none", output: { - publicPath: '', - path: path.resolve(__dirname, '../outputs'), + publicPath: "", + path: path.resolve(__dirname, "../outputs"), }, plugins: [ new MiniCssExtractPlugin({ - filename: '[name].css', + filename: "[name].css", }), ], } @@ -95,21 +95,21 @@ describe('emit option', () => { const stats = await compile(compiler); expect(Object.keys(stats.compilation.assets).sort()).toMatchSnapshot( - 'assets' + "assets" ); - expect(getWarnings(stats)).toMatchSnapshot('warnings'); - expect(getErrors(stats)).toMatchSnapshot('errors'); + expect(getWarnings(stats)).toMatchSnapshot("warnings"); + expect(getErrors(stats)).toMatchSnapshot("errors"); }); it(`should work with locals when emit option is "false"`, async () => { const compiler = getCompiler( - 'locals.js', + "locals.js", {}, { output: { - publicPath: '', - path: path.resolve(__dirname, '../outputs'), - filename: '[name].bundle.js', + publicPath: "", + path: path.resolve(__dirname, "../outputs"), + filename: "[name].bundle.js", }, module: { rules: [ @@ -123,7 +123,7 @@ describe('emit option', () => { }, }, { - loader: 'css-loader', + loader: "css-loader", options: { modules: true, }, @@ -134,22 +134,22 @@ describe('emit option', () => { }, plugins: [ new MiniCssExtractPlugin({ - filename: '[name].css', + filename: "[name].css", }), ], } ); const stats = await compile(compiler); - runInJsDom('main.bundle.js', compiler, stats, (dom) => { - expect(dom.serialize()).toMatchSnapshot('DOM'); + runInJsDom("main.bundle.js", compiler, stats, (dom) => { + expect(dom.serialize()).toMatchSnapshot("DOM"); }); - expect(getWarnings(stats)).toMatchSnapshot('warnings'); - expect(getErrors(stats)).toMatchSnapshot('errors'); + expect(getWarnings(stats)).toMatchSnapshot("warnings"); + expect(getErrors(stats)).toMatchSnapshot("errors"); }); it(`should work with locals and invalidate cache when emit option is "false"`, async () => { - const modifyAsset = path.resolve(__dirname, 'fixtures', 'locals/index.css'); + const modifyAsset = path.resolve(__dirname, "fixtures", "locals/index.css"); const modifyAssetContent = fs.readFileSync(modifyAsset); class AssetsModifyPlugin { @@ -159,11 +159,11 @@ describe('emit option', () => { apply(compiler) { compiler.hooks.emit.tapAsync( - 'AssetsModifyPlugin', + "AssetsModifyPlugin", (compilation, callback) => { const newContent = modifyAssetContent .toString() - .replace(/foo/i, 'foo-bar'); + .replace(/foo/i, "foo-bar"); fs.writeFileSync(this.options.file, newContent); callback(); @@ -172,16 +172,16 @@ describe('emit option', () => { } } - const outputPath = path.resolve(__dirname, './js/cache-memory'); + const outputPath = path.resolve(__dirname, "./js/cache-memory"); const webpackConfig = { - mode: 'development', - context: path.resolve(__dirname, './fixtures'), + mode: "development", + context: path.resolve(__dirname, "./fixtures"), cache: { - type: 'memory', + type: "memory", }, - entry: './locals.js', + entry: "./locals.js", output: { - publicPath: '', + publicPath: "", path: outputPath, }, module: { @@ -196,7 +196,7 @@ describe('emit option', () => { }, }, { - loader: 'css-loader', + loader: "css-loader", options: { modules: true, }, @@ -207,7 +207,7 @@ describe('emit option', () => { }, plugins: [ new MiniCssExtractPlugin({ - filename: '[name].css', + filename: "[name].css", }), new AssetsModifyPlugin({ file: modifyAsset, @@ -234,11 +234,11 @@ describe('emit option', () => { expect( Array.from(stats.compilation.emittedAssets).sort() ).toMatchSnapshot(`emittedAssets`); - runInJsDom('main.js', compiler1, stats, (dom) => { - expect(dom.serialize()).toMatchSnapshot('DOM'); + runInJsDom("main.js", compiler1, stats, (dom) => { + expect(dom.serialize()).toMatchSnapshot("DOM"); }); - expect(getWarnings(stats)).toMatchSnapshot('warnings'); - expect(getErrors(stats)).toMatchSnapshot('errors'); + expect(getWarnings(stats)).toMatchSnapshot("warnings"); + expect(getErrors(stats)).toMatchSnapshot("errors"); resolve(); }); @@ -262,11 +262,11 @@ describe('emit option', () => { expect( Array.from(stats.compilation.emittedAssets).sort() ).toMatchSnapshot(`emittedAssets`); - runInJsDom('main.js', compiler2, stats, (dom) => { - expect(dom.serialize()).toMatchSnapshot('DOM'); + runInJsDom("main.js", compiler2, stats, (dom) => { + expect(dom.serialize()).toMatchSnapshot("DOM"); }); - expect(getWarnings(stats)).toMatchSnapshot('warnings'); - expect(getErrors(stats)).toMatchSnapshot('errors'); + expect(getWarnings(stats)).toMatchSnapshot("warnings"); + expect(getErrors(stats)).toMatchSnapshot("errors"); resolve(); }); @@ -277,17 +277,17 @@ describe('emit option', () => { }); it('should work with the "memory" cache and disabled "emit" option', async () => { - const outputPath = path.resolve(__dirname, './js/cache-memory'); + const outputPath = path.resolve(__dirname, "./js/cache-memory"); const webpackConfig = { - mode: 'development', - context: path.resolve(__dirname, 'fixtures'), + mode: "development", + context: path.resolve(__dirname, "fixtures"), cache: { - type: 'memory', + type: "memory", }, output: { path: outputPath, }, - entry: './style-url.js', + entry: "./style-url.js", module: { rules: [ { @@ -296,25 +296,25 @@ describe('emit option', () => { { loader: MiniCssExtractPlugin.loader, options: { - publicPath: '', + publicPath: "", emit: false, }, }, - 'css-loader', + "css-loader", ], }, { test: /\.svg$/, - type: 'asset/resource', + type: "asset/resource", generator: { - filename: 'static/[name][ext][query]', + filename: "static/[name][ext][query]", }, }, ], }, plugins: [ new MiniCssExtractPlugin({ - filename: '[name].css', + filename: "[name].css", }), ], }; @@ -338,8 +338,8 @@ describe('emit option', () => { expect( Array.from(stats.compilation.emittedAssets).sort() ).toMatchSnapshot(`emittedAssets`); - expect(getWarnings(stats)).toMatchSnapshot('warnings'); - expect(getErrors(stats)).toMatchSnapshot('errors'); + expect(getWarnings(stats)).toMatchSnapshot("warnings"); + expect(getErrors(stats)).toMatchSnapshot("errors"); resolve(); }); @@ -363,8 +363,8 @@ describe('emit option', () => { expect( Array.from(stats.compilation.emittedAssets).sort() ).toMatchSnapshot(`emittedAssets`); - expect(getWarnings(stats)).toMatchSnapshot('warnings'); - expect(getErrors(stats)).toMatchSnapshot('errors'); + expect(getWarnings(stats)).toMatchSnapshot("warnings"); + expect(getErrors(stats)).toMatchSnapshot("errors"); resolve(); }); @@ -380,7 +380,7 @@ describe('emit option', () => { apply(compiler) { compiler.hooks.emit.tapAsync( - 'AssetsModifyPlugin', + "AssetsModifyPlugin", (compilation, callback) => { fs.writeFileSync(this.options.file, `.a{color: red;}`); @@ -390,19 +390,19 @@ describe('emit option', () => { } } - const outputPath = path.resolve(__dirname, './js/cache-memory'); - const modifyAsset = path.resolve(__dirname, 'fixtures', 'style-url.css'); + const outputPath = path.resolve(__dirname, "./js/cache-memory"); + const modifyAsset = path.resolve(__dirname, "fixtures", "style-url.css"); const modifyAssetContent = fs.readFileSync(modifyAsset); const webpackConfig = { - mode: 'development', - context: path.resolve(__dirname, 'fixtures'), + mode: "development", + context: path.resolve(__dirname, "fixtures"), cache: { - type: 'memory', + type: "memory", }, output: { path: outputPath, }, - entry: './style-url.js', + entry: "./style-url.js", module: { rules: [ { @@ -411,25 +411,25 @@ describe('emit option', () => { { loader: MiniCssExtractPlugin.loader, options: { - publicPath: '', + publicPath: "", emit: false, }, }, - 'css-loader', + "css-loader", ], }, { test: /\.svg$/, - type: 'asset/resource', + type: "asset/resource", generator: { - filename: 'static/[name][ext][query]', + filename: "static/[name][ext][query]", }, }, ], }, plugins: [ new MiniCssExtractPlugin({ - filename: '[name].css', + filename: "[name].css", }), new AssetsModifyPlugin({ file: modifyAsset, @@ -456,8 +456,8 @@ describe('emit option', () => { expect( Array.from(stats.compilation.emittedAssets).sort() ).toMatchSnapshot(`emittedAssets`); - expect(getWarnings(stats)).toMatchSnapshot('warnings'); - expect(getErrors(stats)).toMatchSnapshot('errors'); + expect(getWarnings(stats)).toMatchSnapshot("warnings"); + expect(getErrors(stats)).toMatchSnapshot("errors"); resolve(); }); @@ -481,8 +481,8 @@ describe('emit option', () => { expect( Array.from(stats.compilation.emittedAssets).sort() ).toMatchSnapshot(`emittedAssets`); - expect(getWarnings(stats)).toMatchSnapshot('warnings'); - expect(getErrors(stats)).toMatchSnapshot('errors'); + expect(getWarnings(stats)).toMatchSnapshot("warnings"); + expect(getErrors(stats)).toMatchSnapshot("errors"); resolve(); }); diff --git a/test/enforce-esm.test.js b/test/enforce-esm.test.js index 86b54af1..ca6fe74d 100644 --- a/test/enforce-esm.test.js +++ b/test/enforce-esm.test.js @@ -1,13 +1,13 @@ -import { getCompiler, source, compile } from './helpers'; +import { getCompiler, source, compile } from "./helpers"; -it('should enforce esm for empty module without options.esModule', async () => { +it("should enforce esm for empty module without options.esModule", async () => { expect.assertions(3); const compiler = getCompiler( - './esm.js', + "./esm.js", {}, { - mode: 'production', + mode: "production", optimization: { minimize: false }, } ); @@ -15,22 +15,22 @@ it('should enforce esm for empty module without options.esModule', async () => { expect(stats.hasErrors()).toBe(false); const { modules } = stats.toJson({ all: false, modules: true }); expect( - modules.filter((m) => m.moduleType !== 'runtime' && !m.orphan).length + modules.filter((m) => m.moduleType !== "runtime" && !m.orphan).length ).toBe(2); - expect(source('./simple.css', stats)).toMatchInlineSnapshot(` + expect(source("./simple.css", stats)).toMatchInlineSnapshot(` "// extracted by mini-css-extract-plugin export {};" `); }); -it('should enforce esm for empty module with options.esModule', async () => { +it("should enforce esm for empty module with options.esModule", async () => { expect.assertions(3); const compiler = getCompiler( - './esm.js', + "./esm.js", { esModule: true }, { - mode: 'production', + mode: "production", optimization: { minimize: false }, } ); @@ -38,9 +38,9 @@ it('should enforce esm for empty module with options.esModule', async () => { expect(stats.hasErrors()).toBe(false); const { modules } = stats.toJson({ all: false, modules: true }); expect( - modules.filter((m) => m.moduleType !== 'runtime' && !m.orphan).length + modules.filter((m) => m.moduleType !== "runtime" && !m.orphan).length ).toBe(2); - expect(source('./simple.css', stats)).toMatchInlineSnapshot(` + expect(source("./simple.css", stats)).toMatchInlineSnapshot(` "// extracted by mini-css-extract-plugin export {};" `); @@ -50,10 +50,10 @@ it('should keep empty module when options.esModule is equal "false"', async () = expect.assertions(3); const compiler = getCompiler( - './esm.js', + "./esm.js", { esModule: false }, { - mode: 'production', + mode: "production", optimization: { minimize: false }, } ); @@ -61,9 +61,9 @@ it('should keep empty module when options.esModule is equal "false"', async () = expect(stats.hasErrors()).toBe(false); const { modules } = stats.toJson({ all: false, modules: true }); expect( - modules.filter((m) => m.moduleType !== 'runtime' && !m.orphan).length + modules.filter((m) => m.moduleType !== "runtime" && !m.orphan).length ).toBe(2); - expect(source('./simple.css', stats)).toMatchInlineSnapshot( + expect(source("./simple.css", stats)).toMatchInlineSnapshot( `"// extracted by mini-css-extract-plugin"` ); }); diff --git a/test/helpers/getCompiler.js b/test/helpers/getCompiler.js index 257a80f9..7f94a459 100644 --- a/test/helpers/getCompiler.js +++ b/test/helpers/getCompiler.js @@ -1,22 +1,22 @@ -import path from 'path'; +import path from "path"; -import webpack from 'webpack'; -import { createFsFromVolume, Volume } from 'memfs'; +import webpack from "webpack"; +import { createFsFromVolume, Volume } from "memfs"; -import MiniCssExtractPlugin from '../../src'; +import MiniCssExtractPlugin from "../../src"; export default (fixture, loaderOptions = {}, config = {}) => { const { outputFileSystem, ...cnfg } = config; const fullConfig = { - mode: 'development', + mode: "development", devtool: cnfg.devtool || false, - context: path.resolve(__dirname, '../fixtures'), - entry: path.resolve(__dirname, '../fixtures', fixture), + context: path.resolve(__dirname, "../fixtures"), + entry: path.resolve(__dirname, "../fixtures", fixture), output: { - path: path.resolve(__dirname, '../outputs'), - filename: '[name].bundle.js', - chunkFilename: '[name].chunk.js', + path: path.resolve(__dirname, "../outputs"), + filename: "[name].bundle.js", + chunkFilename: "[name].chunk.js", }, module: { rules: [ @@ -28,15 +28,15 @@ export default (fixture, loaderOptions = {}, config = {}) => { options: loaderOptions || {}, }, { - loader: 'css-loader', + loader: "css-loader", }, ], }, ].concat({ test: /\.svg$/, - type: 'asset/resource', + type: "asset/resource", generator: { - filename: '[name][ext]', + filename: "[name][ext]", }, }), }, @@ -44,8 +44,8 @@ export default (fixture, loaderOptions = {}, config = {}) => { new MiniCssExtractPlugin({ // Options similar to the same options in webpackOptions.output // both options are optional - filename: '[name].css', - chunkFilename: '[id].css', + filename: "[name].css", + chunkFilename: "[id].css", }), ], ...cnfg, diff --git a/test/helpers/getErrors.js b/test/helpers/getErrors.js index 607b4be2..64e7176c 100644 --- a/test/helpers/getErrors.js +++ b/test/helpers/getErrors.js @@ -1,3 +1,3 @@ -import normalizeErrors from './normalizeErrors'; +import normalizeErrors from "./normalizeErrors"; export default (stats) => normalizeErrors(stats.compilation.errors); diff --git a/test/helpers/getWarnings.js b/test/helpers/getWarnings.js index 70d1781c..eee9f107 100644 --- a/test/helpers/getWarnings.js +++ b/test/helpers/getWarnings.js @@ -1,3 +1,3 @@ -import normalizeErrors from './normalizeErrors'; +import normalizeErrors from "./normalizeErrors"; export default (stats) => normalizeErrors(stats.compilation.warnings); diff --git a/test/helpers/index.js b/test/helpers/index.js index bb004e01..264da9e1 100644 --- a/test/helpers/index.js +++ b/test/helpers/index.js @@ -1,10 +1,10 @@ -import compile from './compile'; -import getCompiler from './getCompiler'; -import source from './source'; -import readAsset from './readAsset'; -import runInJsDom from './runInJsDom'; -import getErrors from './getErrors'; -import getWarnings from './getWarnings'; +import compile from "./compile"; +import getCompiler from "./getCompiler"; +import source from "./source"; +import readAsset from "./readAsset"; +import runInJsDom from "./runInJsDom"; +import getErrors from "./getErrors"; +import getWarnings from "./getWarnings"; export { source, diff --git a/test/helpers/normalizeErrors.js b/test/helpers/normalizeErrors.js index dd419da6..72baa177 100644 --- a/test/helpers/normalizeErrors.js +++ b/test/helpers/normalizeErrors.js @@ -1,18 +1,18 @@ function removeCWD(str) { - const isWin = process.platform === 'win32'; + const isWin = process.platform === "win32"; let cwd = process.cwd(); if (isWin) { // eslint-disable-next-line no-param-reassign - str = str.replace(/\\/g, '/'); + str = str.replace(/\\/g, "/"); // eslint-disable-next-line no-param-reassign - cwd = cwd.replace(/\\/g, '/'); + cwd = cwd.replace(/\\/g, "/"); } - return str.replace(new RegExp(cwd, 'g'), ''); + return str.replace(new RegExp(cwd, "g"), ""); } export default (errors) => errors.map((error) => - removeCWD(error.toString().split('\n').slice(0, 2).join('\n')) + removeCWD(error.toString().split("\n").slice(0, 2).join("\n")) ); diff --git a/test/helpers/readAsset.js b/test/helpers/readAsset.js index 8f4699f0..fde3ff39 100644 --- a/test/helpers/readAsset.js +++ b/test/helpers/readAsset.js @@ -1,13 +1,13 @@ -import path from 'path'; +import path from "path"; export default (asset, compiler, stats) => { const usedFs = compiler.outputFileSystem; const outputPath = stats.compilation.outputOptions.path; - let data = ''; + let data = ""; let targetFile = asset; - const queryStringIdx = targetFile.indexOf('?'); + const queryStringIdx = targetFile.indexOf("?"); if (queryStringIdx >= 0) { targetFile = targetFile.substr(0, queryStringIdx); diff --git a/test/helpers/runInJsDom.js b/test/helpers/runInJsDom.js index 343a06cc..1775e42a 100644 --- a/test/helpers/runInJsDom.js +++ b/test/helpers/runInJsDom.js @@ -1,6 +1,6 @@ -import jsdom from 'jsdom'; +import jsdom from "jsdom"; -import { readAsset } from './index'; +import { readAsset } from "./index"; function runInJsDom(assetName, compiler, stats, testFn) { const bundle = readAsset(assetName, compiler, stats); @@ -24,8 +24,8 @@ function runInJsDom(assetName, compiler, stats, testFn) { `, { - resources: 'usable', - runScripts: 'dangerously', + resources: "usable", + runScripts: "dangerously", virtualConsole, } ); diff --git a/test/ignoreOrder-option.test.js b/test/ignoreOrder-option.test.js index 6cd86f0e..912f19b7 100644 --- a/test/ignoreOrder-option.test.js +++ b/test/ignoreOrder-option.test.js @@ -1,19 +1,19 @@ -import path from 'path'; +import path from "path"; -import webpack from 'webpack'; +import webpack from "webpack"; -describe('IgnoreOrder', () => { - it('should emit warnings', (done) => { - const casesDirectory = path.resolve(__dirname, 'cases'); - const directoryForCase = path.resolve(casesDirectory, 'ignoreOrderFalse'); +describe("IgnoreOrder", () => { + it("should emit warnings", (done) => { + const casesDirectory = path.resolve(__dirname, "cases"); + const directoryForCase = path.resolve(casesDirectory, "ignoreOrderFalse"); // eslint-disable-next-line import/no-dynamic-require, global-require const webpackConfig = require(path.resolve( directoryForCase, - 'webpack.config.js' + "webpack.config.js" )); const compiler = webpack({ ...webpackConfig, - mode: 'development', + mode: "development", context: directoryForCase, cache: false, }); @@ -23,17 +23,17 @@ describe('IgnoreOrder', () => { }); }); - it('should not emit warnings', (done) => { - const casesDirectory = path.resolve(__dirname, 'cases'); - const directoryForCase = path.resolve(casesDirectory, 'ignoreOrder'); + it("should not emit warnings", (done) => { + const casesDirectory = path.resolve(__dirname, "cases"); + const directoryForCase = path.resolve(casesDirectory, "ignoreOrder"); // eslint-disable-next-line import/no-dynamic-require, global-require const webpackConfig = require(path.resolve( directoryForCase, - 'webpack.config.js' + "webpack.config.js" )); const compiler = webpack({ ...webpackConfig, - mode: 'development', + mode: "development", context: directoryForCase, cache: false, }); diff --git a/test/insert-option.test.js b/test/insert-option.test.js index 3b94f21a..97c5c5f0 100644 --- a/test/insert-option.test.js +++ b/test/insert-option.test.js @@ -1,7 +1,7 @@ /* eslint-env browser */ -import path from 'path'; +import path from "path"; -import MiniCssExtractPlugin from '../src/cjs'; +import MiniCssExtractPlugin from "../src/cjs"; import { compile, @@ -9,83 +9,83 @@ import { getErrors, getWarnings, runInJsDom, -} from './helpers/index'; +} from "./helpers/index"; -describe('insert option', () => { +describe("insert option", () => { it(`should work without insert option`, async () => { const compiler = getCompiler( - 'insert.js', + "insert.js", {}, { - mode: 'none', + mode: "none", output: { - publicPath: '', - path: path.resolve(__dirname, '../outputs'), - filename: '[name].bundle.js', + publicPath: "", + path: path.resolve(__dirname, "../outputs"), + filename: "[name].bundle.js", }, plugins: [ new MiniCssExtractPlugin({ - filename: '[name].css', + filename: "[name].css", }), ], } ); const stats = await compile(compiler); - runInJsDom('main.bundle.js', compiler, stats, (dom) => { - expect(dom.serialize()).toMatchSnapshot('DOM'); + runInJsDom("main.bundle.js", compiler, stats, (dom) => { + expect(dom.serialize()).toMatchSnapshot("DOM"); }); - expect(getWarnings(stats)).toMatchSnapshot('warnings'); - expect(getErrors(stats)).toMatchSnapshot('errors'); + expect(getWarnings(stats)).toMatchSnapshot("warnings"); + expect(getErrors(stats)).toMatchSnapshot("errors"); }); it(`should work when insert option is string`, async () => { const compiler = getCompiler( - 'insert.js', + "insert.js", {}, { - mode: 'none', + mode: "none", output: { - publicPath: '', - path: path.resolve(__dirname, '../outputs'), - filename: '[name].bundle.js', + publicPath: "", + path: path.resolve(__dirname, "../outputs"), + filename: "[name].bundle.js", }, plugins: [ new MiniCssExtractPlugin({ - filename: '[name].css', - insert: '#existing-style', + filename: "[name].css", + insert: "#existing-style", }), ], } ); const stats = await compile(compiler); - runInJsDom('main.bundle.js', compiler, stats, (dom) => { - expect(dom.serialize()).toMatchSnapshot('DOM'); + runInJsDom("main.bundle.js", compiler, stats, (dom) => { + expect(dom.serialize()).toMatchSnapshot("DOM"); }); - expect(getWarnings(stats)).toMatchSnapshot('warnings'); - expect(getErrors(stats)).toMatchSnapshot('errors'); + expect(getWarnings(stats)).toMatchSnapshot("warnings"); + expect(getErrors(stats)).toMatchSnapshot("errors"); }); it(`should work when insert option is function`, async () => { const compiler = getCompiler( - 'insert.js', + "insert.js", {}, { - mode: 'none', + mode: "none", output: { - publicPath: '', - path: path.resolve(__dirname, '../outputs'), - filename: '[name].bundle.js', + publicPath: "", + path: path.resolve(__dirname, "../outputs"), + filename: "[name].bundle.js", }, plugins: [ new MiniCssExtractPlugin({ - filename: '[name].css', + filename: "[name].css", // eslint-disable-next-line insert: function (linkTag) { - const reference = document.querySelector('#existing-style'); + const reference = document.querySelector("#existing-style"); if (reference) { reference.parentNode.insertBefore(linkTag, reference); } @@ -96,11 +96,11 @@ describe('insert option', () => { ); const stats = await compile(compiler); - runInJsDom('main.bundle.js', compiler, stats, (dom) => { - expect(dom.serialize()).toMatchSnapshot('DOM'); + runInJsDom("main.bundle.js", compiler, stats, (dom) => { + expect(dom.serialize()).toMatchSnapshot("DOM"); }); - expect(getWarnings(stats)).toMatchSnapshot('warnings'); - expect(getErrors(stats)).toMatchSnapshot('errors'); + expect(getWarnings(stats)).toMatchSnapshot("warnings"); + expect(getErrors(stats)).toMatchSnapshot("errors"); }); }); diff --git a/test/linkTag-option.test.js b/test/linkTag-option.test.js index 1ab27bda..45e91851 100644 --- a/test/linkTag-option.test.js +++ b/test/linkTag-option.test.js @@ -1,7 +1,7 @@ /* eslint-env browser */ -import path from 'path'; +import path from "path"; -import MiniCssExtractPlugin from '../src/cjs'; +import MiniCssExtractPlugin from "../src/cjs"; import { compile, @@ -9,89 +9,89 @@ import { getErrors, getWarnings, runInJsDom, -} from './helpers/index'; +} from "./helpers/index"; -describe('linkType option', () => { +describe("linkType option", () => { it(`should work without linkType option`, async () => { const compiler = getCompiler( - 'attributes.js', + "attributes.js", {}, { output: { - publicPath: '', - path: path.resolve(__dirname, '../outputs'), - filename: '[name].bundle.js', + publicPath: "", + path: path.resolve(__dirname, "../outputs"), + filename: "[name].bundle.js", }, plugins: [ new MiniCssExtractPlugin({ - filename: '[name].css', + filename: "[name].css", }), ], } ); const stats = await compile(compiler); - runInJsDom('main.bundle.js', compiler, stats, (dom) => { - expect(dom.serialize()).toMatchSnapshot('DOM'); + runInJsDom("main.bundle.js", compiler, stats, (dom) => { + expect(dom.serialize()).toMatchSnapshot("DOM"); }); - expect(getWarnings(stats)).toMatchSnapshot('warnings'); - expect(getErrors(stats)).toMatchSnapshot('errors'); + expect(getWarnings(stats)).toMatchSnapshot("warnings"); + expect(getErrors(stats)).toMatchSnapshot("errors"); }); it(`should work when linkType option is "false"`, async () => { const compiler = getCompiler( - 'attributes.js', + "attributes.js", {}, { output: { - publicPath: '', - path: path.resolve(__dirname, '../outputs'), - filename: '[name].bundle.js', + publicPath: "", + path: path.resolve(__dirname, "../outputs"), + filename: "[name].bundle.js", }, plugins: [ new MiniCssExtractPlugin({ linkType: false, - filename: '[name].css', + filename: "[name].css", }), ], } ); const stats = await compile(compiler); - runInJsDom('main.bundle.js', compiler, stats, (dom) => { - expect(dom.serialize()).toMatchSnapshot('DOM'); + runInJsDom("main.bundle.js", compiler, stats, (dom) => { + expect(dom.serialize()).toMatchSnapshot("DOM"); }); - expect(getWarnings(stats)).toMatchSnapshot('warnings'); - expect(getErrors(stats)).toMatchSnapshot('errors'); + expect(getWarnings(stats)).toMatchSnapshot("warnings"); + expect(getErrors(stats)).toMatchSnapshot("errors"); }); it(`should work when linkType option is "text/css"`, async () => { const compiler = getCompiler( - 'attributes.js', + "attributes.js", {}, { output: { - publicPath: '', - path: path.resolve(__dirname, '../outputs'), - filename: '[name].bundle.js', + publicPath: "", + path: path.resolve(__dirname, "../outputs"), + filename: "[name].bundle.js", }, plugins: [ new MiniCssExtractPlugin({ - linkType: 'text/css', - filename: '[name].css', + linkType: "text/css", + filename: "[name].css", }), ], } ); const stats = await compile(compiler); - runInJsDom('main.bundle.js', compiler, stats, (dom) => { - expect(dom.serialize()).toMatchSnapshot('DOM'); + runInJsDom("main.bundle.js", compiler, stats, (dom) => { + expect(dom.serialize()).toMatchSnapshot("DOM"); }); - expect(getWarnings(stats)).toMatchSnapshot('warnings'); - expect(getErrors(stats)).toMatchSnapshot('errors'); + expect(getWarnings(stats)).toMatchSnapshot("warnings"); + expect(getErrors(stats)).toMatchSnapshot("errors"); }); }); diff --git a/test/manual/index.html b/test/manual/index.html index 26b9e7c9..0a438be4 100644 --- a/test/manual/index.html +++ b/test/manual/index.html @@ -1,72 +1,98 @@ - - - - mini-css-extract-plugin testcase - - - - - - - -
- Initial CSS: Must be green -
-
-

Hot Module Replacement

-
RED
-
GREEN
-
BLUE
-
-
-

Hot Module Replacement + CSS modules

-
RED
-
GREEN
-
BLUE
-
-
-

Lazy CSS: Must be red, but turn green when .

-

But turn orange, when . Additional clicks have no effect.

-

Refresh and press buttons in reverse order: This should turn green instead.

-
-
-

Lazy CSS Module: Must be red, but turn green when .

-
-
-

Lazy CSS: Turn off the network and .

-

An error should have appeared.

-

Now if you turn the network back on and click it again, it should turn aqua.

-
-
-

Preloaded CSS: Must be green.

-

displays an alert but has no styling effect.

-
-
-

Preloaded inlined CSS: Must be green.

-

displays an alert but has no styling effect.

-
-
-

CrossOriginLoading Option: Must be red.

-

loads chunks with crossorigin attribute and should turn green.

-
-
- - + + + + mini-css-extract-plugin testcase + + + + + + + +
Initial CSS: Must be green
+
+

Hot Module Replacement

+
RED
+
GREEN
+
BLUE
+
+
+

Hot Module Replacement + CSS modules

+
RED
+
GREEN
+
BLUE
+
+
+

+ Lazy CSS: Must be red, but turn green when + . +

+

+ But turn orange, when + . Additional + clicks have no effect. +

+

+ Refresh and press buttons in reverse order: This should turn green + instead. +

+
+
+

+ Lazy CSS Module: Must be red, but turn green when + . +

+
+
+

+ Lazy CSS: Turn off the network and + . +

+

An error should have appeared.

+

+ Now if you turn the network back on and click it again, it should turn + aqua. +

+
+
+

Preloaded CSS: Must be green.

+

+ displays + an alert but has no styling effect. +

+
+
+

Preloaded inlined CSS: Must be green.

+

+ displays + an alert but has no styling effect. +

+
+
+

CrossOriginLoading Option: Must be red.

+

+ loads chunks with crossorigin + attribute and should turn green. +

+
+
+ + diff --git a/test/manual/src/crossorigin.js b/test/manual/src/crossorigin.js index bd9683af..90d8e8b9 100644 --- a/test/manual/src/crossorigin.js +++ b/test/manual/src/crossorigin.js @@ -1 +1 @@ -import './crossorigin.css'; +import "./crossorigin.css"; diff --git a/test/manual/src/index.js b/test/manual/src/index.js index 466423df..f6d93735 100644 --- a/test/manual/src/index.js +++ b/test/manual/src/index.js @@ -2,11 +2,11 @@ /* global __webpack_public_path__ */ /* eslint-disable no-console, camelcase, no-global-assign */ -import './initial.css'; -import './simple.css'; -import classes from './simple.module.css'; +import "./initial.css"; +import "./simple.css"; +import classes from "./simple.module.css"; -console.log('___CLASSES__'); +console.log("___CLASSES__"); console.log(classes); function replaceClass(originalClass, newClass) { @@ -26,7 +26,7 @@ Object.keys(classes).forEach((localClass) => { let oldClasses = classes; if (module.hot) { - module.hot.accept('./simple.module.css', () => { + module.hot.accept("./simple.module.css", () => { Object.keys(oldClasses).forEach((localClass) => { replaceClass(oldClasses[localClass], localClass); }); @@ -35,18 +35,18 @@ if (module.hot) { }); oldClasses = classes; // eslint-disable-next-line no-alert - alert('HMR updated CSS module'); + alert("HMR updated CSS module"); }); } const handleError = (err) => { - document.querySelector('.errors').textContent += `\n${err.toString()}`; + document.querySelector(".errors").textContent += `\n${err.toString()}`; console.error(err); }; const makeButton = (className, fn, shouldDisable = true) => { const button = document.querySelector(className); - button.addEventListener('click', () => { + button.addEventListener("click", () => { if (shouldDisable) { button.disabled = true; } @@ -58,34 +58,34 @@ const makeButton = (className, fn, shouldDisable = true) => { }); }; -makeButton('.lazy-button', () => import('./lazy')); -makeButton('.lazy-button2', () => import('./lazy2.css')); -makeButton('.lazy-module-button', () => - import('./lazy.module.css').then((module) => { +makeButton(".lazy-button", () => import("./lazy")); +makeButton(".lazy-button2", () => import("./lazy2.css")); +makeButton(".lazy-module-button", () => + import("./lazy.module.css").then((module) => { console.log(module); document - .querySelector('.lazy-css-module') + .querySelector(".lazy-css-module") // eslint-disable-next-line no-underscore-dangle .classList.add(module.__esModule ? module.default.style : module.style); }) ); -makeButton('.preloaded-button1', () => - import(/* webpackChunkName: "preloaded1" */ './preloaded1') +makeButton(".preloaded-button1", () => + import(/* webpackChunkName: "preloaded1" */ "./preloaded1") ); -makeButton('.preloaded-button2', () => - import(/* webpackChunkName: "preloaded2" */ './preloaded2') +makeButton(".preloaded-button2", () => + import(/* webpackChunkName: "preloaded2" */ "./preloaded2") ); -makeButton('.lazy-failure-button', () => import('./lazy-failure'), false); +makeButton(".lazy-failure-button", () => import("./lazy-failure"), false); -makeButton('.crossorigin', () => { +makeButton(".crossorigin", () => { const originalPublicPath = __webpack_public_path__; - __webpack_public_path__ = 'http://127.0.0.1:8080/dist/'; - const promise = import('./crossorigin').then(() => { + __webpack_public_path__ = "http://127.0.0.1:8080/dist/"; + const promise = import("./crossorigin").then(() => { const lastTwoElements = Array.from(document.head.children).slice(-2); const hasCrossorigin = lastTwoElements.every( - (element) => element.crossOrigin === 'anonymous' + (element) => element.crossOrigin === "anonymous" ); if (!hasCrossorigin) { throw new Error('Chunks miss crossorigin="anonymous" attribute.'); diff --git a/test/manual/src/lazy-failure.js b/test/manual/src/lazy-failure.js index b0d90036..d3131b2c 100644 --- a/test/manual/src/lazy-failure.js +++ b/test/manual/src/lazy-failure.js @@ -1,3 +1,3 @@ /* eslint-env browser */ -import './lazy-failure.css'; +import "./lazy-failure.css"; diff --git a/test/manual/src/lazy.js b/test/manual/src/lazy.js index faacb3a2..fba99180 100644 --- a/test/manual/src/lazy.js +++ b/test/manual/src/lazy.js @@ -1,3 +1,3 @@ /* eslint-env browser */ -import './lazy.css'; +import "./lazy.css"; diff --git a/test/manual/src/preloaded1.js b/test/manual/src/preloaded1.js index 152d35ad..a398bcc9 100644 --- a/test/manual/src/preloaded1.js +++ b/test/manual/src/preloaded1.js @@ -1,6 +1,6 @@ /* eslint-env browser */ /* eslint-disable no-alert */ -import './preloaded1.css'; +import "./preloaded1.css"; -alert('Ok'); +alert("Ok"); diff --git a/test/manual/src/preloaded2.js b/test/manual/src/preloaded2.js index be946ee4..9641ac1d 100644 --- a/test/manual/src/preloaded2.js +++ b/test/manual/src/preloaded2.js @@ -1,6 +1,6 @@ /* eslint-env browser */ /* eslint-disable no-alert */ -import './preloaded2.css'; +import "./preloaded2.css"; -alert('Ok'); +alert("Ok"); diff --git a/test/manual/webpack.config.js b/test/manual/webpack.config.js index 3b4bf633..a5ceb76d 100644 --- a/test/manual/webpack.config.js +++ b/test/manual/webpack.config.js @@ -1,26 +1,26 @@ -const Self = require('../../'); +const Self = require("../../"); const ENABLE_HMR = - typeof process.env.ENABLE_HMR !== 'undefined' + typeof process.env.ENABLE_HMR !== "undefined" ? Boolean(process.env.ENABLE_HMR) : true; const ENABLE_ES_MODULE = - typeof process.env.ES_MODULE !== 'undefined' + typeof process.env.ES_MODULE !== "undefined" ? Boolean(process.env.ES_MODULE) : true; const ENABLE_EXPERIMENTAL_USE_IMPORT_MODULE = - typeof process.env.EXPERIMENTAL_USE_IMPORT_MODULE !== 'undefined' + typeof process.env.EXPERIMENTAL_USE_IMPORT_MODULE !== "undefined" ? Boolean(process.env.EXPERIMENTAL_USE_IMPORT_MODULE) : true; module.exports = { - mode: 'development', + mode: "development", output: { - chunkFilename: '[name].chunk.js', - publicPath: '/dist/', - crossOriginLoading: 'anonymous', + chunkFilename: "[name].chunk.js", + publicPath: "/dist/", + crossOriginLoading: "anonymous", }, module: { rules: [ @@ -32,7 +32,7 @@ module.exports = { loader: Self.loader, }, { - loader: 'css-loader', + loader: "css-loader", options: { esModule: ENABLE_ES_MODULE, }, @@ -49,7 +49,7 @@ module.exports = { }, }, { - loader: 'css-loader', + loader: "css-loader", options: { modules: true, esModule: ENABLE_ES_MODULE, @@ -61,8 +61,8 @@ module.exports = { }, plugins: [ new Self({ - filename: '[name].css', - chunkFilename: '[name].chunk.css', + filename: "[name].css", + chunkFilename: "[name].chunk.css", experimentalUseImportModule: ENABLE_EXPERIMENTAL_USE_IMPORT_MODULE, }), ], @@ -70,7 +70,7 @@ module.exports = { hot: ENABLE_HMR, contentBase: __dirname, headers: { - 'Access-Control-Allow-Origin': '*', + "Access-Control-Allow-Origin": "*", }, }, }; diff --git a/test/normalize-url.test.js b/test/normalize-url.test.js index 46bba1d9..ae5ba6d0 100644 --- a/test/normalize-url.test.js +++ b/test/normalize-url.test.js @@ -1,8 +1,8 @@ -import normalizeUrl from '../src/hmr/normalize-url'; +import normalizeUrl from "../src/hmr/normalize-url"; -import dataUrls from './fixtures/json/data-urls.json'; +import dataUrls from "./fixtures/json/data-urls.json"; -describe('normalize-url', () => { +describe("normalize-url", () => { dataUrls.main.forEach((entry) => { const [url, expected] = entry; diff --git a/test/validate-loader-options.test.js b/test/validate-loader-options.test.js index 92646efb..299598db 100644 --- a/test/validate-loader-options.test.js +++ b/test/validate-loader-options.test.js @@ -1,9 +1,9 @@ -import { getCompiler, compile } from './helpers'; +import { getCompiler, compile } from "./helpers"; -describe('validate options', () => { +describe("validate options", () => { const tests = { publicPath: { - success: ['/public/path/to/'], + success: ["/public/path/to/"], failure: [true], }, esModule: { @@ -12,14 +12,14 @@ describe('validate options', () => { }, unknown: { success: [], - failure: [1, true, false, 'test', /test/, [], {}, { foo: 'bar' }], + failure: [1, true, false, "test", /test/, [], {}, { foo: "bar" }], }, }; function stringifyValue(value) { if ( Array.isArray(value) || - (value && typeof value === 'object' && value.constructor === Object) + (value && typeof value === "object" && value.constructor === Object) ) { return JSON.stringify(value); } @@ -29,18 +29,18 @@ describe('validate options', () => { async function createTestCase(key, value, type) { it(`should ${ - type === 'success' ? 'successfully validate' : 'throw an error on' + type === "success" ? "successfully validate" : "throw an error on" } the "${key}" option with "${stringifyValue(value)}" value`, async () => { - const compiler = getCompiler('simple.js', { [key]: value }); + const compiler = getCompiler("simple.js", { [key]: value }); let stats; try { stats = await compile(compiler); } finally { - if (type === 'success') { + if (type === "success") { expect(stats.hasErrors()).toBe(false); - } else if (type === 'failure') { + } else if (type === "failure") { const { compilation: { errors }, } = stats; diff --git a/test/validate-plugin-options.test.js b/test/validate-plugin-options.test.js index bc4890ec..83a8b7bd 100644 --- a/test/validate-plugin-options.test.js +++ b/test/validate-plugin-options.test.js @@ -1,16 +1,16 @@ -import MiniCssExtractPlugin from '../src'; +import MiniCssExtractPlugin from "../src"; -describe('validate options', () => { +describe("validate options", () => { const tests = { filename: { success: [ - '[name].css', - ({ name }) => `${name.replace('/js/', '/css/')}.css`, + "[name].css", + ({ name }) => `${name.replace("/js/", "/css/")}.css`, ], failure: [true], }, chunkFilename: { - success: ['[id].css', ({ chunk }) => `${chunk.id}.${chunk.name}.css`], + success: ["[id].css", ({ chunk }) => `${chunk.id}.${chunk.name}.css`], failure: [true], }, ignoreOrder: { @@ -18,27 +18,27 @@ describe('validate options', () => { failure: [1], }, insert: { - success: ['#existing-style', function insert() {}], + success: ["#existing-style", function insert() {}], failure: [1, true, {}], }, attributes: { - success: [{}, { id: 'id' }], + success: [{}, { id: "id" }], failure: [true], }, linkType: { - success: [true, false, 'text/css'], - failure: [1, {}, [], 'invalid/type'], + success: [true, false, "text/css"], + failure: [1, {}, [], "invalid/type"], }, unknown: { success: [], - failure: [1, true, false, 'test', /test/, [], {}, { foo: 'bar' }], + failure: [1, true, false, "test", /test/, [], {}, { foo: "bar" }], }, }; function stringifyValue(value) { if ( Array.isArray(value) || - (value && typeof value === 'object' && value.constructor === Object) + (value && typeof value === "object" && value.constructor === Object) ) { return JSON.stringify(value); } @@ -48,7 +48,7 @@ describe('validate options', () => { async function createTestCase(key, value, type) { it(`should ${ - type === 'success' ? 'successfully validate' : 'throw an error on' + type === "success" ? "successfully validate" : "throw an error on" } the "${key}" option with "${stringifyValue(value)}" value`, async () => { let error; @@ -56,15 +56,15 @@ describe('validate options', () => { // eslint-disable-next-line no-new new MiniCssExtractPlugin({ [key]: value }); } catch (errorFromPlugin) { - if (errorFromPlugin.name !== 'ValidationError') { + if (errorFromPlugin.name !== "ValidationError") { throw errorFromPlugin; } error = errorFromPlugin; } finally { - if (type === 'success') { + if (type === "success") { expect(error).toBeUndefined(); - } else if (type === 'failure') { + } else if (type === "failure") { expect(() => { throw error; }).toThrowErrorMatchingSnapshot(); From 9da806ff4a12dec6644dc63e4b6679579aab049d Mon Sep 17 00:00:00 2001 From: Alexander Akait <4567934+alexander-akait@users.noreply.github.com> Date: Thu, 1 Jul 2021 17:58:29 +0300 Subject: [PATCH 27/30] test: cleanup (#782) --- ...auxiliaryAssets-815babffe97b00a1f30b.woff2 | 0 .../auxiliaryAssets-a0de923c946d4ccb38b0.ttf | 0 .../auxiliaryAssets-d4c409dfe110747b1763.woff | 0 ...auxiliaryAssets-815babffe97b00a1f30b.woff2 | 1 - .../auxiliaryAssets-a0de923c946d4ccb38b0.ttf | 1 - .../auxiliaryAssets-d4c409dfe110747b1763.woff | 1 - .../{webpack-5-importModule => }/0.async.css | 0 .../{webpack-5-importModule => }/main.css | 0 .../expected}/0.async.css | 0 .../expected}/main.css | 0 .../webpack-5-importModule/0.async.css | 4 - .../expected/webpack-5/0.async.css | 4 - .../1cd4a7654bac4107104f.css | 0 .../788f5dc856f2e114b45c.css | 0 .../webpack-5/1cd4a7654bac4107104f.css | 8 - .../webpack-5/788f5dc856f2e114b45c.css | 4 - .../1.main.a45a4571ab5cece12cf0.css | 0 .../2.main.c282a646790b09956021.css | 0 .../webpack-5/1.main.a45a4571ab5cece12cf0.css | 4 - .../webpack-5/2.main.c282a646790b09956021.css | 4 - .../{webpack-5-importModule => }/common.css | 0 .../{webpack-5-importModule => }/common.js | 0 .../{webpack-5-importModule => }/entry1.css | 0 .../{webpack-5-importModule => }/entry1.js | 0 .../expected/webpack-5/common.css | 8 - .../expected/webpack-5/common.js | 171 -- .../expected/webpack-5/entry1.css | 8 - .../expected/webpack-5/entry1.js | 51 - .../{webpack-5-importModule => }/common.css | 0 .../{webpack-5-importModule => }/common.js | 0 .../{webpack-5-importModule => }/entry1.css | 0 .../{webpack-5-importModule => }/entry1.js | 0 .../dependOn/expected/webpack-5/common.css | 4 - .../dependOn/expected/webpack-5/common.js | 153 -- .../dependOn/expected/webpack-5/entry1.css | 4 - .../dependOn/expected/webpack-5/entry1.js | 30 - .../{webpack-5-importModule => }/main.css | 0 .../{webpack-5-importModule => }/main.css.map | 0 .../expected/webpack-5/main.css | 6 - .../expected/webpack-5/main.css.map | 1 - .../expected}/main.css | 0 .../{webpack-5-importModule => }/main.css | 0 .../{webpack-5-importModule => }/main.js | 0 .../expected/webpack-5/main.css | 12 - .../expected/webpack-5/main.js | 93 -- .../{webpack-5-importModule => }/main.css | 0 .../{webpack-5-importModule => }/main.js | 0 .../expected/webpack-5/main.css | 12 - .../expected/webpack-5/main.js | 38 - .../{webpack-5-importModule => }/main.css | 0 .../{webpack-5-importModule => }/main.js | 0 .../expected/webpack-5/main.css | 12 - .../expected/webpack-5/main.js | 89 - .../{webpack-5-importModule => }/0.main.css | 0 .../expected}/main.css | 0 .../expected/webpack-5-importModule/main.css | 4 - .../expected/webpack-5/0.main.css | 4 - .../expected/webpack-5/main.css | 4 - .../{webpack-5-importModule => }/main.css | 0 .../{webpack-5-importModule => }/main.js | 0 test/cases/hmr/expected/webpack-5/main.css | 24 - test/cases/hmr/expected/webpack-5/main.js | 1454 ----------------- .../{webpack-5-importModule => }/1.css | 0 .../{webpack-5-importModule => }/1.js | 0 .../{webpack-5-importModule => }/main.js | 0 .../expected/webpack-5/main.js | 331 ---- .../expected}/1.css | 0 .../webpack-5 => insert-string/expected}/1.js | 0 .../{webpack-5-importModule => }/main.js | 0 .../insert-string/expected/webpack-5/1.css | 4 - .../insert-string/expected/webpack-5/1.js | 12 - .../insert-string/expected/webpack-5/main.js | 326 ---- .../expected}/1.css | 0 .../expected}/1.js | 0 .../{webpack-5-importModule => }/main.js | 0 .../expected/webpack-5-importModule/1.css | 4 - .../expected/webpack-5-importModule/1.js | 12 - .../insert-undefined/expected/webpack-5/1.css | 4 - .../insert-undefined/expected/webpack-5/1.js | 12 - .../expected/webpack-5/main.js | 325 ---- .../{webpack-5-importModule => }/one-main.js | 0 .../expected/one}/main.css | 0 .../{webpack-5-importModule => }/two-main.js | 0 .../expected/two}/main.css | 0 .../webpack-5-importModule/one/main.css | 4 - .../webpack-5-importModule/two/main.css | 4 - .../expected/webpack-5/one-main.js | 62 - .../expected/webpack-5/one/main.css | 4 - .../expected/webpack-5/two-main.js | 62 - .../expected/webpack-5/two/main.css | 4 - .../main.a45a4571ab5cece12cf0.css | 0 .../runtime~main.js | 0 .../webpack-5/main.a45a4571ab5cece12cf0.css | 4 - .../expected/webpack-5/runtime~main.js | 323 ---- .../{webpack-5-importModule => }/2.css | 0 .../{webpack-5-importModule => }/2.js | 0 .../split-chunks-all/expected/webpack-5/2.css | 4 - .../split-chunks-all/expected/webpack-5/2.js | 1 - 98 files changed, 3715 deletions(-) rename test/cases/auxiliaryAssets/expected/{webpack-5-importModule => }/auxiliaryAssets-815babffe97b00a1f30b.woff2 (100%) rename test/cases/auxiliaryAssets/expected/{webpack-5-importModule => }/auxiliaryAssets-a0de923c946d4ccb38b0.ttf (100%) rename test/cases/auxiliaryAssets/expected/{webpack-5-importModule => }/auxiliaryAssets-d4c409dfe110747b1763.woff (100%) delete mode 100644 test/cases/auxiliaryAssets/expected/webpack-5/auxiliaryAssets-815babffe97b00a1f30b.woff2 delete mode 100644 test/cases/auxiliaryAssets/expected/webpack-5/auxiliaryAssets-a0de923c946d4ccb38b0.ttf delete mode 100644 test/cases/auxiliaryAssets/expected/webpack-5/auxiliaryAssets-d4c409dfe110747b1763.woff rename test/cases/chunkFilename-as-function/expected/{webpack-5-importModule => }/0.async.css (100%) rename test/cases/chunkFilename-as-function/expected/{webpack-5-importModule => }/main.css (100%) rename test/cases/{chunkFilename-as-function/expected/webpack-5 => chunkFilename/expected}/0.async.css (100%) rename test/cases/{chunkFilename-as-function/expected/webpack-5 => chunkFilename/expected}/main.css (100%) delete mode 100644 test/cases/chunkFilename/expected/webpack-5-importModule/0.async.css delete mode 100644 test/cases/chunkFilename/expected/webpack-5/0.async.css rename test/cases/contenthash-multiple-entries/expected/{webpack-5-importModule => }/1cd4a7654bac4107104f.css (100%) rename test/cases/contenthash-multiple-entries/expected/{webpack-5-importModule => }/788f5dc856f2e114b45c.css (100%) delete mode 100644 test/cases/contenthash-multiple-entries/expected/webpack-5/1cd4a7654bac4107104f.css delete mode 100644 test/cases/contenthash-multiple-entries/expected/webpack-5/788f5dc856f2e114b45c.css rename test/cases/contenthash/expected/{webpack-5-importModule => }/1.main.a45a4571ab5cece12cf0.css (100%) rename test/cases/contenthash/expected/{webpack-5-importModule => }/2.main.c282a646790b09956021.css (100%) delete mode 100644 test/cases/contenthash/expected/webpack-5/1.main.a45a4571ab5cece12cf0.css delete mode 100644 test/cases/contenthash/expected/webpack-5/2.main.c282a646790b09956021.css rename test/cases/dependOn-multiple-files-per-entry/expected/{webpack-5-importModule => }/common.css (100%) rename test/cases/dependOn-multiple-files-per-entry/expected/{webpack-5-importModule => }/common.js (100%) rename test/cases/dependOn-multiple-files-per-entry/expected/{webpack-5-importModule => }/entry1.css (100%) rename test/cases/dependOn-multiple-files-per-entry/expected/{webpack-5-importModule => }/entry1.js (100%) delete mode 100644 test/cases/dependOn-multiple-files-per-entry/expected/webpack-5/common.css delete mode 100644 test/cases/dependOn-multiple-files-per-entry/expected/webpack-5/common.js delete mode 100644 test/cases/dependOn-multiple-files-per-entry/expected/webpack-5/entry1.css delete mode 100644 test/cases/dependOn-multiple-files-per-entry/expected/webpack-5/entry1.js rename test/cases/dependOn/expected/{webpack-5-importModule => }/common.css (100%) rename test/cases/dependOn/expected/{webpack-5-importModule => }/common.js (100%) rename test/cases/dependOn/expected/{webpack-5-importModule => }/entry1.css (100%) rename test/cases/dependOn/expected/{webpack-5-importModule => }/entry1.js (100%) delete mode 100644 test/cases/dependOn/expected/webpack-5/common.css delete mode 100644 test/cases/dependOn/expected/webpack-5/common.js delete mode 100644 test/cases/dependOn/expected/webpack-5/entry1.css delete mode 100644 test/cases/dependOn/expected/webpack-5/entry1.js rename test/cases/devtool-source-map-from-loaders/expected/{webpack-5-importModule => }/main.css (100%) rename test/cases/devtool-source-map-from-loaders/expected/{webpack-5-importModule => }/main.css.map (100%) delete mode 100644 test/cases/devtool-source-map-from-loaders/expected/webpack-5/main.css delete mode 100644 test/cases/devtool-source-map-from-loaders/expected/webpack-5/main.css.map rename test/cases/{chunkFilename/expected/webpack-5-importModule => devtool-source-map-no-source-maps-from-loaders/expected}/main.css (100%) rename test/cases/es-module-concatenation-modules/expected/{webpack-5-importModule => }/main.css (100%) rename test/cases/es-module-concatenation-modules/expected/{webpack-5-importModule => }/main.js (100%) delete mode 100644 test/cases/es-module-concatenation-modules/expected/webpack-5/main.css delete mode 100644 test/cases/es-module-concatenation-modules/expected/webpack-5/main.js rename test/cases/es-module-concatenation/expected/{webpack-5-importModule => }/main.css (100%) rename test/cases/es-module-concatenation/expected/{webpack-5-importModule => }/main.js (100%) delete mode 100644 test/cases/es-module-concatenation/expected/webpack-5/main.css delete mode 100644 test/cases/es-module-concatenation/expected/webpack-5/main.js rename test/cases/es-named-export/expected/{webpack-5-importModule => }/main.css (100%) rename test/cases/es-named-export/expected/{webpack-5-importModule => }/main.js (100%) delete mode 100644 test/cases/es-named-export/expected/webpack-5/main.css delete mode 100644 test/cases/es-named-export/expected/webpack-5/main.js rename test/cases/filename-without-template/expected/{webpack-5-importModule => }/0.main.css (100%) rename test/cases/{chunkFilename/expected/webpack-5 => filename-without-template/expected}/main.css (100%) delete mode 100644 test/cases/filename-without-template/expected/webpack-5-importModule/main.css delete mode 100644 test/cases/filename-without-template/expected/webpack-5/0.main.css delete mode 100644 test/cases/filename-without-template/expected/webpack-5/main.css rename test/cases/hmr/expected/{webpack-5-importModule => }/main.css (100%) rename test/cases/hmr/expected/{webpack-5-importModule => }/main.js (100%) delete mode 100644 test/cases/hmr/expected/webpack-5/main.css delete mode 100644 test/cases/hmr/expected/webpack-5/main.js rename test/cases/insert-function/expected/{webpack-5-importModule => }/1.css (100%) rename test/cases/insert-function/expected/{webpack-5-importModule => }/1.js (100%) rename test/cases/insert-function/expected/{webpack-5-importModule => }/main.js (100%) delete mode 100644 test/cases/insert-function/expected/webpack-5/main.js rename test/cases/{insert-function/expected/webpack-5 => insert-string/expected}/1.css (100%) rename test/cases/{insert-function/expected/webpack-5 => insert-string/expected}/1.js (100%) rename test/cases/insert-string/expected/{webpack-5-importModule => }/main.js (100%) delete mode 100644 test/cases/insert-string/expected/webpack-5/1.css delete mode 100644 test/cases/insert-string/expected/webpack-5/1.js delete mode 100644 test/cases/insert-string/expected/webpack-5/main.js rename test/cases/{insert-string/expected/webpack-5-importModule => insert-undefined/expected}/1.css (100%) rename test/cases/{insert-string/expected/webpack-5-importModule => insert-undefined/expected}/1.js (100%) rename test/cases/insert-undefined/expected/{webpack-5-importModule => }/main.js (100%) delete mode 100644 test/cases/insert-undefined/expected/webpack-5-importModule/1.css delete mode 100644 test/cases/insert-undefined/expected/webpack-5-importModule/1.js delete mode 100644 test/cases/insert-undefined/expected/webpack-5/1.css delete mode 100644 test/cases/insert-undefined/expected/webpack-5/1.js delete mode 100644 test/cases/insert-undefined/expected/webpack-5/main.js rename test/cases/multiple-compiler/expected/{webpack-5-importModule => }/one-main.js (100%) rename test/cases/{devtool-source-map-no-source-maps-from-loaders/expected/webpack-5-importModule => multiple-compiler/expected/one}/main.css (100%) rename test/cases/multiple-compiler/expected/{webpack-5-importModule => }/two-main.js (100%) rename test/cases/{devtool-source-map-no-source-maps-from-loaders/expected/webpack-5 => multiple-compiler/expected/two}/main.css (100%) delete mode 100644 test/cases/multiple-compiler/expected/webpack-5-importModule/one/main.css delete mode 100644 test/cases/multiple-compiler/expected/webpack-5-importModule/two/main.css delete mode 100644 test/cases/multiple-compiler/expected/webpack-5/one-main.js delete mode 100644 test/cases/multiple-compiler/expected/webpack-5/one/main.css delete mode 100644 test/cases/multiple-compiler/expected/webpack-5/two-main.js delete mode 100644 test/cases/multiple-compiler/expected/webpack-5/two/main.css rename test/cases/runtime/expected/{webpack-5-importModule => }/main.a45a4571ab5cece12cf0.css (100%) rename test/cases/runtime/expected/{webpack-5-importModule => }/runtime~main.js (100%) delete mode 100644 test/cases/runtime/expected/webpack-5/main.a45a4571ab5cece12cf0.css delete mode 100644 test/cases/runtime/expected/webpack-5/runtime~main.js rename test/cases/split-chunks-all/expected/{webpack-5-importModule => }/2.css (100%) rename test/cases/split-chunks-all/expected/{webpack-5-importModule => }/2.js (100%) delete mode 100644 test/cases/split-chunks-all/expected/webpack-5/2.css delete mode 100644 test/cases/split-chunks-all/expected/webpack-5/2.js diff --git a/test/cases/auxiliaryAssets/expected/webpack-5-importModule/auxiliaryAssets-815babffe97b00a1f30b.woff2 b/test/cases/auxiliaryAssets/expected/auxiliaryAssets-815babffe97b00a1f30b.woff2 similarity index 100% rename from test/cases/auxiliaryAssets/expected/webpack-5-importModule/auxiliaryAssets-815babffe97b00a1f30b.woff2 rename to test/cases/auxiliaryAssets/expected/auxiliaryAssets-815babffe97b00a1f30b.woff2 diff --git a/test/cases/auxiliaryAssets/expected/webpack-5-importModule/auxiliaryAssets-a0de923c946d4ccb38b0.ttf b/test/cases/auxiliaryAssets/expected/auxiliaryAssets-a0de923c946d4ccb38b0.ttf similarity index 100% rename from test/cases/auxiliaryAssets/expected/webpack-5-importModule/auxiliaryAssets-a0de923c946d4ccb38b0.ttf rename to test/cases/auxiliaryAssets/expected/auxiliaryAssets-a0de923c946d4ccb38b0.ttf diff --git a/test/cases/auxiliaryAssets/expected/webpack-5-importModule/auxiliaryAssets-d4c409dfe110747b1763.woff b/test/cases/auxiliaryAssets/expected/auxiliaryAssets-d4c409dfe110747b1763.woff similarity index 100% rename from test/cases/auxiliaryAssets/expected/webpack-5-importModule/auxiliaryAssets-d4c409dfe110747b1763.woff rename to test/cases/auxiliaryAssets/expected/auxiliaryAssets-d4c409dfe110747b1763.woff diff --git a/test/cases/auxiliaryAssets/expected/webpack-5/auxiliaryAssets-815babffe97b00a1f30b.woff2 b/test/cases/auxiliaryAssets/expected/webpack-5/auxiliaryAssets-815babffe97b00a1f30b.woff2 deleted file mode 100644 index ddca5526..00000000 --- a/test/cases/auxiliaryAssets/expected/webpack-5/auxiliaryAssets-815babffe97b00a1f30b.woff2 +++ /dev/null @@ -1 +0,0 @@ -auxiliaryAssets-815babffe97b00a1f30b.woff2 \ No newline at end of file diff --git a/test/cases/auxiliaryAssets/expected/webpack-5/auxiliaryAssets-a0de923c946d4ccb38b0.ttf b/test/cases/auxiliaryAssets/expected/webpack-5/auxiliaryAssets-a0de923c946d4ccb38b0.ttf deleted file mode 100644 index 16502c45..00000000 --- a/test/cases/auxiliaryAssets/expected/webpack-5/auxiliaryAssets-a0de923c946d4ccb38b0.ttf +++ /dev/null @@ -1 +0,0 @@ -auxiliaryAssets-a0de923c946d4ccb38b0.ttf \ No newline at end of file diff --git a/test/cases/auxiliaryAssets/expected/webpack-5/auxiliaryAssets-d4c409dfe110747b1763.woff b/test/cases/auxiliaryAssets/expected/webpack-5/auxiliaryAssets-d4c409dfe110747b1763.woff deleted file mode 100644 index deeb500c..00000000 --- a/test/cases/auxiliaryAssets/expected/webpack-5/auxiliaryAssets-d4c409dfe110747b1763.woff +++ /dev/null @@ -1 +0,0 @@ -auxiliaryAssets-d4c409dfe110747b1763.woff \ No newline at end of file diff --git a/test/cases/chunkFilename-as-function/expected/webpack-5-importModule/0.async.css b/test/cases/chunkFilename-as-function/expected/0.async.css similarity index 100% rename from test/cases/chunkFilename-as-function/expected/webpack-5-importModule/0.async.css rename to test/cases/chunkFilename-as-function/expected/0.async.css diff --git a/test/cases/chunkFilename-as-function/expected/webpack-5-importModule/main.css b/test/cases/chunkFilename-as-function/expected/main.css similarity index 100% rename from test/cases/chunkFilename-as-function/expected/webpack-5-importModule/main.css rename to test/cases/chunkFilename-as-function/expected/main.css diff --git a/test/cases/chunkFilename-as-function/expected/webpack-5/0.async.css b/test/cases/chunkFilename/expected/0.async.css similarity index 100% rename from test/cases/chunkFilename-as-function/expected/webpack-5/0.async.css rename to test/cases/chunkFilename/expected/0.async.css diff --git a/test/cases/chunkFilename-as-function/expected/webpack-5/main.css b/test/cases/chunkFilename/expected/main.css similarity index 100% rename from test/cases/chunkFilename-as-function/expected/webpack-5/main.css rename to test/cases/chunkFilename/expected/main.css diff --git a/test/cases/chunkFilename/expected/webpack-5-importModule/0.async.css b/test/cases/chunkFilename/expected/webpack-5-importModule/0.async.css deleted file mode 100644 index e665100a..00000000 --- a/test/cases/chunkFilename/expected/webpack-5-importModule/0.async.css +++ /dev/null @@ -1,4 +0,0 @@ -.async { - color: red; -} - diff --git a/test/cases/chunkFilename/expected/webpack-5/0.async.css b/test/cases/chunkFilename/expected/webpack-5/0.async.css deleted file mode 100644 index e665100a..00000000 --- a/test/cases/chunkFilename/expected/webpack-5/0.async.css +++ /dev/null @@ -1,4 +0,0 @@ -.async { - color: red; -} - diff --git a/test/cases/contenthash-multiple-entries/expected/webpack-5-importModule/1cd4a7654bac4107104f.css b/test/cases/contenthash-multiple-entries/expected/1cd4a7654bac4107104f.css similarity index 100% rename from test/cases/contenthash-multiple-entries/expected/webpack-5-importModule/1cd4a7654bac4107104f.css rename to test/cases/contenthash-multiple-entries/expected/1cd4a7654bac4107104f.css diff --git a/test/cases/contenthash-multiple-entries/expected/webpack-5-importModule/788f5dc856f2e114b45c.css b/test/cases/contenthash-multiple-entries/expected/788f5dc856f2e114b45c.css similarity index 100% rename from test/cases/contenthash-multiple-entries/expected/webpack-5-importModule/788f5dc856f2e114b45c.css rename to test/cases/contenthash-multiple-entries/expected/788f5dc856f2e114b45c.css diff --git a/test/cases/contenthash-multiple-entries/expected/webpack-5/1cd4a7654bac4107104f.css b/test/cases/contenthash-multiple-entries/expected/webpack-5/1cd4a7654bac4107104f.css deleted file mode 100644 index c6856116..00000000 --- a/test/cases/contenthash-multiple-entries/expected/webpack-5/1cd4a7654bac4107104f.css +++ /dev/null @@ -1,8 +0,0 @@ -.styleA { - background: red; -} - -.styleB { - background: blue; -} - diff --git a/test/cases/contenthash-multiple-entries/expected/webpack-5/788f5dc856f2e114b45c.css b/test/cases/contenthash-multiple-entries/expected/webpack-5/788f5dc856f2e114b45c.css deleted file mode 100644 index 95d70a8e..00000000 --- a/test/cases/contenthash-multiple-entries/expected/webpack-5/788f5dc856f2e114b45c.css +++ /dev/null @@ -1,4 +0,0 @@ -.styleA { - background: red; -} - diff --git a/test/cases/contenthash/expected/webpack-5-importModule/1.main.a45a4571ab5cece12cf0.css b/test/cases/contenthash/expected/1.main.a45a4571ab5cece12cf0.css similarity index 100% rename from test/cases/contenthash/expected/webpack-5-importModule/1.main.a45a4571ab5cece12cf0.css rename to test/cases/contenthash/expected/1.main.a45a4571ab5cece12cf0.css diff --git a/test/cases/contenthash/expected/webpack-5-importModule/2.main.c282a646790b09956021.css b/test/cases/contenthash/expected/2.main.c282a646790b09956021.css similarity index 100% rename from test/cases/contenthash/expected/webpack-5-importModule/2.main.c282a646790b09956021.css rename to test/cases/contenthash/expected/2.main.c282a646790b09956021.css diff --git a/test/cases/contenthash/expected/webpack-5/1.main.a45a4571ab5cece12cf0.css b/test/cases/contenthash/expected/webpack-5/1.main.a45a4571ab5cece12cf0.css deleted file mode 100644 index cebc5c1c..00000000 --- a/test/cases/contenthash/expected/webpack-5/1.main.a45a4571ab5cece12cf0.css +++ /dev/null @@ -1,4 +0,0 @@ -body { - background: red; -} - diff --git a/test/cases/contenthash/expected/webpack-5/2.main.c282a646790b09956021.css b/test/cases/contenthash/expected/webpack-5/2.main.c282a646790b09956021.css deleted file mode 100644 index ec3b88b5..00000000 --- a/test/cases/contenthash/expected/webpack-5/2.main.c282a646790b09956021.css +++ /dev/null @@ -1,4 +0,0 @@ -body { - background: green; -} - diff --git a/test/cases/dependOn-multiple-files-per-entry/expected/webpack-5-importModule/common.css b/test/cases/dependOn-multiple-files-per-entry/expected/common.css similarity index 100% rename from test/cases/dependOn-multiple-files-per-entry/expected/webpack-5-importModule/common.css rename to test/cases/dependOn-multiple-files-per-entry/expected/common.css diff --git a/test/cases/dependOn-multiple-files-per-entry/expected/webpack-5-importModule/common.js b/test/cases/dependOn-multiple-files-per-entry/expected/common.js similarity index 100% rename from test/cases/dependOn-multiple-files-per-entry/expected/webpack-5-importModule/common.js rename to test/cases/dependOn-multiple-files-per-entry/expected/common.js diff --git a/test/cases/dependOn-multiple-files-per-entry/expected/webpack-5-importModule/entry1.css b/test/cases/dependOn-multiple-files-per-entry/expected/entry1.css similarity index 100% rename from test/cases/dependOn-multiple-files-per-entry/expected/webpack-5-importModule/entry1.css rename to test/cases/dependOn-multiple-files-per-entry/expected/entry1.css diff --git a/test/cases/dependOn-multiple-files-per-entry/expected/webpack-5-importModule/entry1.js b/test/cases/dependOn-multiple-files-per-entry/expected/entry1.js similarity index 100% rename from test/cases/dependOn-multiple-files-per-entry/expected/webpack-5-importModule/entry1.js rename to test/cases/dependOn-multiple-files-per-entry/expected/entry1.js diff --git a/test/cases/dependOn-multiple-files-per-entry/expected/webpack-5/common.css b/test/cases/dependOn-multiple-files-per-entry/expected/webpack-5/common.css deleted file mode 100644 index 7b8c3886..00000000 --- a/test/cases/dependOn-multiple-files-per-entry/expected/webpack-5/common.css +++ /dev/null @@ -1,8 +0,0 @@ -.styleC { - background: red; -} - -.styleD { - background: blue; -} - diff --git a/test/cases/dependOn-multiple-files-per-entry/expected/webpack-5/common.js b/test/cases/dependOn-multiple-files-per-entry/expected/webpack-5/common.js deleted file mode 100644 index c61498f1..00000000 --- a/test/cases/dependOn-multiple-files-per-entry/expected/webpack-5/common.js +++ /dev/null @@ -1,171 +0,0 @@ -/******/ (() => { // webpackBootstrap -/******/ "use strict"; -/******/ var __webpack_modules__ = ([ -/* 0 */, -/* 1 */ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -__webpack_require__.r(__webpack_exports__); -// extracted by mini-css-extract-plugin - - -/***/ }), -/* 2 */, -/* 3 */ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -__webpack_require__.r(__webpack_exports__); -// extracted by mini-css-extract-plugin - - -/***/ }) -/******/ ]); -/************************************************************************/ -/******/ // The module cache -/******/ var __webpack_module_cache__ = {}; -/******/ -/******/ // The require function -/******/ function __webpack_require__(moduleId) { -/******/ // Check if module is in cache -/******/ var cachedModule = __webpack_module_cache__[moduleId]; -/******/ if (cachedModule !== undefined) { -/******/ return cachedModule.exports; -/******/ } -/******/ // Create a new module (and put it into the cache) -/******/ var module = __webpack_module_cache__[moduleId] = { -/******/ // no module.id needed -/******/ // no module.loaded needed -/******/ exports: {} -/******/ }; -/******/ -/******/ // Execute the module function -/******/ __webpack_modules__[moduleId](module, module.exports, __webpack_require__); -/******/ -/******/ // Return the exports of the module -/******/ return module.exports; -/******/ } -/******/ -/******/ // expose the modules object (__webpack_modules__) -/******/ __webpack_require__.m = __webpack_modules__; -/******/ -/************************************************************************/ -/******/ /* webpack/runtime/chunk loaded */ -/******/ (() => { -/******/ var deferred = []; -/******/ __webpack_require__.O = (result, chunkIds, fn, priority) => { -/******/ if(chunkIds) { -/******/ priority = priority || 0; -/******/ for(var i = deferred.length; i > 0 && deferred[i - 1][2] > priority; i--) deferred[i] = deferred[i - 1]; -/******/ deferred[i] = [chunkIds, fn, priority]; -/******/ return; -/******/ } -/******/ var notFulfilled = Infinity; -/******/ for (var i = 0; i < deferred.length; i++) { -/******/ var [chunkIds, fn, priority] = deferred[i]; -/******/ var fulfilled = true; -/******/ for (var j = 0; j < chunkIds.length; j++) { -/******/ if ((priority & 1 === 0 || notFulfilled >= priority) && Object.keys(__webpack_require__.O).every((key) => (__webpack_require__.O[key](chunkIds[j])))) { -/******/ chunkIds.splice(j--, 1); -/******/ } else { -/******/ fulfilled = false; -/******/ if(priority < notFulfilled) notFulfilled = priority; -/******/ } -/******/ } -/******/ if(fulfilled) { -/******/ deferred.splice(i--, 1) -/******/ result = fn(); -/******/ } -/******/ } -/******/ return result; -/******/ }; -/******/ })(); -/******/ -/******/ /* webpack/runtime/hasOwnProperty shorthand */ -/******/ (() => { -/******/ __webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop)) -/******/ })(); -/******/ -/******/ /* webpack/runtime/make namespace object */ -/******/ (() => { -/******/ // define __esModule on exports -/******/ __webpack_require__.r = (exports) => { -/******/ if(typeof Symbol !== 'undefined' && Symbol.toStringTag) { -/******/ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' }); -/******/ } -/******/ Object.defineProperty(exports, '__esModule', { value: true }); -/******/ }; -/******/ })(); -/******/ -/******/ /* webpack/runtime/jsonp chunk loading */ -/******/ (() => { -/******/ // no baseURI -/******/ -/******/ // object to store loaded and loading chunks -/******/ // undefined = chunk not loaded, null = chunk preloaded/prefetched -/******/ // [resolve, reject, Promise] = chunk loading, 0 = chunk loaded -/******/ var installedChunks = { -/******/ 0: 0 -/******/ }; -/******/ -/******/ // no chunk on demand loading -/******/ -/******/ // no prefetching -/******/ -/******/ // no preloaded -/******/ -/******/ // no HMR -/******/ -/******/ // no HMR manifest -/******/ -/******/ __webpack_require__.O.j = (chunkId) => (installedChunks[chunkId] === 0); -/******/ -/******/ // install a JSONP callback for chunk loading -/******/ var webpackJsonpCallback = (parentChunkLoadingFunction, data) => { -/******/ var [chunkIds, moreModules, runtime] = data; -/******/ // add "moreModules" to the modules object, -/******/ // then flag all "chunkIds" as loaded and fire callback -/******/ var moduleId, chunkId, i = 0; -/******/ for(moduleId in moreModules) { -/******/ if(__webpack_require__.o(moreModules, moduleId)) { -/******/ __webpack_require__.m[moduleId] = moreModules[moduleId]; -/******/ } -/******/ } -/******/ if(runtime) var result = runtime(__webpack_require__); -/******/ if(parentChunkLoadingFunction) parentChunkLoadingFunction(data); -/******/ for(;i < chunkIds.length; i++) { -/******/ chunkId = chunkIds[i]; -/******/ if(__webpack_require__.o(installedChunks, chunkId) && installedChunks[chunkId]) { -/******/ installedChunks[chunkId][0](); -/******/ } -/******/ installedChunks[chunkIds[i]] = 0; -/******/ } -/******/ return __webpack_require__.O(result); -/******/ } -/******/ -/******/ var chunkLoadingGlobal = self["webpackChunk"] = self["webpackChunk"] || []; -/******/ chunkLoadingGlobal.forEach(webpackJsonpCallback.bind(null, 0)); -/******/ chunkLoadingGlobal.push = webpackJsonpCallback.bind(null, chunkLoadingGlobal.push.bind(chunkLoadingGlobal)); -/******/ })(); -/******/ -/************************************************************************/ -var __webpack_exports__ = {}; -// This entry need to be wrapped in an IIFE because it need to be isolated against other entry modules. -(() => { -var __webpack_exports__ = {}; -__webpack_require__.r(__webpack_exports__); -/* harmony import */ var _styleC_css__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(1); - - -})(); - -// This entry need to be wrapped in an IIFE because it need to be isolated against other entry modules. -(() => { -__webpack_require__.r(__webpack_exports__); -/* harmony import */ var _styleD_css__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(3); - - -})(); - -__webpack_require__.O(); -/******/ })() -; \ No newline at end of file diff --git a/test/cases/dependOn-multiple-files-per-entry/expected/webpack-5/entry1.css b/test/cases/dependOn-multiple-files-per-entry/expected/webpack-5/entry1.css deleted file mode 100644 index bd9b41d3..00000000 --- a/test/cases/dependOn-multiple-files-per-entry/expected/webpack-5/entry1.css +++ /dev/null @@ -1,8 +0,0 @@ -.styleB { - background: blue; -} - -.styleA { - background: red; -} - diff --git a/test/cases/dependOn-multiple-files-per-entry/expected/webpack-5/entry1.js b/test/cases/dependOn-multiple-files-per-entry/expected/webpack-5/entry1.js deleted file mode 100644 index d31bf3c4..00000000 --- a/test/cases/dependOn-multiple-files-per-entry/expected/webpack-5/entry1.js +++ /dev/null @@ -1,51 +0,0 @@ -(self["webpackChunk"] = self["webpackChunk"] || []).push([[1],[ -/* 0 */, -/* 1 */, -/* 2 */, -/* 3 */, -/* 4 */ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony import */ var _styleB_css__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(5); - - - -/***/ }), -/* 5 */ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -// extracted by mini-css-extract-plugin - - -/***/ }), -/* 6 */ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony import */ var _styleA_css__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(7); - - - -/***/ }), -/* 7 */ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -// extracted by mini-css-extract-plugin - - -/***/ }) -], -/******/ __webpack_require__ => { // webpackRuntimeModules -/******/ "use strict"; -/******/ -/******/ var __webpack_exec__ = (moduleId) => (__webpack_require__(__webpack_require__.s = moduleId)) -/******/ var __webpack_exports__ = (__webpack_exec__(6), __webpack_exec__(4)); -/******/ } -]); \ No newline at end of file diff --git a/test/cases/dependOn/expected/webpack-5-importModule/common.css b/test/cases/dependOn/expected/common.css similarity index 100% rename from test/cases/dependOn/expected/webpack-5-importModule/common.css rename to test/cases/dependOn/expected/common.css diff --git a/test/cases/dependOn/expected/webpack-5-importModule/common.js b/test/cases/dependOn/expected/common.js similarity index 100% rename from test/cases/dependOn/expected/webpack-5-importModule/common.js rename to test/cases/dependOn/expected/common.js diff --git a/test/cases/dependOn/expected/webpack-5-importModule/entry1.css b/test/cases/dependOn/expected/entry1.css similarity index 100% rename from test/cases/dependOn/expected/webpack-5-importModule/entry1.css rename to test/cases/dependOn/expected/entry1.css diff --git a/test/cases/dependOn/expected/webpack-5-importModule/entry1.js b/test/cases/dependOn/expected/entry1.js similarity index 100% rename from test/cases/dependOn/expected/webpack-5-importModule/entry1.js rename to test/cases/dependOn/expected/entry1.js diff --git a/test/cases/dependOn/expected/webpack-5/common.css b/test/cases/dependOn/expected/webpack-5/common.css deleted file mode 100644 index bbb56596..00000000 --- a/test/cases/dependOn/expected/webpack-5/common.css +++ /dev/null @@ -1,4 +0,0 @@ -.styleB { - background: blue; -} - diff --git a/test/cases/dependOn/expected/webpack-5/common.js b/test/cases/dependOn/expected/webpack-5/common.js deleted file mode 100644 index 5abb0200..00000000 --- a/test/cases/dependOn/expected/webpack-5/common.js +++ /dev/null @@ -1,153 +0,0 @@ -/******/ (() => { // webpackBootstrap -/******/ "use strict"; -/******/ var __webpack_modules__ = ([ -/* 0 */, -/* 1 */ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -__webpack_require__.r(__webpack_exports__); -// extracted by mini-css-extract-plugin - - -/***/ }) -/******/ ]); -/************************************************************************/ -/******/ // The module cache -/******/ var __webpack_module_cache__ = {}; -/******/ -/******/ // The require function -/******/ function __webpack_require__(moduleId) { -/******/ // Check if module is in cache -/******/ var cachedModule = __webpack_module_cache__[moduleId]; -/******/ if (cachedModule !== undefined) { -/******/ return cachedModule.exports; -/******/ } -/******/ // Create a new module (and put it into the cache) -/******/ var module = __webpack_module_cache__[moduleId] = { -/******/ // no module.id needed -/******/ // no module.loaded needed -/******/ exports: {} -/******/ }; -/******/ -/******/ // Execute the module function -/******/ __webpack_modules__[moduleId](module, module.exports, __webpack_require__); -/******/ -/******/ // Return the exports of the module -/******/ return module.exports; -/******/ } -/******/ -/******/ // expose the modules object (__webpack_modules__) -/******/ __webpack_require__.m = __webpack_modules__; -/******/ -/************************************************************************/ -/******/ /* webpack/runtime/chunk loaded */ -/******/ (() => { -/******/ var deferred = []; -/******/ __webpack_require__.O = (result, chunkIds, fn, priority) => { -/******/ if(chunkIds) { -/******/ priority = priority || 0; -/******/ for(var i = deferred.length; i > 0 && deferred[i - 1][2] > priority; i--) deferred[i] = deferred[i - 1]; -/******/ deferred[i] = [chunkIds, fn, priority]; -/******/ return; -/******/ } -/******/ var notFulfilled = Infinity; -/******/ for (var i = 0; i < deferred.length; i++) { -/******/ var [chunkIds, fn, priority] = deferred[i]; -/******/ var fulfilled = true; -/******/ for (var j = 0; j < chunkIds.length; j++) { -/******/ if ((priority & 1 === 0 || notFulfilled >= priority) && Object.keys(__webpack_require__.O).every((key) => (__webpack_require__.O[key](chunkIds[j])))) { -/******/ chunkIds.splice(j--, 1); -/******/ } else { -/******/ fulfilled = false; -/******/ if(priority < notFulfilled) notFulfilled = priority; -/******/ } -/******/ } -/******/ if(fulfilled) { -/******/ deferred.splice(i--, 1) -/******/ result = fn(); -/******/ } -/******/ } -/******/ return result; -/******/ }; -/******/ })(); -/******/ -/******/ /* webpack/runtime/hasOwnProperty shorthand */ -/******/ (() => { -/******/ __webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop)) -/******/ })(); -/******/ -/******/ /* webpack/runtime/make namespace object */ -/******/ (() => { -/******/ // define __esModule on exports -/******/ __webpack_require__.r = (exports) => { -/******/ if(typeof Symbol !== 'undefined' && Symbol.toStringTag) { -/******/ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' }); -/******/ } -/******/ Object.defineProperty(exports, '__esModule', { value: true }); -/******/ }; -/******/ })(); -/******/ -/******/ /* webpack/runtime/jsonp chunk loading */ -/******/ (() => { -/******/ // no baseURI -/******/ -/******/ // object to store loaded and loading chunks -/******/ // undefined = chunk not loaded, null = chunk preloaded/prefetched -/******/ // [resolve, reject, Promise] = chunk loading, 0 = chunk loaded -/******/ var installedChunks = { -/******/ 0: 0 -/******/ }; -/******/ -/******/ // no chunk on demand loading -/******/ -/******/ // no prefetching -/******/ -/******/ // no preloaded -/******/ -/******/ // no HMR -/******/ -/******/ // no HMR manifest -/******/ -/******/ __webpack_require__.O.j = (chunkId) => (installedChunks[chunkId] === 0); -/******/ -/******/ // install a JSONP callback for chunk loading -/******/ var webpackJsonpCallback = (parentChunkLoadingFunction, data) => { -/******/ var [chunkIds, moreModules, runtime] = data; -/******/ // add "moreModules" to the modules object, -/******/ // then flag all "chunkIds" as loaded and fire callback -/******/ var moduleId, chunkId, i = 0; -/******/ for(moduleId in moreModules) { -/******/ if(__webpack_require__.o(moreModules, moduleId)) { -/******/ __webpack_require__.m[moduleId] = moreModules[moduleId]; -/******/ } -/******/ } -/******/ if(runtime) var result = runtime(__webpack_require__); -/******/ if(parentChunkLoadingFunction) parentChunkLoadingFunction(data); -/******/ for(;i < chunkIds.length; i++) { -/******/ chunkId = chunkIds[i]; -/******/ if(__webpack_require__.o(installedChunks, chunkId) && installedChunks[chunkId]) { -/******/ installedChunks[chunkId][0](); -/******/ } -/******/ installedChunks[chunkIds[i]] = 0; -/******/ } -/******/ return __webpack_require__.O(result); -/******/ } -/******/ -/******/ var chunkLoadingGlobal = self["webpackChunk"] = self["webpackChunk"] || []; -/******/ chunkLoadingGlobal.forEach(webpackJsonpCallback.bind(null, 0)); -/******/ chunkLoadingGlobal.push = webpackJsonpCallback.bind(null, chunkLoadingGlobal.push.bind(chunkLoadingGlobal)); -/******/ })(); -/******/ -/************************************************************************/ -var __webpack_exports__ = {}; -// This entry need to be wrapped in an IIFE because it need to be isolated against other modules in the chunk. -(() => { -__webpack_require__.r(__webpack_exports__); -/* harmony import */ var _styleB_css__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(1); - - -})(); - -__webpack_require__.O(); -/******/ })() -; \ No newline at end of file diff --git a/test/cases/dependOn/expected/webpack-5/entry1.css b/test/cases/dependOn/expected/webpack-5/entry1.css deleted file mode 100644 index 95d70a8e..00000000 --- a/test/cases/dependOn/expected/webpack-5/entry1.css +++ /dev/null @@ -1,4 +0,0 @@ -.styleA { - background: red; -} - diff --git a/test/cases/dependOn/expected/webpack-5/entry1.js b/test/cases/dependOn/expected/webpack-5/entry1.js deleted file mode 100644 index b66131d3..00000000 --- a/test/cases/dependOn/expected/webpack-5/entry1.js +++ /dev/null @@ -1,30 +0,0 @@ -(self["webpackChunk"] = self["webpackChunk"] || []).push([[1],[ -/* 0 */, -/* 1 */, -/* 2 */ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony import */ var _styleA_css__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(3); - - - -/***/ }), -/* 3 */ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -// extracted by mini-css-extract-plugin - - -/***/ }) -], -/******/ __webpack_require__ => { // webpackRuntimeModules -/******/ "use strict"; -/******/ -/******/ var __webpack_exec__ = (moduleId) => (__webpack_require__(__webpack_require__.s = moduleId)) -/******/ var __webpack_exports__ = (__webpack_exec__(2)); -/******/ } -]); \ No newline at end of file diff --git a/test/cases/devtool-source-map-from-loaders/expected/webpack-5-importModule/main.css b/test/cases/devtool-source-map-from-loaders/expected/main.css similarity index 100% rename from test/cases/devtool-source-map-from-loaders/expected/webpack-5-importModule/main.css rename to test/cases/devtool-source-map-from-loaders/expected/main.css diff --git a/test/cases/devtool-source-map-from-loaders/expected/webpack-5-importModule/main.css.map b/test/cases/devtool-source-map-from-loaders/expected/main.css.map similarity index 100% rename from test/cases/devtool-source-map-from-loaders/expected/webpack-5-importModule/main.css.map rename to test/cases/devtool-source-map-from-loaders/expected/main.css.map diff --git a/test/cases/devtool-source-map-from-loaders/expected/webpack-5/main.css b/test/cases/devtool-source-map-from-loaders/expected/webpack-5/main.css deleted file mode 100644 index 8f8cf968..00000000 --- a/test/cases/devtool-source-map-from-loaders/expected/webpack-5/main.css +++ /dev/null @@ -1,6 +0,0 @@ -body { - background: red; -} - - -/*# sourceMappingURL=main.css.map*/ \ No newline at end of file diff --git a/test/cases/devtool-source-map-from-loaders/expected/webpack-5/main.css.map b/test/cases/devtool-source-map-from-loaders/expected/webpack-5/main.css.map deleted file mode 100644 index bb767168..00000000 --- a/test/cases/devtool-source-map-from-loaders/expected/webpack-5/main.css.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"sources":["webpack:///./style.css"],"names":[],"mappings":"AAAA;EACE,eAAe;AACjB","file":"main.css","sourcesContent":["body {\n background: red;\n}\n"],"sourceRoot":""} \ No newline at end of file diff --git a/test/cases/chunkFilename/expected/webpack-5-importModule/main.css b/test/cases/devtool-source-map-no-source-maps-from-loaders/expected/main.css similarity index 100% rename from test/cases/chunkFilename/expected/webpack-5-importModule/main.css rename to test/cases/devtool-source-map-no-source-maps-from-loaders/expected/main.css diff --git a/test/cases/es-module-concatenation-modules/expected/webpack-5-importModule/main.css b/test/cases/es-module-concatenation-modules/expected/main.css similarity index 100% rename from test/cases/es-module-concatenation-modules/expected/webpack-5-importModule/main.css rename to test/cases/es-module-concatenation-modules/expected/main.css diff --git a/test/cases/es-module-concatenation-modules/expected/webpack-5-importModule/main.js b/test/cases/es-module-concatenation-modules/expected/main.js similarity index 100% rename from test/cases/es-module-concatenation-modules/expected/webpack-5-importModule/main.js rename to test/cases/es-module-concatenation-modules/expected/main.js diff --git a/test/cases/es-module-concatenation-modules/expected/webpack-5/main.css b/test/cases/es-module-concatenation-modules/expected/webpack-5/main.css deleted file mode 100644 index 414d12e5..00000000 --- a/test/cases/es-module-concatenation-modules/expected/webpack-5/main.css +++ /dev/null @@ -1,12 +0,0 @@ -.foo__a { - background: red; -} - -.foo__b { - background: green; -} - -.foo__c { - background: blue; -} - diff --git a/test/cases/es-module-concatenation-modules/expected/webpack-5/main.js b/test/cases/es-module-concatenation-modules/expected/webpack-5/main.js deleted file mode 100644 index d289c825..00000000 --- a/test/cases/es-module-concatenation-modules/expected/webpack-5/main.js +++ /dev/null @@ -1,93 +0,0 @@ -/******/ (() => { // webpackBootstrap -/******/ "use strict"; -/******/ // The require scope -/******/ var __webpack_require__ = {}; -/******/ -/************************************************************************/ -/******/ /* webpack/runtime/define property getters */ -/******/ (() => { -/******/ // define getter functions for harmony exports -/******/ __webpack_require__.d = (exports, definition) => { -/******/ for(var key in definition) { -/******/ if(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) { -/******/ Object.defineProperty(exports, key, { enumerable: true, get: definition[key] }); -/******/ } -/******/ } -/******/ }; -/******/ })(); -/******/ -/******/ /* webpack/runtime/hasOwnProperty shorthand */ -/******/ (() => { -/******/ __webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop)) -/******/ })(); -/******/ -/******/ /* webpack/runtime/make namespace object */ -/******/ (() => { -/******/ // define __esModule on exports -/******/ __webpack_require__.r = (exports) => { -/******/ if(typeof Symbol !== 'undefined' && Symbol.toStringTag) { -/******/ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' }); -/******/ } -/******/ Object.defineProperty(exports, '__esModule', { value: true }); -/******/ }; -/******/ })(); -/******/ -/************************************************************************/ -var __webpack_exports__ = {}; -// ESM COMPAT FLAG -__webpack_require__.r(__webpack_exports__); - -// EXPORTS -__webpack_require__.d(__webpack_exports__, { - "a": () => (/* reexport */ a_namespaceObject), - "b": () => (/* reexport */ b_namespaceObject), - "c": () => (/* reexport */ c) -}); - -// NAMESPACE OBJECT: ./a.css -var a_namespaceObject = {}; -__webpack_require__.r(a_namespaceObject); -__webpack_require__.d(a_namespaceObject, { - "a": () => (a) -}); - -// NAMESPACE OBJECT: ./b.css -var b_namespaceObject = {}; -__webpack_require__.r(b_namespaceObject); -__webpack_require__.d(b_namespaceObject, { - "b": () => (b) -}); - -// NAMESPACE OBJECT: ./index.js -var index_namespaceObject = {}; -__webpack_require__.r(index_namespaceObject); -__webpack_require__.d(index_namespaceObject, { - "a": () => (a_namespaceObject), - "b": () => (b_namespaceObject), - "c": () => (c) -}); - -;// CONCATENATED MODULE: ./a.css -// extracted by mini-css-extract-plugin -var a = "foo__a"; -;// CONCATENATED MODULE: ./b.css -// extracted by mini-css-extract-plugin -var b = "foo__b"; -;// CONCATENATED MODULE: ./c.css -// extracted by mini-css-extract-plugin -var c = "foo__c"; -;// CONCATENATED MODULE: ./index.js -/* eslint-disable import/no-namespace */ - - - - - - - - -// eslint-disable-next-line no-console -console.log(index_namespaceObject); - -/******/ })() -; \ No newline at end of file diff --git a/test/cases/es-module-concatenation/expected/webpack-5-importModule/main.css b/test/cases/es-module-concatenation/expected/main.css similarity index 100% rename from test/cases/es-module-concatenation/expected/webpack-5-importModule/main.css rename to test/cases/es-module-concatenation/expected/main.css diff --git a/test/cases/es-module-concatenation/expected/webpack-5-importModule/main.js b/test/cases/es-module-concatenation/expected/main.js similarity index 100% rename from test/cases/es-module-concatenation/expected/webpack-5-importModule/main.js rename to test/cases/es-module-concatenation/expected/main.js diff --git a/test/cases/es-module-concatenation/expected/webpack-5/main.css b/test/cases/es-module-concatenation/expected/webpack-5/main.css deleted file mode 100644 index a5728976..00000000 --- a/test/cases/es-module-concatenation/expected/webpack-5/main.css +++ /dev/null @@ -1,12 +0,0 @@ -.a { - background: red; -} - -.b { - background: green; -} - -.c { - background: blue; -} - diff --git a/test/cases/es-module-concatenation/expected/webpack-5/main.js b/test/cases/es-module-concatenation/expected/webpack-5/main.js deleted file mode 100644 index 394a6125..00000000 --- a/test/cases/es-module-concatenation/expected/webpack-5/main.js +++ /dev/null @@ -1,38 +0,0 @@ -/******/ (() => { // webpackBootstrap -/******/ "use strict"; -/******/ // The require scope -/******/ var __webpack_require__ = {}; -/******/ -/************************************************************************/ -/******/ /* webpack/runtime/make namespace object */ -/******/ (() => { -/******/ // define __esModule on exports -/******/ __webpack_require__.r = (exports) => { -/******/ if(typeof Symbol !== 'undefined' && Symbol.toStringTag) { -/******/ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' }); -/******/ } -/******/ Object.defineProperty(exports, '__esModule', { value: true }); -/******/ }; -/******/ })(); -/******/ -/************************************************************************/ -var __webpack_exports__ = {}; -// ESM COMPAT FLAG -__webpack_require__.r(__webpack_exports__); - -;// CONCATENATED MODULE: ./a.css -// extracted by mini-css-extract-plugin - -;// CONCATENATED MODULE: ./b.css -// extracted by mini-css-extract-plugin - -;// CONCATENATED MODULE: ./c.css -// extracted by mini-css-extract-plugin - -;// CONCATENATED MODULE: ./index.js - - - - -/******/ })() -; \ No newline at end of file diff --git a/test/cases/es-named-export/expected/webpack-5-importModule/main.css b/test/cases/es-named-export/expected/main.css similarity index 100% rename from test/cases/es-named-export/expected/webpack-5-importModule/main.css rename to test/cases/es-named-export/expected/main.css diff --git a/test/cases/es-named-export/expected/webpack-5-importModule/main.js b/test/cases/es-named-export/expected/main.js similarity index 100% rename from test/cases/es-named-export/expected/webpack-5-importModule/main.js rename to test/cases/es-named-export/expected/main.js diff --git a/test/cases/es-named-export/expected/webpack-5/main.css b/test/cases/es-named-export/expected/webpack-5/main.css deleted file mode 100644 index aa9b1569..00000000 --- a/test/cases/es-named-export/expected/webpack-5/main.css +++ /dev/null @@ -1,12 +0,0 @@ -.foo__style__a-class { - background: red; -} - -.foo__style__b__class { - color: green; -} - -.foo__style__cClass { - color: blue; -} - diff --git a/test/cases/es-named-export/expected/webpack-5/main.js b/test/cases/es-named-export/expected/webpack-5/main.js deleted file mode 100644 index 8cf22c2c..00000000 --- a/test/cases/es-named-export/expected/webpack-5/main.js +++ /dev/null @@ -1,89 +0,0 @@ -/******/ (() => { // webpackBootstrap -/******/ "use strict"; -/******/ var __webpack_modules__ = ([ -/* 0 */, -/* 1 */ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "aClass": () => (/* binding */ aClass), -/* harmony export */ "bClass": () => (/* binding */ bClass), -/* harmony export */ "cClass": () => (/* binding */ cClass) -/* harmony export */ }); -// extracted by mini-css-extract-plugin -var aClass = "foo__style__a-class"; -var bClass = "foo__style__b__class"; -var cClass = "foo__style__cClass"; - -/***/ }) -/******/ ]); -/************************************************************************/ -/******/ // The module cache -/******/ var __webpack_module_cache__ = {}; -/******/ -/******/ // The require function -/******/ function __webpack_require__(moduleId) { -/******/ // Check if module is in cache -/******/ var cachedModule = __webpack_module_cache__[moduleId]; -/******/ if (cachedModule !== undefined) { -/******/ return cachedModule.exports; -/******/ } -/******/ // Create a new module (and put it into the cache) -/******/ var module = __webpack_module_cache__[moduleId] = { -/******/ // no module.id needed -/******/ // no module.loaded needed -/******/ exports: {} -/******/ }; -/******/ -/******/ // Execute the module function -/******/ __webpack_modules__[moduleId](module, module.exports, __webpack_require__); -/******/ -/******/ // Return the exports of the module -/******/ return module.exports; -/******/ } -/******/ -/************************************************************************/ -/******/ /* webpack/runtime/define property getters */ -/******/ (() => { -/******/ // define getter functions for harmony exports -/******/ __webpack_require__.d = (exports, definition) => { -/******/ for(var key in definition) { -/******/ if(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) { -/******/ Object.defineProperty(exports, key, { enumerable: true, get: definition[key] }); -/******/ } -/******/ } -/******/ }; -/******/ })(); -/******/ -/******/ /* webpack/runtime/hasOwnProperty shorthand */ -/******/ (() => { -/******/ __webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop)) -/******/ })(); -/******/ -/******/ /* webpack/runtime/make namespace object */ -/******/ (() => { -/******/ // define __esModule on exports -/******/ __webpack_require__.r = (exports) => { -/******/ if(typeof Symbol !== 'undefined' && Symbol.toStringTag) { -/******/ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' }); -/******/ } -/******/ Object.defineProperty(exports, '__esModule', { value: true }); -/******/ }; -/******/ })(); -/******/ -/************************************************************************/ -var __webpack_exports__ = {}; -// This entry need to be wrapped in an IIFE because it need to be isolated against other modules in the chunk. -(() => { -__webpack_require__.r(__webpack_exports__); -/* harmony import */ var _style_css__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(1); - - -// eslint-disable-next-line no-console -console.log({ css: _style_css__WEBPACK_IMPORTED_MODULE_0__.default, aClass: _style_css__WEBPACK_IMPORTED_MODULE_0__.aClass, bClass: _style_css__WEBPACK_IMPORTED_MODULE_0__.bClass, cClass: _style_css__WEBPACK_IMPORTED_MODULE_0__.cClass }); - -})(); - -/******/ })() -; \ No newline at end of file diff --git a/test/cases/filename-without-template/expected/webpack-5-importModule/0.main.css b/test/cases/filename-without-template/expected/0.main.css similarity index 100% rename from test/cases/filename-without-template/expected/webpack-5-importModule/0.main.css rename to test/cases/filename-without-template/expected/0.main.css diff --git a/test/cases/chunkFilename/expected/webpack-5/main.css b/test/cases/filename-without-template/expected/main.css similarity index 100% rename from test/cases/chunkFilename/expected/webpack-5/main.css rename to test/cases/filename-without-template/expected/main.css diff --git a/test/cases/filename-without-template/expected/webpack-5-importModule/main.css b/test/cases/filename-without-template/expected/webpack-5-importModule/main.css deleted file mode 100644 index cebc5c1c..00000000 --- a/test/cases/filename-without-template/expected/webpack-5-importModule/main.css +++ /dev/null @@ -1,4 +0,0 @@ -body { - background: red; -} - diff --git a/test/cases/filename-without-template/expected/webpack-5/0.main.css b/test/cases/filename-without-template/expected/webpack-5/0.main.css deleted file mode 100644 index e665100a..00000000 --- a/test/cases/filename-without-template/expected/webpack-5/0.main.css +++ /dev/null @@ -1,4 +0,0 @@ -.async { - color: red; -} - diff --git a/test/cases/filename-without-template/expected/webpack-5/main.css b/test/cases/filename-without-template/expected/webpack-5/main.css deleted file mode 100644 index cebc5c1c..00000000 --- a/test/cases/filename-without-template/expected/webpack-5/main.css +++ /dev/null @@ -1,4 +0,0 @@ -body { - background: red; -} - diff --git a/test/cases/hmr/expected/webpack-5-importModule/main.css b/test/cases/hmr/expected/main.css similarity index 100% rename from test/cases/hmr/expected/webpack-5-importModule/main.css rename to test/cases/hmr/expected/main.css diff --git a/test/cases/hmr/expected/webpack-5-importModule/main.js b/test/cases/hmr/expected/main.js similarity index 100% rename from test/cases/hmr/expected/webpack-5-importModule/main.js rename to test/cases/hmr/expected/main.js diff --git a/test/cases/hmr/expected/webpack-5/main.css b/test/cases/hmr/expected/webpack-5/main.css deleted file mode 100644 index 6f77cc07..00000000 --- a/test/cases/hmr/expected/webpack-5/main.css +++ /dev/null @@ -1,24 +0,0 @@ -@import url(https://some/other/external/css); -@import url(https://some/external/css); -body { - background: red; -} - -.c { - background: red; -} - -.c { - color: yellow; -} - -.b { - background: red; -} - -.b { - color: yellow; -} - - - diff --git a/test/cases/hmr/expected/webpack-5/main.js b/test/cases/hmr/expected/webpack-5/main.js deleted file mode 100644 index 6db73b01..00000000 --- a/test/cases/hmr/expected/webpack-5/main.js +++ /dev/null @@ -1,1454 +0,0 @@ -/******/ (() => { // webpackBootstrap -/******/ var __webpack_modules__ = ([ -/* 0 */ -/***/ ((module, __webpack_exports__, __webpack_require__) => { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -// extracted by mini-css-extract-plugin - - if(true) { - // - var cssReload = __webpack_require__(1)(module.id, {"locals":false}); - module.hot.dispose(cssReload); - module.hot.accept(undefined, cssReload); - } - - -/***/ }), -/* 1 */ -/***/ ((module, __unused_webpack_exports, __webpack_require__) => { - -/* eslint-env browser */ -/* - eslint-disable - no-console, - func-names -*/ - -const normalizeUrl = __webpack_require__(2); - -const srcByModuleId = Object.create(null); - -const noDocument = typeof document === "undefined"; - -const { forEach } = Array.prototype; - -function debounce(fn, time) { - let timeout = 0; - - return function () { - const self = this; - // eslint-disable-next-line prefer-rest-params - const args = arguments; - - const functionCall = function functionCall() { - return fn.apply(self, args); - }; - - clearTimeout(timeout); - timeout = setTimeout(functionCall, time); - }; -} - -function noop() {} - -function getCurrentScriptUrl(moduleId) { - let src = srcByModuleId[moduleId]; - - if (!src) { - if (document.currentScript) { - ({ src } = document.currentScript); - } else { - const scripts = document.getElementsByTagName("script"); - const lastScriptTag = scripts[scripts.length - 1]; - - if (lastScriptTag) { - ({ src } = lastScriptTag); - } - } - - srcByModuleId[moduleId] = src; - } - - return function (fileMap) { - if (!src) { - return null; - } - - const splitResult = src.split(/([^\\/]+)\.js$/); - const filename = splitResult && splitResult[1]; - - if (!filename) { - return [src.replace(".js", ".css")]; - } - - if (!fileMap) { - return [src.replace(".js", ".css")]; - } - - return fileMap.split(",").map((mapRule) => { - const reg = new RegExp(`${filename}\\.js$`, "g"); - - return normalizeUrl( - src.replace(reg, `${mapRule.replace(/{fileName}/g, filename)}.css`) - ); - }); - }; -} - -function updateCss(el, url) { - if (!url) { - if (!el.href) { - return; - } - - // eslint-disable-next-line - url = el.href.split("?")[0]; - } - - if (!isUrlRequest(url)) { - return; - } - - if (el.isLoaded === false) { - // We seem to be about to replace a css link that hasn't loaded yet. - // We're probably changing the same file more than once. - return; - } - - if (!url || !(url.indexOf(".css") > -1)) { - return; - } - - // eslint-disable-next-line no-param-reassign - el.visited = true; - - const newEl = el.cloneNode(); - - newEl.isLoaded = false; - - newEl.addEventListener("load", () => { - if (newEl.isLoaded) { - return; - } - - newEl.isLoaded = true; - el.parentNode.removeChild(el); - }); - - newEl.addEventListener("error", () => { - if (newEl.isLoaded) { - return; - } - - newEl.isLoaded = true; - el.parentNode.removeChild(el); - }); - - newEl.href = `${url}?${Date.now()}`; - - if (el.nextSibling) { - el.parentNode.insertBefore(newEl, el.nextSibling); - } else { - el.parentNode.appendChild(newEl); - } -} - -function getReloadUrl(href, src) { - let ret; - - // eslint-disable-next-line no-param-reassign - href = normalizeUrl(href, { stripWWW: false }); - - // eslint-disable-next-line array-callback-return - src.some((url) => { - if (href.indexOf(src) > -1) { - ret = url; - } - }); - - return ret; -} - -function reloadStyle(src) { - if (!src) { - return false; - } - - const elements = document.querySelectorAll("link"); - let loaded = false; - - forEach.call(elements, (el) => { - if (!el.href) { - return; - } - - const url = getReloadUrl(el.href, src); - - if (!isUrlRequest(url)) { - return; - } - - if (el.visited === true) { - return; - } - - if (url) { - updateCss(el, url); - - loaded = true; - } - }); - - return loaded; -} - -function reloadAll() { - const elements = document.querySelectorAll("link"); - - forEach.call(elements, (el) => { - if (el.visited === true) { - return; - } - - updateCss(el); - }); -} - -function isUrlRequest(url) { - // An URL is not an request if - - // It is not http or https - if (!/^https?:/i.test(url)) { - return false; - } - - return true; -} - -module.exports = function (moduleId, options) { - if (noDocument) { - console.log("no window.document found, will not HMR CSS"); - - return noop; - } - - const getScriptSrc = getCurrentScriptUrl(moduleId); - - function update() { - const src = getScriptSrc(options.filename); - const reloaded = reloadStyle(src); - - if (options.locals) { - console.log("[HMR] Detected local css modules. Reload all css"); - - reloadAll(); - - return; - } - - if (reloaded) { - console.log("[HMR] css reload %s", src.join(" ")); - } else { - console.log("[HMR] Reload all css"); - - reloadAll(); - } - } - - return debounce(update, 50); -}; - - -/***/ }), -/* 2 */ -/***/ ((module) => { - -/* eslint-disable */ - -function normalizeUrl(pathComponents) { - return pathComponents - .reduce(function (accumulator, item) { - switch (item) { - case "..": - accumulator.pop(); - break; - case ".": - break; - default: - accumulator.push(item); - } - - return accumulator; - }, []) - .join("/"); -} - -module.exports = function (urlString) { - urlString = urlString.trim(); - - if (/^data:/i.test(urlString)) { - return urlString; - } - - var protocol = - urlString.indexOf("//") !== -1 ? urlString.split("//")[0] + "//" : ""; - var components = urlString.replace(new RegExp(protocol, "i"), "").split("/"); - var host = components[0].toLowerCase().replace(/\.$/, ""); - - components[0] = ""; - - var path = normalizeUrl(components); - - return protocol + host + path; -}; - - -/***/ }) -/******/ ]); -/************************************************************************/ -/******/ // The module cache -/******/ var __webpack_module_cache__ = {}; -/******/ -/******/ // The require function -/******/ function __webpack_require__(moduleId) { -/******/ // Check if module is in cache -/******/ var cachedModule = __webpack_module_cache__[moduleId]; -/******/ if (cachedModule !== undefined) { -/******/ if (cachedModule.error !== undefined) throw cachedModule.error; -/******/ return cachedModule.exports; -/******/ } -/******/ // Create a new module (and put it into the cache) -/******/ var module = __webpack_module_cache__[moduleId] = { -/******/ id: moduleId, -/******/ // no module.loaded needed -/******/ exports: {} -/******/ }; -/******/ -/******/ // Execute the module function -/******/ try { -/******/ var execOptions = { id: moduleId, module: module, factory: __webpack_modules__[moduleId], require: __webpack_require__ }; -/******/ __webpack_require__.i.forEach(function(handler) { handler(execOptions); }); -/******/ module = execOptions.module; -/******/ execOptions.factory.call(module.exports, module, module.exports, execOptions.require); -/******/ } catch(e) { -/******/ module.error = e; -/******/ throw e; -/******/ } -/******/ -/******/ // Return the exports of the module -/******/ return module.exports; -/******/ } -/******/ -/******/ // expose the modules object (__webpack_modules__) -/******/ __webpack_require__.m = __webpack_modules__; -/******/ -/******/ // expose the module cache -/******/ __webpack_require__.c = __webpack_module_cache__; -/******/ -/******/ // expose the module execution interceptor -/******/ __webpack_require__.i = []; -/******/ -/************************************************************************/ -/******/ /* webpack/runtime/get javascript update chunk filename */ -/******/ (() => { -/******/ // This function allow to reference all chunks -/******/ __webpack_require__.hu = (chunkId) => { -/******/ // return url for filenames based on template -/******/ return "" + chunkId + "." + __webpack_require__.h() + ".hot-update.js"; -/******/ }; -/******/ })(); -/******/ -/******/ /* webpack/runtime/get mini-css chunk filename */ -/******/ (() => { -/******/ // This function allow to reference all chunks -/******/ __webpack_require__.miniCssF = (chunkId) => { -/******/ // return url for filenames based on template -/******/ return undefined; -/******/ }; -/******/ })(); -/******/ -/******/ /* webpack/runtime/get update manifest filename */ -/******/ (() => { -/******/ __webpack_require__.hmrF = () => ("main." + __webpack_require__.h() + ".hot-update.json"); -/******/ })(); -/******/ -/******/ /* webpack/runtime/getFullHash */ -/******/ (() => { -/******/ __webpack_require__.h = () => ("xxxxxxxxxxxxxxxxxxxxxx") -/******/ })(); -/******/ -/******/ /* webpack/runtime/global */ -/******/ (() => { -/******/ __webpack_require__.g = (function() { -/******/ if (typeof globalThis === 'object') return globalThis; -/******/ try { -/******/ return this || new Function('return this')(); -/******/ } catch (e) { -/******/ if (typeof window === 'object') return window; -/******/ } -/******/ })(); -/******/ })(); -/******/ -/******/ /* webpack/runtime/hasOwnProperty shorthand */ -/******/ (() => { -/******/ __webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop)) -/******/ })(); -/******/ -/******/ /* webpack/runtime/load script */ -/******/ (() => { -/******/ var inProgress = {}; -/******/ // data-webpack is not used as build has no uniqueName -/******/ // loadScript function to load a script via script tag -/******/ __webpack_require__.l = (url, done, key, chunkId) => { -/******/ if(inProgress[url]) { inProgress[url].push(done); return; } -/******/ var script, needAttach; -/******/ if(key !== undefined) { -/******/ var scripts = document.getElementsByTagName("script"); -/******/ for(var i = 0; i < scripts.length; i++) { -/******/ var s = scripts[i]; -/******/ if(s.getAttribute("src") == url) { script = s; break; } -/******/ } -/******/ } -/******/ if(!script) { -/******/ needAttach = true; -/******/ script = document.createElement('script'); -/******/ -/******/ script.charset = 'utf-8'; -/******/ script.timeout = 120; -/******/ if (__webpack_require__.nc) { -/******/ script.setAttribute("nonce", __webpack_require__.nc); -/******/ } -/******/ -/******/ script.src = url; -/******/ } -/******/ inProgress[url] = [done]; -/******/ var onScriptComplete = (prev, event) => { -/******/ // avoid mem leaks in IE. -/******/ script.onerror = script.onload = null; -/******/ clearTimeout(timeout); -/******/ var doneFns = inProgress[url]; -/******/ delete inProgress[url]; -/******/ script.parentNode && script.parentNode.removeChild(script); -/******/ doneFns && doneFns.forEach((fn) => (fn(event))); -/******/ if(prev) return prev(event); -/******/ } -/******/ ; -/******/ var timeout = setTimeout(onScriptComplete.bind(null, undefined, { type: 'timeout', target: script }), 120000); -/******/ script.onerror = onScriptComplete.bind(null, script.onerror); -/******/ script.onload = onScriptComplete.bind(null, script.onload); -/******/ needAttach && document.head.appendChild(script); -/******/ }; -/******/ })(); -/******/ -/******/ /* webpack/runtime/make namespace object */ -/******/ (() => { -/******/ // define __esModule on exports -/******/ __webpack_require__.r = (exports) => { -/******/ if(typeof Symbol !== 'undefined' && Symbol.toStringTag) { -/******/ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' }); -/******/ } -/******/ Object.defineProperty(exports, '__esModule', { value: true }); -/******/ }; -/******/ })(); -/******/ -/******/ /* webpack/runtime/hot module replacement */ -/******/ (() => { -/******/ var currentModuleData = {}; -/******/ var installedModules = __webpack_require__.c; -/******/ -/******/ // module and require creation -/******/ var currentChildModule; -/******/ var currentParents = []; -/******/ -/******/ // status -/******/ var registeredStatusHandlers = []; -/******/ var currentStatus = "idle"; -/******/ -/******/ // while downloading -/******/ var blockingPromises; -/******/ -/******/ // The update info -/******/ var currentUpdateApplyHandlers; -/******/ var queuedInvalidatedModules; -/******/ -/******/ // eslint-disable-next-line no-unused-vars -/******/ __webpack_require__.hmrD = currentModuleData; -/******/ -/******/ __webpack_require__.i.push(function (options) { -/******/ var module = options.module; -/******/ var require = createRequire(options.require, options.id); -/******/ module.hot = createModuleHotObject(options.id, module); -/******/ module.parents = currentParents; -/******/ module.children = []; -/******/ currentParents = []; -/******/ options.require = require; -/******/ }); -/******/ -/******/ __webpack_require__.hmrC = {}; -/******/ __webpack_require__.hmrI = {}; -/******/ -/******/ function createRequire(require, moduleId) { -/******/ var me = installedModules[moduleId]; -/******/ if (!me) return require; -/******/ var fn = function (request) { -/******/ if (me.hot.active) { -/******/ if (installedModules[request]) { -/******/ var parents = installedModules[request].parents; -/******/ if (parents.indexOf(moduleId) === -1) { -/******/ parents.push(moduleId); -/******/ } -/******/ } else { -/******/ currentParents = [moduleId]; -/******/ currentChildModule = request; -/******/ } -/******/ if (me.children.indexOf(request) === -1) { -/******/ me.children.push(request); -/******/ } -/******/ } else { -/******/ console.warn( -/******/ "[HMR] unexpected require(" + -/******/ request + -/******/ ") from disposed module " + -/******/ moduleId -/******/ ); -/******/ currentParents = []; -/******/ } -/******/ return require(request); -/******/ }; -/******/ var createPropertyDescriptor = function (name) { -/******/ return { -/******/ configurable: true, -/******/ enumerable: true, -/******/ get: function () { -/******/ return require[name]; -/******/ }, -/******/ set: function (value) { -/******/ require[name] = value; -/******/ } -/******/ }; -/******/ }; -/******/ for (var name in require) { -/******/ if (Object.prototype.hasOwnProperty.call(require, name) && name !== "e") { -/******/ Object.defineProperty(fn, name, createPropertyDescriptor(name)); -/******/ } -/******/ } -/******/ fn.e = function (chunkId) { -/******/ return trackBlockingPromise(require.e(chunkId)); -/******/ }; -/******/ return fn; -/******/ } -/******/ -/******/ function createModuleHotObject(moduleId, me) { -/******/ var _main = currentChildModule !== moduleId; -/******/ var hot = { -/******/ // private stuff -/******/ _acceptedDependencies: {}, -/******/ _acceptedErrorHandlers: {}, -/******/ _declinedDependencies: {}, -/******/ _selfAccepted: false, -/******/ _selfDeclined: false, -/******/ _selfInvalidated: false, -/******/ _disposeHandlers: [], -/******/ _main: _main, -/******/ _requireSelf: function () { -/******/ currentParents = me.parents.slice(); -/******/ currentChildModule = _main ? undefined : moduleId; -/******/ __webpack_require__(moduleId); -/******/ }, -/******/ -/******/ // Module API -/******/ active: true, -/******/ accept: function (dep, callback, errorHandler) { -/******/ if (dep === undefined) hot._selfAccepted = true; -/******/ else if (typeof dep === "function") hot._selfAccepted = dep; -/******/ else if (typeof dep === "object" && dep !== null) { -/******/ for (var i = 0; i < dep.length; i++) { -/******/ hot._acceptedDependencies[dep[i]] = callback || function () {}; -/******/ hot._acceptedErrorHandlers[dep[i]] = errorHandler; -/******/ } -/******/ } else { -/******/ hot._acceptedDependencies[dep] = callback || function () {}; -/******/ hot._acceptedErrorHandlers[dep] = errorHandler; -/******/ } -/******/ }, -/******/ decline: function (dep) { -/******/ if (dep === undefined) hot._selfDeclined = true; -/******/ else if (typeof dep === "object" && dep !== null) -/******/ for (var i = 0; i < dep.length; i++) -/******/ hot._declinedDependencies[dep[i]] = true; -/******/ else hot._declinedDependencies[dep] = true; -/******/ }, -/******/ dispose: function (callback) { -/******/ hot._disposeHandlers.push(callback); -/******/ }, -/******/ addDisposeHandler: function (callback) { -/******/ hot._disposeHandlers.push(callback); -/******/ }, -/******/ removeDisposeHandler: function (callback) { -/******/ var idx = hot._disposeHandlers.indexOf(callback); -/******/ if (idx >= 0) hot._disposeHandlers.splice(idx, 1); -/******/ }, -/******/ invalidate: function () { -/******/ this._selfInvalidated = true; -/******/ switch (currentStatus) { -/******/ case "idle": -/******/ currentUpdateApplyHandlers = []; -/******/ Object.keys(__webpack_require__.hmrI).forEach(function (key) { -/******/ __webpack_require__.hmrI[key]( -/******/ moduleId, -/******/ currentUpdateApplyHandlers -/******/ ); -/******/ }); -/******/ setStatus("ready"); -/******/ break; -/******/ case "ready": -/******/ Object.keys(__webpack_require__.hmrI).forEach(function (key) { -/******/ __webpack_require__.hmrI[key]( -/******/ moduleId, -/******/ currentUpdateApplyHandlers -/******/ ); -/******/ }); -/******/ break; -/******/ case "prepare": -/******/ case "check": -/******/ case "dispose": -/******/ case "apply": -/******/ (queuedInvalidatedModules = queuedInvalidatedModules || []).push( -/******/ moduleId -/******/ ); -/******/ break; -/******/ default: -/******/ // ignore requests in error states -/******/ break; -/******/ } -/******/ }, -/******/ -/******/ // Management API -/******/ check: hotCheck, -/******/ apply: hotApply, -/******/ status: function (l) { -/******/ if (!l) return currentStatus; -/******/ registeredStatusHandlers.push(l); -/******/ }, -/******/ addStatusHandler: function (l) { -/******/ registeredStatusHandlers.push(l); -/******/ }, -/******/ removeStatusHandler: function (l) { -/******/ var idx = registeredStatusHandlers.indexOf(l); -/******/ if (idx >= 0) registeredStatusHandlers.splice(idx, 1); -/******/ }, -/******/ -/******/ //inherit from previous dispose call -/******/ data: currentModuleData[moduleId] -/******/ }; -/******/ currentChildModule = undefined; -/******/ return hot; -/******/ } -/******/ -/******/ function setStatus(newStatus) { -/******/ currentStatus = newStatus; -/******/ for (var i = 0; i < registeredStatusHandlers.length; i++) -/******/ registeredStatusHandlers[i].call(null, newStatus); -/******/ } -/******/ -/******/ function trackBlockingPromise(promise) { -/******/ switch (currentStatus) { -/******/ case "ready": -/******/ setStatus("prepare"); -/******/ blockingPromises.push(promise); -/******/ waitForBlockingPromises(function () { -/******/ setStatus("ready"); -/******/ }); -/******/ return promise; -/******/ case "prepare": -/******/ blockingPromises.push(promise); -/******/ return promise; -/******/ default: -/******/ return promise; -/******/ } -/******/ } -/******/ -/******/ function waitForBlockingPromises(fn) { -/******/ if (blockingPromises.length === 0) return fn(); -/******/ var blocker = blockingPromises; -/******/ blockingPromises = []; -/******/ return Promise.all(blocker).then(function () { -/******/ return waitForBlockingPromises(fn); -/******/ }); -/******/ } -/******/ -/******/ function hotCheck(applyOnUpdate) { -/******/ if (currentStatus !== "idle") { -/******/ throw new Error("check() is only allowed in idle status"); -/******/ } -/******/ setStatus("check"); -/******/ return __webpack_require__.hmrM().then(function (update) { -/******/ if (!update) { -/******/ setStatus(applyInvalidatedModules() ? "ready" : "idle"); -/******/ return null; -/******/ } -/******/ -/******/ setStatus("prepare"); -/******/ -/******/ var updatedModules = []; -/******/ blockingPromises = []; -/******/ currentUpdateApplyHandlers = []; -/******/ -/******/ return Promise.all( -/******/ Object.keys(__webpack_require__.hmrC).reduce(function ( -/******/ promises, -/******/ key -/******/ ) { -/******/ __webpack_require__.hmrC[key]( -/******/ update.c, -/******/ update.r, -/******/ update.m, -/******/ promises, -/******/ currentUpdateApplyHandlers, -/******/ updatedModules -/******/ ); -/******/ return promises; -/******/ }, -/******/ []) -/******/ ).then(function () { -/******/ return waitForBlockingPromises(function () { -/******/ if (applyOnUpdate) { -/******/ return internalApply(applyOnUpdate); -/******/ } else { -/******/ setStatus("ready"); -/******/ -/******/ return updatedModules; -/******/ } -/******/ }); -/******/ }); -/******/ }); -/******/ } -/******/ -/******/ function hotApply(options) { -/******/ if (currentStatus !== "ready") { -/******/ return Promise.resolve().then(function () { -/******/ throw new Error("apply() is only allowed in ready status"); -/******/ }); -/******/ } -/******/ return internalApply(options); -/******/ } -/******/ -/******/ function internalApply(options) { -/******/ options = options || {}; -/******/ -/******/ applyInvalidatedModules(); -/******/ -/******/ var results = currentUpdateApplyHandlers.map(function (handler) { -/******/ return handler(options); -/******/ }); -/******/ currentUpdateApplyHandlers = undefined; -/******/ -/******/ var errors = results -/******/ .map(function (r) { -/******/ return r.error; -/******/ }) -/******/ .filter(Boolean); -/******/ -/******/ if (errors.length > 0) { -/******/ setStatus("abort"); -/******/ return Promise.resolve().then(function () { -/******/ throw errors[0]; -/******/ }); -/******/ } -/******/ -/******/ // Now in "dispose" phase -/******/ setStatus("dispose"); -/******/ -/******/ results.forEach(function (result) { -/******/ if (result.dispose) result.dispose(); -/******/ }); -/******/ -/******/ // Now in "apply" phase -/******/ setStatus("apply"); -/******/ -/******/ var error; -/******/ var reportError = function (err) { -/******/ if (!error) error = err; -/******/ }; -/******/ -/******/ var outdatedModules = []; -/******/ results.forEach(function (result) { -/******/ if (result.apply) { -/******/ var modules = result.apply(reportError); -/******/ if (modules) { -/******/ for (var i = 0; i < modules.length; i++) { -/******/ outdatedModules.push(modules[i]); -/******/ } -/******/ } -/******/ } -/******/ }); -/******/ -/******/ // handle errors in accept handlers and self accepted module load -/******/ if (error) { -/******/ setStatus("fail"); -/******/ return Promise.resolve().then(function () { -/******/ throw error; -/******/ }); -/******/ } -/******/ -/******/ if (queuedInvalidatedModules) { -/******/ return internalApply(options).then(function (list) { -/******/ outdatedModules.forEach(function (moduleId) { -/******/ if (list.indexOf(moduleId) < 0) list.push(moduleId); -/******/ }); -/******/ return list; -/******/ }); -/******/ } -/******/ -/******/ setStatus("idle"); -/******/ return Promise.resolve(outdatedModules); -/******/ } -/******/ -/******/ function applyInvalidatedModules() { -/******/ if (queuedInvalidatedModules) { -/******/ if (!currentUpdateApplyHandlers) currentUpdateApplyHandlers = []; -/******/ Object.keys(__webpack_require__.hmrI).forEach(function (key) { -/******/ queuedInvalidatedModules.forEach(function (moduleId) { -/******/ __webpack_require__.hmrI[key]( -/******/ moduleId, -/******/ currentUpdateApplyHandlers -/******/ ); -/******/ }); -/******/ }); -/******/ queuedInvalidatedModules = undefined; -/******/ return true; -/******/ } -/******/ } -/******/ })(); -/******/ -/******/ /* webpack/runtime/publicPath */ -/******/ (() => { -/******/ var scriptUrl; -/******/ if (__webpack_require__.g.importScripts) scriptUrl = __webpack_require__.g.location + ""; -/******/ var document = __webpack_require__.g.document; -/******/ if (!scriptUrl && document) { -/******/ if (document.currentScript) -/******/ scriptUrl = document.currentScript.src -/******/ if (!scriptUrl) { -/******/ var scripts = document.getElementsByTagName("script"); -/******/ if(scripts.length) scriptUrl = scripts[scripts.length - 1].src -/******/ } -/******/ } -/******/ // When supporting browsers where an automatic publicPath is not supported you must specify an output.publicPath manually via configuration -/******/ // or pass an empty string ("") and set the __webpack_public_path__ variable from your code to use your own logic. -/******/ if (!scriptUrl) throw new Error("Automatic publicPath is not supported in this browser"); -/******/ scriptUrl = scriptUrl.replace(/#.*$/, "").replace(/\?.*$/, "").replace(/\/[^\/]+$/, "/"); -/******/ __webpack_require__.p = scriptUrl; -/******/ })(); -/******/ -/******/ /* webpack/runtime/css loading */ -/******/ (() => { -/******/ var createStylesheet = (chunkId, fullhref, resolve, reject) => { -/******/ var linkTag = document.createElement("link"); -/******/ -/******/ linkTag.rel = "stylesheet"; -/******/ linkTag.type = "text/css"; -/******/ var onLinkComplete = (event) => { -/******/ // avoid mem leaks. -/******/ linkTag.onerror = linkTag.onload = null; -/******/ if (event.type === 'load') { -/******/ resolve(); -/******/ } else { -/******/ var errorType = event && (event.type === 'load' ? 'missing' : event.type); -/******/ var realHref = event && event.target && event.target.href || fullhref; -/******/ var err = new Error("Loading CSS chunk " + chunkId + " failed.\n(" + realHref + ")"); -/******/ err.code = "CSS_CHUNK_LOAD_FAILED"; -/******/ err.type = errorType; -/******/ err.request = realHref; -/******/ linkTag.parentNode.removeChild(linkTag) -/******/ reject(err); -/******/ } -/******/ } -/******/ linkTag.onerror = linkTag.onload = onLinkComplete; -/******/ linkTag.href = fullhref; -/******/ -/******/ document.head.appendChild(linkTag); -/******/ return linkTag; -/******/ }; -/******/ var findStylesheet = (href, fullhref) => { -/******/ var existingLinkTags = document.getElementsByTagName("link"); -/******/ for(var i = 0; i < existingLinkTags.length; i++) { -/******/ var tag = existingLinkTags[i]; -/******/ var dataHref = tag.getAttribute("data-href") || tag.getAttribute("href"); -/******/ if(tag.rel === "stylesheet" && (dataHref === href || dataHref === fullhref)) return tag; -/******/ } -/******/ var existingStyleTags = document.getElementsByTagName("style"); -/******/ for(var i = 0; i < existingStyleTags.length; i++) { -/******/ var tag = existingStyleTags[i]; -/******/ var dataHref = tag.getAttribute("data-href"); -/******/ if(dataHref === href || dataHref === fullhref) return tag; -/******/ } -/******/ }; -/******/ var loadStylesheet = (chunkId) => { -/******/ return new Promise((resolve, reject) => { -/******/ var href = __webpack_require__.miniCssF(chunkId); -/******/ var fullhref = __webpack_require__.p + href; -/******/ if(findStylesheet(href, fullhref)) return resolve(); -/******/ createStylesheet(chunkId, fullhref, resolve, reject); -/******/ }); -/******/ } -/******/ // no chunk loading -/******/ -/******/ var oldTags = []; -/******/ var newTags = []; -/******/ var applyHandler = (options) => { -/******/ return { dispose: () => { -/******/ for(var i = 0; i < oldTags.length; i++) { -/******/ var oldTag = oldTags[i]; -/******/ if(oldTag.parentNode) oldTag.parentNode.removeChild(oldTag); -/******/ } -/******/ oldTags.length = 0; -/******/ }, apply: () => { -/******/ for(var i = 0; i < newTags.length; i++) newTags[i].rel = "stylesheet"; -/******/ newTags.length = 0; -/******/ } }; -/******/ } -/******/ __webpack_require__.hmrC.miniCss = (chunkIds, removedChunks, removedModules, promises, applyHandlers, updatedModulesList) => { -/******/ applyHandlers.push(applyHandler); -/******/ chunkIds.forEach((chunkId) => { -/******/ var href = __webpack_require__.miniCssF(chunkId); -/******/ var fullhref = __webpack_require__.p + href; -/******/ var oldTag = findStylesheet(href, fullhref); -/******/ if(!oldTag) return; -/******/ promises.push(new Promise((resolve, reject) => { -/******/ var tag = createStylesheet(chunkId, fullhref, () => { -/******/ tag.as = "style"; -/******/ tag.rel = "preload"; -/******/ resolve(); -/******/ }, reject); -/******/ oldTags.push(oldTag); -/******/ newTags.push(tag); -/******/ })); -/******/ }); -/******/ } -/******/ })(); -/******/ -/******/ /* webpack/runtime/jsonp chunk loading */ -/******/ (() => { -/******/ // no baseURI -/******/ -/******/ // object to store loaded and loading chunks -/******/ // undefined = chunk not loaded, null = chunk preloaded/prefetched -/******/ // [resolve, reject, Promise] = chunk loading, 0 = chunk loaded -/******/ var installedChunks = { -/******/ 0: 0 -/******/ }; -/******/ -/******/ // no chunk on demand loading -/******/ -/******/ // no prefetching -/******/ -/******/ // no preloaded -/******/ -/******/ var currentUpdatedModulesList; -/******/ var waitingUpdateResolves = {}; -/******/ function loadUpdateChunk(chunkId) { -/******/ return new Promise((resolve, reject) => { -/******/ waitingUpdateResolves[chunkId] = resolve; -/******/ // start update chunk loading -/******/ var url = __webpack_require__.p + __webpack_require__.hu(chunkId); -/******/ // create error before stack unwound to get useful stacktrace later -/******/ var error = new Error(); -/******/ var loadingEnded = (event) => { -/******/ if(waitingUpdateResolves[chunkId]) { -/******/ waitingUpdateResolves[chunkId] = undefined -/******/ var errorType = event && (event.type === 'load' ? 'missing' : event.type); -/******/ var realSrc = event && event.target && event.target.src; -/******/ error.message = 'Loading hot update chunk ' + chunkId + ' failed.\n(' + errorType + ': ' + realSrc + ')'; -/******/ error.name = 'ChunkLoadError'; -/******/ error.type = errorType; -/******/ error.request = realSrc; -/******/ reject(error); -/******/ } -/******/ }; -/******/ __webpack_require__.l(url, loadingEnded); -/******/ }); -/******/ } -/******/ -/******/ self["webpackHotUpdate"] = (chunkId, moreModules, runtime) => { -/******/ for(var moduleId in moreModules) { -/******/ if(__webpack_require__.o(moreModules, moduleId)) { -/******/ currentUpdate[moduleId] = moreModules[moduleId]; -/******/ if(currentUpdatedModulesList) currentUpdatedModulesList.push(moduleId); -/******/ } -/******/ } -/******/ if(runtime) currentUpdateRuntime.push(runtime); -/******/ if(waitingUpdateResolves[chunkId]) { -/******/ waitingUpdateResolves[chunkId](); -/******/ waitingUpdateResolves[chunkId] = undefined; -/******/ } -/******/ }; -/******/ -/******/ var currentUpdateChunks; -/******/ var currentUpdate; -/******/ var currentUpdateRemovedChunks; -/******/ var currentUpdateRuntime; -/******/ function applyHandler(options) { -/******/ if (__webpack_require__.f) delete __webpack_require__.f.jsonpHmr; -/******/ currentUpdateChunks = undefined; -/******/ function getAffectedModuleEffects(updateModuleId) { -/******/ var outdatedModules = [updateModuleId]; -/******/ var outdatedDependencies = {}; -/******/ -/******/ var queue = outdatedModules.map(function (id) { -/******/ return { -/******/ chain: [id], -/******/ id: id -/******/ }; -/******/ }); -/******/ while (queue.length > 0) { -/******/ var queueItem = queue.pop(); -/******/ var moduleId = queueItem.id; -/******/ var chain = queueItem.chain; -/******/ var module = __webpack_require__.c[moduleId]; -/******/ if ( -/******/ !module || -/******/ (module.hot._selfAccepted && !module.hot._selfInvalidated) -/******/ ) -/******/ continue; -/******/ if (module.hot._selfDeclined) { -/******/ return { -/******/ type: "self-declined", -/******/ chain: chain, -/******/ moduleId: moduleId -/******/ }; -/******/ } -/******/ if (module.hot._main) { -/******/ return { -/******/ type: "unaccepted", -/******/ chain: chain, -/******/ moduleId: moduleId -/******/ }; -/******/ } -/******/ for (var i = 0; i < module.parents.length; i++) { -/******/ var parentId = module.parents[i]; -/******/ var parent = __webpack_require__.c[parentId]; -/******/ if (!parent) continue; -/******/ if (parent.hot._declinedDependencies[moduleId]) { -/******/ return { -/******/ type: "declined", -/******/ chain: chain.concat([parentId]), -/******/ moduleId: moduleId, -/******/ parentId: parentId -/******/ }; -/******/ } -/******/ if (outdatedModules.indexOf(parentId) !== -1) continue; -/******/ if (parent.hot._acceptedDependencies[moduleId]) { -/******/ if (!outdatedDependencies[parentId]) -/******/ outdatedDependencies[parentId] = []; -/******/ addAllToSet(outdatedDependencies[parentId], [moduleId]); -/******/ continue; -/******/ } -/******/ delete outdatedDependencies[parentId]; -/******/ outdatedModules.push(parentId); -/******/ queue.push({ -/******/ chain: chain.concat([parentId]), -/******/ id: parentId -/******/ }); -/******/ } -/******/ } -/******/ -/******/ return { -/******/ type: "accepted", -/******/ moduleId: updateModuleId, -/******/ outdatedModules: outdatedModules, -/******/ outdatedDependencies: outdatedDependencies -/******/ }; -/******/ } -/******/ -/******/ function addAllToSet(a, b) { -/******/ for (var i = 0; i < b.length; i++) { -/******/ var item = b[i]; -/******/ if (a.indexOf(item) === -1) a.push(item); -/******/ } -/******/ } -/******/ -/******/ // at begin all updates modules are outdated -/******/ // the "outdated" status can propagate to parents if they don't accept the children -/******/ var outdatedDependencies = {}; -/******/ var outdatedModules = []; -/******/ var appliedUpdate = {}; -/******/ -/******/ var warnUnexpectedRequire = function warnUnexpectedRequire(module) { -/******/ console.warn( -/******/ "[HMR] unexpected require(" + module.id + ") to disposed module" -/******/ ); -/******/ }; -/******/ -/******/ for (var moduleId in currentUpdate) { -/******/ if (__webpack_require__.o(currentUpdate, moduleId)) { -/******/ var newModuleFactory = currentUpdate[moduleId]; -/******/ /** @type {TODO} */ -/******/ var result; -/******/ if (newModuleFactory) { -/******/ result = getAffectedModuleEffects(moduleId); -/******/ } else { -/******/ result = { -/******/ type: "disposed", -/******/ moduleId: moduleId -/******/ }; -/******/ } -/******/ /** @type {Error|false} */ -/******/ var abortError = false; -/******/ var doApply = false; -/******/ var doDispose = false; -/******/ var chainInfo = ""; -/******/ if (result.chain) { -/******/ chainInfo = "\nUpdate propagation: " + result.chain.join(" -> "); -/******/ } -/******/ switch (result.type) { -/******/ case "self-declined": -/******/ if (options.onDeclined) options.onDeclined(result); -/******/ if (!options.ignoreDeclined) -/******/ abortError = new Error( -/******/ "Aborted because of self decline: " + -/******/ result.moduleId + -/******/ chainInfo -/******/ ); -/******/ break; -/******/ case "declined": -/******/ if (options.onDeclined) options.onDeclined(result); -/******/ if (!options.ignoreDeclined) -/******/ abortError = new Error( -/******/ "Aborted because of declined dependency: " + -/******/ result.moduleId + -/******/ " in " + -/******/ result.parentId + -/******/ chainInfo -/******/ ); -/******/ break; -/******/ case "unaccepted": -/******/ if (options.onUnaccepted) options.onUnaccepted(result); -/******/ if (!options.ignoreUnaccepted) -/******/ abortError = new Error( -/******/ "Aborted because " + moduleId + " is not accepted" + chainInfo -/******/ ); -/******/ break; -/******/ case "accepted": -/******/ if (options.onAccepted) options.onAccepted(result); -/******/ doApply = true; -/******/ break; -/******/ case "disposed": -/******/ if (options.onDisposed) options.onDisposed(result); -/******/ doDispose = true; -/******/ break; -/******/ default: -/******/ throw new Error("Unexception type " + result.type); -/******/ } -/******/ if (abortError) { -/******/ return { -/******/ error: abortError -/******/ }; -/******/ } -/******/ if (doApply) { -/******/ appliedUpdate[moduleId] = newModuleFactory; -/******/ addAllToSet(outdatedModules, result.outdatedModules); -/******/ for (moduleId in result.outdatedDependencies) { -/******/ if (__webpack_require__.o(result.outdatedDependencies, moduleId)) { -/******/ if (!outdatedDependencies[moduleId]) -/******/ outdatedDependencies[moduleId] = []; -/******/ addAllToSet( -/******/ outdatedDependencies[moduleId], -/******/ result.outdatedDependencies[moduleId] -/******/ ); -/******/ } -/******/ } -/******/ } -/******/ if (doDispose) { -/******/ addAllToSet(outdatedModules, [result.moduleId]); -/******/ appliedUpdate[moduleId] = warnUnexpectedRequire; -/******/ } -/******/ } -/******/ } -/******/ currentUpdate = undefined; -/******/ -/******/ // Store self accepted outdated modules to require them later by the module system -/******/ var outdatedSelfAcceptedModules = []; -/******/ for (var j = 0; j < outdatedModules.length; j++) { -/******/ var outdatedModuleId = outdatedModules[j]; -/******/ var module = __webpack_require__.c[outdatedModuleId]; -/******/ if ( -/******/ module && -/******/ (module.hot._selfAccepted || module.hot._main) && -/******/ // removed self-accepted modules should not be required -/******/ appliedUpdate[outdatedModuleId] !== warnUnexpectedRequire && -/******/ // when called invalidate self-accepting is not possible -/******/ !module.hot._selfInvalidated -/******/ ) { -/******/ outdatedSelfAcceptedModules.push({ -/******/ module: outdatedModuleId, -/******/ require: module.hot._requireSelf, -/******/ errorHandler: module.hot._selfAccepted -/******/ }); -/******/ } -/******/ } -/******/ -/******/ var moduleOutdatedDependencies; -/******/ -/******/ return { -/******/ dispose: function () { -/******/ currentUpdateRemovedChunks.forEach(function (chunkId) { -/******/ delete installedChunks[chunkId]; -/******/ }); -/******/ currentUpdateRemovedChunks = undefined; -/******/ -/******/ var idx; -/******/ var queue = outdatedModules.slice(); -/******/ while (queue.length > 0) { -/******/ var moduleId = queue.pop(); -/******/ var module = __webpack_require__.c[moduleId]; -/******/ if (!module) continue; -/******/ -/******/ var data = {}; -/******/ -/******/ // Call dispose handlers -/******/ var disposeHandlers = module.hot._disposeHandlers; -/******/ for (j = 0; j < disposeHandlers.length; j++) { -/******/ disposeHandlers[j].call(null, data); -/******/ } -/******/ __webpack_require__.hmrD[moduleId] = data; -/******/ -/******/ // disable module (this disables requires from this module) -/******/ module.hot.active = false; -/******/ -/******/ // remove module from cache -/******/ delete __webpack_require__.c[moduleId]; -/******/ -/******/ // when disposing there is no need to call dispose handler -/******/ delete outdatedDependencies[moduleId]; -/******/ -/******/ // remove "parents" references from all children -/******/ for (j = 0; j < module.children.length; j++) { -/******/ var child = __webpack_require__.c[module.children[j]]; -/******/ if (!child) continue; -/******/ idx = child.parents.indexOf(moduleId); -/******/ if (idx >= 0) { -/******/ child.parents.splice(idx, 1); -/******/ } -/******/ } -/******/ } -/******/ -/******/ // remove outdated dependency from module children -/******/ var dependency; -/******/ for (var outdatedModuleId in outdatedDependencies) { -/******/ if (__webpack_require__.o(outdatedDependencies, outdatedModuleId)) { -/******/ module = __webpack_require__.c[outdatedModuleId]; -/******/ if (module) { -/******/ moduleOutdatedDependencies = -/******/ outdatedDependencies[outdatedModuleId]; -/******/ for (j = 0; j < moduleOutdatedDependencies.length; j++) { -/******/ dependency = moduleOutdatedDependencies[j]; -/******/ idx = module.children.indexOf(dependency); -/******/ if (idx >= 0) module.children.splice(idx, 1); -/******/ } -/******/ } -/******/ } -/******/ } -/******/ }, -/******/ apply: function (reportError) { -/******/ // insert new code -/******/ for (var updateModuleId in appliedUpdate) { -/******/ if (__webpack_require__.o(appliedUpdate, updateModuleId)) { -/******/ __webpack_require__.m[updateModuleId] = appliedUpdate[updateModuleId]; -/******/ } -/******/ } -/******/ -/******/ // run new runtime modules -/******/ for (var i = 0; i < currentUpdateRuntime.length; i++) { -/******/ currentUpdateRuntime[i](__webpack_require__); -/******/ } -/******/ -/******/ // call accept handlers -/******/ for (var outdatedModuleId in outdatedDependencies) { -/******/ if (__webpack_require__.o(outdatedDependencies, outdatedModuleId)) { -/******/ var module = __webpack_require__.c[outdatedModuleId]; -/******/ if (module) { -/******/ moduleOutdatedDependencies = -/******/ outdatedDependencies[outdatedModuleId]; -/******/ var callbacks = []; -/******/ var errorHandlers = []; -/******/ var dependenciesForCallbacks = []; -/******/ for (var j = 0; j < moduleOutdatedDependencies.length; j++) { -/******/ var dependency = moduleOutdatedDependencies[j]; -/******/ var acceptCallback = -/******/ module.hot._acceptedDependencies[dependency]; -/******/ var errorHandler = -/******/ module.hot._acceptedErrorHandlers[dependency]; -/******/ if (acceptCallback) { -/******/ if (callbacks.indexOf(acceptCallback) !== -1) continue; -/******/ callbacks.push(acceptCallback); -/******/ errorHandlers.push(errorHandler); -/******/ dependenciesForCallbacks.push(dependency); -/******/ } -/******/ } -/******/ for (var k = 0; k < callbacks.length; k++) { -/******/ try { -/******/ callbacks[k].call(null, moduleOutdatedDependencies); -/******/ } catch (err) { -/******/ if (typeof errorHandlers[k] === "function") { -/******/ try { -/******/ errorHandlers[k](err, { -/******/ moduleId: outdatedModuleId, -/******/ dependencyId: dependenciesForCallbacks[k] -/******/ }); -/******/ } catch (err2) { -/******/ if (options.onErrored) { -/******/ options.onErrored({ -/******/ type: "accept-error-handler-errored", -/******/ moduleId: outdatedModuleId, -/******/ dependencyId: dependenciesForCallbacks[k], -/******/ error: err2, -/******/ originalError: err -/******/ }); -/******/ } -/******/ if (!options.ignoreErrored) { -/******/ reportError(err2); -/******/ reportError(err); -/******/ } -/******/ } -/******/ } else { -/******/ if (options.onErrored) { -/******/ options.onErrored({ -/******/ type: "accept-errored", -/******/ moduleId: outdatedModuleId, -/******/ dependencyId: dependenciesForCallbacks[k], -/******/ error: err -/******/ }); -/******/ } -/******/ if (!options.ignoreErrored) { -/******/ reportError(err); -/******/ } -/******/ } -/******/ } -/******/ } -/******/ } -/******/ } -/******/ } -/******/ -/******/ // Load self accepted modules -/******/ for (var o = 0; o < outdatedSelfAcceptedModules.length; o++) { -/******/ var item = outdatedSelfAcceptedModules[o]; -/******/ var moduleId = item.module; -/******/ try { -/******/ item.require(moduleId); -/******/ } catch (err) { -/******/ if (typeof item.errorHandler === "function") { -/******/ try { -/******/ item.errorHandler(err, { -/******/ moduleId: moduleId, -/******/ module: __webpack_require__.c[moduleId] -/******/ }); -/******/ } catch (err2) { -/******/ if (options.onErrored) { -/******/ options.onErrored({ -/******/ type: "self-accept-error-handler-errored", -/******/ moduleId: moduleId, -/******/ error: err2, -/******/ originalError: err -/******/ }); -/******/ } -/******/ if (!options.ignoreErrored) { -/******/ reportError(err2); -/******/ reportError(err); -/******/ } -/******/ } -/******/ } else { -/******/ if (options.onErrored) { -/******/ options.onErrored({ -/******/ type: "self-accept-errored", -/******/ moduleId: moduleId, -/******/ error: err -/******/ }); -/******/ } -/******/ if (!options.ignoreErrored) { -/******/ reportError(err); -/******/ } -/******/ } -/******/ } -/******/ } -/******/ -/******/ return outdatedModules; -/******/ } -/******/ }; -/******/ } -/******/ __webpack_require__.hmrI.jsonp = function (moduleId, applyHandlers) { -/******/ if (!currentUpdate) { -/******/ currentUpdate = {}; -/******/ currentUpdateRuntime = []; -/******/ currentUpdateRemovedChunks = []; -/******/ applyHandlers.push(applyHandler); -/******/ } -/******/ if (!__webpack_require__.o(currentUpdate, moduleId)) { -/******/ currentUpdate[moduleId] = __webpack_require__.m[moduleId]; -/******/ } -/******/ }; -/******/ __webpack_require__.hmrC.jsonp = function ( -/******/ chunkIds, -/******/ removedChunks, -/******/ removedModules, -/******/ promises, -/******/ applyHandlers, -/******/ updatedModulesList -/******/ ) { -/******/ applyHandlers.push(applyHandler); -/******/ currentUpdateChunks = {}; -/******/ currentUpdateRemovedChunks = removedChunks; -/******/ currentUpdate = removedModules.reduce(function (obj, key) { -/******/ obj[key] = false; -/******/ return obj; -/******/ }, {}); -/******/ currentUpdateRuntime = []; -/******/ chunkIds.forEach(function (chunkId) { -/******/ if ( -/******/ __webpack_require__.o(installedChunks, chunkId) && -/******/ installedChunks[chunkId] !== undefined -/******/ ) { -/******/ promises.push(loadUpdateChunk(chunkId, updatedModulesList)); -/******/ currentUpdateChunks[chunkId] = true; -/******/ } -/******/ }); -/******/ if (__webpack_require__.f) { -/******/ __webpack_require__.f.jsonpHmr = function (chunkId, promises) { -/******/ if ( -/******/ currentUpdateChunks && -/******/ !__webpack_require__.o(currentUpdateChunks, chunkId) && -/******/ __webpack_require__.o(installedChunks, chunkId) && -/******/ installedChunks[chunkId] !== undefined -/******/ ) { -/******/ promises.push(loadUpdateChunk(chunkId)); -/******/ currentUpdateChunks[chunkId] = true; -/******/ } -/******/ }; -/******/ } -/******/ }; -/******/ -/******/ __webpack_require__.hmrM = () => { -/******/ if (typeof fetch === "undefined") throw new Error("No browser support: need fetch API"); -/******/ return fetch(__webpack_require__.p + __webpack_require__.hmrF()).then((response) => { -/******/ if(response.status === 404) return; // no update available -/******/ if(!response.ok) throw new Error("Failed to fetch update manifest " + response.statusText); -/******/ return response.json(); -/******/ }); -/******/ }; -/******/ -/******/ // no on chunks loaded -/******/ -/******/ // no jsonp function -/******/ })(); -/******/ -/************************************************************************/ -/******/ -/******/ // module cache are used so entry inlining is disabled -/******/ // startup -/******/ // Load entry module and return exports -/******/ var __webpack_exports__ = __webpack_require__(0); -/******/ -/******/ })() -; \ No newline at end of file diff --git a/test/cases/insert-function/expected/webpack-5-importModule/1.css b/test/cases/insert-function/expected/1.css similarity index 100% rename from test/cases/insert-function/expected/webpack-5-importModule/1.css rename to test/cases/insert-function/expected/1.css diff --git a/test/cases/insert-function/expected/webpack-5-importModule/1.js b/test/cases/insert-function/expected/1.js similarity index 100% rename from test/cases/insert-function/expected/webpack-5-importModule/1.js rename to test/cases/insert-function/expected/1.js diff --git a/test/cases/insert-function/expected/webpack-5-importModule/main.js b/test/cases/insert-function/expected/main.js similarity index 100% rename from test/cases/insert-function/expected/webpack-5-importModule/main.js rename to test/cases/insert-function/expected/main.js diff --git a/test/cases/insert-function/expected/webpack-5/main.js b/test/cases/insert-function/expected/webpack-5/main.js deleted file mode 100644 index 98c4fdfa..00000000 --- a/test/cases/insert-function/expected/webpack-5/main.js +++ /dev/null @@ -1,331 +0,0 @@ -/******/ (() => { // webpackBootstrap -/******/ var __webpack_modules__ = ({}); -/************************************************************************/ -/******/ // The module cache -/******/ var __webpack_module_cache__ = {}; -/******/ -/******/ // The require function -/******/ function __webpack_require__(moduleId) { -/******/ // Check if module is in cache -/******/ var cachedModule = __webpack_module_cache__[moduleId]; -/******/ if (cachedModule !== undefined) { -/******/ return cachedModule.exports; -/******/ } -/******/ // Create a new module (and put it into the cache) -/******/ var module = __webpack_module_cache__[moduleId] = { -/******/ // no module.id needed -/******/ // no module.loaded needed -/******/ exports: {} -/******/ }; -/******/ -/******/ // Execute the module function -/******/ __webpack_modules__[moduleId](module, module.exports, __webpack_require__); -/******/ -/******/ // Return the exports of the module -/******/ return module.exports; -/******/ } -/******/ -/******/ // expose the modules object (__webpack_modules__) -/******/ __webpack_require__.m = __webpack_modules__; -/******/ -/************************************************************************/ -/******/ /* webpack/runtime/ensure chunk */ -/******/ (() => { -/******/ __webpack_require__.f = {}; -/******/ // This file contains only the entry chunk. -/******/ // The chunk loading function for additional chunks -/******/ __webpack_require__.e = (chunkId) => { -/******/ return Promise.all(Object.keys(__webpack_require__.f).reduce((promises, key) => { -/******/ __webpack_require__.f[key](chunkId, promises); -/******/ return promises; -/******/ }, [])); -/******/ }; -/******/ })(); -/******/ -/******/ /* webpack/runtime/get javascript chunk filename */ -/******/ (() => { -/******/ // This function allow to reference async chunks -/******/ __webpack_require__.u = (chunkId) => { -/******/ // return url for filenames based on template -/******/ return "" + chunkId + ".js"; -/******/ }; -/******/ })(); -/******/ -/******/ /* webpack/runtime/get mini-css chunk filename */ -/******/ (() => { -/******/ // This function allow to reference all chunks -/******/ __webpack_require__.miniCssF = (chunkId) => { -/******/ // return url for filenames based on template -/******/ return "" + chunkId + ".css"; -/******/ }; -/******/ })(); -/******/ -/******/ /* webpack/runtime/global */ -/******/ (() => { -/******/ __webpack_require__.g = (function() { -/******/ if (typeof globalThis === 'object') return globalThis; -/******/ try { -/******/ return this || new Function('return this')(); -/******/ } catch (e) { -/******/ if (typeof window === 'object') return window; -/******/ } -/******/ })(); -/******/ })(); -/******/ -/******/ /* webpack/runtime/hasOwnProperty shorthand */ -/******/ (() => { -/******/ __webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop)) -/******/ })(); -/******/ -/******/ /* webpack/runtime/load script */ -/******/ (() => { -/******/ var inProgress = {}; -/******/ // data-webpack is not used as build has no uniqueName -/******/ // loadScript function to load a script via script tag -/******/ __webpack_require__.l = (url, done, key, chunkId) => { -/******/ if(inProgress[url]) { inProgress[url].push(done); return; } -/******/ var script, needAttach; -/******/ if(key !== undefined) { -/******/ var scripts = document.getElementsByTagName("script"); -/******/ for(var i = 0; i < scripts.length; i++) { -/******/ var s = scripts[i]; -/******/ if(s.getAttribute("src") == url) { script = s; break; } -/******/ } -/******/ } -/******/ if(!script) { -/******/ needAttach = true; -/******/ script = document.createElement('script'); -/******/ -/******/ script.charset = 'utf-8'; -/******/ script.timeout = 120; -/******/ if (__webpack_require__.nc) { -/******/ script.setAttribute("nonce", __webpack_require__.nc); -/******/ } -/******/ -/******/ script.src = url; -/******/ } -/******/ inProgress[url] = [done]; -/******/ var onScriptComplete = (prev, event) => { -/******/ // avoid mem leaks in IE. -/******/ script.onerror = script.onload = null; -/******/ clearTimeout(timeout); -/******/ var doneFns = inProgress[url]; -/******/ delete inProgress[url]; -/******/ script.parentNode && script.parentNode.removeChild(script); -/******/ doneFns && doneFns.forEach((fn) => (fn(event))); -/******/ if(prev) return prev(event); -/******/ } -/******/ ; -/******/ var timeout = setTimeout(onScriptComplete.bind(null, undefined, { type: 'timeout', target: script }), 120000); -/******/ script.onerror = onScriptComplete.bind(null, script.onerror); -/******/ script.onload = onScriptComplete.bind(null, script.onload); -/******/ needAttach && document.head.appendChild(script); -/******/ }; -/******/ })(); -/******/ -/******/ /* webpack/runtime/make namespace object */ -/******/ (() => { -/******/ // define __esModule on exports -/******/ __webpack_require__.r = (exports) => { -/******/ if(typeof Symbol !== 'undefined' && Symbol.toStringTag) { -/******/ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' }); -/******/ } -/******/ Object.defineProperty(exports, '__esModule', { value: true }); -/******/ }; -/******/ })(); -/******/ -/******/ /* webpack/runtime/publicPath */ -/******/ (() => { -/******/ var scriptUrl; -/******/ if (__webpack_require__.g.importScripts) scriptUrl = __webpack_require__.g.location + ""; -/******/ var document = __webpack_require__.g.document; -/******/ if (!scriptUrl && document) { -/******/ if (document.currentScript) -/******/ scriptUrl = document.currentScript.src -/******/ if (!scriptUrl) { -/******/ var scripts = document.getElementsByTagName("script"); -/******/ if(scripts.length) scriptUrl = scripts[scripts.length - 1].src -/******/ } -/******/ } -/******/ // When supporting browsers where an automatic publicPath is not supported you must specify an output.publicPath manually via configuration -/******/ // or pass an empty string ("") and set the __webpack_public_path__ variable from your code to use your own logic. -/******/ if (!scriptUrl) throw new Error("Automatic publicPath is not supported in this browser"); -/******/ scriptUrl = scriptUrl.replace(/#.*$/, "").replace(/\?.*$/, "").replace(/\/[^\/]+$/, "/"); -/******/ __webpack_require__.p = scriptUrl; -/******/ })(); -/******/ -/******/ /* webpack/runtime/css loading */ -/******/ (() => { -/******/ var createStylesheet = (chunkId, fullhref, resolve, reject) => { -/******/ var linkTag = document.createElement("link"); -/******/ -/******/ linkTag.rel = "stylesheet"; -/******/ linkTag.type = "text/css"; -/******/ var onLinkComplete = (event) => { -/******/ // avoid mem leaks. -/******/ linkTag.onerror = linkTag.onload = null; -/******/ if (event.type === 'load') { -/******/ resolve(); -/******/ } else { -/******/ var errorType = event && (event.type === 'load' ? 'missing' : event.type); -/******/ var realHref = event && event.target && event.target.href || fullhref; -/******/ var err = new Error("Loading CSS chunk " + chunkId + " failed.\n(" + realHref + ")"); -/******/ err.code = "CSS_CHUNK_LOAD_FAILED"; -/******/ err.type = errorType; -/******/ err.request = realHref; -/******/ linkTag.parentNode.removeChild(linkTag) -/******/ reject(err); -/******/ } -/******/ } -/******/ linkTag.onerror = linkTag.onload = onLinkComplete; -/******/ linkTag.href = fullhref; -/******/ -/******/ (function (linkTag) { -/******/ const reference = document.querySelector(".hot-reload"); -/******/ -/******/ if (reference) { -/******/ reference.parentNode.insertBefore(linkTag, reference); -/******/ } -/******/ })(linkTag) -/******/ return linkTag; -/******/ }; -/******/ var findStylesheet = (href, fullhref) => { -/******/ var existingLinkTags = document.getElementsByTagName("link"); -/******/ for(var i = 0; i < existingLinkTags.length; i++) { -/******/ var tag = existingLinkTags[i]; -/******/ var dataHref = tag.getAttribute("data-href") || tag.getAttribute("href"); -/******/ if(tag.rel === "stylesheet" && (dataHref === href || dataHref === fullhref)) return tag; -/******/ } -/******/ var existingStyleTags = document.getElementsByTagName("style"); -/******/ for(var i = 0; i < existingStyleTags.length; i++) { -/******/ var tag = existingStyleTags[i]; -/******/ var dataHref = tag.getAttribute("data-href"); -/******/ if(dataHref === href || dataHref === fullhref) return tag; -/******/ } -/******/ }; -/******/ var loadStylesheet = (chunkId) => { -/******/ return new Promise((resolve, reject) => { -/******/ var href = __webpack_require__.miniCssF(chunkId); -/******/ var fullhref = __webpack_require__.p + href; -/******/ if(findStylesheet(href, fullhref)) return resolve(); -/******/ createStylesheet(chunkId, fullhref, resolve, reject); -/******/ }); -/******/ } -/******/ // object to store loaded CSS chunks -/******/ var installedCssChunks = { -/******/ 0: 0 -/******/ }; -/******/ -/******/ __webpack_require__.f.miniCss = (chunkId, promises) => { -/******/ var cssChunks = {"1":1}; -/******/ if(installedCssChunks[chunkId]) promises.push(installedCssChunks[chunkId]); -/******/ else if(installedCssChunks[chunkId] !== 0 && cssChunks[chunkId]) { -/******/ promises.push(installedCssChunks[chunkId] = loadStylesheet(chunkId).then(() => { -/******/ installedCssChunks[chunkId] = 0; -/******/ }, (e) => { -/******/ delete installedCssChunks[chunkId]; -/******/ throw e; -/******/ })); -/******/ } -/******/ }; -/******/ -/******/ // no hmr -/******/ })(); -/******/ -/******/ /* webpack/runtime/jsonp chunk loading */ -/******/ (() => { -/******/ // no baseURI -/******/ -/******/ // object to store loaded and loading chunks -/******/ // undefined = chunk not loaded, null = chunk preloaded/prefetched -/******/ // [resolve, reject, Promise] = chunk loading, 0 = chunk loaded -/******/ var installedChunks = { -/******/ 0: 0 -/******/ }; -/******/ -/******/ __webpack_require__.f.j = (chunkId, promises) => { -/******/ // JSONP chunk loading for javascript -/******/ var installedChunkData = __webpack_require__.o(installedChunks, chunkId) ? installedChunks[chunkId] : undefined; -/******/ if(installedChunkData !== 0) { // 0 means "already installed". -/******/ -/******/ // a Promise means "currently loading". -/******/ if(installedChunkData) { -/******/ promises.push(installedChunkData[2]); -/******/ } else { -/******/ if(true) { // all chunks have JS -/******/ // setup Promise in chunk cache -/******/ var promise = new Promise((resolve, reject) => (installedChunkData = installedChunks[chunkId] = [resolve, reject])); -/******/ promises.push(installedChunkData[2] = promise); -/******/ -/******/ // start chunk loading -/******/ var url = __webpack_require__.p + __webpack_require__.u(chunkId); -/******/ // create error before stack unwound to get useful stacktrace later -/******/ var error = new Error(); -/******/ var loadingEnded = (event) => { -/******/ if(__webpack_require__.o(installedChunks, chunkId)) { -/******/ installedChunkData = installedChunks[chunkId]; -/******/ if(installedChunkData !== 0) installedChunks[chunkId] = undefined; -/******/ if(installedChunkData) { -/******/ var errorType = event && (event.type === 'load' ? 'missing' : event.type); -/******/ var realSrc = event && event.target && event.target.src; -/******/ error.message = 'Loading chunk ' + chunkId + ' failed.\n(' + errorType + ': ' + realSrc + ')'; -/******/ error.name = 'ChunkLoadError'; -/******/ error.type = errorType; -/******/ error.request = realSrc; -/******/ installedChunkData[1](error); -/******/ } -/******/ } -/******/ }; -/******/ __webpack_require__.l(url, loadingEnded, "chunk-" + chunkId, chunkId); -/******/ } else installedChunks[chunkId] = 0; -/******/ } -/******/ } -/******/ }; -/******/ -/******/ // no prefetching -/******/ -/******/ // no preloaded -/******/ -/******/ // no HMR -/******/ -/******/ // no HMR manifest -/******/ -/******/ // no on chunks loaded -/******/ -/******/ // install a JSONP callback for chunk loading -/******/ var webpackJsonpCallback = (parentChunkLoadingFunction, data) => { -/******/ var [chunkIds, moreModules, runtime] = data; -/******/ // add "moreModules" to the modules object, -/******/ // then flag all "chunkIds" as loaded and fire callback -/******/ var moduleId, chunkId, i = 0; -/******/ for(moduleId in moreModules) { -/******/ if(__webpack_require__.o(moreModules, moduleId)) { -/******/ __webpack_require__.m[moduleId] = moreModules[moduleId]; -/******/ } -/******/ } -/******/ if(runtime) var result = runtime(__webpack_require__); -/******/ if(parentChunkLoadingFunction) parentChunkLoadingFunction(data); -/******/ for(;i < chunkIds.length; i++) { -/******/ chunkId = chunkIds[i]; -/******/ if(__webpack_require__.o(installedChunks, chunkId) && installedChunks[chunkId]) { -/******/ installedChunks[chunkId][0](); -/******/ } -/******/ installedChunks[chunkIds[i]] = 0; -/******/ } -/******/ -/******/ } -/******/ -/******/ var chunkLoadingGlobal = self["webpackChunk"] = self["webpackChunk"] || []; -/******/ chunkLoadingGlobal.forEach(webpackJsonpCallback.bind(null, 0)); -/******/ chunkLoadingGlobal.push = webpackJsonpCallback.bind(null, chunkLoadingGlobal.push.bind(chunkLoadingGlobal)); -/******/ })(); -/******/ -/************************************************************************/ -var __webpack_exports__ = {}; -/* eslint-env browser */ - -// eslint-disable-next-line -__webpack_require__.e(/* import() */ 1).then(__webpack_require__.bind(__webpack_require__, 1)); - -/******/ })() -; \ No newline at end of file diff --git a/test/cases/insert-function/expected/webpack-5/1.css b/test/cases/insert-string/expected/1.css similarity index 100% rename from test/cases/insert-function/expected/webpack-5/1.css rename to test/cases/insert-string/expected/1.css diff --git a/test/cases/insert-function/expected/webpack-5/1.js b/test/cases/insert-string/expected/1.js similarity index 100% rename from test/cases/insert-function/expected/webpack-5/1.js rename to test/cases/insert-string/expected/1.js diff --git a/test/cases/insert-string/expected/webpack-5-importModule/main.js b/test/cases/insert-string/expected/main.js similarity index 100% rename from test/cases/insert-string/expected/webpack-5-importModule/main.js rename to test/cases/insert-string/expected/main.js diff --git a/test/cases/insert-string/expected/webpack-5/1.css b/test/cases/insert-string/expected/webpack-5/1.css deleted file mode 100644 index cebc5c1c..00000000 --- a/test/cases/insert-string/expected/webpack-5/1.css +++ /dev/null @@ -1,4 +0,0 @@ -body { - background: red; -} - diff --git a/test/cases/insert-string/expected/webpack-5/1.js b/test/cases/insert-string/expected/webpack-5/1.js deleted file mode 100644 index df8cbd2a..00000000 --- a/test/cases/insert-string/expected/webpack-5/1.js +++ /dev/null @@ -1,12 +0,0 @@ -(self["webpackChunk"] = self["webpackChunk"] || []).push([[1],[ -/* 0 */, -/* 1 */ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -// extracted by mini-css-extract-plugin - - -/***/ }) -]]); \ No newline at end of file diff --git a/test/cases/insert-string/expected/webpack-5/main.js b/test/cases/insert-string/expected/webpack-5/main.js deleted file mode 100644 index 3d10e93f..00000000 --- a/test/cases/insert-string/expected/webpack-5/main.js +++ /dev/null @@ -1,326 +0,0 @@ -/******/ (() => { // webpackBootstrap -/******/ var __webpack_modules__ = ({}); -/************************************************************************/ -/******/ // The module cache -/******/ var __webpack_module_cache__ = {}; -/******/ -/******/ // The require function -/******/ function __webpack_require__(moduleId) { -/******/ // Check if module is in cache -/******/ var cachedModule = __webpack_module_cache__[moduleId]; -/******/ if (cachedModule !== undefined) { -/******/ return cachedModule.exports; -/******/ } -/******/ // Create a new module (and put it into the cache) -/******/ var module = __webpack_module_cache__[moduleId] = { -/******/ // no module.id needed -/******/ // no module.loaded needed -/******/ exports: {} -/******/ }; -/******/ -/******/ // Execute the module function -/******/ __webpack_modules__[moduleId](module, module.exports, __webpack_require__); -/******/ -/******/ // Return the exports of the module -/******/ return module.exports; -/******/ } -/******/ -/******/ // expose the modules object (__webpack_modules__) -/******/ __webpack_require__.m = __webpack_modules__; -/******/ -/************************************************************************/ -/******/ /* webpack/runtime/ensure chunk */ -/******/ (() => { -/******/ __webpack_require__.f = {}; -/******/ // This file contains only the entry chunk. -/******/ // The chunk loading function for additional chunks -/******/ __webpack_require__.e = (chunkId) => { -/******/ return Promise.all(Object.keys(__webpack_require__.f).reduce((promises, key) => { -/******/ __webpack_require__.f[key](chunkId, promises); -/******/ return promises; -/******/ }, [])); -/******/ }; -/******/ })(); -/******/ -/******/ /* webpack/runtime/get javascript chunk filename */ -/******/ (() => { -/******/ // This function allow to reference async chunks -/******/ __webpack_require__.u = (chunkId) => { -/******/ // return url for filenames based on template -/******/ return "" + chunkId + ".js"; -/******/ }; -/******/ })(); -/******/ -/******/ /* webpack/runtime/get mini-css chunk filename */ -/******/ (() => { -/******/ // This function allow to reference all chunks -/******/ __webpack_require__.miniCssF = (chunkId) => { -/******/ // return url for filenames based on template -/******/ return "" + chunkId + ".css"; -/******/ }; -/******/ })(); -/******/ -/******/ /* webpack/runtime/global */ -/******/ (() => { -/******/ __webpack_require__.g = (function() { -/******/ if (typeof globalThis === 'object') return globalThis; -/******/ try { -/******/ return this || new Function('return this')(); -/******/ } catch (e) { -/******/ if (typeof window === 'object') return window; -/******/ } -/******/ })(); -/******/ })(); -/******/ -/******/ /* webpack/runtime/hasOwnProperty shorthand */ -/******/ (() => { -/******/ __webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop)) -/******/ })(); -/******/ -/******/ /* webpack/runtime/load script */ -/******/ (() => { -/******/ var inProgress = {}; -/******/ // data-webpack is not used as build has no uniqueName -/******/ // loadScript function to load a script via script tag -/******/ __webpack_require__.l = (url, done, key, chunkId) => { -/******/ if(inProgress[url]) { inProgress[url].push(done); return; } -/******/ var script, needAttach; -/******/ if(key !== undefined) { -/******/ var scripts = document.getElementsByTagName("script"); -/******/ for(var i = 0; i < scripts.length; i++) { -/******/ var s = scripts[i]; -/******/ if(s.getAttribute("src") == url) { script = s; break; } -/******/ } -/******/ } -/******/ if(!script) { -/******/ needAttach = true; -/******/ script = document.createElement('script'); -/******/ -/******/ script.charset = 'utf-8'; -/******/ script.timeout = 120; -/******/ if (__webpack_require__.nc) { -/******/ script.setAttribute("nonce", __webpack_require__.nc); -/******/ } -/******/ -/******/ script.src = url; -/******/ } -/******/ inProgress[url] = [done]; -/******/ var onScriptComplete = (prev, event) => { -/******/ // avoid mem leaks in IE. -/******/ script.onerror = script.onload = null; -/******/ clearTimeout(timeout); -/******/ var doneFns = inProgress[url]; -/******/ delete inProgress[url]; -/******/ script.parentNode && script.parentNode.removeChild(script); -/******/ doneFns && doneFns.forEach((fn) => (fn(event))); -/******/ if(prev) return prev(event); -/******/ } -/******/ ; -/******/ var timeout = setTimeout(onScriptComplete.bind(null, undefined, { type: 'timeout', target: script }), 120000); -/******/ script.onerror = onScriptComplete.bind(null, script.onerror); -/******/ script.onload = onScriptComplete.bind(null, script.onload); -/******/ needAttach && document.head.appendChild(script); -/******/ }; -/******/ })(); -/******/ -/******/ /* webpack/runtime/make namespace object */ -/******/ (() => { -/******/ // define __esModule on exports -/******/ __webpack_require__.r = (exports) => { -/******/ if(typeof Symbol !== 'undefined' && Symbol.toStringTag) { -/******/ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' }); -/******/ } -/******/ Object.defineProperty(exports, '__esModule', { value: true }); -/******/ }; -/******/ })(); -/******/ -/******/ /* webpack/runtime/publicPath */ -/******/ (() => { -/******/ var scriptUrl; -/******/ if (__webpack_require__.g.importScripts) scriptUrl = __webpack_require__.g.location + ""; -/******/ var document = __webpack_require__.g.document; -/******/ if (!scriptUrl && document) { -/******/ if (document.currentScript) -/******/ scriptUrl = document.currentScript.src -/******/ if (!scriptUrl) { -/******/ var scripts = document.getElementsByTagName("script"); -/******/ if(scripts.length) scriptUrl = scripts[scripts.length - 1].src -/******/ } -/******/ } -/******/ // When supporting browsers where an automatic publicPath is not supported you must specify an output.publicPath manually via configuration -/******/ // or pass an empty string ("") and set the __webpack_public_path__ variable from your code to use your own logic. -/******/ if (!scriptUrl) throw new Error("Automatic publicPath is not supported in this browser"); -/******/ scriptUrl = scriptUrl.replace(/#.*$/, "").replace(/\?.*$/, "").replace(/\/[^\/]+$/, "/"); -/******/ __webpack_require__.p = scriptUrl; -/******/ })(); -/******/ -/******/ /* webpack/runtime/css loading */ -/******/ (() => { -/******/ var createStylesheet = (chunkId, fullhref, resolve, reject) => { -/******/ var linkTag = document.createElement("link"); -/******/ -/******/ linkTag.rel = "stylesheet"; -/******/ linkTag.type = "text/css"; -/******/ var onLinkComplete = (event) => { -/******/ // avoid mem leaks. -/******/ linkTag.onerror = linkTag.onload = null; -/******/ if (event.type === 'load') { -/******/ resolve(); -/******/ } else { -/******/ var errorType = event && (event.type === 'load' ? 'missing' : event.type); -/******/ var realHref = event && event.target && event.target.href || fullhref; -/******/ var err = new Error("Loading CSS chunk " + chunkId + " failed.\n(" + realHref + ")"); -/******/ err.code = "CSS_CHUNK_LOAD_FAILED"; -/******/ err.type = errorType; -/******/ err.request = realHref; -/******/ linkTag.parentNode.removeChild(linkTag) -/******/ reject(err); -/******/ } -/******/ } -/******/ linkTag.onerror = linkTag.onload = onLinkComplete; -/******/ linkTag.href = fullhref; -/******/ -/******/ var target = document.querySelector("script[src='1.js']"); -/******/ target.parentNode.insertBefore(linkTag, target.nextSibling); -/******/ return linkTag; -/******/ }; -/******/ var findStylesheet = (href, fullhref) => { -/******/ var existingLinkTags = document.getElementsByTagName("link"); -/******/ for(var i = 0; i < existingLinkTags.length; i++) { -/******/ var tag = existingLinkTags[i]; -/******/ var dataHref = tag.getAttribute("data-href") || tag.getAttribute("href"); -/******/ if(tag.rel === "stylesheet" && (dataHref === href || dataHref === fullhref)) return tag; -/******/ } -/******/ var existingStyleTags = document.getElementsByTagName("style"); -/******/ for(var i = 0; i < existingStyleTags.length; i++) { -/******/ var tag = existingStyleTags[i]; -/******/ var dataHref = tag.getAttribute("data-href"); -/******/ if(dataHref === href || dataHref === fullhref) return tag; -/******/ } -/******/ }; -/******/ var loadStylesheet = (chunkId) => { -/******/ return new Promise((resolve, reject) => { -/******/ var href = __webpack_require__.miniCssF(chunkId); -/******/ var fullhref = __webpack_require__.p + href; -/******/ if(findStylesheet(href, fullhref)) return resolve(); -/******/ createStylesheet(chunkId, fullhref, resolve, reject); -/******/ }); -/******/ } -/******/ // object to store loaded CSS chunks -/******/ var installedCssChunks = { -/******/ 0: 0 -/******/ }; -/******/ -/******/ __webpack_require__.f.miniCss = (chunkId, promises) => { -/******/ var cssChunks = {"1":1}; -/******/ if(installedCssChunks[chunkId]) promises.push(installedCssChunks[chunkId]); -/******/ else if(installedCssChunks[chunkId] !== 0 && cssChunks[chunkId]) { -/******/ promises.push(installedCssChunks[chunkId] = loadStylesheet(chunkId).then(() => { -/******/ installedCssChunks[chunkId] = 0; -/******/ }, (e) => { -/******/ delete installedCssChunks[chunkId]; -/******/ throw e; -/******/ })); -/******/ } -/******/ }; -/******/ -/******/ // no hmr -/******/ })(); -/******/ -/******/ /* webpack/runtime/jsonp chunk loading */ -/******/ (() => { -/******/ // no baseURI -/******/ -/******/ // object to store loaded and loading chunks -/******/ // undefined = chunk not loaded, null = chunk preloaded/prefetched -/******/ // [resolve, reject, Promise] = chunk loading, 0 = chunk loaded -/******/ var installedChunks = { -/******/ 0: 0 -/******/ }; -/******/ -/******/ __webpack_require__.f.j = (chunkId, promises) => { -/******/ // JSONP chunk loading for javascript -/******/ var installedChunkData = __webpack_require__.o(installedChunks, chunkId) ? installedChunks[chunkId] : undefined; -/******/ if(installedChunkData !== 0) { // 0 means "already installed". -/******/ -/******/ // a Promise means "currently loading". -/******/ if(installedChunkData) { -/******/ promises.push(installedChunkData[2]); -/******/ } else { -/******/ if(true) { // all chunks have JS -/******/ // setup Promise in chunk cache -/******/ var promise = new Promise((resolve, reject) => (installedChunkData = installedChunks[chunkId] = [resolve, reject])); -/******/ promises.push(installedChunkData[2] = promise); -/******/ -/******/ // start chunk loading -/******/ var url = __webpack_require__.p + __webpack_require__.u(chunkId); -/******/ // create error before stack unwound to get useful stacktrace later -/******/ var error = new Error(); -/******/ var loadingEnded = (event) => { -/******/ if(__webpack_require__.o(installedChunks, chunkId)) { -/******/ installedChunkData = installedChunks[chunkId]; -/******/ if(installedChunkData !== 0) installedChunks[chunkId] = undefined; -/******/ if(installedChunkData) { -/******/ var errorType = event && (event.type === 'load' ? 'missing' : event.type); -/******/ var realSrc = event && event.target && event.target.src; -/******/ error.message = 'Loading chunk ' + chunkId + ' failed.\n(' + errorType + ': ' + realSrc + ')'; -/******/ error.name = 'ChunkLoadError'; -/******/ error.type = errorType; -/******/ error.request = realSrc; -/******/ installedChunkData[1](error); -/******/ } -/******/ } -/******/ }; -/******/ __webpack_require__.l(url, loadingEnded, "chunk-" + chunkId, chunkId); -/******/ } else installedChunks[chunkId] = 0; -/******/ } -/******/ } -/******/ }; -/******/ -/******/ // no prefetching -/******/ -/******/ // no preloaded -/******/ -/******/ // no HMR -/******/ -/******/ // no HMR manifest -/******/ -/******/ // no on chunks loaded -/******/ -/******/ // install a JSONP callback for chunk loading -/******/ var webpackJsonpCallback = (parentChunkLoadingFunction, data) => { -/******/ var [chunkIds, moreModules, runtime] = data; -/******/ // add "moreModules" to the modules object, -/******/ // then flag all "chunkIds" as loaded and fire callback -/******/ var moduleId, chunkId, i = 0; -/******/ for(moduleId in moreModules) { -/******/ if(__webpack_require__.o(moreModules, moduleId)) { -/******/ __webpack_require__.m[moduleId] = moreModules[moduleId]; -/******/ } -/******/ } -/******/ if(runtime) var result = runtime(__webpack_require__); -/******/ if(parentChunkLoadingFunction) parentChunkLoadingFunction(data); -/******/ for(;i < chunkIds.length; i++) { -/******/ chunkId = chunkIds[i]; -/******/ if(__webpack_require__.o(installedChunks, chunkId) && installedChunks[chunkId]) { -/******/ installedChunks[chunkId][0](); -/******/ } -/******/ installedChunks[chunkIds[i]] = 0; -/******/ } -/******/ -/******/ } -/******/ -/******/ var chunkLoadingGlobal = self["webpackChunk"] = self["webpackChunk"] || []; -/******/ chunkLoadingGlobal.forEach(webpackJsonpCallback.bind(null, 0)); -/******/ chunkLoadingGlobal.push = webpackJsonpCallback.bind(null, chunkLoadingGlobal.push.bind(chunkLoadingGlobal)); -/******/ })(); -/******/ -/************************************************************************/ -var __webpack_exports__ = {}; -/* eslint-env browser */ - -// eslint-disable-next-line -__webpack_require__.e(/* import() */ 1).then(__webpack_require__.bind(__webpack_require__, 1)); - -/******/ })() -; \ No newline at end of file diff --git a/test/cases/insert-string/expected/webpack-5-importModule/1.css b/test/cases/insert-undefined/expected/1.css similarity index 100% rename from test/cases/insert-string/expected/webpack-5-importModule/1.css rename to test/cases/insert-undefined/expected/1.css diff --git a/test/cases/insert-string/expected/webpack-5-importModule/1.js b/test/cases/insert-undefined/expected/1.js similarity index 100% rename from test/cases/insert-string/expected/webpack-5-importModule/1.js rename to test/cases/insert-undefined/expected/1.js diff --git a/test/cases/insert-undefined/expected/webpack-5-importModule/main.js b/test/cases/insert-undefined/expected/main.js similarity index 100% rename from test/cases/insert-undefined/expected/webpack-5-importModule/main.js rename to test/cases/insert-undefined/expected/main.js diff --git a/test/cases/insert-undefined/expected/webpack-5-importModule/1.css b/test/cases/insert-undefined/expected/webpack-5-importModule/1.css deleted file mode 100644 index cebc5c1c..00000000 --- a/test/cases/insert-undefined/expected/webpack-5-importModule/1.css +++ /dev/null @@ -1,4 +0,0 @@ -body { - background: red; -} - diff --git a/test/cases/insert-undefined/expected/webpack-5-importModule/1.js b/test/cases/insert-undefined/expected/webpack-5-importModule/1.js deleted file mode 100644 index df8cbd2a..00000000 --- a/test/cases/insert-undefined/expected/webpack-5-importModule/1.js +++ /dev/null @@ -1,12 +0,0 @@ -(self["webpackChunk"] = self["webpackChunk"] || []).push([[1],[ -/* 0 */, -/* 1 */ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -// extracted by mini-css-extract-plugin - - -/***/ }) -]]); \ No newline at end of file diff --git a/test/cases/insert-undefined/expected/webpack-5/1.css b/test/cases/insert-undefined/expected/webpack-5/1.css deleted file mode 100644 index cebc5c1c..00000000 --- a/test/cases/insert-undefined/expected/webpack-5/1.css +++ /dev/null @@ -1,4 +0,0 @@ -body { - background: red; -} - diff --git a/test/cases/insert-undefined/expected/webpack-5/1.js b/test/cases/insert-undefined/expected/webpack-5/1.js deleted file mode 100644 index df8cbd2a..00000000 --- a/test/cases/insert-undefined/expected/webpack-5/1.js +++ /dev/null @@ -1,12 +0,0 @@ -(self["webpackChunk"] = self["webpackChunk"] || []).push([[1],[ -/* 0 */, -/* 1 */ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -// extracted by mini-css-extract-plugin - - -/***/ }) -]]); \ No newline at end of file diff --git a/test/cases/insert-undefined/expected/webpack-5/main.js b/test/cases/insert-undefined/expected/webpack-5/main.js deleted file mode 100644 index 54f0a25e..00000000 --- a/test/cases/insert-undefined/expected/webpack-5/main.js +++ /dev/null @@ -1,325 +0,0 @@ -/******/ (() => { // webpackBootstrap -/******/ var __webpack_modules__ = ({}); -/************************************************************************/ -/******/ // The module cache -/******/ var __webpack_module_cache__ = {}; -/******/ -/******/ // The require function -/******/ function __webpack_require__(moduleId) { -/******/ // Check if module is in cache -/******/ var cachedModule = __webpack_module_cache__[moduleId]; -/******/ if (cachedModule !== undefined) { -/******/ return cachedModule.exports; -/******/ } -/******/ // Create a new module (and put it into the cache) -/******/ var module = __webpack_module_cache__[moduleId] = { -/******/ // no module.id needed -/******/ // no module.loaded needed -/******/ exports: {} -/******/ }; -/******/ -/******/ // Execute the module function -/******/ __webpack_modules__[moduleId](module, module.exports, __webpack_require__); -/******/ -/******/ // Return the exports of the module -/******/ return module.exports; -/******/ } -/******/ -/******/ // expose the modules object (__webpack_modules__) -/******/ __webpack_require__.m = __webpack_modules__; -/******/ -/************************************************************************/ -/******/ /* webpack/runtime/ensure chunk */ -/******/ (() => { -/******/ __webpack_require__.f = {}; -/******/ // This file contains only the entry chunk. -/******/ // The chunk loading function for additional chunks -/******/ __webpack_require__.e = (chunkId) => { -/******/ return Promise.all(Object.keys(__webpack_require__.f).reduce((promises, key) => { -/******/ __webpack_require__.f[key](chunkId, promises); -/******/ return promises; -/******/ }, [])); -/******/ }; -/******/ })(); -/******/ -/******/ /* webpack/runtime/get javascript chunk filename */ -/******/ (() => { -/******/ // This function allow to reference async chunks -/******/ __webpack_require__.u = (chunkId) => { -/******/ // return url for filenames based on template -/******/ return "" + chunkId + ".js"; -/******/ }; -/******/ })(); -/******/ -/******/ /* webpack/runtime/get mini-css chunk filename */ -/******/ (() => { -/******/ // This function allow to reference all chunks -/******/ __webpack_require__.miniCssF = (chunkId) => { -/******/ // return url for filenames based on template -/******/ return "" + chunkId + ".css"; -/******/ }; -/******/ })(); -/******/ -/******/ /* webpack/runtime/global */ -/******/ (() => { -/******/ __webpack_require__.g = (function() { -/******/ if (typeof globalThis === 'object') return globalThis; -/******/ try { -/******/ return this || new Function('return this')(); -/******/ } catch (e) { -/******/ if (typeof window === 'object') return window; -/******/ } -/******/ })(); -/******/ })(); -/******/ -/******/ /* webpack/runtime/hasOwnProperty shorthand */ -/******/ (() => { -/******/ __webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop)) -/******/ })(); -/******/ -/******/ /* webpack/runtime/load script */ -/******/ (() => { -/******/ var inProgress = {}; -/******/ // data-webpack is not used as build has no uniqueName -/******/ // loadScript function to load a script via script tag -/******/ __webpack_require__.l = (url, done, key, chunkId) => { -/******/ if(inProgress[url]) { inProgress[url].push(done); return; } -/******/ var script, needAttach; -/******/ if(key !== undefined) { -/******/ var scripts = document.getElementsByTagName("script"); -/******/ for(var i = 0; i < scripts.length; i++) { -/******/ var s = scripts[i]; -/******/ if(s.getAttribute("src") == url) { script = s; break; } -/******/ } -/******/ } -/******/ if(!script) { -/******/ needAttach = true; -/******/ script = document.createElement('script'); -/******/ -/******/ script.charset = 'utf-8'; -/******/ script.timeout = 120; -/******/ if (__webpack_require__.nc) { -/******/ script.setAttribute("nonce", __webpack_require__.nc); -/******/ } -/******/ -/******/ script.src = url; -/******/ } -/******/ inProgress[url] = [done]; -/******/ var onScriptComplete = (prev, event) => { -/******/ // avoid mem leaks in IE. -/******/ script.onerror = script.onload = null; -/******/ clearTimeout(timeout); -/******/ var doneFns = inProgress[url]; -/******/ delete inProgress[url]; -/******/ script.parentNode && script.parentNode.removeChild(script); -/******/ doneFns && doneFns.forEach((fn) => (fn(event))); -/******/ if(prev) return prev(event); -/******/ } -/******/ ; -/******/ var timeout = setTimeout(onScriptComplete.bind(null, undefined, { type: 'timeout', target: script }), 120000); -/******/ script.onerror = onScriptComplete.bind(null, script.onerror); -/******/ script.onload = onScriptComplete.bind(null, script.onload); -/******/ needAttach && document.head.appendChild(script); -/******/ }; -/******/ })(); -/******/ -/******/ /* webpack/runtime/make namespace object */ -/******/ (() => { -/******/ // define __esModule on exports -/******/ __webpack_require__.r = (exports) => { -/******/ if(typeof Symbol !== 'undefined' && Symbol.toStringTag) { -/******/ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' }); -/******/ } -/******/ Object.defineProperty(exports, '__esModule', { value: true }); -/******/ }; -/******/ })(); -/******/ -/******/ /* webpack/runtime/publicPath */ -/******/ (() => { -/******/ var scriptUrl; -/******/ if (__webpack_require__.g.importScripts) scriptUrl = __webpack_require__.g.location + ""; -/******/ var document = __webpack_require__.g.document; -/******/ if (!scriptUrl && document) { -/******/ if (document.currentScript) -/******/ scriptUrl = document.currentScript.src -/******/ if (!scriptUrl) { -/******/ var scripts = document.getElementsByTagName("script"); -/******/ if(scripts.length) scriptUrl = scripts[scripts.length - 1].src -/******/ } -/******/ } -/******/ // When supporting browsers where an automatic publicPath is not supported you must specify an output.publicPath manually via configuration -/******/ // or pass an empty string ("") and set the __webpack_public_path__ variable from your code to use your own logic. -/******/ if (!scriptUrl) throw new Error("Automatic publicPath is not supported in this browser"); -/******/ scriptUrl = scriptUrl.replace(/#.*$/, "").replace(/\?.*$/, "").replace(/\/[^\/]+$/, "/"); -/******/ __webpack_require__.p = scriptUrl; -/******/ })(); -/******/ -/******/ /* webpack/runtime/css loading */ -/******/ (() => { -/******/ var createStylesheet = (chunkId, fullhref, resolve, reject) => { -/******/ var linkTag = document.createElement("link"); -/******/ -/******/ linkTag.rel = "stylesheet"; -/******/ linkTag.type = "text/css"; -/******/ var onLinkComplete = (event) => { -/******/ // avoid mem leaks. -/******/ linkTag.onerror = linkTag.onload = null; -/******/ if (event.type === 'load') { -/******/ resolve(); -/******/ } else { -/******/ var errorType = event && (event.type === 'load' ? 'missing' : event.type); -/******/ var realHref = event && event.target && event.target.href || fullhref; -/******/ var err = new Error("Loading CSS chunk " + chunkId + " failed.\n(" + realHref + ")"); -/******/ err.code = "CSS_CHUNK_LOAD_FAILED"; -/******/ err.type = errorType; -/******/ err.request = realHref; -/******/ linkTag.parentNode.removeChild(linkTag) -/******/ reject(err); -/******/ } -/******/ } -/******/ linkTag.onerror = linkTag.onload = onLinkComplete; -/******/ linkTag.href = fullhref; -/******/ -/******/ document.head.appendChild(linkTag); -/******/ return linkTag; -/******/ }; -/******/ var findStylesheet = (href, fullhref) => { -/******/ var existingLinkTags = document.getElementsByTagName("link"); -/******/ for(var i = 0; i < existingLinkTags.length; i++) { -/******/ var tag = existingLinkTags[i]; -/******/ var dataHref = tag.getAttribute("data-href") || tag.getAttribute("href"); -/******/ if(tag.rel === "stylesheet" && (dataHref === href || dataHref === fullhref)) return tag; -/******/ } -/******/ var existingStyleTags = document.getElementsByTagName("style"); -/******/ for(var i = 0; i < existingStyleTags.length; i++) { -/******/ var tag = existingStyleTags[i]; -/******/ var dataHref = tag.getAttribute("data-href"); -/******/ if(dataHref === href || dataHref === fullhref) return tag; -/******/ } -/******/ }; -/******/ var loadStylesheet = (chunkId) => { -/******/ return new Promise((resolve, reject) => { -/******/ var href = __webpack_require__.miniCssF(chunkId); -/******/ var fullhref = __webpack_require__.p + href; -/******/ if(findStylesheet(href, fullhref)) return resolve(); -/******/ createStylesheet(chunkId, fullhref, resolve, reject); -/******/ }); -/******/ } -/******/ // object to store loaded CSS chunks -/******/ var installedCssChunks = { -/******/ 0: 0 -/******/ }; -/******/ -/******/ __webpack_require__.f.miniCss = (chunkId, promises) => { -/******/ var cssChunks = {"1":1}; -/******/ if(installedCssChunks[chunkId]) promises.push(installedCssChunks[chunkId]); -/******/ else if(installedCssChunks[chunkId] !== 0 && cssChunks[chunkId]) { -/******/ promises.push(installedCssChunks[chunkId] = loadStylesheet(chunkId).then(() => { -/******/ installedCssChunks[chunkId] = 0; -/******/ }, (e) => { -/******/ delete installedCssChunks[chunkId]; -/******/ throw e; -/******/ })); -/******/ } -/******/ }; -/******/ -/******/ // no hmr -/******/ })(); -/******/ -/******/ /* webpack/runtime/jsonp chunk loading */ -/******/ (() => { -/******/ // no baseURI -/******/ -/******/ // object to store loaded and loading chunks -/******/ // undefined = chunk not loaded, null = chunk preloaded/prefetched -/******/ // [resolve, reject, Promise] = chunk loading, 0 = chunk loaded -/******/ var installedChunks = { -/******/ 0: 0 -/******/ }; -/******/ -/******/ __webpack_require__.f.j = (chunkId, promises) => { -/******/ // JSONP chunk loading for javascript -/******/ var installedChunkData = __webpack_require__.o(installedChunks, chunkId) ? installedChunks[chunkId] : undefined; -/******/ if(installedChunkData !== 0) { // 0 means "already installed". -/******/ -/******/ // a Promise means "currently loading". -/******/ if(installedChunkData) { -/******/ promises.push(installedChunkData[2]); -/******/ } else { -/******/ if(true) { // all chunks have JS -/******/ // setup Promise in chunk cache -/******/ var promise = new Promise((resolve, reject) => (installedChunkData = installedChunks[chunkId] = [resolve, reject])); -/******/ promises.push(installedChunkData[2] = promise); -/******/ -/******/ // start chunk loading -/******/ var url = __webpack_require__.p + __webpack_require__.u(chunkId); -/******/ // create error before stack unwound to get useful stacktrace later -/******/ var error = new Error(); -/******/ var loadingEnded = (event) => { -/******/ if(__webpack_require__.o(installedChunks, chunkId)) { -/******/ installedChunkData = installedChunks[chunkId]; -/******/ if(installedChunkData !== 0) installedChunks[chunkId] = undefined; -/******/ if(installedChunkData) { -/******/ var errorType = event && (event.type === 'load' ? 'missing' : event.type); -/******/ var realSrc = event && event.target && event.target.src; -/******/ error.message = 'Loading chunk ' + chunkId + ' failed.\n(' + errorType + ': ' + realSrc + ')'; -/******/ error.name = 'ChunkLoadError'; -/******/ error.type = errorType; -/******/ error.request = realSrc; -/******/ installedChunkData[1](error); -/******/ } -/******/ } -/******/ }; -/******/ __webpack_require__.l(url, loadingEnded, "chunk-" + chunkId, chunkId); -/******/ } else installedChunks[chunkId] = 0; -/******/ } -/******/ } -/******/ }; -/******/ -/******/ // no prefetching -/******/ -/******/ // no preloaded -/******/ -/******/ // no HMR -/******/ -/******/ // no HMR manifest -/******/ -/******/ // no on chunks loaded -/******/ -/******/ // install a JSONP callback for chunk loading -/******/ var webpackJsonpCallback = (parentChunkLoadingFunction, data) => { -/******/ var [chunkIds, moreModules, runtime] = data; -/******/ // add "moreModules" to the modules object, -/******/ // then flag all "chunkIds" as loaded and fire callback -/******/ var moduleId, chunkId, i = 0; -/******/ for(moduleId in moreModules) { -/******/ if(__webpack_require__.o(moreModules, moduleId)) { -/******/ __webpack_require__.m[moduleId] = moreModules[moduleId]; -/******/ } -/******/ } -/******/ if(runtime) var result = runtime(__webpack_require__); -/******/ if(parentChunkLoadingFunction) parentChunkLoadingFunction(data); -/******/ for(;i < chunkIds.length; i++) { -/******/ chunkId = chunkIds[i]; -/******/ if(__webpack_require__.o(installedChunks, chunkId) && installedChunks[chunkId]) { -/******/ installedChunks[chunkId][0](); -/******/ } -/******/ installedChunks[chunkIds[i]] = 0; -/******/ } -/******/ -/******/ } -/******/ -/******/ var chunkLoadingGlobal = self["webpackChunk"] = self["webpackChunk"] || []; -/******/ chunkLoadingGlobal.forEach(webpackJsonpCallback.bind(null, 0)); -/******/ chunkLoadingGlobal.push = webpackJsonpCallback.bind(null, chunkLoadingGlobal.push.bind(chunkLoadingGlobal)); -/******/ })(); -/******/ -/************************************************************************/ -var __webpack_exports__ = {}; -/* eslint-env browser */ - -// eslint-disable-next-line -__webpack_require__.e(/* import() */ 1).then(__webpack_require__.bind(__webpack_require__, 1)); - -/******/ })() -; \ No newline at end of file diff --git a/test/cases/multiple-compiler/expected/webpack-5-importModule/one-main.js b/test/cases/multiple-compiler/expected/one-main.js similarity index 100% rename from test/cases/multiple-compiler/expected/webpack-5-importModule/one-main.js rename to test/cases/multiple-compiler/expected/one-main.js diff --git a/test/cases/devtool-source-map-no-source-maps-from-loaders/expected/webpack-5-importModule/main.css b/test/cases/multiple-compiler/expected/one/main.css similarity index 100% rename from test/cases/devtool-source-map-no-source-maps-from-loaders/expected/webpack-5-importModule/main.css rename to test/cases/multiple-compiler/expected/one/main.css diff --git a/test/cases/multiple-compiler/expected/webpack-5-importModule/two-main.js b/test/cases/multiple-compiler/expected/two-main.js similarity index 100% rename from test/cases/multiple-compiler/expected/webpack-5-importModule/two-main.js rename to test/cases/multiple-compiler/expected/two-main.js diff --git a/test/cases/devtool-source-map-no-source-maps-from-loaders/expected/webpack-5/main.css b/test/cases/multiple-compiler/expected/two/main.css similarity index 100% rename from test/cases/devtool-source-map-no-source-maps-from-loaders/expected/webpack-5/main.css rename to test/cases/multiple-compiler/expected/two/main.css diff --git a/test/cases/multiple-compiler/expected/webpack-5-importModule/one/main.css b/test/cases/multiple-compiler/expected/webpack-5-importModule/one/main.css deleted file mode 100644 index cebc5c1c..00000000 --- a/test/cases/multiple-compiler/expected/webpack-5-importModule/one/main.css +++ /dev/null @@ -1,4 +0,0 @@ -body { - background: red; -} - diff --git a/test/cases/multiple-compiler/expected/webpack-5-importModule/two/main.css b/test/cases/multiple-compiler/expected/webpack-5-importModule/two/main.css deleted file mode 100644 index cebc5c1c..00000000 --- a/test/cases/multiple-compiler/expected/webpack-5-importModule/two/main.css +++ /dev/null @@ -1,4 +0,0 @@ -body { - background: red; -} - diff --git a/test/cases/multiple-compiler/expected/webpack-5/one-main.js b/test/cases/multiple-compiler/expected/webpack-5/one-main.js deleted file mode 100644 index adf06601..00000000 --- a/test/cases/multiple-compiler/expected/webpack-5/one-main.js +++ /dev/null @@ -1,62 +0,0 @@ -/******/ (() => { // webpackBootstrap -/******/ "use strict"; -/******/ var __webpack_modules__ = ([ -/* 0 */, -/* 1 */ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -__webpack_require__.r(__webpack_exports__); -// extracted by mini-css-extract-plugin - - -/***/ }) -/******/ ]); -/************************************************************************/ -/******/ // The module cache -/******/ var __webpack_module_cache__ = {}; -/******/ -/******/ // The require function -/******/ function __webpack_require__(moduleId) { -/******/ // Check if module is in cache -/******/ var cachedModule = __webpack_module_cache__[moduleId]; -/******/ if (cachedModule !== undefined) { -/******/ return cachedModule.exports; -/******/ } -/******/ // Create a new module (and put it into the cache) -/******/ var module = __webpack_module_cache__[moduleId] = { -/******/ // no module.id needed -/******/ // no module.loaded needed -/******/ exports: {} -/******/ }; -/******/ -/******/ // Execute the module function -/******/ __webpack_modules__[moduleId](module, module.exports, __webpack_require__); -/******/ -/******/ // Return the exports of the module -/******/ return module.exports; -/******/ } -/******/ -/************************************************************************/ -/******/ /* webpack/runtime/make namespace object */ -/******/ (() => { -/******/ // define __esModule on exports -/******/ __webpack_require__.r = (exports) => { -/******/ if(typeof Symbol !== 'undefined' && Symbol.toStringTag) { -/******/ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' }); -/******/ } -/******/ Object.defineProperty(exports, '__esModule', { value: true }); -/******/ }; -/******/ })(); -/******/ -/************************************************************************/ -var __webpack_exports__ = {}; -// This entry need to be wrapped in an IIFE because it need to be isolated against other modules in the chunk. -(() => { -__webpack_require__.r(__webpack_exports__); -/* harmony import */ var _style_css__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(1); - - -})(); - -/******/ })() -; \ No newline at end of file diff --git a/test/cases/multiple-compiler/expected/webpack-5/one/main.css b/test/cases/multiple-compiler/expected/webpack-5/one/main.css deleted file mode 100644 index cebc5c1c..00000000 --- a/test/cases/multiple-compiler/expected/webpack-5/one/main.css +++ /dev/null @@ -1,4 +0,0 @@ -body { - background: red; -} - diff --git a/test/cases/multiple-compiler/expected/webpack-5/two-main.js b/test/cases/multiple-compiler/expected/webpack-5/two-main.js deleted file mode 100644 index adf06601..00000000 --- a/test/cases/multiple-compiler/expected/webpack-5/two-main.js +++ /dev/null @@ -1,62 +0,0 @@ -/******/ (() => { // webpackBootstrap -/******/ "use strict"; -/******/ var __webpack_modules__ = ([ -/* 0 */, -/* 1 */ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -__webpack_require__.r(__webpack_exports__); -// extracted by mini-css-extract-plugin - - -/***/ }) -/******/ ]); -/************************************************************************/ -/******/ // The module cache -/******/ var __webpack_module_cache__ = {}; -/******/ -/******/ // The require function -/******/ function __webpack_require__(moduleId) { -/******/ // Check if module is in cache -/******/ var cachedModule = __webpack_module_cache__[moduleId]; -/******/ if (cachedModule !== undefined) { -/******/ return cachedModule.exports; -/******/ } -/******/ // Create a new module (and put it into the cache) -/******/ var module = __webpack_module_cache__[moduleId] = { -/******/ // no module.id needed -/******/ // no module.loaded needed -/******/ exports: {} -/******/ }; -/******/ -/******/ // Execute the module function -/******/ __webpack_modules__[moduleId](module, module.exports, __webpack_require__); -/******/ -/******/ // Return the exports of the module -/******/ return module.exports; -/******/ } -/******/ -/************************************************************************/ -/******/ /* webpack/runtime/make namespace object */ -/******/ (() => { -/******/ // define __esModule on exports -/******/ __webpack_require__.r = (exports) => { -/******/ if(typeof Symbol !== 'undefined' && Symbol.toStringTag) { -/******/ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' }); -/******/ } -/******/ Object.defineProperty(exports, '__esModule', { value: true }); -/******/ }; -/******/ })(); -/******/ -/************************************************************************/ -var __webpack_exports__ = {}; -// This entry need to be wrapped in an IIFE because it need to be isolated against other modules in the chunk. -(() => { -__webpack_require__.r(__webpack_exports__); -/* harmony import */ var _style_css__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(1); - - -})(); - -/******/ })() -; \ No newline at end of file diff --git a/test/cases/multiple-compiler/expected/webpack-5/two/main.css b/test/cases/multiple-compiler/expected/webpack-5/two/main.css deleted file mode 100644 index cebc5c1c..00000000 --- a/test/cases/multiple-compiler/expected/webpack-5/two/main.css +++ /dev/null @@ -1,4 +0,0 @@ -body { - background: red; -} - diff --git a/test/cases/runtime/expected/webpack-5-importModule/main.a45a4571ab5cece12cf0.css b/test/cases/runtime/expected/main.a45a4571ab5cece12cf0.css similarity index 100% rename from test/cases/runtime/expected/webpack-5-importModule/main.a45a4571ab5cece12cf0.css rename to test/cases/runtime/expected/main.a45a4571ab5cece12cf0.css diff --git a/test/cases/runtime/expected/webpack-5-importModule/runtime~main.js b/test/cases/runtime/expected/runtime~main.js similarity index 100% rename from test/cases/runtime/expected/webpack-5-importModule/runtime~main.js rename to test/cases/runtime/expected/runtime~main.js diff --git a/test/cases/runtime/expected/webpack-5/main.a45a4571ab5cece12cf0.css b/test/cases/runtime/expected/webpack-5/main.a45a4571ab5cece12cf0.css deleted file mode 100644 index cebc5c1c..00000000 --- a/test/cases/runtime/expected/webpack-5/main.a45a4571ab5cece12cf0.css +++ /dev/null @@ -1,4 +0,0 @@ -body { - background: red; -} - diff --git a/test/cases/runtime/expected/webpack-5/runtime~main.js b/test/cases/runtime/expected/webpack-5/runtime~main.js deleted file mode 100644 index 7e791603..00000000 --- a/test/cases/runtime/expected/webpack-5/runtime~main.js +++ /dev/null @@ -1,323 +0,0 @@ -/******/ (() => { // webpackBootstrap -/******/ "use strict"; -/******/ var __webpack_modules__ = ({}); -/************************************************************************/ -/******/ // The module cache -/******/ var __webpack_module_cache__ = {}; -/******/ -/******/ // The require function -/******/ function __webpack_require__(moduleId) { -/******/ // Check if module is in cache -/******/ var cachedModule = __webpack_module_cache__[moduleId]; -/******/ if (cachedModule !== undefined) { -/******/ return cachedModule.exports; -/******/ } -/******/ // Create a new module (and put it into the cache) -/******/ var module = __webpack_module_cache__[moduleId] = { -/******/ // no module.id needed -/******/ // no module.loaded needed -/******/ exports: {} -/******/ }; -/******/ -/******/ // Execute the module function -/******/ __webpack_modules__[moduleId](module, module.exports, __webpack_require__); -/******/ -/******/ // Return the exports of the module -/******/ return module.exports; -/******/ } -/******/ -/******/ // expose the modules object (__webpack_modules__) -/******/ __webpack_require__.m = __webpack_modules__; -/******/ -/************************************************************************/ -/******/ /* webpack/runtime/chunk loaded */ -/******/ (() => { -/******/ var deferred = []; -/******/ __webpack_require__.O = (result, chunkIds, fn, priority) => { -/******/ if(chunkIds) { -/******/ priority = priority || 0; -/******/ for(var i = deferred.length; i > 0 && deferred[i - 1][2] > priority; i--) deferred[i] = deferred[i - 1]; -/******/ deferred[i] = [chunkIds, fn, priority]; -/******/ return; -/******/ } -/******/ var notFulfilled = Infinity; -/******/ for (var i = 0; i < deferred.length; i++) { -/******/ var [chunkIds, fn, priority] = deferred[i]; -/******/ var fulfilled = true; -/******/ for (var j = 0; j < chunkIds.length; j++) { -/******/ if ((priority & 1 === 0 || notFulfilled >= priority) && Object.keys(__webpack_require__.O).every((key) => (__webpack_require__.O[key](chunkIds[j])))) { -/******/ chunkIds.splice(j--, 1); -/******/ } else { -/******/ fulfilled = false; -/******/ if(priority < notFulfilled) notFulfilled = priority; -/******/ } -/******/ } -/******/ if(fulfilled) { -/******/ deferred.splice(i--, 1) -/******/ result = fn(); -/******/ } -/******/ } -/******/ return result; -/******/ }; -/******/ })(); -/******/ -/******/ /* webpack/runtime/create fake namespace object */ -/******/ (() => { -/******/ var getProto = Object.getPrototypeOf ? (obj) => (Object.getPrototypeOf(obj)) : (obj) => (obj.__proto__); -/******/ var leafPrototypes; -/******/ // create a fake namespace object -/******/ // mode & 1: value is a module id, require it -/******/ // mode & 2: merge all properties of value into the ns -/******/ // mode & 4: return value when already ns object -/******/ // mode & 16: return value when it's Promise-like -/******/ // mode & 8|1: behave like require -/******/ __webpack_require__.t = function(value, mode) { -/******/ if(mode & 1) value = this(value); -/******/ if(mode & 8) return value; -/******/ if(typeof value === 'object' && value) { -/******/ if((mode & 4) && value.__esModule) return value; -/******/ if((mode & 16) && typeof value.then === 'function') return value; -/******/ } -/******/ var ns = Object.create(null); -/******/ __webpack_require__.r(ns); -/******/ var def = {}; -/******/ leafPrototypes = leafPrototypes || [null, getProto({}), getProto([]), getProto(getProto)]; -/******/ for(var current = mode & 2 && value; typeof current == 'object' && !~leafPrototypes.indexOf(current); current = getProto(current)) { -/******/ Object.getOwnPropertyNames(current).forEach((key) => (def[key] = () => (value[key]))); -/******/ } -/******/ def['default'] = () => (value); -/******/ __webpack_require__.d(ns, def); -/******/ return ns; -/******/ }; -/******/ })(); -/******/ -/******/ /* webpack/runtime/define property getters */ -/******/ (() => { -/******/ // define getter functions for harmony exports -/******/ __webpack_require__.d = (exports, definition) => { -/******/ for(var key in definition) { -/******/ if(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) { -/******/ Object.defineProperty(exports, key, { enumerable: true, get: definition[key] }); -/******/ } -/******/ } -/******/ }; -/******/ })(); -/******/ -/******/ /* webpack/runtime/ensure chunk */ -/******/ (() => { -/******/ __webpack_require__.f = {}; -/******/ // This file contains only the entry chunk. -/******/ // The chunk loading function for additional chunks -/******/ __webpack_require__.e = (chunkId) => { -/******/ return Promise.all(Object.keys(__webpack_require__.f).reduce((promises, key) => { -/******/ __webpack_require__.f[key](chunkId, promises); -/******/ return promises; -/******/ }, [])); -/******/ }; -/******/ })(); -/******/ -/******/ /* webpack/runtime/get javascript chunk filename */ -/******/ (() => { -/******/ // This function allow to reference async chunks -/******/ __webpack_require__.u = (chunkId) => { -/******/ // return url for filenames based on template -/******/ return "" + chunkId + ".js"; -/******/ }; -/******/ })(); -/******/ -/******/ /* webpack/runtime/get mini-css chunk filename */ -/******/ (() => { -/******/ // This function allow to reference all chunks -/******/ __webpack_require__.miniCssF = (chunkId) => { -/******/ // return url for filenames based on template -/******/ return "" + "main" + "." + "a45a4571ab5cece12cf0" + ".css"; -/******/ }; -/******/ })(); -/******/ -/******/ /* webpack/runtime/global */ -/******/ (() => { -/******/ __webpack_require__.g = (function() { -/******/ if (typeof globalThis === 'object') return globalThis; -/******/ try { -/******/ return this || new Function('return this')(); -/******/ } catch (e) { -/******/ if (typeof window === 'object') return window; -/******/ } -/******/ })(); -/******/ })(); -/******/ -/******/ /* webpack/runtime/hasOwnProperty shorthand */ -/******/ (() => { -/******/ __webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop)) -/******/ })(); -/******/ -/******/ /* webpack/runtime/load script */ -/******/ (() => { -/******/ var inProgress = {}; -/******/ // data-webpack is not used as build has no uniqueName -/******/ // loadScript function to load a script via script tag -/******/ __webpack_require__.l = (url, done, key, chunkId) => { -/******/ if(inProgress[url]) { inProgress[url].push(done); return; } -/******/ var script, needAttach; -/******/ if(key !== undefined) { -/******/ var scripts = document.getElementsByTagName("script"); -/******/ for(var i = 0; i < scripts.length; i++) { -/******/ var s = scripts[i]; -/******/ if(s.getAttribute("src") == url) { script = s; break; } -/******/ } -/******/ } -/******/ if(!script) { -/******/ needAttach = true; -/******/ script = document.createElement('script'); -/******/ -/******/ script.charset = 'utf-8'; -/******/ script.timeout = 120; -/******/ if (__webpack_require__.nc) { -/******/ script.setAttribute("nonce", __webpack_require__.nc); -/******/ } -/******/ -/******/ script.src = url; -/******/ } -/******/ inProgress[url] = [done]; -/******/ var onScriptComplete = (prev, event) => { -/******/ // avoid mem leaks in IE. -/******/ script.onerror = script.onload = null; -/******/ clearTimeout(timeout); -/******/ var doneFns = inProgress[url]; -/******/ delete inProgress[url]; -/******/ script.parentNode && script.parentNode.removeChild(script); -/******/ doneFns && doneFns.forEach((fn) => (fn(event))); -/******/ if(prev) return prev(event); -/******/ } -/******/ ; -/******/ var timeout = setTimeout(onScriptComplete.bind(null, undefined, { type: 'timeout', target: script }), 120000); -/******/ script.onerror = onScriptComplete.bind(null, script.onerror); -/******/ script.onload = onScriptComplete.bind(null, script.onload); -/******/ needAttach && document.head.appendChild(script); -/******/ }; -/******/ })(); -/******/ -/******/ /* webpack/runtime/make namespace object */ -/******/ (() => { -/******/ // define __esModule on exports -/******/ __webpack_require__.r = (exports) => { -/******/ if(typeof Symbol !== 'undefined' && Symbol.toStringTag) { -/******/ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' }); -/******/ } -/******/ Object.defineProperty(exports, '__esModule', { value: true }); -/******/ }; -/******/ })(); -/******/ -/******/ /* webpack/runtime/publicPath */ -/******/ (() => { -/******/ var scriptUrl; -/******/ if (__webpack_require__.g.importScripts) scriptUrl = __webpack_require__.g.location + ""; -/******/ var document = __webpack_require__.g.document; -/******/ if (!scriptUrl && document) { -/******/ if (document.currentScript) -/******/ scriptUrl = document.currentScript.src -/******/ if (!scriptUrl) { -/******/ var scripts = document.getElementsByTagName("script"); -/******/ if(scripts.length) scriptUrl = scripts[scripts.length - 1].src -/******/ } -/******/ } -/******/ // When supporting browsers where an automatic publicPath is not supported you must specify an output.publicPath manually via configuration -/******/ // or pass an empty string ("") and set the __webpack_public_path__ variable from your code to use your own logic. -/******/ if (!scriptUrl) throw new Error("Automatic publicPath is not supported in this browser"); -/******/ scriptUrl = scriptUrl.replace(/#.*$/, "").replace(/\?.*$/, "").replace(/\/[^\/]+$/, "/"); -/******/ __webpack_require__.p = scriptUrl; -/******/ })(); -/******/ -/******/ /* webpack/runtime/jsonp chunk loading */ -/******/ (() => { -/******/ // no baseURI -/******/ -/******/ // object to store loaded and loading chunks -/******/ // undefined = chunk not loaded, null = chunk preloaded/prefetched -/******/ // [resolve, reject, Promise] = chunk loading, 0 = chunk loaded -/******/ var installedChunks = { -/******/ 1: 0 -/******/ }; -/******/ -/******/ __webpack_require__.f.j = (chunkId, promises) => { -/******/ // JSONP chunk loading for javascript -/******/ var installedChunkData = __webpack_require__.o(installedChunks, chunkId) ? installedChunks[chunkId] : undefined; -/******/ if(installedChunkData !== 0) { // 0 means "already installed". -/******/ -/******/ // a Promise means "currently loading". -/******/ if(installedChunkData) { -/******/ promises.push(installedChunkData[2]); -/******/ } else { -/******/ if(1 != chunkId) { -/******/ // setup Promise in chunk cache -/******/ var promise = new Promise((resolve, reject) => (installedChunkData = installedChunks[chunkId] = [resolve, reject])); -/******/ promises.push(installedChunkData[2] = promise); -/******/ -/******/ // start chunk loading -/******/ var url = __webpack_require__.p + __webpack_require__.u(chunkId); -/******/ // create error before stack unwound to get useful stacktrace later -/******/ var error = new Error(); -/******/ var loadingEnded = (event) => { -/******/ if(__webpack_require__.o(installedChunks, chunkId)) { -/******/ installedChunkData = installedChunks[chunkId]; -/******/ if(installedChunkData !== 0) installedChunks[chunkId] = undefined; -/******/ if(installedChunkData) { -/******/ var errorType = event && (event.type === 'load' ? 'missing' : event.type); -/******/ var realSrc = event && event.target && event.target.src; -/******/ error.message = 'Loading chunk ' + chunkId + ' failed.\n(' + errorType + ': ' + realSrc + ')'; -/******/ error.name = 'ChunkLoadError'; -/******/ error.type = errorType; -/******/ error.request = realSrc; -/******/ installedChunkData[1](error); -/******/ } -/******/ } -/******/ }; -/******/ __webpack_require__.l(url, loadingEnded, "chunk-" + chunkId, chunkId); -/******/ } else installedChunks[chunkId] = 0; -/******/ } -/******/ } -/******/ }; -/******/ -/******/ // no prefetching -/******/ -/******/ // no preloaded -/******/ -/******/ // no HMR -/******/ -/******/ // no HMR manifest -/******/ -/******/ __webpack_require__.O.j = (chunkId) => (installedChunks[chunkId] === 0); -/******/ -/******/ // install a JSONP callback for chunk loading -/******/ var webpackJsonpCallback = (parentChunkLoadingFunction, data) => { -/******/ var [chunkIds, moreModules, runtime] = data; -/******/ // add "moreModules" to the modules object, -/******/ // then flag all "chunkIds" as loaded and fire callback -/******/ var moduleId, chunkId, i = 0; -/******/ for(moduleId in moreModules) { -/******/ if(__webpack_require__.o(moreModules, moduleId)) { -/******/ __webpack_require__.m[moduleId] = moreModules[moduleId]; -/******/ } -/******/ } -/******/ if(runtime) var result = runtime(__webpack_require__); -/******/ if(parentChunkLoadingFunction) parentChunkLoadingFunction(data); -/******/ for(;i < chunkIds.length; i++) { -/******/ chunkId = chunkIds[i]; -/******/ if(__webpack_require__.o(installedChunks, chunkId) && installedChunks[chunkId]) { -/******/ installedChunks[chunkId][0](); -/******/ } -/******/ installedChunks[chunkIds[i]] = 0; -/******/ } -/******/ return __webpack_require__.O(result); -/******/ } -/******/ -/******/ var chunkLoadingGlobal = self["webpackChunk"] = self["webpackChunk"] || []; -/******/ chunkLoadingGlobal.forEach(webpackJsonpCallback.bind(null, 0)); -/******/ chunkLoadingGlobal.push = webpackJsonpCallback.bind(null, chunkLoadingGlobal.push.bind(chunkLoadingGlobal)); -/******/ })(); -/******/ -/************************************************************************/ -/******/ -/******/ -/******/ })() -; \ No newline at end of file diff --git a/test/cases/split-chunks-all/expected/webpack-5-importModule/2.css b/test/cases/split-chunks-all/expected/2.css similarity index 100% rename from test/cases/split-chunks-all/expected/webpack-5-importModule/2.css rename to test/cases/split-chunks-all/expected/2.css diff --git a/test/cases/split-chunks-all/expected/webpack-5-importModule/2.js b/test/cases/split-chunks-all/expected/2.js similarity index 100% rename from test/cases/split-chunks-all/expected/webpack-5-importModule/2.js rename to test/cases/split-chunks-all/expected/2.js diff --git a/test/cases/split-chunks-all/expected/webpack-5/2.css b/test/cases/split-chunks-all/expected/webpack-5/2.css deleted file mode 100644 index cebc5c1c..00000000 --- a/test/cases/split-chunks-all/expected/webpack-5/2.css +++ /dev/null @@ -1,4 +0,0 @@ -body { - background: red; -} - diff --git a/test/cases/split-chunks-all/expected/webpack-5/2.js b/test/cases/split-chunks-all/expected/webpack-5/2.js deleted file mode 100644 index c8d4dd4f..00000000 --- a/test/cases/split-chunks-all/expected/webpack-5/2.js +++ /dev/null @@ -1 +0,0 @@ -MISSING From a37713f53bcecb9efc3f8a4d389c6274dae0bc85 Mon Sep 17 00:00:00 2001 From: hiroki osame Date: Mon, 5 Jul 2021 07:57:29 -0400 Subject: [PATCH 28/30] feat: support the `pathinfo` option (#783) --- src/index.js | 10 ++++++++ test/pathinfo.test.js | 57 +++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 67 insertions(+) create mode 100644 test/pathinfo.test.js diff --git a/src/index.js b/src/index.js index 284604c5..d5263559 100644 --- a/src/index.js +++ b/src/index.js @@ -984,10 +984,20 @@ class MiniCssExtractPlugin { compiler.webpack.sources; const source = new ConcatSource(); const externalsSource = new ConcatSource(); + const includePathinfo = compilation.outputOptions.pathinfo; for (const m of usedModules) { let content = m.content.toString(); + if (includePathinfo) { + // From https://github.com/webpack/webpack/blob/29eff8a74ecc2f87517b627dee451c2af9ed3f3f/lib/ModuleInfoHeaderPlugin.js#L191-L194 + const req = m.readableIdentifier(requestShortener); + const reqStr = req.replace(/\*\//g, "*_/"); + const reqStrStar = "*".repeat(reqStr.length); + const headerStr = `/*!****${reqStrStar}****!*\\\n !*** ${reqStr} ***!\n \\****${reqStrStar}****/\n`; + content = headerStr + content; + } + if (/^@import url/.test(content)) { // HACK for IE // http://stackoverflow.com/a/14676665/1458162 diff --git a/test/pathinfo.test.js b/test/pathinfo.test.js new file mode 100644 index 00000000..07d9ac72 --- /dev/null +++ b/test/pathinfo.test.js @@ -0,0 +1,57 @@ +import path from "path"; + +import MiniCssExtractPlugin from "../src/cjs"; + +import { compile, getCompiler } from "./helpers/index"; + +describe("pathinfo option", () => { + it(`should insert pathinfo`, async () => { + const compiler = getCompiler( + "esm.js", + {}, + { + mode: "none", + output: { + pathinfo: true, + path: path.resolve(__dirname, "../outputs"), + }, + plugins: [ + new MiniCssExtractPlugin({ + filename: "[name].css", + }), + ], + } + ); + const stats = await compile(compiler); + const fs = stats.compilation.compiler.outputFileSystem; + const extractedCss = fs + .readFileSync(path.resolve(__dirname, "../outputs/main.css")) + .toString(); + + expect(extractedCss).toMatch("./simple.css"); + }); + it(`should not insert pathinfo`, async () => { + const compiler = getCompiler( + "esm.js", + {}, + { + mode: "none", + output: { + path: path.resolve(__dirname, "../outputs"), + }, + plugins: [ + new MiniCssExtractPlugin({ + filename: "[name].css", + }), + ], + } + ); + const stats = await compile(compiler); + const fs = stats.compilation.compiler.outputFileSystem; + const extractedCss = fs + .readFileSync(path.resolve(__dirname, "../outputs/main.css")) + .toString(); + + expect(extractedCss).not.toMatch("./simple.css"); + }); +}); From 31b678c17af720cf1c80815f1771fe2fa2e6ae1f Mon Sep 17 00:00:00 2001 From: Alexander Akait <4567934+alexander-akait@users.noreply.github.com> Date: Mon, 5 Jul 2021 15:14:25 +0300 Subject: [PATCH 29/30] refactor: code (#784) --- src/index.js | 34 ++++++++-------- test/cases/pathinfo/expected/main.css | 21 ++++++++++ test/cases/pathinfo/extra.css | 3 ++ test/cases/pathinfo/index.js | 3 ++ test/cases/pathinfo/other.css | 3 ++ test/cases/pathinfo/style.css | 3 ++ test/cases/pathinfo/webpack.config.js | 21 ++++++++++ test/pathinfo.test.js | 57 --------------------------- 8 files changed, 71 insertions(+), 74 deletions(-) create mode 100644 test/cases/pathinfo/expected/main.css create mode 100644 test/cases/pathinfo/extra.css create mode 100644 test/cases/pathinfo/index.js create mode 100644 test/cases/pathinfo/other.css create mode 100644 test/cases/pathinfo/style.css create mode 100644 test/cases/pathinfo/webpack.config.js delete mode 100644 test/pathinfo.test.js diff --git a/src/index.js b/src/index.js index d5263559..70dabae2 100644 --- a/src/index.js +++ b/src/index.js @@ -984,35 +984,36 @@ class MiniCssExtractPlugin { compiler.webpack.sources; const source = new ConcatSource(); const externalsSource = new ConcatSource(); - const includePathinfo = compilation.outputOptions.pathinfo; - for (const m of usedModules) { - let content = m.content.toString(); + for (const module of usedModules) { + let content = module.content.toString(); - if (includePathinfo) { + const readableIdentifier = module.readableIdentifier(requestShortener); + + if (compilation.outputOptions.pathinfo) { // From https://github.com/webpack/webpack/blob/29eff8a74ecc2f87517b627dee451c2af9ed3f3f/lib/ModuleInfoHeaderPlugin.js#L191-L194 - const req = m.readableIdentifier(requestShortener); - const reqStr = req.replace(/\*\//g, "*_/"); + const reqStr = readableIdentifier.replace(/\*\//g, "*_/"); const reqStrStar = "*".repeat(reqStr.length); const headerStr = `/*!****${reqStrStar}****!*\\\n !*** ${reqStr} ***!\n \\****${reqStrStar}****/\n`; + content = headerStr + content; } if (/^@import url/.test(content)) { // HACK for IE // http://stackoverflow.com/a/14676665/1458162 - if (m.media) { + if (module.media) { // insert media into the @import // this is rar // TODO improve this and parse the CSS to support multiple medias - content = content.replace(/;|\s*$/, m.media); + content = content.replace(/;|\s*$/, module.media); } externalsSource.add(content); externalsSource.add("\n"); } else { - if (m.media) { - source.add(`@media ${m.media} {\n`); + if (module.media) { + source.add(`@media ${module.media} {\n`); } const { path: filename } = compilation.getPathWithInfo( @@ -1024,22 +1025,21 @@ class MiniCssExtractPlugin { content = content.replace(new RegExp(AUTO_PUBLIC_PATH, "g"), undoPath); - if (m.sourceMap) { + if (module.sourceMap) { source.add( new SourceMapSource( content, - m.readableIdentifier(requestShortener), - m.sourceMap.toString() + readableIdentifier, + module.sourceMap.toString() ) ); } else { - source.add( - new RawSource(content, m.readableIdentifier(requestShortener)) - ); + source.add(new RawSource(content, readableIdentifier)); } + source.add("\n"); - if (m.media) { + if (module.media) { source.add("}\n"); } } diff --git a/test/cases/pathinfo/expected/main.css b/test/cases/pathinfo/expected/main.css new file mode 100644 index 00000000..b1fbc3ee --- /dev/null +++ b/test/cases/pathinfo/expected/main.css @@ -0,0 +1,21 @@ +/*!********************************************************************!*\ + !*** css ../../../node_modules/css-loader/dist/cjs.js!./style.css ***! + \********************************************************************/ +body { + background: red; +} + +/*!********************************************************************!*\ + !*** css ../../../node_modules/css-loader/dist/cjs.js!./other.css ***! + \********************************************************************/ +body { + background: blue; +} + +/*!********************************************************************!*\ + !*** css ../../../node_modules/css-loader/dist/cjs.js!./extra.css ***! + \********************************************************************/ +body { + background: yellow; +} + diff --git a/test/cases/pathinfo/extra.css b/test/cases/pathinfo/extra.css new file mode 100644 index 00000000..19f99652 --- /dev/null +++ b/test/cases/pathinfo/extra.css @@ -0,0 +1,3 @@ +body { + background: yellow; +} diff --git a/test/cases/pathinfo/index.js b/test/cases/pathinfo/index.js new file mode 100644 index 00000000..938a4b6e --- /dev/null +++ b/test/cases/pathinfo/index.js @@ -0,0 +1,3 @@ +import "./style.css"; +import "./other.css"; +import "./extra.css"; diff --git a/test/cases/pathinfo/other.css b/test/cases/pathinfo/other.css new file mode 100644 index 00000000..ae844dcf --- /dev/null +++ b/test/cases/pathinfo/other.css @@ -0,0 +1,3 @@ +body { + background: blue; +} diff --git a/test/cases/pathinfo/style.css b/test/cases/pathinfo/style.css new file mode 100644 index 00000000..67ce83e4 --- /dev/null +++ b/test/cases/pathinfo/style.css @@ -0,0 +1,3 @@ +body { + background: red; +} diff --git a/test/cases/pathinfo/webpack.config.js b/test/cases/pathinfo/webpack.config.js new file mode 100644 index 00000000..77000b85 --- /dev/null +++ b/test/cases/pathinfo/webpack.config.js @@ -0,0 +1,21 @@ +import Self from "../../../src"; + +module.exports = { + entry: "./index.js", + output: { + pathinfo: true, + }, + module: { + rules: [ + { + test: /\.css$/, + use: [Self.loader, "css-loader"], + }, + ], + }, + plugins: [ + new Self({ + filename: "[name].css", + }), + ], +}; diff --git a/test/pathinfo.test.js b/test/pathinfo.test.js deleted file mode 100644 index 07d9ac72..00000000 --- a/test/pathinfo.test.js +++ /dev/null @@ -1,57 +0,0 @@ -import path from "path"; - -import MiniCssExtractPlugin from "../src/cjs"; - -import { compile, getCompiler } from "./helpers/index"; - -describe("pathinfo option", () => { - it(`should insert pathinfo`, async () => { - const compiler = getCompiler( - "esm.js", - {}, - { - mode: "none", - output: { - pathinfo: true, - path: path.resolve(__dirname, "../outputs"), - }, - plugins: [ - new MiniCssExtractPlugin({ - filename: "[name].css", - }), - ], - } - ); - const stats = await compile(compiler); - const fs = stats.compilation.compiler.outputFileSystem; - const extractedCss = fs - .readFileSync(path.resolve(__dirname, "../outputs/main.css")) - .toString(); - - expect(extractedCss).toMatch("./simple.css"); - }); - it(`should not insert pathinfo`, async () => { - const compiler = getCompiler( - "esm.js", - {}, - { - mode: "none", - output: { - path: path.resolve(__dirname, "../outputs"), - }, - plugins: [ - new MiniCssExtractPlugin({ - filename: "[name].css", - }), - ], - } - ); - const stats = await compile(compiler); - const fs = stats.compilation.compiler.outputFileSystem; - const extractedCss = fs - .readFileSync(path.resolve(__dirname, "../outputs/main.css")) - .toString(); - - expect(extractedCss).not.toMatch("./simple.css"); - }); -}); From 38be7b04f7c0e03d882d80dcca1e16cde0fe9368 Mon Sep 17 00:00:00 2001 From: evilebottnawi Date: Mon, 5 Jul 2021 15:45:55 +0300 Subject: [PATCH 30/30] chore(release): 2.1.0 --- CHANGELOG.md | 7 +++++++ package-lock.json | 2 +- package.json | 2 +- 3 files changed, 9 insertions(+), 2 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index e9c664c1..e4911361 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,6 +2,13 @@ All notable changes to this project will be documented in this file. See [standard-version](https://github.com/conventional-changelog/standard-version) for commit guidelines. +## [2.1.0](https://github.com/webpack-contrib/mini-css-extract-plugin/compare/v2.0.0...v2.1.0) (2021-07-05) + + +### Features + +* support the `pathinfo` option ([#783](https://github.com/webpack-contrib/mini-css-extract-plugin/issues/783)) ([a37713f](https://github.com/webpack-contrib/mini-css-extract-plugin/commit/a37713f53bcecb9efc3f8a4d389c6274dae0bc85)) + ## [2.0.0](https://github.com/webpack-contrib/mini-css-extract-plugin/compare/v1.6.2...v2.0.0) (2021-06-30) ### NOTES diff --git a/package-lock.json b/package-lock.json index 51b92597..31676428 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,6 +1,6 @@ { "name": "mini-css-extract-plugin", - "version": "2.0.0", + "version": "2.1.0", "lockfileVersion": 2, "requires": true, "packages": { diff --git a/package.json b/package.json index 33a1c16b..6ed43980 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "mini-css-extract-plugin", - "version": "2.0.0", + "version": "2.1.0", "description": "extracts CSS into separate files", "license": "MIT", "repository": "webpack-contrib/mini-css-extract-plugin",