├── .editorconfig ├── .gitignore ├── .npmignore ├── .npmrc ├── .prettierrc ├── CHANGELOG.md ├── README.md ├── package.json ├── src ├── index.ts └── utils.ts ├── tsconfig.json ├── tsup.config.ts └── yarn.lock /.editorconfig: -------------------------------------------------------------------------------- 1 | # http://editorconfig.org 2 | root = true 3 | 4 | [*] 5 | indent_style = space 6 | indent_size = 2 7 | end_of_line = lf 8 | charset = utf-8 9 | trim_trailing_whitespace = true 10 | insert_final_newline = true 11 | 12 | # Use 4 spaces for the Python files 13 | [*.py] 14 | indent_size = 4 15 | max_line_length = 80 16 | 17 | # The JSON files contain newlines inconsistently 18 | [*.json] 19 | insert_final_newline = ignore 20 | 21 | # Minified JavaScript files shouldn't be changed 22 | [**.min.js] 23 | indent_style = ignore 24 | insert_final_newline = ignore 25 | 26 | # Makefiles always use tabs for indentation 27 | [Makefile] 28 | indent_style = tab 29 | 30 | # Batch files use tabs for indentation 31 | [*.bat] 32 | indent_style = tab 33 | 34 | [*.md] 35 | trim_trailing_whitespace = false 36 | 37 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | # Logs 2 | logs 3 | *.log 4 | npm-debug.log* 5 | yarn-debug.log* 6 | yarn-error.log* 7 | lerna-debug.log* 8 | 9 | # Diagnostic reports (https://nodejs.org/api/report.html) 10 | report.[0-9]*.[0-9]*.[0-9]*.[0-9]*.json 11 | 12 | # Runtime data 13 | pids 14 | *.pid 15 | *.seed 16 | *.pid.lock 17 | 18 | # Directory for instrumented libs generated by jscoverage/JSCover 19 | lib-cov 20 | 21 | # Coverage directory used by tools like istanbul 22 | coverage 23 | *.lcov 24 | 25 | # nyc test coverage 26 | .nyc_output 27 | 28 | # Grunt intermediate storage (https://gruntjs.com/creating-plugins#storing-task-files) 29 | .grunt 30 | 31 | # Bower dependency directory (https://bower.io/) 32 | bower_components 33 | 34 | # node-waf configuration 35 | .lock-wscript 36 | 37 | # Compiled binary addons (https://nodejs.org/api/addons.html) 38 | build/Release 39 | 40 | # Dependency directories 41 | node_modules/ 42 | jspm_packages/ 43 | 44 | # TypeScript v1 declaration files 45 | typings/ 46 | 47 | # TypeScript cache 48 | *.tsbuildinfo 49 | 50 | # Optional npm cache directory 51 | .npm 52 | 53 | # Optional eslint cache 54 | .eslintcache 55 | 56 | # Microbundle cache 57 | .rpt2_cache/ 58 | .rts2_cache_cjs/ 59 | .rts2_cache_es/ 60 | .rts2_cache_umd/ 61 | 62 | # Optional REPL history 63 | .node_repl_history 64 | 65 | # Output of 'npm pack' 66 | *.tgz 67 | 68 | # Yarn Integrity file 69 | .yarn-integrity 70 | 71 | # dotenv environment variables file 72 | .env 73 | .env.test 74 | 75 | # parcel-bundler cache (https://parceljs.org/) 76 | .cache 77 | 78 | # Next.js build output 79 | .next 80 | 81 | # Nuxt.js build / generate output 82 | .nuxt 83 | dist 84 | 85 | # Gatsby files 86 | .cache/ 87 | # Comment in the public line in if your project uses Gatsby and *not* Next.js 88 | # https://nextjs.org/blog/next-9-1#public-directory-support 89 | # public 90 | 91 | # vuepress build output 92 | .vuepress/dist 93 | 94 | # Serverless directories 95 | .serverless/ 96 | 97 | # FuseBox cache 98 | .fusebox/ 99 | 100 | # DynamoDB Local files 101 | .dynamodb/ 102 | 103 | # TernJS port file 104 | .tern-port 105 | -------------------------------------------------------------------------------- /.npmignore: -------------------------------------------------------------------------------- 1 | example 2 | -------------------------------------------------------------------------------- /.npmrc: -------------------------------------------------------------------------------- 1 | registry=https://registry.npmjs.org/ 2 | -------------------------------------------------------------------------------- /.prettierrc: -------------------------------------------------------------------------------- 1 | { 2 | "semi": true, 3 | "singleQuote": true, 4 | "tabWidth": 2, 5 | "useTabs": false 6 | } 7 | -------------------------------------------------------------------------------- /CHANGELOG.md: -------------------------------------------------------------------------------- 1 | # Changelog 2 | 3 | All notable changes to this project will be documented in this file. See [standard-version](https://github.com/conventional-changelog/standard-version) for commit guidelines. 4 | 5 | ### [0.0.9](https://github.com/AngusFu/webpack5-cdn-plugin/compare/v0.0.8...v0.0.9) (2022-04-19) 6 | 7 | 8 | ### Bug Fixes 9 | 10 | * options types ([1844f75](https://github.com/AngusFu/webpack5-cdn-plugin/commit/1844f753cdeca4190f70a82d5f85fdd4d0e80cb5)) 11 | 12 | ### [0.0.8](https://github.com/AngusFu/webpack5-cdn-plugin/compare/v0.0.7...v0.0.8) (2022-04-19) 13 | 14 | 15 | ### Features 16 | 17 | * expose before/done lifecycles ([69f9dd6](https://github.com/AngusFu/webpack5-cdn-plugin/commit/69f9dd60f10a1df20eaf9b7322213d765be93182)) 18 | 19 | ### [0.0.7](https://github.com/AngusFu/webpack5-cdn-plugin/compare/v0.0.6...v0.0.7) (2022-04-19) 20 | 21 | 22 | ### Features 23 | 24 | * add extname for uploadContent() ([4fffe12](https://github.com/AngusFu/webpack5-cdn-plugin/commit/4fffe1269110d7428637be0a5f577ecaaf284080)) 25 | 26 | ### [0.0.6](https://github.com/AngusFu/webpack5-cdn-plugin/compare/v0.0.5...v0.0.6) (2022-04-18) 27 | 28 | 29 | ### Features 30 | 31 | * support parentheses around `__webpack_require__.p + ...` ([30853f0](https://github.com/AngusFu/webpack5-cdn-plugin/commit/30853f0df98b55a360998f1a86cdc5d14a06c94d)) 32 | 33 | ### [0.0.5](https://github.com/AngusFu/webpack5-cdn-plugin/compare/v0.0.4...v0.0.5) (2022-04-18) 34 | 35 | ### [0.0.4](https://github.com/AngusFu/webpack5-cdn-plugin/compare/v0.0.3...v0.0.4) (2022-04-16) 36 | 37 | 38 | ### Bug Fixes 39 | 40 | * manifest result more stable ([ec5b1c3](https://github.com/AngusFu/webpack5-cdn-plugin/commit/ec5b1c3c08f11ff812944c174b94c812314fe3b8)) 41 | * support `keepLocalFiles` option ([220eafa](https://github.com/AngusFu/webpack5-cdn-plugin/commit/220eafa57bf466c5a63f76024ddda4f5a90ad56b)) 42 | 43 | ### [0.0.3](https://github.com/AngusFu/webpack5-cdn-plugin/compare/v0.0.2...v0.0.3) (2022-04-16) 44 | 45 | 46 | ### Bug Fixes 47 | 48 | * only support empty publicPath ([6265397](https://github.com/AngusFu/webpack5-cdn-plugin/commit/6265397af8131ae790f15f635359ce8c31a2e80b)) 49 | 50 | ### 0.0.2 (2022-04-16) 51 | 52 | 53 | ### Features 54 | 55 | * initial commit ([ce0bf7a](https://github.com/AngusFu/webpack5-cdn-plugin/commit/ce0bf7a46233c5c3bb1d09c6043916ab263b448c)) 56 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # webpack5-cdn-plugin 2 | 3 | > For webpack4, please refer to [webpack4-cdn-plugin](https://github.com/AngusFu/webpack4-cdn-plugin). 4 | 5 | ## Docs 6 | 7 | ### Install 8 | ``` 9 | npm i webpack5-cdn-plugin -D 10 | ``` 11 | 12 | ### Usage 13 | 14 | ```tsx 15 | const { Webpack5CDNPlugin } = require('webpack5-cdn-plugin') 16 | 17 | let cacheData = null; 18 | 19 | // webpack config 20 | module.exports = { 21 | plugins: [ 22 | // ... 23 | new Webpack5CDNPlugin({ 24 | keepLocalFiles: false, 25 | manifestFilename: 'manifest.json', 26 | uploadContent({ file, extname, content }) { 27 | const hash = md5(content) 28 | 29 | if (cacheData.has(hash)) { 30 | return Promise.resolve(cacheData.get(hash)) 31 | } 32 | 33 | // NOTE 需要自己实现上传文件、重试、并发控制 34 | // demo: https://gist.github.com/AngusFu/b99b0ffb001b0bf4009d09b5e3b041d6 35 | return uploadTaskManager 36 | .upload(content) 37 | .then(result => { 38 | cacheData.set(hash, result.url) 39 | return result.url 40 | }) 41 | }, 42 | before() { 43 | cacheData = readCache() 44 | }, 45 | done() { 46 | persistCache(cacheData) 47 | } 48 | }) 49 | ] 50 | } 51 | ``` 52 | 53 | -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "webpack5-cdn-plugin", 3 | "version": "0.0.9", 4 | "description": "webpack plugin for uploading assets to you cdn", 5 | "main": "dist/index.js", 6 | "types": "dist/index.d.ts", 7 | "scripts": { 8 | "build": "tsup src/index.ts", 9 | "prepublish": "npm run build" 10 | }, 11 | "repository": { 12 | "type": "git", 13 | "url": "git+https://github.com/AngusFu/webpack5-cdn-plugin.git" 14 | }, 15 | "keywords": [ 16 | "webpack", 17 | "plugin", 18 | "cdn" 19 | ], 20 | "author": "AngusFu", 21 | "license": "MIT", 22 | "bugs": { 23 | "url": "https://github.com/AngusFu/webpack5-cdn-plugin/issues" 24 | }, 25 | "homepage": "https://github.com/AngusFu/webpack5-cdn-plugin#readme", 26 | "devDependencies": { 27 | "tsup": "^5.12.5", 28 | "typescript": "^4.6.3" 29 | }, 30 | "dependencies": { 31 | "@types/webpack": "^5.28.0" 32 | }, 33 | "peerDependencies": { 34 | "webpack": "^5.0.0" 35 | } 36 | } 37 | -------------------------------------------------------------------------------- /src/index.ts: -------------------------------------------------------------------------------- 1 | import { extname } from 'path'; 2 | import { Compiler } from 'webpack'; 3 | 4 | import { 5 | injectAssetManifest, 6 | interpolateHTMLAssets, 7 | replaceCSSUrls, 8 | replacePublicPath, 9 | } from './utils'; 10 | 11 | /** 12 | * 1. webworker: not supported 13 | * 2. module federation: not tested 14 | */ 15 | class Webpack5CDNPlugin { 16 | private pluginName = 'Webpack5-CDN-Plugin'; 17 | 18 | constructor( 19 | public options: { 20 | keepLocalFiles?: boolean; 21 | manifestFilename?: boolean | string; 22 | uploadContent: (input: { 23 | file: string; 24 | extname: string; 25 | content: string | Buffer; 26 | }) => Promise; 27 | 28 | before?(): void; 29 | done?(): void; 30 | } 31 | ) {} 32 | 33 | apply(compiler: Compiler) { 34 | // only work in production mode 35 | if ((process.env.NODE_ENV || compiler.options.mode) !== 'production') { 36 | return; 37 | } 38 | 39 | const { 40 | pluginName, 41 | options: { 42 | before, 43 | done, 44 | manifestFilename, 45 | uploadContent, 46 | keepLocalFiles = true, 47 | }, 48 | } = this; 49 | 50 | const fs = compiler.outputFileSystem; 51 | const { 52 | Compilation, 53 | sources: { RawSource }, 54 | } = compiler.webpack; 55 | 56 | const assetMap = new Map(); 57 | 58 | compiler.hooks.beforeRun.tap(pluginName, () => { 59 | before?.(); 60 | }); 61 | 62 | compiler.hooks.thisCompilation.tap(pluginName, (compilation) => { 63 | if (compilation.outputOptions.publicPath) { 64 | throw `Error: You should set publicPath to ""`; 65 | } 66 | }); 67 | 68 | compiler.hooks.compilation.tap(pluginName, (compilation) => { 69 | compilation.hooks.processAssets.tap( 70 | { 71 | name: pluginName, 72 | stage: Compilation.PROCESS_ASSETS_STAGE_OPTIMIZE, 73 | }, 74 | (assets) => { 75 | // 往js里面插东西,处理 `__webpack_require__.p` 76 | // 这个时候还没开始压缩 77 | Object.entries(assets).forEach(([filename, source]) => { 78 | if (filename.endsWith('.js')) { 79 | compilation.updateAsset( 80 | filename, 81 | new RawSource(replacePublicPath(source.source().toString())) 82 | ); 83 | } 84 | }); 85 | } 86 | ); 87 | }); 88 | 89 | compiler.hooks.emit.tap(pluginName, (compilation) => { 90 | compilation.getAssets().forEach((asset) => { 91 | const source = asset.source.source(); 92 | const isText = /\.(js|css|html)$/.test(asset.name); 93 | 94 | assetMap.set(asset.name, isText ? source.toString() : source); 95 | }); 96 | }); 97 | 98 | compiler.hooks.afterEmit.tapPromise(pluginName, async (compilation) => { 99 | const stats = compilation.getStats().toJson(); 100 | 101 | const urlMap = new Map(); 102 | const getManifestJSON = (format?: boolean) => 103 | JSON.stringify( 104 | Object.fromEntries( 105 | // as stable as possible 106 | [...urlMap.entries()].sort((a, b) => a[0].localeCompare(b[0])) 107 | ), 108 | null, 109 | format ? 2 : undefined 110 | ); 111 | 112 | const unlink = (name: string) => 113 | new Promise((resolve, reject) => { 114 | fs.unlink?.(stats.outputPath + '/' + name, (err) => { 115 | if (err) { 116 | reject(err); 117 | } 118 | resolve(null); 119 | }); 120 | }); 121 | const overwrite = (name: string, content: string | Buffer) => 122 | new Promise((resolve, reject) => { 123 | fs.writeFile(stats.outputPath + '/' + name, content, (err) => { 124 | if (err) { 125 | reject(err); 126 | } 127 | resolve(null); 128 | }); 129 | }); 130 | 131 | const uploadFile = async ( 132 | name: string, 133 | content: string | Buffer, 134 | shouldOverwrite?: boolean 135 | ) => { 136 | if (shouldOverwrite) { 137 | await overwrite(name, content); 138 | } 139 | 140 | const url = await uploadContent({ 141 | file: name, 142 | content, 143 | extname: extname(name), 144 | }); 145 | 146 | if (url && typeof url === 'string') { 147 | urlMap.set(name, url); 148 | 149 | if (!keepLocalFiles) { 150 | await unlink(name); 151 | } 152 | } 153 | }; 154 | 155 | const [epNames, styleNames, htmlNames, resourceNames] = [ 156 | new Set(), 157 | new Set(), 158 | new Set(), 159 | new Set(), 160 | ]; 161 | { 162 | Object.keys(stats.entrypoints || {}).forEach((key) => { 163 | stats.entrypoints?.[key].assets?.forEach(({ name }) => 164 | epNames.add(name) 165 | ); 166 | }); 167 | (stats.assets || []) 168 | .filter(({ name }) => !name.endsWith('.map')) 169 | .forEach(({ name }) => { 170 | if (epNames.has(name)) return; 171 | else if (name.endsWith('.css')) styleNames.add(name); 172 | else if (name.endsWith('.html')) htmlNames.add(name); 173 | else resourceNames.add(name); 174 | }); 175 | } 176 | 177 | await Promise.all( 178 | Array.from(resourceNames).map((name) => 179 | uploadFile(name, assetMap.get(name)!) 180 | ) 181 | ); 182 | 183 | await Promise.all( 184 | Array.from(styleNames).map((name) => 185 | uploadFile( 186 | name, 187 | replaceCSSUrls(name, assetMap.get(name) as string, urlMap), 188 | true 189 | ) 190 | ) 191 | ); 192 | 193 | await Promise.all( 194 | Array.from(epNames).map((name) => 195 | uploadFile( 196 | name, 197 | injectAssetManifest( 198 | assetMap.get(name) as string, 199 | getManifestJSON() 200 | ), 201 | true 202 | ) 203 | ) 204 | ); 205 | 206 | await Promise.all( 207 | Array.from(htmlNames).map((name) => 208 | overwrite( 209 | name, 210 | interpolateHTMLAssets( 211 | assetMap.get(name) as string, 212 | urlMap, 213 | getManifestJSON() 214 | ) 215 | ) 216 | ) 217 | ); 218 | 219 | if (manifestFilename) { 220 | await overwrite( 221 | manifestFilename === true ? 'manifest.json' : manifestFilename, 222 | getManifestJSON(true) 223 | ); 224 | } 225 | }); 226 | 227 | compiler.hooks.done.tap(pluginName, () => { 228 | // clean up 229 | assetMap.forEach((_, key) => assetMap.delete(key)); 230 | done?.(); 231 | }); 232 | } 233 | } 234 | 235 | export { Webpack5CDNPlugin }; 236 | export default Webpack5CDNPlugin; 237 | -------------------------------------------------------------------------------- /src/utils.ts: -------------------------------------------------------------------------------- 1 | import { dirname, join } from 'path'; 2 | import { format, parse } from 'url'; 3 | 4 | const ASSET_LOOKUP_DEF = ` 5 | ;(function () { 6 | __webpack_require__.__webpack_asset_map__ = 1; 7 | __webpack_require__.__asset__ = function (path, wR) { 8 | return __webpack_require__.__webpack_asset_map__[path] || (wR.p + path); 9 | }; 10 | })(); 11 | `; 12 | export const replacePublicPath = function (str: string) { 13 | return ( 14 | str 15 | .replace( 16 | /__webpack_require__\.p\s*\=\s*["']/g, 17 | (m) => `${ASSET_LOOKUP_DEF}\n${m}` 18 | ) 19 | // 基于一个假设:本行后面没有其他多余内容 20 | .replace( 21 | /(?:\(__webpack_require__\.p\s*\+\s*)([^\n]+?)\)(;?)$/gm, 22 | (_, g1, g2) => 23 | `__webpack_require__.__asset__(${g1}, __webpack_require__)${g2}` 24 | ) 25 | .replace( 26 | /(?:__webpack_require__\.p\s*\+\s*)([^\n]+?)(;?)$/gm, 27 | (_, g1, g2) => 28 | `__webpack_require__.__asset__(${g1}, __webpack_require__)${g2}` 29 | ) 30 | ); 31 | }; 32 | 33 | export const injectAssetManifest = function (content: string, json: string) { 34 | return content.replace( 35 | /__webpack_asset_map__\s*=\s*1/g, 36 | () => `__webpack_asset_map__=${json}` 37 | ); 38 | }; 39 | 40 | export const replaceCSSUrls = function ( 41 | filename: string, 42 | content: string, 43 | urlMap: Map 44 | ) { 45 | // SEE https://www.regextester.com/106463 46 | const re = /url\((?!['"]?(?:data:|https?:|\/\/))(['"]?)([^'")]*)\1\)/g; 47 | 48 | return content.replace(re, (match, _, path) => { 49 | const { search, hash, pathname } = parse(path); 50 | const extra = format({ search, hash }); 51 | const name = /^[.]{1,2}\//.test(path) 52 | ? join(dirname(filename), pathname ?? '') 53 | : pathname; 54 | const url = urlMap.get(name ?? ''); 55 | 56 | return url ? match.replace(path, url + extra) : match; 57 | }); 58 | }; 59 | 60 | export const interpolateHTMLAssets = function ( 61 | input: string, 62 | urlMap: Map, 63 | manifestJSON: string 64 | ) { 65 | const replaceImports = function (source: string) { 66 | const reIgnorePath = /^(?:(https?:)?\/\/)|(?:data:)/; 67 | const reImport = 68 | /(?:<(?:link|script|img)[^>]+(?:src|href)\s*=\s*)(['"]?)([^'"\s>]+)\1/g; 69 | 70 | return source.replace(reImport, (match, _, path) => { 71 | if (reIgnorePath.test(path)) return match; 72 | 73 | // avoid query strings that may affect the result 74 | const file = path.split('?')[0]; 75 | const url = urlMap.get(file); 76 | return url ? match.replace(path, url) : match; 77 | }); 78 | }; 79 | 80 | return injectAssetManifest(replaceImports(input), manifestJSON); 81 | }; 82 | -------------------------------------------------------------------------------- /tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "compilerOptions": { 3 | /* Basic Options */ 4 | // "incremental": true, /* Enable incremental compilation */ 5 | "target": "esnext" /* Specify ECMAScript target version: 'ES3' (default), 'ES5', 'ES2015', 'ES2016', 'ES2017', 'ES2018', 'ES2019', 'ES2020', or 'ESNEXT'. */, 6 | "module": "esnext" /* Specify module code generation: 'none', 'commonjs', 'amd', 'system', 'umd', 'es2015', 'es2020', or 'ESNext'. */, 7 | // "lib": [], /* Specify library files to be included in the compilation. */ 8 | // "allowJs": true, /* Allow javascript files to be compiled. */ 9 | // "checkJs": true, /* Report errors in .js files. */ 10 | // "jsx": "preserve", /* Specify JSX code generation: 'preserve', 'react-native', or 'react'. */ 11 | // "declaration": true, /* Generates corresponding '.d.ts' file. */ 12 | // "declarationMap": true, /* Generates a sourcemap for each corresponding '.d.ts' file. */ 13 | // "sourceMap": true, /* Generates corresponding '.map' file. */ 14 | // "outFile": "./", /* Concatenate and emit output to single file. */ 15 | "outDir": "./dist" /* Redirect output structure to the directory. */, 16 | // "rootDir": "./", /* Specify the root directory of input files. Use to control the output directory structure with --outDir. */ 17 | // "composite": true, /* Enable project compilation */ 18 | // "tsBuildInfoFile": "./", /* Specify file to store incremental compilation information */ 19 | // "removeComments": true, /* Do not emit comments to output. */ 20 | // "noEmit": true, /* Do not emit outputs. */ 21 | // "importHelpers": true, /* Import emit helpers from 'tslib'. */ 22 | // "downlevelIteration": true, /* Provide full support for iterables in 'for-of', spread, and destructuring when targeting 'ES5' or 'ES3'. */ 23 | // "isolatedModules": true, /* Transpile each file as a separate module (similar to 'ts.transpileModule'). */ 24 | 25 | /* Strict Type-Checking Options */ 26 | "strict": true /* Enable all strict type-checking options. */, 27 | // "noImplicitAny": true, /* Raise error on expressions and declarations with an implied 'any' type. */ 28 | // "strictNullChecks": true, /* Enable strict null checks. */ 29 | // "strictFunctionTypes": true, /* Enable strict checking of function types. */ 30 | // "strictBindCallApply": true, /* Enable strict 'bind', 'call', and 'apply' methods on functions. */ 31 | // "strictPropertyInitialization": true, /* Enable strict checking of property initialization in classes. */ 32 | // "noImplicitThis": true, /* Raise error on 'this' expressions with an implied 'any' type. */ 33 | // "alwaysStrict": true, /* Parse in strict mode and emit "use strict" for each source file. */ 34 | 35 | /* Additional Checks */ 36 | // "noUnusedLocals": true, /* Report errors on unused locals. */ 37 | // "noUnusedParameters": true, /* Report errors on unused parameters. */ 38 | // "noImplicitReturns": true, /* Report error when not all code paths in function return a value. */ 39 | // "noFallthroughCasesInSwitch": true, /* Report errors for fallthrough cases in switch statement. */ 40 | 41 | /* Module Resolution Options */ 42 | "moduleResolution": "node" /* Specify module resolution strategy: 'node' (Node.js) or 'classic' (TypeScript pre-1.6). */, 43 | // "baseUrl": "./", /* Base directory to resolve non-absolute module names. */ 44 | // "paths": {}, /* A series of entries which re-map imports to lookup locations relative to the 'baseUrl'. */ 45 | // "rootDirs": [], /* List of root folders whose combined content represents the structure of the project at runtime. */ 46 | // "typeRoots": [], /* List of folders to include type definitions from. */ 47 | // "types": [], /* Type declaration files to be included in compilation. */ 48 | // "allowSyntheticDefaultImports": true, /* Allow default imports from modules with no default export. This does not affect code emit, just typechecking. */ 49 | "esModuleInterop": true /* Enables emit interoperability between CommonJS and ES Modules via creation of namespace objects for all imports. Implies 'allowSyntheticDefaultImports'. */, 50 | // "preserveSymlinks": true, /* Do not resolve the real path of symlinks. */ 51 | // "allowUmdGlobalAccess": true, /* Allow accessing UMD globals from modules. */ 52 | "resolveJsonModule": true, 53 | "skipLibCheck": true, 54 | /* Source Map Options */ 55 | // "sourceRoot": "", /* Specify the location where debugger should locate TypeScript files instead of source locations. */ 56 | // "mapRoot": "", /* Specify the location where debugger should locate map files instead of generated locations. */ 57 | // "inlineSourceMap": true, /* Emit a single file with source maps instead of having a separate file. */ 58 | // "inlineSources": true, /* Emit the source alongside the sourcemaps within a single file; requires '--inlineSourceMap' or '--sourceMap' to be set. */ 59 | 60 | /* Experimental Options */ 61 | // "experimentalDecorators": true, /* Enables experimental support for ES7 decorators. */ 62 | // "emitDecoratorMetadata": true, /* Enables experimental support for emitting type metadata for decorators. */ 63 | 64 | /* Advanced Options */ 65 | "forceConsistentCasingInFileNames": true /* Disallow inconsistently-cased references to the same file. */ 66 | } 67 | } 68 | -------------------------------------------------------------------------------- /tsup.config.ts: -------------------------------------------------------------------------------- 1 | import { defineConfig } from 'tsup'; 2 | 3 | export default defineConfig({ 4 | name: 'webpack5-cdn-plugin', 5 | target: 'node12.20.0', 6 | dts: { 7 | resolve: true, 8 | entry: './src/index.ts', 9 | }, 10 | }); 11 | -------------------------------------------------------------------------------- /yarn.lock: -------------------------------------------------------------------------------- 1 | # THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY. 2 | # yarn lockfile v1 3 | 4 | 5 | "@nodelib/fs.scandir@2.1.5": 6 | version "2.1.5" 7 | resolved "https://registry.npmmirror.com/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz#7619c2eb21b25483f6d167548b4cfd5a7488c3d5" 8 | integrity sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g== 9 | dependencies: 10 | "@nodelib/fs.stat" "2.0.5" 11 | run-parallel "^1.1.9" 12 | 13 | "@nodelib/fs.stat@2.0.5", "@nodelib/fs.stat@^2.0.2": 14 | version "2.0.5" 15 | resolved "https://registry.npmmirror.com/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz#5bd262af94e9d25bd1e71b05deed44876a222e8b" 16 | integrity sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A== 17 | 18 | "@nodelib/fs.walk@^1.2.3": 19 | version "1.2.8" 20 | resolved "https://registry.npmmirror.com/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz#e95737e8bb6746ddedf69c556953494f196fe69a" 21 | integrity sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg== 22 | dependencies: 23 | "@nodelib/fs.scandir" "2.1.5" 24 | fastq "^1.6.0" 25 | 26 | "@types/eslint-scope@^3.7.3": 27 | version "3.7.3" 28 | resolved "https://registry.npmmirror.com/@types/eslint-scope/-/eslint-scope-3.7.3.tgz#125b88504b61e3c8bc6f870882003253005c3224" 29 | integrity sha512-PB3ldyrcnAicT35TWPs5IcwKD8S333HMaa2VVv4+wdvebJkjWuW/xESoB8IwRcog8HYVYamb1g/R31Qv5Bx03g== 30 | dependencies: 31 | "@types/eslint" "*" 32 | "@types/estree" "*" 33 | 34 | "@types/eslint@*": 35 | version "8.4.1" 36 | resolved "https://registry.npmmirror.com/@types/eslint/-/eslint-8.4.1.tgz#c48251553e8759db9e656de3efc846954ac32304" 37 | integrity sha512-GE44+DNEyxxh2Kc6ro/VkIj+9ma0pO0bwv9+uHSyBrikYOHr8zYcdPvnBOp1aw8s+CjRvuSx7CyWqRrNFQ59mA== 38 | dependencies: 39 | "@types/estree" "*" 40 | "@types/json-schema" "*" 41 | 42 | "@types/estree@*", "@types/estree@^0.0.51": 43 | version "0.0.51" 44 | resolved "https://registry.npmmirror.com/@types/estree/-/estree-0.0.51.tgz#cfd70924a25a3fd32b218e5e420e6897e1ac4f40" 45 | integrity sha512-CuPgU6f3eT/XgKKPqKd/gLZV1Xmvf1a2R5POBOGQa6uv82xpls89HU5zKeVoyR8XzHd1RGNOlQlvUe3CFkjWNQ== 46 | 47 | "@types/json-schema@*", "@types/json-schema@^7.0.8": 48 | version "7.0.11" 49 | resolved "https://registry.npmmirror.com/@types/json-schema/-/json-schema-7.0.11.tgz#d421b6c527a3037f7c84433fd2c4229e016863d3" 50 | integrity sha512-wOuvG1SN4Us4rez+tylwwwCV1psiNVOkJeM3AUWUNWg/jDQY2+HE/444y5gc+jBmRqASOm2Oeh5c1axHobwRKQ== 51 | 52 | "@types/node@*": 53 | version "17.0.24" 54 | resolved "https://registry.npmmirror.com/@types/node/-/node-17.0.24.tgz#20ba1bf69c1b4ab405c7a01e950c4f446b05029f" 55 | integrity sha512-aveCYRQbgTH9Pssp1voEP7HiuWlD2jW2BO56w+bVrJn04i61yh6mRfoKO6hEYQD9vF+W8Chkwc6j1M36uPkx4g== 56 | 57 | "@types/webpack@^5.28.0": 58 | version "5.28.0" 59 | resolved "https://registry.npmmirror.com/@types/webpack/-/webpack-5.28.0.tgz#78dde06212f038d77e54116cfe69e88ae9ed2c03" 60 | integrity sha512-8cP0CzcxUiFuA9xGJkfeVpqmWTk9nx6CWwamRGCj95ph1SmlRRk9KlCZ6avhCbZd4L68LvYT6l1kpdEnQXrF8w== 61 | dependencies: 62 | "@types/node" "*" 63 | tapable "^2.2.0" 64 | webpack "^5" 65 | 66 | "@webassemblyjs/ast@1.11.1": 67 | version "1.11.1" 68 | resolved "https://registry.npmmirror.com/@webassemblyjs/ast/-/ast-1.11.1.tgz#2bfd767eae1a6996f432ff7e8d7fc75679c0b6a7" 69 | integrity sha512-ukBh14qFLjxTQNTXocdyksN5QdM28S1CxHt2rdskFyL+xFV7VremuBLVbmCePj+URalXBENx/9Lm7lnhihtCSw== 70 | dependencies: 71 | "@webassemblyjs/helper-numbers" "1.11.1" 72 | "@webassemblyjs/helper-wasm-bytecode" "1.11.1" 73 | 74 | "@webassemblyjs/floating-point-hex-parser@1.11.1": 75 | version "1.11.1" 76 | resolved "https://registry.npmmirror.com/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.11.1.tgz#f6c61a705f0fd7a6aecaa4e8198f23d9dc179e4f" 77 | integrity sha512-iGRfyc5Bq+NnNuX8b5hwBrRjzf0ocrJPI6GWFodBFzmFnyvrQ83SHKhmilCU/8Jv67i4GJZBMhEzltxzcNagtQ== 78 | 79 | "@webassemblyjs/helper-api-error@1.11.1": 80 | version "1.11.1" 81 | resolved "https://registry.npmmirror.com/@webassemblyjs/helper-api-error/-/helper-api-error-1.11.1.tgz#1a63192d8788e5c012800ba6a7a46c705288fd16" 82 | integrity sha512-RlhS8CBCXfRUR/cwo2ho9bkheSXG0+NwooXcc3PAILALf2QLdFyj7KGsKRbVc95hZnhnERon4kW/D3SZpp6Tcg== 83 | 84 | "@webassemblyjs/helper-buffer@1.11.1": 85 | version "1.11.1" 86 | resolved "https://registry.npmmirror.com/@webassemblyjs/helper-buffer/-/helper-buffer-1.11.1.tgz#832a900eb444884cde9a7cad467f81500f5e5ab5" 87 | integrity sha512-gwikF65aDNeeXa8JxXa2BAk+REjSyhrNC9ZwdT0f8jc4dQQeDQ7G4m0f2QCLPJiMTTO6wfDmRmj/pW0PsUvIcA== 88 | 89 | "@webassemblyjs/helper-numbers@1.11.1": 90 | version "1.11.1" 91 | resolved "https://registry.npmmirror.com/@webassemblyjs/helper-numbers/-/helper-numbers-1.11.1.tgz#64d81da219fbbba1e3bd1bfc74f6e8c4e10a62ae" 92 | integrity sha512-vDkbxiB8zfnPdNK9Rajcey5C0w+QJugEglN0of+kmO8l7lDb77AnlKYQF7aarZuCrv+l0UvqL+68gSDr3k9LPQ== 93 | dependencies: 94 | "@webassemblyjs/floating-point-hex-parser" "1.11.1" 95 | "@webassemblyjs/helper-api-error" "1.11.1" 96 | "@xtuc/long" "4.2.2" 97 | 98 | "@webassemblyjs/helper-wasm-bytecode@1.11.1": 99 | version "1.11.1" 100 | resolved "https://registry.npmmirror.com/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.11.1.tgz#f328241e41e7b199d0b20c18e88429c4433295e1" 101 | integrity sha512-PvpoOGiJwXeTrSf/qfudJhwlvDQxFgelbMqtq52WWiXC6Xgg1IREdngmPN3bs4RoO83PnL/nFrxucXj1+BX62Q== 102 | 103 | "@webassemblyjs/helper-wasm-section@1.11.1": 104 | version "1.11.1" 105 | resolved "https://registry.npmmirror.com/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.11.1.tgz#21ee065a7b635f319e738f0dd73bfbda281c097a" 106 | integrity sha512-10P9No29rYX1j7F3EVPX3JvGPQPae+AomuSTPiF9eBQeChHI6iqjMIwR9JmOJXwpnn/oVGDk7I5IlskuMwU/pg== 107 | dependencies: 108 | "@webassemblyjs/ast" "1.11.1" 109 | "@webassemblyjs/helper-buffer" "1.11.1" 110 | "@webassemblyjs/helper-wasm-bytecode" "1.11.1" 111 | "@webassemblyjs/wasm-gen" "1.11.1" 112 | 113 | "@webassemblyjs/ieee754@1.11.1": 114 | version "1.11.1" 115 | resolved "https://registry.npmmirror.com/@webassemblyjs/ieee754/-/ieee754-1.11.1.tgz#963929e9bbd05709e7e12243a099180812992614" 116 | integrity sha512-hJ87QIPtAMKbFq6CGTkZYJivEwZDbQUgYd3qKSadTNOhVY7p+gfP6Sr0lLRVTaG1JjFj+r3YchoqRYxNH3M0GQ== 117 | dependencies: 118 | "@xtuc/ieee754" "^1.2.0" 119 | 120 | "@webassemblyjs/leb128@1.11.1": 121 | version "1.11.1" 122 | resolved "https://registry.npmmirror.com/@webassemblyjs/leb128/-/leb128-1.11.1.tgz#ce814b45574e93d76bae1fb2644ab9cdd9527aa5" 123 | integrity sha512-BJ2P0hNZ0u+Th1YZXJpzW6miwqQUGcIHT1G/sf72gLVD9DZ5AdYTqPNbHZh6K1M5VmKvFXwGSWZADz+qBWxeRw== 124 | dependencies: 125 | "@xtuc/long" "4.2.2" 126 | 127 | "@webassemblyjs/utf8@1.11.1": 128 | version "1.11.1" 129 | resolved "https://registry.npmmirror.com/@webassemblyjs/utf8/-/utf8-1.11.1.tgz#d1f8b764369e7c6e6bae350e854dec9a59f0a3ff" 130 | integrity sha512-9kqcxAEdMhiwQkHpkNiorZzqpGrodQQ2IGrHHxCy+Ozng0ofyMA0lTqiLkVs1uzTRejX+/O0EOT7KxqVPuXosQ== 131 | 132 | "@webassemblyjs/wasm-edit@1.11.1": 133 | version "1.11.1" 134 | resolved "https://registry.npmmirror.com/@webassemblyjs/wasm-edit/-/wasm-edit-1.11.1.tgz#ad206ebf4bf95a058ce9880a8c092c5dec8193d6" 135 | integrity sha512-g+RsupUC1aTHfR8CDgnsVRVZFJqdkFHpsHMfJuWQzWU3tvnLC07UqHICfP+4XyL2tnr1amvl1Sdp06TnYCmVkA== 136 | dependencies: 137 | "@webassemblyjs/ast" "1.11.1" 138 | "@webassemblyjs/helper-buffer" "1.11.1" 139 | "@webassemblyjs/helper-wasm-bytecode" "1.11.1" 140 | "@webassemblyjs/helper-wasm-section" "1.11.1" 141 | "@webassemblyjs/wasm-gen" "1.11.1" 142 | "@webassemblyjs/wasm-opt" "1.11.1" 143 | "@webassemblyjs/wasm-parser" "1.11.1" 144 | "@webassemblyjs/wast-printer" "1.11.1" 145 | 146 | "@webassemblyjs/wasm-gen@1.11.1": 147 | version "1.11.1" 148 | resolved "https://registry.npmmirror.com/@webassemblyjs/wasm-gen/-/wasm-gen-1.11.1.tgz#86c5ea304849759b7d88c47a32f4f039ae3c8f76" 149 | integrity sha512-F7QqKXwwNlMmsulj6+O7r4mmtAlCWfO/0HdgOxSklZfQcDu0TpLiD1mRt/zF25Bk59FIjEuGAIyn5ei4yMfLhA== 150 | dependencies: 151 | "@webassemblyjs/ast" "1.11.1" 152 | "@webassemblyjs/helper-wasm-bytecode" "1.11.1" 153 | "@webassemblyjs/ieee754" "1.11.1" 154 | "@webassemblyjs/leb128" "1.11.1" 155 | "@webassemblyjs/utf8" "1.11.1" 156 | 157 | "@webassemblyjs/wasm-opt@1.11.1": 158 | version "1.11.1" 159 | resolved "https://registry.npmmirror.com/@webassemblyjs/wasm-opt/-/wasm-opt-1.11.1.tgz#657b4c2202f4cf3b345f8a4c6461c8c2418985f2" 160 | integrity sha512-VqnkNqnZlU5EB64pp1l7hdm3hmQw7Vgqa0KF/KCNO9sIpI6Fk6brDEiX+iCOYrvMuBWDws0NkTOxYEb85XQHHw== 161 | dependencies: 162 | "@webassemblyjs/ast" "1.11.1" 163 | "@webassemblyjs/helper-buffer" "1.11.1" 164 | "@webassemblyjs/wasm-gen" "1.11.1" 165 | "@webassemblyjs/wasm-parser" "1.11.1" 166 | 167 | "@webassemblyjs/wasm-parser@1.11.1": 168 | version "1.11.1" 169 | resolved "https://registry.npmmirror.com/@webassemblyjs/wasm-parser/-/wasm-parser-1.11.1.tgz#86ca734534f417e9bd3c67c7a1c75d8be41fb199" 170 | integrity sha512-rrBujw+dJu32gYB7/Lup6UhdkPx9S9SnobZzRVL7VcBH9Bt9bCBLEuX/YXOOtBsOZ4NQrRykKhffRWHvigQvOA== 171 | dependencies: 172 | "@webassemblyjs/ast" "1.11.1" 173 | "@webassemblyjs/helper-api-error" "1.11.1" 174 | "@webassemblyjs/helper-wasm-bytecode" "1.11.1" 175 | "@webassemblyjs/ieee754" "1.11.1" 176 | "@webassemblyjs/leb128" "1.11.1" 177 | "@webassemblyjs/utf8" "1.11.1" 178 | 179 | "@webassemblyjs/wast-printer@1.11.1": 180 | version "1.11.1" 181 | resolved "https://registry.npmmirror.com/@webassemblyjs/wast-printer/-/wast-printer-1.11.1.tgz#d0c73beda8eec5426f10ae8ef55cee5e7084c2f0" 182 | integrity sha512-IQboUWM4eKzWW+N/jij2sRatKMh99QEelo3Eb2q0qXkvPRISAj8Qxtmw5itwqK+TTkBuUIE45AxYPToqPtL5gg== 183 | dependencies: 184 | "@webassemblyjs/ast" "1.11.1" 185 | "@xtuc/long" "4.2.2" 186 | 187 | "@xtuc/ieee754@^1.2.0": 188 | version "1.2.0" 189 | resolved "https://registry.npmmirror.com/@xtuc/ieee754/-/ieee754-1.2.0.tgz#eef014a3145ae477a1cbc00cd1e552336dceb790" 190 | integrity sha512-DX8nKgqcGwsc0eJSqYt5lwP4DH5FlHnmuWWBRy7X0NcaGR0ZtuyeESgMwTYVEtxmsNGY+qit4QYT/MIYTOTPeA== 191 | 192 | "@xtuc/long@4.2.2": 193 | version "4.2.2" 194 | resolved "https://registry.npmmirror.com/@xtuc/long/-/long-4.2.2.tgz#d291c6a4e97989b5c61d9acf396ae4fe133a718d" 195 | integrity sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ== 196 | 197 | acorn-import-assertions@^1.7.6: 198 | version "1.8.0" 199 | resolved "https://registry.npmmirror.com/acorn-import-assertions/-/acorn-import-assertions-1.8.0.tgz#ba2b5939ce62c238db6d93d81c9b111b29b855e9" 200 | integrity sha512-m7VZ3jwz4eK6A4Vtt8Ew1/mNbP24u0FhdyfA7fSvnJR6LMdfOYnmuIrrJAgrYfYJ10F/otaHTtrtrtmHdMNzEw== 201 | 202 | acorn@^8.4.1, acorn@^8.5.0: 203 | version "8.7.0" 204 | resolved "https://registry.npmmirror.com/acorn/-/acorn-8.7.0.tgz#90951fde0f8f09df93549481e5fc141445b791cf" 205 | integrity sha512-V/LGr1APy+PXIwKebEWrkZPwoeoF+w1jiOBUmuxuiUIaOHtob8Qc9BTrYo7VuI5fR8tqsy+buA2WFooR5olqvQ== 206 | 207 | ajv-keywords@^3.5.2: 208 | version "3.5.2" 209 | resolved "https://registry.npmmirror.com/ajv-keywords/-/ajv-keywords-3.5.2.tgz#31f29da5ab6e00d1c2d329acf7b5929614d5014d" 210 | integrity sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ== 211 | 212 | ajv@^6.12.5: 213 | version "6.12.6" 214 | resolved "https://registry.npmmirror.com/ajv/-/ajv-6.12.6.tgz#baf5a62e802b07d977034586f8c3baf5adf26df4" 215 | integrity sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g== 216 | dependencies: 217 | fast-deep-equal "^3.1.1" 218 | fast-json-stable-stringify "^2.0.0" 219 | json-schema-traverse "^0.4.1" 220 | uri-js "^4.2.2" 221 | 222 | any-promise@^1.0.0: 223 | version "1.3.0" 224 | resolved "https://registry.npmmirror.com/any-promise/-/any-promise-1.3.0.tgz#abc6afeedcea52e809cdc0376aed3ce39635d17f" 225 | integrity sha512-7UvmKalWRt1wgjL1RrGxoSJW/0QZFIegpeGvZG9kjp8vrRu55XTHbwnqq2GpXm9uLbcuhxm3IqX9OB4MZR1b2A== 226 | 227 | anymatch@~3.1.2: 228 | version "3.1.2" 229 | resolved "https://registry.npmmirror.com/anymatch/-/anymatch-3.1.2.tgz#c0557c096af32f106198f4f4e2a383537e378716" 230 | integrity sha512-P43ePfOAIupkguHUycrc4qJ9kz8ZiuOUijaETwX7THt0Y/GNK7v0aa8rY816xWjZ7rJdA5XdMcpVFTKMq+RvWg== 231 | dependencies: 232 | normalize-path "^3.0.0" 233 | picomatch "^2.0.4" 234 | 235 | array-union@^2.1.0: 236 | version "2.1.0" 237 | resolved "https://registry.npmmirror.com/array-union/-/array-union-2.1.0.tgz#b798420adbeb1de828d84acd8a2e23d3efe85e8d" 238 | integrity sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw== 239 | 240 | balanced-match@^1.0.0: 241 | version "1.0.2" 242 | resolved "https://registry.npmmirror.com/balanced-match/-/balanced-match-1.0.2.tgz#e83e3a7e3f300b34cb9d87f615fa0cbf357690ee" 243 | integrity sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw== 244 | 245 | binary-extensions@^2.0.0: 246 | version "2.2.0" 247 | resolved "https://registry.npmmirror.com/binary-extensions/-/binary-extensions-2.2.0.tgz#75f502eeaf9ffde42fc98829645be4ea76bd9e2d" 248 | integrity sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA== 249 | 250 | brace-expansion@^1.1.7: 251 | version "1.1.11" 252 | resolved "https://registry.npmmirror.com/brace-expansion/-/brace-expansion-1.1.11.tgz#3c7fcbf529d87226f3d2f52b966ff5271eb441dd" 253 | integrity sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA== 254 | dependencies: 255 | balanced-match "^1.0.0" 256 | concat-map "0.0.1" 257 | 258 | braces@^3.0.2, braces@~3.0.2: 259 | version "3.0.2" 260 | resolved "https://registry.npmmirror.com/braces/-/braces-3.0.2.tgz#3454e1a462ee8d599e236df336cd9ea4f8afe107" 261 | integrity sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A== 262 | dependencies: 263 | fill-range "^7.0.1" 264 | 265 | browserslist@^4.14.5: 266 | version "4.20.2" 267 | resolved "https://registry.npmmirror.com/browserslist/-/browserslist-4.20.2.tgz#567b41508757ecd904dab4d1c646c612cd3d4f88" 268 | integrity sha512-CQOBCqp/9pDvDbx3xfMi+86pr4KXIf2FDkTTdeuYw8OxS9t898LA1Khq57gtufFILXpfgsSx5woNgsBgvGjpsA== 269 | dependencies: 270 | caniuse-lite "^1.0.30001317" 271 | electron-to-chromium "^1.4.84" 272 | escalade "^3.1.1" 273 | node-releases "^2.0.2" 274 | picocolors "^1.0.0" 275 | 276 | buffer-from@^1.0.0: 277 | version "1.1.2" 278 | resolved "https://registry.npmmirror.com/buffer-from/-/buffer-from-1.1.2.tgz#2b146a6fd72e80b4f55d255f35ed59a3a9a41bd5" 279 | integrity sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ== 280 | 281 | bundle-require@^3.0.2: 282 | version "3.0.4" 283 | resolved "https://registry.npmmirror.com/bundle-require/-/bundle-require-3.0.4.tgz#2b52ba77d99c0a586b5854cd21d36954e63cc110" 284 | integrity sha512-VXG6epB1yrLAvWVQpl92qF347/UXmncQj7J3U8kZEbdVZ1ZkQyr4hYeL/9RvcE8vVVdp53dY78Fd/3pqfRqI1A== 285 | dependencies: 286 | load-tsconfig "^0.2.0" 287 | 288 | cac@^6.7.12: 289 | version "6.7.12" 290 | resolved "https://registry.npmmirror.com/cac/-/cac-6.7.12.tgz#6fb5ea2ff50bd01490dbda497f4ae75a99415193" 291 | integrity sha512-rM7E2ygtMkJqD9c7WnFU6fruFcN3xe4FM5yUmgxhZzIKJk4uHl9U/fhwdajGFQbQuv43FAUo1Fe8gX/oIKDeSA== 292 | 293 | caniuse-lite@^1.0.30001317: 294 | version "1.0.30001332" 295 | resolved "https://registry.npmmirror.com/caniuse-lite/-/caniuse-lite-1.0.30001332.tgz#39476d3aa8d83ea76359c70302eafdd4a1d727dd" 296 | integrity sha512-10T30NYOEQtN6C11YGg411yebhvpnC6Z102+B95eAsN0oB6KUs01ivE8u+G6FMIRtIrVlYXhL+LUwQ3/hXwDWw== 297 | 298 | chokidar@^3.5.1: 299 | version "3.5.3" 300 | resolved "https://registry.npmmirror.com/chokidar/-/chokidar-3.5.3.tgz#1cf37c8707b932bd1af1ae22c0432e2acd1903bd" 301 | integrity sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw== 302 | dependencies: 303 | anymatch "~3.1.2" 304 | braces "~3.0.2" 305 | glob-parent "~5.1.2" 306 | is-binary-path "~2.1.0" 307 | is-glob "~4.0.1" 308 | normalize-path "~3.0.0" 309 | readdirp "~3.6.0" 310 | optionalDependencies: 311 | fsevents "~2.3.2" 312 | 313 | chrome-trace-event@^1.0.2: 314 | version "1.0.3" 315 | resolved "https://registry.npmmirror.com/chrome-trace-event/-/chrome-trace-event-1.0.3.tgz#1015eced4741e15d06664a957dbbf50d041e26ac" 316 | integrity sha512-p3KULyQg4S7NIHixdwbGX+nFHkoBiA4YQmyWtjb8XngSKV124nJmRysgAeujbUVb15vh+RvFUfCPqU7rXk+hZg== 317 | 318 | commander@^2.20.0: 319 | version "2.20.3" 320 | resolved "https://registry.npmmirror.com/commander/-/commander-2.20.3.tgz#fd485e84c03eb4881c20722ba48035e8531aeb33" 321 | integrity sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ== 322 | 323 | commander@^4.0.0: 324 | version "4.1.1" 325 | resolved "https://registry.npmmirror.com/commander/-/commander-4.1.1.tgz#9fd602bd936294e9e9ef46a3f4d6964044b18068" 326 | integrity sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA== 327 | 328 | concat-map@0.0.1: 329 | version "0.0.1" 330 | resolved "https://registry.npmmirror.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b" 331 | integrity sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg== 332 | 333 | cross-spawn@^7.0.3: 334 | version "7.0.3" 335 | resolved "https://registry.npmmirror.com/cross-spawn/-/cross-spawn-7.0.3.tgz#f73a85b9d5d41d045551c177e2882d4ac85728a6" 336 | integrity sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w== 337 | dependencies: 338 | path-key "^3.1.0" 339 | shebang-command "^2.0.0" 340 | which "^2.0.1" 341 | 342 | debug@^4.3.1: 343 | version "4.3.4" 344 | resolved "https://registry.npmmirror.com/debug/-/debug-4.3.4.tgz#1319f6579357f2338d3337d2cdd4914bb5dcc865" 345 | integrity sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ== 346 | dependencies: 347 | ms "2.1.2" 348 | 349 | dir-glob@^3.0.1: 350 | version "3.0.1" 351 | resolved "https://registry.npmmirror.com/dir-glob/-/dir-glob-3.0.1.tgz#56dbf73d992a4a93ba1584f4534063fd2e41717f" 352 | integrity sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA== 353 | dependencies: 354 | path-type "^4.0.0" 355 | 356 | electron-to-chromium@^1.4.84: 357 | version "1.4.111" 358 | resolved "https://registry.npmmirror.com/electron-to-chromium/-/electron-to-chromium-1.4.111.tgz#897613f6504f3f17c9381c7499a635b413e4df4e" 359 | integrity sha512-/s3+fwhKf1YK4k7btOImOzCQLpUjS6MaPf0ODTNuT4eTM1Bg4itBpLkydhOzJmpmH6Z9eXFyuuK5czsmzRzwtw== 360 | 361 | enhanced-resolve@^5.9.2: 362 | version "5.9.3" 363 | resolved "https://registry.npmmirror.com/enhanced-resolve/-/enhanced-resolve-5.9.3.tgz#44a342c012cbc473254af5cc6ae20ebd0aae5d88" 364 | integrity sha512-Bq9VSor+kjvW3f9/MiiR4eE3XYgOl7/rS8lnSxbRbF3kS0B2r+Y9w5krBWxZgDxASVZbdYrn5wT4j/Wb0J9qow== 365 | dependencies: 366 | graceful-fs "^4.2.4" 367 | tapable "^2.2.0" 368 | 369 | es-module-lexer@^0.9.0: 370 | version "0.9.3" 371 | resolved "https://registry.npmmirror.com/es-module-lexer/-/es-module-lexer-0.9.3.tgz#6f13db00cc38417137daf74366f535c8eb438f19" 372 | integrity sha512-1HQ2M2sPtxwnvOvT1ZClHyQDiggdNjURWpY2we6aMKCQiUVxTmVs2UYPLIrD84sS+kMdUwfBSylbJPwNnBrnHQ== 373 | 374 | esbuild-android-64@0.14.36: 375 | version "0.14.36" 376 | resolved "https://registry.npmmirror.com/esbuild-android-64/-/esbuild-android-64-0.14.36.tgz#fc5f95ce78c8c3d790fa16bc71bd904f2bb42aa1" 377 | integrity sha512-jwpBhF1jmo0tVCYC/ORzVN+hyVcNZUWuozGcLHfod0RJCedTDTvR4nwlTXdx1gtncDqjk33itjO+27OZHbiavw== 378 | 379 | esbuild-android-arm64@0.14.36: 380 | version "0.14.36" 381 | resolved "https://registry.npmmirror.com/esbuild-android-arm64/-/esbuild-android-arm64-0.14.36.tgz#44356fbb9f8de82a5cdf11849e011dfb3ad0a8a8" 382 | integrity sha512-/hYkyFe7x7Yapmfv4X/tBmyKnggUmdQmlvZ8ZlBnV4+PjisrEhAvC3yWpURuD9XoB8Wa1d5dGkTsF53pIvpjsg== 383 | 384 | esbuild-darwin-64@0.14.36: 385 | version "0.14.36" 386 | resolved "https://registry.npmmirror.com/esbuild-darwin-64/-/esbuild-darwin-64-0.14.36.tgz#3d9324b21489c70141665c2e740d6e84f16f725d" 387 | integrity sha512-kkl6qmV0dTpyIMKagluzYqlc1vO0ecgpviK/7jwPbRDEv5fejRTaBBEE2KxEQbTHcLhiiDbhG7d5UybZWo/1zQ== 388 | 389 | esbuild-darwin-arm64@0.14.36: 390 | version "0.14.36" 391 | resolved "https://registry.npmmirror.com/esbuild-darwin-arm64/-/esbuild-darwin-arm64-0.14.36.tgz#2a8040c2e465131e5281034f3c72405e643cb7b2" 392 | integrity sha512-q8fY4r2Sx6P0Pr3VUm//eFYKVk07C5MHcEinU1BjyFnuYz4IxR/03uBbDwluR6ILIHnZTE7AkTUWIdidRi1Jjw== 393 | 394 | esbuild-freebsd-64@0.14.36: 395 | version "0.14.36" 396 | resolved "https://registry.npmmirror.com/esbuild-freebsd-64/-/esbuild-freebsd-64-0.14.36.tgz#d82c387b4d01fe9e8631f97d41eb54f2dbeb68a3" 397 | integrity sha512-Hn8AYuxXXRptybPqoMkga4HRFE7/XmhtlQjXFHoAIhKUPPMeJH35GYEUWGbjteai9FLFvBAjEAlwEtSGxnqWww== 398 | 399 | esbuild-freebsd-arm64@0.14.36: 400 | version "0.14.36" 401 | resolved "https://registry.npmmirror.com/esbuild-freebsd-arm64/-/esbuild-freebsd-arm64-0.14.36.tgz#e8ce2e6c697da6c7ecd0cc0ac821d47c5ab68529" 402 | integrity sha512-S3C0attylLLRiCcHiJd036eDEMOY32+h8P+jJ3kTcfhJANNjP0TNBNL30TZmEdOSx/820HJFgRrqpNAvTbjnDA== 403 | 404 | esbuild-linux-32@0.14.36: 405 | version "0.14.36" 406 | resolved "https://registry.npmmirror.com/esbuild-linux-32/-/esbuild-linux-32-0.14.36.tgz#a4a261e2af91986ea62451f2db712a556cb38a15" 407 | integrity sha512-Eh9OkyTrEZn9WGO4xkI3OPPpUX7p/3QYvdG0lL4rfr73Ap2HAr6D9lP59VMF64Ex01LhHSXwIsFG/8AQjh6eNw== 408 | 409 | esbuild-linux-64@0.14.36: 410 | version "0.14.36" 411 | resolved "https://registry.npmmirror.com/esbuild-linux-64/-/esbuild-linux-64-0.14.36.tgz#4a9500f9197e2c8fcb884a511d2c9d4c2debde72" 412 | integrity sha512-vFVFS5ve7PuwlfgoWNyRccGDi2QTNkQo/2k5U5ttVD0jRFaMlc8UQee708fOZA6zTCDy5RWsT5MJw3sl2X6KDg== 413 | 414 | esbuild-linux-arm64@0.14.36: 415 | version "0.14.36" 416 | resolved "https://registry.npmmirror.com/esbuild-linux-arm64/-/esbuild-linux-arm64-0.14.36.tgz#c91c21e25b315464bd7da867365dd1dae14ca176" 417 | integrity sha512-24Vq1M7FdpSmaTYuu1w0Hdhiqkbto1I5Pjyi+4Cdw5fJKGlwQuw+hWynTcRI/cOZxBcBpP21gND7W27gHAiftw== 418 | 419 | esbuild-linux-arm@0.14.36: 420 | version "0.14.36" 421 | resolved "https://registry.npmmirror.com/esbuild-linux-arm/-/esbuild-linux-arm-0.14.36.tgz#90e23bca2e6e549affbbe994f80ba3bb6c4d934a" 422 | integrity sha512-NhgU4n+NCsYgt7Hy61PCquEz5aevI6VjQvxwBxtxrooXsxt5b2xtOUXYZe04JxqQo+XZk3d1gcr7pbV9MAQ/Lg== 423 | 424 | esbuild-linux-mips64le@0.14.36: 425 | version "0.14.36" 426 | resolved "https://registry.npmmirror.com/esbuild-linux-mips64le/-/esbuild-linux-mips64le-0.14.36.tgz#40e11afb08353ff24709fc89e4db0f866bc131d2" 427 | integrity sha512-hZUeTXvppJN+5rEz2EjsOFM9F1bZt7/d2FUM1lmQo//rXh1RTFYzhC0txn7WV0/jCC7SvrGRaRz0NMsRPf8SIA== 428 | 429 | esbuild-linux-ppc64le@0.14.36: 430 | version "0.14.36" 431 | resolved "https://registry.npmmirror.com/esbuild-linux-ppc64le/-/esbuild-linux-ppc64le-0.14.36.tgz#9e8a588c513d06cc3859f9dcc52e5fdfce8a1a5e" 432 | integrity sha512-1Bg3QgzZjO+QtPhP9VeIBhAduHEc2kzU43MzBnMwpLSZ890azr4/A9Dganun8nsqD/1TBcqhId0z4mFDO8FAvg== 433 | 434 | esbuild-linux-riscv64@0.14.36: 435 | version "0.14.36" 436 | resolved "https://registry.npmmirror.com/esbuild-linux-riscv64/-/esbuild-linux-riscv64-0.14.36.tgz#e578c09b23b3b97652e60e3692bfda628b541f06" 437 | integrity sha512-dOE5pt3cOdqEhaufDRzNCHf5BSwxgygVak9UR7PH7KPVHwSTDAZHDoEjblxLqjJYpc5XaU9+gKJ9F8mp9r5I4A== 438 | 439 | esbuild-linux-s390x@0.14.36: 440 | version "0.14.36" 441 | resolved "https://registry.npmmirror.com/esbuild-linux-s390x/-/esbuild-linux-s390x-0.14.36.tgz#3c9dab40d0d69932ffded0fd7317bb403626c9bc" 442 | integrity sha512-g4FMdh//BBGTfVHjF6MO7Cz8gqRoDPzXWxRvWkJoGroKA18G9m0wddvPbEqcQf5Tbt2vSc1CIgag7cXwTmoTXg== 443 | 444 | esbuild-netbsd-64@0.14.36: 445 | version "0.14.36" 446 | resolved "https://registry.npmmirror.com/esbuild-netbsd-64/-/esbuild-netbsd-64-0.14.36.tgz#e27847f6d506218291619b8c1e121ecd97628494" 447 | integrity sha512-UB2bVImxkWk4vjnP62ehFNZ73lQY1xcnL5ZNYF3x0AG+j8HgdkNF05v67YJdCIuUJpBuTyCK8LORCYo9onSW+A== 448 | 449 | esbuild-openbsd-64@0.14.36: 450 | version "0.14.36" 451 | resolved "https://registry.npmmirror.com/esbuild-openbsd-64/-/esbuild-openbsd-64-0.14.36.tgz#c94c04c557fae516872a586eae67423da6d2fabb" 452 | integrity sha512-NvGB2Chf8GxuleXRGk8e9zD3aSdRO5kLt9coTQbCg7WMGXeX471sBgh4kSg8pjx0yTXRt0MlrUDnjVYnetyivg== 453 | 454 | esbuild-sunos-64@0.14.36: 455 | version "0.14.36" 456 | resolved "https://registry.npmmirror.com/esbuild-sunos-64/-/esbuild-sunos-64-0.14.36.tgz#9b79febc0df65a30f1c9bd63047d1675511bf99d" 457 | integrity sha512-VkUZS5ftTSjhRjuRLp+v78auMO3PZBXu6xl4ajomGenEm2/rGuWlhFSjB7YbBNErOchj51Jb2OK8lKAo8qdmsQ== 458 | 459 | esbuild-windows-32@0.14.36: 460 | version "0.14.36" 461 | resolved "https://registry.npmmirror.com/esbuild-windows-32/-/esbuild-windows-32-0.14.36.tgz#910d11936c8d2122ffdd3275e5b28d8a4e1240ec" 462 | integrity sha512-bIar+A6hdytJjZrDxfMBUSEHHLfx3ynoEZXx/39nxy86pX/w249WZm8Bm0dtOAByAf4Z6qV0LsnTIJHiIqbw0w== 463 | 464 | esbuild-windows-64@0.14.36: 465 | version "0.14.36" 466 | resolved "https://registry.npmmirror.com/esbuild-windows-64/-/esbuild-windows-64-0.14.36.tgz#21b4ce8b42a4efc63f4b58ec617f1302448aad26" 467 | integrity sha512-+p4MuRZekVChAeueT1Y9LGkxrT5x7YYJxYE8ZOTcEfeUUN43vktSn6hUNsvxzzATrSgq5QqRdllkVBxWZg7KqQ== 468 | 469 | esbuild-windows-arm64@0.14.36: 470 | version "0.14.36" 471 | resolved "https://registry.npmmirror.com/esbuild-windows-arm64/-/esbuild-windows-arm64-0.14.36.tgz#ba21546fecb7297667d0052d00150de22c044b24" 472 | integrity sha512-fBB4WlDqV1m18EF/aheGYQkQZHfPHiHJSBYzXIo8yKehek+0BtBwo/4PNwKGJ5T0YK0oc8pBKjgwPbzSrPLb+Q== 473 | 474 | esbuild@^0.14.25: 475 | version "0.14.36" 476 | resolved "https://registry.npmmirror.com/esbuild/-/esbuild-0.14.36.tgz#0023a73eab57886ac5605df16ee421e471a971b3" 477 | integrity sha512-HhFHPiRXGYOCRlrhpiVDYKcFJRdO0sBElZ668M4lh2ER0YgnkLxECuFe7uWCf23FrcLc59Pqr7dHkTqmRPDHmw== 478 | optionalDependencies: 479 | esbuild-android-64 "0.14.36" 480 | esbuild-android-arm64 "0.14.36" 481 | esbuild-darwin-64 "0.14.36" 482 | esbuild-darwin-arm64 "0.14.36" 483 | esbuild-freebsd-64 "0.14.36" 484 | esbuild-freebsd-arm64 "0.14.36" 485 | esbuild-linux-32 "0.14.36" 486 | esbuild-linux-64 "0.14.36" 487 | esbuild-linux-arm "0.14.36" 488 | esbuild-linux-arm64 "0.14.36" 489 | esbuild-linux-mips64le "0.14.36" 490 | esbuild-linux-ppc64le "0.14.36" 491 | esbuild-linux-riscv64 "0.14.36" 492 | esbuild-linux-s390x "0.14.36" 493 | esbuild-netbsd-64 "0.14.36" 494 | esbuild-openbsd-64 "0.14.36" 495 | esbuild-sunos-64 "0.14.36" 496 | esbuild-windows-32 "0.14.36" 497 | esbuild-windows-64 "0.14.36" 498 | esbuild-windows-arm64 "0.14.36" 499 | 500 | escalade@^3.1.1: 501 | version "3.1.1" 502 | resolved "https://registry.npmmirror.com/escalade/-/escalade-3.1.1.tgz#d8cfdc7000965c5a0174b4a82eaa5c0552742e40" 503 | integrity sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw== 504 | 505 | eslint-scope@5.1.1: 506 | version "5.1.1" 507 | resolved "https://registry.npmmirror.com/eslint-scope/-/eslint-scope-5.1.1.tgz#e786e59a66cb92b3f6c1fb0d508aab174848f48c" 508 | integrity sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw== 509 | dependencies: 510 | esrecurse "^4.3.0" 511 | estraverse "^4.1.1" 512 | 513 | esrecurse@^4.3.0: 514 | version "4.3.0" 515 | resolved "https://registry.npmmirror.com/esrecurse/-/esrecurse-4.3.0.tgz#7ad7964d679abb28bee72cec63758b1c5d2c9921" 516 | integrity sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag== 517 | dependencies: 518 | estraverse "^5.2.0" 519 | 520 | estraverse@^4.1.1: 521 | version "4.3.0" 522 | resolved "https://registry.npmmirror.com/estraverse/-/estraverse-4.3.0.tgz#398ad3f3c5a24948be7725e83d11a7de28cdbd1d" 523 | integrity sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw== 524 | 525 | estraverse@^5.2.0: 526 | version "5.3.0" 527 | resolved "https://registry.npmmirror.com/estraverse/-/estraverse-5.3.0.tgz#2eea5290702f26ab8fe5370370ff86c965d21123" 528 | integrity sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA== 529 | 530 | events@^3.2.0: 531 | version "3.3.0" 532 | resolved "https://registry.npmmirror.com/events/-/events-3.3.0.tgz#31a95ad0a924e2d2c419a813aeb2c4e878ea7400" 533 | integrity sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q== 534 | 535 | execa@^5.0.0: 536 | version "5.1.1" 537 | resolved "https://registry.npmmirror.com/execa/-/execa-5.1.1.tgz#f80ad9cbf4298f7bd1d4c9555c21e93741c411dd" 538 | integrity sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg== 539 | dependencies: 540 | cross-spawn "^7.0.3" 541 | get-stream "^6.0.0" 542 | human-signals "^2.1.0" 543 | is-stream "^2.0.0" 544 | merge-stream "^2.0.0" 545 | npm-run-path "^4.0.1" 546 | onetime "^5.1.2" 547 | signal-exit "^3.0.3" 548 | strip-final-newline "^2.0.0" 549 | 550 | fast-deep-equal@^3.1.1: 551 | version "3.1.3" 552 | resolved "https://registry.npmmirror.com/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz#3a7d56b559d6cbc3eb512325244e619a65c6c525" 553 | integrity sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q== 554 | 555 | fast-glob@^3.2.9: 556 | version "3.2.11" 557 | resolved "https://registry.npmmirror.com/fast-glob/-/fast-glob-3.2.11.tgz#a1172ad95ceb8a16e20caa5c5e56480e5129c1d9" 558 | integrity sha512-xrO3+1bxSo3ZVHAnqzyuewYT6aMFHRAd4Kcs92MAonjwQZLsK9d0SF1IyQ3k5PoirxTW0Oe/RqFgMQ6TcNE5Ew== 559 | dependencies: 560 | "@nodelib/fs.stat" "^2.0.2" 561 | "@nodelib/fs.walk" "^1.2.3" 562 | glob-parent "^5.1.2" 563 | merge2 "^1.3.0" 564 | micromatch "^4.0.4" 565 | 566 | fast-json-stable-stringify@^2.0.0: 567 | version "2.1.0" 568 | resolved "https://registry.npmmirror.com/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz#874bf69c6f404c2b5d99c481341399fd55892633" 569 | integrity sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw== 570 | 571 | fastq@^1.6.0: 572 | version "1.13.0" 573 | resolved "https://registry.npmmirror.com/fastq/-/fastq-1.13.0.tgz#616760f88a7526bdfc596b7cab8c18938c36b98c" 574 | integrity sha512-YpkpUnK8od0o1hmeSc7UUs/eB/vIPWJYjKck2QKIzAf71Vm1AAQ3EbuZB3g2JIy+pg+ERD0vqI79KyZiB2e2Nw== 575 | dependencies: 576 | reusify "^1.0.4" 577 | 578 | fill-range@^7.0.1: 579 | version "7.0.1" 580 | resolved "https://registry.npmmirror.com/fill-range/-/fill-range-7.0.1.tgz#1919a6a7c75fe38b2c7c77e5198535da9acdda40" 581 | integrity sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ== 582 | dependencies: 583 | to-regex-range "^5.0.1" 584 | 585 | fs.realpath@^1.0.0: 586 | version "1.0.0" 587 | resolved "https://registry.npmmirror.com/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f" 588 | integrity sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw== 589 | 590 | fsevents@~2.3.2: 591 | version "2.3.2" 592 | resolved "https://registry.npmmirror.com/fsevents/-/fsevents-2.3.2.tgz#8a526f78b8fdf4623b709e0b975c52c24c02fd1a" 593 | integrity sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA== 594 | 595 | get-stream@^6.0.0: 596 | version "6.0.1" 597 | resolved "https://registry.npmmirror.com/get-stream/-/get-stream-6.0.1.tgz#a262d8eef67aced57c2852ad6167526a43cbf7b7" 598 | integrity sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg== 599 | 600 | glob-parent@^5.1.2, glob-parent@~5.1.2: 601 | version "5.1.2" 602 | resolved "https://registry.npmmirror.com/glob-parent/-/glob-parent-5.1.2.tgz#869832c58034fe68a4093c17dc15e8340d8401c4" 603 | integrity sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow== 604 | dependencies: 605 | is-glob "^4.0.1" 606 | 607 | glob-to-regexp@^0.4.1: 608 | version "0.4.1" 609 | resolved "https://registry.npmmirror.com/glob-to-regexp/-/glob-to-regexp-0.4.1.tgz#c75297087c851b9a578bd217dd59a92f59fe546e" 610 | integrity sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw== 611 | 612 | glob@7.1.6: 613 | version "7.1.6" 614 | resolved "https://registry.npmmirror.com/glob/-/glob-7.1.6.tgz#141f33b81a7c2492e125594307480c46679278a6" 615 | integrity sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA== 616 | dependencies: 617 | fs.realpath "^1.0.0" 618 | inflight "^1.0.4" 619 | inherits "2" 620 | minimatch "^3.0.4" 621 | once "^1.3.0" 622 | path-is-absolute "^1.0.0" 623 | 624 | globby@^11.0.3: 625 | version "11.1.0" 626 | resolved "https://registry.npmmirror.com/globby/-/globby-11.1.0.tgz#bd4be98bb042f83d796f7e3811991fbe82a0d34b" 627 | integrity sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g== 628 | dependencies: 629 | array-union "^2.1.0" 630 | dir-glob "^3.0.1" 631 | fast-glob "^3.2.9" 632 | ignore "^5.2.0" 633 | merge2 "^1.4.1" 634 | slash "^3.0.0" 635 | 636 | graceful-fs@^4.1.2, graceful-fs@^4.2.4, graceful-fs@^4.2.9: 637 | version "4.2.10" 638 | resolved "https://registry.npmmirror.com/graceful-fs/-/graceful-fs-4.2.10.tgz#147d3a006da4ca3ce14728c7aefc287c367d7a6c" 639 | integrity sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA== 640 | 641 | has-flag@^4.0.0: 642 | version "4.0.0" 643 | resolved "https://registry.npmmirror.com/has-flag/-/has-flag-4.0.0.tgz#944771fd9c81c81265c4d6941860da06bb59479b" 644 | integrity sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ== 645 | 646 | human-signals@^2.1.0: 647 | version "2.1.0" 648 | resolved "https://registry.npmmirror.com/human-signals/-/human-signals-2.1.0.tgz#dc91fcba42e4d06e4abaed33b3e7a3c02f514ea0" 649 | integrity sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw== 650 | 651 | ignore@^5.2.0: 652 | version "5.2.0" 653 | resolved "https://registry.npmmirror.com/ignore/-/ignore-5.2.0.tgz#6d3bac8fa7fe0d45d9f9be7bac2fc279577e345a" 654 | integrity sha512-CmxgYGiEPCLhfLnpPp1MoRmifwEIOgjcHXxOBjv7mY96c+eWScsOP9c112ZyLdWHi0FxHjI+4uVhKYp/gcdRmQ== 655 | 656 | inflight@^1.0.4: 657 | version "1.0.6" 658 | resolved "https://registry.npmmirror.com/inflight/-/inflight-1.0.6.tgz#49bd6331d7d02d0c09bc910a1075ba8165b56df9" 659 | integrity sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA== 660 | dependencies: 661 | once "^1.3.0" 662 | wrappy "1" 663 | 664 | inherits@2: 665 | version "2.0.4" 666 | resolved "https://registry.npmmirror.com/inherits/-/inherits-2.0.4.tgz#0fa2c64f932917c3433a0ded55363aae37416b7c" 667 | integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ== 668 | 669 | is-binary-path@~2.1.0: 670 | version "2.1.0" 671 | resolved "https://registry.npmmirror.com/is-binary-path/-/is-binary-path-2.1.0.tgz#ea1f7f3b80f064236e83470f86c09c254fb45b09" 672 | integrity sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw== 673 | dependencies: 674 | binary-extensions "^2.0.0" 675 | 676 | is-extglob@^2.1.1: 677 | version "2.1.1" 678 | resolved "https://registry.npmmirror.com/is-extglob/-/is-extglob-2.1.1.tgz#a88c02535791f02ed37c76a1b9ea9773c833f8c2" 679 | integrity sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ== 680 | 681 | is-glob@^4.0.1, is-glob@~4.0.1: 682 | version "4.0.3" 683 | resolved "https://registry.npmmirror.com/is-glob/-/is-glob-4.0.3.tgz#64f61e42cbbb2eec2071a9dac0b28ba1e65d5084" 684 | integrity sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg== 685 | dependencies: 686 | is-extglob "^2.1.1" 687 | 688 | is-number@^7.0.0: 689 | version "7.0.0" 690 | resolved "https://registry.npmmirror.com/is-number/-/is-number-7.0.0.tgz#7535345b896734d5f80c4d06c50955527a14f12b" 691 | integrity sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng== 692 | 693 | is-stream@^2.0.0: 694 | version "2.0.1" 695 | resolved "https://registry.npmmirror.com/is-stream/-/is-stream-2.0.1.tgz#fac1e3d53b97ad5a9d0ae9cef2389f5810a5c077" 696 | integrity sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg== 697 | 698 | isexe@^2.0.0: 699 | version "2.0.0" 700 | resolved "https://registry.npmmirror.com/isexe/-/isexe-2.0.0.tgz#e8fbf374dc556ff8947a10dcb0572d633f2cfa10" 701 | integrity sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw== 702 | 703 | jest-worker@^27.4.5: 704 | version "27.5.1" 705 | resolved "https://registry.npmmirror.com/jest-worker/-/jest-worker-27.5.1.tgz#8d146f0900e8973b106b6f73cc1e9a8cb86f8db0" 706 | integrity sha512-7vuh85V5cdDofPyxn58nrPjBktZo0u9x1g8WtjQol+jZDaE+fhN+cIvTj11GndBnMnyfrUOG1sZQxCdjKh+DKg== 707 | dependencies: 708 | "@types/node" "*" 709 | merge-stream "^2.0.0" 710 | supports-color "^8.0.0" 711 | 712 | joycon@^3.0.1: 713 | version "3.1.1" 714 | resolved "https://registry.npmmirror.com/joycon/-/joycon-3.1.1.tgz#bce8596d6ae808f8b68168f5fc69280996894f03" 715 | integrity sha512-34wB/Y7MW7bzjKRjUKTa46I2Z7eV62Rkhva+KkopW7Qvv/OSWBqvkSY7vusOPrNuZcUG3tApvdVgNB8POj3SPw== 716 | 717 | json-parse-better-errors@^1.0.2: 718 | version "1.0.2" 719 | resolved "https://registry.npmmirror.com/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz#bb867cfb3450e69107c131d1c514bab3dc8bcaa9" 720 | integrity sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw== 721 | 722 | json-schema-traverse@^0.4.1: 723 | version "0.4.1" 724 | resolved "https://registry.npmmirror.com/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz#69f6a87d9513ab8bb8fe63bdb0979c448e684660" 725 | integrity sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg== 726 | 727 | lilconfig@^2.0.5: 728 | version "2.0.5" 729 | resolved "https://registry.npmmirror.com/lilconfig/-/lilconfig-2.0.5.tgz#19e57fd06ccc3848fd1891655b5a447092225b25" 730 | integrity sha512-xaYmXZtTHPAw5m+xLN8ab9C+3a8YmV3asNSPOATITbtwrfbwaLJj8h66H1WMIpALCkqsIzK3h7oQ+PdX+LQ9Eg== 731 | 732 | lines-and-columns@^1.1.6: 733 | version "1.2.4" 734 | resolved "https://registry.npmmirror.com/lines-and-columns/-/lines-and-columns-1.2.4.tgz#eca284f75d2965079309dc0ad9255abb2ebc1632" 735 | integrity sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg== 736 | 737 | load-tsconfig@^0.2.0: 738 | version "0.2.3" 739 | resolved "https://registry.npmmirror.com/load-tsconfig/-/load-tsconfig-0.2.3.tgz#08af3e7744943caab0c75f8af7f1703639c3ef1f" 740 | integrity sha512-iyT2MXws+dc2Wi6o3grCFtGXpeMvHmJqS27sMPGtV2eUu4PeFnG+33I8BlFK1t1NWMjOpcx9bridn5yxLDX2gQ== 741 | 742 | loader-runner@^4.2.0: 743 | version "4.3.0" 744 | resolved "https://registry.npmmirror.com/loader-runner/-/loader-runner-4.3.0.tgz#c1b4a163b99f614830353b16755e7149ac2314e1" 745 | integrity sha512-3R/1M+yS3j5ou80Me59j7F9IMs4PXs3VqRrm0TU3AbKPxlmpoY1TNscJV/oGJXo8qCatFGTfDbY6W6ipGOYXfg== 746 | 747 | merge-stream@^2.0.0: 748 | version "2.0.0" 749 | resolved "https://registry.npmmirror.com/merge-stream/-/merge-stream-2.0.0.tgz#52823629a14dd00c9770fb6ad47dc6310f2c1f60" 750 | integrity sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w== 751 | 752 | merge2@^1.3.0, merge2@^1.4.1: 753 | version "1.4.1" 754 | resolved "https://registry.npmmirror.com/merge2/-/merge2-1.4.1.tgz#4368892f885e907455a6fd7dc55c0c9d404990ae" 755 | integrity sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg== 756 | 757 | micromatch@^4.0.4: 758 | version "4.0.5" 759 | resolved "https://registry.npmmirror.com/micromatch/-/micromatch-4.0.5.tgz#bc8999a7cbbf77cdc89f132f6e467051b49090c6" 760 | integrity sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA== 761 | dependencies: 762 | braces "^3.0.2" 763 | picomatch "^2.3.1" 764 | 765 | mime-db@1.52.0: 766 | version "1.52.0" 767 | resolved "https://registry.npmmirror.com/mime-db/-/mime-db-1.52.0.tgz#bbabcdc02859f4987301c856e3387ce5ec43bf70" 768 | integrity sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg== 769 | 770 | mime-types@^2.1.27: 771 | version "2.1.35" 772 | resolved "https://registry.npmmirror.com/mime-types/-/mime-types-2.1.35.tgz#381a871b62a734450660ae3deee44813f70d959a" 773 | integrity sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw== 774 | dependencies: 775 | mime-db "1.52.0" 776 | 777 | mimic-fn@^2.1.0: 778 | version "2.1.0" 779 | resolved "https://registry.npmmirror.com/mimic-fn/-/mimic-fn-2.1.0.tgz#7ed2c2ccccaf84d3ffcb7a69b57711fc2083401b" 780 | integrity sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg== 781 | 782 | minimatch@^3.0.4: 783 | version "3.1.2" 784 | resolved "https://registry.npmmirror.com/minimatch/-/minimatch-3.1.2.tgz#19cd194bfd3e428f049a70817c038d89ab4be35b" 785 | integrity sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw== 786 | dependencies: 787 | brace-expansion "^1.1.7" 788 | 789 | ms@2.1.2: 790 | version "2.1.2" 791 | resolved "https://registry.npmmirror.com/ms/-/ms-2.1.2.tgz#d09d1f357b443f493382a8eb3ccd183872ae6009" 792 | integrity sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w== 793 | 794 | mz@^2.7.0: 795 | version "2.7.0" 796 | resolved "https://registry.npmmirror.com/mz/-/mz-2.7.0.tgz#95008057a56cafadc2bc63dde7f9ff6955948e32" 797 | integrity sha512-z81GNO7nnYMEhrGh9LeymoE4+Yr0Wn5McHIZMK5cfQCl+NDX08sCZgUc9/6MHni9IWuFLm1Z3HTCXu2z9fN62Q== 798 | dependencies: 799 | any-promise "^1.0.0" 800 | object-assign "^4.0.1" 801 | thenify-all "^1.0.0" 802 | 803 | neo-async@^2.6.2: 804 | version "2.6.2" 805 | resolved "https://registry.npmmirror.com/neo-async/-/neo-async-2.6.2.tgz#b4aafb93e3aeb2d8174ca53cf163ab7d7308305f" 806 | integrity sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw== 807 | 808 | node-releases@^2.0.2: 809 | version "2.0.3" 810 | resolved "https://registry.npmmirror.com/node-releases/-/node-releases-2.0.3.tgz#225ee7488e4a5e636da8da52854844f9d716ca96" 811 | integrity sha512-maHFz6OLqYxz+VQyCAtA3PTX4UP/53pa05fyDNc9CwjvJ0yEh6+xBwKsgCxMNhS8taUKBFYxfuiaD9U/55iFaw== 812 | 813 | normalize-path@^3.0.0, normalize-path@~3.0.0: 814 | version "3.0.0" 815 | resolved "https://registry.npmmirror.com/normalize-path/-/normalize-path-3.0.0.tgz#0dcd69ff23a1c9b11fd0978316644a0388216a65" 816 | integrity sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA== 817 | 818 | npm-run-path@^4.0.1: 819 | version "4.0.1" 820 | resolved "https://registry.npmmirror.com/npm-run-path/-/npm-run-path-4.0.1.tgz#b7ecd1e5ed53da8e37a55e1c2269e0b97ed748ea" 821 | integrity sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw== 822 | dependencies: 823 | path-key "^3.0.0" 824 | 825 | object-assign@^4.0.1: 826 | version "4.1.1" 827 | resolved "https://registry.npmmirror.com/object-assign/-/object-assign-4.1.1.tgz#2109adc7965887cfc05cbbd442cac8bfbb360863" 828 | integrity sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg== 829 | 830 | once@^1.3.0: 831 | version "1.4.0" 832 | resolved "https://registry.npmmirror.com/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1" 833 | integrity sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w== 834 | dependencies: 835 | wrappy "1" 836 | 837 | onetime@^5.1.2: 838 | version "5.1.2" 839 | resolved "https://registry.npmmirror.com/onetime/-/onetime-5.1.2.tgz#d0e96ebb56b07476df1dd9c4806e5237985ca45e" 840 | integrity sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg== 841 | dependencies: 842 | mimic-fn "^2.1.0" 843 | 844 | path-is-absolute@^1.0.0: 845 | version "1.0.1" 846 | resolved "https://registry.npmmirror.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f" 847 | integrity sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg== 848 | 849 | path-key@^3.0.0, path-key@^3.1.0: 850 | version "3.1.1" 851 | resolved "https://registry.npmmirror.com/path-key/-/path-key-3.1.1.tgz#581f6ade658cbba65a0d3380de7753295054f375" 852 | integrity sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q== 853 | 854 | path-type@^4.0.0: 855 | version "4.0.0" 856 | resolved "https://registry.npmmirror.com/path-type/-/path-type-4.0.0.tgz#84ed01c0a7ba380afe09d90a8c180dcd9d03043b" 857 | integrity sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw== 858 | 859 | picocolors@^1.0.0: 860 | version "1.0.0" 861 | resolved "https://registry.npmmirror.com/picocolors/-/picocolors-1.0.0.tgz#cb5bdc74ff3f51892236eaf79d68bc44564ab81c" 862 | integrity sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ== 863 | 864 | picomatch@^2.0.4, picomatch@^2.2.1, picomatch@^2.3.1: 865 | version "2.3.1" 866 | resolved "https://registry.npmmirror.com/picomatch/-/picomatch-2.3.1.tgz#3ba3833733646d9d3e4995946c1365a67fb07a42" 867 | integrity sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA== 868 | 869 | pirates@^4.0.1: 870 | version "4.0.5" 871 | resolved "https://registry.npmmirror.com/pirates/-/pirates-4.0.5.tgz#feec352ea5c3268fb23a37c702ab1699f35a5f3b" 872 | integrity sha512-8V9+HQPupnaXMA23c5hvl69zXvTwTzyAYasnkb0Tts4XvO4CliqONMOnvlq26rkhLC3nWDFBJf73LU1e1VZLaQ== 873 | 874 | postcss-load-config@^3.0.1: 875 | version "3.1.4" 876 | resolved "https://registry.npmmirror.com/postcss-load-config/-/postcss-load-config-3.1.4.tgz#1ab2571faf84bb078877e1d07905eabe9ebda855" 877 | integrity sha512-6DiM4E7v4coTE4uzA8U//WhtPwyhiim3eyjEMFCnUpzbrkK9wJHgKDT2mR+HbtSrd/NubVaYTOpSpjUl8NQeRg== 878 | dependencies: 879 | lilconfig "^2.0.5" 880 | yaml "^1.10.2" 881 | 882 | punycode@^2.1.0: 883 | version "2.1.1" 884 | resolved "https://registry.npmmirror.com/punycode/-/punycode-2.1.1.tgz#b58b010ac40c22c5657616c8d2c2c02c7bf479ec" 885 | integrity sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A== 886 | 887 | queue-microtask@^1.2.2: 888 | version "1.2.3" 889 | resolved "https://registry.npmmirror.com/queue-microtask/-/queue-microtask-1.2.3.tgz#4929228bbc724dfac43e0efb058caf7b6cfb6243" 890 | integrity sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A== 891 | 892 | randombytes@^2.1.0: 893 | version "2.1.0" 894 | resolved "https://registry.npmmirror.com/randombytes/-/randombytes-2.1.0.tgz#df6f84372f0270dc65cdf6291349ab7a473d4f2a" 895 | integrity sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ== 896 | dependencies: 897 | safe-buffer "^5.1.0" 898 | 899 | readdirp@~3.6.0: 900 | version "3.6.0" 901 | resolved "https://registry.npmmirror.com/readdirp/-/readdirp-3.6.0.tgz#74a370bd857116e245b29cc97340cd431a02a6c7" 902 | integrity sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA== 903 | dependencies: 904 | picomatch "^2.2.1" 905 | 906 | resolve-from@^5.0.0: 907 | version "5.0.0" 908 | resolved "https://registry.npmmirror.com/resolve-from/-/resolve-from-5.0.0.tgz#c35225843df8f776df21c57557bc087e9dfdfc69" 909 | integrity sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw== 910 | 911 | reusify@^1.0.4: 912 | version "1.0.4" 913 | resolved "https://registry.npmmirror.com/reusify/-/reusify-1.0.4.tgz#90da382b1e126efc02146e90845a88db12925d76" 914 | integrity sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw== 915 | 916 | rollup@^2.60.0: 917 | version "2.70.2" 918 | resolved "https://registry.npmmirror.com/rollup/-/rollup-2.70.2.tgz#808d206a8851628a065097b7ba2053bd83ba0c0d" 919 | integrity sha512-EitogNZnfku65I1DD5Mxe8JYRUCy0hkK5X84IlDtUs+O6JRMpRciXTzyCUuX11b5L5pvjH+OmFXiQ3XjabcXgg== 920 | optionalDependencies: 921 | fsevents "~2.3.2" 922 | 923 | run-parallel@^1.1.9: 924 | version "1.2.0" 925 | resolved "https://registry.npmmirror.com/run-parallel/-/run-parallel-1.2.0.tgz#66d1368da7bdf921eb9d95bd1a9229e7f21a43ee" 926 | integrity sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA== 927 | dependencies: 928 | queue-microtask "^1.2.2" 929 | 930 | safe-buffer@^5.1.0: 931 | version "5.2.1" 932 | resolved "https://registry.npmmirror.com/safe-buffer/-/safe-buffer-5.2.1.tgz#1eaf9fa9bdb1fdd4ec75f58f9cdb4e6b7827eec6" 933 | integrity sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ== 934 | 935 | schema-utils@^3.1.0, schema-utils@^3.1.1: 936 | version "3.1.1" 937 | resolved "https://registry.npmmirror.com/schema-utils/-/schema-utils-3.1.1.tgz#bc74c4b6b6995c1d88f76a8b77bea7219e0c8281" 938 | integrity sha512-Y5PQxS4ITlC+EahLuXaY86TXfR7Dc5lw294alXOq86JAHCihAIZfqv8nNCWvaEJvaC51uN9hbLGeV0cFBdH+Fw== 939 | dependencies: 940 | "@types/json-schema" "^7.0.8" 941 | ajv "^6.12.5" 942 | ajv-keywords "^3.5.2" 943 | 944 | serialize-javascript@^6.0.0: 945 | version "6.0.0" 946 | resolved "https://registry.npmmirror.com/serialize-javascript/-/serialize-javascript-6.0.0.tgz#efae5d88f45d7924141da8b5c3a7a7e663fefeb8" 947 | integrity sha512-Qr3TosvguFt8ePWqsvRfrKyQXIiW+nGbYpy8XK24NQHE83caxWt+mIymTT19DGFbNWNLfEwsrkSmN64lVWB9ag== 948 | dependencies: 949 | randombytes "^2.1.0" 950 | 951 | shebang-command@^2.0.0: 952 | version "2.0.0" 953 | resolved "https://registry.npmmirror.com/shebang-command/-/shebang-command-2.0.0.tgz#ccd0af4f8835fbdc265b82461aaf0c36663f34ea" 954 | integrity sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA== 955 | dependencies: 956 | shebang-regex "^3.0.0" 957 | 958 | shebang-regex@^3.0.0: 959 | version "3.0.0" 960 | resolved "https://registry.npmmirror.com/shebang-regex/-/shebang-regex-3.0.0.tgz#ae16f1644d873ecad843b0307b143362d4c42172" 961 | integrity sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A== 962 | 963 | signal-exit@^3.0.3: 964 | version "3.0.7" 965 | resolved "https://registry.npmmirror.com/signal-exit/-/signal-exit-3.0.7.tgz#a9a1767f8af84155114eaabd73f99273c8f59ad9" 966 | integrity sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ== 967 | 968 | slash@^3.0.0: 969 | version "3.0.0" 970 | resolved "https://registry.npmmirror.com/slash/-/slash-3.0.0.tgz#6539be870c165adbd5240220dbe361f1bc4d4634" 971 | integrity sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q== 972 | 973 | source-map-support@~0.5.20: 974 | version "0.5.21" 975 | resolved "https://registry.npmmirror.com/source-map-support/-/source-map-support-0.5.21.tgz#04fe7c7f9e1ed2d662233c28cb2b35b9f63f6e4f" 976 | integrity sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w== 977 | dependencies: 978 | buffer-from "^1.0.0" 979 | source-map "^0.6.0" 980 | 981 | source-map@^0.6.0, source-map@^0.6.1: 982 | version "0.6.1" 983 | resolved "https://registry.npmmirror.com/source-map/-/source-map-0.6.1.tgz#74722af32e9614e9c287a8d0bbde48b5e2f1a263" 984 | integrity sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g== 985 | 986 | source-map@^0.7.3, source-map@~0.7.2: 987 | version "0.7.3" 988 | resolved "https://registry.npmmirror.com/source-map/-/source-map-0.7.3.tgz#5302f8169031735226544092e64981f751750383" 989 | integrity sha512-CkCj6giN3S+n9qrYiBTX5gystlENnRW5jZeNLHpe6aue+SrHcG5VYwujhW9s4dY31mEGsxBDrHR6oI69fTXsaQ== 990 | 991 | strip-final-newline@^2.0.0: 992 | version "2.0.0" 993 | resolved "https://registry.npmmirror.com/strip-final-newline/-/strip-final-newline-2.0.0.tgz#89b852fb2fcbe936f6f4b3187afb0a12c1ab58ad" 994 | integrity sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA== 995 | 996 | sucrase@^3.20.3: 997 | version "3.21.0" 998 | resolved "https://registry.npmmirror.com/sucrase/-/sucrase-3.21.0.tgz#6a5affdbe716b22e4dc99c57d366ad0d216444b9" 999 | integrity sha512-FjAhMJjDcifARI7bZej0Bi1yekjWQHoEvWIXhLPwDhC6O4iZ5PtGb86WV56riW87hzpgB13wwBKO9vKAiWu5VQ== 1000 | dependencies: 1001 | commander "^4.0.0" 1002 | glob "7.1.6" 1003 | lines-and-columns "^1.1.6" 1004 | mz "^2.7.0" 1005 | pirates "^4.0.1" 1006 | ts-interface-checker "^0.1.9" 1007 | 1008 | supports-color@^8.0.0: 1009 | version "8.1.1" 1010 | resolved "https://registry.npmmirror.com/supports-color/-/supports-color-8.1.1.tgz#cd6fc17e28500cff56c1b86c0a7fd4a54a73005c" 1011 | integrity sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q== 1012 | dependencies: 1013 | has-flag "^4.0.0" 1014 | 1015 | tapable@^2.1.1, tapable@^2.2.0: 1016 | version "2.2.1" 1017 | resolved "https://registry.npmmirror.com/tapable/-/tapable-2.2.1.tgz#1967a73ef4060a82f12ab96af86d52fdb76eeca0" 1018 | integrity sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ== 1019 | 1020 | terser-webpack-plugin@^5.1.3: 1021 | version "5.3.1" 1022 | resolved "https://registry.npmmirror.com/terser-webpack-plugin/-/terser-webpack-plugin-5.3.1.tgz#0320dcc270ad5372c1e8993fabbd927929773e54" 1023 | integrity sha512-GvlZdT6wPQKbDNW/GDQzZFg/j4vKU96yl2q6mcUkzKOgW4gwf1Z8cZToUCrz31XHlPWH8MVb1r2tFtdDtTGJ7g== 1024 | dependencies: 1025 | jest-worker "^27.4.5" 1026 | schema-utils "^3.1.1" 1027 | serialize-javascript "^6.0.0" 1028 | source-map "^0.6.1" 1029 | terser "^5.7.2" 1030 | 1031 | terser@^5.7.2: 1032 | version "5.12.1" 1033 | resolved "https://registry.npmmirror.com/terser/-/terser-5.12.1.tgz#4cf2ebed1f5bceef5c83b9f60104ac4a78b49e9c" 1034 | integrity sha512-NXbs+7nisos5E+yXwAD+y7zrcTkMqb0dEJxIGtSKPdCBzopf7ni4odPul2aechpV7EXNvOudYOX2bb5tln1jbQ== 1035 | dependencies: 1036 | acorn "^8.5.0" 1037 | commander "^2.20.0" 1038 | source-map "~0.7.2" 1039 | source-map-support "~0.5.20" 1040 | 1041 | thenify-all@^1.0.0: 1042 | version "1.6.0" 1043 | resolved "https://registry.npmmirror.com/thenify-all/-/thenify-all-1.6.0.tgz#1a1918d402d8fc3f98fbf234db0bcc8cc10e9726" 1044 | integrity sha512-RNxQH/qI8/t3thXJDwcstUO4zeqo64+Uy/+sNVRBx4Xn2OX+OZ9oP+iJnNFqplFra2ZUVeKCSa2oVWi3T4uVmA== 1045 | dependencies: 1046 | thenify ">= 3.1.0 < 4" 1047 | 1048 | "thenify@>= 3.1.0 < 4": 1049 | version "3.3.1" 1050 | resolved "https://registry.npmmirror.com/thenify/-/thenify-3.3.1.tgz#8932e686a4066038a016dd9e2ca46add9838a95f" 1051 | integrity sha512-RVZSIV5IG10Hk3enotrhvz0T9em6cyHBLkH/YAZuKqd8hRkKhSfCGIcP2KUY0EPxndzANBmNllzWPwak+bheSw== 1052 | dependencies: 1053 | any-promise "^1.0.0" 1054 | 1055 | to-regex-range@^5.0.1: 1056 | version "5.0.1" 1057 | resolved "https://registry.npmmirror.com/to-regex-range/-/to-regex-range-5.0.1.tgz#1648c44aae7c8d988a326018ed72f5b4dd0392e4" 1058 | integrity sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ== 1059 | dependencies: 1060 | is-number "^7.0.0" 1061 | 1062 | tree-kill@^1.2.2: 1063 | version "1.2.2" 1064 | resolved "https://registry.npmmirror.com/tree-kill/-/tree-kill-1.2.2.tgz#4ca09a9092c88b73a7cdc5e8a01b507b0790a0cc" 1065 | integrity sha512-L0Orpi8qGpRG//Nd+H90vFB+3iHnue1zSSGmNOOCh1GLJ7rUKVwV2HvijphGQS2UmhUZewS9VgvxYIdgr+fG1A== 1066 | 1067 | ts-interface-checker@^0.1.9: 1068 | version "0.1.13" 1069 | resolved "https://registry.npmmirror.com/ts-interface-checker/-/ts-interface-checker-0.1.13.tgz#784fd3d679722bc103b1b4b8030bcddb5db2a699" 1070 | integrity sha512-Y/arvbn+rrz3JCKl9C4kVNfTfSm2/mEp5FSz5EsZSANGPSlQrpRI5M4PKF+mJnE52jOO90PnPSc3Ur3bTQw0gA== 1071 | 1072 | tsup@^5.12.5: 1073 | version "5.12.5" 1074 | resolved "https://registry.npmmirror.com/tsup/-/tsup-5.12.5.tgz#3cb67b568d5ea7460756469329f8533f933bf815" 1075 | integrity sha512-lKwzJsB49sDto51QjqOB4SdiBLKRvgTymEBuBCovcksdDwFEz3esrkbf3m497PXntUKVTzcgOfPdTgknMtvufw== 1076 | dependencies: 1077 | bundle-require "^3.0.2" 1078 | cac "^6.7.12" 1079 | chokidar "^3.5.1" 1080 | debug "^4.3.1" 1081 | esbuild "^0.14.25" 1082 | execa "^5.0.0" 1083 | globby "^11.0.3" 1084 | joycon "^3.0.1" 1085 | postcss-load-config "^3.0.1" 1086 | resolve-from "^5.0.0" 1087 | rollup "^2.60.0" 1088 | source-map "^0.7.3" 1089 | sucrase "^3.20.3" 1090 | tree-kill "^1.2.2" 1091 | 1092 | typescript@^4.6.3: 1093 | version "4.6.3" 1094 | resolved "https://registry.npmmirror.com/typescript/-/typescript-4.6.3.tgz#eefeafa6afdd31d725584c67a0eaba80f6fc6c6c" 1095 | integrity sha512-yNIatDa5iaofVozS/uQJEl3JRWLKKGJKh6Yaiv0GLGSuhpFJe7P3SbHZ8/yjAHRQwKRoA6YZqlfjXWmVzoVSMw== 1096 | 1097 | uri-js@^4.2.2: 1098 | version "4.4.1" 1099 | resolved "https://registry.npmmirror.com/uri-js/-/uri-js-4.4.1.tgz#9b1a52595225859e55f669d928f88c6c57f2a77e" 1100 | integrity sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg== 1101 | dependencies: 1102 | punycode "^2.1.0" 1103 | 1104 | watchpack@^2.3.1: 1105 | version "2.3.1" 1106 | resolved "https://registry.npmmirror.com/watchpack/-/watchpack-2.3.1.tgz#4200d9447b401156eeca7767ee610f8809bc9d25" 1107 | integrity sha512-x0t0JuydIo8qCNctdDrn1OzH/qDzk2+rdCOC3YzumZ42fiMqmQ7T3xQurykYMhYfHaPHTp4ZxAx2NfUo1K6QaA== 1108 | dependencies: 1109 | glob-to-regexp "^0.4.1" 1110 | graceful-fs "^4.1.2" 1111 | 1112 | webpack-sources@^3.2.3: 1113 | version "3.2.3" 1114 | resolved "https://registry.npmmirror.com/webpack-sources/-/webpack-sources-3.2.3.tgz#2d4daab8451fd4b240cc27055ff6a0c2ccea0cde" 1115 | integrity sha512-/DyMEOrDgLKKIG0fmvtz+4dUX/3Ghozwgm6iPp8KRhvn+eQf9+Q7GWxVNMk3+uCPWfdXYC4ExGBckIXdFEfH1w== 1116 | 1117 | webpack@^5: 1118 | version "5.72.0" 1119 | resolved "https://registry.npmmirror.com/webpack/-/webpack-5.72.0.tgz#f8bc40d9c6bb489a4b7a8a685101d6022b8b6e28" 1120 | integrity sha512-qmSmbspI0Qo5ld49htys8GY9XhS9CGqFoHTsOVAnjBdg0Zn79y135R+k4IR4rKK6+eKaabMhJwiVB7xw0SJu5w== 1121 | dependencies: 1122 | "@types/eslint-scope" "^3.7.3" 1123 | "@types/estree" "^0.0.51" 1124 | "@webassemblyjs/ast" "1.11.1" 1125 | "@webassemblyjs/wasm-edit" "1.11.1" 1126 | "@webassemblyjs/wasm-parser" "1.11.1" 1127 | acorn "^8.4.1" 1128 | acorn-import-assertions "^1.7.6" 1129 | browserslist "^4.14.5" 1130 | chrome-trace-event "^1.0.2" 1131 | enhanced-resolve "^5.9.2" 1132 | es-module-lexer "^0.9.0" 1133 | eslint-scope "5.1.1" 1134 | events "^3.2.0" 1135 | glob-to-regexp "^0.4.1" 1136 | graceful-fs "^4.2.9" 1137 | json-parse-better-errors "^1.0.2" 1138 | loader-runner "^4.2.0" 1139 | mime-types "^2.1.27" 1140 | neo-async "^2.6.2" 1141 | schema-utils "^3.1.0" 1142 | tapable "^2.1.1" 1143 | terser-webpack-plugin "^5.1.3" 1144 | watchpack "^2.3.1" 1145 | webpack-sources "^3.2.3" 1146 | 1147 | which@^2.0.1: 1148 | version "2.0.2" 1149 | resolved "https://registry.npmmirror.com/which/-/which-2.0.2.tgz#7c6a8dd0a636a0327e10b59c9286eee93f3f51b1" 1150 | integrity sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA== 1151 | dependencies: 1152 | isexe "^2.0.0" 1153 | 1154 | wrappy@1: 1155 | version "1.0.2" 1156 | resolved "https://registry.npmmirror.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f" 1157 | integrity sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ== 1158 | 1159 | yaml@^1.10.2: 1160 | version "1.10.2" 1161 | resolved "https://registry.npmmirror.com/yaml/-/yaml-1.10.2.tgz#2301c5ffbf12b467de8da2333a459e29e7920e4b" 1162 | integrity sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg== 1163 | --------------------------------------------------------------------------------