├── .gitignore ├── .npmignore ├── test ├── src │ ├── main │ │ └── index.js │ └── preload │ │ └── index.js └── build-electron.config.js ├── .github └── workflows │ └── test.yml ├── package.json ├── LICENSE ├── cli.js ├── README.md └── yarn.lock /.gitignore: -------------------------------------------------------------------------------- 1 | node_modules 2 | /build 3 | -------------------------------------------------------------------------------- /.npmignore: -------------------------------------------------------------------------------- 1 | yarn.lock 2 | /build 3 | /test 4 | /.github 5 | -------------------------------------------------------------------------------- /test/src/main/index.js: -------------------------------------------------------------------------------- 1 | import meow from 'meow'; 2 | 3 | meow(''); 4 | 5 | console.log('main'); 6 | -------------------------------------------------------------------------------- /test/src/preload/index.js: -------------------------------------------------------------------------------- 1 | import meow from 'meow'; 2 | 3 | meow(''); 4 | 5 | console.log('preload'); 6 | -------------------------------------------------------------------------------- /test/build-electron.config.js: -------------------------------------------------------------------------------- 1 | export default { 2 | mainEntry: 'test/src/main/index.js', 3 | preloadEntry: 'test/src/preload/index.js', 4 | outDir: 'build', 5 | mainTarget: 'electron16.0-main', 6 | preloadTarget: 'electron16.0-preload', 7 | } 8 | -------------------------------------------------------------------------------- /.github/workflows/test.yml: -------------------------------------------------------------------------------- 1 | name: Test 2 | 3 | on: 4 | push: 5 | branches: [ main ] 6 | pull_request: 7 | branches: [ main ] 8 | 9 | jobs: 10 | build: 11 | runs-on: ubuntu-latest 12 | 13 | strategy: 14 | matrix: 15 | node-version: [16.x] 16 | 17 | steps: 18 | - uses: actions/checkout@v2 19 | - uses: actions/setup-node@v2 20 | with: 21 | node-version: ${{ matrix.node-version }} 22 | - run: yarn 23 | - run: yarn test 24 | -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "build-electron", 3 | "description": "A simple build tool for Electron main/preload code", 4 | "version": "1.0.5", 5 | "main": "index.js", 6 | "bin": { 7 | "build-electron": "cli.js" 8 | }, 9 | "scripts": { 10 | "test": "node cli.js -c test/build-electron.config.js" 11 | }, 12 | "author": "Mikael Finstad ", 13 | "repository": "mifi/build-electron", 14 | "license": "MIT", 15 | "type": "module", 16 | "dependencies": { 17 | "meow": "^10.1.2", 18 | "webpack": "^5.67.0" 19 | }, 20 | "devDependencies": {} 21 | } 22 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2022 Mikael Finstad 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /cli.js: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env node 2 | import webpack from 'webpack'; 3 | import meow from 'meow'; 4 | import assert from 'assert'; 5 | import { unlink, writeFile, mkdir } from 'fs/promises'; 6 | import { isAbsolute, join } from 'path'; 7 | import { pathToFileURL } from 'url'; 8 | 9 | const cli = meow(` 10 | Usage 11 | $ build-electron [options] 12 | `, { 13 | importMeta: import.meta, 14 | flags: { 15 | config: { type: 'string', alias: 'c' }, 16 | dev: { type: 'boolean', alias: 'd' } 17 | }, 18 | }); 19 | 20 | const { 21 | dev: development, 22 | projectRoot = process.cwd(), 23 | config: configPath = join(projectRoot, 'build-electron.config.js'), 24 | } = cli.flags; 25 | 26 | const resolvePath = (path) => isAbsolute(path) ? path : join(projectRoot, path) 27 | 28 | // https://github.com/okonet/lint-staged/issues/1054 29 | const config = (await import(pathToFileURL(resolvePath(configPath)).toString())).default; 30 | 31 | const { 32 | mainEntry, 33 | preloadEntry, 34 | mainExtraEntries, 35 | preloadExtraEntries, 36 | outDir, 37 | externals, 38 | customConfig, 39 | customMainConfig, 40 | customPreloadConfig, 41 | mainTarget = 'electron16.0-main', 42 | preloadTarget = 'electron16.0-preload', 43 | } = config; 44 | 45 | assert(mainEntry || preloadEntry); 46 | assert(outDir); 47 | assert(mainTarget); 48 | assert(preloadTarget); 49 | 50 | const doneSignalFilePath = join(outDir, '.build-electron-done'); 51 | 52 | const commonConfig = { 53 | mode: development ? 'development' : 'production', 54 | 55 | externals: { 56 | 'electron': 'commonjs2 electron', 57 | 'electron-devtools-installer': 'commonjs2 electron-devtools-installer', 58 | 59 | ...externals, 60 | }, 61 | 62 | devtool: 'inline-source-map', // todo prod https://webpack.js.org/configuration/devtool/ 63 | }; 64 | 65 | const resolveConfig = { 66 | extensions: ['.js', '.mjs', '.json', '.wasm'], 67 | }; 68 | 69 | export const getMainConfig = ({ entry, extraEntries, target }) => ({ 70 | ...commonConfig, 71 | target, 72 | entry: { 73 | main: entry, 74 | ...extraEntries, 75 | }, 76 | output: { 77 | path: resolvePath(outDir), 78 | filename: '[name].js', 79 | chunkFormat: 'commonjs', 80 | }, 81 | resolve: resolveConfig, 82 | ...customConfig, 83 | ...customMainConfig, 84 | }); 85 | 86 | export const getPreloadConfig = ({ entry, extraEntries, target }) => ({ 87 | ...commonConfig, 88 | target, 89 | entry: { 90 | preload: entry, 91 | ...extraEntries, 92 | }, 93 | output: { 94 | path: resolvePath(outDir), 95 | filename: '[name].js', 96 | chunkFormat: 'commonjs', 97 | }, 98 | resolve: resolveConfig, 99 | ...customConfig, 100 | ...customPreloadConfig, 101 | }); 102 | 103 | const main = mainEntry && webpack(getMainConfig({ 104 | entry: resolvePath(mainEntry), 105 | target: mainTarget, 106 | extraEntries: mainExtraEntries && Object.fromEntries(Object.entries(mainExtraEntries).map(([key, value]) => ([key, resolvePath(value)]))), 107 | })); 108 | 109 | const preload = preloadEntry && webpack(getPreloadConfig({ 110 | entry: resolvePath(preloadEntry), 111 | target: preloadTarget, 112 | extraEntries: preloadExtraEntries && Object.fromEntries(Object.entries(preloadExtraEntries).map(([key, value]) => ([key, resolvePath(value)]))), 113 | })); 114 | 115 | // mkdir -p 116 | try { 117 | await mkdir(outDir); 118 | } catch (err) { 119 | if (err.code !== 'EEXIST') throw err; 120 | } 121 | 122 | await unlink(doneSignalFilePath).catch(() => {}); 123 | 124 | if (development) { 125 | main.watch({}, (err, stats) => { 126 | if (err) console.error(err); 127 | else console.log(stats.toString()); 128 | }); 129 | 130 | preload.watch({}, (err, stats) => { 131 | if (err) { 132 | console.error(err); 133 | return; 134 | } 135 | 136 | console.log(stats.toString()); 137 | writeFile(doneSignalFilePath, Buffer.alloc(0)); 138 | }); 139 | } else { 140 | main.run((err, stats) => { 141 | if (err) console.error(err); 142 | else console.log(stats.toString()); 143 | }); 144 | 145 | preload.run((err, stats) => { 146 | if (err) console.error(err); 147 | else console.log(stats.toString()); 148 | }); 149 | } 150 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # build-electron [![Test](https://github.com/mifi/build-electron/actions/workflows/test.yml/badge.svg)](https://github.com/mifi/build-electron/actions/workflows/test.yml) 2 | 3 | **Note!** No longer maintained! Use something like [`electron-vite`](https://github.com/alex8088/electron-vite) instead. 4 | 5 | Use ES modules in Electron now! 6 | 7 | `build-electron` is a simple build tool for **main** and **preload** code of your Electron app, so you don't have to setup a webpack build system yourself. The aim is to make it easier to get started building Electron apps, like it used to be. Note that **`build-electron` is not a boilerplate**. It is a build tool kind of like Create React App or Vite, but for your Electron code. 8 | 9 | ## Background 10 | 11 | Because [Electron does not support ES Modules](https://github.com/electron/electron/issues/21457), and the [Node ecosystem is shifting to ESM](https://gist.github.com/sindresorhus/a39789f98801d908bbc7ff3ecc99d99c) we are lacking an easy way to simply use ESM Node.js code and modules in our Electron projects. A boilerplate is possible, but it can get outdated quickly and hard to maintain with new updates. So I created this project in the spirit of [Create React App](https://github.com/facebook/create-react-app). When Electron supports ESM in the future 🤞, `build-electron` can simply be unplugged from the project and it will hopefully "just work". 12 | 13 | ## Features 14 | 15 | - Simple - Doesn't build frontend; less hairy logic 16 | - Supports Webpack 5 17 | - Customizable 18 | - Building for production or watching 19 | 20 | ## How to use 21 | 22 | Note that this project provides **Node.js code building only** (main, preload) - not renderer code due to there being so many different languages and frameworks for that, and there are already excellent tools for building those. For React based Electron apps, I recommend pairing with [Vite](https://vitejs.dev/) or [Create React App (CRA)](https://github.com/facebook/create-react-app). 23 | 24 | ```bash 25 | yarn add -D build-electron concurrently wait-on 26 | ``` 27 | 28 | Put your Electron main ESM source code in `src/main/index.js` and preload source in `src/preload/index.js`. 29 | 30 | Now create a configuration file in your project root `build-electron.config.js` (project root means the same directory that you have your Electron project's `package.json` file): 31 | 32 | ```js 33 | module.exports = { 34 | mainEntry: 'src/main/index.js', 35 | preloadEntry: 'src/preload/index.js', 36 | outDir: 'build', 37 | mainTarget: 'electron16.0-main', 38 | preloadTarget: 'electron16.0-preload', 39 | } 40 | ``` 41 | 42 | Add to your `package.json`: 43 | 44 | ```json 45 | { 46 | "main": "build/main.js", 47 | "build": { 48 | "files": [ 49 | "build/**/*" 50 | ] 51 | }, 52 | "scripts": { 53 | "start": "concurrently -k \"build-electron -d\" \"wait-on build/.build-electron-done && electron .\"", 54 | "build": "build-electron" 55 | } 56 | ``` 57 | 58 | See example folder structure: 59 | 60 | ``` 61 | 📁 My Electron App 62 | 📄 package.json 63 | 📄 build-electron.config.js 64 | 📁 src 65 | 📁 main 66 | 📄 index.js 67 | [more sources] 68 | 📁 preload 69 | 📄 index.js 70 | [more sources] 71 | 72 | 📁 build 73 | 📄 main.js [generated by build-electron] 74 | 📄 preload.js [generated by build-electron] 75 | ``` 76 | 77 | Now you can start developing: 78 | ```bash 79 | npm run start 80 | ``` 81 | 82 | And to build your production app: 83 | ```bash 84 | npm run build && npm exec electron-builder --mac 85 | ``` 86 | 87 | Optionally add your frontend builder (for example CRA, see example below) 88 | 89 | ## Using with Create React App 90 | 91 | In this example we will use CRA and [electron-builder](https://www.electron.build/), although it should be similar with any other framework too. 92 | 93 | ```bash 94 | yarn create react-app my-awesome-app 95 | cd my-awesome-app 96 | yarn add -D build-electron electron electron-builder concurrently wait-on 97 | ``` 98 | 99 | Now let's create the project structure. Because CRA uses a particular directory structure (and `src` is reserved for the frontend source), we have to adapt to that. The relevant structure will be like this: 100 | ``` 101 | 📁 my-awesome-app 102 | 📁 src-main 103 | 📄 index.js 104 | 📁 src-preload 105 | 📄 index.js 106 | 📁 src 107 | [React source] 108 | 109 | 📁 public 110 | 📄 main.js [generated by build-electron] 111 | 📄 preload.js [generated by build-electron] 112 | 113 | 📁 build [generated by CRA] 114 | 📁 dist [generated by electron-builder] 115 | 116 | 📄 package.json 117 | 📄 .gitignore 118 | ``` 119 | 120 | - `📁 src-main` - Source for the electron main process (where you create your `BrowserWindow`). Entry point `index.js` bundles to `public/main.js`. 121 | - `📁 src-preload` - Source for the electron preload script. Entry point `index.js` bundles to `public/preload.js`. 122 | - `📁 src` - Static frontend React files processed by CRA and outputted into `build`, along with files from `public`. 123 | - `📁 public` - Output of `build-electron`'s entry points (`src-main` and `src-preload`), and is the input of the CRA build's static files. 124 | - `📁 dist` - Final production app output generated by `electron-builder`. 125 | 126 | Now create a configuration file in your project root `build-electron.config.js`: 127 | ```js 128 | module.exports = { 129 | mainEntry: 'src-main/index.js', 130 | preloadEntry: 'src-preload/index.js', 131 | outDir: 'public', 132 | mainTarget: 'electron16.0-main', 133 | preloadTarget: 'electron16.0-preload', 134 | } 135 | ``` 136 | 137 | Relevant bits to add to your `package.json`: 138 | ```json 139 | "main": "public/main.js", 140 | "build": { 141 | "extraMetadata": { 142 | "main": "build/main.js" 143 | }, 144 | "files": [ 145 | "build/**/*" 146 | ] 147 | }, 148 | "scripts": { 149 | "start": "concurrently -k \"BROWSER=none react-scripts start\" \"build-electron -d\" \"wait-on public/.build-electron-done http://localhost:3000 && electron .\"", 150 | "build": "build-electron && react-scripts build", 151 | "postinstall": "electron-builder install-app-deps" 152 | } 153 | ``` 154 | 155 | Add to `.gitignore`: 156 | ``` 157 | /build 158 | /dist 159 | /icon-build 160 | /public/main.js 161 | /public/preload.js 162 | ``` 163 | 164 | Now you can start developing: 165 | ```bash 166 | npm run start 167 | ``` 168 | 169 | And to build your production app: 170 | ```bash 171 | npm run build && npm exec electron-builder --mac 172 | ``` 173 | 174 | ## Using with Vite 175 | 176 | I have successfully ported projects from Create React App to Vite. It's quite easy and usually involves: 177 | 178 | - `package.json` `scripts.build` replace `react-scripts build` with: `vite build --outDir vite-dist` 179 | - `package.json` `scripts.start` replace `react-scripts start` with: `vite dev` 180 | - `package.json` `build.extraMetadata.main` replace `build/main.js` with `vite-dist/main.js` 181 | - `package.json` `build.extraMetadata.files` replace `build/**/*` with `vite-dist/**/*` 182 | 183 | Add to `.gitignore`: 184 | ``` 185 | /vite-dist 186 | /dist 187 | /icon-build 188 | /public 189 | ``` 190 | 191 | TODO: show Vite example. 192 | 193 | ## `build-electron.config.js` options 194 | 195 | Note that paths can be relative to project root or absolute. 196 | 197 | - `mainEntry` - Electron's main entrypoint. 198 | - `preloadEntry` - Electron's preload entrypoint. 199 | - `mainExtraEntries`, `preloadExtraEntries` - Include additional main or preload entrypoints: 200 | - Key-value pairs, example: `{ 'name': 'path/to/source' }` 201 | - `outDir` - Output files to this path. 202 | - `externals` - Use this to [exclude](https://webpack.js.org/configuration/externals/) certain modules from being bundled, like native dependencies. 203 | - `customConfig` - Customize Webpack config for both `main.js` and `preload.js` 204 | - `customMainConfig` - Customize Webpack config just for `main.js` 205 | - `customPreloadConfig` - Customize Webpack config just for `preload.js` 206 | - `mainTarget` - Should use `electronX.Y-main`. See [Webpack target](https://webpack.js.org/configuration/target/) 207 | - `preloadTarget` - Should use `electronX.Y-preload`. See [Webpack target](https://webpack.js.org/configuration/target/) 208 | 209 | ## `build-electron` CLI 210 | 211 | - `--config`, `-c` - Override path to `build-electron.config.js` (default is in project root) 212 | - `--dev`, `-d` - Run in development mode with file watcher (default is production build + exit after finish) 213 | 214 | ## Size optimizations 215 | 216 | Make sure you follow these guidelines: 217 | 218 | - Any npm dependencies that have binaries (native Node.js modules) must be in `dependencies` and included in the `externals` options so they don't get bundled in 219 | - All other dependencies should be `devDependencies` to prevent them from being included by electron-builder. 220 | 221 | ## Source Maps 222 | 223 | ```bash 224 | yarn add -D source-map-support 225 | ``` 226 | 227 | Add to the top of `src-main/index.js`: 228 | ```js 229 | import 'source-map-support/register'; 230 | ``` 231 | 232 | ## TODO 233 | - [Code splitting](https://webpack.js.org/plugins/split-chunks-plugin/) 234 | - Figure out [Source Maps for preload](https://github.com/electron/electron/issues/24916) 235 | - Create example project 236 | - Environment variables 237 | 238 | ## Alternatives / inspiration 239 | 240 | - https://github.com/alex8088/electron-vite 241 | - https://github.com/cawa-93/vite-electron-builder - High maintenance to keep up-to-date with boilerplates. 242 | - https://github.com/electron-userland/electron-compile **unmaintained**. 243 | - https://github.com/electron-userland/electron-webpack - Somewhat outdated and **unmaintained**. 244 | - Using [Vite](https://vitejs.dev/) instead of Webpack, however Vite is less popular and I've experienced issues with some npm modules. As Webpack is the de-facto standard way of building Javascript and used by so many developers, it was the best choice. 245 | - https://github.com/vercel/ncc - Similar philosophy but [doesn't seem to work in electron](https://github.com/vercel/ncc/issues/539) 246 | 247 | ## Development 248 | 249 | To test in a consuming project (yarn v2+), add to its `package.json`: 250 | ```json 251 | "resolutions": { 252 | "build-electron": "portal:/path/to/build-electron" 253 | } 254 | ``` 255 | then run `yarn`. 256 | -------------------------------------------------------------------------------- /yarn.lock: -------------------------------------------------------------------------------- 1 | # THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY. 2 | # yarn lockfile v1 3 | 4 | 5 | "@babel/code-frame@^7.0.0": 6 | version "7.16.7" 7 | resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.16.7.tgz#44416b6bd7624b998f5b1af5d470856c40138789" 8 | integrity sha512-iAXqUn8IIeBTNd72xsFlgaXHkMBMt6y4HJp1tIaK465CWLT/fG1aqB7ykr95gHHmlBdGbFeWWfyB4NJJ0nmeIg== 9 | dependencies: 10 | "@babel/highlight" "^7.16.7" 11 | 12 | "@babel/helper-validator-identifier@^7.16.7": 13 | version "7.16.7" 14 | resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.16.7.tgz#e8c602438c4a8195751243da9031d1607d247cad" 15 | integrity sha512-hsEnFemeiW4D08A5gUAZxLBTXpZ39P+a+DGDsHw1yxqyQ/jzFEnxf5uTEGp+3bzAbNOxU1paTgYS4ECU/IgfDw== 16 | 17 | "@babel/highlight@^7.16.7": 18 | version "7.16.10" 19 | resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.16.10.tgz#744f2eb81579d6eea753c227b0f570ad785aba88" 20 | integrity sha512-5FnTQLSLswEj6IkgVw5KusNUUFY9ZGqe/TRFnP/BKYHYgfh7tc+C7mwiy95/yNP7Dh9x580Vv8r7u7ZfTBFxdw== 21 | dependencies: 22 | "@babel/helper-validator-identifier" "^7.16.7" 23 | chalk "^2.0.0" 24 | js-tokens "^4.0.0" 25 | 26 | "@types/eslint-scope@^3.7.0": 27 | version "3.7.3" 28 | resolved "https://registry.yarnpkg.com/@types/eslint-scope/-/eslint-scope-3.7.3.tgz#125b88504b61e3c8bc6f870882003253005c3224" 29 | integrity sha512-PB3ldyrcnAicT35TWPs5IcwKD8S333HMaa2VVv4+wdvebJkjWuW/xESoB8IwRcog8HYVYamb1g/R31Qv5Bx03g== 30 | dependencies: 31 | "@types/eslint" "*" 32 | "@types/estree" "*" 33 | 34 | "@types/eslint@*": 35 | version "8.4.1" 36 | resolved "https://registry.yarnpkg.com/@types/eslint/-/eslint-8.4.1.tgz#c48251553e8759db9e656de3efc846954ac32304" 37 | integrity sha512-GE44+DNEyxxh2Kc6ro/VkIj+9ma0pO0bwv9+uHSyBrikYOHr8zYcdPvnBOp1aw8s+CjRvuSx7CyWqRrNFQ59mA== 38 | dependencies: 39 | "@types/estree" "*" 40 | "@types/json-schema" "*" 41 | 42 | "@types/estree@*", "@types/estree@^0.0.50": 43 | version "0.0.50" 44 | resolved "https://registry.yarnpkg.com/@types/estree/-/estree-0.0.50.tgz#1e0caa9364d3fccd2931c3ed96fdbeaa5d4cca83" 45 | integrity sha512-C6N5s2ZFtuZRj54k2/zyRhNDjJwwcViAM3Nbm8zjBpbqAdZ00mr0CFxvSKeO8Y/e03WVFLpQMdHYVfUd6SB+Hw== 46 | 47 | "@types/json-schema@*", "@types/json-schema@^7.0.8": 48 | version "7.0.9" 49 | resolved "https://registry.yarnpkg.com/@types/json-schema/-/json-schema-7.0.9.tgz#97edc9037ea0c38585320b28964dde3b39e4660d" 50 | integrity sha512-qcUXuemtEu+E5wZSJHNxUXeCZhAfXKQ41D+duX+VYPde7xyEVZci+/oXKJL13tnRs9lR2pr4fod59GT6/X1/yQ== 51 | 52 | "@types/minimist@^1.2.2": 53 | version "1.2.2" 54 | resolved "https://registry.yarnpkg.com/@types/minimist/-/minimist-1.2.2.tgz#ee771e2ba4b3dc5b372935d549fd9617bf345b8c" 55 | integrity sha512-jhuKLIRrhvCPLqwPcx6INqmKeiA5EWrsCOPhrlFSrbrmU4ZMPjj5Ul/oLCMDO98XRUIwVm78xICz4EPCektzeQ== 56 | 57 | "@types/node@*": 58 | version "17.0.13" 59 | resolved "https://registry.yarnpkg.com/@types/node/-/node-17.0.13.tgz#5ed7ed7c662948335fcad6c412bb42d99ea754e3" 60 | integrity sha512-Y86MAxASe25hNzlDbsviXl8jQHb0RDvKt4c40ZJQ1Don0AAL0STLZSs4N+6gLEO55pedy7r2cLwS+ZDxPm/2Bw== 61 | 62 | "@types/normalize-package-data@^2.4.0": 63 | version "2.4.1" 64 | resolved "https://registry.yarnpkg.com/@types/normalize-package-data/-/normalize-package-data-2.4.1.tgz#d3357479a0fdfdd5907fe67e17e0a85c906e1301" 65 | integrity sha512-Gj7cI7z+98M282Tqmp2K5EIsoouUEzbBJhQQzDE3jSIRk6r9gsz0oUokqIUR4u1R3dMHo0pDHM7sNOHyhulypw== 66 | 67 | "@webassemblyjs/ast@1.11.1": 68 | version "1.11.1" 69 | resolved "https://registry.yarnpkg.com/@webassemblyjs/ast/-/ast-1.11.1.tgz#2bfd767eae1a6996f432ff7e8d7fc75679c0b6a7" 70 | integrity sha512-ukBh14qFLjxTQNTXocdyksN5QdM28S1CxHt2rdskFyL+xFV7VremuBLVbmCePj+URalXBENx/9Lm7lnhihtCSw== 71 | dependencies: 72 | "@webassemblyjs/helper-numbers" "1.11.1" 73 | "@webassemblyjs/helper-wasm-bytecode" "1.11.1" 74 | 75 | "@webassemblyjs/floating-point-hex-parser@1.11.1": 76 | version "1.11.1" 77 | resolved "https://registry.yarnpkg.com/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.11.1.tgz#f6c61a705f0fd7a6aecaa4e8198f23d9dc179e4f" 78 | integrity sha512-iGRfyc5Bq+NnNuX8b5hwBrRjzf0ocrJPI6GWFodBFzmFnyvrQ83SHKhmilCU/8Jv67i4GJZBMhEzltxzcNagtQ== 79 | 80 | "@webassemblyjs/helper-api-error@1.11.1": 81 | version "1.11.1" 82 | resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-api-error/-/helper-api-error-1.11.1.tgz#1a63192d8788e5c012800ba6a7a46c705288fd16" 83 | integrity sha512-RlhS8CBCXfRUR/cwo2ho9bkheSXG0+NwooXcc3PAILALf2QLdFyj7KGsKRbVc95hZnhnERon4kW/D3SZpp6Tcg== 84 | 85 | "@webassemblyjs/helper-buffer@1.11.1": 86 | version "1.11.1" 87 | resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-buffer/-/helper-buffer-1.11.1.tgz#832a900eb444884cde9a7cad467f81500f5e5ab5" 88 | integrity sha512-gwikF65aDNeeXa8JxXa2BAk+REjSyhrNC9ZwdT0f8jc4dQQeDQ7G4m0f2QCLPJiMTTO6wfDmRmj/pW0PsUvIcA== 89 | 90 | "@webassemblyjs/helper-numbers@1.11.1": 91 | version "1.11.1" 92 | resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-numbers/-/helper-numbers-1.11.1.tgz#64d81da219fbbba1e3bd1bfc74f6e8c4e10a62ae" 93 | integrity sha512-vDkbxiB8zfnPdNK9Rajcey5C0w+QJugEglN0of+kmO8l7lDb77AnlKYQF7aarZuCrv+l0UvqL+68gSDr3k9LPQ== 94 | dependencies: 95 | "@webassemblyjs/floating-point-hex-parser" "1.11.1" 96 | "@webassemblyjs/helper-api-error" "1.11.1" 97 | "@xtuc/long" "4.2.2" 98 | 99 | "@webassemblyjs/helper-wasm-bytecode@1.11.1": 100 | version "1.11.1" 101 | resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.11.1.tgz#f328241e41e7b199d0b20c18e88429c4433295e1" 102 | integrity sha512-PvpoOGiJwXeTrSf/qfudJhwlvDQxFgelbMqtq52WWiXC6Xgg1IREdngmPN3bs4RoO83PnL/nFrxucXj1+BX62Q== 103 | 104 | "@webassemblyjs/helper-wasm-section@1.11.1": 105 | version "1.11.1" 106 | resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.11.1.tgz#21ee065a7b635f319e738f0dd73bfbda281c097a" 107 | integrity sha512-10P9No29rYX1j7F3EVPX3JvGPQPae+AomuSTPiF9eBQeChHI6iqjMIwR9JmOJXwpnn/oVGDk7I5IlskuMwU/pg== 108 | dependencies: 109 | "@webassemblyjs/ast" "1.11.1" 110 | "@webassemblyjs/helper-buffer" "1.11.1" 111 | "@webassemblyjs/helper-wasm-bytecode" "1.11.1" 112 | "@webassemblyjs/wasm-gen" "1.11.1" 113 | 114 | "@webassemblyjs/ieee754@1.11.1": 115 | version "1.11.1" 116 | resolved "https://registry.yarnpkg.com/@webassemblyjs/ieee754/-/ieee754-1.11.1.tgz#963929e9bbd05709e7e12243a099180812992614" 117 | integrity sha512-hJ87QIPtAMKbFq6CGTkZYJivEwZDbQUgYd3qKSadTNOhVY7p+gfP6Sr0lLRVTaG1JjFj+r3YchoqRYxNH3M0GQ== 118 | dependencies: 119 | "@xtuc/ieee754" "^1.2.0" 120 | 121 | "@webassemblyjs/leb128@1.11.1": 122 | version "1.11.1" 123 | resolved "https://registry.yarnpkg.com/@webassemblyjs/leb128/-/leb128-1.11.1.tgz#ce814b45574e93d76bae1fb2644ab9cdd9527aa5" 124 | integrity sha512-BJ2P0hNZ0u+Th1YZXJpzW6miwqQUGcIHT1G/sf72gLVD9DZ5AdYTqPNbHZh6K1M5VmKvFXwGSWZADz+qBWxeRw== 125 | dependencies: 126 | "@xtuc/long" "4.2.2" 127 | 128 | "@webassemblyjs/utf8@1.11.1": 129 | version "1.11.1" 130 | resolved "https://registry.yarnpkg.com/@webassemblyjs/utf8/-/utf8-1.11.1.tgz#d1f8b764369e7c6e6bae350e854dec9a59f0a3ff" 131 | integrity sha512-9kqcxAEdMhiwQkHpkNiorZzqpGrodQQ2IGrHHxCy+Ozng0ofyMA0lTqiLkVs1uzTRejX+/O0EOT7KxqVPuXosQ== 132 | 133 | "@webassemblyjs/wasm-edit@1.11.1": 134 | version "1.11.1" 135 | resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-edit/-/wasm-edit-1.11.1.tgz#ad206ebf4bf95a058ce9880a8c092c5dec8193d6" 136 | integrity sha512-g+RsupUC1aTHfR8CDgnsVRVZFJqdkFHpsHMfJuWQzWU3tvnLC07UqHICfP+4XyL2tnr1amvl1Sdp06TnYCmVkA== 137 | dependencies: 138 | "@webassemblyjs/ast" "1.11.1" 139 | "@webassemblyjs/helper-buffer" "1.11.1" 140 | "@webassemblyjs/helper-wasm-bytecode" "1.11.1" 141 | "@webassemblyjs/helper-wasm-section" "1.11.1" 142 | "@webassemblyjs/wasm-gen" "1.11.1" 143 | "@webassemblyjs/wasm-opt" "1.11.1" 144 | "@webassemblyjs/wasm-parser" "1.11.1" 145 | "@webassemblyjs/wast-printer" "1.11.1" 146 | 147 | "@webassemblyjs/wasm-gen@1.11.1": 148 | version "1.11.1" 149 | resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-gen/-/wasm-gen-1.11.1.tgz#86c5ea304849759b7d88c47a32f4f039ae3c8f76" 150 | integrity sha512-F7QqKXwwNlMmsulj6+O7r4mmtAlCWfO/0HdgOxSklZfQcDu0TpLiD1mRt/zF25Bk59FIjEuGAIyn5ei4yMfLhA== 151 | dependencies: 152 | "@webassemblyjs/ast" "1.11.1" 153 | "@webassemblyjs/helper-wasm-bytecode" "1.11.1" 154 | "@webassemblyjs/ieee754" "1.11.1" 155 | "@webassemblyjs/leb128" "1.11.1" 156 | "@webassemblyjs/utf8" "1.11.1" 157 | 158 | "@webassemblyjs/wasm-opt@1.11.1": 159 | version "1.11.1" 160 | resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-opt/-/wasm-opt-1.11.1.tgz#657b4c2202f4cf3b345f8a4c6461c8c2418985f2" 161 | integrity sha512-VqnkNqnZlU5EB64pp1l7hdm3hmQw7Vgqa0KF/KCNO9sIpI6Fk6brDEiX+iCOYrvMuBWDws0NkTOxYEb85XQHHw== 162 | dependencies: 163 | "@webassemblyjs/ast" "1.11.1" 164 | "@webassemblyjs/helper-buffer" "1.11.1" 165 | "@webassemblyjs/wasm-gen" "1.11.1" 166 | "@webassemblyjs/wasm-parser" "1.11.1" 167 | 168 | "@webassemblyjs/wasm-parser@1.11.1": 169 | version "1.11.1" 170 | resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-parser/-/wasm-parser-1.11.1.tgz#86ca734534f417e9bd3c67c7a1c75d8be41fb199" 171 | integrity sha512-rrBujw+dJu32gYB7/Lup6UhdkPx9S9SnobZzRVL7VcBH9Bt9bCBLEuX/YXOOtBsOZ4NQrRykKhffRWHvigQvOA== 172 | dependencies: 173 | "@webassemblyjs/ast" "1.11.1" 174 | "@webassemblyjs/helper-api-error" "1.11.1" 175 | "@webassemblyjs/helper-wasm-bytecode" "1.11.1" 176 | "@webassemblyjs/ieee754" "1.11.1" 177 | "@webassemblyjs/leb128" "1.11.1" 178 | "@webassemblyjs/utf8" "1.11.1" 179 | 180 | "@webassemblyjs/wast-printer@1.11.1": 181 | version "1.11.1" 182 | resolved "https://registry.yarnpkg.com/@webassemblyjs/wast-printer/-/wast-printer-1.11.1.tgz#d0c73beda8eec5426f10ae8ef55cee5e7084c2f0" 183 | integrity sha512-IQboUWM4eKzWW+N/jij2sRatKMh99QEelo3Eb2q0qXkvPRISAj8Qxtmw5itwqK+TTkBuUIE45AxYPToqPtL5gg== 184 | dependencies: 185 | "@webassemblyjs/ast" "1.11.1" 186 | "@xtuc/long" "4.2.2" 187 | 188 | "@xtuc/ieee754@^1.2.0": 189 | version "1.2.0" 190 | resolved "https://registry.yarnpkg.com/@xtuc/ieee754/-/ieee754-1.2.0.tgz#eef014a3145ae477a1cbc00cd1e552336dceb790" 191 | integrity sha512-DX8nKgqcGwsc0eJSqYt5lwP4DH5FlHnmuWWBRy7X0NcaGR0ZtuyeESgMwTYVEtxmsNGY+qit4QYT/MIYTOTPeA== 192 | 193 | "@xtuc/long@4.2.2": 194 | version "4.2.2" 195 | resolved "https://registry.yarnpkg.com/@xtuc/long/-/long-4.2.2.tgz#d291c6a4e97989b5c61d9acf396ae4fe133a718d" 196 | integrity sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ== 197 | 198 | acorn-import-assertions@^1.7.6: 199 | version "1.8.0" 200 | resolved "https://registry.yarnpkg.com/acorn-import-assertions/-/acorn-import-assertions-1.8.0.tgz#ba2b5939ce62c238db6d93d81c9b111b29b855e9" 201 | integrity sha512-m7VZ3jwz4eK6A4Vtt8Ew1/mNbP24u0FhdyfA7fSvnJR6LMdfOYnmuIrrJAgrYfYJ10F/otaHTtrtrtmHdMNzEw== 202 | 203 | acorn@^8.4.1: 204 | version "8.7.0" 205 | resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.7.0.tgz#90951fde0f8f09df93549481e5fc141445b791cf" 206 | integrity sha512-V/LGr1APy+PXIwKebEWrkZPwoeoF+w1jiOBUmuxuiUIaOHtob8Qc9BTrYo7VuI5fR8tqsy+buA2WFooR5olqvQ== 207 | 208 | ajv-keywords@^3.5.2: 209 | version "3.5.2" 210 | resolved "https://registry.yarnpkg.com/ajv-keywords/-/ajv-keywords-3.5.2.tgz#31f29da5ab6e00d1c2d329acf7b5929614d5014d" 211 | integrity sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ== 212 | 213 | ajv@^6.12.5: 214 | version "6.12.6" 215 | resolved "https://registry.yarnpkg.com/ajv/-/ajv-6.12.6.tgz#baf5a62e802b07d977034586f8c3baf5adf26df4" 216 | integrity sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g== 217 | dependencies: 218 | fast-deep-equal "^3.1.1" 219 | fast-json-stable-stringify "^2.0.0" 220 | json-schema-traverse "^0.4.1" 221 | uri-js "^4.2.2" 222 | 223 | ansi-styles@^3.2.1: 224 | version "3.2.1" 225 | resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-3.2.1.tgz#41fbb20243e50b12be0f04b8dedbf07520ce841d" 226 | integrity sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA== 227 | dependencies: 228 | color-convert "^1.9.0" 229 | 230 | arrify@^1.0.1: 231 | version "1.0.1" 232 | resolved "https://registry.yarnpkg.com/arrify/-/arrify-1.0.1.tgz#898508da2226f380df904728456849c1501a4b0d" 233 | integrity sha1-iYUI2iIm84DfkEcoRWhJwVAaSw0= 234 | 235 | browserslist@^4.14.5: 236 | version "4.19.1" 237 | resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.19.1.tgz#4ac0435b35ab655896c31d53018b6dd5e9e4c9a3" 238 | integrity sha512-u2tbbG5PdKRTUoctO3NBD8FQ5HdPh1ZXPHzp1rwaa5jTc+RV9/+RlWiAIKmjRPQF+xbGM9Kklj5bZQFa2s/38A== 239 | dependencies: 240 | caniuse-lite "^1.0.30001286" 241 | electron-to-chromium "^1.4.17" 242 | escalade "^3.1.1" 243 | node-releases "^2.0.1" 244 | picocolors "^1.0.0" 245 | 246 | buffer-from@^1.0.0: 247 | version "1.1.2" 248 | resolved "https://registry.yarnpkg.com/buffer-from/-/buffer-from-1.1.2.tgz#2b146a6fd72e80b4f55d255f35ed59a3a9a41bd5" 249 | integrity sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ== 250 | 251 | camelcase-keys@^7.0.0: 252 | version "7.0.1" 253 | resolved "https://registry.yarnpkg.com/camelcase-keys/-/camelcase-keys-7.0.1.tgz#5a57e6dfb3f6c7929dad15599ee4476a7e9a3b2d" 254 | integrity sha512-P331lEls98pW8JLyodNWfzuz91BEDVA4VpW2/SwXnyv2K495tq1N777xzDbFgnEigfA7UIY0xa6PwR/H9jijjA== 255 | dependencies: 256 | camelcase "^6.2.0" 257 | map-obj "^4.1.0" 258 | quick-lru "^5.1.1" 259 | type-fest "^1.2.1" 260 | 261 | camelcase@^6.2.0: 262 | version "6.3.0" 263 | resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-6.3.0.tgz#5685b95eb209ac9c0c177467778c9c84df58ba9a" 264 | integrity sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA== 265 | 266 | caniuse-lite@^1.0.30001286: 267 | version "1.0.30001303" 268 | resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001303.tgz#9b168e4f43ccfc372b86f4bc5a551d9b909c95c9" 269 | integrity sha512-/Mqc1oESndUNszJP0kx0UaQU9kEv9nNtJ7Kn8AdA0mNnH8eR1cj0kG+NbNuC1Wq/b21eA8prhKRA3bbkjONegQ== 270 | 271 | chalk@^2.0.0: 272 | version "2.4.2" 273 | resolved "https://registry.yarnpkg.com/chalk/-/chalk-2.4.2.tgz#cd42541677a54333cf541a49108c1432b44c9424" 274 | integrity sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ== 275 | dependencies: 276 | ansi-styles "^3.2.1" 277 | escape-string-regexp "^1.0.5" 278 | supports-color "^5.3.0" 279 | 280 | chrome-trace-event@^1.0.2: 281 | version "1.0.3" 282 | resolved "https://registry.yarnpkg.com/chrome-trace-event/-/chrome-trace-event-1.0.3.tgz#1015eced4741e15d06664a957dbbf50d041e26ac" 283 | integrity sha512-p3KULyQg4S7NIHixdwbGX+nFHkoBiA4YQmyWtjb8XngSKV124nJmRysgAeujbUVb15vh+RvFUfCPqU7rXk+hZg== 284 | 285 | color-convert@^1.9.0: 286 | version "1.9.3" 287 | resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-1.9.3.tgz#bb71850690e1f136567de629d2d5471deda4c1e8" 288 | integrity sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg== 289 | dependencies: 290 | color-name "1.1.3" 291 | 292 | color-name@1.1.3: 293 | version "1.1.3" 294 | resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.3.tgz#a7d0558bd89c42f795dd42328f740831ca53bc25" 295 | integrity sha1-p9BVi9icQveV3UIyj3QIMcpTvCU= 296 | 297 | commander@^2.20.0: 298 | version "2.20.3" 299 | resolved "https://registry.yarnpkg.com/commander/-/commander-2.20.3.tgz#fd485e84c03eb4881c20722ba48035e8531aeb33" 300 | integrity sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ== 301 | 302 | decamelize-keys@^1.1.0: 303 | version "1.1.0" 304 | resolved "https://registry.yarnpkg.com/decamelize-keys/-/decamelize-keys-1.1.0.tgz#d171a87933252807eb3cb61dc1c1445d078df2d9" 305 | integrity sha1-0XGoeTMlKAfrPLYdwcFEXQeN8tk= 306 | dependencies: 307 | decamelize "^1.1.0" 308 | map-obj "^1.0.0" 309 | 310 | decamelize@^1.1.0: 311 | version "1.2.0" 312 | resolved "https://registry.yarnpkg.com/decamelize/-/decamelize-1.2.0.tgz#f6534d15148269b20352e7bee26f501f9a191290" 313 | integrity sha1-9lNNFRSCabIDUue+4m9QH5oZEpA= 314 | 315 | decamelize@^5.0.0: 316 | version "5.0.1" 317 | resolved "https://registry.yarnpkg.com/decamelize/-/decamelize-5.0.1.tgz#db11a92e58c741ef339fb0a2868d8a06a9a7b1e9" 318 | integrity sha512-VfxadyCECXgQlkoEAjeghAr5gY3Hf+IKjKb+X8tGVDtveCjN+USwprd2q3QXBR9T1+x2DG0XZF5/w+7HAtSaXA== 319 | 320 | electron-to-chromium@^1.4.17: 321 | version "1.4.56" 322 | resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.4.56.tgz#f660fd2c6739b341d8922fe3a441a5a2804911a1" 323 | integrity sha512-0k/S0FQqRRpJbX7YUjwCcLZ8D42RqGKtaiq90adXBOYgTIWwLA/g3toO8k9yEpqU8iC4QyaWYYWSTBIna8WV4g== 324 | 325 | enhanced-resolve@^5.8.3: 326 | version "5.8.3" 327 | resolved "https://registry.yarnpkg.com/enhanced-resolve/-/enhanced-resolve-5.8.3.tgz#6d552d465cce0423f5b3d718511ea53826a7b2f0" 328 | integrity sha512-EGAbGvH7j7Xt2nc0E7D99La1OiEs8LnyimkRgwExpUMScN6O+3x9tIWs7PLQZVNx4YD+00skHXPXi1yQHpAmZA== 329 | dependencies: 330 | graceful-fs "^4.2.4" 331 | tapable "^2.2.0" 332 | 333 | error-ex@^1.3.1: 334 | version "1.3.2" 335 | resolved "https://registry.yarnpkg.com/error-ex/-/error-ex-1.3.2.tgz#b4ac40648107fdcdcfae242f428bea8a14d4f1bf" 336 | integrity sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g== 337 | dependencies: 338 | is-arrayish "^0.2.1" 339 | 340 | es-module-lexer@^0.9.0: 341 | version "0.9.3" 342 | resolved "https://registry.yarnpkg.com/es-module-lexer/-/es-module-lexer-0.9.3.tgz#6f13db00cc38417137daf74366f535c8eb438f19" 343 | integrity sha512-1HQ2M2sPtxwnvOvT1ZClHyQDiggdNjURWpY2we6aMKCQiUVxTmVs2UYPLIrD84sS+kMdUwfBSylbJPwNnBrnHQ== 344 | 345 | escalade@^3.1.1: 346 | version "3.1.1" 347 | resolved "https://registry.yarnpkg.com/escalade/-/escalade-3.1.1.tgz#d8cfdc7000965c5a0174b4a82eaa5c0552742e40" 348 | integrity sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw== 349 | 350 | escape-string-regexp@^1.0.5: 351 | version "1.0.5" 352 | resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz#1b61c0562190a8dff6ae3bb2cf0200ca130b86d4" 353 | integrity sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ= 354 | 355 | eslint-scope@5.1.1: 356 | version "5.1.1" 357 | resolved "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-5.1.1.tgz#e786e59a66cb92b3f6c1fb0d508aab174848f48c" 358 | integrity sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw== 359 | dependencies: 360 | esrecurse "^4.3.0" 361 | estraverse "^4.1.1" 362 | 363 | esrecurse@^4.3.0: 364 | version "4.3.0" 365 | resolved "https://registry.yarnpkg.com/esrecurse/-/esrecurse-4.3.0.tgz#7ad7964d679abb28bee72cec63758b1c5d2c9921" 366 | integrity sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag== 367 | dependencies: 368 | estraverse "^5.2.0" 369 | 370 | estraverse@^4.1.1: 371 | version "4.3.0" 372 | resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-4.3.0.tgz#398ad3f3c5a24948be7725e83d11a7de28cdbd1d" 373 | integrity sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw== 374 | 375 | estraverse@^5.2.0: 376 | version "5.3.0" 377 | resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-5.3.0.tgz#2eea5290702f26ab8fe5370370ff86c965d21123" 378 | integrity sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA== 379 | 380 | events@^3.2.0: 381 | version "3.3.0" 382 | resolved "https://registry.yarnpkg.com/events/-/events-3.3.0.tgz#31a95ad0a924e2d2c419a813aeb2c4e878ea7400" 383 | integrity sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q== 384 | 385 | fast-deep-equal@^3.1.1: 386 | version "3.1.3" 387 | resolved "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz#3a7d56b559d6cbc3eb512325244e619a65c6c525" 388 | integrity sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q== 389 | 390 | fast-json-stable-stringify@^2.0.0: 391 | version "2.1.0" 392 | resolved "https://registry.yarnpkg.com/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz#874bf69c6f404c2b5d99c481341399fd55892633" 393 | integrity sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw== 394 | 395 | find-up@^5.0.0: 396 | version "5.0.0" 397 | resolved "https://registry.yarnpkg.com/find-up/-/find-up-5.0.0.tgz#4c92819ecb7083561e4f4a240a86be5198f536fc" 398 | integrity sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng== 399 | dependencies: 400 | locate-path "^6.0.0" 401 | path-exists "^4.0.0" 402 | 403 | function-bind@^1.1.1: 404 | version "1.1.1" 405 | resolved "https://registry.yarnpkg.com/function-bind/-/function-bind-1.1.1.tgz#a56899d3ea3c9bab874bb9773b7c5ede92f4895d" 406 | integrity sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A== 407 | 408 | glob-to-regexp@^0.4.1: 409 | version "0.4.1" 410 | resolved "https://registry.yarnpkg.com/glob-to-regexp/-/glob-to-regexp-0.4.1.tgz#c75297087c851b9a578bd217dd59a92f59fe546e" 411 | integrity sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw== 412 | 413 | graceful-fs@^4.1.2, graceful-fs@^4.2.4, graceful-fs@^4.2.9: 414 | version "4.2.9" 415 | resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.9.tgz#041b05df45755e587a24942279b9d113146e1c96" 416 | integrity sha512-NtNxqUcXgpW2iMrfqSfR73Glt39K+BLwWsPs94yR63v45T0Wbej7eRmL5cWfwEgqXnmjQp3zaJTshdRW/qC2ZQ== 417 | 418 | hard-rejection@^2.1.0: 419 | version "2.1.0" 420 | resolved "https://registry.yarnpkg.com/hard-rejection/-/hard-rejection-2.1.0.tgz#1c6eda5c1685c63942766d79bb40ae773cecd883" 421 | integrity sha512-VIZB+ibDhx7ObhAe7OVtoEbuP4h/MuOTHJ+J8h/eBXotJYl0fBgR72xDFCKgIh22OJZIOVNxBMWuhAr10r8HdA== 422 | 423 | has-flag@^3.0.0: 424 | version "3.0.0" 425 | resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-3.0.0.tgz#b5d454dc2199ae225699f3467e5a07f3b955bafd" 426 | integrity sha1-tdRU3CGZriJWmfNGfloH87lVuv0= 427 | 428 | has-flag@^4.0.0: 429 | version "4.0.0" 430 | resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-4.0.0.tgz#944771fd9c81c81265c4d6941860da06bb59479b" 431 | integrity sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ== 432 | 433 | has@^1.0.3: 434 | version "1.0.3" 435 | resolved "https://registry.yarnpkg.com/has/-/has-1.0.3.tgz#722d7cbfc1f6aa8241f16dd814e011e1f41e8796" 436 | integrity sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw== 437 | dependencies: 438 | function-bind "^1.1.1" 439 | 440 | hosted-git-info@^4.0.1: 441 | version "4.1.0" 442 | resolved "https://registry.yarnpkg.com/hosted-git-info/-/hosted-git-info-4.1.0.tgz#827b82867e9ff1c8d0c4d9d53880397d2c86d224" 443 | integrity sha512-kyCuEOWjJqZuDbRHzL8V93NzQhwIB71oFWSyzVo+KPZI+pnQPPxucdkrOZvkLRnrf5URsQM+IJ09Dw29cRALIA== 444 | dependencies: 445 | lru-cache "^6.0.0" 446 | 447 | indent-string@^5.0.0: 448 | version "5.0.0" 449 | resolved "https://registry.yarnpkg.com/indent-string/-/indent-string-5.0.0.tgz#4fd2980fccaf8622d14c64d694f4cf33c81951a5" 450 | integrity sha512-m6FAo/spmsW2Ab2fU35JTYwtOKa2yAwXSwgjSv1TJzh4Mh7mC3lzAOVLBprb72XsTrgkEIsl7YrFNAiDiRhIGg== 451 | 452 | is-arrayish@^0.2.1: 453 | version "0.2.1" 454 | resolved "https://registry.yarnpkg.com/is-arrayish/-/is-arrayish-0.2.1.tgz#77c99840527aa8ecb1a8ba697b80645a7a926a9d" 455 | integrity sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0= 456 | 457 | is-core-module@^2.5.0: 458 | version "2.8.1" 459 | resolved "https://registry.yarnpkg.com/is-core-module/-/is-core-module-2.8.1.tgz#f59fdfca701d5879d0a6b100a40aa1560ce27211" 460 | integrity sha512-SdNCUs284hr40hFTFP6l0IfZ/RSrMXF3qgoRHd3/79unUTvrFO/JoXwkGm+5J/Oe3E/b5GsnG330uUNgRpu1PA== 461 | dependencies: 462 | has "^1.0.3" 463 | 464 | is-plain-obj@^1.1.0: 465 | version "1.1.0" 466 | resolved "https://registry.yarnpkg.com/is-plain-obj/-/is-plain-obj-1.1.0.tgz#71a50c8429dfca773c92a390a4a03b39fcd51d3e" 467 | integrity sha1-caUMhCnfync8kqOQpKA7OfzVHT4= 468 | 469 | jest-worker@^27.4.1: 470 | version "27.4.6" 471 | resolved "https://registry.yarnpkg.com/jest-worker/-/jest-worker-27.4.6.tgz#5d2d93db419566cb680752ca0792780e71b3273e" 472 | integrity sha512-gHWJF/6Xi5CTG5QCvROr6GcmpIqNYpDJyc8A1h/DyXqH1tD6SnRCM0d3U5msV31D2LB/U+E0M+W4oyvKV44oNw== 473 | dependencies: 474 | "@types/node" "*" 475 | merge-stream "^2.0.0" 476 | supports-color "^8.0.0" 477 | 478 | js-tokens@^4.0.0: 479 | version "4.0.0" 480 | resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-4.0.0.tgz#19203fb59991df98e3a287050d4647cdeaf32499" 481 | integrity sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ== 482 | 483 | json-parse-better-errors@^1.0.2: 484 | version "1.0.2" 485 | resolved "https://registry.yarnpkg.com/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz#bb867cfb3450e69107c131d1c514bab3dc8bcaa9" 486 | integrity sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw== 487 | 488 | json-parse-even-better-errors@^2.3.0: 489 | version "2.3.1" 490 | resolved "https://registry.yarnpkg.com/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz#7c47805a94319928e05777405dc12e1f7a4ee02d" 491 | integrity sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w== 492 | 493 | json-schema-traverse@^0.4.1: 494 | version "0.4.1" 495 | resolved "https://registry.yarnpkg.com/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz#69f6a87d9513ab8bb8fe63bdb0979c448e684660" 496 | integrity sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg== 497 | 498 | kind-of@^6.0.3: 499 | version "6.0.3" 500 | resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-6.0.3.tgz#07c05034a6c349fa06e24fa35aa76db4580ce4dd" 501 | integrity sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw== 502 | 503 | lines-and-columns@^1.1.6: 504 | version "1.2.4" 505 | resolved "https://registry.yarnpkg.com/lines-and-columns/-/lines-and-columns-1.2.4.tgz#eca284f75d2965079309dc0ad9255abb2ebc1632" 506 | integrity sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg== 507 | 508 | loader-runner@^4.2.0: 509 | version "4.2.0" 510 | resolved "https://registry.yarnpkg.com/loader-runner/-/loader-runner-4.2.0.tgz#d7022380d66d14c5fb1d496b89864ebcfd478384" 511 | integrity sha512-92+huvxMvYlMzMt0iIOukcwYBFpkYJdpl2xsZ7LrlayO7E8SOv+JJUEK17B/dJIHAOLMfh2dZZ/Y18WgmGtYNw== 512 | 513 | locate-path@^6.0.0: 514 | version "6.0.0" 515 | resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-6.0.0.tgz#55321eb309febbc59c4801d931a72452a681d286" 516 | integrity sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw== 517 | dependencies: 518 | p-locate "^5.0.0" 519 | 520 | lru-cache@^6.0.0: 521 | version "6.0.0" 522 | resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-6.0.0.tgz#6d6fe6570ebd96aaf90fcad1dafa3b2566db3a94" 523 | integrity sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA== 524 | dependencies: 525 | yallist "^4.0.0" 526 | 527 | map-obj@^1.0.0: 528 | version "1.0.1" 529 | resolved "https://registry.yarnpkg.com/map-obj/-/map-obj-1.0.1.tgz#d933ceb9205d82bdcf4886f6742bdc2b4dea146d" 530 | integrity sha1-2TPOuSBdgr3PSIb2dCvcK03qFG0= 531 | 532 | map-obj@^4.1.0: 533 | version "4.3.0" 534 | resolved "https://registry.yarnpkg.com/map-obj/-/map-obj-4.3.0.tgz#9304f906e93faae70880da102a9f1df0ea8bb05a" 535 | integrity sha512-hdN1wVrZbb29eBGiGjJbeP8JbKjq1urkHJ/LIP/NY48MZ1QVXUsQBV1G1zvYFHn1XE06cwjBsOI2K3Ulnj1YXQ== 536 | 537 | meow@^10.1.2: 538 | version "10.1.2" 539 | resolved "https://registry.yarnpkg.com/meow/-/meow-10.1.2.tgz#62951cb69afa69594142c8250806bc30a3912e4d" 540 | integrity sha512-zbuAlN+V/sXlbGchNS9WTWjUzeamwMt/BApKCJi7B0QyZstZaMx0n4Unll/fg0njGtMdC9UP5SAscvOCLYdM+Q== 541 | dependencies: 542 | "@types/minimist" "^1.2.2" 543 | camelcase-keys "^7.0.0" 544 | decamelize "^5.0.0" 545 | decamelize-keys "^1.1.0" 546 | hard-rejection "^2.1.0" 547 | minimist-options "4.1.0" 548 | normalize-package-data "^3.0.2" 549 | read-pkg-up "^8.0.0" 550 | redent "^4.0.0" 551 | trim-newlines "^4.0.2" 552 | type-fest "^1.2.2" 553 | yargs-parser "^20.2.9" 554 | 555 | merge-stream@^2.0.0: 556 | version "2.0.0" 557 | resolved "https://registry.yarnpkg.com/merge-stream/-/merge-stream-2.0.0.tgz#52823629a14dd00c9770fb6ad47dc6310f2c1f60" 558 | integrity sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w== 559 | 560 | mime-db@1.51.0: 561 | version "1.51.0" 562 | resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.51.0.tgz#d9ff62451859b18342d960850dc3cfb77e63fb0c" 563 | integrity sha512-5y8A56jg7XVQx2mbv1lu49NR4dokRnhZYTtL+KGfaa27uq4pSTXkwQkFJl4pkRMyNFz/EtYDSkiiEHx3F7UN6g== 564 | 565 | mime-types@^2.1.27: 566 | version "2.1.34" 567 | resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.34.tgz#5a712f9ec1503511a945803640fafe09d3793c24" 568 | integrity sha512-6cP692WwGIs9XXdOO4++N+7qjqv0rqxxVvJ3VHPh/Sc9mVZcQP+ZGhkKiTvWMQRr2tbHkJP/Yn7Y0npb3ZBs4A== 569 | dependencies: 570 | mime-db "1.51.0" 571 | 572 | min-indent@^1.0.1: 573 | version "1.0.1" 574 | resolved "https://registry.yarnpkg.com/min-indent/-/min-indent-1.0.1.tgz#a63f681673b30571fbe8bc25686ae746eefa9869" 575 | integrity sha512-I9jwMn07Sy/IwOj3zVkVik2JTvgpaykDZEigL6Rx6N9LbMywwUSMtxET+7lVoDLLd3O3IXwJwvuuns8UB/HeAg== 576 | 577 | minimist-options@4.1.0: 578 | version "4.1.0" 579 | resolved "https://registry.yarnpkg.com/minimist-options/-/minimist-options-4.1.0.tgz#c0655713c53a8a2ebd77ffa247d342c40f010619" 580 | integrity sha512-Q4r8ghd80yhO/0j1O3B2BjweX3fiHg9cdOwjJd2J76Q135c+NDxGCqdYKQ1SKBuFfgWbAUzBfvYjPUEeNgqN1A== 581 | dependencies: 582 | arrify "^1.0.1" 583 | is-plain-obj "^1.1.0" 584 | kind-of "^6.0.3" 585 | 586 | neo-async@^2.6.2: 587 | version "2.6.2" 588 | resolved "https://registry.yarnpkg.com/neo-async/-/neo-async-2.6.2.tgz#b4aafb93e3aeb2d8174ca53cf163ab7d7308305f" 589 | integrity sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw== 590 | 591 | node-releases@^2.0.1: 592 | version "2.0.1" 593 | resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-2.0.1.tgz#3d1d395f204f1f2f29a54358b9fb678765ad2fc5" 594 | integrity sha512-CqyzN6z7Q6aMeF/ktcMVTzhAHCEpf8SOarwpzpf8pNBY2k5/oM34UHldUwp8VKI7uxct2HxSRdJjBaZeESzcxA== 595 | 596 | normalize-package-data@^3.0.2: 597 | version "3.0.3" 598 | resolved "https://registry.yarnpkg.com/normalize-package-data/-/normalize-package-data-3.0.3.tgz#dbcc3e2da59509a0983422884cd172eefdfa525e" 599 | integrity sha512-p2W1sgqij3zMMyRC067Dg16bfzVH+w7hyegmpIvZ4JNjqtGOVAIvLmjBx3yP7YTe9vKJgkoNOPjwQGogDoMXFA== 600 | dependencies: 601 | hosted-git-info "^4.0.1" 602 | is-core-module "^2.5.0" 603 | semver "^7.3.4" 604 | validate-npm-package-license "^3.0.1" 605 | 606 | p-limit@^3.0.2: 607 | version "3.1.0" 608 | resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-3.1.0.tgz#e1daccbe78d0d1388ca18c64fea38e3e57e3706b" 609 | integrity sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ== 610 | dependencies: 611 | yocto-queue "^0.1.0" 612 | 613 | p-locate@^5.0.0: 614 | version "5.0.0" 615 | resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-5.0.0.tgz#83c8315c6785005e3bd021839411c9e110e6d834" 616 | integrity sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw== 617 | dependencies: 618 | p-limit "^3.0.2" 619 | 620 | parse-json@^5.2.0: 621 | version "5.2.0" 622 | resolved "https://registry.yarnpkg.com/parse-json/-/parse-json-5.2.0.tgz#c76fc66dee54231c962b22bcc8a72cf2f99753cd" 623 | integrity sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg== 624 | dependencies: 625 | "@babel/code-frame" "^7.0.0" 626 | error-ex "^1.3.1" 627 | json-parse-even-better-errors "^2.3.0" 628 | lines-and-columns "^1.1.6" 629 | 630 | path-exists@^4.0.0: 631 | version "4.0.0" 632 | resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-4.0.0.tgz#513bdbe2d3b95d7762e8c1137efa195c6c61b5b3" 633 | integrity sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w== 634 | 635 | picocolors@^1.0.0: 636 | version "1.0.0" 637 | resolved "https://registry.yarnpkg.com/picocolors/-/picocolors-1.0.0.tgz#cb5bdc74ff3f51892236eaf79d68bc44564ab81c" 638 | integrity sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ== 639 | 640 | punycode@^2.1.0: 641 | version "2.1.1" 642 | resolved "https://registry.yarnpkg.com/punycode/-/punycode-2.1.1.tgz#b58b010ac40c22c5657616c8d2c2c02c7bf479ec" 643 | integrity sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A== 644 | 645 | quick-lru@^5.1.1: 646 | version "5.1.1" 647 | resolved "https://registry.yarnpkg.com/quick-lru/-/quick-lru-5.1.1.tgz#366493e6b3e42a3a6885e2e99d18f80fb7a8c932" 648 | integrity sha512-WuyALRjWPDGtt/wzJiadO5AXY+8hZ80hVpe6MyivgraREW751X3SbhRvG3eLKOYN+8VEvqLcf3wdnt44Z4S4SA== 649 | 650 | randombytes@^2.1.0: 651 | version "2.1.0" 652 | resolved "https://registry.yarnpkg.com/randombytes/-/randombytes-2.1.0.tgz#df6f84372f0270dc65cdf6291349ab7a473d4f2a" 653 | integrity sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ== 654 | dependencies: 655 | safe-buffer "^5.1.0" 656 | 657 | read-pkg-up@^8.0.0: 658 | version "8.0.0" 659 | resolved "https://registry.yarnpkg.com/read-pkg-up/-/read-pkg-up-8.0.0.tgz#72f595b65e66110f43b052dd9af4de6b10534670" 660 | integrity sha512-snVCqPczksT0HS2EC+SxUndvSzn6LRCwpfSvLrIfR5BKDQQZMaI6jPRC9dYvYFDRAuFEAnkwww8kBBNE/3VvzQ== 661 | dependencies: 662 | find-up "^5.0.0" 663 | read-pkg "^6.0.0" 664 | type-fest "^1.0.1" 665 | 666 | read-pkg@^6.0.0: 667 | version "6.0.0" 668 | resolved "https://registry.yarnpkg.com/read-pkg/-/read-pkg-6.0.0.tgz#a67a7d6a1c2b0c3cd6aa2ea521f40c458a4a504c" 669 | integrity sha512-X1Fu3dPuk/8ZLsMhEj5f4wFAF0DWoK7qhGJvgaijocXxBmSToKfbFtqbxMO7bVjNA1dmE5huAzjXj/ey86iw9Q== 670 | dependencies: 671 | "@types/normalize-package-data" "^2.4.0" 672 | normalize-package-data "^3.0.2" 673 | parse-json "^5.2.0" 674 | type-fest "^1.0.1" 675 | 676 | redent@^4.0.0: 677 | version "4.0.0" 678 | resolved "https://registry.yarnpkg.com/redent/-/redent-4.0.0.tgz#0c0ba7caabb24257ab3bb7a4fd95dd1d5c5681f9" 679 | integrity sha512-tYkDkVVtYkSVhuQ4zBgfvciymHaeuel+zFKXShfDnFP5SyVEP7qo70Rf1jTOTCx3vGNAbnEi/xFkcfQVMIBWag== 680 | dependencies: 681 | indent-string "^5.0.0" 682 | strip-indent "^4.0.0" 683 | 684 | safe-buffer@^5.1.0: 685 | version "5.2.1" 686 | resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.2.1.tgz#1eaf9fa9bdb1fdd4ec75f58f9cdb4e6b7827eec6" 687 | integrity sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ== 688 | 689 | schema-utils@^3.1.0, schema-utils@^3.1.1: 690 | version "3.1.1" 691 | resolved "https://registry.yarnpkg.com/schema-utils/-/schema-utils-3.1.1.tgz#bc74c4b6b6995c1d88f76a8b77bea7219e0c8281" 692 | integrity sha512-Y5PQxS4ITlC+EahLuXaY86TXfR7Dc5lw294alXOq86JAHCihAIZfqv8nNCWvaEJvaC51uN9hbLGeV0cFBdH+Fw== 693 | dependencies: 694 | "@types/json-schema" "^7.0.8" 695 | ajv "^6.12.5" 696 | ajv-keywords "^3.5.2" 697 | 698 | semver@^7.3.4: 699 | version "7.3.5" 700 | resolved "https://registry.yarnpkg.com/semver/-/semver-7.3.5.tgz#0b621c879348d8998e4b0e4be94b3f12e6018ef7" 701 | integrity sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ== 702 | dependencies: 703 | lru-cache "^6.0.0" 704 | 705 | serialize-javascript@^6.0.0: 706 | version "6.0.0" 707 | resolved "https://registry.yarnpkg.com/serialize-javascript/-/serialize-javascript-6.0.0.tgz#efae5d88f45d7924141da8b5c3a7a7e663fefeb8" 708 | integrity sha512-Qr3TosvguFt8ePWqsvRfrKyQXIiW+nGbYpy8XK24NQHE83caxWt+mIymTT19DGFbNWNLfEwsrkSmN64lVWB9ag== 709 | dependencies: 710 | randombytes "^2.1.0" 711 | 712 | source-map-support@~0.5.20: 713 | version "0.5.21" 714 | resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.5.21.tgz#04fe7c7f9e1ed2d662233c28cb2b35b9f63f6e4f" 715 | integrity sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w== 716 | dependencies: 717 | buffer-from "^1.0.0" 718 | source-map "^0.6.0" 719 | 720 | source-map@^0.6.0, source-map@^0.6.1: 721 | version "0.6.1" 722 | resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.6.1.tgz#74722af32e9614e9c287a8d0bbde48b5e2f1a263" 723 | integrity sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g== 724 | 725 | source-map@~0.7.2: 726 | version "0.7.3" 727 | resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.7.3.tgz#5302f8169031735226544092e64981f751750383" 728 | integrity sha512-CkCj6giN3S+n9qrYiBTX5gystlENnRW5jZeNLHpe6aue+SrHcG5VYwujhW9s4dY31mEGsxBDrHR6oI69fTXsaQ== 729 | 730 | spdx-correct@^3.0.0: 731 | version "3.1.1" 732 | resolved "https://registry.yarnpkg.com/spdx-correct/-/spdx-correct-3.1.1.tgz#dece81ac9c1e6713e5f7d1b6f17d468fa53d89a9" 733 | integrity sha512-cOYcUWwhCuHCXi49RhFRCyJEK3iPj1Ziz9DpViV3tbZOwXD49QzIN3MpOLJNxh2qwq2lJJZaKMVw9qNi4jTC0w== 734 | dependencies: 735 | spdx-expression-parse "^3.0.0" 736 | spdx-license-ids "^3.0.0" 737 | 738 | spdx-exceptions@^2.1.0: 739 | version "2.3.0" 740 | resolved "https://registry.yarnpkg.com/spdx-exceptions/-/spdx-exceptions-2.3.0.tgz#3f28ce1a77a00372683eade4a433183527a2163d" 741 | integrity sha512-/tTrYOC7PPI1nUAgx34hUpqXuyJG+DTHJTnIULG4rDygi4xu/tfgmq1e1cIRwRzwZgo4NLySi+ricLkZkw4i5A== 742 | 743 | spdx-expression-parse@^3.0.0: 744 | version "3.0.1" 745 | resolved "https://registry.yarnpkg.com/spdx-expression-parse/-/spdx-expression-parse-3.0.1.tgz#cf70f50482eefdc98e3ce0a6833e4a53ceeba679" 746 | integrity sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q== 747 | dependencies: 748 | spdx-exceptions "^2.1.0" 749 | spdx-license-ids "^3.0.0" 750 | 751 | spdx-license-ids@^3.0.0: 752 | version "3.0.11" 753 | resolved "https://registry.yarnpkg.com/spdx-license-ids/-/spdx-license-ids-3.0.11.tgz#50c0d8c40a14ec1bf449bae69a0ea4685a9d9f95" 754 | integrity sha512-Ctl2BrFiM0X3MANYgj3CkygxhRmr9mi6xhejbdO960nF6EDJApTYpn0BQnDKlnNBULKiCN1n3w9EBkHK8ZWg+g== 755 | 756 | strip-indent@^4.0.0: 757 | version "4.0.0" 758 | resolved "https://registry.yarnpkg.com/strip-indent/-/strip-indent-4.0.0.tgz#b41379433dd06f5eae805e21d631e07ee670d853" 759 | integrity sha512-mnVSV2l+Zv6BLpSD/8V87CW/y9EmmbYzGCIavsnsI6/nwn26DwffM/yztm30Z/I2DY9wdS3vXVCMnHDgZaVNoA== 760 | dependencies: 761 | min-indent "^1.0.1" 762 | 763 | supports-color@^5.3.0: 764 | version "5.5.0" 765 | resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-5.5.0.tgz#e2e69a44ac8772f78a1ec0b35b689df6530efc8f" 766 | integrity sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow== 767 | dependencies: 768 | has-flag "^3.0.0" 769 | 770 | supports-color@^8.0.0: 771 | version "8.1.1" 772 | resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-8.1.1.tgz#cd6fc17e28500cff56c1b86c0a7fd4a54a73005c" 773 | integrity sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q== 774 | dependencies: 775 | has-flag "^4.0.0" 776 | 777 | tapable@^2.1.1, tapable@^2.2.0: 778 | version "2.2.1" 779 | resolved "https://registry.yarnpkg.com/tapable/-/tapable-2.2.1.tgz#1967a73ef4060a82f12ab96af86d52fdb76eeca0" 780 | integrity sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ== 781 | 782 | terser-webpack-plugin@^5.1.3: 783 | version "5.3.0" 784 | resolved "https://registry.yarnpkg.com/terser-webpack-plugin/-/terser-webpack-plugin-5.3.0.tgz#21641326486ecf91d8054161c816e464435bae9f" 785 | integrity sha512-LPIisi3Ol4chwAaPP8toUJ3L4qCM1G0wao7L3qNv57Drezxj6+VEyySpPw4B1HSO2Eg/hDY/MNF5XihCAoqnsQ== 786 | dependencies: 787 | jest-worker "^27.4.1" 788 | schema-utils "^3.1.1" 789 | serialize-javascript "^6.0.0" 790 | source-map "^0.6.1" 791 | terser "^5.7.2" 792 | 793 | terser@^5.7.2: 794 | version "5.10.0" 795 | resolved "https://registry.yarnpkg.com/terser/-/terser-5.10.0.tgz#b86390809c0389105eb0a0b62397563096ddafcc" 796 | integrity sha512-AMmF99DMfEDiRJfxfY5jj5wNH/bYO09cniSqhfoyxc8sFoYIgkJy86G04UoZU5VjlpnplVu0K6Tx6E9b5+DlHA== 797 | dependencies: 798 | commander "^2.20.0" 799 | source-map "~0.7.2" 800 | source-map-support "~0.5.20" 801 | 802 | trim-newlines@^4.0.2: 803 | version "4.0.2" 804 | resolved "https://registry.yarnpkg.com/trim-newlines/-/trim-newlines-4.0.2.tgz#d6aaaf6a0df1b4b536d183879a6b939489808c7c" 805 | integrity sha512-GJtWyq9InR/2HRiLZgpIKv+ufIKrVrvjQWEj7PxAXNc5dwbNJkqhAUoAGgzRmULAnoOM5EIpveYd3J2VeSAIew== 806 | 807 | type-fest@^1.0.1, type-fest@^1.2.1, type-fest@^1.2.2: 808 | version "1.4.0" 809 | resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-1.4.0.tgz#e9fb813fe3bf1744ec359d55d1affefa76f14be1" 810 | integrity sha512-yGSza74xk0UG8k+pLh5oeoYirvIiWo5t0/o3zHHAO2tRDiZcxWP7fywNlXhqb6/r6sWvwi+RsyQMWhVLe4BVuA== 811 | 812 | uri-js@^4.2.2: 813 | version "4.4.1" 814 | resolved "https://registry.yarnpkg.com/uri-js/-/uri-js-4.4.1.tgz#9b1a52595225859e55f669d928f88c6c57f2a77e" 815 | integrity sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg== 816 | dependencies: 817 | punycode "^2.1.0" 818 | 819 | validate-npm-package-license@^3.0.1: 820 | version "3.0.4" 821 | resolved "https://registry.yarnpkg.com/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz#fc91f6b9c7ba15c857f4cb2c5defeec39d4f410a" 822 | integrity sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew== 823 | dependencies: 824 | spdx-correct "^3.0.0" 825 | spdx-expression-parse "^3.0.0" 826 | 827 | watchpack@^2.3.1: 828 | version "2.3.1" 829 | resolved "https://registry.yarnpkg.com/watchpack/-/watchpack-2.3.1.tgz#4200d9447b401156eeca7767ee610f8809bc9d25" 830 | integrity sha512-x0t0JuydIo8qCNctdDrn1OzH/qDzk2+rdCOC3YzumZ42fiMqmQ7T3xQurykYMhYfHaPHTp4ZxAx2NfUo1K6QaA== 831 | dependencies: 832 | glob-to-regexp "^0.4.1" 833 | graceful-fs "^4.1.2" 834 | 835 | webpack-sources@^3.2.3: 836 | version "3.2.3" 837 | resolved "https://registry.yarnpkg.com/webpack-sources/-/webpack-sources-3.2.3.tgz#2d4daab8451fd4b240cc27055ff6a0c2ccea0cde" 838 | integrity sha512-/DyMEOrDgLKKIG0fmvtz+4dUX/3Ghozwgm6iPp8KRhvn+eQf9+Q7GWxVNMk3+uCPWfdXYC4ExGBckIXdFEfH1w== 839 | 840 | webpack@^5.67.0: 841 | version "5.67.0" 842 | resolved "https://registry.yarnpkg.com/webpack/-/webpack-5.67.0.tgz#cb43ca2aad5f7cc81c4cd36b626e6b819805dbfd" 843 | integrity sha512-LjFbfMh89xBDpUMgA1W9Ur6Rn/gnr2Cq1jjHFPo4v6a79/ypznSYbAyPgGhwsxBtMIaEmDD1oJoA7BEYw/Fbrw== 844 | dependencies: 845 | "@types/eslint-scope" "^3.7.0" 846 | "@types/estree" "^0.0.50" 847 | "@webassemblyjs/ast" "1.11.1" 848 | "@webassemblyjs/wasm-edit" "1.11.1" 849 | "@webassemblyjs/wasm-parser" "1.11.1" 850 | acorn "^8.4.1" 851 | acorn-import-assertions "^1.7.6" 852 | browserslist "^4.14.5" 853 | chrome-trace-event "^1.0.2" 854 | enhanced-resolve "^5.8.3" 855 | es-module-lexer "^0.9.0" 856 | eslint-scope "5.1.1" 857 | events "^3.2.0" 858 | glob-to-regexp "^0.4.1" 859 | graceful-fs "^4.2.9" 860 | json-parse-better-errors "^1.0.2" 861 | loader-runner "^4.2.0" 862 | mime-types "^2.1.27" 863 | neo-async "^2.6.2" 864 | schema-utils "^3.1.0" 865 | tapable "^2.1.1" 866 | terser-webpack-plugin "^5.1.3" 867 | watchpack "^2.3.1" 868 | webpack-sources "^3.2.3" 869 | 870 | yallist@^4.0.0: 871 | version "4.0.0" 872 | resolved "https://registry.yarnpkg.com/yallist/-/yallist-4.0.0.tgz#9bb92790d9c0effec63be73519e11a35019a3a72" 873 | integrity sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A== 874 | 875 | yargs-parser@^20.2.9: 876 | version "20.2.9" 877 | resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-20.2.9.tgz#2eb7dc3b0289718fc295f362753845c41a0c94ee" 878 | integrity sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w== 879 | 880 | yocto-queue@^0.1.0: 881 | version "0.1.0" 882 | resolved "https://registry.yarnpkg.com/yocto-queue/-/yocto-queue-0.1.0.tgz#0294eb3dee05028d31ee1a5fa2c556a6aaf10a1b" 883 | integrity sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q== 884 | --------------------------------------------------------------------------------