├── .gitignore ├── README.md ├── index.js ├── options.json ├── package.json └── yarn.lock /.gitignore: -------------------------------------------------------------------------------- 1 | node_modules -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # dts-css-modules-loader 2 | A small Webpack loader to generate typings for your CSS-Modules. Created as a replacement for the frozend [typings-for-css-modules-loader](https://github.com/Jimdo/typings-for-css-modules-loader). This loader does not make any changes in content of styles, just creates `*.d.ts` file during the work. It is assumed that the content will be preprocessed first by [css-loader](https://github.com/webpack-contrib/css-loader). 3 | 4 | ### ⚠ BREAKING CHANGES 5 | 6 | * Since version 2.x only supports `webpack` version is `5` 7 | 8 | ## Installation 9 | ```bash 10 | npm i -D dts-css-modules-loader 11 | # or 12 | yarn add -D dts-css-modules-loader 13 | ``` 14 | 15 | ## Usage 16 | ```js 17 | { 18 | test: /\.scss$/, 19 | use: [ 20 | { 21 | loader: 'style-loader', 22 | options: { 23 | esModule: false, 24 | }, 25 | }, 26 | { 27 | loader: 'dts-css-modules-loader', 28 | options: { 29 | namedExport: true 30 | } 31 | }, 32 | { 33 | loader: 'css-loader', 34 | options: { 35 | // options for the v5 of css-loader 36 | modules: { 37 | exportLocalsConvention: 'camelCaseOnly', 38 | localIdentName: '[local]' 39 | } 40 | } 41 | }, 42 | 'sass-loader' 43 | ] 44 | } 45 | ``` 46 | 47 | ## Options 48 | ### `namedExport` 49 | When the option is switched on classes exported as variables. Be sure you using `camelCase` option of [css-loader](https://github.com/webpack-contrib/css-loader) to avoid invalid name of variables. 50 | 51 | ```ts 52 | // This file is generated automatically. 53 | export const button: string; 54 | export const buttonActive: string; 55 | ``` 56 | 57 | When option is off: 58 | ```ts 59 | // This file is generated automatically. 60 | export interface I_buttonScss { 61 | 'button': string 62 | 'buttonActive': string 63 | } 64 | declare const styles: I_buttonScss; 65 | export = styles; 66 | ``` 67 | 68 | ### `banner` 69 | Adds a "banner" prefix to each generated file. 70 | 71 | ### `customTypings` 72 | A function that accepts classes (an array of string) and returns the content of declaration file: 73 | ```js 74 | customTypings: classes => { 75 | let content = '// This file is generated automatically\ndeclare const styles: {\n'; 76 | for (const c of classes) { 77 | content += ` ${c}: string;\n`; 78 | } 79 | content += '};\nexport default styles;\n'; 80 | return content; 81 | } 82 | ``` 83 | `namedExport` and `banner` option will be ignored 84 | 85 | ### `dropEmptyFile` 86 | If there are no classes, the typings file will not be generated, and the existing will be deleted. 87 | 88 | ## Usage in Typescript 89 | ```ts 90 | import * as styles from './_button.scss'; 91 | ``` 92 | 93 | To avoid errors about the absent module, you need to determine this: 94 | ```ts 95 | /** 96 | * Trap for `*.scss.d.ts` files which are not generated yet. 97 | */ 98 | declare module '*.scss' { 99 | var classes: any; 100 | export = classes; 101 | } 102 | ``` 103 | When you add new classname Typescript compiler may not find the generated variable so you need to compile twice your files. 104 | 105 | ## License 106 | Licensed under the MIT license. 107 | -------------------------------------------------------------------------------- /index.js: -------------------------------------------------------------------------------- 1 | // @ts-check 2 | const fs = require('fs'); 3 | const fp = require('path'); 4 | const schema = require("./options.json"); 5 | 6 | /** 7 | * @template T 8 | * @typedef {Object} LoaderOptions 9 | * @type {{ 10 | * banner?: string, 11 | * namedExport?: boolean, 12 | * customTypings?: (classes: string[]) => string, 13 | * dropEmptyFile?: boolean 14 | * }} 15 | * @property {string} [severityError] Allows to choose how errors are displayed. 16 | */ 17 | 18 | /** 19 | * @template T 20 | * @this {import("webpack").LoaderContext>} 21 | * @param {Buffer} content 22 | */ 23 | module.exports = function (content) { 24 | this.cacheable && this.cacheable(); 25 | 26 | /** 27 | * @type {{ 28 | * banner?: string, 29 | * namedExport?: boolean, 30 | * customTypings?: (classes: string[]) => string, 31 | * dropEmptyFile?: boolean 32 | * }} 33 | */ 34 | const options = this.getOptions(schema) || {}; 35 | const callback = this.async(); 36 | 37 | const classes = getClasses(content); 38 | const dtsPath = getDtsPath(this.resourcePath); 39 | 40 | if (options.dropEmptyFile && classes.length === 0) { 41 | if (fs.existsSync(dtsPath)) { 42 | fs.rmSync(dtsPath); 43 | } 44 | } else { 45 | let typings = options.banner ? `${options.banner}\n` : ''; 46 | 47 | if (options.customTypings) { 48 | typings = options.customTypings(classes); 49 | } else if (options.namedExport) { 50 | for (let c of classes) { 51 | typings += `export const ${c}: string;\n`; 52 | } 53 | } else { 54 | const i = getInterfaceName(this.resourcePath); 55 | typings += `export interface ${i} {\n`; 56 | for (let c of classes) { 57 | typings += ` '${c}': string;\n`; 58 | } 59 | typings += `}\ndeclare const styles: ${i};\nexport = styles;\n`; 60 | } 61 | 62 | if (!fs.existsSync(dtsPath) || fs.readFileSync(dtsPath, "utf-8") != typings) { 63 | fs.writeFileSync(dtsPath, typings, "utf8"); 64 | } 65 | } 66 | 67 | callback(null, content); 68 | }; 69 | 70 | /** 71 | * @param {string | Buffer} [content] 72 | */ 73 | function getClasses(content) { 74 | if (Buffer.isBuffer(content)) { 75 | content = content.toString('utf8'); 76 | } 77 | 78 | /** @type {string[]} */ 79 | let classes = []; 80 | let isCssLoaderNamedExport = false; 81 | 82 | // check v4 / v5 83 | let from = content.indexOf('___CSS_LOADER_EXPORT___.locals = {'); 84 | if (from === -1) { 85 | // >= v5.2.5 86 | from = content.indexOf('export var '); 87 | if (from === -1) { 88 | // < v5.2.5 89 | from = content.indexOf('export const '); 90 | } 91 | isCssLoaderNamedExport = from !== -1; 92 | } 93 | // check v3 94 | if (from === -1) { 95 | // when `onlyLocals` is on 96 | from = content.indexOf('module.exports = {'); 97 | } 98 | if (from === -1) { 99 | // when `onlyLocals` is off 100 | from = content.indexOf('exports.locals = {'); 101 | } 102 | 103 | if (~from) { 104 | content = content.slice(from); 105 | 106 | /** @type {RegExpExecArray} */ 107 | let match; 108 | const regex = isCssLoaderNamedExport ? classesOfNamedExportRegex : classesRegex; 109 | while ((match = regex.exec(content))) { 110 | if (classes.indexOf(match[1]) === -1) { 111 | classes.push(match[1]); 112 | } 113 | } 114 | } 115 | 116 | return classes; 117 | } 118 | 119 | const classesRegex = /"([^"\\/;()\n]+)":/g; 120 | const classesOfNamedExportRegex = /export (?:var|const) (\w+) =/g; 121 | 122 | /** 123 | * @param {string} [path] 124 | */ 125 | function getDtsPath(path) { 126 | return fp.join(fp.dirname(path), `${fp.basename(path)}.d.ts`); 127 | } 128 | 129 | /** 130 | * @param {string} [path] 131 | */ 132 | function getInterfaceName(path) { 133 | return fp 134 | .basename(path) 135 | .replace(/^(\w)/, (_, c) => 'I' + c.toUpperCase()) 136 | .replace(/\W+(\w)/g, (_, c) => c.toUpperCase()); 137 | } 138 | -------------------------------------------------------------------------------- /options.json: -------------------------------------------------------------------------------- 1 | { 2 | "defintions": { 3 | "banner": { 4 | "description": "When the option is switched on classes exported as variables.", 5 | "type": "string" 6 | }, 7 | "namedExport": { 8 | "description": "Adds a 'banner' prefix to each generated file", 9 | "type": "boolean" 10 | }, 11 | "customTypings": { 12 | "description": "Function that accepts classes (an array of string) and returns the content of declaration file", 13 | "instanceof": "Function" 14 | }, 15 | "dropEmptyFile": { 16 | "description": "If there are no classes, the typings file will not be generated, and the existing will be deleted", 17 | "type": "boolean" 18 | } 19 | } 20 | } 21 | -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "dts-css-modules-loader", 3 | "version": "2.0.1", 4 | "description": "webpack loader to generate typings for css modules", 5 | "peerDependencies": { 6 | "css-loader": "^2.0.0 || ^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0" 7 | }, 8 | "keywords": [ 9 | "css-modules", 10 | "typescript", 11 | "typings", 12 | "webpack", 13 | "loader" 14 | ], 15 | "license": "MIT", 16 | "homepage": "https://github.com/Megaputer/dts-css-modules-loader", 17 | "devDependencies": { 18 | "@types/webpack": "^5.28.0" 19 | } 20 | } 21 | -------------------------------------------------------------------------------- /yarn.lock: -------------------------------------------------------------------------------- 1 | # THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY. 2 | # yarn lockfile v1 3 | 4 | 5 | "@jridgewell/gen-mapping@^0.3.0": 6 | version "0.3.2" 7 | resolved "https://registry.yarnpkg.com/@jridgewell/gen-mapping/-/gen-mapping-0.3.2.tgz#c1aedc61e853f2bb9f5dfe6d4442d3b565b253b9" 8 | integrity sha512-mh65xKQAzI6iBcFzwv28KVWSmCkdRBWoOh+bYQGW3+6OZvbbN3TqMGo5hqYxQniRcH9F2VZIoJCm4pa3BPDK/A== 9 | dependencies: 10 | "@jridgewell/set-array" "^1.0.1" 11 | "@jridgewell/sourcemap-codec" "^1.4.10" 12 | "@jridgewell/trace-mapping" "^0.3.9" 13 | 14 | "@jridgewell/resolve-uri@^3.0.3": 15 | version "3.1.0" 16 | resolved "https://registry.yarnpkg.com/@jridgewell/resolve-uri/-/resolve-uri-3.1.0.tgz#2203b118c157721addfe69d47b70465463066d78" 17 | integrity sha512-F2msla3tad+Mfht5cJq7LSXcdudKTWCVYUgw6pLFOOHSTtZlj6SWNYAp+AhuqLmWdBO2X5hPrLcu8cVP8fy28w== 18 | 19 | "@jridgewell/set-array@^1.0.1": 20 | version "1.1.2" 21 | resolved "https://registry.yarnpkg.com/@jridgewell/set-array/-/set-array-1.1.2.tgz#7c6cf998d6d20b914c0a55a91ae928ff25965e72" 22 | integrity sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw== 23 | 24 | "@jridgewell/source-map@^0.3.2": 25 | version "0.3.2" 26 | resolved "https://registry.yarnpkg.com/@jridgewell/source-map/-/source-map-0.3.2.tgz#f45351aaed4527a298512ec72f81040c998580fb" 27 | integrity sha512-m7O9o2uR8k2ObDysZYzdfhb08VuEml5oWGiosa1VdaPZ/A6QyPkAJuwN0Q1lhULOf6B7MtQmHENS743hWtCrgw== 28 | dependencies: 29 | "@jridgewell/gen-mapping" "^0.3.0" 30 | "@jridgewell/trace-mapping" "^0.3.9" 31 | 32 | "@jridgewell/sourcemap-codec@^1.4.10": 33 | version "1.4.14" 34 | resolved "https://registry.yarnpkg.com/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.14.tgz#add4c98d341472a289190b424efbdb096991bb24" 35 | integrity sha512-XPSJHWmi394fuUuzDnGz1wiKqWfo1yXecHQMRf2l6hztTO+nPru658AyDngaBe7isIxEkRsPR3FZh+s7iVa4Uw== 36 | 37 | "@jridgewell/trace-mapping@^0.3.9": 38 | version "0.3.15" 39 | resolved "https://registry.yarnpkg.com/@jridgewell/trace-mapping/-/trace-mapping-0.3.15.tgz#aba35c48a38d3fd84b37e66c9c0423f9744f9774" 40 | integrity sha512-oWZNOULl+UbhsgB51uuZzglikfIKSUBO/M9W2OfEjn7cmqoAiCgmv9lyACTUacZwBz0ITnJ2NqjU8Tx0DHL88g== 41 | dependencies: 42 | "@jridgewell/resolve-uri" "^3.0.3" 43 | "@jridgewell/sourcemap-codec" "^1.4.10" 44 | 45 | "@types/eslint-scope@^3.7.3": 46 | version "3.7.3" 47 | resolved "https://registry.yarnpkg.com/@types/eslint-scope/-/eslint-scope-3.7.3.tgz#125b88504b61e3c8bc6f870882003253005c3224" 48 | integrity sha512-PB3ldyrcnAicT35TWPs5IcwKD8S333HMaa2VVv4+wdvebJkjWuW/xESoB8IwRcog8HYVYamb1g/R31Qv5Bx03g== 49 | dependencies: 50 | "@types/eslint" "*" 51 | "@types/estree" "*" 52 | 53 | "@types/eslint@*": 54 | version "8.4.2" 55 | resolved "https://registry.yarnpkg.com/@types/eslint/-/eslint-8.4.2.tgz#48f2ac58ab9c631cb68845c3d956b28f79fad575" 56 | integrity sha512-Z1nseZON+GEnFjJc04sv4NSALGjhFwy6K0HXt7qsn5ArfAKtb63dXNJHf+1YW6IpOIYRBGUbu3GwJdj8DGnCjA== 57 | dependencies: 58 | "@types/estree" "*" 59 | "@types/json-schema" "*" 60 | 61 | "@types/estree@*", "@types/estree@^0.0.51": 62 | version "0.0.51" 63 | resolved "https://registry.yarnpkg.com/@types/estree/-/estree-0.0.51.tgz#cfd70924a25a3fd32b218e5e420e6897e1ac4f40" 64 | integrity sha512-CuPgU6f3eT/XgKKPqKd/gLZV1Xmvf1a2R5POBOGQa6uv82xpls89HU5zKeVoyR8XzHd1RGNOlQlvUe3CFkjWNQ== 65 | 66 | "@types/json-schema@*", "@types/json-schema@^7.0.8": 67 | version "7.0.11" 68 | resolved "https://registry.yarnpkg.com/@types/json-schema/-/json-schema-7.0.11.tgz#d421b6c527a3037f7c84433fd2c4229e016863d3" 69 | integrity sha512-wOuvG1SN4Us4rez+tylwwwCV1psiNVOkJeM3AUWUNWg/jDQY2+HE/444y5gc+jBmRqASOm2Oeh5c1axHobwRKQ== 70 | 71 | "@types/node@*": 72 | version "14.14.35" 73 | resolved "https://registry.yarnpkg.com/@types/node/-/node-14.14.35.tgz#42c953a4e2b18ab931f72477e7012172f4ffa313" 74 | integrity sha512-Lt+wj8NVPx0zUmUwumiVXapmaLUcAk3yPuHCFVXras9k5VT9TdhJqKqGVUQCD60OTMCl0qxJ57OiTL0Mic3Iag== 75 | 76 | "@types/webpack@^5.28.0": 77 | version "5.28.0" 78 | resolved "https://registry.yarnpkg.com/@types/webpack/-/webpack-5.28.0.tgz#78dde06212f038d77e54116cfe69e88ae9ed2c03" 79 | integrity sha512-8cP0CzcxUiFuA9xGJkfeVpqmWTk9nx6CWwamRGCj95ph1SmlRRk9KlCZ6avhCbZd4L68LvYT6l1kpdEnQXrF8w== 80 | dependencies: 81 | "@types/node" "*" 82 | tapable "^2.2.0" 83 | webpack "^5" 84 | 85 | "@webassemblyjs/ast@1.11.1": 86 | version "1.11.1" 87 | resolved "https://registry.yarnpkg.com/@webassemblyjs/ast/-/ast-1.11.1.tgz#2bfd767eae1a6996f432ff7e8d7fc75679c0b6a7" 88 | integrity sha512-ukBh14qFLjxTQNTXocdyksN5QdM28S1CxHt2rdskFyL+xFV7VremuBLVbmCePj+URalXBENx/9Lm7lnhihtCSw== 89 | dependencies: 90 | "@webassemblyjs/helper-numbers" "1.11.1" 91 | "@webassemblyjs/helper-wasm-bytecode" "1.11.1" 92 | 93 | "@webassemblyjs/floating-point-hex-parser@1.11.1": 94 | version "1.11.1" 95 | resolved "https://registry.yarnpkg.com/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.11.1.tgz#f6c61a705f0fd7a6aecaa4e8198f23d9dc179e4f" 96 | integrity sha512-iGRfyc5Bq+NnNuX8b5hwBrRjzf0ocrJPI6GWFodBFzmFnyvrQ83SHKhmilCU/8Jv67i4GJZBMhEzltxzcNagtQ== 97 | 98 | "@webassemblyjs/helper-api-error@1.11.1": 99 | version "1.11.1" 100 | resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-api-error/-/helper-api-error-1.11.1.tgz#1a63192d8788e5c012800ba6a7a46c705288fd16" 101 | integrity sha512-RlhS8CBCXfRUR/cwo2ho9bkheSXG0+NwooXcc3PAILALf2QLdFyj7KGsKRbVc95hZnhnERon4kW/D3SZpp6Tcg== 102 | 103 | "@webassemblyjs/helper-buffer@1.11.1": 104 | version "1.11.1" 105 | resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-buffer/-/helper-buffer-1.11.1.tgz#832a900eb444884cde9a7cad467f81500f5e5ab5" 106 | integrity sha512-gwikF65aDNeeXa8JxXa2BAk+REjSyhrNC9ZwdT0f8jc4dQQeDQ7G4m0f2QCLPJiMTTO6wfDmRmj/pW0PsUvIcA== 107 | 108 | "@webassemblyjs/helper-numbers@1.11.1": 109 | version "1.11.1" 110 | resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-numbers/-/helper-numbers-1.11.1.tgz#64d81da219fbbba1e3bd1bfc74f6e8c4e10a62ae" 111 | integrity sha512-vDkbxiB8zfnPdNK9Rajcey5C0w+QJugEglN0of+kmO8l7lDb77AnlKYQF7aarZuCrv+l0UvqL+68gSDr3k9LPQ== 112 | dependencies: 113 | "@webassemblyjs/floating-point-hex-parser" "1.11.1" 114 | "@webassemblyjs/helper-api-error" "1.11.1" 115 | "@xtuc/long" "4.2.2" 116 | 117 | "@webassemblyjs/helper-wasm-bytecode@1.11.1": 118 | version "1.11.1" 119 | resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.11.1.tgz#f328241e41e7b199d0b20c18e88429c4433295e1" 120 | integrity sha512-PvpoOGiJwXeTrSf/qfudJhwlvDQxFgelbMqtq52WWiXC6Xgg1IREdngmPN3bs4RoO83PnL/nFrxucXj1+BX62Q== 121 | 122 | "@webassemblyjs/helper-wasm-section@1.11.1": 123 | version "1.11.1" 124 | resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.11.1.tgz#21ee065a7b635f319e738f0dd73bfbda281c097a" 125 | integrity sha512-10P9No29rYX1j7F3EVPX3JvGPQPae+AomuSTPiF9eBQeChHI6iqjMIwR9JmOJXwpnn/oVGDk7I5IlskuMwU/pg== 126 | dependencies: 127 | "@webassemblyjs/ast" "1.11.1" 128 | "@webassemblyjs/helper-buffer" "1.11.1" 129 | "@webassemblyjs/helper-wasm-bytecode" "1.11.1" 130 | "@webassemblyjs/wasm-gen" "1.11.1" 131 | 132 | "@webassemblyjs/ieee754@1.11.1": 133 | version "1.11.1" 134 | resolved "https://registry.yarnpkg.com/@webassemblyjs/ieee754/-/ieee754-1.11.1.tgz#963929e9bbd05709e7e12243a099180812992614" 135 | integrity sha512-hJ87QIPtAMKbFq6CGTkZYJivEwZDbQUgYd3qKSadTNOhVY7p+gfP6Sr0lLRVTaG1JjFj+r3YchoqRYxNH3M0GQ== 136 | dependencies: 137 | "@xtuc/ieee754" "^1.2.0" 138 | 139 | "@webassemblyjs/leb128@1.11.1": 140 | version "1.11.1" 141 | resolved "https://registry.yarnpkg.com/@webassemblyjs/leb128/-/leb128-1.11.1.tgz#ce814b45574e93d76bae1fb2644ab9cdd9527aa5" 142 | integrity sha512-BJ2P0hNZ0u+Th1YZXJpzW6miwqQUGcIHT1G/sf72gLVD9DZ5AdYTqPNbHZh6K1M5VmKvFXwGSWZADz+qBWxeRw== 143 | dependencies: 144 | "@xtuc/long" "4.2.2" 145 | 146 | "@webassemblyjs/utf8@1.11.1": 147 | version "1.11.1" 148 | resolved "https://registry.yarnpkg.com/@webassemblyjs/utf8/-/utf8-1.11.1.tgz#d1f8b764369e7c6e6bae350e854dec9a59f0a3ff" 149 | integrity sha512-9kqcxAEdMhiwQkHpkNiorZzqpGrodQQ2IGrHHxCy+Ozng0ofyMA0lTqiLkVs1uzTRejX+/O0EOT7KxqVPuXosQ== 150 | 151 | "@webassemblyjs/wasm-edit@1.11.1": 152 | version "1.11.1" 153 | resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-edit/-/wasm-edit-1.11.1.tgz#ad206ebf4bf95a058ce9880a8c092c5dec8193d6" 154 | integrity sha512-g+RsupUC1aTHfR8CDgnsVRVZFJqdkFHpsHMfJuWQzWU3tvnLC07UqHICfP+4XyL2tnr1amvl1Sdp06TnYCmVkA== 155 | dependencies: 156 | "@webassemblyjs/ast" "1.11.1" 157 | "@webassemblyjs/helper-buffer" "1.11.1" 158 | "@webassemblyjs/helper-wasm-bytecode" "1.11.1" 159 | "@webassemblyjs/helper-wasm-section" "1.11.1" 160 | "@webassemblyjs/wasm-gen" "1.11.1" 161 | "@webassemblyjs/wasm-opt" "1.11.1" 162 | "@webassemblyjs/wasm-parser" "1.11.1" 163 | "@webassemblyjs/wast-printer" "1.11.1" 164 | 165 | "@webassemblyjs/wasm-gen@1.11.1": 166 | version "1.11.1" 167 | resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-gen/-/wasm-gen-1.11.1.tgz#86c5ea304849759b7d88c47a32f4f039ae3c8f76" 168 | integrity sha512-F7QqKXwwNlMmsulj6+O7r4mmtAlCWfO/0HdgOxSklZfQcDu0TpLiD1mRt/zF25Bk59FIjEuGAIyn5ei4yMfLhA== 169 | dependencies: 170 | "@webassemblyjs/ast" "1.11.1" 171 | "@webassemblyjs/helper-wasm-bytecode" "1.11.1" 172 | "@webassemblyjs/ieee754" "1.11.1" 173 | "@webassemblyjs/leb128" "1.11.1" 174 | "@webassemblyjs/utf8" "1.11.1" 175 | 176 | "@webassemblyjs/wasm-opt@1.11.1": 177 | version "1.11.1" 178 | resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-opt/-/wasm-opt-1.11.1.tgz#657b4c2202f4cf3b345f8a4c6461c8c2418985f2" 179 | integrity sha512-VqnkNqnZlU5EB64pp1l7hdm3hmQw7Vgqa0KF/KCNO9sIpI6Fk6brDEiX+iCOYrvMuBWDws0NkTOxYEb85XQHHw== 180 | dependencies: 181 | "@webassemblyjs/ast" "1.11.1" 182 | "@webassemblyjs/helper-buffer" "1.11.1" 183 | "@webassemblyjs/wasm-gen" "1.11.1" 184 | "@webassemblyjs/wasm-parser" "1.11.1" 185 | 186 | "@webassemblyjs/wasm-parser@1.11.1": 187 | version "1.11.1" 188 | resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-parser/-/wasm-parser-1.11.1.tgz#86ca734534f417e9bd3c67c7a1c75d8be41fb199" 189 | integrity sha512-rrBujw+dJu32gYB7/Lup6UhdkPx9S9SnobZzRVL7VcBH9Bt9bCBLEuX/YXOOtBsOZ4NQrRykKhffRWHvigQvOA== 190 | dependencies: 191 | "@webassemblyjs/ast" "1.11.1" 192 | "@webassemblyjs/helper-api-error" "1.11.1" 193 | "@webassemblyjs/helper-wasm-bytecode" "1.11.1" 194 | "@webassemblyjs/ieee754" "1.11.1" 195 | "@webassemblyjs/leb128" "1.11.1" 196 | "@webassemblyjs/utf8" "1.11.1" 197 | 198 | "@webassemblyjs/wast-printer@1.11.1": 199 | version "1.11.1" 200 | resolved "https://registry.yarnpkg.com/@webassemblyjs/wast-printer/-/wast-printer-1.11.1.tgz#d0c73beda8eec5426f10ae8ef55cee5e7084c2f0" 201 | integrity sha512-IQboUWM4eKzWW+N/jij2sRatKMh99QEelo3Eb2q0qXkvPRISAj8Qxtmw5itwqK+TTkBuUIE45AxYPToqPtL5gg== 202 | dependencies: 203 | "@webassemblyjs/ast" "1.11.1" 204 | "@xtuc/long" "4.2.2" 205 | 206 | "@xtuc/ieee754@^1.2.0": 207 | version "1.2.0" 208 | resolved "https://registry.yarnpkg.com/@xtuc/ieee754/-/ieee754-1.2.0.tgz#eef014a3145ae477a1cbc00cd1e552336dceb790" 209 | integrity sha512-DX8nKgqcGwsc0eJSqYt5lwP4DH5FlHnmuWWBRy7X0NcaGR0ZtuyeESgMwTYVEtxmsNGY+qit4QYT/MIYTOTPeA== 210 | 211 | "@xtuc/long@4.2.2": 212 | version "4.2.2" 213 | resolved "https://registry.yarnpkg.com/@xtuc/long/-/long-4.2.2.tgz#d291c6a4e97989b5c61d9acf396ae4fe133a718d" 214 | integrity sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ== 215 | 216 | acorn-import-assertions@^1.7.6: 217 | version "1.8.0" 218 | resolved "https://registry.yarnpkg.com/acorn-import-assertions/-/acorn-import-assertions-1.8.0.tgz#ba2b5939ce62c238db6d93d81c9b111b29b855e9" 219 | integrity sha512-m7VZ3jwz4eK6A4Vtt8Ew1/mNbP24u0FhdyfA7fSvnJR6LMdfOYnmuIrrJAgrYfYJ10F/otaHTtrtrtmHdMNzEw== 220 | 221 | acorn@^8.4.1, acorn@^8.5.0: 222 | version "8.8.0" 223 | resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.8.0.tgz#88c0187620435c7f6015803f5539dae05a9dbea8" 224 | integrity sha512-QOxyigPVrpZ2GXT+PFyZTl6TtOFc5egxHIP9IlQ+RbupQuX4RkT/Bee4/kQuC02Xkzg84JcT7oLYtDIQxp+v7w== 225 | 226 | ajv-keywords@^3.5.2: 227 | version "3.5.2" 228 | resolved "https://registry.yarnpkg.com/ajv-keywords/-/ajv-keywords-3.5.2.tgz#31f29da5ab6e00d1c2d329acf7b5929614d5014d" 229 | integrity sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ== 230 | 231 | ajv@^6.12.5: 232 | version "6.12.6" 233 | resolved "https://registry.yarnpkg.com/ajv/-/ajv-6.12.6.tgz#baf5a62e802b07d977034586f8c3baf5adf26df4" 234 | integrity sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g== 235 | dependencies: 236 | fast-deep-equal "^3.1.1" 237 | fast-json-stable-stringify "^2.0.0" 238 | json-schema-traverse "^0.4.1" 239 | uri-js "^4.2.2" 240 | 241 | browserslist@^4.14.5: 242 | version "4.20.3" 243 | resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.20.3.tgz#eb7572f49ec430e054f56d52ff0ebe9be915f8bf" 244 | integrity sha512-NBhymBQl1zM0Y5dQT/O+xiLP9/rzOIQdKM/eMJBAq7yBgaB6krIYLGejrwVYnSHZdqjscB1SPuAjHwxjvN6Wdg== 245 | dependencies: 246 | caniuse-lite "^1.0.30001332" 247 | electron-to-chromium "^1.4.118" 248 | escalade "^3.1.1" 249 | node-releases "^2.0.3" 250 | picocolors "^1.0.0" 251 | 252 | buffer-from@^1.0.0: 253 | version "1.1.2" 254 | resolved "https://registry.yarnpkg.com/buffer-from/-/buffer-from-1.1.2.tgz#2b146a6fd72e80b4f55d255f35ed59a3a9a41bd5" 255 | integrity sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ== 256 | 257 | caniuse-lite@^1.0.30001332: 258 | version "1.0.30001342" 259 | resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001342.tgz#87152b1e3b950d1fbf0093e23f00b6c8e8f1da96" 260 | integrity sha512-bn6sOCu7L7jcbBbyNhLg0qzXdJ/PMbybZTH/BA6Roet9wxYRm6Tr9D0s0uhLkOZ6MSG+QU6txUgdpr3MXIVqjA== 261 | 262 | chrome-trace-event@^1.0.2: 263 | version "1.0.3" 264 | resolved "https://registry.yarnpkg.com/chrome-trace-event/-/chrome-trace-event-1.0.3.tgz#1015eced4741e15d06664a957dbbf50d041e26ac" 265 | integrity sha512-p3KULyQg4S7NIHixdwbGX+nFHkoBiA4YQmyWtjb8XngSKV124nJmRysgAeujbUVb15vh+RvFUfCPqU7rXk+hZg== 266 | 267 | commander@^2.20.0: 268 | version "2.20.3" 269 | resolved "https://registry.yarnpkg.com/commander/-/commander-2.20.3.tgz#fd485e84c03eb4881c20722ba48035e8531aeb33" 270 | integrity sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ== 271 | 272 | electron-to-chromium@^1.4.118: 273 | version "1.4.138" 274 | resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.4.138.tgz#3ec41ca589aaf505dfe2034fde913329af801730" 275 | integrity sha512-IOyp2Seq3w4QLln+yZWcMF3VXhhduz4bwg9gfI+CnP5TkzwNXQ8FCZuwwPsnes73AfWdf5J2n2OXdUwDUspDPQ== 276 | 277 | enhanced-resolve@^5.9.3: 278 | version "5.9.3" 279 | resolved "https://registry.yarnpkg.com/enhanced-resolve/-/enhanced-resolve-5.9.3.tgz#44a342c012cbc473254af5cc6ae20ebd0aae5d88" 280 | integrity sha512-Bq9VSor+kjvW3f9/MiiR4eE3XYgOl7/rS8lnSxbRbF3kS0B2r+Y9w5krBWxZgDxASVZbdYrn5wT4j/Wb0J9qow== 281 | dependencies: 282 | graceful-fs "^4.2.4" 283 | tapable "^2.2.0" 284 | 285 | es-module-lexer@^0.9.0: 286 | version "0.9.3" 287 | resolved "https://registry.yarnpkg.com/es-module-lexer/-/es-module-lexer-0.9.3.tgz#6f13db00cc38417137daf74366f535c8eb438f19" 288 | integrity sha512-1HQ2M2sPtxwnvOvT1ZClHyQDiggdNjURWpY2we6aMKCQiUVxTmVs2UYPLIrD84sS+kMdUwfBSylbJPwNnBrnHQ== 289 | 290 | escalade@^3.1.1: 291 | version "3.1.1" 292 | resolved "https://registry.yarnpkg.com/escalade/-/escalade-3.1.1.tgz#d8cfdc7000965c5a0174b4a82eaa5c0552742e40" 293 | integrity sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw== 294 | 295 | eslint-scope@5.1.1: 296 | version "5.1.1" 297 | resolved "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-5.1.1.tgz#e786e59a66cb92b3f6c1fb0d508aab174848f48c" 298 | integrity sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw== 299 | dependencies: 300 | esrecurse "^4.3.0" 301 | estraverse "^4.1.1" 302 | 303 | esrecurse@^4.3.0: 304 | version "4.3.0" 305 | resolved "https://registry.yarnpkg.com/esrecurse/-/esrecurse-4.3.0.tgz#7ad7964d679abb28bee72cec63758b1c5d2c9921" 306 | integrity sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag== 307 | dependencies: 308 | estraverse "^5.2.0" 309 | 310 | estraverse@^4.1.1: 311 | version "4.3.0" 312 | resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-4.3.0.tgz#398ad3f3c5a24948be7725e83d11a7de28cdbd1d" 313 | integrity sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw== 314 | 315 | estraverse@^5.2.0: 316 | version "5.3.0" 317 | resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-5.3.0.tgz#2eea5290702f26ab8fe5370370ff86c965d21123" 318 | integrity sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA== 319 | 320 | events@^3.2.0: 321 | version "3.3.0" 322 | resolved "https://registry.yarnpkg.com/events/-/events-3.3.0.tgz#31a95ad0a924e2d2c419a813aeb2c4e878ea7400" 323 | integrity sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q== 324 | 325 | fast-deep-equal@^3.1.1: 326 | version "3.1.3" 327 | resolved "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz#3a7d56b559d6cbc3eb512325244e619a65c6c525" 328 | integrity sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q== 329 | 330 | fast-json-stable-stringify@^2.0.0: 331 | version "2.1.0" 332 | resolved "https://registry.yarnpkg.com/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz#874bf69c6f404c2b5d99c481341399fd55892633" 333 | integrity sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw== 334 | 335 | glob-to-regexp@^0.4.1: 336 | version "0.4.1" 337 | resolved "https://registry.yarnpkg.com/glob-to-regexp/-/glob-to-regexp-0.4.1.tgz#c75297087c851b9a578bd217dd59a92f59fe546e" 338 | integrity sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw== 339 | 340 | graceful-fs@^4.1.2, graceful-fs@^4.2.4, graceful-fs@^4.2.9: 341 | version "4.2.10" 342 | resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.10.tgz#147d3a006da4ca3ce14728c7aefc287c367d7a6c" 343 | integrity sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA== 344 | 345 | has-flag@^4.0.0: 346 | version "4.0.0" 347 | resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-4.0.0.tgz#944771fd9c81c81265c4d6941860da06bb59479b" 348 | integrity sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ== 349 | 350 | jest-worker@^27.4.5: 351 | version "27.5.1" 352 | resolved "https://registry.yarnpkg.com/jest-worker/-/jest-worker-27.5.1.tgz#8d146f0900e8973b106b6f73cc1e9a8cb86f8db0" 353 | integrity sha512-7vuh85V5cdDofPyxn58nrPjBktZo0u9x1g8WtjQol+jZDaE+fhN+cIvTj11GndBnMnyfrUOG1sZQxCdjKh+DKg== 354 | dependencies: 355 | "@types/node" "*" 356 | merge-stream "^2.0.0" 357 | supports-color "^8.0.0" 358 | 359 | json-parse-even-better-errors@^2.3.1: 360 | version "2.3.1" 361 | resolved "https://registry.yarnpkg.com/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz#7c47805a94319928e05777405dc12e1f7a4ee02d" 362 | integrity sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w== 363 | 364 | json-schema-traverse@^0.4.1: 365 | version "0.4.1" 366 | resolved "https://registry.yarnpkg.com/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz#69f6a87d9513ab8bb8fe63bdb0979c448e684660" 367 | integrity sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg== 368 | 369 | loader-runner@^4.2.0: 370 | version "4.3.0" 371 | resolved "https://registry.yarnpkg.com/loader-runner/-/loader-runner-4.3.0.tgz#c1b4a163b99f614830353b16755e7149ac2314e1" 372 | integrity sha512-3R/1M+yS3j5ou80Me59j7F9IMs4PXs3VqRrm0TU3AbKPxlmpoY1TNscJV/oGJXo8qCatFGTfDbY6W6ipGOYXfg== 373 | 374 | merge-stream@^2.0.0: 375 | version "2.0.0" 376 | resolved "https://registry.yarnpkg.com/merge-stream/-/merge-stream-2.0.0.tgz#52823629a14dd00c9770fb6ad47dc6310f2c1f60" 377 | integrity sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w== 378 | 379 | mime-db@1.52.0: 380 | version "1.52.0" 381 | resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.52.0.tgz#bbabcdc02859f4987301c856e3387ce5ec43bf70" 382 | integrity sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg== 383 | 384 | mime-types@^2.1.27: 385 | version "2.1.35" 386 | resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.35.tgz#381a871b62a734450660ae3deee44813f70d959a" 387 | integrity sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw== 388 | dependencies: 389 | mime-db "1.52.0" 390 | 391 | neo-async@^2.6.2: 392 | version "2.6.2" 393 | resolved "https://registry.yarnpkg.com/neo-async/-/neo-async-2.6.2.tgz#b4aafb93e3aeb2d8174ca53cf163ab7d7308305f" 394 | integrity sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw== 395 | 396 | node-releases@^2.0.3: 397 | version "2.0.5" 398 | resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-2.0.5.tgz#280ed5bc3eba0d96ce44897d8aee478bfb3d9666" 399 | integrity sha512-U9h1NLROZTq9uE1SNffn6WuPDg8icmi3ns4rEl/oTfIle4iLjTliCzgTsbaIFMq/Xn078/lfY/BL0GWZ+psK4Q== 400 | 401 | picocolors@^1.0.0: 402 | version "1.0.0" 403 | resolved "https://registry.yarnpkg.com/picocolors/-/picocolors-1.0.0.tgz#cb5bdc74ff3f51892236eaf79d68bc44564ab81c" 404 | integrity sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ== 405 | 406 | punycode@^2.1.0: 407 | version "2.1.1" 408 | resolved "https://registry.yarnpkg.com/punycode/-/punycode-2.1.1.tgz#b58b010ac40c22c5657616c8d2c2c02c7bf479ec" 409 | integrity sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A== 410 | 411 | randombytes@^2.1.0: 412 | version "2.1.0" 413 | resolved "https://registry.yarnpkg.com/randombytes/-/randombytes-2.1.0.tgz#df6f84372f0270dc65cdf6291349ab7a473d4f2a" 414 | integrity sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ== 415 | dependencies: 416 | safe-buffer "^5.1.0" 417 | 418 | safe-buffer@^5.1.0: 419 | version "5.2.1" 420 | resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.2.1.tgz#1eaf9fa9bdb1fdd4ec75f58f9cdb4e6b7827eec6" 421 | integrity sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ== 422 | 423 | schema-utils@^3.1.0, schema-utils@^3.1.1: 424 | version "3.1.1" 425 | resolved "https://registry.yarnpkg.com/schema-utils/-/schema-utils-3.1.1.tgz#bc74c4b6b6995c1d88f76a8b77bea7219e0c8281" 426 | integrity sha512-Y5PQxS4ITlC+EahLuXaY86TXfR7Dc5lw294alXOq86JAHCihAIZfqv8nNCWvaEJvaC51uN9hbLGeV0cFBdH+Fw== 427 | dependencies: 428 | "@types/json-schema" "^7.0.8" 429 | ajv "^6.12.5" 430 | ajv-keywords "^3.5.2" 431 | 432 | serialize-javascript@^6.0.0: 433 | version "6.0.0" 434 | resolved "https://registry.yarnpkg.com/serialize-javascript/-/serialize-javascript-6.0.0.tgz#efae5d88f45d7924141da8b5c3a7a7e663fefeb8" 435 | integrity sha512-Qr3TosvguFt8ePWqsvRfrKyQXIiW+nGbYpy8XK24NQHE83caxWt+mIymTT19DGFbNWNLfEwsrkSmN64lVWB9ag== 436 | dependencies: 437 | randombytes "^2.1.0" 438 | 439 | source-map-support@~0.5.20: 440 | version "0.5.21" 441 | resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.5.21.tgz#04fe7c7f9e1ed2d662233c28cb2b35b9f63f6e4f" 442 | integrity sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w== 443 | dependencies: 444 | buffer-from "^1.0.0" 445 | source-map "^0.6.0" 446 | 447 | source-map@^0.6.0, source-map@^0.6.1: 448 | version "0.6.1" 449 | resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.6.1.tgz#74722af32e9614e9c287a8d0bbde48b5e2f1a263" 450 | integrity sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g== 451 | 452 | supports-color@^8.0.0: 453 | version "8.1.1" 454 | resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-8.1.1.tgz#cd6fc17e28500cff56c1b86c0a7fd4a54a73005c" 455 | integrity sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q== 456 | dependencies: 457 | has-flag "^4.0.0" 458 | 459 | tapable@^2.1.1, tapable@^2.2.0: 460 | version "2.2.1" 461 | resolved "https://registry.yarnpkg.com/tapable/-/tapable-2.2.1.tgz#1967a73ef4060a82f12ab96af86d52fdb76eeca0" 462 | integrity sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ== 463 | 464 | terser-webpack-plugin@^5.1.3: 465 | version "5.3.1" 466 | resolved "https://registry.yarnpkg.com/terser-webpack-plugin/-/terser-webpack-plugin-5.3.1.tgz#0320dcc270ad5372c1e8993fabbd927929773e54" 467 | integrity sha512-GvlZdT6wPQKbDNW/GDQzZFg/j4vKU96yl2q6mcUkzKOgW4gwf1Z8cZToUCrz31XHlPWH8MVb1r2tFtdDtTGJ7g== 468 | dependencies: 469 | jest-worker "^27.4.5" 470 | schema-utils "^3.1.1" 471 | serialize-javascript "^6.0.0" 472 | source-map "^0.6.1" 473 | terser "^5.7.2" 474 | 475 | terser@^5.7.2: 476 | version "5.14.2" 477 | resolved "https://registry.yarnpkg.com/terser/-/terser-5.14.2.tgz#9ac9f22b06994d736174f4091aa368db896f1c10" 478 | integrity sha512-oL0rGeM/WFQCUd0y2QrWxYnq7tfSuKBiqTjRPWrRgB46WD/kiwHwF8T23z78H6Q6kGCuuHcPB+KULHRdxvVGQA== 479 | dependencies: 480 | "@jridgewell/source-map" "^0.3.2" 481 | acorn "^8.5.0" 482 | commander "^2.20.0" 483 | source-map-support "~0.5.20" 484 | 485 | uri-js@^4.2.2: 486 | version "4.4.1" 487 | resolved "https://registry.yarnpkg.com/uri-js/-/uri-js-4.4.1.tgz#9b1a52595225859e55f669d928f88c6c57f2a77e" 488 | integrity sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg== 489 | dependencies: 490 | punycode "^2.1.0" 491 | 492 | watchpack@^2.3.1: 493 | version "2.3.1" 494 | resolved "https://registry.yarnpkg.com/watchpack/-/watchpack-2.3.1.tgz#4200d9447b401156eeca7767ee610f8809bc9d25" 495 | integrity sha512-x0t0JuydIo8qCNctdDrn1OzH/qDzk2+rdCOC3YzumZ42fiMqmQ7T3xQurykYMhYfHaPHTp4ZxAx2NfUo1K6QaA== 496 | dependencies: 497 | glob-to-regexp "^0.4.1" 498 | graceful-fs "^4.1.2" 499 | 500 | webpack-sources@^3.2.3: 501 | version "3.2.3" 502 | resolved "https://registry.yarnpkg.com/webpack-sources/-/webpack-sources-3.2.3.tgz#2d4daab8451fd4b240cc27055ff6a0c2ccea0cde" 503 | integrity sha512-/DyMEOrDgLKKIG0fmvtz+4dUX/3Ghozwgm6iPp8KRhvn+eQf9+Q7GWxVNMk3+uCPWfdXYC4ExGBckIXdFEfH1w== 504 | 505 | webpack@^5: 506 | version "5.72.1" 507 | resolved "https://registry.yarnpkg.com/webpack/-/webpack-5.72.1.tgz#3500fc834b4e9ba573b9f430b2c0a61e1bb57d13" 508 | integrity sha512-dXG5zXCLspQR4krZVR6QgajnZOjW2K/djHvdcRaDQvsjV9z9vaW6+ja5dZOYbqBBjF6kGXka/2ZyxNdc+8Jung== 509 | dependencies: 510 | "@types/eslint-scope" "^3.7.3" 511 | "@types/estree" "^0.0.51" 512 | "@webassemblyjs/ast" "1.11.1" 513 | "@webassemblyjs/wasm-edit" "1.11.1" 514 | "@webassemblyjs/wasm-parser" "1.11.1" 515 | acorn "^8.4.1" 516 | acorn-import-assertions "^1.7.6" 517 | browserslist "^4.14.5" 518 | chrome-trace-event "^1.0.2" 519 | enhanced-resolve "^5.9.3" 520 | es-module-lexer "^0.9.0" 521 | eslint-scope "5.1.1" 522 | events "^3.2.0" 523 | glob-to-regexp "^0.4.1" 524 | graceful-fs "^4.2.9" 525 | json-parse-even-better-errors "^2.3.1" 526 | loader-runner "^4.2.0" 527 | mime-types "^2.1.27" 528 | neo-async "^2.6.2" 529 | schema-utils "^3.1.0" 530 | tapable "^2.1.1" 531 | terser-webpack-plugin "^5.1.3" 532 | watchpack "^2.3.1" 533 | webpack-sources "^3.2.3" 534 | --------------------------------------------------------------------------------