├── img ├── table.jpg ├── text.jpg ├── tips.jpg └── default.jpg ├── tea.yaml ├── .prettierrc.js ├── .gitignore ├── .eslintrc.js ├── tsconfig.json ├── src ├── utils.ts ├── tpl.ts └── index.ts ├── package.json ├── README.md └── pnpm-lock.yaml /img/table.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/IFmiss/webpack-prompt-plugin/master/img/table.jpg -------------------------------------------------------------------------------- /img/text.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/IFmiss/webpack-prompt-plugin/master/img/text.jpg -------------------------------------------------------------------------------- /img/tips.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/IFmiss/webpack-prompt-plugin/master/img/tips.jpg -------------------------------------------------------------------------------- /img/default.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/IFmiss/webpack-prompt-plugin/master/img/default.jpg -------------------------------------------------------------------------------- /tea.yaml: -------------------------------------------------------------------------------- 1 | # https://tea.xyz/what-is-this-file 2 | --- 3 | version: 1.0.0 4 | codeOwners: 5 | - '0x18fb62c5c736405ece7E8e7a2F01D084fFa77B6c' 6 | quorum: 1 7 | -------------------------------------------------------------------------------- /.prettierrc.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | // 多行时使用尾后逗号,默认为"es5" "none" | "es5" | "all" 3 | trailingComma: 'none', 4 | // 缩进宽度 5 | tabWidth: 2, 6 | // 是否使用分号,默认为true 7 | semi: true, 8 | // 是否使用单引号包裹字符串,默认为false 9 | singleQuote: true, 10 | // 列宽,默认为80 11 | printWidth: 80 12 | }; 13 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | .DS_Store 2 | /node_modules 3 | /dist 4 | *-lock.* 5 | 6 | # local env files 7 | .env.local 8 | .env.*.local 9 | 10 | # Log files 11 | npm-debug.log* 12 | yarn-debug.log* 13 | yarn-error.log* 14 | 15 | # Editor directories and files 16 | .idea 17 | .vscode 18 | *.suo 19 | *.ntvs* 20 | *.njsproj 21 | *.sln 22 | *.sw* 23 | -------------------------------------------------------------------------------- /.eslintrc.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | env: { 3 | browser: true, 4 | es2021: true, 5 | node: true 6 | }, 7 | extends: [ 8 | 'eslint:recommended', 9 | 'plugin:@typescript-eslint/recommended', 10 | 'prettier', 11 | 'plugin:prettier/recommended' 12 | ], 13 | parser: '@typescript-eslint/parser', 14 | parserOptions: { 15 | ecmaVersion: 12, 16 | sourceType: 'module' 17 | }, 18 | plugins: ['@typescript-eslint', 'prettier'], 19 | ignorePatterns: ['/dist/', '*.md'], 20 | rules: { 21 | '@typescript-eslint/no-this-alias': 0 22 | } 23 | }; 24 | -------------------------------------------------------------------------------- /tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "compilerOptions": { 3 | "target": "es6", 4 | "module": "CommonJS", 5 | "moduleResolution": "node", 6 | "removeComments": false, 7 | "declaration": true, 8 | "outDir": "./dist", 9 | "declarationDir": "./dist", 10 | "baseUrl": "./", 11 | "esModuleInterop": true, 12 | "experimentalDecorators": true, 13 | "allowJs": true, 14 | "lib": [ 15 | "dom", 16 | "es2015" 17 | ], 18 | "sourceMap": false, 19 | "noImplicitAny": false 20 | }, 21 | "include": ["src/**/*"], 22 | "exclude": [ 23 | "dist", 24 | "node_modules" 25 | ] 26 | } -------------------------------------------------------------------------------- /src/utils.ts: -------------------------------------------------------------------------------- 1 | import fs from 'fs'; 2 | import { performance } from 'perf_hooks'; 3 | 4 | export function getPkg(): { 5 | [props: string]: unknown; 6 | } { 7 | const pkg = fs.readFileSync('package.json').toString(); 8 | return JSON.parse(pkg); 9 | } 10 | 11 | function time2Emoji(time: number): string { 12 | const t = time / 1000; 13 | if (t >= 20) { 14 | return '🐌'; 15 | } 16 | if (t > 15) { 17 | return '🐢'; 18 | } 19 | if (t > 10) { 20 | return '🛵'; 21 | } 22 | if (t > 6) { 23 | return '🚂'; 24 | } 25 | if (t > 4) { 26 | return '🚅'; 27 | } 28 | if (t > 2) { 29 | return '🚀'; 30 | } 31 | return '🛸 ⚡️⚡️⚡️'; 32 | } 33 | 34 | export function time2M(t: number): [string, string] { 35 | const time = performance.now() - t; 36 | const str = 37 | time > 2000 ? `${(time / 1000).toFixed(2)}s` : `${time.toFixed(0)}ms`; 38 | return [str, time2Emoji(time)]; 39 | } 40 | -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "webpack-prompt-plugin", 3 | "version": "1.1.11", 4 | "description": "Used to prompt ip link and some other information when webpack-dev-server Successfully started", 5 | "main": "dist/index.js", 6 | "typings": "dist/index.d.ts", 7 | "scripts": { 8 | "test": "echo \"Error: no test specified\" && exit 1", 9 | "build": "tsc", 10 | "publish": "npm publish --access=public" 11 | }, 12 | "files": [ 13 | "dist/", 14 | "README.md" 15 | ], 16 | "repository": { 17 | "type": "git", 18 | "url": "git+https://github.com/IFmiss/webpack-prompt-plugin.git" 19 | }, 20 | "keywords": [ 21 | "webpack-dev-server prompt plugin", 22 | "webpack toast", 23 | "webpack logger", 24 | "webpack prompt" 25 | ], 26 | "author": "ifmiss", 27 | "license": "ISC", 28 | "bugs": { 29 | "url": "https://github.com/IFmiss/webpack-prompt-plugin/issues" 30 | }, 31 | "homepage": "https://github.com/IFmiss/webpack-prompt-plugin#readme", 32 | "devDependencies": { 33 | "@types/node": "^16.3.2", 34 | "@typescript-eslint/eslint-plugin": "^4.28.3", 35 | "@typescript-eslint/parser": "^4.28.3", 36 | "eslint": "^7.30.0", 37 | "eslint-config-prettier": "^8.3.0", 38 | "eslint-plugin-prettier": "^3.4.0", 39 | "prettier": "^2.3.2", 40 | "typescript": "^4.3.5" 41 | }, 42 | "dependencies": { 43 | "chalk": "^4.1.0", 44 | "clipboardy": "^2.3.0", 45 | "ip": "^1.1.5" 46 | } 47 | } 48 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # webpack-prompt-plugin 2 | 3 | Used to prompt ip link and some other information when webpack-dev-server Successfully started 4 | 5 | ### usage 6 | 7 | install 8 | ```code 9 | yarn add webpack-prompt-plugin --dev 10 | ``` 11 | 12 | 或者 13 | ```code 14 | pnpm install webpack-prompt-plugin -D 15 | ``` 16 | 17 | ```js 18 | const webpackPromptPlugin = require('webpack-prompt-plugin'); 19 | 20 | module.exports = { 21 | // ... 22 | plugins: [ 23 | new webpackPromptPlugin() 24 | ], 25 | } 26 | ``` 27 | 28 | ```js 29 | // 带参数 30 | module.exports = { 31 | // ... 32 | plugins: [ 33 | new WebpackPromptPlugin({ 34 | tips: [ 35 | { 36 | name: '[🏀] web project', 37 | color: 'green' 38 | }, 39 | 'this is react spa project' 40 | ], 41 | style: 'table' 42 | }) 43 | ], 44 | } 45 | ``` 46 | 47 | ### Instance attributes 48 | ### style `'default' | 'text' | 'table'` 49 | - `default` 50 | 51 | ![default style](./img/default.jpg) 52 | 53 | - `text` 54 | 55 | ![text style](./img/text.jpg) 56 | 57 | - `table` 58 | 59 | ![table style](./img/table.jpg) 60 | 61 | 62 | default style is `default` 😂 63 | 64 | #### tips: `Array<{ text: string, color?: string } | string>` 65 | Prompt message queue, array object or string array can be 66 | ```code 67 | { 68 | tips: [ 69 | { 70 | name: '[🏀] web project', 71 | color: 'green' 72 | }, 73 | 'this is react spa project' 74 | ], 75 | } 76 | ``` 77 | ![tips text](./img/tips.jpg) 78 | -------------------------------------------------------------------------------- /src/tpl.ts: -------------------------------------------------------------------------------- 1 | import chalk from 'chalk'; 2 | import { getPkg, time2M } from './utils'; 3 | 4 | const packageJson = getPkg(); 5 | const { name, version } = packageJson; 6 | 7 | export type TemplateStyle = 'default' | 'text' | 'table'; 8 | type TemplateFnParams = { 9 | port: number; 10 | host: string; 11 | time: number; 12 | isFirst: boolean; 13 | }; 14 | type TemplateMapFn = { 15 | [k in TemplateStyle]: (params: TemplateFnParams) => void; 16 | }; 17 | 18 | export const logStartTime = ( 19 | time: number, 20 | desc = 'Project compiled time:' 21 | ): Array => { 22 | return [desc, ...time2M(time)]; 23 | }; 24 | 25 | export const logQueue = (queue: Array>): void => { 26 | try { 27 | queue?.forEach((item) => 28 | console.log(...(Array.isArray(item) ? item : [item])) 29 | ); 30 | } catch (e) { 31 | console.log('error', e); 32 | } 33 | }; 34 | 35 | export default { 36 | default: ({ port, host, time, isFirst }) => { 37 | const text = `http://${host}:${port}`; 38 | logQueue([ 39 | '\n', 40 | [chalk.bgGreen.black(' done '), chalk.green(`App is runing!`)], 41 | '\n', 42 | [ 43 | '- Local: ', 44 | chalk.underline.blue(`http://localhost:${port}`), 45 | isFirst ? chalk.gray(' [copied to clipboard]') : '' 46 | ], 47 | ['- Network:', chalk.underline.blue(text)], 48 | '\n', 49 | [ 50 | 'name: ', 51 | chalk.underline.green(name), 52 | ' version: ', 53 | chalk.underline.green(version) 54 | ], 55 | '\n', 56 | logStartTime(time), 57 | '\n' 58 | ]); 59 | }, 60 | 61 | text: ({ port, host, time, isFirst }) => { 62 | const text = `http://${host}:${port}`; 63 | logQueue([ 64 | '\n', 65 | ['Compiled Time ⏱:', ...time2M(time)], 66 | ['- Name: ', chalk.underline.green(name)], 67 | ['- Version: ', chalk.underline.green(version)], 68 | [ 69 | `Project is running at `, 70 | chalk.blue(`http://localhost:${port}`), 71 | isFirst ? chalk.gray(' [copied to clipboard]') : '' 72 | ], 73 | [`Visit on network at `, chalk.blue(text)], 74 | '\n' 75 | ]); 76 | }, 77 | 78 | table: ({ port, host, time, isFirst }) => { 79 | const text = `http://${host}:${port} ${chalk.gray( 80 | isFirst ? chalk.gray(' [copied to clipboard]') : '' 81 | )}`; 82 | console.log('\n'); 83 | console.table([ 84 | { 85 | name, 86 | url: text, 87 | port, 88 | startTime: `${time2M(time)[0]} ${time2M(time)[1]}`, 89 | version 90 | } 91 | ]); 92 | console.log('\n'); 93 | } 94 | } as TemplateMapFn; 95 | -------------------------------------------------------------------------------- /src/index.ts: -------------------------------------------------------------------------------- 1 | import tpl, { TemplateStyle } from './tpl'; 2 | import chalk from 'chalk'; 3 | import ip from 'ip'; 4 | import { performance } from 'perf_hooks'; 5 | import clipboardy from 'clipboardy'; 6 | 7 | const PLUGIN_NAME = 'webpack-prompt-plugin'; 8 | 9 | interface ITip { 10 | text: string; 11 | color?: TipColor; 12 | } 13 | 14 | type TipColor = 15 | | 'black' 16 | | 'red' 17 | | 'green' 18 | | 'yellow' 19 | | 'blue' 20 | | 'magenta' 21 | | 'cyan' 22 | | 'white' 23 | | 'gray' 24 | | 'grey' 25 | | 'blackBright' 26 | | 'redBright' 27 | | 'greenBright' 28 | | 'yellowBright' 29 | | 'blueBright' 30 | | 'magentaBright' 31 | | 'cyanBright' 32 | | 'whiteBright'; 33 | 34 | interface IOptions { 35 | // 文案提示信息 36 | tips?: Array; 37 | 38 | // 提示类型 39 | style?: TemplateStyle; 40 | } 41 | const DEFAULT_OPTIONS = { 42 | tips: [], 43 | style: 'default' 44 | }; 45 | 46 | let t: number; 47 | 48 | export = class WebpackPromptPlugin { 49 | isWatch = false; 50 | isFirst = true; 51 | option = DEFAULT_OPTIONS; 52 | constructor(options: IOptions) { 53 | this.option = Object.assign({}, this.option, options); 54 | } 55 | 56 | getIP(): string { 57 | return ip.address(); 58 | } 59 | 60 | printIP(devServer: { host: string; port: number | string }): void { 61 | const { 62 | option: { style } 63 | } = this; 64 | // 打印返回信息 65 | const host = devServer.host 66 | ? devServer.host === '0.0.0.0' 67 | ? this.getIP() 68 | : devServer.host 69 | : 'localhost'; 70 | const port = devServer.port || 8080; 71 | 72 | if (this.isFirst) { 73 | clipboardy.writeSync(`http://localhost:${port}`); 74 | } 75 | 76 | // console.log 77 | tpl[style]({ 78 | host, 79 | port, 80 | time: t, 81 | isFirst: this.isFirst 82 | }); 83 | } 84 | 85 | printHandler(compiler: any): void { 86 | const self = this; 87 | 88 | compiler.hooks.done.tap(PLUGIN_NAME, function () { 89 | setTimeout(() => { 90 | if (self.isWatch) { 91 | self.printIP(compiler?.options?.devServer || {}); 92 | self.printCustom(); 93 | self.isFirst = false; 94 | } 95 | }); 96 | }); 97 | } 98 | 99 | printCustom(): void { 100 | const { 101 | option: { tips } 102 | } = this; 103 | tips?.forEach((item: ITip | string) => { 104 | const color = 105 | typeof item !== 'string' && item.color ? item.color : 'white'; 106 | console.log(chalk[color]((item as ITip)?.text ?? (item || ''))); 107 | }); 108 | } 109 | 110 | /** 111 | * 初始化 event 事件 112 | */ 113 | initHandler(compiler: any): void { 114 | const self = this; 115 | compiler.hooks.watchRun.tap(PLUGIN_NAME, function (c) { 116 | t = performance.now(); 117 | self.isWatch = true; 118 | }); 119 | compiler.hooks.failed.tap(PLUGIN_NAME, function () { 120 | self.isWatch = false; 121 | console.log(chalk.red('failed')); 122 | }); 123 | } 124 | 125 | apply(compiler: any) { 126 | this.initHandler(compiler); 127 | this.printHandler(compiler); 128 | } 129 | }; 130 | -------------------------------------------------------------------------------- /pnpm-lock.yaml: -------------------------------------------------------------------------------- 1 | lockfileVersion: 5.3 2 | 3 | specifiers: 4 | '@types/node': ^16.3.2 5 | '@typescript-eslint/eslint-plugin': ^4.28.3 6 | '@typescript-eslint/parser': ^4.28.3 7 | chalk: ^4.1.0 8 | clipboardy: ^2.3.0 9 | eslint: ^7.30.0 10 | eslint-config-prettier: ^8.3.0 11 | eslint-plugin-prettier: ^3.4.0 12 | ip: ^1.1.5 13 | prettier: ^2.3.2 14 | typescript: ^4.3.5 15 | 16 | dependencies: 17 | chalk: 4.1.1 18 | clipboardy: 2.3.0 19 | ip: 1.1.5 20 | 21 | devDependencies: 22 | '@types/node': 16.3.2 23 | '@typescript-eslint/eslint-plugin': 4.28.3_8da3816a7c3fb8ebc9f4c4b3e4b2e38f 24 | '@typescript-eslint/parser': 4.28.3_eslint@7.30.0+typescript@4.3.5 25 | eslint: 7.30.0 26 | eslint-config-prettier: 8.3.0_eslint@7.30.0 27 | eslint-plugin-prettier: 3.4.0_0470f3bcd018a045da11d0bbb868d6c6 28 | prettier: 2.3.2 29 | typescript: 4.3.5 30 | 31 | packages: 32 | 33 | /@babel/code-frame/7.12.11: 34 | resolution: {integrity: sha512-Zt1yodBx1UcyiePMSkWnU4hPqhwq7hGi2nFL1LeA3EUl+q2LQx16MISgJ0+z7dnmgvP9QtIleuETGOiOH1RcIw==} 35 | dependencies: 36 | '@babel/highlight': 7.14.5 37 | dev: true 38 | 39 | /@babel/helper-validator-identifier/7.14.5: 40 | resolution: {integrity: sha512-5lsetuxCLilmVGyiLEfoHBRX8UCFD+1m2x3Rj97WrW3V7H3u4RWRXA4evMjImCsin2J2YT0QaVDGf+z8ondbAg==} 41 | engines: {node: '>=6.9.0'} 42 | dev: true 43 | 44 | /@babel/highlight/7.14.5: 45 | resolution: {integrity: sha512-qf9u2WFWVV0MppaL877j2dBtQIDgmidgjGk5VIMw3OadXvYaXn66U1BFlH2t4+t3i+8PhedppRv+i40ABzd+gg==} 46 | engines: {node: '>=6.9.0'} 47 | dependencies: 48 | '@babel/helper-validator-identifier': 7.14.5 49 | chalk: 2.4.2 50 | js-tokens: 4.0.0 51 | dev: true 52 | 53 | /@eslint/eslintrc/0.4.2: 54 | resolution: {integrity: sha512-8nmGq/4ycLpIwzvhI4tNDmQztZ8sp+hI7cyG8i1nQDhkAbRzHpXPidRAHlNvCZQpJTKw5ItIpMw9RSToGF00mg==} 55 | engines: {node: ^10.12.0 || >=12.0.0} 56 | dependencies: 57 | ajv: 6.12.6 58 | debug: 4.3.2 59 | espree: 7.3.1 60 | globals: 13.10.0 61 | ignore: 4.0.6 62 | import-fresh: 3.3.0 63 | js-yaml: 3.14.1 64 | minimatch: 3.0.4 65 | strip-json-comments: 3.1.1 66 | transitivePeerDependencies: 67 | - supports-color 68 | dev: true 69 | 70 | /@humanwhocodes/config-array/0.5.0: 71 | resolution: {integrity: sha512-FagtKFz74XrTl7y6HCzQpwDfXP0yhxe9lHLD1UZxjvZIcbyRz8zTFF/yYNfSfzU414eDwZ1SrO0Qvtyf+wFMQg==} 72 | engines: {node: '>=10.10.0'} 73 | dependencies: 74 | '@humanwhocodes/object-schema': 1.2.0 75 | debug: 4.3.2 76 | minimatch: 3.0.4 77 | transitivePeerDependencies: 78 | - supports-color 79 | dev: true 80 | 81 | /@humanwhocodes/object-schema/1.2.0: 82 | resolution: {integrity: sha512-wdppn25U8z/2yiaT6YGquE6X8sSv7hNMWSXYSSU1jGv/yd6XqjXgTDJ8KP4NgjTXfJ3GbRjeeb8RTV7a/VpM+w==} 83 | dev: true 84 | 85 | /@nodelib/fs.scandir/2.1.5: 86 | resolution: {integrity: sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==} 87 | engines: {node: '>= 8'} 88 | dependencies: 89 | '@nodelib/fs.stat': 2.0.5 90 | run-parallel: 1.2.0 91 | dev: true 92 | 93 | /@nodelib/fs.stat/2.0.5: 94 | resolution: {integrity: sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==} 95 | engines: {node: '>= 8'} 96 | dev: true 97 | 98 | /@nodelib/fs.walk/1.2.8: 99 | resolution: {integrity: sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==} 100 | engines: {node: '>= 8'} 101 | dependencies: 102 | '@nodelib/fs.scandir': 2.1.5 103 | fastq: 1.11.1 104 | dev: true 105 | 106 | /@types/json-schema/7.0.8: 107 | resolution: {integrity: sha512-YSBPTLTVm2e2OoQIDYx8HaeWJ5tTToLH67kXR7zYNGupXMEHa2++G8k+DczX2cFVgalypqtyZIcU19AFcmOpmg==} 108 | dev: true 109 | 110 | /@types/node/16.3.2: 111 | resolution: {integrity: sha512-jJs9ErFLP403I+hMLGnqDRWT0RYKSvArxuBVh2veudHV7ifEC1WAmjJADacZ7mRbA2nWgHtn8xyECMAot0SkAw==} 112 | dev: true 113 | 114 | /@typescript-eslint/eslint-plugin/4.28.3_8da3816a7c3fb8ebc9f4c4b3e4b2e38f: 115 | resolution: {integrity: sha512-jW8sEFu1ZeaV8xzwsfi6Vgtty2jf7/lJmQmDkDruBjYAbx5DA8JtbcMnP0rNPUG+oH5GoQBTSp+9613BzuIpYg==} 116 | engines: {node: ^10.12.0 || >=12.0.0} 117 | peerDependencies: 118 | '@typescript-eslint/parser': ^4.0.0 119 | eslint: ^5.0.0 || ^6.0.0 || ^7.0.0 120 | typescript: '*' 121 | peerDependenciesMeta: 122 | typescript: 123 | optional: true 124 | dependencies: 125 | '@typescript-eslint/experimental-utils': 4.28.3_eslint@7.30.0+typescript@4.3.5 126 | '@typescript-eslint/parser': 4.28.3_eslint@7.30.0+typescript@4.3.5 127 | '@typescript-eslint/scope-manager': 4.28.3 128 | debug: 4.3.2 129 | eslint: 7.30.0 130 | functional-red-black-tree: 1.0.1 131 | regexpp: 3.2.0 132 | semver: 7.3.5 133 | tsutils: 3.21.0_typescript@4.3.5 134 | typescript: 4.3.5 135 | transitivePeerDependencies: 136 | - supports-color 137 | dev: true 138 | 139 | /@typescript-eslint/experimental-utils/4.28.3_eslint@7.30.0+typescript@4.3.5: 140 | resolution: {integrity: sha512-zZYl9TnrxwEPi3FbyeX0ZnE8Hp7j3OCR+ELoUfbwGHGxWnHg9+OqSmkw2MoCVpZksPCZYpQzC559Ee9pJNHTQw==} 141 | engines: {node: ^10.12.0 || >=12.0.0} 142 | peerDependencies: 143 | eslint: '*' 144 | dependencies: 145 | '@types/json-schema': 7.0.8 146 | '@typescript-eslint/scope-manager': 4.28.3 147 | '@typescript-eslint/types': 4.28.3 148 | '@typescript-eslint/typescript-estree': 4.28.3_typescript@4.3.5 149 | eslint: 7.30.0 150 | eslint-scope: 5.1.1 151 | eslint-utils: 3.0.0_eslint@7.30.0 152 | transitivePeerDependencies: 153 | - supports-color 154 | - typescript 155 | dev: true 156 | 157 | /@typescript-eslint/parser/4.28.3_eslint@7.30.0+typescript@4.3.5: 158 | resolution: {integrity: sha512-ZyWEn34bJexn/JNYvLQab0Mo5e+qqQNhknxmc8azgNd4XqspVYR5oHq9O11fLwdZMRcj4by15ghSlIEq+H5ltQ==} 159 | engines: {node: ^10.12.0 || >=12.0.0} 160 | peerDependencies: 161 | eslint: ^5.0.0 || ^6.0.0 || ^7.0.0 162 | typescript: '*' 163 | peerDependenciesMeta: 164 | typescript: 165 | optional: true 166 | dependencies: 167 | '@typescript-eslint/scope-manager': 4.28.3 168 | '@typescript-eslint/types': 4.28.3 169 | '@typescript-eslint/typescript-estree': 4.28.3_typescript@4.3.5 170 | debug: 4.3.2 171 | eslint: 7.30.0 172 | typescript: 4.3.5 173 | transitivePeerDependencies: 174 | - supports-color 175 | dev: true 176 | 177 | /@typescript-eslint/scope-manager/4.28.3: 178 | resolution: {integrity: sha512-/8lMisZ5NGIzGtJB+QizQ5eX4Xd8uxedFfMBXOKuJGP0oaBBVEMbJVddQKDXyyB0bPlmt8i6bHV89KbwOelJiQ==} 179 | engines: {node: ^8.10.0 || ^10.13.0 || >=11.10.1} 180 | dependencies: 181 | '@typescript-eslint/types': 4.28.3 182 | '@typescript-eslint/visitor-keys': 4.28.3 183 | dev: true 184 | 185 | /@typescript-eslint/types/4.28.3: 186 | resolution: {integrity: sha512-kQFaEsQBQVtA9VGVyciyTbIg7S3WoKHNuOp/UF5RG40900KtGqfoiETWD/v0lzRXc+euVE9NXmfer9dLkUJrkA==} 187 | engines: {node: ^8.10.0 || ^10.13.0 || >=11.10.1} 188 | dev: true 189 | 190 | /@typescript-eslint/typescript-estree/4.28.3_typescript@4.3.5: 191 | resolution: {integrity: sha512-YAb1JED41kJsqCQt1NcnX5ZdTA93vKFCMP4lQYG6CFxd0VzDJcKttRlMrlG+1qiWAw8+zowmHU1H0OzjWJzR2w==} 192 | engines: {node: ^10.12.0 || >=12.0.0} 193 | peerDependencies: 194 | typescript: '*' 195 | peerDependenciesMeta: 196 | typescript: 197 | optional: true 198 | dependencies: 199 | '@typescript-eslint/types': 4.28.3 200 | '@typescript-eslint/visitor-keys': 4.28.3 201 | debug: 4.3.2 202 | globby: 11.0.4 203 | is-glob: 4.0.1 204 | semver: 7.3.5 205 | tsutils: 3.21.0_typescript@4.3.5 206 | typescript: 4.3.5 207 | transitivePeerDependencies: 208 | - supports-color 209 | dev: true 210 | 211 | /@typescript-eslint/visitor-keys/4.28.3: 212 | resolution: {integrity: sha512-ri1OzcLnk1HH4gORmr1dllxDzzrN6goUIz/P4MHFV0YZJDCADPR3RvYNp0PW2SetKTThar6wlbFTL00hV2Q+fg==} 213 | engines: {node: ^8.10.0 || ^10.13.0 || >=11.10.1} 214 | dependencies: 215 | '@typescript-eslint/types': 4.28.3 216 | eslint-visitor-keys: 2.1.0 217 | dev: true 218 | 219 | /acorn-jsx/5.3.2_acorn@7.4.1: 220 | resolution: {integrity: sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==} 221 | peerDependencies: 222 | acorn: ^6.0.0 || ^7.0.0 || ^8.0.0 223 | dependencies: 224 | acorn: 7.4.1 225 | dev: true 226 | 227 | /acorn/7.4.1: 228 | resolution: {integrity: sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A==} 229 | engines: {node: '>=0.4.0'} 230 | hasBin: true 231 | dev: true 232 | 233 | /ajv/6.12.6: 234 | resolution: {integrity: sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==} 235 | dependencies: 236 | fast-deep-equal: 3.1.3 237 | fast-json-stable-stringify: 2.1.0 238 | json-schema-traverse: 0.4.1 239 | uri-js: 4.4.1 240 | dev: true 241 | 242 | /ajv/8.6.2: 243 | resolution: {integrity: sha512-9807RlWAgT564wT+DjeyU5OFMPjmzxVobvDFmNAhY+5zD6A2ly3jDp6sgnfyDtlIQ+7H97oc/DGCzzfu9rjw9w==} 244 | dependencies: 245 | fast-deep-equal: 3.1.3 246 | json-schema-traverse: 1.0.0 247 | require-from-string: 2.0.2 248 | uri-js: 4.4.1 249 | dev: true 250 | 251 | /ansi-colors/4.1.1: 252 | resolution: {integrity: sha512-JoX0apGbHaUJBNl6yF+p6JAFYZ666/hhCGKN5t9QFjbJQKUU/g8MNbFDbvfrgKXvI1QpZplPOnwIo99lX/AAmA==} 253 | engines: {node: '>=6'} 254 | dev: true 255 | 256 | /ansi-regex/5.0.0: 257 | resolution: {integrity: sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==} 258 | engines: {node: '>=8'} 259 | dev: true 260 | 261 | /ansi-styles/3.2.1: 262 | resolution: {integrity: sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==} 263 | engines: {node: '>=4'} 264 | dependencies: 265 | color-convert: 1.9.3 266 | dev: true 267 | 268 | /ansi-styles/4.3.0: 269 | resolution: {integrity: sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==} 270 | engines: {node: '>=8'} 271 | dependencies: 272 | color-convert: 2.0.1 273 | 274 | /arch/2.2.0: 275 | resolution: {integrity: sha512-Of/R0wqp83cgHozfIYLbBMnej79U/SVGOOyuB3VVFv1NRM/PSFMK12x9KVtiYzJqmnU5WR2qp0Z5rHb7sWGnFQ==} 276 | dev: false 277 | 278 | /argparse/1.0.10: 279 | resolution: {integrity: sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==} 280 | dependencies: 281 | sprintf-js: 1.0.3 282 | dev: true 283 | 284 | /array-union/2.1.0: 285 | resolution: {integrity: sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==} 286 | engines: {node: '>=8'} 287 | dev: true 288 | 289 | /astral-regex/2.0.0: 290 | resolution: {integrity: sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ==} 291 | engines: {node: '>=8'} 292 | dev: true 293 | 294 | /balanced-match/1.0.2: 295 | resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==} 296 | dev: true 297 | 298 | /brace-expansion/1.1.11: 299 | resolution: {integrity: sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==} 300 | dependencies: 301 | balanced-match: 1.0.2 302 | concat-map: 0.0.1 303 | dev: true 304 | 305 | /braces/3.0.2: 306 | resolution: {integrity: sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==} 307 | engines: {node: '>=8'} 308 | dependencies: 309 | fill-range: 7.0.1 310 | dev: true 311 | 312 | /callsites/3.1.0: 313 | resolution: {integrity: sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==} 314 | engines: {node: '>=6'} 315 | dev: true 316 | 317 | /chalk/2.4.2: 318 | resolution: {integrity: sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==} 319 | engines: {node: '>=4'} 320 | dependencies: 321 | ansi-styles: 3.2.1 322 | escape-string-regexp: 1.0.5 323 | supports-color: 5.5.0 324 | dev: true 325 | 326 | /chalk/4.1.1: 327 | resolution: {integrity: sha512-diHzdDKxcU+bAsUboHLPEDQiw0qEe0qd7SYUn3HgcFlWgbDcfLGswOHYeGrHKzG9z6UYf01d9VFMfZxPM1xZSg==} 328 | engines: {node: '>=10'} 329 | dependencies: 330 | ansi-styles: 4.3.0 331 | supports-color: 7.2.0 332 | 333 | /clipboardy/2.3.0: 334 | resolution: {integrity: sha512-mKhiIL2DrQIsuXMgBgnfEHOZOryC7kY7YO//TN6c63wlEm3NG5tz+YgY5rVi29KCmq/QQjKYvM7a19+MDOTHOQ==} 335 | engines: {node: '>=8'} 336 | dependencies: 337 | arch: 2.2.0 338 | execa: 1.0.0 339 | is-wsl: 2.2.0 340 | dev: false 341 | 342 | /color-convert/1.9.3: 343 | resolution: {integrity: sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==} 344 | dependencies: 345 | color-name: 1.1.3 346 | dev: true 347 | 348 | /color-convert/2.0.1: 349 | resolution: {integrity: sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==} 350 | engines: {node: '>=7.0.0'} 351 | dependencies: 352 | color-name: 1.1.4 353 | 354 | /color-name/1.1.3: 355 | resolution: {integrity: sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=} 356 | dev: true 357 | 358 | /color-name/1.1.4: 359 | resolution: {integrity: sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==} 360 | 361 | /concat-map/0.0.1: 362 | resolution: {integrity: sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=} 363 | dev: true 364 | 365 | /cross-spawn/6.0.5: 366 | resolution: {integrity: sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==} 367 | engines: {node: '>=4.8'} 368 | dependencies: 369 | nice-try: 1.0.5 370 | path-key: 2.0.1 371 | semver: 5.7.1 372 | shebang-command: 1.2.0 373 | which: 1.3.1 374 | dev: false 375 | 376 | /cross-spawn/7.0.3: 377 | resolution: {integrity: sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==} 378 | engines: {node: '>= 8'} 379 | dependencies: 380 | path-key: 3.1.1 381 | shebang-command: 2.0.0 382 | which: 2.0.2 383 | dev: true 384 | 385 | /debug/4.3.2: 386 | resolution: {integrity: sha512-mOp8wKcvj7XxC78zLgw/ZA+6TSgkoE2C/ienthhRD298T7UNwAg9diBpLRxC0mOezLl4B0xV7M0cCO6P/O0Xhw==} 387 | engines: {node: '>=6.0'} 388 | peerDependencies: 389 | supports-color: '*' 390 | peerDependenciesMeta: 391 | supports-color: 392 | optional: true 393 | dependencies: 394 | ms: 2.1.2 395 | dev: true 396 | 397 | /deep-is/0.1.3: 398 | resolution: {integrity: sha1-s2nW+128E+7PUk+RsHD+7cNXzzQ=} 399 | dev: true 400 | 401 | /dir-glob/3.0.1: 402 | resolution: {integrity: sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==} 403 | engines: {node: '>=8'} 404 | dependencies: 405 | path-type: 4.0.0 406 | dev: true 407 | 408 | /doctrine/3.0.0: 409 | resolution: {integrity: sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==} 410 | engines: {node: '>=6.0.0'} 411 | dependencies: 412 | esutils: 2.0.3 413 | dev: true 414 | 415 | /emoji-regex/8.0.0: 416 | resolution: {integrity: sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==} 417 | dev: true 418 | 419 | /end-of-stream/1.4.4: 420 | resolution: {integrity: sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==} 421 | dependencies: 422 | once: 1.4.0 423 | dev: false 424 | 425 | /enquirer/2.3.6: 426 | resolution: {integrity: sha512-yjNnPr315/FjS4zIsUxYguYUPP2e1NK4d7E7ZOLiyYCcbFBiTMyID+2wvm2w6+pZ/odMA7cRkjhsPbltwBOrLg==} 427 | engines: {node: '>=8.6'} 428 | dependencies: 429 | ansi-colors: 4.1.1 430 | dev: true 431 | 432 | /escape-string-regexp/1.0.5: 433 | resolution: {integrity: sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=} 434 | engines: {node: '>=0.8.0'} 435 | dev: true 436 | 437 | /escape-string-regexp/4.0.0: 438 | resolution: {integrity: sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==} 439 | engines: {node: '>=10'} 440 | dev: true 441 | 442 | /eslint-config-prettier/8.3.0_eslint@7.30.0: 443 | resolution: {integrity: sha512-BgZuLUSeKzvlL/VUjx/Yb787VQ26RU3gGjA3iiFvdsp/2bMfVIWUVP7tjxtjS0e+HP409cPlPvNkQloz8C91ew==} 444 | hasBin: true 445 | peerDependencies: 446 | eslint: '>=7.0.0' 447 | dependencies: 448 | eslint: 7.30.0 449 | dev: true 450 | 451 | /eslint-plugin-prettier/3.4.0_0470f3bcd018a045da11d0bbb868d6c6: 452 | resolution: {integrity: sha512-UDK6rJT6INSfcOo545jiaOwB701uAIt2/dR7WnFQoGCVl1/EMqdANBmwUaqqQ45aXprsTGzSa39LI1PyuRBxxw==} 453 | engines: {node: '>=6.0.0'} 454 | peerDependencies: 455 | eslint: '>=5.0.0' 456 | eslint-config-prettier: '*' 457 | prettier: '>=1.13.0' 458 | peerDependenciesMeta: 459 | eslint-config-prettier: 460 | optional: true 461 | dependencies: 462 | eslint: 7.30.0 463 | eslint-config-prettier: 8.3.0_eslint@7.30.0 464 | prettier: 2.3.2 465 | prettier-linter-helpers: 1.0.0 466 | dev: true 467 | 468 | /eslint-scope/5.1.1: 469 | resolution: {integrity: sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==} 470 | engines: {node: '>=8.0.0'} 471 | dependencies: 472 | esrecurse: 4.3.0 473 | estraverse: 4.3.0 474 | dev: true 475 | 476 | /eslint-utils/2.1.0: 477 | resolution: {integrity: sha512-w94dQYoauyvlDc43XnGB8lU3Zt713vNChgt4EWwhXAP2XkBvndfxF0AgIqKOOasjPIPzj9JqgwkwbCYD0/V3Zg==} 478 | engines: {node: '>=6'} 479 | dependencies: 480 | eslint-visitor-keys: 1.3.0 481 | dev: true 482 | 483 | /eslint-utils/3.0.0_eslint@7.30.0: 484 | resolution: {integrity: sha512-uuQC43IGctw68pJA1RgbQS8/NP7rch6Cwd4j3ZBtgo4/8Flj4eGE7ZYSZRN3iq5pVUv6GPdW5Z1RFleo84uLDA==} 485 | engines: {node: ^10.0.0 || ^12.0.0 || >= 14.0.0} 486 | peerDependencies: 487 | eslint: '>=5' 488 | dependencies: 489 | eslint: 7.30.0 490 | eslint-visitor-keys: 2.1.0 491 | dev: true 492 | 493 | /eslint-visitor-keys/1.3.0: 494 | resolution: {integrity: sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ==} 495 | engines: {node: '>=4'} 496 | dev: true 497 | 498 | /eslint-visitor-keys/2.1.0: 499 | resolution: {integrity: sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw==} 500 | engines: {node: '>=10'} 501 | dev: true 502 | 503 | /eslint/7.30.0: 504 | resolution: {integrity: sha512-VLqz80i3as3NdloY44BQSJpFw534L9Oh+6zJOUaViV4JPd+DaHwutqP7tcpkW3YiXbK6s05RZl7yl7cQn+lijg==} 505 | engines: {node: ^10.12.0 || >=12.0.0} 506 | hasBin: true 507 | dependencies: 508 | '@babel/code-frame': 7.12.11 509 | '@eslint/eslintrc': 0.4.2 510 | '@humanwhocodes/config-array': 0.5.0 511 | ajv: 6.12.6 512 | chalk: 4.1.1 513 | cross-spawn: 7.0.3 514 | debug: 4.3.2 515 | doctrine: 3.0.0 516 | enquirer: 2.3.6 517 | escape-string-regexp: 4.0.0 518 | eslint-scope: 5.1.1 519 | eslint-utils: 2.1.0 520 | eslint-visitor-keys: 2.1.0 521 | espree: 7.3.1 522 | esquery: 1.4.0 523 | esutils: 2.0.3 524 | fast-deep-equal: 3.1.3 525 | file-entry-cache: 6.0.1 526 | functional-red-black-tree: 1.0.1 527 | glob-parent: 5.1.2 528 | globals: 13.10.0 529 | ignore: 4.0.6 530 | import-fresh: 3.3.0 531 | imurmurhash: 0.1.4 532 | is-glob: 4.0.1 533 | js-yaml: 3.14.1 534 | json-stable-stringify-without-jsonify: 1.0.1 535 | levn: 0.4.1 536 | lodash.merge: 4.6.2 537 | minimatch: 3.0.4 538 | natural-compare: 1.4.0 539 | optionator: 0.9.1 540 | progress: 2.0.3 541 | regexpp: 3.2.0 542 | semver: 7.3.5 543 | strip-ansi: 6.0.0 544 | strip-json-comments: 3.1.1 545 | table: 6.7.1 546 | text-table: 0.2.0 547 | v8-compile-cache: 2.3.0 548 | transitivePeerDependencies: 549 | - supports-color 550 | dev: true 551 | 552 | /espree/7.3.1: 553 | resolution: {integrity: sha512-v3JCNCE64umkFpmkFGqzVKsOT0tN1Zr+ueqLZfpV1Ob8e+CEgPWa+OxCoGH3tnhimMKIaBm4m/vaRpJ/krRz2g==} 554 | engines: {node: ^10.12.0 || >=12.0.0} 555 | dependencies: 556 | acorn: 7.4.1 557 | acorn-jsx: 5.3.2_acorn@7.4.1 558 | eslint-visitor-keys: 1.3.0 559 | dev: true 560 | 561 | /esprima/4.0.1: 562 | resolution: {integrity: sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==} 563 | engines: {node: '>=4'} 564 | hasBin: true 565 | dev: true 566 | 567 | /esquery/1.4.0: 568 | resolution: {integrity: sha512-cCDispWt5vHHtwMY2YrAQ4ibFkAL8RbH5YGBnZBc90MolvvfkkQcJro/aZiAQUlQ3qgrYS6D6v8Gc5G5CQsc9w==} 569 | engines: {node: '>=0.10'} 570 | dependencies: 571 | estraverse: 5.2.0 572 | dev: true 573 | 574 | /esrecurse/4.3.0: 575 | resolution: {integrity: sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==} 576 | engines: {node: '>=4.0'} 577 | dependencies: 578 | estraverse: 5.2.0 579 | dev: true 580 | 581 | /estraverse/4.3.0: 582 | resolution: {integrity: sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==} 583 | engines: {node: '>=4.0'} 584 | dev: true 585 | 586 | /estraverse/5.2.0: 587 | resolution: {integrity: sha512-BxbNGGNm0RyRYvUdHpIwv9IWzeM9XClbOxwoATuFdOE7ZE6wHL+HQ5T8hoPM+zHvmKzzsEqhgy0GrQ5X13afiQ==} 588 | engines: {node: '>=4.0'} 589 | dev: true 590 | 591 | /esutils/2.0.3: 592 | resolution: {integrity: sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==} 593 | engines: {node: '>=0.10.0'} 594 | dev: true 595 | 596 | /execa/1.0.0: 597 | resolution: {integrity: sha512-adbxcyWV46qiHyvSp50TKt05tB4tK3HcmF7/nxfAdhnox83seTDbwnaqKO4sXRy7roHAIFqJP/Rw/AuEbX61LA==} 598 | engines: {node: '>=6'} 599 | dependencies: 600 | cross-spawn: 6.0.5 601 | get-stream: 4.1.0 602 | is-stream: 1.1.0 603 | npm-run-path: 2.0.2 604 | p-finally: 1.0.0 605 | signal-exit: 3.0.3 606 | strip-eof: 1.0.0 607 | dev: false 608 | 609 | /fast-deep-equal/3.1.3: 610 | resolution: {integrity: sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==} 611 | dev: true 612 | 613 | /fast-diff/1.2.0: 614 | resolution: {integrity: sha512-xJuoT5+L99XlZ8twedaRf6Ax2TgQVxvgZOYoPKqZufmJib0tL2tegPBOZb1pVNgIhlqDlA0eO0c3wBvQcmzx4w==} 615 | dev: true 616 | 617 | /fast-glob/3.2.7: 618 | resolution: {integrity: sha512-rYGMRwip6lUMvYD3BTScMwT1HtAs2d71SMv66Vrxs0IekGZEjhM0pcMfjQPnknBt2zeCwQMEupiN02ZP4DiT1Q==} 619 | engines: {node: '>=8'} 620 | dependencies: 621 | '@nodelib/fs.stat': 2.0.5 622 | '@nodelib/fs.walk': 1.2.8 623 | glob-parent: 5.1.2 624 | merge2: 1.4.1 625 | micromatch: 4.0.4 626 | dev: true 627 | 628 | /fast-json-stable-stringify/2.1.0: 629 | resolution: {integrity: sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==} 630 | dev: true 631 | 632 | /fast-levenshtein/2.0.6: 633 | resolution: {integrity: sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc=} 634 | dev: true 635 | 636 | /fastq/1.11.1: 637 | resolution: {integrity: sha512-HOnr8Mc60eNYl1gzwp6r5RoUyAn5/glBolUzP/Ez6IFVPMPirxn/9phgL6zhOtaTy7ISwPvQ+wT+hfcRZh/bzw==} 638 | dependencies: 639 | reusify: 1.0.4 640 | dev: true 641 | 642 | /file-entry-cache/6.0.1: 643 | resolution: {integrity: sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==} 644 | engines: {node: ^10.12.0 || >=12.0.0} 645 | dependencies: 646 | flat-cache: 3.0.4 647 | dev: true 648 | 649 | /fill-range/7.0.1: 650 | resolution: {integrity: sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==} 651 | engines: {node: '>=8'} 652 | dependencies: 653 | to-regex-range: 5.0.1 654 | dev: true 655 | 656 | /flat-cache/3.0.4: 657 | resolution: {integrity: sha512-dm9s5Pw7Jc0GvMYbshN6zchCA9RgQlzzEZX3vylR9IqFfS8XciblUXOKfW6SiuJ0e13eDYZoZV5wdrev7P3Nwg==} 658 | engines: {node: ^10.12.0 || >=12.0.0} 659 | dependencies: 660 | flatted: 3.2.1 661 | rimraf: 3.0.2 662 | dev: true 663 | 664 | /flatted/3.2.1: 665 | resolution: {integrity: sha512-OMQjaErSFHmHqZe+PSidH5n8j3O0F2DdnVh8JB4j4eUQ2k6KvB0qGfrKIhapvez5JerBbmWkaLYUYWISaESoXg==} 666 | dev: true 667 | 668 | /fs.realpath/1.0.0: 669 | resolution: {integrity: sha1-FQStJSMVjKpA20onh8sBQRmU6k8=} 670 | dev: true 671 | 672 | /functional-red-black-tree/1.0.1: 673 | resolution: {integrity: sha1-GwqzvVU7Kg1jmdKcDj6gslIHgyc=} 674 | dev: true 675 | 676 | /get-stream/4.1.0: 677 | resolution: {integrity: sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w==} 678 | engines: {node: '>=6'} 679 | dependencies: 680 | pump: 3.0.0 681 | dev: false 682 | 683 | /glob-parent/5.1.2: 684 | resolution: {integrity: sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==} 685 | engines: {node: '>= 6'} 686 | dependencies: 687 | is-glob: 4.0.1 688 | dev: true 689 | 690 | /glob/7.1.7: 691 | resolution: {integrity: sha512-OvD9ENzPLbegENnYP5UUfJIirTg4+XwMWGaQfQTY0JenxNvvIKP3U3/tAQSPIu/lHxXYSZmpXlUHeqAIdKzBLQ==} 692 | dependencies: 693 | fs.realpath: 1.0.0 694 | inflight: 1.0.6 695 | inherits: 2.0.4 696 | minimatch: 3.0.4 697 | once: 1.4.0 698 | path-is-absolute: 1.0.1 699 | dev: true 700 | 701 | /globals/13.10.0: 702 | resolution: {integrity: sha512-piHC3blgLGFjvOuMmWZX60f+na1lXFDhQXBf1UYp2fXPXqvEUbOhNwi6BsQ0bQishwedgnjkwv1d9zKf+MWw3g==} 703 | engines: {node: '>=8'} 704 | dependencies: 705 | type-fest: 0.20.2 706 | dev: true 707 | 708 | /globby/11.0.4: 709 | resolution: {integrity: sha512-9O4MVG9ioZJ08ffbcyVYyLOJLk5JQ688pJ4eMGLpdWLHq/Wr1D9BlriLQyL0E+jbkuePVZXYFj47QM/v093wHg==} 710 | engines: {node: '>=10'} 711 | dependencies: 712 | array-union: 2.1.0 713 | dir-glob: 3.0.1 714 | fast-glob: 3.2.7 715 | ignore: 5.1.8 716 | merge2: 1.4.1 717 | slash: 3.0.0 718 | dev: true 719 | 720 | /has-flag/3.0.0: 721 | resolution: {integrity: sha1-tdRU3CGZriJWmfNGfloH87lVuv0=} 722 | engines: {node: '>=4'} 723 | dev: true 724 | 725 | /has-flag/4.0.0: 726 | resolution: {integrity: sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==} 727 | engines: {node: '>=8'} 728 | 729 | /ignore/4.0.6: 730 | resolution: {integrity: sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg==} 731 | engines: {node: '>= 4'} 732 | dev: true 733 | 734 | /ignore/5.1.8: 735 | resolution: {integrity: sha512-BMpfD7PpiETpBl/A6S498BaIJ6Y/ABT93ETbby2fP00v4EbvPBXWEoaR1UBPKs3iR53pJY7EtZk5KACI57i1Uw==} 736 | engines: {node: '>= 4'} 737 | dev: true 738 | 739 | /import-fresh/3.3.0: 740 | resolution: {integrity: sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==} 741 | engines: {node: '>=6'} 742 | dependencies: 743 | parent-module: 1.0.1 744 | resolve-from: 4.0.0 745 | dev: true 746 | 747 | /imurmurhash/0.1.4: 748 | resolution: {integrity: sha1-khi5srkoojixPcT7a21XbyMUU+o=} 749 | engines: {node: '>=0.8.19'} 750 | dev: true 751 | 752 | /inflight/1.0.6: 753 | resolution: {integrity: sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=} 754 | dependencies: 755 | once: 1.4.0 756 | wrappy: 1.0.2 757 | dev: true 758 | 759 | /inherits/2.0.4: 760 | resolution: {integrity: sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==} 761 | dev: true 762 | 763 | /ip/1.1.5: 764 | resolution: {integrity: sha1-vd7XARQpCCjAoDnnLvJfWq7ENUo=} 765 | dev: false 766 | 767 | /is-docker/2.2.1: 768 | resolution: {integrity: sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ==} 769 | engines: {node: '>=8'} 770 | hasBin: true 771 | dev: false 772 | 773 | /is-extglob/2.1.1: 774 | resolution: {integrity: sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=} 775 | engines: {node: '>=0.10.0'} 776 | dev: true 777 | 778 | /is-fullwidth-code-point/3.0.0: 779 | resolution: {integrity: sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==} 780 | engines: {node: '>=8'} 781 | dev: true 782 | 783 | /is-glob/4.0.1: 784 | resolution: {integrity: sha512-5G0tKtBTFImOqDnLB2hG6Bp2qcKEFduo4tZu9MT/H6NQv/ghhy30o55ufafxJ/LdH79LLs2Kfrn85TLKyA7BUg==} 785 | engines: {node: '>=0.10.0'} 786 | dependencies: 787 | is-extglob: 2.1.1 788 | dev: true 789 | 790 | /is-number/7.0.0: 791 | resolution: {integrity: sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==} 792 | engines: {node: '>=0.12.0'} 793 | dev: true 794 | 795 | /is-stream/1.1.0: 796 | resolution: {integrity: sha1-EtSj3U5o4Lec6428hBc66A2RykQ=} 797 | engines: {node: '>=0.10.0'} 798 | dev: false 799 | 800 | /is-wsl/2.2.0: 801 | resolution: {integrity: sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww==} 802 | engines: {node: '>=8'} 803 | dependencies: 804 | is-docker: 2.2.1 805 | dev: false 806 | 807 | /isexe/2.0.0: 808 | resolution: {integrity: sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=} 809 | 810 | /js-tokens/4.0.0: 811 | resolution: {integrity: sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==} 812 | dev: true 813 | 814 | /js-yaml/3.14.1: 815 | resolution: {integrity: sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==} 816 | hasBin: true 817 | dependencies: 818 | argparse: 1.0.10 819 | esprima: 4.0.1 820 | dev: true 821 | 822 | /json-schema-traverse/0.4.1: 823 | resolution: {integrity: sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==} 824 | dev: true 825 | 826 | /json-schema-traverse/1.0.0: 827 | resolution: {integrity: sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==} 828 | dev: true 829 | 830 | /json-stable-stringify-without-jsonify/1.0.1: 831 | resolution: {integrity: sha1-nbe1lJatPzz+8wp1FC0tkwrXJlE=} 832 | dev: true 833 | 834 | /levn/0.4.1: 835 | resolution: {integrity: sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==} 836 | engines: {node: '>= 0.8.0'} 837 | dependencies: 838 | prelude-ls: 1.2.1 839 | type-check: 0.4.0 840 | dev: true 841 | 842 | /lodash.clonedeep/4.5.0: 843 | resolution: {integrity: sha1-4j8/nE+Pvd6HJSnBBxhXoIblzO8=} 844 | dev: true 845 | 846 | /lodash.merge/4.6.2: 847 | resolution: {integrity: sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==} 848 | dev: true 849 | 850 | /lodash.truncate/4.4.2: 851 | resolution: {integrity: sha1-WjUNoLERO4N+z//VgSy+WNbq4ZM=} 852 | dev: true 853 | 854 | /lru-cache/6.0.0: 855 | resolution: {integrity: sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==} 856 | engines: {node: '>=10'} 857 | dependencies: 858 | yallist: 4.0.0 859 | dev: true 860 | 861 | /merge2/1.4.1: 862 | resolution: {integrity: sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==} 863 | engines: {node: '>= 8'} 864 | dev: true 865 | 866 | /micromatch/4.0.4: 867 | resolution: {integrity: sha512-pRmzw/XUcwXGpD9aI9q/0XOwLNygjETJ8y0ao0wdqprrzDa4YnxLcz7fQRZr8voh8V10kGhABbNcHVk5wHgWwg==} 868 | engines: {node: '>=8.6'} 869 | dependencies: 870 | braces: 3.0.2 871 | picomatch: 2.3.0 872 | dev: true 873 | 874 | /minimatch/3.0.4: 875 | resolution: {integrity: sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==} 876 | dependencies: 877 | brace-expansion: 1.1.11 878 | dev: true 879 | 880 | /ms/2.1.2: 881 | resolution: {integrity: sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==} 882 | dev: true 883 | 884 | /natural-compare/1.4.0: 885 | resolution: {integrity: sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc=} 886 | dev: true 887 | 888 | /nice-try/1.0.5: 889 | resolution: {integrity: sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ==} 890 | dev: false 891 | 892 | /npm-run-path/2.0.2: 893 | resolution: {integrity: sha1-NakjLfo11wZ7TLLd8jV7GHFTbF8=} 894 | engines: {node: '>=4'} 895 | dependencies: 896 | path-key: 2.0.1 897 | dev: false 898 | 899 | /once/1.4.0: 900 | resolution: {integrity: sha1-WDsap3WWHUsROsF9nFC6753Xa9E=} 901 | dependencies: 902 | wrappy: 1.0.2 903 | 904 | /optionator/0.9.1: 905 | resolution: {integrity: sha512-74RlY5FCnhq4jRxVUPKDaRwrVNXMqsGsiW6AJw4XK8hmtm10wC0ypZBLw5IIp85NZMr91+qd1RvvENwg7jjRFw==} 906 | engines: {node: '>= 0.8.0'} 907 | dependencies: 908 | deep-is: 0.1.3 909 | fast-levenshtein: 2.0.6 910 | levn: 0.4.1 911 | prelude-ls: 1.2.1 912 | type-check: 0.4.0 913 | word-wrap: 1.2.3 914 | dev: true 915 | 916 | /p-finally/1.0.0: 917 | resolution: {integrity: sha1-P7z7FbiZpEEjs0ttzBi3JDNqLK4=} 918 | engines: {node: '>=4'} 919 | dev: false 920 | 921 | /parent-module/1.0.1: 922 | resolution: {integrity: sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==} 923 | engines: {node: '>=6'} 924 | dependencies: 925 | callsites: 3.1.0 926 | dev: true 927 | 928 | /path-is-absolute/1.0.1: 929 | resolution: {integrity: sha1-F0uSaHNVNP+8es5r9TpanhtcX18=} 930 | engines: {node: '>=0.10.0'} 931 | dev: true 932 | 933 | /path-key/2.0.1: 934 | resolution: {integrity: sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A=} 935 | engines: {node: '>=4'} 936 | dev: false 937 | 938 | /path-key/3.1.1: 939 | resolution: {integrity: sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==} 940 | engines: {node: '>=8'} 941 | dev: true 942 | 943 | /path-type/4.0.0: 944 | resolution: {integrity: sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==} 945 | engines: {node: '>=8'} 946 | dev: true 947 | 948 | /picomatch/2.3.0: 949 | resolution: {integrity: sha512-lY1Q/PiJGC2zOv/z391WOTD+Z02bCgsFfvxoXXf6h7kv9o+WmsmzYqrAwY63sNgOxE4xEdq0WyUnXfKeBrSvYw==} 950 | engines: {node: '>=8.6'} 951 | dev: true 952 | 953 | /prelude-ls/1.2.1: 954 | resolution: {integrity: sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==} 955 | engines: {node: '>= 0.8.0'} 956 | dev: true 957 | 958 | /prettier-linter-helpers/1.0.0: 959 | resolution: {integrity: sha512-GbK2cP9nraSSUF9N2XwUwqfzlAFlMNYYl+ShE/V+H8a9uNl/oUqB1w2EL54Jh0OlyRSd8RfWYJ3coVS4TROP2w==} 960 | engines: {node: '>=6.0.0'} 961 | dependencies: 962 | fast-diff: 1.2.0 963 | dev: true 964 | 965 | /prettier/2.3.2: 966 | resolution: {integrity: sha512-lnJzDfJ66zkMy58OL5/NY5zp70S7Nz6KqcKkXYzn2tMVrNxvbqaBpg7H3qHaLxCJ5lNMsGuM8+ohS7cZrthdLQ==} 967 | engines: {node: '>=10.13.0'} 968 | hasBin: true 969 | dev: true 970 | 971 | /progress/2.0.3: 972 | resolution: {integrity: sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==} 973 | engines: {node: '>=0.4.0'} 974 | dev: true 975 | 976 | /pump/3.0.0: 977 | resolution: {integrity: sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==} 978 | dependencies: 979 | end-of-stream: 1.4.4 980 | once: 1.4.0 981 | dev: false 982 | 983 | /punycode/2.1.1: 984 | resolution: {integrity: sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==} 985 | engines: {node: '>=6'} 986 | dev: true 987 | 988 | /queue-microtask/1.2.3: 989 | resolution: {integrity: sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==} 990 | dev: true 991 | 992 | /regexpp/3.2.0: 993 | resolution: {integrity: sha512-pq2bWo9mVD43nbts2wGv17XLiNLya+GklZ8kaDLV2Z08gDCsGpnKn9BFMepvWuHCbyVvY7J5o5+BVvoQbmlJLg==} 994 | engines: {node: '>=8'} 995 | dev: true 996 | 997 | /require-from-string/2.0.2: 998 | resolution: {integrity: sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==} 999 | engines: {node: '>=0.10.0'} 1000 | dev: true 1001 | 1002 | /resolve-from/4.0.0: 1003 | resolution: {integrity: sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==} 1004 | engines: {node: '>=4'} 1005 | dev: true 1006 | 1007 | /reusify/1.0.4: 1008 | resolution: {integrity: sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==} 1009 | engines: {iojs: '>=1.0.0', node: '>=0.10.0'} 1010 | dev: true 1011 | 1012 | /rimraf/3.0.2: 1013 | resolution: {integrity: sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==} 1014 | hasBin: true 1015 | dependencies: 1016 | glob: 7.1.7 1017 | dev: true 1018 | 1019 | /run-parallel/1.2.0: 1020 | resolution: {integrity: sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==} 1021 | dependencies: 1022 | queue-microtask: 1.2.3 1023 | dev: true 1024 | 1025 | /semver/5.7.1: 1026 | resolution: {integrity: sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==} 1027 | hasBin: true 1028 | dev: false 1029 | 1030 | /semver/7.3.5: 1031 | resolution: {integrity: sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==} 1032 | engines: {node: '>=10'} 1033 | hasBin: true 1034 | dependencies: 1035 | lru-cache: 6.0.0 1036 | dev: true 1037 | 1038 | /shebang-command/1.2.0: 1039 | resolution: {integrity: sha1-RKrGW2lbAzmJaMOfNj/uXer98eo=} 1040 | engines: {node: '>=0.10.0'} 1041 | dependencies: 1042 | shebang-regex: 1.0.0 1043 | dev: false 1044 | 1045 | /shebang-command/2.0.0: 1046 | resolution: {integrity: sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==} 1047 | engines: {node: '>=8'} 1048 | dependencies: 1049 | shebang-regex: 3.0.0 1050 | dev: true 1051 | 1052 | /shebang-regex/1.0.0: 1053 | resolution: {integrity: sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM=} 1054 | engines: {node: '>=0.10.0'} 1055 | dev: false 1056 | 1057 | /shebang-regex/3.0.0: 1058 | resolution: {integrity: sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==} 1059 | engines: {node: '>=8'} 1060 | dev: true 1061 | 1062 | /signal-exit/3.0.3: 1063 | resolution: {integrity: sha512-VUJ49FC8U1OxwZLxIbTTrDvLnf/6TDgxZcK8wxR8zs13xpx7xbG60ndBlhNrFi2EMuFRoeDoJO7wthSLq42EjA==} 1064 | dev: false 1065 | 1066 | /slash/3.0.0: 1067 | resolution: {integrity: sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==} 1068 | engines: {node: '>=8'} 1069 | dev: true 1070 | 1071 | /slice-ansi/4.0.0: 1072 | resolution: {integrity: sha512-qMCMfhY040cVHT43K9BFygqYbUPFZKHOg7K73mtTWJRb8pyP3fzf4Ixd5SzdEJQ6MRUg/WBnOLxghZtKKurENQ==} 1073 | engines: {node: '>=10'} 1074 | dependencies: 1075 | ansi-styles: 4.3.0 1076 | astral-regex: 2.0.0 1077 | is-fullwidth-code-point: 3.0.0 1078 | dev: true 1079 | 1080 | /sprintf-js/1.0.3: 1081 | resolution: {integrity: sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=} 1082 | dev: true 1083 | 1084 | /string-width/4.2.2: 1085 | resolution: {integrity: sha512-XBJbT3N4JhVumXE0eoLU9DCjcaF92KLNqTmFCnG1pf8duUxFGwtP6AD6nkjw9a3IdiRtL3E2w3JDiE/xi3vOeA==} 1086 | engines: {node: '>=8'} 1087 | dependencies: 1088 | emoji-regex: 8.0.0 1089 | is-fullwidth-code-point: 3.0.0 1090 | strip-ansi: 6.0.0 1091 | dev: true 1092 | 1093 | /strip-ansi/6.0.0: 1094 | resolution: {integrity: sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==} 1095 | engines: {node: '>=8'} 1096 | dependencies: 1097 | ansi-regex: 5.0.0 1098 | dev: true 1099 | 1100 | /strip-eof/1.0.0: 1101 | resolution: {integrity: sha1-u0P/VZim6wXYm1n80SnJgzE2Br8=} 1102 | engines: {node: '>=0.10.0'} 1103 | dev: false 1104 | 1105 | /strip-json-comments/3.1.1: 1106 | resolution: {integrity: sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==} 1107 | engines: {node: '>=8'} 1108 | dev: true 1109 | 1110 | /supports-color/5.5.0: 1111 | resolution: {integrity: sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==} 1112 | engines: {node: '>=4'} 1113 | dependencies: 1114 | has-flag: 3.0.0 1115 | dev: true 1116 | 1117 | /supports-color/7.2.0: 1118 | resolution: {integrity: sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==} 1119 | engines: {node: '>=8'} 1120 | dependencies: 1121 | has-flag: 4.0.0 1122 | 1123 | /table/6.7.1: 1124 | resolution: {integrity: sha512-ZGum47Yi6KOOFDE8m223td53ath2enHcYLgOCjGr5ngu8bdIARQk6mN/wRMv4yMRcHnCSnHbCEha4sobQx5yWg==} 1125 | engines: {node: '>=10.0.0'} 1126 | dependencies: 1127 | ajv: 8.6.2 1128 | lodash.clonedeep: 4.5.0 1129 | lodash.truncate: 4.4.2 1130 | slice-ansi: 4.0.0 1131 | string-width: 4.2.2 1132 | strip-ansi: 6.0.0 1133 | dev: true 1134 | 1135 | /text-table/0.2.0: 1136 | resolution: {integrity: sha1-f17oI66AUgfACvLfSoTsP8+lcLQ=} 1137 | dev: true 1138 | 1139 | /to-regex-range/5.0.1: 1140 | resolution: {integrity: sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==} 1141 | engines: {node: '>=8.0'} 1142 | dependencies: 1143 | is-number: 7.0.0 1144 | dev: true 1145 | 1146 | /tslib/1.14.1: 1147 | resolution: {integrity: sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==} 1148 | dev: true 1149 | 1150 | /tsutils/3.21.0_typescript@4.3.5: 1151 | resolution: {integrity: sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA==} 1152 | engines: {node: '>= 6'} 1153 | peerDependencies: 1154 | typescript: '>=2.8.0 || >= 3.2.0-dev || >= 3.3.0-dev || >= 3.4.0-dev || >= 3.5.0-dev || >= 3.6.0-dev || >= 3.6.0-beta || >= 3.7.0-dev || >= 3.7.0-beta' 1155 | dependencies: 1156 | tslib: 1.14.1 1157 | typescript: 4.3.5 1158 | dev: true 1159 | 1160 | /type-check/0.4.0: 1161 | resolution: {integrity: sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==} 1162 | engines: {node: '>= 0.8.0'} 1163 | dependencies: 1164 | prelude-ls: 1.2.1 1165 | dev: true 1166 | 1167 | /type-fest/0.20.2: 1168 | resolution: {integrity: sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==} 1169 | engines: {node: '>=10'} 1170 | dev: true 1171 | 1172 | /typescript/4.3.5: 1173 | resolution: {integrity: sha512-DqQgihaQ9cUrskJo9kIyW/+g0Vxsk8cDtZ52a3NGh0YNTfpUSArXSohyUGnvbPazEPLu398C0UxmKSOrPumUzA==} 1174 | engines: {node: '>=4.2.0'} 1175 | hasBin: true 1176 | dev: true 1177 | 1178 | /uri-js/4.4.1: 1179 | resolution: {integrity: sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==} 1180 | dependencies: 1181 | punycode: 2.1.1 1182 | dev: true 1183 | 1184 | /v8-compile-cache/2.3.0: 1185 | resolution: {integrity: sha512-l8lCEmLcLYZh4nbunNZvQCJc5pv7+RCwa8q/LdUx8u7lsWvPDKmpodJAJNwkAhJC//dFY48KuIEmjtd4RViDrA==} 1186 | dev: true 1187 | 1188 | /which/1.3.1: 1189 | resolution: {integrity: sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==} 1190 | hasBin: true 1191 | dependencies: 1192 | isexe: 2.0.0 1193 | dev: false 1194 | 1195 | /which/2.0.2: 1196 | resolution: {integrity: sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==} 1197 | engines: {node: '>= 8'} 1198 | hasBin: true 1199 | dependencies: 1200 | isexe: 2.0.0 1201 | dev: true 1202 | 1203 | /word-wrap/1.2.3: 1204 | resolution: {integrity: sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ==} 1205 | engines: {node: '>=0.10.0'} 1206 | dev: true 1207 | 1208 | /wrappy/1.0.2: 1209 | resolution: {integrity: sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=} 1210 | 1211 | /yallist/4.0.0: 1212 | resolution: {integrity: sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==} 1213 | dev: true 1214 | --------------------------------------------------------------------------------