From e3143243573cc9cc9b38266d41780ea0939b1b0b Mon Sep 17 00:00:00 2001 From: Lenz Weber Date: Sat, 22 May 2021 16:40:53 +0200 Subject: [PATCH 1/8] add size-limits --- .github/workflows/main.yaml | 13 - .github/workflows/size.yml | 12 + .size-limit.js | 98 ++ package-lock.json | 3267 +++++++++++++++++++++++++++++++++-- package.json | 2 + 5 files changed, 3259 insertions(+), 133 deletions(-) delete mode 100644 .github/workflows/main.yaml create mode 100644 .github/workflows/size.yml create mode 100644 .size-limit.js diff --git a/.github/workflows/main.yaml b/.github/workflows/main.yaml deleted file mode 100644 index a2624b7a9a..0000000000 --- a/.github/workflows/main.yaml +++ /dev/null @@ -1,13 +0,0 @@ -name: Compressed Size - -on: [pull_request] - -jobs: - build: - runs-on: ubuntu-latest - - steps: - - uses: actions/checkout@v2 - - uses: preactjs/compressed-size-action@v2 - with: - repo-token: '${{ secrets.GITHUB_TOKEN }}' diff --git a/.github/workflows/size.yml b/.github/workflows/size.yml new file mode 100644 index 0000000000..6021cda3e1 --- /dev/null +++ b/.github/workflows/size.yml @@ -0,0 +1,12 @@ +name: size +on: [pull_request] +jobs: + size: + runs-on: ubuntu-latest + env: + CI_JOB_NUMBER: 1 + steps: + - uses: actions/checkout@v1 + - uses: andresz1/size-limit-action@v1 + with: + github_token: ${{ secrets.GITHUB_TOKEN }} diff --git a/.size-limit.js b/.size-limit.js new file mode 100644 index 0000000000..9c6efe5450 --- /dev/null +++ b/.size-limit.js @@ -0,0 +1,98 @@ +const webpack = require('webpack') +let { join } = require('path') + +const rtkEntryPoints = [ + 'dist/redux-toolkit.cjs.production.min.js', + 'dist/redux-toolkit.esm.js', + 'dist/redux-toolkit.modern.js', + 'dist/redux-toolkit.modern.production.min.js', +] + +const queryEntryPoints = [ + 'dist/query/rtk-query.cjs.production.min.js', + 'dist/query/rtk-query.esm.js', + 'dist/query/rtk-query.modern.js', + 'dist/query/rtk-query.modern.production.min.js', +] + +const reactEntryPoints = [ + 'dist/query/react/rtk-query-react.cjs.production.min.js', + 'dist/query/react/rtk-query-react.esm.js', + 'dist/query/react/rtk-query-react.modern.js', + 'dist/query/react/rtk-query-react.modern.production.min.js', +] + +function withRtkPath(path) { + return (config) => { + const rtkPath = path.replace( + /(query\/rtk-query|query\/react\/rtk-query-react)/, + 'redux-toolkit' + ) + config.plugins.push( + new webpack.NormalModuleReplacementPlugin( + /@reduxjs\/toolkit/, + join(__dirname, rtkPath) + ) + ) + return config + } +} + +module.exports = [ + ...rtkEntryPoints.flatMap((path) => [ + { + name: `RTK main entry point (${path})`, + path, + }, + { + name: `configureStore (${path})`, + path, + import: '{ configureStore }', + }, + { + name: `createSlice (${path})`, + path, + import: '{ createSlice }', + }, + { + name: `createEntityAdapter (${path})`, + path, + import: '{ createEntityAdapter }', + }, + ]), + ...queryEntryPoints.concat(reactEntryPoints).flatMap((path) => [ + { + name: `RTK-Query entry point (including all imports from RTK & immer) (${path})`, + path, + modifyWebpackConfig: withRtkPath(path), + ignore: ['react'], + }, + { + name: `RTK-Query entry point (without RTK, immer, react-redux) (${path})`, + path, + modifyWebpackConfig: withRtkPath(path), + ignore: ['@reduxjs/toolkit', 'immer', 'react-redux', 'react'], + }, + { + name: `createApi (${path})`, + path, + import: '{ createApi }', + modifyWebpackConfig: withRtkPath(path), + ignore: ['react'], + }, + { + name: `setupListeners (${path})`, + path, + import: '{ setupListeners }', + modifyWebpackConfig: withRtkPath(path), + ignore: ['react'], + }, + { + name: `fetchBaseQuery (${path})`, + path, + import: '{ fetchBaseQuery }', + modifyWebpackConfig: withRtkPath(path), + ignore: ['react'], + }, + ]), +].sort((a, b) => a.name.localeCompare(b.name) * 10) diff --git a/package-lock.json b/package-lock.json index dc511a7566..b43b2d8977 100644 --- a/package-lock.json +++ b/package-lock.json @@ -2359,6 +2359,12 @@ "integrity": "sha512-Aq58f5HiWdyDlFffbbSjAlv596h/cOnt2DO1w3DOC7OJ5EHs0hd/nycJfiu9RJbT6Yk6F1knnRRXNSpxoIVZ9Q==", "dev": true }, + "@polka/url": { + "version": "1.0.0-next.12", + "resolved": "https://registry.npmjs.org/@polka/url/-/url-1.0.0-next.12.tgz", + "integrity": "sha512-6RglhutqrGFMO1MNUXp95RBuYIuc8wTnMAV5MUhLmjTOy78ncwOw7RgeQ/HeymkKXRhZd0s2DNrM1rL7unk3MQ==", + "dev": true + }, "@rushstack/node-core-library": { "version": "3.36.0", "resolved": "https://registry.npmjs.org/@rushstack/node-core-library/-/node-core-library-3.36.0.tgz", @@ -2435,6 +2441,58 @@ "@sinonjs/commons": "^1.7.0" } }, + "@size-limit/file": { + "version": "4.11.0", + "resolved": "https://registry.npmjs.org/@size-limit/file/-/file-4.11.0.tgz", + "integrity": "sha512-GPQPcFHBa6U8Z7xEl42gB1RJxCDqUILL5/WzgWDC9Q9WujnKuZwq16+yoCxrvTQfbl4Ol+Z42M50FvvibFMy9w==", + "dev": true, + "requires": { + "semver": "7.3.5" + } + }, + "@size-limit/preset-small-lib": { + "version": "4.11.0", + "resolved": "https://registry.npmjs.org/@size-limit/preset-small-lib/-/preset-small-lib-4.11.0.tgz", + "integrity": "sha512-+McnY9jHr5hNm9PoUkInzRIn9aNNW2BVmHaACLN892bkfaHmQ6lAj4qe6czuypq8xHJl2IdIFGu+CEsyEC1baA==", + "dev": true, + "requires": { + "@size-limit/file": "4.11.0", + "@size-limit/webpack": "4.11.0" + } + }, + "@size-limit/webpack": { + "version": "4.11.0", + "resolved": "https://registry.npmjs.org/@size-limit/webpack/-/webpack-4.11.0.tgz", + "integrity": "sha512-TzPESkF/sakw6qMadw+0X1yxOeTcttbm7qTDWvUf49mIoBlYa52Bu6BZUj3L6H7ZKhrieHLkyU7zqPyu7yPXjg==", + "dev": true, + "requires": { + "css-loader": "^5.2.5", + "escape-string-regexp": "^4.0.0", + "file-loader": "^6.2.0", + "mkdirp": "^1.0.4", + "nanoid": "^3.1.23", + "optimize-css-assets-webpack-plugin": "^6.0.0", + "pnp-webpack-plugin": "^1.6.4", + "rimraf": "^3.0.2", + "style-loader": "^2.0.0", + "webpack": "^4.44.1", + "webpack-bundle-analyzer": "^4.4.2" + }, + "dependencies": { + "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 + }, + "mkdirp": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", + "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==", + "dev": true + } + } + }, "@testing-library/dom": { "version": "7.30.4", "resolved": "https://registry.npmjs.org/@testing-library/dom/-/dom-7.30.4.tgz", @@ -2590,6 +2648,12 @@ "@babel/runtime": "^7.12.5" } }, + "@trysound/sax": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/@trysound/sax/-/sax-0.1.1.tgz", + "integrity": "sha512-Z6DoceYb/1xSg5+e+ZlPZ9v0N16ZvZ+wYMraFue4HYrE4ttONKtsvruIRf6t9TBR0YvSOfi1hUU0fJfBLCDYow==", + "dev": true + }, "@types/argparse": { "version": "1.0.38", "resolved": "https://registry.npmjs.org/@types/argparse/-/argparse-1.0.38.tgz", @@ -2763,6 +2827,12 @@ "integrity": "sha512-f5j5b/Gf71L+dbqxIpQ4Z2WlmI/mPJ0fOkGGmFgtb6sAu97EPczzbS3/tJKxmcYDj55OX6ssqwDAWOHIYDRDGA==", "dev": true }, + "@types/parse-json": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/@types/parse-json/-/parse-json-4.0.0.tgz", + "integrity": "sha512-//oorEZjL6sbPcKUaCdIGlIUeH26mgzimjBB77G6XRgnDl/L5wOnpyBGRe/Mmf5CVW3PwEBE1NjiMZ/ssFh4wA==", + "dev": true + }, "@types/prettier": { "version": "2.2.3", "resolved": "https://registry.npmjs.org/@types/prettier/-/prettier-2.2.3.tgz", @@ -2952,6 +3022,193 @@ } } }, + "@webassemblyjs/ast": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/@webassemblyjs/ast/-/ast-1.9.0.tgz", + "integrity": "sha512-C6wW5L+b7ogSDVqymbkkvuW9kruN//YisMED04xzeBBqjHa2FYnmvOlS6Xj68xWQRgWvI9cIglsjFowH/RJyEA==", + "dev": true, + "requires": { + "@webassemblyjs/helper-module-context": "1.9.0", + "@webassemblyjs/helper-wasm-bytecode": "1.9.0", + "@webassemblyjs/wast-parser": "1.9.0" + } + }, + "@webassemblyjs/floating-point-hex-parser": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.9.0.tgz", + "integrity": "sha512-TG5qcFsS8QB4g4MhrxK5TqfdNe7Ey/7YL/xN+36rRjl/BlGE/NcBvJcqsRgCP6Z92mRE+7N50pRIi8SmKUbcQA==", + "dev": true + }, + "@webassemblyjs/helper-api-error": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-api-error/-/helper-api-error-1.9.0.tgz", + "integrity": "sha512-NcMLjoFMXpsASZFxJ5h2HZRcEhDkvnNFOAKneP5RbKRzaWJN36NC4jqQHKwStIhGXu5mUWlUUk7ygdtrO8lbmw==", + "dev": true + }, + "@webassemblyjs/helper-buffer": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-buffer/-/helper-buffer-1.9.0.tgz", + "integrity": "sha512-qZol43oqhq6yBPx7YM3m9Bv7WMV9Eevj6kMi6InKOuZxhw+q9hOkvq5e/PpKSiLfyetpaBnogSbNCfBwyB00CA==", + "dev": true + }, + "@webassemblyjs/helper-code-frame": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-code-frame/-/helper-code-frame-1.9.0.tgz", + "integrity": "sha512-ERCYdJBkD9Vu4vtjUYe8LZruWuNIToYq/ME22igL+2vj2dQ2OOujIZr3MEFvfEaqKoVqpsFKAGsRdBSBjrIvZA==", + "dev": true, + "requires": { + "@webassemblyjs/wast-printer": "1.9.0" + } + }, + "@webassemblyjs/helper-fsm": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-fsm/-/helper-fsm-1.9.0.tgz", + "integrity": "sha512-OPRowhGbshCb5PxJ8LocpdX9Kl0uB4XsAjl6jH/dWKlk/mzsANvhwbiULsaiqT5GZGT9qinTICdj6PLuM5gslw==", + "dev": true + }, + "@webassemblyjs/helper-module-context": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-module-context/-/helper-module-context-1.9.0.tgz", + "integrity": "sha512-MJCW8iGC08tMk2enck1aPW+BE5Cw8/7ph/VGZxwyvGbJwjktKkDK7vy7gAmMDx88D7mhDTCNKAW5tED+gZ0W8g==", + "dev": true, + "requires": { + "@webassemblyjs/ast": "1.9.0" + } + }, + "@webassemblyjs/helper-wasm-bytecode": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.9.0.tgz", + "integrity": "sha512-R7FStIzyNcd7xKxCZH5lE0Bqy+hGTwS3LJjuv1ZVxd9O7eHCedSdrId/hMOd20I+v8wDXEn+bjfKDLzTepoaUw==", + "dev": true + }, + "@webassemblyjs/helper-wasm-section": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.9.0.tgz", + "integrity": "sha512-XnMB8l3ek4tvrKUUku+IVaXNHz2YsJyOOmz+MMkZvh8h1uSJpSen6vYnw3IoQ7WwEuAhL8Efjms1ZWjqh2agvw==", + "dev": true, + "requires": { + "@webassemblyjs/ast": "1.9.0", + "@webassemblyjs/helper-buffer": "1.9.0", + "@webassemblyjs/helper-wasm-bytecode": "1.9.0", + "@webassemblyjs/wasm-gen": "1.9.0" + } + }, + "@webassemblyjs/ieee754": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/@webassemblyjs/ieee754/-/ieee754-1.9.0.tgz", + "integrity": "sha512-dcX8JuYU/gvymzIHc9DgxTzUUTLexWwt8uCTWP3otys596io0L5aW02Gb1RjYpx2+0Jus1h4ZFqjla7umFniTg==", + "dev": true, + "requires": { + "@xtuc/ieee754": "^1.2.0" + } + }, + "@webassemblyjs/leb128": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/@webassemblyjs/leb128/-/leb128-1.9.0.tgz", + "integrity": "sha512-ENVzM5VwV1ojs9jam6vPys97B/S65YQtv/aanqnU7D8aSoHFX8GyhGg0CMfyKNIHBuAVjy3tlzd5QMMINa7wpw==", + "dev": true, + "requires": { + "@xtuc/long": "4.2.2" + } + }, + "@webassemblyjs/utf8": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/@webassemblyjs/utf8/-/utf8-1.9.0.tgz", + "integrity": "sha512-GZbQlWtopBTP0u7cHrEx+73yZKrQoBMpwkGEIqlacljhXCkVM1kMQge/Mf+csMJAjEdSwhOyLAS0AoR3AG5P8w==", + "dev": true + }, + "@webassemblyjs/wasm-edit": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-edit/-/wasm-edit-1.9.0.tgz", + "integrity": "sha512-FgHzBm80uwz5M8WKnMTn6j/sVbqilPdQXTWraSjBwFXSYGirpkSWE2R9Qvz9tNiTKQvoKILpCuTjBKzOIm0nxw==", + "dev": true, + "requires": { + "@webassemblyjs/ast": "1.9.0", + "@webassemblyjs/helper-buffer": "1.9.0", + "@webassemblyjs/helper-wasm-bytecode": "1.9.0", + "@webassemblyjs/helper-wasm-section": "1.9.0", + "@webassemblyjs/wasm-gen": "1.9.0", + "@webassemblyjs/wasm-opt": "1.9.0", + "@webassemblyjs/wasm-parser": "1.9.0", + "@webassemblyjs/wast-printer": "1.9.0" + } + }, + "@webassemblyjs/wasm-gen": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-gen/-/wasm-gen-1.9.0.tgz", + "integrity": "sha512-cPE3o44YzOOHvlsb4+E9qSqjc9Qf9Na1OO/BHFy4OI91XDE14MjFN4lTMezzaIWdPqHnsTodGGNP+iRSYfGkjA==", + "dev": true, + "requires": { + "@webassemblyjs/ast": "1.9.0", + "@webassemblyjs/helper-wasm-bytecode": "1.9.0", + "@webassemblyjs/ieee754": "1.9.0", + "@webassemblyjs/leb128": "1.9.0", + "@webassemblyjs/utf8": "1.9.0" + } + }, + "@webassemblyjs/wasm-opt": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-opt/-/wasm-opt-1.9.0.tgz", + "integrity": "sha512-Qkjgm6Anhm+OMbIL0iokO7meajkzQD71ioelnfPEj6r4eOFuqm4YC3VBPqXjFyyNwowzbMD+hizmprP/Fwkl2A==", + "dev": true, + "requires": { + "@webassemblyjs/ast": "1.9.0", + "@webassemblyjs/helper-buffer": "1.9.0", + "@webassemblyjs/wasm-gen": "1.9.0", + "@webassemblyjs/wasm-parser": "1.9.0" + } + }, + "@webassemblyjs/wasm-parser": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-parser/-/wasm-parser-1.9.0.tgz", + "integrity": "sha512-9+wkMowR2AmdSWQzsPEjFU7njh8HTO5MqO8vjwEHuM+AMHioNqSBONRdr0NQQ3dVQrzp0s8lTcYqzUdb7YgELA==", + "dev": true, + "requires": { + "@webassemblyjs/ast": "1.9.0", + "@webassemblyjs/helper-api-error": "1.9.0", + "@webassemblyjs/helper-wasm-bytecode": "1.9.0", + "@webassemblyjs/ieee754": "1.9.0", + "@webassemblyjs/leb128": "1.9.0", + "@webassemblyjs/utf8": "1.9.0" + } + }, + "@webassemblyjs/wast-parser": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wast-parser/-/wast-parser-1.9.0.tgz", + "integrity": "sha512-qsqSAP3QQ3LyZjNC/0jBJ/ToSxfYJ8kYyuiGvtn/8MK89VrNEfwj7BPQzJVHi0jGTRK2dGdJ5PRqhtjzoww+bw==", + "dev": true, + "requires": { + "@webassemblyjs/ast": "1.9.0", + "@webassemblyjs/floating-point-hex-parser": "1.9.0", + "@webassemblyjs/helper-api-error": "1.9.0", + "@webassemblyjs/helper-code-frame": "1.9.0", + "@webassemblyjs/helper-fsm": "1.9.0", + "@xtuc/long": "4.2.2" + } + }, + "@webassemblyjs/wast-printer": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wast-printer/-/wast-printer-1.9.0.tgz", + "integrity": "sha512-2J0nE95rHXHyQ24cWjMKJ1tqB/ds8z/cyeOZxJhcb+rW+SQASVjuznUSmdz5GpVJTzU8JkhYut0D3siFDD6wsA==", + "dev": true, + "requires": { + "@webassemblyjs/ast": "1.9.0", + "@webassemblyjs/wast-parser": "1.9.0", + "@xtuc/long": "4.2.2" + } + }, + "@xtuc/ieee754": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@xtuc/ieee754/-/ieee754-1.2.0.tgz", + "integrity": "sha512-DX8nKgqcGwsc0eJSqYt5lwP4DH5FlHnmuWWBRy7X0NcaGR0ZtuyeESgMwTYVEtxmsNGY+qit4QYT/MIYTOTPeA==", + "dev": true + }, + "@xtuc/long": { + "version": "4.2.2", + "resolved": "https://registry.npmjs.org/@xtuc/long/-/long-4.2.2.tgz", + "integrity": "sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ==", + "dev": true + }, "abab": { "version": "2.0.5", "resolved": "https://registry.npmjs.org/abab/-/abab-2.0.5.tgz", @@ -3006,6 +3263,24 @@ "uri-js": "^4.2.2" } }, + "ajv-errors": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/ajv-errors/-/ajv-errors-1.0.1.tgz", + "integrity": "sha512-DCRfO/4nQ+89p/RK43i8Ezd41EqdGIU4ld7nGF8OQ14oc/we5rEntLCUa7+jrn3nn83BosfwZA0wb4pon2o8iQ==", + "dev": true + }, + "ajv-keywords": { + "version": "3.5.2", + "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.5.2.tgz", + "integrity": "sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==", + "dev": true + }, + "alphanum-sort": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/alphanum-sort/-/alphanum-sort-1.0.2.tgz", + "integrity": "sha1-l6ERlkmyEa0zaR2fn0hqjsn74KM=", + "dev": true + }, "ansi-colors": { "version": "4.1.1", "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-4.1.1.tgz", @@ -3046,6 +3321,12 @@ "picomatch": "^2.0.4" } }, + "aproba": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/aproba/-/aproba-1.2.0.tgz", + "integrity": "sha512-Y9J6ZjXtoYh8RnXVCMOU/ttDmk1aBjunq9vO0ta5x85WDQiQfUF9sIPBITdbiiIVcBo03Hi3jMxigBtsddlXRw==", + "dev": true + }, "argparse": { "version": "1.0.10", "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", @@ -3140,6 +3421,53 @@ "safer-buffer": "~2.1.0" } }, + "asn1.js": { + "version": "5.4.1", + "resolved": "https://registry.npmjs.org/asn1.js/-/asn1.js-5.4.1.tgz", + "integrity": "sha512-+I//4cYPccV8LdmBLiX8CYvf9Sp3vQsrqu2QNXRcrbiWvcx/UdlFiqUJJzxRQxgsZmvhXhn4cSKeSmoFjVdupA==", + "dev": true, + "requires": { + "bn.js": "^4.0.0", + "inherits": "^2.0.1", + "minimalistic-assert": "^1.0.0", + "safer-buffer": "^2.1.0" + }, + "dependencies": { + "bn.js": { + "version": "4.12.0", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", + "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==", + "dev": true + } + } + }, + "assert": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/assert/-/assert-1.5.0.tgz", + "integrity": "sha512-EDsgawzwoun2CZkCgtxJbv392v4nbk9XDD06zI+kQYoBM/3RBWLlEyJARDOmhAAosBjWACEkKL6S+lIZtcAubA==", + "dev": true, + "requires": { + "object-assign": "^4.1.1", + "util": "0.10.3" + }, + "dependencies": { + "inherits": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.1.tgz", + "integrity": "sha1-sX0I0ya0Qj5Wjv9xn5GwscvfafE=", + "dev": true + }, + "util": { + "version": "0.10.3", + "resolved": "https://registry.npmjs.org/util/-/util-0.10.3.tgz", + "integrity": "sha1-evsa/lCAUkZInj23/g7TeTNqwPk=", + "dev": true, + "requires": { + "inherits": "2.0.1" + } + } + } + }, "assert-plus": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", @@ -3164,6 +3492,13 @@ "integrity": "sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ==", "dev": true }, + "async-each": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/async-each/-/async-each-1.0.3.tgz", + "integrity": "sha512-z/WhQ5FPySLdvREByI2vZiTWwCnF0moMJ1hK9YQwDTHKh6I7/uSckMetoRGb5UBZPC1z0jlw+n/XCgjeH7y1AQ==", + "dev": true, + "optional": true + }, "asynckit": { "version": "0.4.0", "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", @@ -3435,6 +3770,12 @@ } } }, + "base64-js": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz", + "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==", + "dev": true + }, "bcrypt-pbkdf": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz", @@ -3444,12 +3785,70 @@ "tweetnacl": "^0.14.3" } }, + "big.js": { + "version": "5.2.2", + "resolved": "https://registry.npmjs.org/big.js/-/big.js-5.2.2.tgz", + "integrity": "sha512-vyL2OymJxmarO8gxMr0mhChsO9QGwhynfuu4+MHTAW6czfq9humCB7rKpUjDd9YUiDPU4mzpyupFSvOClAwbmQ==", + "dev": true + }, "binary-extensions": { "version": "2.2.0", "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz", "integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==", "dev": true }, + "bl": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/bl/-/bl-4.1.0.tgz", + "integrity": "sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w==", + "dev": true, + "requires": { + "buffer": "^5.5.0", + "inherits": "^2.0.4", + "readable-stream": "^3.4.0" + }, + "dependencies": { + "buffer": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz", + "integrity": "sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==", + "dev": true, + "requires": { + "base64-js": "^1.3.1", + "ieee754": "^1.1.13" + } + }, + "readable-stream": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", + "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", + "dev": true, + "requires": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + } + } + } + }, + "bluebird": { + "version": "3.7.2", + "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.7.2.tgz", + "integrity": "sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg==", + "dev": true + }, + "bn.js": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-5.2.0.tgz", + "integrity": "sha512-D7iWRBvnZE8ecXiLj/9wbxH7Tk79fAh8IHaTNq1RWRixsS02W+5qS+iE9yq6RYl0asXx5tw0bLhmT5pIfbSquw==", + "dev": true + }, + "boolbase": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/boolbase/-/boolbase-1.0.0.tgz", + "integrity": "sha1-aN/1++YMUes3cl6p4+0xDcwed24=", + "dev": true + }, "brace-expansion": { "version": "1.1.11", "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", @@ -3489,6 +3888,12 @@ } } }, + "brorand": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/brorand/-/brorand-1.1.0.tgz", + "integrity": "sha1-EsJe/kCkXjwyPrhnWgoM5XsiNx8=", + "dev": true + }, "browser-process-hrtime": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/browser-process-hrtime/-/browser-process-hrtime-1.0.0.tgz", @@ -3512,6 +3917,98 @@ } } }, + "browserify-aes": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/browserify-aes/-/browserify-aes-1.2.0.tgz", + "integrity": "sha512-+7CHXqGuspUn/Sl5aO7Ea0xWGAtETPXNSAjHo48JfLdPWcMng33Xe4znFvQweqc/uzk5zSOI3H52CYnjCfb5hA==", + "dev": true, + "requires": { + "buffer-xor": "^1.0.3", + "cipher-base": "^1.0.0", + "create-hash": "^1.1.0", + "evp_bytestokey": "^1.0.3", + "inherits": "^2.0.1", + "safe-buffer": "^5.0.1" + } + }, + "browserify-cipher": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/browserify-cipher/-/browserify-cipher-1.0.1.tgz", + "integrity": "sha512-sPhkz0ARKbf4rRQt2hTpAHqn47X3llLkUGn+xEJzLjwY8LRs2p0v7ljvI5EyoRO/mexrNunNECisZs+gw2zz1w==", + "dev": true, + "requires": { + "browserify-aes": "^1.0.4", + "browserify-des": "^1.0.0", + "evp_bytestokey": "^1.0.0" + } + }, + "browserify-des": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/browserify-des/-/browserify-des-1.0.2.tgz", + "integrity": "sha512-BioO1xf3hFwz4kc6iBhI3ieDFompMhrMlnDFC4/0/vd5MokpuAc3R+LYbwTA9A5Yc9pq9UYPqffKpW2ObuwX5A==", + "dev": true, + "requires": { + "cipher-base": "^1.0.1", + "des.js": "^1.0.0", + "inherits": "^2.0.1", + "safe-buffer": "^5.1.2" + } + }, + "browserify-rsa": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/browserify-rsa/-/browserify-rsa-4.1.0.tgz", + "integrity": "sha512-AdEER0Hkspgno2aR97SAf6vi0y0k8NuOpGnVH3O99rcA5Q6sh8QxcngtHuJ6uXwnfAXNM4Gn1Gb7/MV1+Ymbog==", + "dev": true, + "requires": { + "bn.js": "^5.0.0", + "randombytes": "^2.0.1" + } + }, + "browserify-sign": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/browserify-sign/-/browserify-sign-4.2.1.tgz", + "integrity": "sha512-/vrA5fguVAKKAVTNJjgSm1tRQDHUU6DbwO9IROu/0WAzC8PKhucDSh18J0RMvVeHAn5puMd+QHC2erPRNf8lmg==", + "dev": true, + "requires": { + "bn.js": "^5.1.1", + "browserify-rsa": "^4.0.1", + "create-hash": "^1.2.0", + "create-hmac": "^1.1.7", + "elliptic": "^6.5.3", + "inherits": "^2.0.4", + "parse-asn1": "^5.1.5", + "readable-stream": "^3.6.0", + "safe-buffer": "^5.2.0" + }, + "dependencies": { + "readable-stream": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", + "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", + "dev": true, + "requires": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + } + }, + "safe-buffer": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", + "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", + "dev": true + } + } + }, + "browserify-zlib": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/browserify-zlib/-/browserify-zlib-0.2.0.tgz", + "integrity": "sha512-Z942RysHXmJrhqk88FmKBVq/v5tqmSkDz7p54G/MGyjMnCFFnC79XWNbg+Vta8W6Wb2qtSZTSxIGkJrRpCFEiA==", + "dev": true, + "requires": { + "pako": "~1.0.5" + } + }, "browserslist": { "version": "4.16.6", "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.16.6.tgz", @@ -3543,12 +4040,90 @@ "node-int64": "^0.4.0" } }, + "buffer": { + "version": "4.9.2", + "resolved": "https://registry.npmjs.org/buffer/-/buffer-4.9.2.tgz", + "integrity": "sha512-xq+q3SRMOxGivLhBNaUdC64hDTQwejJ+H0T/NB1XMtTVEwNTrfFF3gAxiyW0Bu/xWEGhjVKgUcMhCrUy2+uCWg==", + "dev": true, + "requires": { + "base64-js": "^1.0.2", + "ieee754": "^1.1.4", + "isarray": "^1.0.0" + } + }, "buffer-from": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.1.tgz", "integrity": "sha512-MQcXEUbCKtEo7bhqEs6560Hyd4XaovZlO/k9V3hjVUF/zwW7KBVdSK4gIt/bzwS9MbR5qob+F5jusZsb0YQK2A==", "dev": true }, + "buffer-xor": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/buffer-xor/-/buffer-xor-1.0.3.tgz", + "integrity": "sha1-JuYe0UIvtw3ULm42cp7VHYVf6Nk=", + "dev": true + }, + "builtin-status-codes": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/builtin-status-codes/-/builtin-status-codes-3.0.0.tgz", + "integrity": "sha1-hZgoeOIbmOHGZCXgPQF0eI9Wnug=", + "dev": true + }, + "bytes-iec": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/bytes-iec/-/bytes-iec-3.1.1.tgz", + "integrity": "sha512-fey6+4jDK7TFtFg/klGSvNKJctyU7n2aQdnM+CO0ruLPbqqMOM8Tio0Pc+deqUeVKX1tL5DQep1zQ7+37aTAsA==", + "dev": true + }, + "cacache": { + "version": "12.0.4", + "resolved": "https://registry.npmjs.org/cacache/-/cacache-12.0.4.tgz", + "integrity": "sha512-a0tMB40oefvuInr4Cwb3GerbL9xTj1D5yg0T5xrjGCGyfvbxseIXX7BAO/u/hIXdafzOI5JC3wDwHyf24buOAQ==", + "dev": true, + "requires": { + "bluebird": "^3.5.5", + "chownr": "^1.1.1", + "figgy-pudding": "^3.5.1", + "glob": "^7.1.4", + "graceful-fs": "^4.1.15", + "infer-owner": "^1.0.3", + "lru-cache": "^5.1.1", + "mississippi": "^3.0.0", + "mkdirp": "^0.5.1", + "move-concurrently": "^1.0.1", + "promise-inflight": "^1.0.1", + "rimraf": "^2.6.3", + "ssri": "^6.0.1", + "unique-filename": "^1.1.1", + "y18n": "^4.0.0" + }, + "dependencies": { + "lru-cache": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz", + "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==", + "dev": true, + "requires": { + "yallist": "^3.0.2" + } + }, + "rimraf": { + "version": "2.7.1", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", + "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", + "dev": true, + "requires": { + "glob": "^7.1.3" + } + }, + "yallist": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", + "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==", + "dev": true + } + } + }, "cache-base": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/cache-base/-/cache-base-1.0.1.tgz", @@ -3588,6 +4163,18 @@ "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", "dev": true }, + "caniuse-api": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/caniuse-api/-/caniuse-api-3.0.0.tgz", + "integrity": "sha512-bsTwuIg/BZZK/vreVTYYbSWoe2F+71P7K5QGEX+pT250DZbfU1MQ5prOKpPR+LL6uWKK3KMwMCAS74QB3Um1uw==", + "dev": true, + "requires": { + "browserslist": "^4.0.0", + "caniuse-lite": "^1.0.0", + "lodash.memoize": "^4.1.2", + "lodash.uniq": "^4.5.0" + } + }, "caniuse-lite": { "version": "1.0.30001221", "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001221.tgz", @@ -3683,12 +4270,40 @@ } } }, + "chownr": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/chownr/-/chownr-1.1.4.tgz", + "integrity": "sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg==", + "dev": true + }, + "chrome-trace-event": { + "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", "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-2.0.0.tgz", "integrity": "sha512-5tK7EtrZ0N+OLFMthtqOj4fI2Jeb88C4CAZPu25LDVUgXJ0A3Js4PMGqrn0JU1W0Mh1/Z8wZzYPxqUrXeBboCQ==", "dev": true }, + "ci-job-number": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/ci-job-number/-/ci-job-number-1.2.2.tgz", + "integrity": "sha512-CLOGsVDrVamzv8sXJGaILUVI6dsuAkouJP/n6t+OxLPeeA4DDby7zn9SB6EUpa1H7oIKoE+rMmkW80zYsFfUjA==", + "dev": true + }, + "cipher-base": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/cipher-base/-/cipher-base-1.0.4.tgz", + "integrity": "sha512-Kkht5ye6ZGmwv40uUDZztayT2ThLQGfnj/T71N/XzeZeo3nf8foyW7zGTsPYkEya3m5f3cAypH+qe7YOrM1U2Q==", + "dev": true, + "requires": { + "inherits": "^2.0.1", + "safe-buffer": "^5.0.1" + } + }, "cjs-module-lexer": { "version": "0.6.0", "resolved": "https://registry.npmjs.org/cjs-module-lexer/-/cjs-module-lexer-0.6.0.tgz", @@ -3727,6 +4342,12 @@ "restore-cursor": "^3.1.0" } }, + "cli-spinners": { + "version": "2.6.0", + "resolved": "https://registry.npmjs.org/cli-spinners/-/cli-spinners-2.6.0.tgz", + "integrity": "sha512-t+4/y50K/+4xcCRosKkA7W4gTr1MySvLV0q+PxmG7FJ5g+66ChKurYjxBCjHggHH3HA5Hh9cy+lcUGWDqVH+4Q==", + "dev": true + }, "cli-width": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/cli-width/-/cli-width-3.0.0.tgz", @@ -3761,6 +4382,12 @@ } } }, + "clone": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/clone/-/clone-1.0.4.tgz", + "integrity": "sha1-2jCcwmPfFZlMaIypAheco8fNfH4=", + "dev": true + }, "co": { "version": "4.6.0", "resolved": "https://registry.npmjs.org/co/-/co-4.6.0.tgz", @@ -3798,6 +4425,12 @@ "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=", "dev": true }, + "colord": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/colord/-/colord-2.0.0.tgz", + "integrity": "sha512-WMDFJfoY3wqPZNpKUFdse3HhD5BHCbE9JCdxRzoVH+ywRITGOeWAHNkGEmyxLlErEpN9OLMWgdM9dWQtDk5dog==", + "dev": true + }, "colorette": { "version": "1.2.2", "resolved": "https://registry.npmjs.org/colorette/-/colorette-1.2.2.tgz", @@ -3825,6 +4458,12 @@ "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", "dev": true }, + "commondir": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/commondir/-/commondir-1.0.1.tgz", + "integrity": "sha1-3dgA2gxmEnOTzKWVDqloo6rxJTs=", + "dev": true + }, "component-emitter": { "version": "1.3.0", "resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.3.0.tgz", @@ -3837,12 +4476,30 @@ "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=", "dev": true }, + "concat-stream": { + "version": "1.6.2", + "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.6.2.tgz", + "integrity": "sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw==", + "dev": true, + "requires": { + "buffer-from": "^1.0.0", + "inherits": "^2.0.3", + "readable-stream": "^2.2.2", + "typedarray": "^0.0.6" + } + }, "confusing-browser-globals": { "version": "1.0.10", "resolved": "https://registry.npmjs.org/confusing-browser-globals/-/confusing-browser-globals-1.0.10.tgz", "integrity": "sha512-gNld/3lySHwuhaVluJUKLePYirM3QNCKzVxqAdhJII9/WXKVX5PURzMVJspS1jTslSqjeuG4KMVTSouit5YPHA==", "dev": true }, + "console-browserify": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/console-browserify/-/console-browserify-1.2.0.tgz", + "integrity": "sha512-ZMkYO/LkF17QvCPqM0gxw8yUzigAOZOSWSHg91FH6orS7vcEj5dVZTidN2fQ14yBSdg97RqhSNwLUXInd52OTA==", + "dev": true + }, "console-testing-library": { "version": "0.3.1", "resolved": "https://registry.npmjs.org/console-testing-library/-/console-testing-library-0.3.1.tgz", @@ -3853,6 +4510,12 @@ "pretty-format": "^24.9.0" } }, + "constants-browserify": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/constants-browserify/-/constants-browserify-1.0.0.tgz", + "integrity": "sha1-wguW2MYXdIqvHBYCF2DNJ/y4y3U=", + "dev": true + }, "contains-path": { "version": "0.1.0", "resolved": "https://registry.npmjs.org/contains-path/-/contains-path-0.1.0.tgz", @@ -3874,6 +4537,31 @@ "integrity": "sha512-ZwrFkGJxUR3EIoXtO+yVE69Eb7KlixbaeAWfBQB9vVsNn/o+Yw69gBWSSDK825hQNdN+wF8zELf3dFNl/kxkUA==", "dev": true }, + "copy-concurrently": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/copy-concurrently/-/copy-concurrently-1.0.5.tgz", + "integrity": "sha512-f2domd9fsVDFtaFcbaRZuYXwtdmnzqbADSwhSWYxYB/Q8zsdUUFMXVRwXGDMWmbEzAn1kdRrtI1T/KTFOL4X2A==", + "dev": true, + "requires": { + "aproba": "^1.1.1", + "fs-write-stream-atomic": "^1.0.8", + "iferr": "^0.1.5", + "mkdirp": "^0.5.1", + "rimraf": "^2.5.4", + "run-queue": "^1.0.0" + }, + "dependencies": { + "rimraf": { + "version": "2.7.1", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", + "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", + "dev": true, + "requires": { + "glob": "^7.1.3" + } + } + } + }, "copy-descriptor": { "version": "0.1.1", "resolved": "https://registry.npmjs.org/copy-descriptor/-/copy-descriptor-0.1.1.tgz", @@ -3892,6 +4580,64 @@ "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=", "dev": true }, + "cosmiconfig": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-7.0.0.tgz", + "integrity": "sha512-pondGvTuVYDk++upghXJabWzL6Kxu6f26ljFw64Swq9v6sQPUL3EUlVDV56diOjpCayKihL6hVe8exIACU4XcA==", + "dev": true, + "requires": { + "@types/parse-json": "^4.0.0", + "import-fresh": "^3.2.1", + "parse-json": "^5.0.0", + "path-type": "^4.0.0", + "yaml": "^1.10.0" + } + }, + "create-ecdh": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/create-ecdh/-/create-ecdh-4.0.4.tgz", + "integrity": "sha512-mf+TCx8wWc9VpuxfP2ht0iSISLZnt0JgWlrOKZiNqyUZWnjIaCIVNQArMHnCZKfEYRg6IM7A+NeJoN8gf/Ws0A==", + "dev": true, + "requires": { + "bn.js": "^4.1.0", + "elliptic": "^6.5.3" + }, + "dependencies": { + "bn.js": { + "version": "4.12.0", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", + "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==", + "dev": true + } + } + }, + "create-hash": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/create-hash/-/create-hash-1.2.0.tgz", + "integrity": "sha512-z00bCGNHDG8mHAkP7CtT1qVu+bFQUPjYq/4Iv3C3kWjTFV10zIjfSoeqXo9Asws8gwSHDGj/hl2u4OGIjapeCg==", + "dev": true, + "requires": { + "cipher-base": "^1.0.1", + "inherits": "^2.0.1", + "md5.js": "^1.3.4", + "ripemd160": "^2.0.1", + "sha.js": "^2.4.0" + } + }, + "create-hmac": { + "version": "1.1.7", + "resolved": "https://registry.npmjs.org/create-hmac/-/create-hmac-1.1.7.tgz", + "integrity": "sha512-MJG9liiZ+ogc4TzUwuvbER1JRdgvUFSB5+VR/g5h82fGaIRWMWddtKBHi7/sVhfjQZ6SehlyhvQYrcYkaUIpLg==", + "dev": true, + "requires": { + "cipher-base": "^1.0.3", + "create-hash": "^1.1.0", + "inherits": "^2.0.1", + "ripemd160": "^2.0.0", + "safe-buffer": "^5.0.1", + "sha.js": "^2.4.8" + } + }, "cross-fetch": { "version": "3.1.4", "resolved": "https://registry.npmjs.org/cross-fetch/-/cross-fetch-3.1.4.tgz", @@ -3922,6 +4668,164 @@ } } }, + "crypto-browserify": { + "version": "3.12.0", + "resolved": "https://registry.npmjs.org/crypto-browserify/-/crypto-browserify-3.12.0.tgz", + "integrity": "sha512-fz4spIh+znjO2VjL+IdhEpRJ3YN6sMzITSBijk6FK2UvTqruSQW+/cCZTSNsMiZNvUeq0CqurF+dAbyiGOY6Wg==", + "dev": true, + "requires": { + "browserify-cipher": "^1.0.0", + "browserify-sign": "^4.0.0", + "create-ecdh": "^4.0.0", + "create-hash": "^1.1.0", + "create-hmac": "^1.1.0", + "diffie-hellman": "^5.0.0", + "inherits": "^2.0.1", + "pbkdf2": "^3.0.3", + "public-encrypt": "^4.0.0", + "randombytes": "^2.0.0", + "randomfill": "^1.0.3" + } + }, + "css-color-names": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/css-color-names/-/css-color-names-1.0.1.tgz", + "integrity": "sha512-/loXYOch1qU1biStIFsHH8SxTmOseh1IJqFvy8IujXOm1h+QjUdDhkzOrR5HG8K8mlxREj0yfi8ewCHx0eMxzA==", + "dev": true + }, + "css-declaration-sorter": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/css-declaration-sorter/-/css-declaration-sorter-6.0.3.tgz", + "integrity": "sha512-52P95mvW1SMzuRZegvpluT6yEv0FqQusydKQPZsNN5Q7hh8EwQvN8E2nwuJ16BBvNN6LcoIZXu/Bk58DAhrrxw==", + "dev": true, + "requires": { + "timsort": "^0.3.0" + } + }, + "css-loader": { + "version": "5.2.5", + "resolved": "https://registry.npmjs.org/css-loader/-/css-loader-5.2.5.tgz", + "integrity": "sha512-bH6QQacvSRtLX0lycAOs43S173n+lfXxB5cx4FjVkTLw5tAEwk5bxNLbkt5K1iETd5KxazRx70GpqOxsuwKiFA==", + "dev": true, + "requires": { + "icss-utils": "^5.1.0", + "loader-utils": "^2.0.0", + "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", + "postcss-modules-values": "^4.0.0", + "postcss-value-parser": "^4.1.0", + "schema-utils": "^3.0.0", + "semver": "^7.3.5" + } + }, + "css-select": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/css-select/-/css-select-3.1.2.tgz", + "integrity": "sha512-qmss1EihSuBNWNNhHjxzxSfJoFBM/lERB/Q4EnsJQQC62R2evJDW481091oAdOr9uh46/0n4nrg0It5cAnj1RA==", + "dev": true, + "requires": { + "boolbase": "^1.0.0", + "css-what": "^4.0.0", + "domhandler": "^4.0.0", + "domutils": "^2.4.3", + "nth-check": "^2.0.0" + } + }, + "css-tree": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/css-tree/-/css-tree-1.1.3.tgz", + "integrity": "sha512-tRpdppF7TRazZrjJ6v3stzv93qxRcSsFmW6cX0Zm2NVKpxE1WV1HblnghVv9TreireHkqI/VDEsfolRF1p6y7Q==", + "dev": true, + "requires": { + "mdn-data": "2.0.14", + "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 + } + } + }, + "css-what": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/css-what/-/css-what-4.0.0.tgz", + "integrity": "sha512-teijzG7kwYfNVsUh2H/YN62xW3KK9YhXEgSlbxMlcyjPNvdKJqFx5lrwlJgoFP1ZHlB89iGDlo/JyshKeRhv5A==", + "dev": true + }, + "cssesc": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/cssesc/-/cssesc-3.0.0.tgz", + "integrity": "sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==", + "dev": true + }, + "cssnano": { + "version": "5.0.4", + "resolved": "https://registry.npmjs.org/cssnano/-/cssnano-5.0.4.tgz", + "integrity": "sha512-I+fDW74CJ4yb31765ov9xXe70XLZvFTXjwhmA//VgAAuSAU34Oblbe94Q9zffiCX1VhcSfQWARQnwhz+Nqgb4Q==", + "dev": true, + "requires": { + "cosmiconfig": "^7.0.0", + "cssnano-preset-default": "^5.1.1", + "is-resolvable": "^1.1.0" + } + }, + "cssnano-preset-default": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/cssnano-preset-default/-/cssnano-preset-default-5.1.1.tgz", + "integrity": "sha512-kAhR71Tascmnjlhl4UegGA3KGGbMLXHkkqVpA9idsRT1JmIhIsz1C3tDpBeQMUw5EX5Rfb1HGc/PRqD2AFk3Vg==", + "dev": true, + "requires": { + "css-declaration-sorter": "^6.0.3", + "cssnano-utils": "^2.0.1", + "postcss-calc": "^8.0.0", + "postcss-colormin": "^5.1.1", + "postcss-convert-values": "^5.0.1", + "postcss-discard-comments": "^5.0.1", + "postcss-discard-duplicates": "^5.0.1", + "postcss-discard-empty": "^5.0.1", + "postcss-discard-overridden": "^5.0.1", + "postcss-merge-longhand": "^5.0.2", + "postcss-merge-rules": "^5.0.1", + "postcss-minify-font-values": "^5.0.1", + "postcss-minify-gradients": "^5.0.1", + "postcss-minify-params": "^5.0.1", + "postcss-minify-selectors": "^5.1.0", + "postcss-normalize-charset": "^5.0.1", + "postcss-normalize-display-values": "^5.0.1", + "postcss-normalize-positions": "^5.0.1", + "postcss-normalize-repeat-style": "^5.0.1", + "postcss-normalize-string": "^5.0.1", + "postcss-normalize-timing-functions": "^5.0.1", + "postcss-normalize-unicode": "^5.0.1", + "postcss-normalize-url": "^5.0.1", + "postcss-normalize-whitespace": "^5.0.1", + "postcss-ordered-values": "^5.0.1", + "postcss-reduce-initial": "^5.0.1", + "postcss-reduce-transforms": "^5.0.1", + "postcss-svgo": "^5.0.1", + "postcss-unique-selectors": "^5.0.1" + } + }, + "cssnano-utils": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/cssnano-utils/-/cssnano-utils-2.0.1.tgz", + "integrity": "sha512-i8vLRZTnEH9ubIyfdZCAdIdgnHAUeQeByEeQ2I7oTilvP9oHO6RScpeq3GsFUVqeB8uZgOQ9pw8utofNn32hhQ==", + "dev": true + }, + "csso": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/csso/-/csso-4.2.0.tgz", + "integrity": "sha512-wvlcdIbf6pwKEk7vHj8/Bkc0B4ylXZruLvOgs9doS5eOsOpuodOV2zJChSpkp+pRpYQLQMeF04nr3Z68Sta9jA==", + "dev": true, + "requires": { + "css-tree": "^1.1.2" + } + }, "cssom": { "version": "0.4.4", "resolved": "https://registry.npmjs.org/cssom/-/cssom-0.4.4.tgz", @@ -3951,6 +4855,12 @@ "integrity": "sha512-jXKhWqXPmlUeoQnF/EhTtTl4C9SnrxSH/jZUih3jmO6lBKr99rP3/+FmrMj4EFpOXzMtXHAZkd3x0E6h6Fgflw==", "dev": true }, + "cyclist": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/cyclist/-/cyclist-1.0.1.tgz", + "integrity": "sha1-WW6WmP0MgOEgOMK4LW6xs1tiJNk=", + "dev": true + }, "damerau-levenshtein": { "version": "1.0.6", "resolved": "https://registry.npmjs.org/damerau-levenshtein/-/damerau-levenshtein-1.0.6.tgz", @@ -4016,6 +4926,15 @@ "integrity": "sha512-FJ3UgI4gIl+PHZm53knsuSFpE+nESMr7M4v9QcgB7S63Kj/6WqMiFQJpBBYz1Pt+66bZpP3Q7Lye0Oo9MPKEdg==", "dev": true }, + "defaults": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/defaults/-/defaults-1.0.3.tgz", + "integrity": "sha1-xlYFHpgX2f8I7YgUd/P+QBnz730=", + "dev": true, + "requires": { + "clone": "^1.0.2" + } + }, "define-properties": { "version": "1.1.3", "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.3.tgz", @@ -4072,6 +4991,16 @@ "integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk=", "dev": true }, + "des.js": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/des.js/-/des.js-1.0.1.tgz", + "integrity": "sha512-Q0I4pfFrv2VPd34/vfLrFOoRmlYj3OV50i7fskps1jZWK1kApMWWT9G6RRUeYedLcBDIhnSDaUvJMb3AhUlaEA==", + "dev": true, + "requires": { + "inherits": "^2.0.1", + "minimalistic-assert": "^1.0.0" + } + }, "detect-newline": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/detect-newline/-/detect-newline-3.1.0.tgz", @@ -4084,6 +5013,25 @@ "integrity": "sha512-Dj6Wk3tWyTE+Fo1rW8v0Xhwk80um6yFYKbuAxc9c3EZxIHFDYwbi34Uk42u1CdnIiVorvt4RmlSDjIPyzGC2ew==", "dev": true }, + "diffie-hellman": { + "version": "5.0.3", + "resolved": "https://registry.npmjs.org/diffie-hellman/-/diffie-hellman-5.0.3.tgz", + "integrity": "sha512-kqag/Nl+f3GwyK25fhUMYj81BUOrZ9IuJsjIcDE5icNM9FJHAVm3VcUDxdLPoQtTuUylWm6ZIknYJwwaPxsUzg==", + "dev": true, + "requires": { + "bn.js": "^4.1.0", + "miller-rabin": "^4.0.0", + "randombytes": "^2.0.0" + }, + "dependencies": { + "bn.js": { + "version": "4.12.0", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", + "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==", + "dev": true + } + } + }, "dir-glob": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz", @@ -4108,6 +5056,29 @@ "integrity": "sha512-TvrjBckDy2c6v6RLxPv5QXOnU+SmF9nBII5621Ve5fu6Z/BDrENurBEvlC1f44lKEUVqOpK4w9E5Idc5/EgkLQ==", "dev": true }, + "dom-serializer": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-1.3.2.tgz", + "integrity": "sha512-5c54Bk5Dw4qAxNOI1pFEizPSjVsx5+bpJKmL2kPn8JhBUq2q09tTCa3mjijun2NfK78NMouDYNMBkOrPZiS+ig==", + "dev": true, + "requires": { + "domelementtype": "^2.0.1", + "domhandler": "^4.2.0", + "entities": "^2.0.0" + } + }, + "domain-browser": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/domain-browser/-/domain-browser-1.2.0.tgz", + "integrity": "sha512-jnjyiM6eRyZl2H+W8Q/zLMA481hzi0eszAaBUzIVnmYVDBbnLxVNnfu1HgEBvCbL+71FrxMl3E6lpKH7Ge3OXA==", + "dev": true + }, + "domelementtype": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-2.2.0.tgz", + "integrity": "sha512-DtBMo82pv1dFtUmHyr48beiuq792Sxohr+8Hm9zoxklYPfa6n0Z3Byjj2IV7bmr2IyqClnqEQhfgHJJ5QF0R5A==", + "dev": true + }, "domexception": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/domexception/-/domexception-2.0.1.tgz", @@ -4125,6 +5096,44 @@ } } }, + "domhandler": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-4.2.0.tgz", + "integrity": "sha512-zk7sgt970kzPks2Bf+dwT/PLzghLnsivb9CcxkvR8Mzr66Olr0Ofd8neSbglHJHaHa2MadfoSdNlKYAaafmWfA==", + "dev": true, + "requires": { + "domelementtype": "^2.2.0" + } + }, + "domutils": { + "version": "2.6.0", + "resolved": "https://registry.npmjs.org/domutils/-/domutils-2.6.0.tgz", + "integrity": "sha512-y0BezHuy4MDYxh6OvolXYsH+1EMGmFbwv5FKW7ovwMG6zTPWqNPq3WF9ayZssFq+UlKdffGLbOEaghNdaOm1WA==", + "dev": true, + "requires": { + "dom-serializer": "^1.0.1", + "domelementtype": "^2.2.0", + "domhandler": "^4.2.0" + } + }, + "duplexer": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/duplexer/-/duplexer-0.1.2.tgz", + "integrity": "sha512-jtD6YG370ZCIi/9GTaJKQxWTZD045+4R4hTk/x1UyoqadyJ9x9CgSi1RlVDQF8U2sxLLSnFkCaMihqljHIWgMg==", + "dev": true + }, + "duplexify": { + "version": "3.7.1", + "resolved": "https://registry.npmjs.org/duplexify/-/duplexify-3.7.1.tgz", + "integrity": "sha512-07z8uv2wMyS51kKhD1KsdXJg5WQ6t93RneqRxUHnskXVtlYYkLqM0gqStQZ3pj073g687jPCHrqNfCzawLYh5g==", + "dev": true, + "requires": { + "end-of-stream": "^1.0.0", + "inherits": "^2.0.1", + "readable-stream": "^2.0.0", + "stream-shift": "^1.0.0" + } + }, "ecc-jsbn": { "version": "0.1.2", "resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz", @@ -4141,6 +5150,29 @@ "integrity": "sha512-dw7WmrSu/JwtACiBzth8cuKf62NKL1xVJuNvyOg0jvruN/n4NLtGYoTzciQquCPNaS2eR+BT5GrxHbslfc/w1w==", "dev": true }, + "elliptic": { + "version": "6.5.4", + "resolved": "https://registry.npmjs.org/elliptic/-/elliptic-6.5.4.tgz", + "integrity": "sha512-iLhC6ULemrljPZb+QutR5TQGB+pdW6KGD5RSegS+8sorOZT+rdQFbsQFJgvN3eRqNALqJer4oQ16YvJHlU8hzQ==", + "dev": true, + "requires": { + "bn.js": "^4.11.9", + "brorand": "^1.1.0", + "hash.js": "^1.0.0", + "hmac-drbg": "^1.0.1", + "inherits": "^2.0.4", + "minimalistic-assert": "^1.0.1", + "minimalistic-crypto-utils": "^1.0.1" + }, + "dependencies": { + "bn.js": { + "version": "4.12.0", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", + "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==", + "dev": true + } + } + }, "emittery": { "version": "0.7.2", "resolved": "https://registry.npmjs.org/emittery/-/emittery-0.7.2.tgz", @@ -4153,6 +5185,12 @@ "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", "dev": true }, + "emojis-list": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/emojis-list/-/emojis-list-3.0.0.tgz", + "integrity": "sha512-/kyM18EfinwXZbno9FyUGeFh87KC8HRQBQGildHZbEuRyWFOmv1U10o9BBp8XVZDVNNuQKyIGIu5ZYAAXJ0V2Q==", + "dev": true + }, "end-of-stream": { "version": "1.4.4", "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz", @@ -4162,6 +5200,29 @@ "once": "^1.4.0" } }, + "enhanced-resolve": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-4.5.0.tgz", + "integrity": "sha512-Nv9m36S/vxpsI+Hc4/ZGRs0n9mXqSWGGq49zxb/cJfPAQMbUtttJAlNPS4AQzaBdw/pKskw5bMbekT/Y7W/Wlg==", + "dev": true, + "requires": { + "graceful-fs": "^4.1.2", + "memory-fs": "^0.5.0", + "tapable": "^1.0.0" + }, + "dependencies": { + "memory-fs": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/memory-fs/-/memory-fs-0.5.0.tgz", + "integrity": "sha512-jA0rdU5KoQMC0e6ppoNRtpp6vjFq6+NY7r8hywnC7V+1Xj/MtHwGIbB1QaK/dunyjWteJzmkpd7ooeWg10T7GA==", + "dev": true, + "requires": { + "errno": "^0.1.3", + "readable-stream": "^2.0.1" + } + } + } + }, "enquirer": { "version": "2.3.6", "resolved": "https://registry.npmjs.org/enquirer/-/enquirer-2.3.6.tgz", @@ -4171,6 +5232,21 @@ "ansi-colors": "^4.1.1" } }, + "entities": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/entities/-/entities-2.2.0.tgz", + "integrity": "sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A==", + "dev": true + }, + "errno": { + "version": "0.1.8", + "resolved": "https://registry.npmjs.org/errno/-/errno-0.1.8.tgz", + "integrity": "sha512-dJ6oBr5SQ1VSd9qkk7ByRgb/1SH4JZjCHSW/mr63/QcXO9zLVxvJ6Oy13nio03rxpSnVDDjFor75SjVeZWPW/A==", + "dev": true, + "requires": { + "prr": "~1.0.1" + } + }, "error-ex": { "version": "1.3.2", "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz", @@ -4922,6 +5998,16 @@ "integrity": "sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==", "dev": true }, + "evp_bytestokey": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/evp_bytestokey/-/evp_bytestokey-1.0.3.tgz", + "integrity": "sha512-/f2Go4TognH/KvCISP7OUsHn85hT9nUkxxA9BEWxFn+Oj9o8ZNLm/40hdlgSLyuOimsrTKLUMEorQexp/aPQeA==", + "dev": true, + "requires": { + "md5.js": "^1.3.4", + "safe-buffer": "^5.1.1" + } + }, "exec-sh": { "version": "0.3.6", "resolved": "https://registry.npmjs.org/exec-sh/-/exec-sh-0.3.6.tgz", @@ -5231,6 +6317,12 @@ "bser": "2.1.1" } }, + "figgy-pudding": { + "version": "3.5.2", + "resolved": "https://registry.npmjs.org/figgy-pudding/-/figgy-pudding-3.5.2.tgz", + "integrity": "sha512-0btnI/H8f2pavGMN8w40mlSKOfTK2SVJmBfBeVIj3kNw0swwgzyRq0d5TJVOwodFmtvpPeWPN/MCcfuWF0Ezbw==", + "dev": true + }, "figures": { "version": "3.2.0", "resolved": "https://registry.npmjs.org/figures/-/figures-3.2.0.tgz", @@ -5249,6 +6341,16 @@ "flat-cache": "^3.0.4" } }, + "file-loader": { + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/file-loader/-/file-loader-6.2.0.tgz", + "integrity": "sha512-qo3glqyTa61Ytg4u73GultjHGjdRyig3tG6lPtyX/jOEJvHif9uB0/OCI2Kif6ctF3caQTW2G5gym21oAsI4pw==", + "dev": true, + "requires": { + "loader-utils": "^2.0.0", + "schema-utils": "^3.0.0" + } + }, "fill-range": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz", @@ -5278,42 +6380,130 @@ "integrity": "sha512-zrXoV1Uaz52DqPs+qEwNJWJFAWZpYJ47UNmpN9q4j+/EYsz85uV0DC9k8tRND5kYmoVzL0W+Y75q4Rg8sRJCdg==", "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" - } - }, - "flat-cache": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-3.0.4.tgz", - "integrity": "sha512-dm9s5Pw7Jc0GvMYbshN6zchCA9RgQlzzEZX3vylR9IqFfS8XciblUXOKfW6SiuJ0e13eDYZoZV5wdrev7P3Nwg==", - "dev": true, - "requires": { - "flatted": "^3.1.0", - "rimraf": "^3.0.2" - } - }, - "flatted": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.1.1.tgz", - "integrity": "sha512-zAoAQiudy+r5SvnSw3KJy5os/oRJYHzrzja/tBDqrZtNhUw8bt6y8OBzMWcjWr+8liV8Eb6yOhw8WZ7VFZ5ZzA==", - "dev": true - }, - "follow-redirects": { - "version": "1.5.10", - "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.5.10.tgz", - "integrity": "sha512-0V5l4Cizzvqt5D44aTXbFZz+FtyXV1vrDN6qrelxtfYQKW0KO0W2T/hkE8xvGa/540LkZlkaUjO4ailYTFtHVQ==", + "find-cache-dir": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-2.1.0.tgz", + "integrity": "sha512-Tq6PixE0w/VMFfCgbONnkiQIVol/JJL7nRMi20fqzA4NRs9AfeqMGeRdPi3wIhYkxjeBaWh2rxwapn5Tu3IqOQ==", "dev": true, "requires": { - "debug": "=3.1.0" + "commondir": "^1.0.1", + "make-dir": "^2.0.0", + "pkg-dir": "^3.0.0" }, "dependencies": { - "debug": { + "find-up": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz", + "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==", + "dev": true, + "requires": { + "locate-path": "^3.0.0" + } + }, + "locate-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz", + "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==", + "dev": true, + "requires": { + "p-locate": "^3.0.0", + "path-exists": "^3.0.0" + } + }, + "make-dir": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-2.1.0.tgz", + "integrity": "sha512-LS9X+dc8KLxXCb8dni79fLIIUA5VyZoyjSMCwTluaXA0o27cCK0bhXkpgw+sTXVpPy/lSO57ilRixqk0vDmtRA==", + "dev": true, + "requires": { + "pify": "^4.0.1", + "semver": "^5.6.0" + } + }, + "p-locate": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz", + "integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==", + "dev": true, + "requires": { + "p-limit": "^2.0.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 + }, + "pify": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz", + "integrity": "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==", + "dev": true + }, + "pkg-dir": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-3.0.0.tgz", + "integrity": "sha512-/E57AYkoeQ25qkxMj5PBOVgF8Kiu/h7cYS30Z5+R7WaiCCBfLq58ZI/dSeaEKb9WVJV5n/03QwrN3IeWIFllvw==", + "dev": true, + "requires": { + "find-up": "^3.0.0" + } + }, + "semver": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", + "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", + "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" + } + }, + "flat-cache": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-3.0.4.tgz", + "integrity": "sha512-dm9s5Pw7Jc0GvMYbshN6zchCA9RgQlzzEZX3vylR9IqFfS8XciblUXOKfW6SiuJ0e13eDYZoZV5wdrev7P3Nwg==", + "dev": true, + "requires": { + "flatted": "^3.1.0", + "rimraf": "^3.0.2" + } + }, + "flatted": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.1.1.tgz", + "integrity": "sha512-zAoAQiudy+r5SvnSw3KJy5os/oRJYHzrzja/tBDqrZtNhUw8bt6y8OBzMWcjWr+8liV8Eb6yOhw8WZ7VFZ5ZzA==", + "dev": true + }, + "flush-write-stream": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/flush-write-stream/-/flush-write-stream-1.1.1.tgz", + "integrity": "sha512-3Z4XhFZ3992uIq0XOqb9AreonueSYphE6oYbpt5+3u06JWklbsPkNv3ZKkP9Bz/r+1MWCaMoSQ28P85+1Yc77w==", + "dev": true, + "requires": { + "inherits": "^2.0.3", + "readable-stream": "^2.3.6" + } + }, + "follow-redirects": { + "version": "1.5.10", + "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.5.10.tgz", + "integrity": "sha512-0V5l4Cizzvqt5D44aTXbFZz+FtyXV1vrDN6qrelxtfYQKW0KO0W2T/hkE8xvGa/540LkZlkaUjO4ailYTFtHVQ==", + "dev": true, + "requires": { + "debug": "=3.1.0" + }, + "dependencies": { + "debug": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz", "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==", @@ -5371,6 +6561,16 @@ "map-cache": "^0.2.2" } }, + "from2": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/from2/-/from2-2.3.0.tgz", + "integrity": "sha1-i/tVAr3kpNNs/e6gB/zKIdfjgq8=", + "dev": true, + "requires": { + "inherits": "^2.0.1", + "readable-stream": "^2.0.0" + } + }, "fs-extra": { "version": "9.1.0", "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-9.1.0.tgz", @@ -5401,6 +6601,18 @@ } } }, + "fs-write-stream-atomic": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/fs-write-stream-atomic/-/fs-write-stream-atomic-1.0.10.tgz", + "integrity": "sha1-tH31NJPvkR33VzHnCp3tAYnbQMk=", + "dev": true, + "requires": { + "graceful-fs": "^4.1.2", + "iferr": "^0.1.5", + "imurmurhash": "^0.1.4", + "readable-stream": "1 || 2" + } + }, "fs.realpath": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", @@ -5555,6 +6767,15 @@ "dev": true, "optional": true }, + "gzip-size": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/gzip-size/-/gzip-size-6.0.0.tgz", + "integrity": "sha512-ax7ZYomf6jqPTQ4+XCpUGyXKHk5WweS+e05MBO4/y3WJ5RkmPXNKvX+bx1behVILVwr6JSQvZAku021CHPXG3Q==", + "dev": true, + "requires": { + "duplexer": "^0.1.2" + } + }, "har-schema": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/har-schema/-/har-schema-2.0.0.tgz", @@ -5630,12 +6851,69 @@ } } }, + "hash-base": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/hash-base/-/hash-base-3.1.0.tgz", + "integrity": "sha512-1nmYp/rhMDiE7AYkDw+lLwlAzz0AntGIe51F3RfFfEqyQ3feY2eI/NcwC6umIQVOASPMsWJLJScWKSSvzL9IVA==", + "dev": true, + "requires": { + "inherits": "^2.0.4", + "readable-stream": "^3.6.0", + "safe-buffer": "^5.2.0" + }, + "dependencies": { + "readable-stream": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", + "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", + "dev": true, + "requires": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + } + }, + "safe-buffer": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", + "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", + "dev": true + } + } + }, + "hash.js": { + "version": "1.1.7", + "resolved": "https://registry.npmjs.org/hash.js/-/hash.js-1.1.7.tgz", + "integrity": "sha512-taOaskGt4z4SOANNseOviYDvjEJinIkRgmp7LbKP2YTTmVxWBl87s/uzK9r+44BclBSp2X7K1hqeNfz9JbBeXA==", + "dev": true, + "requires": { + "inherits": "^2.0.3", + "minimalistic-assert": "^1.0.1" + } + }, "headers-utils": { "version": "3.0.2", "resolved": "https://registry.npmjs.org/headers-utils/-/headers-utils-3.0.2.tgz", "integrity": "sha512-xAxZkM1dRyGV2Ou5bzMxBPNLoRCjcX+ya7KSWybQD2KwLphxsapUVK6x/02o7f4VU6GPSXch9vNY2+gkU8tYWQ==", "dev": true }, + "hex-color-regex": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/hex-color-regex/-/hex-color-regex-1.1.0.tgz", + "integrity": "sha512-l9sfDFsuqtOqKDsQdqrMRk0U85RZc0RtOR9yPI7mRVOa4FsR/BVnZ0shmQRM96Ji99kYZP/7hn1cedc1+ApsTQ==", + "dev": true + }, + "hmac-drbg": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/hmac-drbg/-/hmac-drbg-1.0.1.tgz", + "integrity": "sha1-0nRXAQJabHdabFRXk+1QL8DGSaE=", + "dev": true, + "requires": { + "hash.js": "^1.0.3", + "minimalistic-assert": "^1.0.0", + "minimalistic-crypto-utils": "^1.0.1" + } + }, "hoist-non-react-statics": { "version": "3.3.2", "resolved": "https://registry.npmjs.org/hoist-non-react-statics/-/hoist-non-react-statics-3.3.2.tgz", @@ -5651,6 +6929,18 @@ "integrity": "sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw==", "dev": true }, + "hsl-regex": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/hsl-regex/-/hsl-regex-1.0.0.tgz", + "integrity": "sha1-1JMwx4ntgZ4nakwNJy3/owsY/m4=", + "dev": true + }, + "hsla-regex": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/hsla-regex/-/hsla-regex-1.0.0.tgz", + "integrity": "sha1-wc56MWjIxmFAM6S194d/OyJfnDg=", + "dev": true + }, "html-encoding-sniffer": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/html-encoding-sniffer/-/html-encoding-sniffer-2.0.1.tgz", @@ -5677,6 +6967,12 @@ "sshpk": "^1.7.0" } }, + "https-browserify": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/https-browserify/-/https-browserify-1.0.0.tgz", + "integrity": "sha1-7AbBDgo0wPL68Zn3/X/Hj//QPHM=", + "dev": true + }, "human-signals": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-1.1.1.tgz", @@ -5692,6 +6988,24 @@ "safer-buffer": ">= 2.1.2 < 3" } }, + "icss-utils": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/icss-utils/-/icss-utils-5.1.0.tgz", + "integrity": "sha512-soFhflCVWLfRNOPU3iv5Z9VUdT44xFRbzjLsEzSr5AQmgqPMTHdU3PMT1Cf1ssx8fLNJDA1juftYl+PUcv3MqA==", + "dev": true + }, + "ieee754": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz", + "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==", + "dev": true + }, + "iferr": { + "version": "0.1.5", + "resolved": "https://registry.npmjs.org/iferr/-/iferr-0.1.5.tgz", + "integrity": "sha1-xg7taebY/bazEEofy8ocGS3FtQE=", + "dev": true + }, "ignore": { "version": "4.0.6", "resolved": "https://registry.npmjs.org/ignore/-/ignore-4.0.6.tgz", @@ -5743,6 +7057,12 @@ "integrity": "sha1-khi5srkoojixPcT7a21XbyMUU+o=", "dev": true }, + "infer-owner": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/infer-owner/-/infer-owner-1.0.4.tgz", + "integrity": "sha512-IClj+Xz94+d7irH5qRyfJonOdfTzuDaifE6ZPWfx0N0+/ATZCbuTPq2prFl526urkQd90WyUKIh1DfBQ2hMz9A==", + "dev": true + }, "inflight": { "version": "1.0.6", "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", @@ -5866,6 +7186,12 @@ "loose-envify": "^1.0.0" } }, + "is-absolute-url": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/is-absolute-url/-/is-absolute-url-3.0.3.tgz", + "integrity": "sha512-opmNIX7uFnS96NtPmhWQgQx6/NYFgsUXYMllcfzwWKUMwfo8kku1TvE6hkNcH+Q1ts5cMVrsY7j0bxXQDciu9Q==", + "dev": true + }, "is-accessor-descriptor": { "version": "0.1.6", "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", @@ -5937,6 +7263,28 @@ "ci-info": "^2.0.0" } }, + "is-color-stop": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-color-stop/-/is-color-stop-1.1.0.tgz", + "integrity": "sha1-z/9HGu5N1cnhWFmPvhKWe1za00U=", + "dev": true, + "requires": { + "css-color-names": "^0.0.4", + "hex-color-regex": "^1.1.0", + "hsl-regex": "^1.0.0", + "hsla-regex": "^1.0.0", + "rgb-regex": "^1.0.1", + "rgba-regex": "^1.0.0" + }, + "dependencies": { + "css-color-names": { + "version": "0.0.4", + "resolved": "https://registry.npmjs.org/css-color-names/-/css-color-names-0.0.4.tgz", + "integrity": "sha1-gIrcLnnPhHOAabZGyyDsJ762KeA=", + "dev": true + } + } + }, "is-core-module": { "version": "2.3.0", "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.3.0.tgz", @@ -6031,6 +7379,12 @@ "is-extglob": "^2.1.1" } }, + "is-interactive": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-interactive/-/is-interactive-1.0.0.tgz", + "integrity": "sha512-2HvIEKRoqS62guEC+qBjpvRubdX910WCMuJTZ+I9yvqKU2/12eSL549HMwtabb4oupdj2sMP50k+XJfB/8JE6w==", + "dev": true + }, "is-negative-zero": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.1.tgz", @@ -6088,6 +7442,12 @@ "has-symbols": "^1.0.1" } }, + "is-resolvable": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-resolvable/-/is-resolvable-1.1.0.tgz", + "integrity": "sha512-qgDYXFSR5WvEfuS5dMj6oTMEbrrSaM0CrFk2Yiq/gXnBvD9pMa2jGXxyhGLfvhZpuMZe18CJpFxAt3CRs42NMg==", + "dev": true + }, "is-stream": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz", @@ -6115,6 +7475,12 @@ "integrity": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=", "dev": true }, + "is-unicode-supported": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/is-unicode-supported/-/is-unicode-supported-0.1.0.tgz", + "integrity": "sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw==", + "dev": true + }, "is-windows": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/is-windows/-/is-windows-1.0.2.tgz", @@ -9676,6 +11042,12 @@ "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==", "dev": true }, + "json-parse-better-errors": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz", + "integrity": "sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw==", + "dev": true + }, "json-parse-even-better-errors": { "version": "2.3.1", "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz", @@ -9773,6 +11145,16 @@ "language-subtag-registry": "~0.3.2" } }, + "last-call-webpack-plugin": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/last-call-webpack-plugin/-/last-call-webpack-plugin-3.0.0.tgz", + "integrity": "sha512-7KI2l2GIZa9p2spzPIVZBYyNKkN+e/SQPpnjlTiPhdbDW3F86tdKKELxKpzJ5sgU19wQWsACULZmpTPYHeWO5w==", + "dev": true, + "requires": { + "lodash": "^4.17.5", + "webpack-sources": "^1.1.0" + } + }, "leven": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/leven/-/leven-3.1.0.tgz", @@ -9789,6 +11171,12 @@ "type-check": "~0.3.2" } }, + "lilconfig": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/lilconfig/-/lilconfig-2.0.2.tgz", + "integrity": "sha512-4zUThttj8TQ4N7Pps92Z79jPf1OMcll4m61pivQSVk5MT78hVhNa2LrKTuNYD0AGLpmpf7zeIKOxSt6hHBfypw==", + "dev": true + }, "lines-and-columns": { "version": "1.1.6", "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.1.6.tgz", @@ -9824,6 +11212,23 @@ } } }, + "loader-runner": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/loader-runner/-/loader-runner-2.4.0.tgz", + "integrity": "sha512-Jsmr89RcXGIwivFY21FcRrisYZfvLMTWx5kOLc+JTxtpBOG6xML0vzbc6SEQG2FO9/4Fc3wW4LVcB5DmGflaRw==", + "dev": true + }, + "loader-utils": { + "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", + "json5": "^2.1.2" + } + }, "locate-path": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", @@ -9863,12 +11268,85 @@ "integrity": "sha1-QVxEePK8wwEgwizhDtMib30+GOA=", "dev": true }, + "lodash.memoize": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/lodash.memoize/-/lodash.memoize-4.1.2.tgz", + "integrity": "sha1-vMbEmkKihA7Zl/Mj6tpezRguC/4=", + "dev": true + }, "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": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/lodash.uniq/-/lodash.uniq-4.5.0.tgz", + "integrity": "sha1-0CJTc662Uq3BvILklFM5qEJ1R3M=", + "dev": true + }, + "log-symbols": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-4.1.0.tgz", + "integrity": "sha512-8XPvpAA8uyhfteu8pIvQxpJZ7SYYdpUivZpGy6sFsBuKRY/7rQGavedeB8aK+Zkyq6upMFVL/9AW6vOYzfRyLg==", + "dev": true, + "requires": { + "chalk": "^4.1.0", + "is-unicode-supported": "^0.1.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" + } + } + } + }, "loose-envify": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz", @@ -9949,10 +11427,37 @@ "object-visit": "^1.0.0" } }, - "merge-source-map": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/merge-source-map/-/merge-source-map-1.1.0.tgz", - "integrity": "sha512-Qkcp7P2ygktpMPh2mCQZaf3jhN6D3Z/qVZHSdWvQ+2Ef5HgRAPBO57A77+ENm0CPx2+1Ce/MYKi3ymqdfuqibw==", + "md5.js": { + "version": "1.3.5", + "resolved": "https://registry.npmjs.org/md5.js/-/md5.js-1.3.5.tgz", + "integrity": "sha512-xitP+WxNPcTTOgnTJcrhM0xvdPepipPSf3I8EIpGKeFLjt3PlJLIDG3u8EX53ZIubkb+5U2+3rELYpEhHhzdkg==", + "dev": true, + "requires": { + "hash-base": "^3.0.0", + "inherits": "^2.0.1", + "safe-buffer": "^5.1.2" + } + }, + "mdn-data": { + "version": "2.0.14", + "resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-2.0.14.tgz", + "integrity": "sha512-dn6wd0uw5GsdswPFfsgMp5NSB0/aDe6fK94YJV/AJDYXL6HVLWBsxeq7js7Ad+mU2K9LAlwpk6kN2D5mwCPVow==", + "dev": true + }, + "memory-fs": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/memory-fs/-/memory-fs-0.4.1.tgz", + "integrity": "sha1-OpoguEYlI+RHz7x+i7gO1me/xVI=", + "dev": true, + "requires": { + "errno": "^0.1.3", + "readable-stream": "^2.0.1" + } + }, + "merge-source-map": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/merge-source-map/-/merge-source-map-1.1.0.tgz", + "integrity": "sha512-Qkcp7P2ygktpMPh2mCQZaf3jhN6D3Z/qVZHSdWvQ+2Ef5HgRAPBO57A77+ENm0CPx2+1Ce/MYKi3ymqdfuqibw==", "dev": true, "requires": { "source-map": "^0.6.1" @@ -9999,6 +11504,30 @@ "to-regex": "^3.0.2" } }, + "miller-rabin": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/miller-rabin/-/miller-rabin-4.0.1.tgz", + "integrity": "sha512-115fLhvZVqWwHPbClyntxEVfVDfl9DLLTuJvq3g2O/Oxi8AiNouAHvDSzHS0viUJc+V5vm3eq91Xwqn9dp4jRA==", + "dev": true, + "requires": { + "bn.js": "^4.0.0", + "brorand": "^1.0.1" + }, + "dependencies": { + "bn.js": { + "version": "4.12.0", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", + "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==", + "dev": true + } + } + }, + "mime": { + "version": "2.5.2", + "resolved": "https://registry.npmjs.org/mime/-/mime-2.5.2.tgz", + "integrity": "sha512-tqkh47FzKeCPD2PUiPB6pkbMzsCasjxAfC62/Wap5qrUWcb+sFasXUC5I3gYM5iBM8v/Qpn4UK0x+j0iHyFPDg==", + "dev": true + }, "mime-db": { "version": "1.47.0", "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.47.0.tgz", @@ -10020,6 +11549,18 @@ "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==", "dev": true }, + "minimalistic-assert": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz", + "integrity": "sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A==", + "dev": true + }, + "minimalistic-crypto-utils": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz", + "integrity": "sha1-9sAMHAsIIkblxNmd+4x8CDsrWCo=", + "dev": true + }, "minimatch": { "version": "3.0.4", "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", @@ -10035,6 +11576,24 @@ "integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==", "dev": true }, + "mississippi": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/mississippi/-/mississippi-3.0.0.tgz", + "integrity": "sha512-x471SsVjUtBRtcvd4BzKE9kFC+/2TeWgKCgw0bZcw1b9l2X3QX5vCWgF+KaZaYm87Ss//rHnWryupDrgLvmSkA==", + "dev": true, + "requires": { + "concat-stream": "^1.5.0", + "duplexify": "^3.4.2", + "end-of-stream": "^1.1.0", + "flush-write-stream": "^1.0.0", + "from2": "^2.1.0", + "parallel-transform": "^1.1.0", + "pump": "^3.0.0", + "pumpify": "^1.3.3", + "stream-each": "^1.1.0", + "through2": "^2.0.0" + } + }, "mixin-deep": { "version": "1.3.2", "resolved": "https://registry.npmjs.org/mixin-deep/-/mixin-deep-1.3.2.tgz", @@ -10065,6 +11624,31 @@ "minimist": "^1.2.5" } }, + "move-concurrently": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/move-concurrently/-/move-concurrently-1.0.1.tgz", + "integrity": "sha1-viwAX9oy4LKa8fBdfEszIUxwH5I=", + "dev": true, + "requires": { + "aproba": "^1.1.1", + "copy-concurrently": "^1.0.0", + "fs-write-stream-atomic": "^1.0.8", + "mkdirp": "^0.5.1", + "rimraf": "^2.5.4", + "run-queue": "^1.0.3" + }, + "dependencies": { + "rimraf": { + "version": "2.7.1", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", + "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", + "dev": true, + "requires": { + "glob": "^7.1.3" + } + } + } + }, "ms": { "version": "2.1.2", "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", @@ -10218,6 +11802,12 @@ "integrity": "sha512-nnbWWOkoWyUsTjKrhgD0dcz22mdkSnpYqbEjIm2nhwhuxlSkpywJmBo8h0ZqJdkp73mb90SssHkN4rsRaBAfAA==", "dev": true }, + "nanoid": { + "version": "3.1.23", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.1.23.tgz", + "integrity": "sha512-FiB0kzdP0FFVGDKlRLEQ1BgDzU87dy5NnzjeW9YZNt+/c3+q82EQDUwniSAUxp/F0gFNI1ZhKU1FqYsMuqZVnw==", + "dev": true + }, "nanomatch": { "version": "1.2.13", "resolved": "https://registry.npmjs.org/nanomatch/-/nanomatch-1.2.13.tgz", @@ -10243,6 +11833,12 @@ "integrity": "sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc=", "dev": true }, + "neo-async": { + "version": "2.6.2", + "resolved": "https://registry.npmjs.org/neo-async/-/neo-async-2.6.2.tgz", + "integrity": "sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==", + "dev": true + }, "nice-try": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/nice-try/-/nice-try-1.0.5.tgz", @@ -10261,6 +11857,45 @@ "integrity": "sha1-h6kGXNs1XTGC2PlM4RGIuCXGijs=", "dev": true }, + "node-libs-browser": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/node-libs-browser/-/node-libs-browser-2.2.1.tgz", + "integrity": "sha512-h/zcD8H9kaDZ9ALUWwlBUDo6TKF8a7qBSCSEGfjTVIYeqsioSKaAX+BN7NgiMGp6iSIXZ3PxgCu8KS3b71YK5Q==", + "dev": true, + "requires": { + "assert": "^1.1.1", + "browserify-zlib": "^0.2.0", + "buffer": "^4.3.0", + "console-browserify": "^1.1.0", + "constants-browserify": "^1.0.0", + "crypto-browserify": "^3.11.0", + "domain-browser": "^1.1.1", + "events": "^3.0.0", + "https-browserify": "^1.0.0", + "os-browserify": "^0.3.0", + "path-browserify": "0.0.1", + "process": "^0.11.10", + "punycode": "^1.2.4", + "querystring-es3": "^0.2.0", + "readable-stream": "^2.3.3", + "stream-browserify": "^2.0.1", + "stream-http": "^2.7.2", + "string_decoder": "^1.0.0", + "timers-browserify": "^2.0.4", + "tty-browserify": "0.0.0", + "url": "^0.11.0", + "util": "^0.11.0", + "vm-browserify": "^1.0.1" + }, + "dependencies": { + "punycode": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz", + "integrity": "sha1-wNWmOycYgArY4esPpSachN1BhF4=", + "dev": true + } + } + }, "node-match-path": { "version": "0.6.3", "resolved": "https://registry.npmjs.org/node-match-path/-/node-match-path-0.6.3.tgz", @@ -10332,6 +11967,12 @@ "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", "dev": true }, + "normalize-url": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-4.5.0.tgz", + "integrity": "sha512-2s47yzUxdexf1OhyRi4Em83iQk0aPvwTddtFz4hnSSw9dCEsLEGf6SwIO8ss/19S9iBb5sJaOuTvTGDeZI00BQ==", + "dev": true + }, "npm-run-path": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-2.0.2.tgz", @@ -10341,6 +11982,15 @@ "path-key": "^2.0.0" } }, + "nth-check": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/nth-check/-/nth-check-2.0.0.tgz", + "integrity": "sha512-i4sc/Kj8htBrAiH1viZ0TgU8Y5XqCaV/FziYK6TBczxmeKm3AEFWqqF3195yKudrarqy7Zu80Ra5dobFjn9X/Q==", + "dev": true, + "requires": { + "boolbase": "^1.0.0" + } + }, "nwsapi": { "version": "2.2.0", "resolved": "https://registry.npmjs.org/nwsapi/-/nwsapi-2.2.0.tgz", @@ -10497,6 +12147,23 @@ "mimic-fn": "^2.1.0" } }, + "opener": { + "version": "1.5.2", + "resolved": "https://registry.npmjs.org/opener/-/opener-1.5.2.tgz", + "integrity": "sha512-ur5UIdyw5Y7yEj9wLzhqXiy6GZ3Mwx0yGI+5sMn2r0N0v3cKJvUmFH5yPP+WXh9e0xfyzyJX95D8l088DNFj7A==", + "dev": true + }, + "optimize-css-assets-webpack-plugin": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/optimize-css-assets-webpack-plugin/-/optimize-css-assets-webpack-plugin-6.0.0.tgz", + "integrity": "sha512-XKVxJuCBSslP1Eyuf1uVtZT3Pkp6jEIkmg7BMcNU/pq6XAnDXTINkYFWmiQWt8+j//FO4dIDd4v+gn0m5VWJIw==", + "dev": true, + "requires": { + "cssnano": "^5.0.2", + "last-call-webpack-plugin": "^3.0.0", + "postcss": "^8.2.1" + } + }, "optionator": { "version": "0.8.3", "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.8.3.tgz", @@ -10511,6 +12178,80 @@ "word-wrap": "~1.2.3" } }, + "ora": { + "version": "5.4.0", + "resolved": "https://registry.npmjs.org/ora/-/ora-5.4.0.tgz", + "integrity": "sha512-1StwyXQGoU6gdjYkyVcqOLnVlbKj+6yPNNOxJVgpt9t4eksKjiriiHuxktLYkgllwk+D6MbC4ihH84L1udRXPg==", + "dev": true, + "requires": { + "bl": "^4.1.0", + "chalk": "^4.1.0", + "cli-cursor": "^3.1.0", + "cli-spinners": "^2.5.0", + "is-interactive": "^1.0.0", + "is-unicode-supported": "^0.1.0", + "log-symbols": "^4.1.0", + "strip-ansi": "^6.0.0", + "wcwidth": "^1.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" + } + }, + "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" + } + } + } + }, + "os-browserify": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/os-browserify/-/os-browserify-0.3.0.tgz", + "integrity": "sha1-hUNzx/XCMVkU/Jv8a9gjj92h7Cc=", + "dev": true + }, "os-tmpdir": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz", @@ -10553,6 +12294,23 @@ "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", "dev": true }, + "pako": { + "version": "1.0.11", + "resolved": "https://registry.npmjs.org/pako/-/pako-1.0.11.tgz", + "integrity": "sha512-4hLB8Py4zZce5s4yd9XzopqwVv/yGNhV1Bl8NTmCq1763HeK2+EwVTv+leGeL13Dnh2wfbqowVPXCIO0z4taYw==", + "dev": true + }, + "parallel-transform": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/parallel-transform/-/parallel-transform-1.2.0.tgz", + "integrity": "sha512-P2vSmIu38uIlvdcU7fDkyrxj33gTUy/ABO5ZUbGowxNCopBq/OoD42bP4UmMrJoPyk4Uqf0mu3mtWBhHCZD8yg==", + "dev": true, + "requires": { + "cyclist": "^1.0.1", + "inherits": "^2.0.3", + "readable-stream": "^2.1.5" + } + }, "parent-module": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", @@ -10562,6 +12320,19 @@ "callsites": "^3.0.0" } }, + "parse-asn1": { + "version": "5.1.6", + "resolved": "https://registry.npmjs.org/parse-asn1/-/parse-asn1-5.1.6.tgz", + "integrity": "sha512-RnZRo1EPU6JBnra2vGHj0yhp6ebyjBZpmUCLHWiFhxlzvBCCpAuZ7elsBp1PVAbQN0/04VD/19rfzlBSwLstMw==", + "dev": true, + "requires": { + "asn1.js": "^5.2.0", + "browserify-aes": "^1.0.0", + "evp_bytestokey": "^1.0.0", + "pbkdf2": "^3.0.3", + "safe-buffer": "^5.1.1" + } + }, "parse-json": { "version": "5.2.0", "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.2.0.tgz", @@ -10586,6 +12357,19 @@ "integrity": "sha1-s2PlXoAGym/iF4TS2yK9FdeRfxQ=", "dev": true }, + "path-browserify": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/path-browserify/-/path-browserify-0.0.1.tgz", + "integrity": "sha512-BapA40NHICOS+USX9SN4tyhq+A2RrN/Ws5F0Z5aMHDp98Fl86lX8Oti8B7uN93L4Ifv4fHOEA+pQw87gmMO/lQ==", + "dev": true + }, + "path-dirname": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/path-dirname/-/path-dirname-1.0.2.tgz", + "integrity": "sha1-zDPSTVJeCZpTiMAzbG4yuRYGCeA=", + "dev": true, + "optional": true + }, "path-exists": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", @@ -10616,6 +12400,19 @@ "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==", "dev": true }, + "pbkdf2": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/pbkdf2/-/pbkdf2-3.1.2.tgz", + "integrity": "sha512-iuh7L6jA7JEGu2WxDwtQP1ddOpaJNC4KlDEFfdQajSGgGPNi4OyDc2R7QnbY2bR9QjBVGwgvTdNJZoE7RaxUMA==", + "dev": true, + "requires": { + "create-hash": "^1.1.2", + "create-hmac": "^1.1.4", + "ripemd160": "^2.0.1", + "safe-buffer": "^5.0.1", + "sha.js": "^2.4.8" + } + }, "performance-now": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz", @@ -10652,123 +12449,550 @@ "find-up": "^4.0.0" } }, + "pnp-webpack-plugin": { + "version": "1.6.4", + "resolved": "https://registry.npmjs.org/pnp-webpack-plugin/-/pnp-webpack-plugin-1.6.4.tgz", + "integrity": "sha512-7Wjy+9E3WwLOEL30D+m8TSTF7qJJUJLONBnwQp0518siuMxUQUbgZwssaFX+QKlZkjHZcw/IpZCt/H0srrntSg==", + "dev": true, + "requires": { + "ts-pnp": "^1.1.6" + } + }, "posix-character-classes": { "version": "0.1.1", "resolved": "https://registry.npmjs.org/posix-character-classes/-/posix-character-classes-0.1.1.tgz", "integrity": "sha1-AerA/jta9xoqbAL+q7jB/vfgDqs=", "dev": true }, - "prelude-ls": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.1.2.tgz", - "integrity": "sha1-IZMqVJ9eUv/ZqCf1cOBL5iqX2lQ=", - "dev": true - }, - "prettier": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/prettier/-/prettier-2.2.1.tgz", - "integrity": "sha512-PqyhM2yCjg/oKkFPtTGUojv7gnZAoG80ttl45O6x2Ug/rMJw4wcc9k6aaf2hibP7BGVCCM33gZoGjyvt9mm16Q==", - "dev": true - }, - "prettier-linter-helpers": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/prettier-linter-helpers/-/prettier-linter-helpers-1.0.0.tgz", - "integrity": "sha512-GbK2cP9nraSSUF9N2XwUwqfzlAFlMNYYl+ShE/V+H8a9uNl/oUqB1w2EL54Jh0OlyRSd8RfWYJ3coVS4TROP2w==", + "postcss": { + "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": { - "fast-diff": "^1.1.2" + "colorette": "^1.2.2", + "nanoid": "^3.1.23", + "source-map-js": "^0.6.2" } }, - "pretty-format": { - "version": "24.9.0", - "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-24.9.0.tgz", - "integrity": "sha512-00ZMZUiHaJrNfk33guavqgvfJS30sLYf0f8+Srklv0AMPodGGHcoHgksZ3OThYnIvOd+8yMCn0YiEOogjlgsnA==", + "postcss-calc": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/postcss-calc/-/postcss-calc-8.0.0.tgz", + "integrity": "sha512-5NglwDrcbiy8XXfPM11F3HeC6hoT9W7GUH/Zi5U/p7u3Irv4rHhdDcIZwG0llHXV4ftsBjpfWMXAnXNl4lnt8g==", "dev": true, "requires": { - "@jest/types": "^24.9.0", - "ansi-regex": "^4.0.0", - "ansi-styles": "^3.2.0", - "react-is": "^16.8.4" + "postcss-selector-parser": "^6.0.2", + "postcss-value-parser": "^4.0.2" } }, - "progress": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/progress/-/progress-2.0.3.tgz", - "integrity": "sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==", - "dev": true - }, - "prompts": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/prompts/-/prompts-2.4.1.tgz", - "integrity": "sha512-EQyfIuO2hPDsX1L/blblV+H7I0knhgAd82cVneCwcdND9B8AuCDuRcBH6yIcG4dFzlOUqbazQqwGjx5xmsNLuQ==", + "postcss-colormin": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/postcss-colormin/-/postcss-colormin-5.1.1.tgz", + "integrity": "sha512-SyTmqKKN6PyYNeeKEC0hqIP5CDuprO1hHurdW1aezDyfofDUOn7y7MaxcolbsW3oazPwFiGiY30XRiW1V4iZpA==", "dev": true, "requires": { - "kleur": "^3.0.3", - "sisteransi": "^1.0.5" + "browserslist": "^4.16.0", + "colord": "^2.0.0", + "postcss-value-parser": "^4.1.0" } }, - "prop-types": { - "version": "15.7.2", - "resolved": "https://registry.npmjs.org/prop-types/-/prop-types-15.7.2.tgz", - "integrity": "sha512-8QQikdH7//R2vurIJSutZ1smHYTcLpRWEOlHnzcWHmBYrOGUysKwSsrC89BCiFj3CbrfJ/nXFdJepOVrY1GCHQ==", + "postcss-convert-values": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/postcss-convert-values/-/postcss-convert-values-5.0.1.tgz", + "integrity": "sha512-C3zR1Do2BkKkCgC0g3sF8TS0koF2G+mN8xxayZx3f10cIRmTaAnpgpRQZjNekTZxM2ciSPoh2IWJm0VZx8NoQg==", "dev": true, "requires": { - "loose-envify": "^1.4.0", - "object-assign": "^4.1.1", - "react-is": "^16.8.1" + "postcss-value-parser": "^4.1.0" } }, - "psl": { - "version": "1.8.0", - "resolved": "https://registry.npmjs.org/psl/-/psl-1.8.0.tgz", - "integrity": "sha512-RIdOzyoavK+hA18OGGWDqUTsCLhtA7IcZ/6NCs4fFJaHBDab+pDDmDIByWFRQJq2Cd7r1OoQxBGKOaztq+hjIQ==", + "postcss-discard-comments": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/postcss-discard-comments/-/postcss-discard-comments-5.0.1.tgz", + "integrity": "sha512-lgZBPTDvWrbAYY1v5GYEv8fEO/WhKOu/hmZqmCYfrpD6eyDWWzAOsl2rF29lpvziKO02Gc5GJQtlpkTmakwOWg==", "dev": true }, - "pump": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz", - "integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==", - "dev": true, - "requires": { - "end-of-stream": "^1.1.0", - "once": "^1.3.1" - } - }, - "punycode": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz", - "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==", + "postcss-discard-duplicates": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/postcss-discard-duplicates/-/postcss-discard-duplicates-5.0.1.tgz", + "integrity": "sha512-svx747PWHKOGpAXXQkCc4k/DsWo+6bc5LsVrAsw+OU+Ibi7klFZCyX54gjYzX4TH+f2uzXjRviLARxkMurA2bA==", "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==", + "postcss-discard-empty": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/postcss-discard-empty/-/postcss-discard-empty-5.0.1.tgz", + "integrity": "sha512-vfU8CxAQ6YpMxV2SvMcMIyF2LX1ZzWpy0lqHDsOdaKKLQVQGVP1pzhrI9JlsO65s66uQTfkQBKBD/A5gp9STFw==", "dev": true }, - "queue-microtask": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", - "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==", + "postcss-discard-overridden": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/postcss-discard-overridden/-/postcss-discard-overridden-5.0.1.tgz", + "integrity": "sha512-Y28H7y93L2BpJhrdUR2SR2fnSsT+3TVx1NmVQLbcnZWwIUpJ7mfcTC6Za9M2PG6w8j7UQRfzxqn8jU2VwFxo3Q==", "dev": true }, - "react": { - "version": "17.0.2", - "resolved": "https://registry.npmjs.org/react/-/react-17.0.2.tgz", - "integrity": "sha512-gnhPt75i/dq/z3/6q/0asP78D0u592D5L1pd7M8P+dck6Fu/jJeL6iVVK23fptSUZj8Vjf++7wXA8UNclGQcbA==", + "postcss-merge-longhand": { + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/postcss-merge-longhand/-/postcss-merge-longhand-5.0.2.tgz", + "integrity": "sha512-BMlg9AXSI5G9TBT0Lo/H3PfUy63P84rVz3BjCFE9e9Y9RXQZD3+h3YO1kgTNsNJy7bBc1YQp8DmSnwLIW5VPcw==", "dev": true, "requires": { - "loose-envify": "^1.1.0", - "object-assign": "^4.1.1" + "css-color-names": "^1.0.1", + "postcss-value-parser": "^4.1.0", + "stylehacks": "^5.0.1" } }, - "react-dom": { - "version": "17.0.2", - "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-17.0.2.tgz", - "integrity": "sha512-s4h96KtLDUQlsENhMn1ar8t2bEa+q/YAtj8pPPdIjPDGBDIVNsrD9aXNWqspUe6AzKCIG0C1HZZLqLV7qpOBGA==", + "postcss-merge-rules": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/postcss-merge-rules/-/postcss-merge-rules-5.0.1.tgz", + "integrity": "sha512-UR6R5Ph0c96QB9TMBH3ml8/kvPCThPHepdhRqAbvMRDRHQACPC8iM5NpfIC03+VRMZTGXy4L/BvFzcDFCgb+fA==", "dev": true, "requires": { - "loose-envify": "^1.1.0", + "browserslist": "^4.16.0", + "caniuse-api": "^3.0.0", + "cssnano-utils": "^2.0.1", + "postcss-selector-parser": "^6.0.5", + "vendors": "^1.0.3" + } + }, + "postcss-minify-font-values": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/postcss-minify-font-values/-/postcss-minify-font-values-5.0.1.tgz", + "integrity": "sha512-7JS4qIsnqaxk+FXY1E8dHBDmraYFWmuL6cgt0T1SWGRO5bzJf8sUoelwa4P88LEWJZweHevAiDKxHlofuvtIoA==", + "dev": true, + "requires": { + "postcss-value-parser": "^4.1.0" + } + }, + "postcss-minify-gradients": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/postcss-minify-gradients/-/postcss-minify-gradients-5.0.1.tgz", + "integrity": "sha512-odOwBFAIn2wIv+XYRpoN2hUV3pPQlgbJ10XeXPq8UY2N+9ZG42xu45lTn/g9zZ+d70NKSQD6EOi6UiCMu3FN7g==", + "dev": true, + "requires": { + "cssnano-utils": "^2.0.1", + "is-color-stop": "^1.1.0", + "postcss-value-parser": "^4.1.0" + } + }, + "postcss-minify-params": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/postcss-minify-params/-/postcss-minify-params-5.0.1.tgz", + "integrity": "sha512-4RUC4k2A/Q9mGco1Z8ODc7h+A0z7L7X2ypO1B6V8057eVK6mZ6xwz6QN64nHuHLbqbclkX1wyzRnIrdZehTEHw==", + "dev": true, + "requires": { + "alphanum-sort": "^1.0.2", + "browserslist": "^4.16.0", + "cssnano-utils": "^2.0.1", + "postcss-value-parser": "^4.1.0", + "uniqs": "^2.0.0" + } + }, + "postcss-minify-selectors": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/postcss-minify-selectors/-/postcss-minify-selectors-5.1.0.tgz", + "integrity": "sha512-NzGBXDa7aPsAcijXZeagnJBKBPMYLaJJzB8CQh6ncvyl2sIndLVWfbcDi0SBjRWk5VqEjXvf8tYwzoKf4Z07og==", + "dev": true, + "requires": { + "alphanum-sort": "^1.0.2", + "postcss-selector-parser": "^6.0.5" + } + }, + "postcss-modules-extract-imports": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/postcss-modules-extract-imports/-/postcss-modules-extract-imports-3.0.0.tgz", + "integrity": "sha512-bdHleFnP3kZ4NYDhuGlVK+CMrQ/pqUm8bx/oGL93K6gVwiclvX5x0n76fYMKuIGKzlABOy13zsvqjb0f92TEXw==", + "dev": true + }, + "postcss-modules-local-by-default": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/postcss-modules-local-by-default/-/postcss-modules-local-by-default-4.0.0.tgz", + "integrity": "sha512-sT7ihtmGSF9yhm6ggikHdV0hlziDTX7oFoXtuVWeDd3hHObNkcHRo9V3yg7vCAY7cONyxJC/XXCmmiHHcvX7bQ==", + "dev": true, + "requires": { + "icss-utils": "^5.0.0", + "postcss-selector-parser": "^6.0.2", + "postcss-value-parser": "^4.1.0" + } + }, + "postcss-modules-scope": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/postcss-modules-scope/-/postcss-modules-scope-3.0.0.tgz", + "integrity": "sha512-hncihwFA2yPath8oZ15PZqvWGkWf+XUfQgUGamS4LqoP1anQLOsOJw0vr7J7IwLpoY9fatA2qiGUGmuZL0Iqlg==", + "dev": true, + "requires": { + "postcss-selector-parser": "^6.0.4" + } + }, + "postcss-modules-values": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/postcss-modules-values/-/postcss-modules-values-4.0.0.tgz", + "integrity": "sha512-RDxHkAiEGI78gS2ofyvCsu7iycRv7oqw5xMWn9iMoR0N/7mf9D50ecQqUo5BZ9Zh2vH4bCUR/ktCqbB9m8vJjQ==", + "dev": true, + "requires": { + "icss-utils": "^5.0.0" + } + }, + "postcss-normalize-charset": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/postcss-normalize-charset/-/postcss-normalize-charset-5.0.1.tgz", + "integrity": "sha512-6J40l6LNYnBdPSk+BHZ8SF+HAkS4q2twe5jnocgd+xWpz/mx/5Sa32m3W1AA8uE8XaXN+eg8trIlfu8V9x61eg==", + "dev": true + }, + "postcss-normalize-display-values": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/postcss-normalize-display-values/-/postcss-normalize-display-values-5.0.1.tgz", + "integrity": "sha512-uupdvWk88kLDXi5HEyI9IaAJTE3/Djbcrqq8YgjvAVuzgVuqIk3SuJWUisT2gaJbZm1H9g5k2w1xXilM3x8DjQ==", + "dev": true, + "requires": { + "cssnano-utils": "^2.0.1", + "postcss-value-parser": "^4.1.0" + } + }, + "postcss-normalize-positions": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/postcss-normalize-positions/-/postcss-normalize-positions-5.0.1.tgz", + "integrity": "sha512-rvzWAJai5xej9yWqlCb1OWLd9JjW2Ex2BCPzUJrbaXmtKtgfL8dBMOOMTX6TnvQMtjk3ei1Lswcs78qKO1Skrg==", + "dev": true, + "requires": { + "postcss-value-parser": "^4.1.0" + } + }, + "postcss-normalize-repeat-style": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/postcss-normalize-repeat-style/-/postcss-normalize-repeat-style-5.0.1.tgz", + "integrity": "sha512-syZ2itq0HTQjj4QtXZOeefomckiV5TaUO6ReIEabCh3wgDs4Mr01pkif0MeVwKyU/LHEkPJnpwFKRxqWA/7O3w==", + "dev": true, + "requires": { + "cssnano-utils": "^2.0.1", + "postcss-value-parser": "^4.1.0" + } + }, + "postcss-normalize-string": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/postcss-normalize-string/-/postcss-normalize-string-5.0.1.tgz", + "integrity": "sha512-Ic8GaQ3jPMVl1OEn2U//2pm93AXUcF3wz+OriskdZ1AOuYV25OdgS7w9Xu2LO5cGyhHCgn8dMXh9bO7vi3i9pA==", + "dev": true, + "requires": { + "postcss-value-parser": "^4.1.0" + } + }, + "postcss-normalize-timing-functions": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/postcss-normalize-timing-functions/-/postcss-normalize-timing-functions-5.0.1.tgz", + "integrity": "sha512-cPcBdVN5OsWCNEo5hiXfLUnXfTGtSFiBU9SK8k7ii8UD7OLuznzgNRYkLZow11BkQiiqMcgPyh4ZqXEEUrtQ1Q==", + "dev": true, + "requires": { + "cssnano-utils": "^2.0.1", + "postcss-value-parser": "^4.1.0" + } + }, + "postcss-normalize-unicode": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/postcss-normalize-unicode/-/postcss-normalize-unicode-5.0.1.tgz", + "integrity": "sha512-kAtYD6V3pK0beqrU90gpCQB7g6AOfP/2KIPCVBKJM2EheVsBQmx/Iof+9zR9NFKLAx4Pr9mDhogB27pmn354nA==", + "dev": true, + "requires": { + "browserslist": "^4.16.0", + "postcss-value-parser": "^4.1.0" + } + }, + "postcss-normalize-url": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/postcss-normalize-url/-/postcss-normalize-url-5.0.1.tgz", + "integrity": "sha512-hkbG0j58Z1M830/CJ73VsP7gvlG1yF+4y7Fd1w4tD2c7CaA2Psll+pQ6eQhth9y9EaqZSLzamff/D0MZBMbYSg==", + "dev": true, + "requires": { + "is-absolute-url": "^3.0.3", + "normalize-url": "^4.5.0", + "postcss-value-parser": "^4.1.0" + } + }, + "postcss-normalize-whitespace": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/postcss-normalize-whitespace/-/postcss-normalize-whitespace-5.0.1.tgz", + "integrity": "sha512-iPklmI5SBnRvwceb/XH568yyzK0qRVuAG+a1HFUsFRf11lEJTiQQa03a4RSCQvLKdcpX7XsI1Gen9LuLoqwiqA==", + "dev": true, + "requires": { + "postcss-value-parser": "^4.1.0" + } + }, + "postcss-ordered-values": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/postcss-ordered-values/-/postcss-ordered-values-5.0.1.tgz", + "integrity": "sha512-6mkCF5BQ25HvEcDfrMHCLLFHlraBSlOXFnQMHYhSpDO/5jSR1k8LdEXOkv+7+uzW6o6tBYea1Km0wQSRkPJkwA==", + "dev": true, + "requires": { + "cssnano-utils": "^2.0.1", + "postcss-value-parser": "^4.1.0" + } + }, + "postcss-reduce-initial": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/postcss-reduce-initial/-/postcss-reduce-initial-5.0.1.tgz", + "integrity": "sha512-zlCZPKLLTMAqA3ZWH57HlbCjkD55LX9dsRyxlls+wfuRfqCi5mSlZVan0heX5cHr154Dq9AfbH70LyhrSAezJw==", + "dev": true, + "requires": { + "browserslist": "^4.16.0", + "caniuse-api": "^3.0.0" + } + }, + "postcss-reduce-transforms": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/postcss-reduce-transforms/-/postcss-reduce-transforms-5.0.1.tgz", + "integrity": "sha512-a//FjoPeFkRuAguPscTVmRQUODP+f3ke2HqFNgGPwdYnpeC29RZdCBvGRGTsKpMURb/I3p6jdKoBQ2zI+9Q7kA==", + "dev": true, + "requires": { + "cssnano-utils": "^2.0.1", + "postcss-value-parser": "^4.1.0" + } + }, + "postcss-selector-parser": { + "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", + "util-deprecate": "^1.0.2" + } + }, + "postcss-svgo": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/postcss-svgo/-/postcss-svgo-5.0.1.tgz", + "integrity": "sha512-cD7DFo6tF9i5eWvwtI4irKOHCpmASFS0xvZ5EQIgEdA1AWfM/XiHHY/iss0gcKHhkqwgYmuo2M0KhJLd5Us6mg==", + "dev": true, + "requires": { + "postcss-value-parser": "^4.1.0", + "svgo": "^2.3.0" + } + }, + "postcss-unique-selectors": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/postcss-unique-selectors/-/postcss-unique-selectors-5.0.1.tgz", + "integrity": "sha512-gwi1NhHV4FMmPn+qwBNuot1sG1t2OmacLQ/AX29lzyggnjd+MnVD5uqQmpXO3J17KGL2WAxQruj1qTd3H0gG/w==", + "dev": true, + "requires": { + "alphanum-sort": "^1.0.2", + "postcss-selector-parser": "^6.0.5", + "uniqs": "^2.0.0" + } + }, + "postcss-value-parser": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-4.1.0.tgz", + "integrity": "sha512-97DXOFbQJhk71ne5/Mt6cOu6yxsSfM0QGQyl0L25Gca4yGWEGJaig7l7gbCX623VqTBNGLRLaVUCnNkcedlRSQ==", + "dev": true + }, + "prelude-ls": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.1.2.tgz", + "integrity": "sha1-IZMqVJ9eUv/ZqCf1cOBL5iqX2lQ=", + "dev": true + }, + "prettier": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/prettier/-/prettier-2.2.1.tgz", + "integrity": "sha512-PqyhM2yCjg/oKkFPtTGUojv7gnZAoG80ttl45O6x2Ug/rMJw4wcc9k6aaf2hibP7BGVCCM33gZoGjyvt9mm16Q==", + "dev": true + }, + "prettier-linter-helpers": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/prettier-linter-helpers/-/prettier-linter-helpers-1.0.0.tgz", + "integrity": "sha512-GbK2cP9nraSSUF9N2XwUwqfzlAFlMNYYl+ShE/V+H8a9uNl/oUqB1w2EL54Jh0OlyRSd8RfWYJ3coVS4TROP2w==", + "dev": true, + "requires": { + "fast-diff": "^1.1.2" + } + }, + "pretty-format": { + "version": "24.9.0", + "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-24.9.0.tgz", + "integrity": "sha512-00ZMZUiHaJrNfk33guavqgvfJS30sLYf0f8+Srklv0AMPodGGHcoHgksZ3OThYnIvOd+8yMCn0YiEOogjlgsnA==", + "dev": true, + "requires": { + "@jest/types": "^24.9.0", + "ansi-regex": "^4.0.0", + "ansi-styles": "^3.2.0", + "react-is": "^16.8.4" + } + }, + "process": { + "version": "0.11.10", + "resolved": "https://registry.npmjs.org/process/-/process-0.11.10.tgz", + "integrity": "sha1-czIwDoQBYb2j5podHZGn1LwW8YI=", + "dev": true + }, + "process-nextick-args": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", + "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==", + "dev": true + }, + "progress": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/progress/-/progress-2.0.3.tgz", + "integrity": "sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==", + "dev": true + }, + "promise-inflight": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/promise-inflight/-/promise-inflight-1.0.1.tgz", + "integrity": "sha1-mEcocL8igTL8vdhoEputEsPAKeM=", + "dev": true + }, + "prompts": { + "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", + "sisteransi": "^1.0.5" + } + }, + "prop-types": { + "version": "15.7.2", + "resolved": "https://registry.npmjs.org/prop-types/-/prop-types-15.7.2.tgz", + "integrity": "sha512-8QQikdH7//R2vurIJSutZ1smHYTcLpRWEOlHnzcWHmBYrOGUysKwSsrC89BCiFj3CbrfJ/nXFdJepOVrY1GCHQ==", + "dev": true, + "requires": { + "loose-envify": "^1.4.0", + "object-assign": "^4.1.1", + "react-is": "^16.8.1" + } + }, + "prr": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/prr/-/prr-1.0.1.tgz", + "integrity": "sha1-0/wRS6BplaRexok/SEzrHXj19HY=", + "dev": true + }, + "psl": { + "version": "1.8.0", + "resolved": "https://registry.npmjs.org/psl/-/psl-1.8.0.tgz", + "integrity": "sha512-RIdOzyoavK+hA18OGGWDqUTsCLhtA7IcZ/6NCs4fFJaHBDab+pDDmDIByWFRQJq2Cd7r1OoQxBGKOaztq+hjIQ==", + "dev": true + }, + "public-encrypt": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/public-encrypt/-/public-encrypt-4.0.3.tgz", + "integrity": "sha512-zVpa8oKZSz5bTMTFClc1fQOnyyEzpl5ozpi1B5YcvBrdohMjH2rfsBtyXcuNuwjsDIXmBYlF2N5FlJYhR29t8Q==", + "dev": true, + "requires": { + "bn.js": "^4.1.0", + "browserify-rsa": "^4.0.0", + "create-hash": "^1.1.0", + "parse-asn1": "^5.0.0", + "randombytes": "^2.0.1", + "safe-buffer": "^5.1.2" + }, + "dependencies": { + "bn.js": { + "version": "4.12.0", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", + "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==", + "dev": true + } + } + }, + "pump": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz", + "integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==", + "dev": true, + "requires": { + "end-of-stream": "^1.1.0", + "once": "^1.3.1" + } + }, + "pumpify": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/pumpify/-/pumpify-1.5.1.tgz", + "integrity": "sha512-oClZI37HvuUJJxSKKrC17bZ9Cu0ZYhEAGPsPUy9KlMUmv9dKX2o77RUmq7f3XjIxbwyGwYzbzQ1L2Ks8sIradQ==", + "dev": true, + "requires": { + "duplexify": "^3.6.0", + "inherits": "^2.0.3", + "pump": "^2.0.0" + }, + "dependencies": { + "pump": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/pump/-/pump-2.0.1.tgz", + "integrity": "sha512-ruPMNRkN3MHP1cWJc9OWr+T/xDP0jhXYCLfJcBuX54hhfIBnaQmAUMfDcG4DM5UMWByBbJY69QSphm3jtDKIkA==", + "dev": true, + "requires": { + "end-of-stream": "^1.1.0", + "once": "^1.3.1" + } + } + } + }, + "punycode": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz", + "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==", + "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", + "integrity": "sha1-sgmEkgO7Jd+CDadW50cAWHhSFiA=", + "dev": true + }, + "querystring-es3": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/querystring-es3/-/querystring-es3-0.2.1.tgz", + "integrity": "sha1-nsYfeQSYdXB9aUFFlv2Qek1xHnM=", + "dev": true + }, + "queue-microtask": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", + "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==", + "dev": true + }, + "randombytes": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz", + "integrity": "sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==", + "dev": true, + "requires": { + "safe-buffer": "^5.1.0" + } + }, + "randomfill": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/randomfill/-/randomfill-1.0.4.tgz", + "integrity": "sha512-87lcbR8+MhcWcUiQ+9e+Rwx8MyR2P7qnt15ynUlbm3TU/fjbgz4GsvfSUDTemtCCtVCqb4ZcEFlyPNTh9bBTLw==", + "dev": true, + "requires": { + "randombytes": "^2.0.5", + "safe-buffer": "^5.1.0" + } + }, + "react": { + "version": "17.0.2", + "resolved": "https://registry.npmjs.org/react/-/react-17.0.2.tgz", + "integrity": "sha512-gnhPt75i/dq/z3/6q/0asP78D0u592D5L1pd7M8P+dck6Fu/jJeL6iVVK23fptSUZj8Vjf++7wXA8UNclGQcbA==", + "dev": true, + "requires": { + "loose-envify": "^1.1.0", + "object-assign": "^4.1.1" + } + }, + "react-dom": { + "version": "17.0.2", + "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-17.0.2.tgz", + "integrity": "sha512-s4h96KtLDUQlsENhMn1ar8t2bEa+q/YAtj8pPPdIjPDGBDIVNsrD9aXNWqspUe6AzKCIG0C1HZZLqLV7qpOBGA==", + "dev": true, + "requires": { + "loose-envify": "^1.1.0", "object-assign": "^4.1.1", "scheduler": "^0.20.2" } @@ -10841,6 +13065,21 @@ } } }, + "readable-stream": { + "version": "2.3.7", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", + "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", + "dev": true, + "requires": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + } + }, "readdirp": { "version": "3.5.0", "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.5.0.tgz", @@ -11074,6 +13313,18 @@ "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==", "dev": true }, + "rgb-regex": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/rgb-regex/-/rgb-regex-1.0.1.tgz", + "integrity": "sha1-wODWiC3w4jviVKR16O3UGRX+rrE=", + "dev": true + }, + "rgba-regex": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/rgba-regex/-/rgba-regex-1.0.0.tgz", + "integrity": "sha1-QzdOLiyglosO8VI0YLfXMP8i7rM=", + "dev": true + }, "rimraf": { "version": "3.0.2", "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", @@ -11083,6 +13334,16 @@ "glob": "^7.1.3" } }, + "ripemd160": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/ripemd160/-/ripemd160-2.0.2.tgz", + "integrity": "sha512-ii4iagi25WusVoiC4B4lq7pbXfAp3D9v5CwfkY33vffw2+pkDjY1D8GaN7spsxvCSx8dkPqOZCEZyfxcmJG2IA==", + "dev": true, + "requires": { + "hash-base": "^3.0.0", + "inherits": "^2.0.1" + } + }, "rollup": { "version": "2.47.0", "resolved": "https://registry.npmjs.org/rollup/-/rollup-2.47.0.tgz", @@ -11143,6 +13404,15 @@ "queue-microtask": "^1.2.2" } }, + "run-queue": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/run-queue/-/run-queue-1.0.3.tgz", + "integrity": "sha1-6Eg5bwV9Ij8kOGkkYY4laUFh7Ec=", + "dev": true, + "requires": { + "aproba": "^1.1.1" + } + }, "rxjs": { "version": "6.6.7", "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.6.7.tgz", @@ -11230,6 +13500,17 @@ "object-assign": "^4.1.1" } }, + "schema-utils": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.0.0.tgz", + "integrity": "sha512-6D82/xSzO094ajanoOSbe4YvXWMfn2A//8Y1+MUqFAJul5Bs+yn36xbK9OtNDcRVSBJ9jjeoXftM6CfztsjOAA==", + "dev": true, + "requires": { + "@types/json-schema": "^7.0.6", + "ajv": "^6.12.5", + "ajv-keywords": "^3.5.2" + } + }, "semver": { "version": "7.3.5", "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.5.tgz", @@ -11239,6 +13520,15 @@ "lru-cache": "^6.0.0" } }, + "serialize-javascript": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-4.0.0.tgz", + "integrity": "sha512-GaNA54380uFefWghODBWEGisLZFj00nS5ACs6yHa9nLqlLpVLO8ChDGeKRjZnV4Nh4n0Qi7nhYZD/9fCPzEqkw==", + "dev": true, + "requires": { + "randombytes": "^2.1.0" + } + }, "set-blocking": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", @@ -11274,6 +13564,22 @@ } } }, + "setimmediate": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/setimmediate/-/setimmediate-1.0.5.tgz", + "integrity": "sha1-KQy7Iy4waULX1+qbg3Mqt4VvgoU=", + "dev": true + }, + "sha.js": { + "version": "2.4.11", + "resolved": "https://registry.npmjs.org/sha.js/-/sha.js-2.4.11.tgz", + "integrity": "sha512-QMEp5B7cftE7APOjk5Y6xgrbWu+WkLVQwk8JNjZ8nKRciZaByEW6MubieAiToS7+dwvrjGhH8jRXz3MVd0AYqQ==", + "dev": true, + "requires": { + "inherits": "^2.0.1", + "safe-buffer": "^5.0.1" + } + }, "shebang-command": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz", @@ -11313,12 +13619,39 @@ "integrity": "sha512-VUJ49FC8U1OxwZLxIbTTrDvLnf/6TDgxZcK8wxR8zs13xpx7xbG60ndBlhNrFi2EMuFRoeDoJO7wthSLq42EjA==", "dev": true }, + "sirv": { + "version": "1.0.11", + "resolved": "https://registry.npmjs.org/sirv/-/sirv-1.0.11.tgz", + "integrity": "sha512-SR36i3/LSWja7AJNRBz4fF/Xjpn7lQFI30tZ434dIy+bitLYSP+ZEenHg36i23V2SGEz+kqjksg0uOGZ5LPiqg==", + "dev": true, + "requires": { + "@polka/url": "^1.0.0-next.9", + "mime": "^2.3.1", + "totalist": "^1.0.0" + } + }, "sisteransi": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/sisteransi/-/sisteransi-1.0.5.tgz", "integrity": "sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg==", "dev": true }, + "size-limit": { + "version": "4.11.0", + "resolved": "https://registry.npmjs.org/size-limit/-/size-limit-4.11.0.tgz", + "integrity": "sha512-vguQEHxnBt0ldv4Q1gMkjSKNpCtH5/eXLbVqUumMvUOcA2BI/I82wTe7Ag3it5hKdbZYebDmRutDizxNsvpUAw==", + "dev": true, + "requires": { + "bytes-iec": "^3.1.1", + "chokidar": "^3.5.1", + "ci-job-number": "^1.2.2", + "colorette": "^1.2.2", + "globby": "^11.0.3", + "lilconfig": "^2.0.2", + "ora": "^5.4.0", + "read-pkg-up": "^7.0.1" + } + }, "slash": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/slash/-/slash-2.0.0.tgz", @@ -11490,12 +13823,24 @@ } } }, + "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==", + "dev": true + }, "source-map": { "version": "0.7.3", "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.3.tgz", "integrity": "sha512-CkCj6giN3S+n9qrYiBTX5gystlENnRW5jZeNLHpe6aue+SrHcG5VYwujhW9s4dY31mEGsxBDrHR6oI69fTXsaQ==", "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", @@ -11603,6 +13948,21 @@ "tweetnacl": "~0.14.0" } }, + "ssri": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/ssri/-/ssri-6.0.2.tgz", + "integrity": "sha512-cepbSq/neFK7xB6A50KHN0xHDotYzq58wWCa5LeWqnPrHG8GzfEjO/4O8kpmcGW+oaxkvhEJCWgbgNk4/ZV93Q==", + "dev": true, + "requires": { + "figgy-pudding": "^3.5.1" + } + }, + "stable": { + "version": "0.1.8", + "resolved": "https://registry.npmjs.org/stable/-/stable-0.1.8.tgz", + "integrity": "sha512-ji9qxRnOVfcuLDySj9qzhGSEFVobyt1kIOSkj1qZzYLzq7Tos/oUUWvotUPQLlrsidqsK6tBH89Bc9kL5zHA6w==", + "dev": true + }, "stack-utils": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/stack-utils/-/stack-utils-1.0.4.tgz", @@ -11653,6 +14013,45 @@ "integrity": "sha1-NbCYdbT/SfJqd35QmzCQoyJr8ks=", "dev": true }, + "stream-browserify": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/stream-browserify/-/stream-browserify-2.0.2.tgz", + "integrity": "sha512-nX6hmklHs/gr2FuxYDltq8fJA1GDlxKQCz8O/IM4atRqBH8OORmBNgfvW5gG10GT/qQ9u0CzIvr2X5Pkt6ntqg==", + "dev": true, + "requires": { + "inherits": "~2.0.1", + "readable-stream": "^2.0.2" + } + }, + "stream-each": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/stream-each/-/stream-each-1.2.3.tgz", + "integrity": "sha512-vlMC2f8I2u/bZGqkdfLQW/13Zihpej/7PmSiMQsbYddxuTsJp8vRe2x2FvVExZg7FaOds43ROAuFJwPR4MTZLw==", + "dev": true, + "requires": { + "end-of-stream": "^1.1.0", + "stream-shift": "^1.0.0" + } + }, + "stream-http": { + "version": "2.8.3", + "resolved": "https://registry.npmjs.org/stream-http/-/stream-http-2.8.3.tgz", + "integrity": "sha512-+TSkfINHDo4J+ZobQLWiMouQYB+UVYFttRA94FpEzzJ7ZdqcL4uUUQ7WkdkI4DSozGmgBUE/a47L+38PenXhUw==", + "dev": true, + "requires": { + "builtin-status-codes": "^3.0.0", + "inherits": "^2.0.1", + "readable-stream": "^2.3.6", + "to-arraybuffer": "^1.0.0", + "xtend": "^4.0.0" + } + }, + "stream-shift": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/stream-shift/-/stream-shift-1.0.1.tgz", + "integrity": "sha512-AiisoFqQ0vbGcZgQPY1cdP2I76glaVA/RauYR4G4thNFgkTqr90yXTo4LYX60Jl+sIlPNHHdGSwo01AvbKUSVQ==", + "dev": true + }, "strict-event-emitter": { "version": "0.2.0", "resolved": "https://registry.npmjs.org/strict-event-emitter/-/strict-event-emitter-0.2.0.tgz", @@ -11747,6 +14146,15 @@ "define-properties": "^1.1.3" } }, + "string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "dev": true, + "requires": { + "safe-buffer": "~5.1.0" + } + }, "strip-ansi": { "version": "6.0.0", "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", @@ -11788,6 +14196,26 @@ "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", "dev": true }, + "style-loader": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/style-loader/-/style-loader-2.0.0.tgz", + "integrity": "sha512-Z0gYUJmzZ6ZdRUqpg1r8GsaFKypE+3xAzuFeMuoHgjc9KZv3wMyCRjQIWEbhoFSq7+7yoHXySDJyyWQaPajeiQ==", + "dev": true, + "requires": { + "loader-utils": "^2.0.0", + "schema-utils": "^3.0.0" + } + }, + "stylehacks": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/stylehacks/-/stylehacks-5.0.1.tgz", + "integrity": "sha512-Es0rVnHIqbWzveU1b24kbw92HsebBepxfcqe5iix7t9j0PQqhs0IxXVXv0pY2Bxa08CgMkzD6OWql7kbGOuEdA==", + "dev": true, + "requires": { + "browserslist": "^4.16.0", + "postcss-selector-parser": "^6.0.4" + } + }, "supports-color": { "version": "5.5.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", @@ -11824,6 +14252,78 @@ } } }, + "svgo": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/svgo/-/svgo-2.3.0.tgz", + "integrity": "sha512-fz4IKjNO6HDPgIQxu4IxwtubtbSfGEAJUq/IXyTPIkGhWck/faiiwfkvsB8LnBkKLvSoyNNIY6d13lZprJMc9Q==", + "dev": true, + "requires": { + "@trysound/sax": "0.1.1", + "chalk": "^4.1.0", + "commander": "^7.1.0", + "css-select": "^3.1.2", + "css-tree": "^1.1.2", + "csso": "^4.2.0", + "stable": "^0.1.8" + }, + "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 + }, + "commander": { + "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 + }, + "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" + } + } + } + }, "symbol-tree": { "version": "3.2.4", "resolved": "https://registry.npmjs.org/symbol-tree/-/symbol-tree-3.2.4.tgz", @@ -11865,6 +14365,12 @@ } } }, + "tapable": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/tapable/-/tapable-1.1.3.tgz", + "integrity": "sha512-4WK/bYZmj8xLr+HUCODHGF1ZFzsYffasLUgEiMBY4fgtltdO6B4WJtlSbPaDTLpYTcGVwM2qLnFTICEcNxs3kA==", + "dev": true + }, "terminal-link": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/terminal-link/-/terminal-link-2.1.1.tgz", @@ -11887,10 +14393,63 @@ }, "dependencies": { "source-map": { - "version": "0.7.3", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.3.tgz", - "integrity": "sha512-CkCj6giN3S+n9qrYiBTX5gystlENnRW5jZeNLHpe6aue+SrHcG5VYwujhW9s4dY31mEGsxBDrHR6oI69fTXsaQ==", + "version": "0.7.3", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.3.tgz", + "integrity": "sha512-CkCj6giN3S+n9qrYiBTX5gystlENnRW5jZeNLHpe6aue+SrHcG5VYwujhW9s4dY31mEGsxBDrHR6oI69fTXsaQ==", + "dev": true + } + } + }, + "terser-webpack-plugin": { + "version": "1.4.5", + "resolved": "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-1.4.5.tgz", + "integrity": "sha512-04Rfe496lN8EYruwi6oPQkG0vo8C+HT49X687FZnpPF0qMAIHONI6HEXYPKDOE8e5HjXTyKfqRd/agHtH0kOtw==", + "dev": true, + "requires": { + "cacache": "^12.0.2", + "find-cache-dir": "^2.1.0", + "is-wsl": "^1.1.0", + "schema-utils": "^1.0.0", + "serialize-javascript": "^4.0.0", + "source-map": "^0.6.1", + "terser": "^4.1.2", + "webpack-sources": "^1.4.0", + "worker-farm": "^1.7.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 + }, + "schema-utils": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-1.0.0.tgz", + "integrity": "sha512-i27Mic4KovM/lnGsy8whRCHhc7VicJajAjTrYg11K9zfZXnYIt4k5F+kZkwjnrhKzLic/HLU4j11mjsz2G/75g==", + "dev": true, + "requires": { + "ajv": "^6.1.0", + "ajv-errors": "^1.0.0", + "ajv-keywords": "^3.1.0" + } + }, + "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 + }, + "terser": { + "version": "4.8.0", + "resolved": "https://registry.npmjs.org/terser/-/terser-4.8.0.tgz", + "integrity": "sha512-EAPipTNeWsb/3wLPeup1tVPaXfIaU68xMnVdPafIL1TV05OhASArYyIfFvnvJCNrR2NIOvDVNNTFRa+Re2MWyw==", + "dev": true, + "requires": { + "commander": "^2.20.0", + "source-map": "~0.6.1", + "source-map-support": "~0.5.12" + } } } }, @@ -11923,6 +14482,25 @@ "integrity": "sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU=", "dev": true }, + "through2": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.5.tgz", + "integrity": "sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==", + "dev": true, + "requires": { + "readable-stream": "~2.3.6", + "xtend": "~4.0.1" + } + }, + "timers-browserify": { + "version": "2.0.12", + "resolved": "https://registry.npmjs.org/timers-browserify/-/timers-browserify-2.0.12.tgz", + "integrity": "sha512-9phl76Cqm6FhSX9Xe1ZUAMLtm1BLkKj2Qd5ApyWkXzsMRaA7dgr81kf4wJmQf/hAvg8EEyJxDo3du/0KlhPiKQ==", + "dev": true, + "requires": { + "setimmediate": "^1.0.4" + } + }, "timsort": { "version": "0.3.0", "resolved": "https://registry.npmjs.org/timsort/-/timsort-0.3.0.tgz", @@ -11944,6 +14522,12 @@ "integrity": "sha1-I2QN17QtAEM5ERQIIOXPRA5SHdE=", "dev": true }, + "to-arraybuffer": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/to-arraybuffer/-/to-arraybuffer-1.0.1.tgz", + "integrity": "sha1-fSKbH8xjfkZsoIEYCDanqr/4P0M=", + "dev": true + }, "to-fast-properties": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", @@ -11992,6 +14576,12 @@ "repeat-string": "^1.6.1" } }, + "totalist": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/totalist/-/totalist-1.1.0.tgz", + "integrity": "sha512-gduQwd1rOdDMGxFG1gEvhV88Oirdo2p+KjoYFU7k2g+i7n6AFFbDQ5kMPUsW0pNbfQsB/cwXvT1i4Bue0s9g5g==", + "dev": true + }, "tough-cookie": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-4.0.0.tgz", @@ -12044,6 +14634,12 @@ } } }, + "ts-pnp": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/ts-pnp/-/ts-pnp-1.2.0.tgz", + "integrity": "sha512-csd+vJOb/gkzvcCHgTGSChYpy5f1/XKNsmvBGO4JXS+z1v2HobugDz4s1IeFXM3wZB44uczs+eazB5Q/ccdhQw==", + "dev": true + }, "tsconfig-paths": { "version": "3.9.0", "resolved": "https://registry.npmjs.org/tsconfig-paths/-/tsconfig-paths-3.9.0.tgz", @@ -12088,6 +14684,12 @@ "tslib": "^1.8.1" } }, + "tty-browserify": { + "version": "0.0.0", + "resolved": "https://registry.npmjs.org/tty-browserify/-/tty-browserify-0.0.0.tgz", + "integrity": "sha1-oVe6QC2iTpv5V/mqadUk7tQpAaY=", + "dev": true + }, "tunnel-agent": { "version": "0.6.0", "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz", @@ -12124,6 +14726,12 @@ "integrity": "sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==", "dev": true }, + "typedarray": { + "version": "0.0.6", + "resolved": "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz", + "integrity": "sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c=", + "dev": true + }, "typedarray-to-buffer": { "version": "3.1.5", "resolved": "https://registry.npmjs.org/typedarray-to-buffer/-/typedarray-to-buffer-3.1.5.tgz", @@ -12163,6 +14771,30 @@ "set-value": "^2.0.1" } }, + "uniqs": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/uniqs/-/uniqs-2.0.0.tgz", + "integrity": "sha1-/+3ks2slKQaW5uFl1KWe25mOawI=", + "dev": true + }, + "unique-filename": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/unique-filename/-/unique-filename-1.1.1.tgz", + "integrity": "sha512-Vmp0jIp2ln35UTXuryvjzkjGdRyf9b2lTXuSYUiPmzRcl3FDtYqAwOnTJkAngD9SWhnoJzDbTKwaOrZ+STtxNQ==", + "dev": true, + "requires": { + "unique-slug": "^2.0.0" + } + }, + "unique-slug": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/unique-slug/-/unique-slug-2.0.2.tgz", + "integrity": "sha512-zoWr9ObaxALD3DOPfjPSqxt4fnZiWblxHIgeWqW8x7UqDzEtHEQLzji2cuJYQFCU6KmoJikOYAZlrTHHebjx2w==", + "dev": true, + "requires": { + "imurmurhash": "^0.1.4" + } + }, "universalify": { "version": "0.1.2", "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz", @@ -12209,6 +14841,13 @@ } } }, + "upath": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/upath/-/upath-1.2.0.tgz", + "integrity": "sha512-aZwGpamFO61g3OlfT7OQCHqhGnW43ieH9WZeP7QxN/G/jS4jfqUkZxoryvJgVPEcrl5NL/ggHsSmLMHuH64Lhg==", + "dev": true, + "optional": true + }, "uri-js": { "version": "4.4.1", "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", @@ -12224,12 +14863,53 @@ "integrity": "sha1-2pN/emLiH+wf0Y1Js1wpNQZ6bHI=", "dev": true }, + "url": { + "version": "0.11.0", + "resolved": "https://registry.npmjs.org/url/-/url-0.11.0.tgz", + "integrity": "sha1-ODjpfPxgUh63PFJajlW/3Z4uKPE=", + "dev": true, + "requires": { + "punycode": "1.3.2", + "querystring": "0.2.0" + }, + "dependencies": { + "punycode": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.3.2.tgz", + "integrity": "sha1-llOgNvt8HuQjQvIyXM7v6jkmxI0=", + "dev": true + } + } + }, "use": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/use/-/use-3.1.1.tgz", "integrity": "sha512-cwESVXlO3url9YWlFW/TA9cshCEhtu7IKJ/p5soJ/gGpj7vbvFrAY/eIioQ6Dw23KjZhYgiIo8HOs1nQ2vr/oQ==", "dev": true }, + "util": { + "version": "0.11.1", + "resolved": "https://registry.npmjs.org/util/-/util-0.11.1.tgz", + "integrity": "sha512-HShAsny+zS2TZfaXxD9tYj4HQGlBezXZMZuM/S5PKLLoZkShZiGk9o5CzukI1LVHZvjdvZ2Sj1aW/Ndn2NB/HQ==", + "dev": true, + "requires": { + "inherits": "2.0.3" + }, + "dependencies": { + "inherits": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", + "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=", + "dev": true + } + } + }, + "util-deprecate": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", + "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=", + "dev": true + }, "util.promisify": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/util.promisify/-/util.promisify-1.1.1.tgz", @@ -12283,6 +14963,12 @@ "integrity": "sha512-Yw5wW34fSv5spzTXNkokD6S6/Oq92d8q/t14TqsS3fAiA1RYnxSFSIZ+CY3n6PGGRCq5HhJTSepQvFUS2QUDxA==", "dev": true }, + "vendors": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/vendors/-/vendors-1.0.4.tgz", + "integrity": "sha512-/juG65kTL4Cy2su4P8HjtkTxk6VmJDiOPBufWniqQ6wknac6jNiXS9vU+hO3wgusiyqWlzTbVHi0dyJqRONg3w==", + "dev": true + }, "verror": { "version": "1.10.0", "resolved": "https://registry.npmjs.org/verror/-/verror-1.10.0.tgz", @@ -12294,6 +14980,12 @@ "extsprintf": "^1.2.0" } }, + "vm-browserify": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/vm-browserify/-/vm-browserify-1.1.2.tgz", + "integrity": "sha512-2ham8XPWTONajOR0ohOKOHXkm3+gaBmGut3SRuu75xLd/RRaY6vqgh8NBYYk7+RW3u5AtzPQZG8F10LHkl0lAQ==", + "dev": true + }, "w3c-hr-time": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/w3c-hr-time/-/w3c-hr-time-1.0.2.tgz", @@ -12321,12 +15013,326 @@ "makeerror": "1.0.x" } }, + "watchpack": { + "version": "1.7.5", + "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-1.7.5.tgz", + "integrity": "sha512-9P3MWk6SrKjHsGkLT2KHXdQ/9SNkyoJbabxnKOoJepsvJjJG8uYTR3yTPxPQvNDI3w4Nz1xnE0TLHK4RIVe/MQ==", + "dev": true, + "requires": { + "chokidar": "^3.4.1", + "graceful-fs": "^4.1.2", + "neo-async": "^2.5.0", + "watchpack-chokidar2": "^2.0.1" + } + }, + "watchpack-chokidar2": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/watchpack-chokidar2/-/watchpack-chokidar2-2.0.1.tgz", + "integrity": "sha512-nCFfBIPKr5Sh61s4LPpy1Wtfi0HE8isJ3d2Yb5/Ppw2P2B/3eVSEBjKfN0fmHJSK14+31KwMKmcrzs2GM4P0Ww==", + "dev": true, + "optional": true, + "requires": { + "chokidar": "^2.1.8" + }, + "dependencies": { + "anymatch": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-2.0.0.tgz", + "integrity": "sha512-5teOsQWABXHHBFP9y3skS5P3d/WfWXpv3FUpy+LorMrNYaT9pI4oLMQX7jzQ2KklNpGpWHzdCXTDT2Y3XGlZBw==", + "dev": true, + "optional": true, + "requires": { + "micromatch": "^3.1.4", + "normalize-path": "^2.1.1" + }, + "dependencies": { + "normalize-path": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz", + "integrity": "sha1-GrKLVW4Zg2Oowab35vogE3/mrtk=", + "dev": true, + "optional": true, + "requires": { + "remove-trailing-separator": "^1.0.1" + } + } + } + }, + "binary-extensions": { + "version": "1.13.1", + "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-1.13.1.tgz", + "integrity": "sha512-Un7MIEDdUC5gNpcGDV97op1Ywk748MpHcFTHoYs6qnj1Z3j7I53VG3nwZhKzoBZmbdRNnb6WRdFlwl7tSDuZGw==", + "dev": true, + "optional": true + }, + "chokidar": { + "version": "2.1.8", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-2.1.8.tgz", + "integrity": "sha512-ZmZUazfOzf0Nve7duiCKD23PFSCs4JPoYyccjUFF3aQkQadqBhfzhjkwBH2mNOG9cTBwhamM37EIsIkZw3nRgg==", + "dev": true, + "optional": true, + "requires": { + "anymatch": "^2.0.0", + "async-each": "^1.0.1", + "braces": "^2.3.2", + "fsevents": "^1.2.7", + "glob-parent": "^3.1.0", + "inherits": "^2.0.3", + "is-binary-path": "^1.0.0", + "is-glob": "^4.0.0", + "normalize-path": "^3.0.0", + "path-is-absolute": "^1.0.0", + "readdirp": "^2.2.1", + "upath": "^1.1.1" + } + }, + "fsevents": { + "version": "1.2.13", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-1.2.13.tgz", + "integrity": "sha512-oWb1Z6mkHIskLzEJ/XWX0srkpkTQ7vaopMQkyaEIoq0fmtFVxOthb8cCxeT+p3ynTdkk/RZwbgG4brR5BeWECw==", + "dev": true, + "optional": true + }, + "glob-parent": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-3.1.0.tgz", + "integrity": "sha1-nmr2KZ2NO9K9QEMIMr0RPfkGxa4=", + "dev": true, + "optional": 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, + "optional": true, + "requires": { + "is-extglob": "^2.1.0" + } + } + } + }, + "is-binary-path": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-1.0.1.tgz", + "integrity": "sha1-dfFmQrSA8YenEcgUFh/TpKdlWJg=", + "dev": true, + "optional": true, + "requires": { + "binary-extensions": "^1.0.0" + } + }, + "readdirp": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-2.2.1.tgz", + "integrity": "sha512-1JU/8q+VgFZyxwrJ+SVIOsh+KywWGpds3NTqikiKpDMZWScmAYyKIgqkO+ARvNWJfXeXR1zxz7aHF4u4CyH6vQ==", + "dev": true, + "optional": true, + "requires": { + "graceful-fs": "^4.1.11", + "micromatch": "^3.1.10", + "readable-stream": "^2.0.2" + } + } + } + }, + "wcwidth": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/wcwidth/-/wcwidth-1.0.1.tgz", + "integrity": "sha1-8LDc+RW8X/FSivrbLA4XtTLaL+g=", + "dev": true, + "requires": { + "defaults": "^1.0.3" + } + }, "webidl-conversions": { "version": "6.1.0", "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-6.1.0.tgz", "integrity": "sha512-qBIvFLGiBpLjfwmYAaHPXsn+ho5xZnGvyGvsarywGNc8VyQJUMHJ8OBKGGrPER0okBeMDaan4mNBlgBROxuI8w==", "dev": true }, + "webpack": { + "version": "4.46.0", + "resolved": "https://registry.npmjs.org/webpack/-/webpack-4.46.0.tgz", + "integrity": "sha512-6jJuJjg8znb/xRItk7bkT0+Q7AHCYjjFnvKIWQPkNIOyRqoCGvkOs0ipeQzrqz4l5FtN5ZI/ukEHroeX/o1/5Q==", + "dev": true, + "requires": { + "@webassemblyjs/ast": "1.9.0", + "@webassemblyjs/helper-module-context": "1.9.0", + "@webassemblyjs/wasm-edit": "1.9.0", + "@webassemblyjs/wasm-parser": "1.9.0", + "acorn": "^6.4.1", + "ajv": "^6.10.2", + "ajv-keywords": "^3.4.1", + "chrome-trace-event": "^1.0.2", + "enhanced-resolve": "^4.5.0", + "eslint-scope": "^4.0.3", + "json-parse-better-errors": "^1.0.2", + "loader-runner": "^2.4.0", + "loader-utils": "^1.2.3", + "memory-fs": "^0.4.1", + "micromatch": "^3.1.10", + "mkdirp": "^0.5.3", + "neo-async": "^2.6.1", + "node-libs-browser": "^2.2.1", + "schema-utils": "^1.0.0", + "tapable": "^1.1.3", + "terser-webpack-plugin": "^1.4.3", + "watchpack": "^1.7.4", + "webpack-sources": "^1.4.1" + }, + "dependencies": { + "acorn": { + "version": "6.4.2", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-6.4.2.tgz", + "integrity": "sha512-XtGIhXwF8YM8bJhGxG5kXgjkEuNGLTkoYqVE+KMR+aspr4KGYmKYg7yUe3KghyQ9yheNwLnjmzh/7+gfDBmHCQ==", + "dev": true + }, + "eslint-scope": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-4.0.3.tgz", + "integrity": "sha512-p7VutNr1O/QrxysMo3E45FjYDTeXBy0iTltPFNSqKAIfjDSXC+4dj+qfyuD8bfAXrW/y6lW3O76VaYNPKfpKrg==", + "dev": true, + "requires": { + "esrecurse": "^4.1.0", + "estraverse": "^4.1.1" + } + }, + "json5": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.1.tgz", + "integrity": "sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow==", + "dev": true, + "requires": { + "minimist": "^1.2.0" + } + }, + "loader-utils": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-1.4.0.tgz", + "integrity": "sha512-qH0WSMBtn/oHuwjy/NucEgbx5dbxxnxup9s4PVXJUDHZBQY+s0NWA9rJf53RBnQZxfch7euUui7hpoAPvALZdA==", + "dev": true, + "requires": { + "big.js": "^5.2.2", + "emojis-list": "^3.0.0", + "json5": "^1.0.1" + } + }, + "schema-utils": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-1.0.0.tgz", + "integrity": "sha512-i27Mic4KovM/lnGsy8whRCHhc7VicJajAjTrYg11K9zfZXnYIt4k5F+kZkwjnrhKzLic/HLU4j11mjsz2G/75g==", + "dev": true, + "requires": { + "ajv": "^6.1.0", + "ajv-errors": "^1.0.0", + "ajv-keywords": "^3.1.0" + } + } + } + }, + "webpack-bundle-analyzer": { + "version": "4.4.2", + "resolved": "https://registry.npmjs.org/webpack-bundle-analyzer/-/webpack-bundle-analyzer-4.4.2.tgz", + "integrity": "sha512-PIagMYhlEzFfhMYOzs5gFT55DkUdkyrJi/SxJp8EF3YMWhS+T9vvs2EoTetpk5qb6VsCq02eXTlRDOydRhDFAQ==", + "dev": true, + "requires": { + "acorn": "^8.0.4", + "acorn-walk": "^8.0.0", + "chalk": "^4.1.0", + "commander": "^6.2.0", + "gzip-size": "^6.0.0", + "lodash": "^4.17.20", + "opener": "^1.5.2", + "sirv": "^1.0.7", + "ws": "^7.3.1" + }, + "dependencies": { + "acorn-walk": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-8.1.0.tgz", + "integrity": "sha512-mjmzmv12YIG/G8JQdQuz2MUDShEJ6teYpT5bmWA4q7iwoGen8xtt3twF3OvzIUl+Q06aWIjvnwQUKvQ6TtMRjg==", + "dev": true + }, + "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 + }, + "commander": { + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/commander/-/commander-6.2.1.tgz", + "integrity": "sha512-U7VdrJFnJgo4xjrHpTzu0yrHPGImdsmD95ZlgYSEajAn2JKzDhDTPG9kBTefmObL2w/ngeZnilk+OV9CG3d7UA==", + "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" + } + } + } + }, + "webpack-sources": { + "version": "1.4.3", + "resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-1.4.3.tgz", + "integrity": "sha512-lgTS3Xhv1lCOKo7SA5TjKXMjpSM4sBjNV5+q2bqesbSPs5FjGmU6jjtBSkX9b4qW87vDIsCIlUPOEhbZrMdjeQ==", + "dev": true, + "requires": { + "source-list-map": "^2.0.0", + "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 + } + } + }, "whatwg-encoding": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/whatwg-encoding/-/whatwg-encoding-1.0.5.tgz", @@ -12387,6 +15393,15 @@ "integrity": "sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ==", "dev": true }, + "worker-farm": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/worker-farm/-/worker-farm-1.7.0.tgz", + "integrity": "sha512-rvw3QTZc8lAxyVrqcSGVm5yP/IJ2UcB3U0graE3LCFoZ0Yn2x4EoVSqJKdB/T5M+FLcRPjz4TDacRf3OCfNUzw==", + "dev": true, + "requires": { + "errno": "~0.1.7" + } + }, "wrap-ansi": { "version": "6.2.0", "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-6.2.0.tgz", @@ -12475,6 +15490,12 @@ "integrity": "sha512-JZnDKK8B0RCDw84FNdDAIpZK+JuJw+s7Lz8nksI7SIuU3UXJJslUthsi+uWBUYOwPFwW7W7PRLRfUKpxjtjFCw==", "dev": true }, + "xtend": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz", + "integrity": "sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==", + "dev": true + }, "y18n": { "version": "4.0.1", "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.1.tgz", @@ -12487,6 +15508,12 @@ "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", "dev": true }, + "yaml": { + "version": "1.10.2", + "resolved": "https://registry.npmjs.org/yaml/-/yaml-1.10.2.tgz", + "integrity": "sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg==", + "dev": true + }, "yargs": { "version": "15.4.1", "resolved": "https://registry.npmjs.org/yargs/-/yargs-15.4.1.tgz", diff --git a/package.json b/package.json index 4a513db086..f8320a9f4d 100644 --- a/package.json +++ b/package.json @@ -27,6 +27,7 @@ "types": "dist/index.d.ts", "devDependencies": { "@microsoft/api-extractor": "^7.13.2", + "@size-limit/preset-small-lib": "^4.11.0", "@testing-library/react": "^11.2.6", "@testing-library/react-hooks": "^5.1.2", "@testing-library/user-event": "^13.1.5", @@ -69,6 +70,7 @@ "react-redux": "^7.2.3", "rollup": "^2.47.0", "rollup-plugin-strip-code": "^0.2.6", + "size-limit": "^4.11.0", "source-map": "^0.7.3", "terser": "^5.6.1", "ts-jest": "^26.5.5", From 8253a9b6ae9be3510e1db5b96f46b6d43dc22c7c Mon Sep 17 00:00:00 2001 From: Lenz Weber Date: Sat, 22 May 2021 16:42:07 +0200 Subject: [PATCH 2/8] first improvements --- src/query/core/buildSelectors.ts | 2 +- src/query/core/index.ts | 5 +---- src/query/core/module.ts | 5 ++++- src/query/core/setupListeners.ts | 8 ++++---- src/query/react/index.ts | 5 ++++- src/query/react/module.ts | 2 +- src/query/retry.ts | 2 +- 7 files changed, 16 insertions(+), 13 deletions(-) diff --git a/src/query/core/buildSelectors.ts b/src/query/core/buildSelectors.ts index 32a24fdd1c..9c42746e14 100644 --- a/src/query/core/buildSelectors.ts +++ b/src/query/core/buildSelectors.ts @@ -40,7 +40,7 @@ export type SkipToken = typeof skipToken * If passed directly into a query or mutation selector, that selector will always * return an uninitialized state. */ -export const skipToken = Symbol('skip selector') +export const skipToken = /* #__PURE__ */ Symbol('skip selector') /** @deprecated renamed to `skipToken` */ export const skipSelector = skipToken diff --git a/src/query/core/index.ts b/src/query/core/index.ts index ba4384d69b..6517f88bef 100644 --- a/src/query/core/index.ts +++ b/src/query/core/index.ts @@ -1,9 +1,6 @@ -import { enablePatches } from 'immer' import { buildCreateApi, CreateApi } from '../createApi' import { coreModule, coreModuleName } from './module' -enablePatches() - -const createApi = buildCreateApi(coreModule()) +const createApi = /* #__PURE__ */ buildCreateApi(coreModule()) export { createApi, coreModule } diff --git a/src/query/core/module.ts b/src/query/core/module.ts index 17cc221b54..2b22661c62 100644 --- a/src/query/core/module.ts +++ b/src/query/core/module.ts @@ -39,6 +39,7 @@ import { BaseQueryFn } from '../baseQueryTypes' import type { ReferenceCacheLifecycle } from './buildMiddleware/cacheLifecycle' import type { ReferenceQueryLifecycle } from './buildMiddleware/queryLifecycle' import { ReferenceCacheCollection } from './buildMiddleware/cacheCollection' +import { enablePatches } from 'immer' /** * `ifOlderThan` - (default: `false` | `number`) - _number is value in seconds_ @@ -54,7 +55,7 @@ export type PrefetchOptions = } | { force?: boolean } -export const coreModuleName = Symbol() +export const coreModuleName = /* #__PURE__ */ Symbol() export type CoreModule = | typeof coreModuleName | ReferenceCacheLifecycle @@ -247,6 +248,8 @@ export const coreModule = (): Module => ({ }, context ) { + enablePatches() + assertCast(serializeQueryArgs) const assertTagType: AssertTagTypes = (tag) => { diff --git a/src/query/core/setupListeners.ts b/src/query/core/setupListeners.ts index 60acbeb261..58421ee1b8 100644 --- a/src/query/core/setupListeners.ts +++ b/src/query/core/setupListeners.ts @@ -5,10 +5,10 @@ import { ActionCreatorWithoutPayload, } from '@reduxjs/toolkit' -export const onFocus = createAction('__rtkq/focused') -export const onFocusLost = createAction('__rtkq/unfocused') -export const onOnline = createAction('__rtkq/online') -export const onOffline = createAction('__rtkq/offline') +export const onFocus = /* #__PURE__ */ createAction('__rtkq/focused') +export const onFocusLost = /* #__PURE__ */ createAction('__rtkq/unfocused') +export const onOnline = /* #__PURE__ */ createAction('__rtkq/online') +export const onOffline = /* #__PURE__ */ createAction('__rtkq/offline') let initialized = false diff --git a/src/query/react/index.ts b/src/query/react/index.ts index 103854e5e0..09f26939a4 100644 --- a/src/query/react/index.ts +++ b/src/query/react/index.ts @@ -17,6 +17,9 @@ import { PrefetchOptions } from '../core/module' export * from '..' export { ApiProvider } from './ApiProvider' -const createApi = buildCreateApi(coreModule(), reactHooksModule()) +const createApi = /* #__PURE__ */ buildCreateApi( + coreModule(), + reactHooksModule() +) export { createApi, reactHooksModule } diff --git a/src/query/react/module.ts b/src/query/react/module.ts index b46d1ecb3f..fa38e8dc71 100644 --- a/src/query/react/module.ts +++ b/src/query/react/module.ts @@ -23,7 +23,7 @@ import { import { QueryKeys } from '../core/apiState' import { PrefetchOptions } from '../core/module' -export const reactHooksModuleName = Symbol() +export const reactHooksModuleName = /* #__PURE__ */ Symbol() export type ReactHooksModule = typeof reactHooksModuleName declare module '../apiTypes' { diff --git a/src/query/retry.ts b/src/query/retry.ts index f938356e79..222e384ece 100644 --- a/src/query/retry.ts +++ b/src/query/retry.ts @@ -108,4 +108,4 @@ const retryWithBackoff: BaseQueryEnhancer< * export const { useGetPostsQuery, useGetPostQuery } = api; * ``` */ -export const retry = Object.assign(retryWithBackoff, { fail }) +export const retry = /* #__PURE__ */ Object.assign(retryWithBackoff, { fail }) From 887e3655707baea3a9d1304945544ff39f68884d Mon Sep 17 00:00:00 2001 From: Lenz Weber Date: Tue, 25 May 2021 23:25:31 +0200 Subject: [PATCH 3/8] have `/query/react` reference `/query` --- .size-limit.js | 121 ++++++++++++++------ src/query/react/ApiProvider.tsx | 4 +- src/query/react/buildHooks.ts | 38 +++--- src/query/{ => react}/constants.ts | 0 src/query/react/index.ts | 17 ++- src/query/react/module.ts | 25 ++-- src/query/react/useShallowStableValue.ts | 2 +- src/query/react/versionedTypes/ts40Types.ts | 2 +- src/query/react/versionedTypes/ts41Types.ts | 6 +- src/query/utils/index.ts | 1 - src/query/utils/shallowEqual.ts | 38 ------ 11 files changed, 133 insertions(+), 121 deletions(-) rename src/query/{ => react}/constants.ts (100%) delete mode 100644 src/query/utils/shallowEqual.ts diff --git a/.size-limit.js b/.size-limit.js index 9c6efe5450..39f3242db1 100644 --- a/.size-limit.js +++ b/.size-limit.js @@ -1,5 +1,6 @@ const webpack = require('webpack') let { join } = require('path') +const { getConstantValue } = require('typescript') const rtkEntryPoints = [ 'dist/redux-toolkit.cjs.production.min.js', @@ -24,75 +25,125 @@ const reactEntryPoints = [ function withRtkPath(path) { return (config) => { - const rtkPath = path.replace( - /(query\/rtk-query|query\/react\/rtk-query-react)/, - 'redux-toolkit' - ) - config.plugins.push( - new webpack.NormalModuleReplacementPlugin( - /@reduxjs\/toolkit/, - join(__dirname, rtkPath) + if (path.startsWith('dist/query/rtk-query')) { + config.plugins.push( + new webpack.NormalModuleReplacementPlugin( + /@reduxjs\/toolkit/, + join( + __dirname, + path.replace('dist/query/rtk-query', 'dist/redux-toolkit') + ) + ) ) - ) + } + if (path.startsWith('dist/query/react/rtk-query-react')) { + config.plugins.push( + new webpack.NormalModuleReplacementPlugin( + /@reduxjs\/toolkit\/query/, + join( + __dirname, + path.replace( + 'dist/query/react/rtk-query-react', + 'dist/query/rtk-query' + ) + ) + ), + new webpack.NormalModuleReplacementPlugin( + /@reduxjs\/toolkit/, + join( + __dirname, + path.replace( + 'dist/query/react/rtk-query-react', + 'dist/redux-toolkit' + ) + ) + ) + ) + } return config } } +const ignoreReact = ['react'] +const ignoreAll = [ + '@reduxjs/toolkit', + '@reduxjs/toolkit', + 'immer', + 'redux', + 'reselect', + 'redux-thunk', + 'react-redux', + 'react', +] + module.exports = [ + ...[...rtkEntryPoints, ...queryEntryPoints, ...reactEntryPoints].flatMap( + (path) => [ + { + name: `1. entry point: ${path} (with all dependencies except react)`, + path, + modifyWebpackConfig: withRtkPath(path), + ignore: ignoreReact, + }, + { + name: `2. entry point: ${path} (without dependencies)`, + path, + modifyWebpackConfig: withRtkPath(path), + ignore: ignoreAll, + }, + ] + ), ...rtkEntryPoints.flatMap((path) => [ { - name: `RTK main entry point (${path})`, - path, - }, - { - name: `configureStore (${path})`, - path, - import: '{ configureStore }', - }, - { - name: `createSlice (${path})`, + name: `3. createSlice (${path})`, path, import: '{ createSlice }', }, { - name: `createEntityAdapter (${path})`, + name: `3. createEntityAdapter (${path})`, path, import: '{ createEntityAdapter }', }, - ]), - ...queryEntryPoints.concat(reactEntryPoints).flatMap((path) => [ - { - name: `RTK-Query entry point (including all imports from RTK & immer) (${path})`, - path, - modifyWebpackConfig: withRtkPath(path), - ignore: ['react'], - }, { - name: `RTK-Query entry point (without RTK, immer, react-redux) (${path})`, + name: `3. configureStore (${path})`, path, - modifyWebpackConfig: withRtkPath(path), - ignore: ['@reduxjs/toolkit', 'immer', 'react-redux', 'react'], + import: '{ configureStore }', }, + ]), + ...[...queryEntryPoints, ...reactEntryPoints].flatMap((path) => [ { - name: `createApi (${path})`, + name: `3. createApi (${path})`, path, import: '{ createApi }', modifyWebpackConfig: withRtkPath(path), ignore: ['react'], }, { - name: `setupListeners (${path})`, + name: `3. setupListeners (${path})`, path, import: '{ setupListeners }', modifyWebpackConfig: withRtkPath(path), ignore: ['react'], }, { - name: `fetchBaseQuery (${path})`, + name: `3. fetchBaseQuery (${path})`, path, import: '{ fetchBaseQuery }', modifyWebpackConfig: withRtkPath(path), ignore: ['react'], }, ]), -].sort((a, b) => a.name.localeCompare(b.name) * 10) +].sort(byName) + +function score(e) { + return (!e.import ? -100 : 0) + (e.ignore === ignoreReact ? -10 : 0) +} + +function byName(a, b) { + return ( + b.path.localeCompare(a.path) + + a.name.substring(0, 12).localeCompare(b.name.substring(0, 12)) * 10 + ) +} + +console.log(module.exports.map((m) => m.name)) diff --git a/src/query/react/ApiProvider.tsx b/src/query/react/ApiProvider.tsx index 4343a4edd1..8c59775497 100644 --- a/src/query/react/ApiProvider.tsx +++ b/src/query/react/ApiProvider.tsx @@ -1,8 +1,8 @@ import { configureStore } from '@reduxjs/toolkit' import React, { Context } from 'react' import { Provider, ReactReduxContextValue } from 'react-redux' -import { setupListeners } from '../core/setupListeners' -import { Api } from '../apiTypes' +import { setupListeners } from '@reduxjs/toolkit/query' +import type { Api } from '@reduxjs/toolkit/dist/query/apiTypes' /** * Can be used as a `Provider` if you **do not already have a Redux store**. diff --git a/src/query/react/buildHooks.ts b/src/query/react/buildHooks.ts index ffc97791ed..bd628bf35d 100644 --- a/src/query/react/buildHooks.ts +++ b/src/query/react/buildHooks.ts @@ -12,43 +12,45 @@ import { useRef, useState, } from 'react' -import { - QueryStatus, +import { QueryStatus, skipToken } from '@reduxjs/toolkit/query' +import type { QuerySubState, SubscriptionOptions, QueryKeys, RootState, -} from '../core/apiState' -import { +} from '@reduxjs/toolkit/dist/query/core/apiState' +import type { EndpointDefinitions, MutationDefinition, QueryDefinition, QueryArgFrom, ResultTypeFrom, -} from '../endpointDefinitions' -import { +} from '@reduxjs/toolkit/dist/query/endpointDefinitions' +import type { QueryResultSelectorResult, MutationResultSelectorResult, - skipToken, SkipToken, -} from '../core/buildSelectors' -import { +} from '@reduxjs/toolkit/dist/query/core/buildSelectors' +import type { QueryActionCreatorResult, MutationActionCreatorResult, -} from '../core/buildInitiate' -import { shallowEqual } from '../utils' -import { Api } from '../apiTypes' -import { Id, NoInfer, Override } from '../tsHelpers' -import { +} from '@reduxjs/toolkit/dist/query/core/buildInitiate' +import { shallowEqual } from 'react-redux' +import type { Api } from '@reduxjs/toolkit/dist/query/apiTypes' +import type { + Id, + NoInfer, + Override, +} from '@reduxjs/toolkit/dist/query/tsHelpers' +import type { ApiEndpointMutation, ApiEndpointQuery, CoreModule, PrefetchOptions, -} from '../core/module' +} from '@reduxjs/toolkit/dist/query/core/module' import { ReactHooksModuleOptions } from './module' import { useShallowStableValue } from './useShallowStableValue' -import { UninitializedValue, UNINITIALIZED_VALUE } from '../constants' -import { useStore } from 'react-redux' +import { UninitializedValue, UNINITIALIZED_VALUE } from './constants' export interface QueryHooks< Definition extends QueryDefinition @@ -452,7 +454,7 @@ type GenericPrefetchThunk = ( */ export function buildHooks({ api, - moduleOptions: { batch, useDispatch, useSelector }, + moduleOptions: { batch, useDispatch, useSelector, useStore }, }: { api: Api moduleOptions: Required diff --git a/src/query/constants.ts b/src/query/react/constants.ts similarity index 100% rename from src/query/constants.ts rename to src/query/react/constants.ts diff --git a/src/query/react/index.ts b/src/query/react/index.ts index 09f26939a4..93408ea811 100644 --- a/src/query/react/index.ts +++ b/src/query/react/index.ts @@ -1,20 +1,19 @@ -import { coreModule, coreModuleName } from '../core/module' -import { buildCreateApi, CreateApi } from '../createApi' +import { coreModule, buildCreateApi, CreateApi } from '@reduxjs/toolkit/query' import { reactHooksModule, reactHooksModuleName } from './module' -import { MutationHooks, QueryHooks } from './buildHooks' -import { +import type { MutationHooks, QueryHooks } from './buildHooks' +import type { EndpointDefinitions, QueryDefinition, MutationDefinition, QueryArgFrom, -} from '../endpointDefinitions' -import { BaseQueryFn } from '../baseQueryTypes' +} from '@reduxjs/toolkit/dist/query/endpointDefinitions' +import type { BaseQueryFn } from '@reduxjs/toolkit/dist/query/baseQueryTypes' -import { QueryKeys } from '../core/apiState' -import { PrefetchOptions } from '../core/module' +import type { QueryKeys } from '@reduxjs/toolkit/dist/query/core/apiState' +import type { PrefetchOptions } from '@reduxjs/toolkit/dist/query/core/module' -export * from '..' +export * from '@reduxjs/toolkit/query' export { ApiProvider } from './ApiProvider' const createApi = /* #__PURE__ */ buildCreateApi( diff --git a/src/query/react/module.ts b/src/query/react/module.ts index fa38e8dc71..042b4c5b72 100644 --- a/src/query/react/module.ts +++ b/src/query/react/module.ts @@ -1,16 +1,15 @@ import { buildHooks, MutationHooks, QueryHooks } from './buildHooks' -import { +import { isQueryDefinition, isMutationDefinition } from '../endpointDefinitions' +import type { EndpointDefinitions, QueryDefinition, MutationDefinition, - isQueryDefinition, - isMutationDefinition, QueryArgFrom, -} from '../endpointDefinitions' -import { Api, Module } from '../apiTypes' +} from '@reduxjs/toolkit/dist/query/endpointDefinitions' +import type { Api, Module } from '../apiTypes' import { capitalize } from '../utils' import { safeAssign } from '../tsHelpers' -import { BaseQueryFn } from '../baseQueryTypes' +import type { BaseQueryFn } from '@reduxjs/toolkit/dist/query/baseQueryTypes' import { HooksWithUniqueNames } from './versionedTypes' @@ -26,7 +25,7 @@ import { PrefetchOptions } from '../core/module' export const reactHooksModuleName = /* #__PURE__ */ Symbol() export type ReactHooksModule = typeof reactHooksModuleName -declare module '../apiTypes' { +declare module '@reduxjs/toolkit/dist/query/apiTypes' { export interface ApiModules< // eslint-disable-next-line @typescript-eslint/no-unused-vars BaseQuery extends BaseQueryFn, @@ -67,25 +66,25 @@ declare module '../apiTypes' { } } -// type RR = typeof import('react-redux') +type RR = typeof import('react-redux') export interface ReactHooksModuleOptions { /** * The version of the `batchedUpdates` function to be used */ - batch?: typeof rrBatch // RR['batch'] + batch?: RR['batch'] /** * The version of the `useDispatch` hook to be used */ - useDispatch?: typeof rrUseDispatch // RR['useDispatch'] + useDispatch?: RR['useDispatch'] /** * The version of the `useSelector` hook to be used */ - useSelector?: typeof rrUseSelector //RR['useSelector'] + useSelector?: RR['useSelector'] /** - * Currently unused - for potential future use + * The version of the `useStore` hook to be used */ - useStore?: typeof rrUseStore //RR['useStore'] + useStore?: RR['useStore'] } /** diff --git a/src/query/react/useShallowStableValue.ts b/src/query/react/useShallowStableValue.ts index 6f28b0c5f2..b8786e06bb 100644 --- a/src/query/react/useShallowStableValue.ts +++ b/src/query/react/useShallowStableValue.ts @@ -1,5 +1,5 @@ import { useEffect, useRef } from 'react' -import { shallowEqual } from '../utils' +import { shallowEqual } from 'react-redux' export function useShallowStableValue(value: T) { const cache = useRef(value) diff --git a/src/query/react/versionedTypes/ts40Types.ts b/src/query/react/versionedTypes/ts40Types.ts index 645c8c2e7f..698371ad53 100644 --- a/src/query/react/versionedTypes/ts40Types.ts +++ b/src/query/react/versionedTypes/ts40Types.ts @@ -1,4 +1,4 @@ -import { EndpointDefinitions } from '../../endpointDefinitions' +import type { EndpointDefinitions } from '@reduxjs/toolkit/dist/query/endpointDefinitions' // For TS 4.0 and earlier, disallow use of the per-endpoint // hooks defined at the root of each API object, because we diff --git a/src/query/react/versionedTypes/ts41Types.ts b/src/query/react/versionedTypes/ts41Types.ts index 2f74095755..d21735d2e8 100644 --- a/src/query/react/versionedTypes/ts41Types.ts +++ b/src/query/react/versionedTypes/ts41Types.ts @@ -1,10 +1,10 @@ -import { UseMutation, UseLazyQuery, UseQuery } from './../buildHooks' -import { +import type { UseMutation, UseLazyQuery, UseQuery } from '../buildHooks' +import type { DefinitionType, EndpointDefinitions, MutationDefinition, QueryDefinition, -} from '../../endpointDefinitions' +} from '@reduxjs/toolkit/dist/query/endpointDefinitions' // For TS 4.1 and later, we can use string literal types to define // the exact names of each endpoint's exported hooks diff --git a/src/query/utils/index.ts b/src/query/utils/index.ts index 5c9937855a..46694a2c3f 100644 --- a/src/query/utils/index.ts +++ b/src/query/utils/index.ts @@ -2,7 +2,6 @@ export * from './isAbsoluteUrl' export * from './isValidUrl' export * from './joinUrls' export * from './flatten' -export * from './shallowEqual' export * from './capitalize' export * from './isOnline' export * from './isDocumentVisible' diff --git a/src/query/utils/shallowEqual.ts b/src/query/utils/shallowEqual.ts deleted file mode 100644 index fe752c3803..0000000000 --- a/src/query/utils/shallowEqual.ts +++ /dev/null @@ -1,38 +0,0 @@ -/* eslint-disable no-self-compare */ - -function is(x: any, y: any) { - if (x === y) { - return x !== 0 || y !== 0 || 1 / x === 1 / y - } else { - return x !== x && y !== y - } -} - -export function shallowEqual(objA: any, objB: any) { - if (is(objA, objB)) return true - - if ( - typeof objA !== 'object' || - objA === null || - typeof objB !== 'object' || - objB === null - ) { - return false - } - - const keysA = Object.keys(objA) - const keysB = Object.keys(objB) - - if (keysA.length !== keysB.length) return false - - for (let i = 0; i < keysA.length; i++) { - if ( - !Object.prototype.hasOwnProperty.call(objB, keysA[i]) || - !is(objA[keysA[i]], objB[keysA[i]]) - ) { - return false - } - } - - return true -} From abb319bb2ac22989ae8242005d9db7e560822934 Mon Sep 17 00:00:00 2001 From: Lenz Weber Date: Tue, 25 May 2021 23:28:36 +0200 Subject: [PATCH 4/8] wrap api extractor in try...catch --- scripts/build.ts | 48 ++++++++++++++++++++++++++---------------------- 1 file changed, 26 insertions(+), 22 deletions(-) diff --git a/scripts/build.ts b/scripts/build.ts index d7155f0e6a..aed6deb227 100644 --- a/scripts/build.ts +++ b/scripts/build.ts @@ -328,31 +328,35 @@ async function main({ skipExtraction = false, local = false }: BuildArgs) { if (!skipExtraction) { for (let entryPoint of entryPoints) { - // Load and parse the api-extractor.json file - const extractorConfig: ExtractorConfig = ExtractorConfig.loadFileAndPrepare( - entryPoint.extractionConfig - ) - - console.log('Extracting API types for entry point: ', entryPoint.prefix) - // Invoke API Extractor - const extractorResult: ExtractorResult = Extractor.invoke( - extractorConfig, - { - // Equivalent to the "--local" command-line parameter - localBuild: local, + try { + // Load and parse the api-extractor.json file + const extractorConfig: ExtractorConfig = ExtractorConfig.loadFileAndPrepare( + entryPoint.extractionConfig + ) - // Equivalent to the "--verbose" command-line parameter - showVerboseMessages: false, - } - ) + console.log('Extracting API types for entry point: ', entryPoint.prefix) + // Invoke API Extractor + const extractorResult: ExtractorResult = Extractor.invoke( + extractorConfig, + { + // Equivalent to the "--local" command-line parameter + localBuild: local, - if (extractorResult.succeeded) { - console.log(`API Extractor completed successfully`) - } else { - console.error( - `API Extractor completed with ${extractorResult.errorCount} errors` + - ` and ${extractorResult.warningCount} warnings` + // Equivalent to the "--verbose" command-line parameter + showVerboseMessages: false, + } ) + + if (extractorResult.succeeded) { + console.log(`API Extractor completed successfully`) + } else { + console.error( + `API Extractor completed with ${extractorResult.errorCount} errors` + + ` and ${extractorResult.warningCount} warnings` + ) + } + } catch (e) { + console.error('API extractor crashed: ', e) } } } From 8afbabe8475403588cce8a313837441a9b272eed Mon Sep 17 00:00:00 2001 From: Lenz Weber Date: Tue, 25 May 2021 23:39:39 +0200 Subject: [PATCH 5/8] speed up build for size-limit --- .github/workflows/size.yml | 1 + .github/workflows/tests.yml | 7 ++++--- .size-limit.js | 33 +++++++++++++++++---------------- package.json | 3 ++- 4 files changed, 24 insertions(+), 20 deletions(-) diff --git a/.github/workflows/size.yml b/.github/workflows/size.yml index 6021cda3e1..3fd75e3cb2 100644 --- a/.github/workflows/size.yml +++ b/.github/workflows/size.yml @@ -10,3 +10,4 @@ jobs: - uses: andresz1/size-limit-action@v1 with: github_token: ${{ secrets.GITHUB_TOKEN }} + build_script: build-only diff --git a/.github/workflows/tests.yml b/.github/workflows/tests.yml index 3c4e24f593..8c81203b5b 100644 --- a/.github/workflows/tests.yml +++ b/.github/workflows/tests.yml @@ -23,10 +23,11 @@ jobs: - name: Install deps run: npm ci - - name: Pack (including Prepare) + - name: Build + run: npm run build-ci + + - name: Pack run: npm pack - env: - NODE_ENV: 'production' # this doesn't actually matter, so just set it to production - uses: actions/upload-artifact@v2 with: diff --git a/.size-limit.js b/.size-limit.js index 39f3242db1..fa88c7ea58 100644 --- a/.size-limit.js +++ b/.size-limit.js @@ -1,6 +1,5 @@ const webpack = require('webpack') let { join } = require('path') -const { getConstantValue } = require('typescript') const rtkEntryPoints = [ 'dist/redux-toolkit.cjs.production.min.js', @@ -23,6 +22,12 @@ const reactEntryPoints = [ 'dist/query/react/rtk-query-react.modern.production.min.js', ] +const umdBuilds = [ + 'dist/redux-toolkit.umd.js', + 'dist/query/rtk-query.umd.js', + 'dist/query/react/rtk-query-react.umd.js', +] + function withRtkPath(path) { return (config) => { if (path.startsWith('dist/query/rtk-query')) { @@ -64,26 +69,22 @@ function withRtkPath(path) { } } -const ignoreReact = ['react'] const ignoreAll = [ '@reduxjs/toolkit', - '@reduxjs/toolkit', + '@reduxjs/toolkit/query', 'immer', 'redux', 'reselect', 'redux-thunk', - 'react-redux', - 'react', ] module.exports = [ ...[...rtkEntryPoints, ...queryEntryPoints, ...reactEntryPoints].flatMap( (path) => [ { - name: `1. entry point: ${path} (with all dependencies except react)`, + name: `1. entry point: ${path}`, path, modifyWebpackConfig: withRtkPath(path), - ignore: ignoreReact, }, { name: `2. entry point: ${path} (without dependencies)`, @@ -116,28 +117,30 @@ module.exports = [ path, import: '{ createApi }', modifyWebpackConfig: withRtkPath(path), - ignore: ['react'], }, { name: `3. setupListeners (${path})`, path, import: '{ setupListeners }', modifyWebpackConfig: withRtkPath(path), - ignore: ['react'], }, { name: `3. fetchBaseQuery (${path})`, path, import: '{ fetchBaseQuery }', modifyWebpackConfig: withRtkPath(path), - ignore: ['react'], }, ]), + ...umdBuilds.map((path) => ({ + name: `4. UMD build: ${path}`, + path, + })), ].sort(byName) - -function score(e) { - return (!e.import ? -100 : 0) + (e.ignore === ignoreReact ? -10 : 0) -} +/* + .filter( + (x) => x.name == '3. createApi (dist/query/react/rtk-query-react.modern.js)' + ) + */ function byName(a, b) { return ( @@ -145,5 +148,3 @@ function byName(a, b) { a.name.substring(0, 12).localeCompare(b.name.substring(0, 12)) * 10 ) } - -console.log(module.exports.map((m) => m.name)) diff --git a/package.json b/package.json index f8320a9f4d..4b266c2961 100644 --- a/package.json +++ b/package.json @@ -81,10 +81,11 @@ "scripts": { "build-ci": "rimraf dist && tsc && node scripts/cli.js", "build": "rimraf dist && tsc && node scripts/cli.js --local", + "build-only": "rimraf dist && tsc && node scripts/cli.js --skipExtraction", "format": "prettier --write \"src/**/*.{ts,tsx}\" \"**/*.md\"", "format:check": "prettier --list-different \"src/**/*.{ts,tsx}\" \"docs/*/**.md\"", "lint": "eslint src", - "prepare": "npm run build-ci", + "prepare": "true", "test": "jest --runInBand", "type-tests": "yarn tsc -p src/tests && yarn tsc -p src/query/tests" }, From b8f4742c56ce3afe4f811c393e1ce1f2417ddc98 Mon Sep 17 00:00:00 2001 From: Lenz Weber Date: Wed, 26 May 2021 21:27:05 +0200 Subject: [PATCH 6/8] type imports where applicable, more PURE annotations --- src/configureStore.ts | 19 +++----- src/createAction.ts | 4 +- src/createAsyncThunk.ts | 10 ++--- src/createReducer.ts | 13 +++--- src/createSlice.ts | 17 ++++--- src/devtoolsExtension.ts | 3 +- src/entities/create_adapter.ts | 2 +- src/entities/entity_state.ts | 2 +- src/entities/models.ts | 4 +- src/entities/sorted_state_adapter.ts | 2 +- src/entities/state_adapter.ts | 5 ++- src/entities/state_selectors.ts | 2 +- src/entities/tests/entity_state.test.ts | 8 ++-- .../tests/sorted_state_adapter.test.ts | 5 ++- src/entities/tests/state_adapter.test.ts | 7 +-- src/entities/tests/state_selectors.test.ts | 11 +++-- .../tests/unsorted_state_adapter.test.ts | 5 ++- src/entities/unsorted_state_adapter.ts | 2 +- src/entities/utils.ts | 2 +- src/getDefaultMiddleware.ts | 23 +++++----- src/immutableStateInvariantMiddleware.ts | 2 +- src/mapBuilders.ts | 4 +- src/matchers.ts | 6 +-- src/query/apiTypes.ts | 10 ++--- src/query/baseQueryTypes.ts | 4 +- src/query/core/apiState.ts | 8 ++-- src/query/core/buildInitiate.ts | 19 ++++---- .../core/buildMiddleware/cacheCollection.ts | 9 ++-- src/query/core/buildMiddleware/index.ts | 15 ++++--- .../buildMiddleware/invalidationByTags.ts | 10 +++-- src/query/core/buildMiddleware/polling.ts | 5 ++- .../core/buildMiddleware/queryLifecycle.ts | 6 +-- src/query/core/buildMiddleware/types.ts | 10 ++--- .../buildMiddleware/windowEventHandling.ts | 2 +- src/query/core/buildSelectors.ts | 18 ++++---- src/query/core/buildSlice.ts | 21 +++++---- src/query/core/buildThunks.ts | 44 +++++++++++-------- src/query/core/index.ts | 2 +- src/query/core/module.ts | 31 ++++++------- src/query/core/setupListeners.ts | 15 +++---- src/query/createApi.ts | 12 ++--- src/query/defaultSerializeQueryArgs.ts | 4 +- src/query/endpointDefinitions.ts | 16 +++---- src/query/fakeBaseQuery.ts | 4 +- src/query/react/ApiProvider.tsx | 6 ++- src/query/react/buildHooks.ts | 13 +++--- src/query/react/index.ts | 2 +- src/query/react/module.ts | 11 ++--- src/query/retry.ts | 4 +- src/query/tests/buildHooks.test.tsx | 4 +- src/query/tests/cacheCollection.test.ts | 2 +- src/query/tests/createApi.test.ts | 9 ++-- src/query/tests/errorHandling.test.tsx | 8 ++-- src/query/tests/helpers.tsx | 10 +++-- src/query/tests/matchers.test.tsx | 3 +- src/query/tests/queryFn.test.tsx | 10 +++-- src/query/tests/retry.test.ts | 3 +- src/query/tests/unionTypes.test.ts | 7 +-- src/serializableStateInvariantMiddleware.ts | 2 +- src/tests/MiddlewareArray.typetest.ts | 4 +- src/tests/combinedTest.test.ts | 7 +-- src/tests/configureStore.test.ts | 7 +-- src/tests/configureStore.typetest.ts | 20 +++------ src/tests/createAction.typetest.ts | 11 ++--- src/tests/createAsyncThunk.test.ts | 3 +- src/tests/createAsyncThunk.typetest.ts | 14 +++--- src/tests/createEntityAdapter.typetest.ts | 9 ++-- src/tests/createReducer.test.ts | 11 ++--- src/tests/createReducer.typetest.ts | 7 +-- src/tests/createSlice.test.ts | 3 +- src/tests/createSlice.typetest.ts | 11 ++--- src/tests/getDefaultMiddleware.test.ts | 7 +-- src/tests/helpers.ts | 2 +- .../immutableStateInvariantMiddleware.test.ts | 7 +-- src/tests/mapBuilders.typetest.ts | 3 +- src/tests/matchers.test.ts | 7 +-- src/tests/matchers.typetest.ts | 7 +-- ...rializableStateInvariantMiddleware.test.ts | 3 +- src/tsHelpers.ts | 2 +- src/utils.ts | 2 +- 80 files changed, 351 insertions(+), 313 deletions(-) diff --git a/src/configureStore.ts b/src/configureStore.ts index b2ae29c262..56c1025f64 100644 --- a/src/configureStore.ts +++ b/src/configureStore.ts @@ -1,8 +1,4 @@ -import { - createStore, - compose, - applyMiddleware, - combineReducers, +import type { Reducer, ReducersMapObject, Middleware, @@ -14,18 +10,17 @@ import { PreloadedState, CombinedState, } from 'redux' -import { - composeWithDevTools, - EnhancerOptions as DevToolsOptions, -} from './devtoolsExtension' +import { createStore, compose, applyMiddleware, combineReducers } from 'redux' +import type { EnhancerOptions as DevToolsOptions } from './devtoolsExtension' +import { composeWithDevTools } from './devtoolsExtension' import isPlainObject from './isPlainObject' -import { +import type { ThunkMiddlewareFor, - curryGetDefaultMiddleware, CurriedGetDefaultMiddleware, } from './getDefaultMiddleware' -import { DispatchForMiddlewares, NoInfer } from './tsHelpers' +import { curryGetDefaultMiddleware } from './getDefaultMiddleware' +import type { DispatchForMiddlewares, NoInfer } from './tsHelpers' const IS_PRODUCTION = process.env.NODE_ENV === 'production' diff --git a/src/createAction.ts b/src/createAction.ts index be5697c65b..47d20aae5a 100644 --- a/src/createAction.ts +++ b/src/createAction.ts @@ -1,5 +1,5 @@ -import { Action } from 'redux' -import { +import type { Action } from 'redux' +import type { IsUnknownOrNonInferrable, IfMaybeUndefined, IfVoid, diff --git a/src/createAsyncThunk.ts b/src/createAsyncThunk.ts index 55bc50c04e..8e72641c8f 100644 --- a/src/createAsyncThunk.ts +++ b/src/createAsyncThunk.ts @@ -1,11 +1,11 @@ -import { Dispatch, AnyAction } from 'redux' -import { - createAction, +import type { Dispatch, AnyAction } from 'redux' +import type { PayloadAction, ActionCreatorWithPreparedPayload, } from './createAction' -import { ThunkDispatch } from 'redux-thunk' -import { FallbackIfUnknown, IsAny } from './tsHelpers' +import { createAction } from './createAction' +import type { ThunkDispatch } from 'redux-thunk' +import type { FallbackIfUnknown, IsAny } from './tsHelpers' import { nanoid } from './nanoid' // @ts-ignore we need the import of these types due to a bundling issue. diff --git a/src/createReducer.ts b/src/createReducer.ts index a64371dba3..1e6a7cb5f1 100644 --- a/src/createReducer.ts +++ b/src/createReducer.ts @@ -1,10 +1,9 @@ -import createNextState, { Draft, isDraft, isDraftable } from 'immer' -import { AnyAction, Action, Reducer } from 'redux' -import { - executeReducerBuilderCallback, - ActionReducerMapBuilder, -} from './mapBuilders' -import { NoInfer } from './tsHelpers' +import type { Draft } from 'immer' +import createNextState, { isDraft, isDraftable } from 'immer' +import type { AnyAction, Action, Reducer } from 'redux' +import type { ActionReducerMapBuilder } from './mapBuilders' +import { executeReducerBuilderCallback } from './mapBuilders' +import type { NoInfer } from './tsHelpers' /** * Defines a mapping from action types to corresponding action object shapes. diff --git a/src/createSlice.ts b/src/createSlice.ts index 85065c4d68..91408c3055 100644 --- a/src/createSlice.ts +++ b/src/createSlice.ts @@ -1,18 +1,21 @@ -import { Reducer } from 'redux' -import { +import type { Reducer } from 'redux' +import type { ActionCreatorWithoutPayload, - createAction, PayloadAction, PayloadActionCreator, PrepareAction, - _ActionCreatorWithPreparedPayload, + _ActionCreatorWithPreparedPayload} from './createAction'; +import { + createAction } from './createAction' -import { CaseReducer, CaseReducers, createReducer } from './createReducer' +import type { CaseReducer, CaseReducers} from './createReducer'; +import { createReducer } from './createReducer' +import type { + ActionReducerMapBuilder} from './mapBuilders'; import { - ActionReducerMapBuilder, executeReducerBuilderCallback, } from './mapBuilders' -import { NoInfer } from './tsHelpers' +import type { NoInfer } from './tsHelpers' /** * An action creator attached to a slice. diff --git a/src/devtoolsExtension.ts b/src/devtoolsExtension.ts index 182c9ccd94..53aa6a0a3f 100644 --- a/src/devtoolsExtension.ts +++ b/src/devtoolsExtension.ts @@ -1,4 +1,5 @@ -import { Action, ActionCreator, StoreEnhancer, compose } from 'redux' +import type { Action, ActionCreator, StoreEnhancer} from 'redux'; +import { compose } from 'redux' /** * @public diff --git a/src/entities/create_adapter.ts b/src/entities/create_adapter.ts index b6e2d3db59..9d935877c1 100644 --- a/src/entities/create_adapter.ts +++ b/src/entities/create_adapter.ts @@ -1,4 +1,4 @@ -import { EntityDefinition, Comparer, IdSelector, EntityAdapter } from './models' +import type { EntityDefinition, Comparer, IdSelector, EntityAdapter } from './models' import { createInitialStateFactory } from './entity_state' import { createSelectorsFactory } from './state_selectors' import { createSortedStateAdapter } from './sorted_state_adapter' diff --git a/src/entities/entity_state.ts b/src/entities/entity_state.ts index afb08d6142..60924e3ae4 100644 --- a/src/entities/entity_state.ts +++ b/src/entities/entity_state.ts @@ -1,4 +1,4 @@ -import { EntityState } from './models' +import type { EntityState } from './models' export function getInitialEntityState(): EntityState { return { diff --git a/src/entities/models.ts b/src/entities/models.ts index e3cc202789..238c692fe5 100644 --- a/src/entities/models.ts +++ b/src/entities/models.ts @@ -1,5 +1,5 @@ -import { PayloadAction } from '../createAction' -import { IsAny } from '../tsHelpers' +import type { PayloadAction } from '../createAction' +import type { IsAny } from '../tsHelpers' /** * @public diff --git a/src/entities/sorted_state_adapter.ts b/src/entities/sorted_state_adapter.ts index 3f360ade69..4cf47f261c 100644 --- a/src/entities/sorted_state_adapter.ts +++ b/src/entities/sorted_state_adapter.ts @@ -1,4 +1,4 @@ -import { +import type { EntityState, IdSelector, Comparer, diff --git a/src/entities/state_adapter.ts b/src/entities/state_adapter.ts index 474d10e7d7..018fe1361e 100644 --- a/src/entities/state_adapter.ts +++ b/src/entities/state_adapter.ts @@ -1,6 +1,7 @@ import createNextState, { isDraft } from 'immer' -import { EntityState, PreventAny } from './models' -import { PayloadAction, isFSA } from '../createAction' +import type { EntityState, PreventAny } from './models' +import type { PayloadAction} from '../createAction'; +import { isFSA } from '../createAction' import { IsAny } from '../tsHelpers' export function createSingleArgumentStateOperator( diff --git a/src/entities/state_selectors.ts b/src/entities/state_selectors.ts index dadaaee995..11dafbf95f 100644 --- a/src/entities/state_selectors.ts +++ b/src/entities/state_selectors.ts @@ -1,5 +1,5 @@ import { createDraftSafeSelector } from '../createDraftSafeSelector' -import { EntityState, EntitySelectors, Dictionary, EntityId } from './models' +import type { EntityState, EntitySelectors, Dictionary, EntityId } from './models' export function createSelectorsFactory() { function getSelectors(): EntitySelectors> diff --git a/src/entities/tests/entity_state.test.ts b/src/entities/tests/entity_state.test.ts index d840d1343b..718bd27697 100644 --- a/src/entities/tests/entity_state.test.ts +++ b/src/entities/tests/entity_state.test.ts @@ -1,7 +1,9 @@ -import { createEntityAdapter, EntityAdapter } from '../index' -import { PayloadAction, createAction } from '../../createAction' +import type { EntityAdapter } from '../index'; +import { createEntityAdapter } from '../index' +import type { PayloadAction} from '../../createAction'; +import { createAction } from '../../createAction' import { createSlice } from '../../createSlice' -import { BookModel } from './fixtures/book' +import type { BookModel } from './fixtures/book' describe('Entity State', () => { let adapter: EntityAdapter diff --git a/src/entities/tests/sorted_state_adapter.test.ts b/src/entities/tests/sorted_state_adapter.test.ts index 5a5f7550b5..7ea18d4382 100644 --- a/src/entities/tests/sorted_state_adapter.test.ts +++ b/src/entities/tests/sorted_state_adapter.test.ts @@ -1,8 +1,9 @@ -import { EntityStateAdapter, EntityState } from '../models' +import type { EntityStateAdapter, EntityState } from '../models' import { createEntityAdapter } from '../create_adapter' import { createAction } from '../../createAction' +import type { + BookModel} from './fixtures/book'; import { - BookModel, TheGreatGatsby, AClockworkOrange, AnimalFarm, diff --git a/src/entities/tests/state_adapter.test.ts b/src/entities/tests/state_adapter.test.ts index e1c3fa8e99..e5eb0fbf2d 100644 --- a/src/entities/tests/state_adapter.test.ts +++ b/src/entities/tests/state_adapter.test.ts @@ -1,8 +1,9 @@ -import { createEntityAdapter, EntityAdapter } from '../index' -import { PayloadAction } from '../../createAction' +import type { EntityAdapter } from '../index'; +import { createEntityAdapter } from '../index' +import type { PayloadAction } from '../../createAction' import { configureStore } from '../../configureStore' import { createSlice } from '../../createSlice' -import { BookModel } from './fixtures/book' +import type { BookModel } from './fixtures/book' describe('createStateOperator', () => { let adapter: EntityAdapter diff --git a/src/entities/tests/state_selectors.test.ts b/src/entities/tests/state_selectors.test.ts index 451dc4498b..f60833c50f 100644 --- a/src/entities/tests/state_selectors.test.ts +++ b/src/entities/tests/state_selectors.test.ts @@ -1,12 +1,15 @@ -import { createEntityAdapter, EntityAdapter, EntityState } from '../index' -import { EntitySelectors } from '../models' +import type { EntityAdapter, EntityState } from '../index'; +import { createEntityAdapter } from '../index' +import type { EntitySelectors } from '../models' +import type { + BookModel} from './fixtures/book'; import { - BookModel, AClockworkOrange, AnimalFarm, TheGreatGatsby, } from './fixtures/book' -import { createSelector, Selector } from 'reselect' +import type { Selector } from 'reselect'; +import { createSelector } from 'reselect' describe('Entity State Selectors', () => { describe('Composed Selectors', () => { diff --git a/src/entities/tests/unsorted_state_adapter.test.ts b/src/entities/tests/unsorted_state_adapter.test.ts index 643527b1b3..65c0bef88f 100644 --- a/src/entities/tests/unsorted_state_adapter.test.ts +++ b/src/entities/tests/unsorted_state_adapter.test.ts @@ -1,7 +1,8 @@ -import { EntityStateAdapter, EntityState } from '../models' +import type { EntityStateAdapter, EntityState } from '../models' import { createEntityAdapter } from '../create_adapter' +import type { + BookModel} from './fixtures/book'; import { - BookModel, TheGreatGatsby, AClockworkOrange, AnimalFarm, diff --git a/src/entities/unsorted_state_adapter.ts b/src/entities/unsorted_state_adapter.ts index a757428471..20f2d367fc 100644 --- a/src/entities/unsorted_state_adapter.ts +++ b/src/entities/unsorted_state_adapter.ts @@ -1,4 +1,4 @@ -import { +import type { EntityState, EntityStateAdapter, IdSelector, diff --git a/src/entities/utils.ts b/src/entities/utils.ts index b79a69ebc3..39b58fff0f 100644 --- a/src/entities/utils.ts +++ b/src/entities/utils.ts @@ -1,4 +1,4 @@ -import { EntityState, IdSelector, Update, EntityId } from './models' +import type { EntityState, IdSelector, Update, EntityId } from './models' export function selectIdValue(entity: T, selectId: IdSelector) { const key = selectId(entity) diff --git a/src/getDefaultMiddleware.ts b/src/getDefaultMiddleware.ts index 02eb736f10..0d6d0a71ec 100644 --- a/src/getDefaultMiddleware.ts +++ b/src/getDefaultMiddleware.ts @@ -1,16 +1,13 @@ -import { Middleware, AnyAction } from 'redux' -import thunkMiddleware, { ThunkMiddleware } from 'redux-thunk' -import { - /* PROD_START_REMOVE_UMD */ - createImmutableStateInvariantMiddleware, - /* PROD_STOP_REMOVE_UMD */ - ImmutableStateInvariantMiddlewareOptions, -} from './immutableStateInvariantMiddleware' - -import { - createSerializableStateInvariantMiddleware, - SerializableStateInvariantMiddlewareOptions, -} from './serializableStateInvariantMiddleware' +import type { Middleware, AnyAction } from 'redux' +import type { ThunkMiddleware } from 'redux-thunk' +import thunkMiddleware from 'redux-thunk' +import type { ImmutableStateInvariantMiddlewareOptions } from './immutableStateInvariantMiddleware' +/* PROD_START_REMOVE_UMD */ +import { createImmutableStateInvariantMiddleware } from './immutableStateInvariantMiddleware' +/* PROD_STOP_REMOVE_UMD */ + +import type { SerializableStateInvariantMiddlewareOptions } from './serializableStateInvariantMiddleware' +import { createSerializableStateInvariantMiddleware } from './serializableStateInvariantMiddleware' import { MiddlewareArray } from './utils' function isBoolean(x: any): x is boolean { diff --git a/src/immutableStateInvariantMiddleware.ts b/src/immutableStateInvariantMiddleware.ts index 6d633c7220..8bcdf1cc3b 100644 --- a/src/immutableStateInvariantMiddleware.ts +++ b/src/immutableStateInvariantMiddleware.ts @@ -1,4 +1,4 @@ -import { Middleware } from 'redux' +import type { Middleware } from 'redux' import { getTimeMeasureUtils } from './utils' type EntryProcessor = (key: string, value: any) => any diff --git a/src/mapBuilders.ts b/src/mapBuilders.ts index 8b46bc84b0..6cda075901 100644 --- a/src/mapBuilders.ts +++ b/src/mapBuilders.ts @@ -1,5 +1,5 @@ -import { Action, AnyAction } from 'redux' -import { +import type { Action, AnyAction } from 'redux' +import type { CaseReducer, CaseReducers, ActionMatcher, diff --git a/src/matchers.ts b/src/matchers.ts index 4b086086ab..3ba6f24986 100644 --- a/src/matchers.ts +++ b/src/matchers.ts @@ -1,10 +1,10 @@ -import { +import type { ActionFromMatcher, - hasMatchFunction, Matcher, UnionToIntersection, } from './tsHelpers' -import { +import { hasMatchFunction } from './tsHelpers' +import type { AsyncThunk, AsyncThunkFulfilledActionCreator, AsyncThunkPendingActionCreator, diff --git a/src/query/apiTypes.ts b/src/query/apiTypes.ts index c7d580da98..87b67da81a 100644 --- a/src/query/apiTypes.ts +++ b/src/query/apiTypes.ts @@ -1,13 +1,13 @@ -import { +import type { EndpointDefinitions, EndpointBuilder, EndpointDefinition, ReplaceTagTypes, } from './endpointDefinitions' -import { UnionToIntersection, Id, NoInfer } from './tsHelpers' -import { CoreModule } from './core/module' -import { CreateApiOptions } from './createApi' -import { BaseQueryFn } from './baseQueryTypes' +import type { UnionToIntersection, Id, NoInfer } from './tsHelpers' +import type { CoreModule } from './core/module' +import type { CreateApiOptions } from './createApi' +import type { BaseQueryFn } from './baseQueryTypes' export interface ApiModules< // eslint-disable-next-line @typescript-eslint/no-unused-vars diff --git a/src/query/baseQueryTypes.ts b/src/query/baseQueryTypes.ts index e8133a50df..3a449ed890 100644 --- a/src/query/baseQueryTypes.ts +++ b/src/query/baseQueryTypes.ts @@ -1,5 +1,5 @@ -import { ThunkDispatch } from '@reduxjs/toolkit' -import { MaybePromise, UnwrapPromise } from './tsHelpers' +import type { ThunkDispatch } from '@reduxjs/toolkit' +import type { MaybePromise, UnwrapPromise } from './tsHelpers' export interface BaseQueryApi { signal: AbortSignal diff --git a/src/query/core/apiState.ts b/src/query/core/apiState.ts index 23b21450b0..7dcfb8b5c5 100644 --- a/src/query/core/apiState.ts +++ b/src/query/core/apiState.ts @@ -1,6 +1,6 @@ -import { SerializedError } from '@reduxjs/toolkit' -import { BaseQueryError } from '../baseQueryTypes' -import { +import type { SerializedError } from '@reduxjs/toolkit' +import type { BaseQueryError } from '../baseQueryTypes' +import type { QueryDefinition, MutationDefinition, EndpointDefinitions, @@ -8,7 +8,7 @@ import { ResultTypeFrom, QueryArgFrom, } from '../endpointDefinitions' -import { Id, WithRequiredProp } from '../tsHelpers' +import type { Id, WithRequiredProp } from '../tsHelpers' export type QueryCacheKey = string & { _type: 'queryCacheKey' } export type QuerySubstateIdentifier = { queryCacheKey: QueryCacheKey } diff --git a/src/query/core/buildInitiate.ts b/src/query/core/buildInitiate.ts index 6ed4f24fe2..041cb323f0 100644 --- a/src/query/core/buildInitiate.ts +++ b/src/query/core/buildInitiate.ts @@ -1,4 +1,4 @@ -import { +import type { EndpointDefinitions, QueryDefinition, MutationDefinition, @@ -6,18 +6,19 @@ import { ResultTypeFrom, } from '../endpointDefinitions' import type { QueryThunkArg, MutationThunkArg } from './buildThunks' -import { +import type { AnyAction, AsyncThunk, ThunkAction, - unwrapResult, - SerializedError, + SerializedError} from '@reduxjs/toolkit'; +import { + unwrapResult } from '@reduxjs/toolkit' -import { QuerySubState, SubscriptionOptions } from './apiState' -import { InternalSerializeQueryArgs } from '../defaultSerializeQueryArgs' -import { Api } from '../apiTypes' -import { ApiEndpointQuery } from './module' -import { BaseQueryError } from '../baseQueryTypes' +import type { QuerySubState, SubscriptionOptions } from './apiState' +import type { InternalSerializeQueryArgs } from '../defaultSerializeQueryArgs' +import type { Api } from '../apiTypes' +import type { ApiEndpointQuery } from './module' +import type { BaseQueryError } from '../baseQueryTypes' declare module './module' { export interface ApiEndpointQuery< diff --git a/src/query/core/buildMiddleware/cacheCollection.ts b/src/query/core/buildMiddleware/cacheCollection.ts index 68054f837c..8d1a72601f 100644 --- a/src/query/core/buildMiddleware/cacheCollection.ts +++ b/src/query/core/buildMiddleware/cacheCollection.ts @@ -1,7 +1,8 @@ -import { BaseQueryFn } from '../../baseQueryTypes' -import { QueryDefinition } from '../../endpointDefinitions' -import { QueryCacheKey, QuerySubstateIdentifier } from '../apiState' -import { +import type { BaseQueryFn } from '../../baseQueryTypes' +import type { QueryDefinition } from '../../endpointDefinitions' +import type { QueryCacheKey} from '../apiState'; +import { QuerySubstateIdentifier } from '../apiState' +import type { QueryStateMeta, SubMiddlewareApi, SubMiddlewareBuilder, diff --git a/src/query/core/buildMiddleware/index.ts b/src/query/core/buildMiddleware/index.ts index 069f880f91..67466fe645 100644 --- a/src/query/core/buildMiddleware/index.ts +++ b/src/query/core/buildMiddleware/index.ts @@ -1,22 +1,23 @@ import { compose } from 'redux' -import { +import type { AnyAction, - createAction, Middleware, - ThunkDispatch, + ThunkDispatch} from '@reduxjs/toolkit'; +import { + createAction } from '@reduxjs/toolkit' -import { +import type { EndpointDefinitions, FullTagDescription, } from '../../endpointDefinitions' -import { QueryStatus, QuerySubState, RootState } from '../apiState' -import { QueryThunkArg } from '../buildThunks' +import type { QueryStatus, QuerySubState, RootState } from '../apiState' +import type { QueryThunkArg } from '../buildThunks' import { build as buildCacheCollection } from './cacheCollection' import { build as buildInvalidationByTags } from './invalidationByTags' import { build as buildPolling } from './polling' -import { BuildMiddlewareInput } from './types' +import type { BuildMiddlewareInput } from './types' import { build as buildWindowEventHandling } from './windowEventHandling' import { build as buildCacheLifecycle } from './cacheLifecycle' import { build as buildQueryLifecycle } from './queryLifecycle' diff --git a/src/query/core/buildMiddleware/invalidationByTags.ts b/src/query/core/buildMiddleware/invalidationByTags.ts index 664c75d331..031e996a03 100644 --- a/src/query/core/buildMiddleware/invalidationByTags.ts +++ b/src/query/core/buildMiddleware/invalidationByTags.ts @@ -1,13 +1,15 @@ import { isAnyOf, isFulfilled, isRejectedWithValue } from '@reduxjs/toolkit' +import type { + FullTagDescription} from '../../endpointDefinitions'; import { - calculateProvidedBy, - FullTagDescription, + calculateProvidedBy } from '../../endpointDefinitions' import { flatten } from '../../utils' -import { QueryCacheKey, QueryStatus } from '../apiState' +import type { QueryCacheKey} from '../apiState'; +import { QueryStatus } from '../apiState' import { calculateProvidedByThunk } from '../buildThunks' -import { SubMiddlewareApi, SubMiddlewareBuilder } from './types' +import type { SubMiddlewareApi, SubMiddlewareBuilder } from './types' export const build: SubMiddlewareBuilder = ({ reducerPath, diff --git a/src/query/core/buildMiddleware/polling.ts b/src/query/core/buildMiddleware/polling.ts index c5ca0c40f7..9a2dd6cf16 100644 --- a/src/query/core/buildMiddleware/polling.ts +++ b/src/query/core/buildMiddleware/polling.ts @@ -1,5 +1,6 @@ -import { QueryStatus, QuerySubstateIdentifier, Subscribers } from '../apiState' -import { +import type { QuerySubstateIdentifier, Subscribers } from '../apiState'; +import { QueryStatus } from '../apiState' +import type { QueryStateMeta, SubMiddlewareApi, SubMiddlewareBuilder, diff --git a/src/query/core/buildMiddleware/queryLifecycle.ts b/src/query/core/buildMiddleware/queryLifecycle.ts index 709e31508f..e87952f760 100644 --- a/src/query/core/buildMiddleware/queryLifecycle.ts +++ b/src/query/core/buildMiddleware/queryLifecycle.ts @@ -1,8 +1,8 @@ import { isPending, isRejected, isFulfilled } from '@reduxjs/toolkit' -import { BaseQueryFn } from '../../baseQueryTypes' +import type { BaseQueryFn } from '../../baseQueryTypes' import { DefinitionType } from '../../endpointDefinitions' -import { Recipe } from '../buildThunks' -import { SubMiddlewareBuilder } from './types' +import type { Recipe } from '../buildThunks' +import type { SubMiddlewareBuilder } from './types' export type ReferenceQueryLifecycle = never diff --git a/src/query/core/buildMiddleware/types.ts b/src/query/core/buildMiddleware/types.ts index 8463b39b5f..9f809ce875 100644 --- a/src/query/core/buildMiddleware/types.ts +++ b/src/query/core/buildMiddleware/types.ts @@ -1,4 +1,4 @@ -import { +import type { AnyAction, AsyncThunk, AsyncThunkAction, @@ -7,10 +7,10 @@ import { ThunkDispatch, } from '@reduxjs/toolkit' -import { Api, ApiContext } from '../../apiTypes' -import { AssertTagTypes, EndpointDefinitions } from '../../endpointDefinitions' -import { QueryStatus, QuerySubState, RootState } from '../apiState' -import { MutationThunkArg, QueryThunkArg, ThunkResult } from '../buildThunks' +import type { Api, ApiContext } from '../../apiTypes' +import type { AssertTagTypes, EndpointDefinitions } from '../../endpointDefinitions' +import type { QueryStatus, QuerySubState, RootState } from '../apiState' +import type { MutationThunkArg, QueryThunkArg, ThunkResult } from '../buildThunks' export type QueryStateMeta = Record export type TimeoutId = ReturnType diff --git a/src/query/core/buildMiddleware/windowEventHandling.ts b/src/query/core/buildMiddleware/windowEventHandling.ts index 39f56e21e5..194e247402 100644 --- a/src/query/core/buildMiddleware/windowEventHandling.ts +++ b/src/query/core/buildMiddleware/windowEventHandling.ts @@ -1,6 +1,6 @@ import { QueryStatus } from '../apiState' import { onFocus, onOnline } from '../setupListeners' -import { SubMiddlewareApi, SubMiddlewareBuilder } from './types' +import type { SubMiddlewareApi, SubMiddlewareBuilder } from './types' export const build: SubMiddlewareBuilder = ({ reducerPath, diff --git a/src/query/core/buildSelectors.ts b/src/query/core/buildSelectors.ts index 9c42746e14..258441b9b2 100644 --- a/src/query/core/buildSelectors.ts +++ b/src/query/core/buildSelectors.ts @@ -1,13 +1,12 @@ import { createNextState, createSelector } from '@reduxjs/toolkit' -import { +import type { MutationSubState, - QueryStatus, QuerySubState, RootState as _RootState, - getRequestStatusFlags, RequestStatusFlags, } from './apiState' -import { +import { QueryStatus, getRequestStatusFlags } from './apiState' +import type { EndpointDefinitions, QueryDefinition, MutationDefinition, @@ -15,7 +14,7 @@ import { TagTypesFrom, ReducerPathFrom, } from '../endpointDefinitions' -import { InternalSerializeQueryArgs } from '../defaultSerializeQueryArgs' +import type { InternalSerializeQueryArgs } from '../defaultSerializeQueryArgs' export type SkipToken = typeof skipToken /** @@ -40,7 +39,7 @@ export type SkipToken = typeof skipToken * If passed directly into a query or mutation selector, that selector will always * return an uninitialized state. */ -export const skipToken = /* #__PURE__ */ Symbol('skip selector') +export const skipToken = /* @__PURE__ */ Symbol('skip selector') /** @deprecated renamed to `skipToken` */ export const skipSelector = skipToken @@ -101,8 +100,11 @@ const initialSubState: QuerySubState = { } // abuse immer to freeze default states -const defaultQuerySubState = createNextState(initialSubState, () => {}) -const defaultMutationSubState = createNextState( +const defaultQuerySubState = /* @__PURE__ */ createNextState( + initialSubState, + () => {} +) +const defaultMutationSubState = /* @__PURE__ */ createNextState( initialSubState as MutationSubState, () => {} ) diff --git a/src/query/core/buildSlice.ts b/src/query/core/buildSlice.ts index 19173357a6..4233b31a9e 100644 --- a/src/query/core/buildSlice.ts +++ b/src/query/core/buildSlice.ts @@ -1,12 +1,11 @@ +import type { AsyncThunk, PayloadAction } from '@reduxjs/toolkit' import { - AsyncThunk, combineReducers, createAction, createSlice, isAnyOf, isFulfilled, isRejectedWithValue, - PayloadAction, // Workaround for API-Extractor AnyAction, CombinedState, @@ -14,13 +13,12 @@ import { ActionCreatorWithPayload, ActionCreatorWithoutPayload, } from '@reduxjs/toolkit' -import { +import type { CombinedState as CombinedQueryState, QuerySubstateIdentifier, QuerySubState, MutationSubstateIdentifier, MutationSubState, - QueryStatus, MutationState, QueryState, InvalidationState, @@ -29,21 +27,26 @@ import { SubscriptionState, ConfigState, } from './apiState' -import { - calculateProvidedByThunk, +import { QueryStatus } from './apiState' +import type { MutationThunkArg, QueryThunkArg, ThunkResult, } from './buildThunks' -import { AssertTagTypes, EndpointDefinitions } from '../endpointDefinitions' -import { applyPatches, Patch } from 'immer' +import { calculateProvidedByThunk } from './buildThunks' +import type { + AssertTagTypes, + EndpointDefinitions, +} from '../endpointDefinitions' +import type { Patch } from 'immer' +import { applyPatches } from 'immer' import { onFocus, onFocusLost, onOffline, onOnline } from './setupListeners' import { isDocumentVisible, isOnline, copyWithStructuralSharing, } from '../utils' -import { ApiContext } from '../apiTypes' +import type { ApiContext } from '../apiTypes' function updateQuerySubstateIfExists( state: QueryState, diff --git a/src/query/core/buildThunks.ts b/src/query/core/buildThunks.ts index 8c299abc76..372e70b298 100644 --- a/src/query/core/buildThunks.ts +++ b/src/query/core/buildThunks.ts @@ -1,52 +1,58 @@ -import { InternalSerializeQueryArgs } from '../defaultSerializeQueryArgs' -import { Api, ApiContext } from '../apiTypes' -import { +import type { InternalSerializeQueryArgs } from '../defaultSerializeQueryArgs' +import type { Api, ApiContext } from '../apiTypes' +import type { BaseQueryFn, - BaseQueryArg, BaseQueryError, - QueryReturnValue, -} from '../baseQueryTypes' + QueryReturnValue} from '../baseQueryTypes'; import { + BaseQueryArg +} from '../baseQueryTypes' +import type { RootState, QueryKeys, + QuerySubstateIdentifier} from './apiState'; +import { QueryStatus, - QuerySubstateIdentifier, CombinedState, } from './apiState' -import { StartQueryActionCreatorOptions } from './buildInitiate' -import { +import type { StartQueryActionCreatorOptions } from './buildInitiate' +import type { AssertTagTypes, - calculateProvidedBy, EndpointDefinition, EndpointDefinitions, MutationDefinition, QueryArgFrom, QueryDefinition, - ResultTypeFrom, + ResultTypeFrom} from '../endpointDefinitions'; +import { + calculateProvidedBy, FullTagDescription, } from '../endpointDefinitions' -import { +import type { AsyncThunkPayloadCreator, - Draft, + Draft} from '@reduxjs/toolkit'; +import { isAllOf, isFulfilled, isPending, isRejected, isRejectedWithValue, } from '@reduxjs/toolkit' -import { Patch, isDraftable, produceWithPatches } from 'immer' -import { +import type { Patch} from 'immer'; +import { isDraftable, produceWithPatches } from 'immer' +import type { AnyAction, - createAsyncThunk, ThunkAction, ThunkDispatch, - AsyncThunk, + AsyncThunk} from '@reduxjs/toolkit'; +import { + createAsyncThunk } from '@reduxjs/toolkit' import { HandledError } from '../HandledError' -import { ApiEndpointQuery, PrefetchOptions } from './module' -import { UnwrapPromise } from '../tsHelpers' +import type { ApiEndpointQuery, PrefetchOptions } from './module' +import type { UnwrapPromise } from '../tsHelpers' declare module './module' { export interface ApiEndpointQuery< diff --git a/src/query/core/index.ts b/src/query/core/index.ts index 6517f88bef..837dc6a567 100644 --- a/src/query/core/index.ts +++ b/src/query/core/index.ts @@ -1,6 +1,6 @@ import { buildCreateApi, CreateApi } from '../createApi' import { coreModule, coreModuleName } from './module' -const createApi = /* #__PURE__ */ buildCreateApi(coreModule()) +const createApi = /* @__PURE__ */ buildCreateApi(coreModule()) export { createApi, coreModule } diff --git a/src/query/core/module.ts b/src/query/core/module.ts index 2b22661c62..7880290b07 100644 --- a/src/query/core/module.ts +++ b/src/query/core/module.ts @@ -1,12 +1,9 @@ /** * Note: this file should import all other files for type discovery and declaration merging */ -import { - buildThunks, - PatchQueryDataThunk, - UpdateQueryDataThunk, -} from './buildThunks' -import { +import type { PatchQueryDataThunk, UpdateQueryDataThunk } from './buildThunks' +import { buildThunks } from './buildThunks' +import type { ActionCreatorWithPayload, AnyAction, Middleware, @@ -14,31 +11,31 @@ import { ThunkAction, ThunkDispatch, } from '@reduxjs/toolkit' -import { +import type { EndpointDefinitions, QueryArgFrom, QueryDefinition, MutationDefinition, AssertTagTypes, - isQueryDefinition, - isMutationDefinition, FullTagDescription, } from '../endpointDefinitions' -import { CombinedState, QueryKeys, RootState } from './apiState' -import { Api, Module } from '../apiTypes' +import { isQueryDefinition, isMutationDefinition } from '../endpointDefinitions' +import type { CombinedState, QueryKeys, RootState } from './apiState' +import type { Api, Module } from '../apiTypes' import { onFocus, onFocusLost, onOnline, onOffline } from './setupListeners' import { buildSlice } from './buildSlice' import { buildMiddleware } from './buildMiddleware' import { buildSelectors } from './buildSelectors' import { buildInitiate } from './buildInitiate' -import { assertCast, Id, safeAssign } from '../tsHelpers' -import { InternalSerializeQueryArgs } from '../defaultSerializeQueryArgs' -import { SliceActions } from './buildSlice' -import { BaseQueryFn } from '../baseQueryTypes' +import type { Id } from '../tsHelpers' +import { assertCast, safeAssign } from '../tsHelpers' +import type { InternalSerializeQueryArgs } from '../defaultSerializeQueryArgs' +import type { SliceActions } from './buildSlice' +import type { BaseQueryFn } from '../baseQueryTypes' import type { ReferenceCacheLifecycle } from './buildMiddleware/cacheLifecycle' import type { ReferenceQueryLifecycle } from './buildMiddleware/queryLifecycle' -import { ReferenceCacheCollection } from './buildMiddleware/cacheCollection' +import type { ReferenceCacheCollection } from './buildMiddleware/cacheCollection' import { enablePatches } from 'immer' /** @@ -55,7 +52,7 @@ export type PrefetchOptions = } | { force?: boolean } -export const coreModuleName = /* #__PURE__ */ Symbol() +export const coreModuleName = /* @__PURE__ */ Symbol() export type CoreModule = | typeof coreModuleName | ReferenceCacheLifecycle diff --git a/src/query/core/setupListeners.ts b/src/query/core/setupListeners.ts index 58421ee1b8..14a4e6e65f 100644 --- a/src/query/core/setupListeners.ts +++ b/src/query/core/setupListeners.ts @@ -1,14 +1,13 @@ -import { - createAction, +import type { ThunkDispatch, - // Workaround for API-Extractor - ActionCreatorWithoutPayload, + ActionCreatorWithoutPayload, // Workaround for API-Extractor } from '@reduxjs/toolkit' +import { createAction } from '@reduxjs/toolkit' -export const onFocus = /* #__PURE__ */ createAction('__rtkq/focused') -export const onFocusLost = /* #__PURE__ */ createAction('__rtkq/unfocused') -export const onOnline = /* #__PURE__ */ createAction('__rtkq/online') -export const onOffline = /* #__PURE__ */ createAction('__rtkq/offline') +export const onFocus = /* @__PURE__ */ createAction('__rtkq/focused') +export const onFocusLost = /* @__PURE__ */ createAction('__rtkq/unfocused') +export const onOnline = /* @__PURE__ */ createAction('__rtkq/online') +export const onOffline = /* @__PURE__ */ createAction('__rtkq/offline') let initialized = false diff --git a/src/query/createApi.ts b/src/query/createApi.ts index c791b06755..37edeae46e 100644 --- a/src/query/createApi.ts +++ b/src/query/createApi.ts @@ -1,13 +1,15 @@ import type { Api, ApiContext, Module, ModuleName } from './apiTypes' import type { BaseQueryArg, BaseQueryFn } from './baseQueryTypes' +import type { + SerializeQueryArgs} from './defaultSerializeQueryArgs'; import { - defaultSerializeQueryArgs, - SerializeQueryArgs, + defaultSerializeQueryArgs } from './defaultSerializeQueryArgs' -import { - DefinitionType, +import type { EndpointBuilder, - EndpointDefinitions, + EndpointDefinitions} from './endpointDefinitions'; +import { + DefinitionType } from './endpointDefinitions' export interface CreateApiOptions< diff --git a/src/query/defaultSerializeQueryArgs.ts b/src/query/defaultSerializeQueryArgs.ts index f7d4db58f6..07d6335b20 100644 --- a/src/query/defaultSerializeQueryArgs.ts +++ b/src/query/defaultSerializeQueryArgs.ts @@ -1,5 +1,5 @@ -import { QueryCacheKey } from './core/apiState' -import { EndpointDefinition } from './endpointDefinitions' +import type { QueryCacheKey } from './core/apiState' +import type { EndpointDefinition } from './endpointDefinitions' import { isPlainObject } from '@reduxjs/toolkit' export const defaultSerializeQueryArgs: SerializeQueryArgs = ({ diff --git a/src/query/endpointDefinitions.ts b/src/query/endpointDefinitions.ts index 584739cde6..02a06be2de 100644 --- a/src/query/endpointDefinitions.ts +++ b/src/query/endpointDefinitions.ts @@ -1,6 +1,6 @@ -import { AnyAction, ThunkDispatch } from '@reduxjs/toolkit' -import { RootState } from './core/apiState' -import { +import type { AnyAction, ThunkDispatch } from '@reduxjs/toolkit' +import type { RootState } from './core/apiState' +import type { BaseQueryExtraOptions, BaseQueryFn, BaseQueryResult, @@ -10,16 +10,16 @@ import { BaseQueryError, BaseQueryMeta, } from './baseQueryTypes' -import { +import type { HasRequiredProps, MaybePromise, OmitFromUnion, CastAny, } from './tsHelpers' -import { NEVER } from './fakeBaseQuery' +import type { NEVER } from './fakeBaseQuery' -const resultType = Symbol() -const baseQuery = Symbol() +const resultType = /* @__PURE__ */ Symbol() +const baseQuery = /* @__PURE__ */ Symbol() interface EndpointDefinitionWithQuery< QueryArg, @@ -47,7 +47,7 @@ interface EndpointDefinitionWithQueryFn< > { /** * Can be used in place of `query` as an inline function that bypasses `baseQuery` completely for the endpoint. - * + * * @example * ```ts no-transpile * queryFn(arg: string) { diff --git a/src/query/fakeBaseQuery.ts b/src/query/fakeBaseQuery.ts index c5e4646ee5..54def42b33 100644 --- a/src/query/fakeBaseQuery.ts +++ b/src/query/fakeBaseQuery.ts @@ -1,6 +1,6 @@ -import { BaseQueryFn } from './baseQueryTypes' +import type { BaseQueryFn } from './baseQueryTypes' -const _NEVER = Symbol() +const _NEVER = /* @__PURE__ */ Symbol() export type NEVER = typeof _NEVER /** diff --git a/src/query/react/ApiProvider.tsx b/src/query/react/ApiProvider.tsx index 8c59775497..668fa93ec1 100644 --- a/src/query/react/ApiProvider.tsx +++ b/src/query/react/ApiProvider.tsx @@ -1,6 +1,8 @@ import { configureStore } from '@reduxjs/toolkit' -import React, { Context } from 'react' -import { Provider, ReactReduxContextValue } from 'react-redux' +import type { Context } from 'react'; +import React from 'react' +import type { ReactReduxContextValue } from 'react-redux'; +import { Provider } from 'react-redux' import { setupListeners } from '@reduxjs/toolkit/query' import type { Api } from '@reduxjs/toolkit/dist/query/apiTypes' diff --git a/src/query/react/buildHooks.ts b/src/query/react/buildHooks.ts index bd628bf35d..925efd553c 100644 --- a/src/query/react/buildHooks.ts +++ b/src/query/react/buildHooks.ts @@ -1,9 +1,5 @@ -import { - AnyAction, - createSelector, - ThunkAction, - ThunkDispatch, -} from '@reduxjs/toolkit' +import type { AnyAction, ThunkAction, ThunkDispatch } from '@reduxjs/toolkit' +import { createSelector } from '@reduxjs/toolkit' import { useCallback, useEffect, @@ -48,9 +44,10 @@ import type { CoreModule, PrefetchOptions, } from '@reduxjs/toolkit/dist/query/core/module' -import { ReactHooksModuleOptions } from './module' +import type { ReactHooksModuleOptions } from './module' import { useShallowStableValue } from './useShallowStableValue' -import { UninitializedValue, UNINITIALIZED_VALUE } from './constants' +import type { UninitializedValue } from './constants' +import { UNINITIALIZED_VALUE } from './constants' export interface QueryHooks< Definition extends QueryDefinition diff --git a/src/query/react/index.ts b/src/query/react/index.ts index 93408ea811..aaaf881c63 100644 --- a/src/query/react/index.ts +++ b/src/query/react/index.ts @@ -16,7 +16,7 @@ import type { PrefetchOptions } from '@reduxjs/toolkit/dist/query/core/module' export * from '@reduxjs/toolkit/query' export { ApiProvider } from './ApiProvider' -const createApi = /* #__PURE__ */ buildCreateApi( +const createApi = /* @__PURE__ */ buildCreateApi( coreModule(), reactHooksModule() ) diff --git a/src/query/react/module.ts b/src/query/react/module.ts index 042b4c5b72..baf99b9b66 100644 --- a/src/query/react/module.ts +++ b/src/query/react/module.ts @@ -1,4 +1,5 @@ -import { buildHooks, MutationHooks, QueryHooks } from './buildHooks' +import type { MutationHooks, QueryHooks } from './buildHooks' +import { buildHooks } from './buildHooks' import { isQueryDefinition, isMutationDefinition } from '../endpointDefinitions' import type { EndpointDefinitions, @@ -11,7 +12,7 @@ import { capitalize } from '../utils' import { safeAssign } from '../tsHelpers' import type { BaseQueryFn } from '@reduxjs/toolkit/dist/query/baseQueryTypes' -import { HooksWithUniqueNames } from './versionedTypes' +import type { HooksWithUniqueNames } from './versionedTypes' import { useDispatch as rrUseDispatch, @@ -19,10 +20,10 @@ import { useStore as rrUseStore, batch as rrBatch, } from 'react-redux' -import { QueryKeys } from '../core/apiState' -import { PrefetchOptions } from '../core/module' +import type { QueryKeys } from '../core/apiState' +import type { PrefetchOptions } from '../core/module' -export const reactHooksModuleName = /* #__PURE__ */ Symbol() +export const reactHooksModuleName = /* @__PURE__ */ Symbol() export type ReactHooksModule = typeof reactHooksModuleName declare module '@reduxjs/toolkit/dist/query/apiTypes' { diff --git a/src/query/retry.ts b/src/query/retry.ts index 222e384ece..03550e0c31 100644 --- a/src/query/retry.ts +++ b/src/query/retry.ts @@ -1,4 +1,4 @@ -import { BaseQueryEnhancer } from './baseQueryTypes' +import type { BaseQueryEnhancer } from './baseQueryTypes' import { HandledError } from './HandledError' /** @@ -108,4 +108,4 @@ const retryWithBackoff: BaseQueryEnhancer< * export const { useGetPostsQuery, useGetPostQuery } = api; * ``` */ -export const retry = /* #__PURE__ */ Object.assign(retryWithBackoff, { fail }) +export const retry = /* @__PURE__ */ Object.assign(retryWithBackoff, { fail }) diff --git a/src/query/tests/buildHooks.test.tsx b/src/query/tests/buildHooks.test.tsx index 4043229c09..c02fc8b858 100644 --- a/src/query/tests/buildHooks.test.tsx +++ b/src/query/tests/buildHooks.test.tsx @@ -18,9 +18,9 @@ import { waitMs, } from './helpers' import { server } from './mocks/server' -import { AnyAction } from 'redux' +import type { AnyAction } from 'redux' import type { SubscriptionOptions } from '@reduxjs/toolkit/dist/query/core/apiState' -import { SerializedError } from '@reduxjs/toolkit' +import type { SerializedError } from '@reduxjs/toolkit' import { renderHook } from '@testing-library/react-hooks' // Just setup a temporary in-memory counter for tests that `getIncrementedAmount`. diff --git a/src/query/tests/cacheCollection.test.ts b/src/query/tests/cacheCollection.test.ts index 9e800a3eb8..54ebff9f06 100644 --- a/src/query/tests/cacheCollection.test.ts +++ b/src/query/tests/cacheCollection.test.ts @@ -2,7 +2,7 @@ import { createApi } from '@reduxjs/toolkit/query' import { configureStore } from '@reduxjs/toolkit' import { fetchBaseQuery } from '../fetchBaseQuery' import { waitMs } from './helpers' -import { Middleware, Reducer } from 'redux' +import type { Middleware, Reducer } from 'redux' beforeAll(() => { jest.useFakeTimers() diff --git a/src/query/tests/createApi.test.ts b/src/query/tests/createApi.test.ts index 65c2b59d7c..e1dd71324a 100644 --- a/src/query/tests/createApi.test.ts +++ b/src/query/tests/createApi.test.ts @@ -1,10 +1,11 @@ import { configureStore, createAction, createReducer } from '@reduxjs/toolkit' -import { +import type { Api, - createApi, - fetchBaseQuery, MutationDefinition, - QueryDefinition, + QueryDefinition} from '@reduxjs/toolkit/query'; +import { + createApi, + fetchBaseQuery } from '@reduxjs/toolkit/query' import { ANY, diff --git a/src/query/tests/errorHandling.test.tsx b/src/query/tests/errorHandling.test.tsx index 572ef224d6..ecad3771ef 100644 --- a/src/query/tests/errorHandling.test.tsx +++ b/src/query/tests/errorHandling.test.tsx @@ -1,18 +1,20 @@ import * as React from 'react' +import type { + BaseQueryFn} from '@reduxjs/toolkit/query/react'; import { - BaseQueryFn, createApi, fetchBaseQuery, } from '@reduxjs/toolkit/query/react' import { renderHook, act } from '@testing-library/react-hooks' import { rest } from 'msw' -import axios, { AxiosError, AxiosRequestConfig, AxiosResponse } from 'axios' +import type { AxiosError, AxiosRequestConfig, AxiosResponse } from 'axios'; +import axios from 'axios' import { expectExactType, hookWaitFor, setupApiStore } from './helpers' import { server } from './mocks/server' import { fireEvent, render, waitFor, screen } from '@testing-library/react' import { useDispatch } from 'react-redux' -import { AnyAction, ThunkDispatch } from '@reduxjs/toolkit' +import type { AnyAction, ThunkDispatch } from '@reduxjs/toolkit' const baseQuery = fetchBaseQuery({ baseUrl: 'http://example.com' }) diff --git a/src/query/tests/helpers.tsx b/src/query/tests/helpers.tsx index 1c4903896e..96da59fb85 100644 --- a/src/query/tests/helpers.tsx +++ b/src/query/tests/helpers.tsx @@ -1,14 +1,16 @@ -import { +import type { AnyAction, - configureStore, EnhancedStore, Middleware, - Store, + Store} from '@reduxjs/toolkit'; +import { + configureStore } from '@reduxjs/toolkit' import { setupListeners } from '@reduxjs/toolkit/query' import { act } from '@testing-library/react-hooks' -import React, { Reducer, useCallback } from 'react' +import type { Reducer} from 'react'; +import React, { useCallback } from 'react' import { Provider } from 'react-redux' export const ANY = 0 as any diff --git a/src/query/tests/matchers.test.tsx b/src/query/tests/matchers.test.tsx index 848079dd8a..30b003162b 100644 --- a/src/query/tests/matchers.test.tsx +++ b/src/query/tests/matchers.test.tsx @@ -1,4 +1,5 @@ -import { createSlice, SerializedError } from '@reduxjs/toolkit' +import type { SerializedError } from '@reduxjs/toolkit'; +import { createSlice } from '@reduxjs/toolkit' import { createApi, fetchBaseQuery } from '@reduxjs/toolkit/query/react' import { renderHook, act } from '@testing-library/react-hooks' import { diff --git a/src/query/tests/queryFn.test.tsx b/src/query/tests/queryFn.test.tsx index 1095022442..57d266ceea 100644 --- a/src/query/tests/queryFn.test.tsx +++ b/src/query/tests/queryFn.test.tsx @@ -1,11 +1,13 @@ import { configureStore } from '@reduxjs/toolkit' -import { +import type { BaseQueryFn, + FetchBaseQueryError} from '@reduxjs/toolkit/query'; +import { createApi, - fetchBaseQuery, - FetchBaseQueryError, + fetchBaseQuery } from '@reduxjs/toolkit/query' -import { Post, posts } from './mocks/server' +import type { Post} from './mocks/server'; +import { posts } from './mocks/server' import { actionsReducer, setupApiStore } from './helpers' describe('queryFn base implementation tests', () => { diff --git a/src/query/tests/retry.test.ts b/src/query/tests/retry.test.ts index bc2acf2fdc..d8c84081c9 100644 --- a/src/query/tests/retry.test.ts +++ b/src/query/tests/retry.test.ts @@ -1,4 +1,5 @@ -import { BaseQueryFn, createApi, retry } from '@reduxjs/toolkit/query' +import type { BaseQueryFn} from '@reduxjs/toolkit/query'; +import { createApi, retry } from '@reduxjs/toolkit/query' import { setupApiStore, waitMs } from './helpers' beforeEach(() => { diff --git a/src/query/tests/unionTypes.test.ts b/src/query/tests/unionTypes.test.ts index bd9dbc83a3..e84ff6d1ec 100644 --- a/src/query/tests/unionTypes.test.ts +++ b/src/query/tests/unionTypes.test.ts @@ -1,8 +1,9 @@ -import { SerializedError } from '@reduxjs/toolkit' +import type { SerializedError } from '@reduxjs/toolkit' +import type { + FetchBaseQueryError} from '@reduxjs/toolkit/query/react'; import { createApi, - fetchBaseQuery, - FetchBaseQueryError, + fetchBaseQuery } from '@reduxjs/toolkit/query/react' import { expectExactType, expectType } from './helpers' diff --git a/src/serializableStateInvariantMiddleware.ts b/src/serializableStateInvariantMiddleware.ts index 13e24c16b5..83b491bb30 100644 --- a/src/serializableStateInvariantMiddleware.ts +++ b/src/serializableStateInvariantMiddleware.ts @@ -1,5 +1,5 @@ import isPlainObject from './isPlainObject' -import { Middleware } from 'redux' +import type { Middleware } from 'redux' import { getTimeMeasureUtils } from './utils' /** diff --git a/src/tests/MiddlewareArray.typetest.ts b/src/tests/MiddlewareArray.typetest.ts index 9bb090b970..d9cfa00f50 100644 --- a/src/tests/MiddlewareArray.typetest.ts +++ b/src/tests/MiddlewareArray.typetest.ts @@ -1,6 +1,6 @@ import { getDefaultMiddleware } from '@reduxjs/toolkit' -import { Middleware } from 'redux' -import { DispatchForMiddlewares } from '@internal/tsHelpers' +import type { Middleware } from 'redux' +import type { DispatchForMiddlewares } from '@internal/tsHelpers' declare const expectType: (t: T) => T diff --git a/src/tests/combinedTest.test.ts b/src/tests/combinedTest.test.ts index b210cbb3f0..dccaa58b91 100644 --- a/src/tests/combinedTest.test.ts +++ b/src/tests/combinedTest.test.ts @@ -1,13 +1,14 @@ +import type { + PayloadAction} from '@reduxjs/toolkit'; import { createAsyncThunk, createAction, - PayloadAction, createSlice, configureStore, createEntityAdapter, } from '@reduxjs/toolkit' -import { EntityAdapter } from '@internal/entities/models' -import { BookModel } from '@internal/entities/tests/fixtures/book' +import type { EntityAdapter } from '@internal/entities/models' +import type { BookModel } from '@internal/entities/tests/fixtures/book' describe('Combined entity slice', () => { let adapter: EntityAdapter diff --git a/src/tests/configureStore.test.ts b/src/tests/configureStore.test.ts index 15d1841684..18f1ebfaff 100644 --- a/src/tests/configureStore.test.ts +++ b/src/tests/configureStore.test.ts @@ -1,7 +1,8 @@ -import { - configureStore, +import type { StoreEnhancer, - StoreEnhancerStoreCreator, + StoreEnhancerStoreCreator} from '@reduxjs/toolkit'; +import { + configureStore } from '@reduxjs/toolkit' import * as RTK from '@reduxjs/toolkit' import * as redux from 'redux' diff --git a/src/tests/configureStore.typetest.ts b/src/tests/configureStore.typetest.ts index 71310b58e3..5ca736e46f 100644 --- a/src/tests/configureStore.typetest.ts +++ b/src/tests/configureStore.typetest.ts @@ -1,18 +1,10 @@ /* eslint-disable no-lone-blocks */ -import { - applyMiddleware, - Dispatch, - AnyAction, - Middleware, - Reducer, - Store, -} from 'redux' -import { - configureStore, - PayloadAction, - getDefaultMiddleware, -} from '@reduxjs/toolkit' -import thunk, { ThunkMiddleware, ThunkAction, ThunkDispatch } from 'redux-thunk' +import type { Dispatch, AnyAction, Middleware, Reducer, Store } from 'redux' +import { applyMiddleware } from 'redux' +import type { PayloadAction } from '@reduxjs/toolkit' +import { configureStore, getDefaultMiddleware } from '@reduxjs/toolkit' +import type { ThunkMiddleware, ThunkAction } from 'redux-thunk' +import thunk, { ThunkDispatch } from 'redux-thunk' import { expectNotAny, expectType } from './helpers' const _anyMiddleware: any = () => () => () => {} diff --git a/src/tests/createAction.typetest.ts b/src/tests/createAction.typetest.ts index 73d84521cc..04399309bc 100644 --- a/src/tests/createAction.typetest.ts +++ b/src/tests/createAction.typetest.ts @@ -1,15 +1,16 @@ -import { Action, AnyAction, ActionCreator } from 'redux' -import { - createAction, +import type { Action, AnyAction, ActionCreator } from 'redux' +import type { PayloadAction, PayloadActionCreator, ActionCreatorWithoutPayload, ActionCreatorWithOptionalPayload, ActionCreatorWithPayload, ActionCreatorWithNonInferrablePayload, - ActionCreatorWithPreparedPayload, + ActionCreatorWithPreparedPayload} from '@reduxjs/toolkit'; +import { + createAction } from '@reduxjs/toolkit' -import { IsAny } from '@internal/tsHelpers' +import type { IsAny } from '@internal/tsHelpers' import { expectType } from './helpers' /* PayloadAction */ diff --git a/src/tests/createAsyncThunk.test.ts b/src/tests/createAsyncThunk.test.ts index ff3646c85d..859ca7fca7 100644 --- a/src/tests/createAsyncThunk.test.ts +++ b/src/tests/createAsyncThunk.test.ts @@ -1,8 +1,9 @@ +import type { + AnyAction} from '@reduxjs/toolkit'; import { createAsyncThunk, unwrapResult, configureStore, - AnyAction, createReducer, } from '@reduxjs/toolkit' import { miniSerializeError } from '@internal/createAsyncThunk' diff --git a/src/tests/createAsyncThunk.typetest.ts b/src/tests/createAsyncThunk.typetest.ts index e2e0224a30..d10f72365a 100644 --- a/src/tests/createAsyncThunk.typetest.ts +++ b/src/tests/createAsyncThunk.typetest.ts @@ -1,15 +1,17 @@ /* eslint-disable no-lone-blocks */ +import type { + AnyAction, + SerializedError} from '@reduxjs/toolkit'; import { createAsyncThunk, createReducer, - AnyAction, - unwrapResult, - SerializedError, + unwrapResult } from '@reduxjs/toolkit' -import { ThunkDispatch } from 'redux-thunk' +import type { ThunkDispatch } from 'redux-thunk' -import apiRequest, { AxiosError } from 'axios' -import { IsAny, IsUnknown } from '@internal/tsHelpers' +import type { AxiosError } from 'axios'; +import apiRequest from 'axios' +import type { IsAny, IsUnknown } from '@internal/tsHelpers' import { expectType } from './helpers' const defaultDispatch = (() => {}) as ThunkDispatch<{}, any, AnyAction> diff --git a/src/tests/createEntityAdapter.typetest.ts b/src/tests/createEntityAdapter.typetest.ts index fddb312f5e..fa69b18ee1 100644 --- a/src/tests/createEntityAdapter.typetest.ts +++ b/src/tests/createEntityAdapter.typetest.ts @@ -1,12 +1,13 @@ -import { - createSlice, - createEntityAdapter, +import type { EntityAdapter, ActionCreatorWithPayload, ActionCreatorWithoutPayload, EntityStateAdapter, EntityId, - Update, + Update} from '@reduxjs/toolkit'; +import { + createSlice, + createEntityAdapter } from '@reduxjs/toolkit' import { expectType } from './helpers' diff --git a/src/tests/createReducer.test.ts b/src/tests/createReducer.test.ts index 59781c2a0f..7fa190d3e0 100644 --- a/src/tests/createReducer.test.ts +++ b/src/tests/createReducer.test.ts @@ -1,12 +1,13 @@ -import { - createReducer, +import type { CaseReducer, PayloadAction, - createAction, - createNextState, Draft, Reducer, - AnyAction, + AnyAction} from '@reduxjs/toolkit'; +import { + createReducer, + createAction, + createNextState } from '@reduxjs/toolkit' interface Todo { diff --git a/src/tests/createReducer.typetest.ts b/src/tests/createReducer.typetest.ts index b1fd3af190..d90e071ec8 100644 --- a/src/tests/createReducer.typetest.ts +++ b/src/tests/createReducer.typetest.ts @@ -1,8 +1,9 @@ -import { Reducer } from 'redux' +import type { Reducer } from 'redux' +import type { + ActionReducerMapBuilder} from '@reduxjs/toolkit'; import { createReducer, - createAction, - ActionReducerMapBuilder, + createAction } from '@reduxjs/toolkit' import { expectType } from './helpers' diff --git a/src/tests/createSlice.test.ts b/src/tests/createSlice.test.ts index d49a309712..0775df70e0 100644 --- a/src/tests/createSlice.test.ts +++ b/src/tests/createSlice.test.ts @@ -1,4 +1,5 @@ -import { createSlice, createAction, PayloadAction } from '@reduxjs/toolkit' +import type { PayloadAction } from '@reduxjs/toolkit'; +import { createSlice, createAction } from '@reduxjs/toolkit' describe('createSlice', () => { describe('when slice is undefined', () => { diff --git a/src/tests/createSlice.typetest.ts b/src/tests/createSlice.typetest.ts index 70b1c5ca21..4f4ddad469 100644 --- a/src/tests/createSlice.typetest.ts +++ b/src/tests/createSlice.typetest.ts @@ -1,16 +1,17 @@ -import { Action, AnyAction, Reducer } from 'redux' -import { +import type { Action, AnyAction, Reducer } from 'redux' +import type { ActionCreatorWithNonInferrablePayload, ActionCreatorWithOptionalPayload, ActionCreatorWithoutPayload, ActionCreatorWithPayload, ActionCreatorWithPreparedPayload, ActionReducerMapBuilder, - createAction, - createSlice, PayloadAction, SliceCaseReducers, - ValidateSliceCaseReducers, + ValidateSliceCaseReducers} from '@reduxjs/toolkit'; +import { + createAction, + createSlice } from '@reduxjs/toolkit' import { expectType } from './helpers' diff --git a/src/tests/getDefaultMiddleware.test.ts b/src/tests/getDefaultMiddleware.test.ts index 2c94ad9cc1..e76bdf49e0 100644 --- a/src/tests/getDefaultMiddleware.test.ts +++ b/src/tests/getDefaultMiddleware.test.ts @@ -1,10 +1,11 @@ -import { +import type { AnyAction, Middleware, + ThunkAction} from '@reduxjs/toolkit'; +import { getDefaultMiddleware, MiddlewareArray, - configureStore, - ThunkAction, + configureStore } from '@reduxjs/toolkit' import thunk from 'redux-thunk' diff --git a/src/tests/helpers.ts b/src/tests/helpers.ts index ee067b3747..6146ca1ee0 100644 --- a/src/tests/helpers.ts +++ b/src/tests/helpers.ts @@ -1,4 +1,4 @@ -import { IsAny, IsUnknown } from '../../src/tsHelpers' +import type { IsAny, IsUnknown } from '../../src/tsHelpers' export function expectType(t: T): T { return t diff --git a/src/tests/immutableStateInvariantMiddleware.test.ts b/src/tests/immutableStateInvariantMiddleware.test.ts index a163ab4369..67f09357bb 100644 --- a/src/tests/immutableStateInvariantMiddleware.test.ts +++ b/src/tests/immutableStateInvariantMiddleware.test.ts @@ -1,10 +1,11 @@ -import { +import type { Store, MiddlewareAPI, Dispatch, + ImmutableStateInvariantMiddlewareOptions} from '@reduxjs/toolkit'; +import { createImmutableStateInvariantMiddleware, - isImmutableDefault, - ImmutableStateInvariantMiddlewareOptions, + isImmutableDefault } from '@reduxjs/toolkit' import { trackForMutations } from '@internal/immutableStateInvariantMiddleware' diff --git a/src/tests/mapBuilders.typetest.ts b/src/tests/mapBuilders.typetest.ts index 8df53505f9..bfad653991 100644 --- a/src/tests/mapBuilders.typetest.ts +++ b/src/tests/mapBuilders.typetest.ts @@ -1,5 +1,6 @@ import { executeReducerBuilderCallback } from '@internal/mapBuilders' -import { createAction, AnyAction } from '@reduxjs/toolkit' +import type { AnyAction } from '@reduxjs/toolkit'; +import { createAction } from '@reduxjs/toolkit' import { expectType } from './helpers' /** Test: alternative builder callback for actionMap */ diff --git a/src/tests/matchers.test.ts b/src/tests/matchers.test.ts index 02f2c823ea..2440fd39a4 100644 --- a/src/tests/matchers.test.ts +++ b/src/tests/matchers.test.ts @@ -1,3 +1,6 @@ +import type { + ThunkAction, + AnyAction} from '@reduxjs/toolkit'; import { isAllOf, isAnyOf, @@ -8,9 +11,7 @@ import { isRejectedWithValue, createAction, createAsyncThunk, - createReducer, - ThunkAction, - AnyAction, + createReducer } from '@reduxjs/toolkit' const thunk: ThunkAction = () => {} diff --git a/src/tests/matchers.typetest.ts b/src/tests/matchers.typetest.ts index 5cc19bf20c..f5922251e0 100644 --- a/src/tests/matchers.typetest.ts +++ b/src/tests/matchers.typetest.ts @@ -1,6 +1,8 @@ import { expectExactType, expectUnknown } from './helpers' import { IsUnknown } from '@internal/tsHelpers' -import { AnyAction } from 'redux' +import type { AnyAction } from 'redux' +import type { + SerializedError} from '../../src'; import { createAction, createAsyncThunk, @@ -10,8 +12,7 @@ import { isFulfilled, isPending, isRejected, - isRejectedWithValue, - SerializedError, + isRejectedWithValue } from '../../src' /* isAnyOf */ diff --git a/src/tests/serializableStateInvariantMiddleware.test.ts b/src/tests/serializableStateInvariantMiddleware.test.ts index 833f5e16d5..15ee5c8742 100644 --- a/src/tests/serializableStateInvariantMiddleware.test.ts +++ b/src/tests/serializableStateInvariantMiddleware.test.ts @@ -3,8 +3,9 @@ import { createConsole, getLog, } from 'console-testing-library/pure' +import type { + Reducer} from '@reduxjs/toolkit'; import { - Reducer, configureStore, createSerializableStateInvariantMiddleware, findNonSerializableValue, diff --git a/src/tsHelpers.ts b/src/tsHelpers.ts index d8242c5be9..3fd3fa0c3e 100644 --- a/src/tsHelpers.ts +++ b/src/tsHelpers.ts @@ -1,4 +1,4 @@ -import { Middleware } from 'redux' +import type { Middleware } from 'redux' /** * return True if T is `any`, otherwise return False diff --git a/src/utils.ts b/src/utils.ts index 3bc3be0be8..037db322fd 100644 --- a/src/utils.ts +++ b/src/utils.ts @@ -1,4 +1,4 @@ -import { Middleware } from 'redux' +import type { Middleware } from 'redux' export function getTimeMeasureUtils(maxDelay: number, fnName: string) { let elapsed = 0 From d0a4fcc33460752bf7a90c8ad13b71f9fcdbd7e4 Mon Sep 17 00:00:00 2001 From: Lenz Weber Date: Wed, 26 May 2021 21:27:45 +0200 Subject: [PATCH 7/8] call `enableES5` from `createReducer` --- src/createReducer.ts | 8 +++++++- src/index.ts | 7 ------- 2 files changed, 7 insertions(+), 8 deletions(-) diff --git a/src/createReducer.ts b/src/createReducer.ts index 1e6a7cb5f1..807f1cc4de 100644 --- a/src/createReducer.ts +++ b/src/createReducer.ts @@ -1,5 +1,5 @@ import type { Draft } from 'immer' -import createNextState, { isDraft, isDraftable } from 'immer' +import createNextState, { isDraft, isDraftable, enableES5 } from 'immer' import type { AnyAction, Action, Reducer } from 'redux' import type { ActionReducerMapBuilder } from './mapBuilders' import { executeReducerBuilderCallback } from './mapBuilders' @@ -193,6 +193,12 @@ export function createReducer( actionMatchers: ActionMatcherDescriptionCollection = [], defaultCaseReducer?: CaseReducer ): Reducer { + // We deliberately enable Immer's ES5 support, on the grounds that + // we assume RTK will be used with React Native and other Proxy-less + // environments. In addition, that's how Immer 4 behaved, and since + // we want to ship this in an RTK minor, we should keep the same behavior. + enableES5() + let [actionsMap, finalActionMatchers, finalDefaultCaseReducer] = typeof mapOrBuilderCallback === 'function' ? executeReducerBuilderCallback(mapOrBuilderCallback) diff --git a/src/index.ts b/src/index.ts index d87f52b53a..305367427c 100644 --- a/src/index.ts +++ b/src/index.ts @@ -1,4 +1,3 @@ -import { enableES5 } from 'immer' export * from 'redux' export { default as createNextState, @@ -18,12 +17,6 @@ export type { export { createDraftSafeSelector } from './createDraftSafeSelector' export type { ThunkAction, ThunkDispatch } from 'redux-thunk' -// We deliberately enable Immer's ES5 support, on the grounds that -// we assume RTK will be used with React Native and other Proxy-less -// environments. In addition, that's how Immer 4 behaved, and since -// we want to ship this in an RTK minor, we should keep the same behavior. -enableES5() - export { // js configureStore, From 1bc07d49fe3308d22366c838d9824c6c67754150 Mon Sep 17 00:00:00 2001 From: Lenz Weber Date: Wed, 26 May 2021 22:47:14 +0200 Subject: [PATCH 8/8] config --- .eslintrc.js | 4 + .size-limit.js | 236 +++++++++++++++++++-------------------- query/package.json | 5 +- query/react/package.json | 3 +- 4 files changed, 124 insertions(+), 124 deletions(-) diff --git a/.eslintrc.js b/.eslintrc.js index 6f88ea801b..5841f418a7 100644 --- a/.eslintrc.js +++ b/.eslintrc.js @@ -13,6 +13,10 @@ module.exports = { '@typescript-eslint/no-redeclare': 'off', 'no-use-before-define': 'off', '@typescript-eslint/no-use-before-define': ['error', { functions: false }], + '@typescript-eslint/consistent-type-imports': [ + 'error', + { prefer: 'type-imports', disallowTypeAnnotations: false }, + ], }, overrides: [ { diff --git a/.size-limit.js b/.size-limit.js index fa88c7ea58..458676495e 100644 --- a/.size-limit.js +++ b/.size-limit.js @@ -1,70 +1,58 @@ const webpack = require('webpack') let { join } = require('path') -const rtkEntryPoints = [ - 'dist/redux-toolkit.cjs.production.min.js', - 'dist/redux-toolkit.esm.js', - 'dist/redux-toolkit.modern.js', - 'dist/redux-toolkit.modern.production.min.js', -] - -const queryEntryPoints = [ - 'dist/query/rtk-query.cjs.production.min.js', - 'dist/query/rtk-query.esm.js', - 'dist/query/rtk-query.modern.js', - 'dist/query/rtk-query.modern.production.min.js', -] - -const reactEntryPoints = [ - 'dist/query/react/rtk-query-react.cjs.production.min.js', - 'dist/query/react/rtk-query-react.esm.js', - 'dist/query/react/rtk-query-react.modern.js', - 'dist/query/react/rtk-query-react.modern.production.min.js', -] - -const umdBuilds = [ - 'dist/redux-toolkit.umd.js', - 'dist/query/rtk-query.umd.js', - 'dist/query/react/rtk-query-react.umd.js', -] +const suffixes = ['cjs.production.min.js', 'esm.js'] -function withRtkPath(path) { +function withRtkPath(suffix) { return (config) => { - if (path.startsWith('dist/query/rtk-query')) { - config.plugins.push( - new webpack.NormalModuleReplacementPlugin( - /@reduxjs\/toolkit/, - join( - __dirname, - path.replace('dist/query/rtk-query', 'dist/redux-toolkit') + config.plugins.push( + new webpack.NormalModuleReplacementPlugin( + /@reduxjs\/toolkit\/query\/react/, + join(__dirname, `query/react`) + ), + new webpack.NormalModuleReplacementPlugin( + /@reduxjs\/toolkit\/query/, + join(__dirname, `query`) + ), + new webpack.NormalModuleReplacementPlugin( + /@reduxjs\/toolkit/, + join(__dirname) + ), + new webpack.NormalModuleReplacementPlugin( + /rtk-query-react.esm.js/, + (r) => { + const old = r.request + r.request = r.request.replace( + /rtk-query-react.esm.js$/, + `rtk-query-react.${suffix}` ) + // console.log(old, '=>', r.request) + } + ), + new webpack.NormalModuleReplacementPlugin(/rtk-query.esm.js/, (r) => { + const old = r.request + r.request = r.request.replace( + /rtk-query.esm.js$/, + `rtk-query.${suffix}` ) - ) - } - if (path.startsWith('dist/query/react/rtk-query-react')) { - config.plugins.push( - new webpack.NormalModuleReplacementPlugin( - /@reduxjs\/toolkit\/query/, - join( - __dirname, - path.replace( - 'dist/query/react/rtk-query-react', - 'dist/query/rtk-query' - ) + // console.log(old, '=>', r.request) + }), + new webpack.NormalModuleReplacementPlugin( + /redux-toolkit.esm.js$/, + (r) => { + const old = r.request + r.request = r.request.replace( + /redux-toolkit.esm.js$/, + `redux-toolkit.${suffix}` ) - ), - new webpack.NormalModuleReplacementPlugin( - /@reduxjs\/toolkit/, - join( - __dirname, - path.replace( - 'dist/query/react/rtk-query-react', - 'dist/redux-toolkit' - ) - ) - ) + // console.log(old, '=>', r.request) + } ) + ) + if (suffix === 'cjs.production.min.js') { + config.resolve.mainFields = ['main', 'module'] } + config.optimization.nodeEnv = 'production' return config } } @@ -79,72 +67,78 @@ const ignoreAll = [ ] module.exports = [ - ...[...rtkEntryPoints, ...queryEntryPoints, ...reactEntryPoints].flatMap( - (path) => [ + { + name: `1. entry point: @reduxjs/toolkit`, + path: 'dist/redux-toolkit.esm.js', + }, + { + name: `1. entry point: @reduxjs/toolkit/query`, + path: 'dist/query/rtk-query.esm.js', + }, + { + name: `1. entry point: @reduxjs/toolkit/query/react`, + path: 'dist/query/react/rtk-query-react.esm.js', + }, + { + name: `2. entry point: @reduxjs/toolkit (without dependencies)`, + path: 'dist/redux-toolkit.esm.js', + ignore: ignoreAll, + }, + { + name: `2. entry point: @reduxjs/toolkit/query (without dependencies)`, + path: 'dist/query/rtk-query.esm.js', + ignore: ignoreAll, + }, + { + name: `2. entry point: @reduxjs/toolkit/query/react (without dependencies)`, + path: 'dist/query/react/rtk-query-react.esm.js', + ignore: ignoreAll, + }, +] + .flatMap((e) => + suffixes.map((suffix) => ({ + ...e, + name: e.name + ` (${suffix})`, + modifyWebpackConfig: withRtkPath(suffix), + })) + ) + .concat( + ...[ { - name: `1. entry point: ${path}`, - path, - modifyWebpackConfig: withRtkPath(path), + name: `3. createSlice`, + import: { '@reduxjs/toolkit': '{ createSlice }' }, }, { - name: `2. entry point: ${path} (without dependencies)`, - path, - modifyWebpackConfig: withRtkPath(path), - ignore: ignoreAll, + name: `3. createEntityAdapter`, + import: { '@reduxjs/toolkit': '{ createEntityAdapter }' }, }, - ] - ), - ...rtkEntryPoints.flatMap((path) => [ - { - name: `3. createSlice (${path})`, - path, - import: '{ createSlice }', - }, - { - name: `3. createEntityAdapter (${path})`, - path, - import: '{ createEntityAdapter }', - }, - { - name: `3. configureStore (${path})`, - path, - import: '{ configureStore }', - }, - ]), - ...[...queryEntryPoints, ...reactEntryPoints].flatMap((path) => [ - { - name: `3. createApi (${path})`, - path, - import: '{ createApi }', - modifyWebpackConfig: withRtkPath(path), - }, - { - name: `3. setupListeners (${path})`, - path, - import: '{ setupListeners }', - modifyWebpackConfig: withRtkPath(path), - }, - { - name: `3. fetchBaseQuery (${path})`, - path, - import: '{ fetchBaseQuery }', - modifyWebpackConfig: withRtkPath(path), - }, - ]), - ...umdBuilds.map((path) => ({ - name: `4. UMD build: ${path}`, - path, - })), -].sort(byName) -/* - .filter( - (x) => x.name == '3. createApi (dist/query/react/rtk-query-react.modern.js)' - ) - */ - -function byName(a, b) { - return ( - b.path.localeCompare(a.path) + - a.name.substring(0, 12).localeCompare(b.name.substring(0, 12)) * 10 + { + name: `3. configureStore`, + import: { '@reduxjs/toolkit': '{ configureStore }' }, + }, + { + name: `3. createApi`, + import: { '@reduxjs/toolkit/query': '{ createApi }' }, + }, + { + name: `3. createApi (react)`, + import: { '@reduxjs/toolkit/query/react': '{ createApi }' }, + }, + { + name: `3. fetchBaseQuery`, + import: { '@reduxjs/toolkit/query': '{ fetchBaseQuery }' }, + }, + { + name: `3. setupListeners`, + import: { '@reduxjs/toolkit/query': '{ setupListeners }' }, + }, + { + name: `3. ApiProvider`, + import: { '@reduxjs/toolkit/query/react': '{ ApiProvider }' }, + }, + ].map((e) => ({ + ...e, + name: e.name + ` (esm.js)`, + modifyWebpackConfig: withRtkPath('esm.js'), + })) ) -} diff --git a/query/package.json b/query/package.json index f4d90bee4b..0abc176e05 100644 --- a/query/package.json +++ b/query/package.json @@ -7,5 +7,6 @@ "unpkg": "../dist/query/rtk-query.umd.min.js", "types": "../dist/query/index.d.ts", "author": "Mark Erikson ", - "license": "MIT" -} \ No newline at end of file + "license": "MIT", + "sideEffects": false +} diff --git a/query/react/package.json b/query/react/package.json index d9dadc88fd..664a7e3e95 100644 --- a/query/react/package.json +++ b/query/react/package.json @@ -7,5 +7,6 @@ "unpkg": "../../dist/query/react/rtk-query-react.umd.min.js", "author": "Mark Erikson ", "license": "MIT", - "types": "../../dist/query/react/index.d.ts" + "types": "../../dist/query/react/index.d.ts", + "sideEffects": false }