├── .github └── workflows │ └── ci.yaml ├── .gitignore ├── .prettierrc ├── README.md ├── index.js ├── package-lock.json ├── package.json ├── webpack-stats-types.ts └── yarn.lock /.github/workflows/ci.yaml: -------------------------------------------------------------------------------- 1 | name: Node.js CI 2 | 3 | on: [push] 4 | 5 | jobs: 6 | test: 7 | runs-on: ubuntu-latest 8 | 9 | steps: 10 | - uses: actions/checkout@v2 11 | - name: Use Node.js 12 | uses: actions/setup-node@v1 13 | - run: npm install 14 | - run: npm test 15 | env: 16 | CI: true 17 | 18 | deploy: 19 | runs-on: ubuntu-latest 20 | 21 | needs: test 22 | if: github.ref == 'refs/heads/main' 23 | 24 | steps: 25 | - uses: actions/checkout@v2 26 | - name: Use Node.js 27 | uses: actions/setup-node@v1 28 | - uses: JS-DevTools/npm-publish@v1 29 | with: 30 | token: ${{ secrets.NPM_TOKEN }} 31 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | node_modules/ -------------------------------------------------------------------------------- /.prettierrc: -------------------------------------------------------------------------------- 1 | { 2 | "tabWidth": 2, 3 | "useTabs": false 4 | } 5 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # webpack-federated-stats-plugin 2 | 3 | This plugin will ingest the webpack stats object, process / transform the object and write out relevant federation stats to a file for further consumption. 4 | 5 | The most common use case is building a hashed bundle and wanting to programmatically refer to the correct bundle path in your Node.js server. 6 | 7 | ## Install 8 | 9 | ```bash 10 | > npm i --save-dev webpack-federated-stats-plugin 11 | ``` 12 | 13 | ## Usage 14 | 15 | ```javascript 16 | const FederatedStatsPlugin = require("webpack-federated-stats-plugin"); 17 | 18 | module.exports = { 19 | plugins: [ 20 | new FederatedStatsPlugin({ 21 | filename: "federation-stats.json", 22 | }), 23 | ], 24 | }; 25 | ``` 26 | 27 | ## Example Output 28 | 29 | ```json 30 | { 31 | "sharedModules": [ 32 | { 33 | "chunks": [ 34 | "http://localhost:5000/client-bundle/node_modules_preact_hooks_dist_hooks_module_js-_41171.js" 35 | ], 36 | "provides": [ 37 | { 38 | "shareScope": "default", 39 | "shareKey": "preact/hooks", 40 | "requiredVersion": "^10.5.7", 41 | "strictVersion": true, 42 | "singleton": false, 43 | "eager": false 44 | } 45 | ] 46 | }, 47 | { 48 | "chunks": [ 49 | "http://localhost:5000/client-bundle/vendors-node_modules_preact_dist_preact_module_js.js" 50 | ], 51 | "provides": [ 52 | { 53 | "shareScope": "default", 54 | "shareKey": "preact", 55 | "requiredVersion": "^10.5.7", 56 | "strictVersion": true, 57 | "singleton": false, 58 | "eager": false 59 | } 60 | ] 61 | }, 62 | { 63 | "chunks": [ 64 | "http://localhost:5000/client-bundle/vendors-node_modules_universal-router_sync_module_js.js" 65 | ], 66 | "provides": [ 67 | { 68 | "shareScope": "default", 69 | "shareKey": "universal-router/sync", 70 | "requiredVersion": "^9.0.1", 71 | "strictVersion": true, 72 | "singleton": false, 73 | "eager": false 74 | } 75 | ] 76 | } 77 | ], 78 | "federatedModules": [ 79 | { 80 | "remote": "preactFrameworkExample", 81 | "entry": "http://localhost:5000/client-bundle/routes.js", 82 | "remoteModules": { 83 | "otherRemote/exposedFile": 893 84 | }, 85 | "sharedModules": [ 86 | { 87 | "chunks": [ 88 | "http://localhost:5000/client-bundle/node_modules_preact_hooks_dist_hooks_module_js-_41171.js" 89 | ], 90 | "provides": [ 91 | { 92 | "shareScope": "default", 93 | "shareKey": "preact/hooks", 94 | "requiredVersion": "^10.5.7", 95 | "strictVersion": true, 96 | "singleton": false, 97 | "eager": false 98 | } 99 | ] 100 | }, 101 | { 102 | "chunks": [ 103 | "http://localhost:5000/client-bundle/vendors-node_modules_preact_dist_preact_module_js.js" 104 | ], 105 | "provides": [ 106 | { 107 | "shareScope": "default", 108 | "shareKey": "preact", 109 | "requiredVersion": "^10.5.7", 110 | "strictVersion": true, 111 | "singleton": false, 112 | "eager": false 113 | } 114 | ] 115 | }, 116 | { 117 | "chunks": [ 118 | "http://localhost:5000/client-bundle/vendors-node_modules_universal-router_sync_module_js.js" 119 | ], 120 | "provides": [ 121 | { 122 | "shareScope": "default", 123 | "shareKey": "universal-router/sync", 124 | "requiredVersion": "^9.0.1", 125 | "strictVersion": true, 126 | "singleton": false, 127 | "eager": false 128 | } 129 | ] 130 | } 131 | ], 132 | "exposes": { 133 | "./src/routes/About.tsx": [ 134 | { 135 | "chunks": [ 136 | "http://localhost:5000/client-bundle/src_routes_About_tsx.css", 137 | "http://localhost:5000/client-bundle/src_routes_About_tsx.js" 138 | ], 139 | "sharedModules": [ 140 | { 141 | "chunks": [ 142 | "http://localhost:5000/client-bundle/vendors-node_modules_preact_dist_preact_module_js.js" 143 | ], 144 | "provides": [ 145 | { 146 | "shareScope": "default", 147 | "shareKey": "preact", 148 | "requiredVersion": "^10.5.7", 149 | "strictVersion": true, 150 | "singleton": false, 151 | "eager": false 152 | } 153 | ] 154 | } 155 | ] 156 | } 157 | ], 158 | "./src/routes/Home.tsx": [ 159 | { 160 | "chunks": [ 161 | "http://localhost:5000/client-bundle/src_routes_Home_tsx.css", 162 | "http://localhost:5000/client-bundle/src_routes_Home_tsx.js" 163 | ], 164 | "sharedModules": [ 165 | { 166 | "chunks": [ 167 | "http://localhost:5000/client-bundle/vendors-node_modules_preact_dist_preact_module_js.js" 168 | ], 169 | "provides": [ 170 | { 171 | "shareScope": "default", 172 | "shareKey": "preact", 173 | "requiredVersion": "^10.5.7", 174 | "strictVersion": true, 175 | "singleton": false, 176 | "eager": false 177 | } 178 | ] 179 | } 180 | ] 181 | } 182 | ] 183 | } 184 | } 185 | ] 186 | } 187 | ``` 188 | -------------------------------------------------------------------------------- /index.js: -------------------------------------------------------------------------------- 1 | const webpack = require("webpack"); 2 | 3 | const PLUGIN_NAME = "FederationStatsPlugin"; 4 | 5 | /** @typedef {import("./webpack-stats-types").WebpackStats} WebpackStats */ 6 | /** @typedef {import("./webpack-stats-types").WebpackStatsChunk} WebpackStatsChunk */ 7 | /** @typedef {import("./webpack-stats-types").WebpackStatsModule} WebpackStatsModule */ 8 | 9 | /** 10 | * @typedef {object} SharedDependency 11 | * @property {string} shareScope 12 | * @property {string} shareKey 13 | * @property {string} requiredVersion 14 | * @property {boolean} strictVersion 15 | * @property {boolean} singleton 16 | * @property {boolean} eager 17 | */ 18 | 19 | /** 20 | * @typedef {object} SharedModule 21 | * @property {string[]} chunks 22 | * @property {SharedDependency[]} provides 23 | */ 24 | 25 | /** 26 | * @typedef {object} Exposed 27 | * @property {string[]} chunks 28 | * @property {SharedModule[]} sharedModules 29 | */ 30 | 31 | /** 32 | * @typedef {object} FederatedContainer 33 | * @property {string} remote 34 | * @property {string} entry 35 | * @property {SharedModule[]} sharedModules 36 | * @property {{ [key: string]: Exposed }} exposes 37 | */ 38 | 39 | /** 40 | * @typedef {object} FederatedStats 41 | * @property {SharedModule[]} sharedModules 42 | * @property {FederatedContainer[]} federatedModules 43 | */ 44 | 45 | const concat = (x, y) => x.concat(y); 46 | 47 | const flatMap = (xs, f) => xs.map(f).reduce(concat, []); 48 | 49 | /** 50 | * 51 | * @param {WebpackStats} stats 52 | * @returns {} 53 | */ 54 | function getRemoteModules(stats) { 55 | return stats.modules.filter((mod)=>{ 56 | return mod.moduleType === 'remote-module' 57 | }).reduce((acc,remoteModule) => { 58 | acc[remoteModule.nameForCondition] = remoteModule.id 59 | return acc 60 | },{}) 61 | } 62 | 63 | /** 64 | * 65 | * @param {WebpackStats} stats 66 | * @param {string} exposedFile 67 | * @returns {WebpackStatsModule[]} 68 | */ 69 | function getExposedModules(stats, exposedFile) { 70 | return stats.modules.filter((mod) => mod.name.startsWith(exposedFile)); 71 | } 72 | 73 | /** 74 | * 75 | * @param {WebpackStats} stats 76 | * @param {WebpackStatsModule} mod 77 | * @returns {Exposed} 78 | */ 79 | function getExposed(stats, mod) { 80 | const chunks = stats.chunks.filter((chunk) => { 81 | return mod.chunks.some((id) => id === chunk.id); 82 | }); 83 | 84 | const sharedModules = flatMap(chunks, (chunk) => 85 | flatMap( 86 | flatMap(chunk.siblings, (id) => 87 | stats.chunks.filter((c) => c.id === id) 88 | ).filter((c) => 89 | c.modules.some((m) => m.moduleType === "consume-shared-module") 90 | ), 91 | (c) => 92 | flatMap(c.children, (id) => stats.chunks.filter((c2) => c2.id === id)) 93 | ) 94 | ) 95 | .filter((chunk) => 96 | chunk.parents.some((parent) => chunks.some((c) => c.id === parent)) 97 | ) 98 | .map((chunk) => ({ 99 | chunks: chunk.files.map( 100 | (f) => 101 | `${stats.publicPath !== "auto" ? stats.publicPath || "" : ""}${f}` 102 | ), 103 | provides: chunk.modules 104 | .map((mod) => parseFederatedIssuer(mod.issuer)) 105 | .filter((f) => !!f), 106 | })); 107 | 108 | return { 109 | chunks: flatMap(chunks, (chunk) => 110 | chunk.files.map( 111 | (f) => 112 | `${stats.publicPath !== "auto" ? stats.publicPath || "" : ""}${f}` 113 | ) 114 | ), 115 | sharedModules, 116 | }; 117 | } 118 | 119 | /** 120 | * 121 | * @param {import("webpack").Module} mod 122 | * @param {(issuer: string) => boolean} check 123 | * @returns {boolean} 124 | */ 125 | function searchIssuer(mod, check) { 126 | if (mod.issuer && check(mod.issuer)) { 127 | return true; 128 | } 129 | 130 | return !!mod.modules && mod.modules.some((m) => searchIssuer(m, check)); 131 | } 132 | 133 | /** 134 | * @param {import("webpack").Module} mod 135 | * @param {(issuer: string) => boolean} check 136 | * @returns {string[]} 137 | */ 138 | function getIssuers(mod, check) { 139 | if (mod.issuer && check(mod.issuer)) { 140 | return [mod.issuer]; 141 | } 142 | 143 | return ( 144 | (mod.modules && 145 | mod.modules.filter((m) => searchIssuer(m, check)).map((m) => m.issuer)) || 146 | [] 147 | ); 148 | } 149 | 150 | /** 151 | * @param {string} issuer 152 | * @returns {SharedDependency} 153 | */ 154 | function parseFederatedIssuer(issuer) { 155 | const split = (issuer && issuer.split("|")) || []; 156 | if (split.length !== 8 || split[0] !== "consume-shared-module") { 157 | return null; 158 | } 159 | const [ 160 | _, 161 | shareScope, 162 | shareKey, 163 | requiredVersion, 164 | strictVersion, 165 | __, 166 | singleton, 167 | eager, 168 | ] = split; 169 | 170 | return { 171 | shareScope, 172 | shareKey, 173 | requiredVersion, 174 | strictVersion: JSON.parse(strictVersion), 175 | singleton: JSON.parse(singleton), 176 | eager: JSON.parse(eager), 177 | }; 178 | } 179 | 180 | /** 181 | * 182 | * @param {WebpackStats} stats 183 | * @param {import("webpack").container.ModuleFederationPlugin} federationPlugin 184 | * @returns {SharedModule[]} 185 | */ 186 | function getSharedModules(stats, federationPlugin) { 187 | return flatMap( 188 | stats.chunks.filter((chunk) => { 189 | if (!stats.entrypoints[federationPlugin._options.name]) { 190 | return false; 191 | } 192 | return stats.entrypoints[federationPlugin._options.name].chunks.some( 193 | (id) => chunk.id === id 194 | ); 195 | } 196 | ), 197 | (chunk) => 198 | flatMap(chunk.children, (id) => 199 | stats.chunks.filter( 200 | (c) => 201 | c.id === id && 202 | c.files.length > 0 && 203 | c.parents.some((p) => 204 | stats.entrypoints[federationPlugin._options.name].chunks.some( 205 | (c) => c === p 206 | ) 207 | ) && 208 | c.modules.some((m) => 209 | searchIssuer( 210 | m, 211 | (issuer) => issuer && issuer.startsWith("consume-shared-module") 212 | ) 213 | ) 214 | ) 215 | ) 216 | ) 217 | .map((chunk) => ({ 218 | chunks: chunk.files.map( 219 | (f) => 220 | `${stats.publicPath !== "auto" ? stats.publicPath || "" : ""}${f}` 221 | ), 222 | provides: flatMap( 223 | chunk.modules.filter((m) => 224 | searchIssuer( 225 | m, 226 | (issuer) => issuer && issuer.startsWith("consume-shared-module") 227 | ) 228 | ), 229 | (m) => 230 | getIssuers( 231 | m, 232 | (issuer) => issuer && issuer.startsWith("consume-shared-module") 233 | ) 234 | ) 235 | .map(parseFederatedIssuer) 236 | .filter((f) => !!f), 237 | })) 238 | .filter((c) => c.provides.length > 0); 239 | } 240 | 241 | /** 242 | * @param {WebpackStats} stats 243 | * @returns {SharedModule[]} 244 | */ 245 | function getMainSharedModules(stats) { 246 | const chunks = stats.namedChunkGroups["main"] 247 | ? flatMap(stats.namedChunkGroups["main"].chunks, (c) => 248 | stats.chunks.filter((chunk) => chunk.id === c) 249 | ) 250 | : []; 251 | 252 | return flatMap(chunks, (chunk) => 253 | flatMap(chunk.children, (id) => 254 | stats.chunks.filter( 255 | (c) => 256 | c.id === id && 257 | c.files.length > 0 && 258 | c.modules.some((m) => 259 | searchIssuer( 260 | m, 261 | (issuer) => issuer && issuer.startsWith("consume-shared-module") 262 | ) 263 | ) 264 | ) 265 | ) 266 | ) 267 | .map((chunk) => ({ 268 | chunks: chunk.files.map( 269 | (f) => 270 | `${stats.publicPath !== "auto" ? stats.publicPath || "" : ""}${f}` 271 | ), 272 | provides: flatMap( 273 | chunk.modules.filter((m) => 274 | searchIssuer( 275 | m, 276 | (issuer) => issuer && issuer.startsWith("consume-shared-module") 277 | ) 278 | ), 279 | (m) => 280 | getIssuers( 281 | m, 282 | (issuer) => issuer && issuer.startsWith("consume-shared-module") 283 | ) 284 | ) 285 | .map(parseFederatedIssuer) 286 | .filter((f) => !!f), 287 | })) 288 | .filter((c) => c.provides.length > 0); 289 | } 290 | 291 | /** 292 | * 293 | * @param {WebpackStats} stats 294 | * @param {import("webpack").container.ModuleFederationPlugin} federationPlugin 295 | * @returns {FederatedStats} 296 | */ 297 | function getFederationStats(stats, federationPlugin) { 298 | const exposedModules = Object.entries( 299 | federationPlugin._options.exposes 300 | ).reduce((exposedModules, [exposedAs, exposedFile]) => { 301 | return Object.assign(exposedModules, { 302 | [exposedAs]: getExposedModules(stats, exposedFile), 303 | }); 304 | }, {}); 305 | 306 | /** @type {{ [key: string]: Exposed }} */ 307 | const exposes = Object.entries(exposedModules).reduce( 308 | (exposedChunks, [exposedAs, exposedModules]) => { 309 | return Object.assign(exposedChunks, { 310 | [exposedAs]: flatMap(exposedModules, (mod) => { 311 | return getExposed(stats, mod); 312 | }), 313 | }); 314 | }, 315 | {} 316 | ); 317 | 318 | /** @type {string} */ 319 | const remote = 320 | (federationPlugin._options.library && 321 | federationPlugin._options.library.name) || 322 | federationPlugin._options.name; 323 | 324 | const sharedModules = getSharedModules(stats, federationPlugin); 325 | const remoteModules = getRemoteModules(stats); 326 | return { 327 | remote, 328 | entry: `${stats.publicPath !== "auto" ? stats.publicPath || "" : ""}${ 329 | stats.assetsByChunkName[remote] && 330 | stats.assetsByChunkName[remote].length === 1 331 | ? stats.assetsByChunkName[remote][0] 332 | : federationPlugin._options.filename 333 | }`, 334 | sharedModules, 335 | exposes, 336 | remoteModules, 337 | }; 338 | } 339 | 340 | /** 341 | * @typedef {object} FederationStatsPluginOptions 342 | * @property {string} filename The filename in the `output.path` directory to write stats to. 343 | */ 344 | 345 | /** 346 | * Writes relevant federation stats to a file for further consumption. 347 | */ 348 | class FederationStatsPlugin { 349 | /** 350 | * 351 | * @param {FederationStatsPluginOptions} options 352 | */ 353 | constructor(options) { 354 | if (!options || !options.filename) { 355 | throw new Error("filename option is required."); 356 | } 357 | 358 | this._options = options; 359 | } 360 | 361 | /** 362 | * 363 | * @param {import("webpack").Compiler} compiler 364 | */ 365 | apply(compiler) { 366 | const federationPlugins = 367 | compiler.options.plugins && 368 | compiler.options.plugins.filter( 369 | (plugin) => 370 | plugin.constructor.name === "ModuleFederationPlugin" && 371 | plugin._options.exposes 372 | ); 373 | 374 | if (!federationPlugins || federationPlugins.length === 0) { 375 | console.error("No ModuleFederationPlugin(s) found."); 376 | return; 377 | } 378 | 379 | compiler.hooks.thisCompilation.tap(PLUGIN_NAME, (compilation) => { 380 | compilation.hooks.processAssets.tapPromise( 381 | { 382 | name: PLUGIN_NAME, 383 | stage: compilation.constructor.PROCESS_ASSETS_STAGE_REPORT, 384 | }, 385 | async () => { 386 | const stats = compilation.getStats().toJson({}); 387 | 388 | const federatedModules = federationPlugins.map((federationPlugin) => 389 | getFederationStats(stats, federationPlugin) 390 | ); 391 | 392 | const sharedModules = getMainSharedModules(stats); 393 | 394 | const statsResult = { 395 | sharedModules, 396 | federatedModules, 397 | }; 398 | 399 | const statsJson = JSON.stringify(statsResult); 400 | const statsBuffer = Buffer.from(statsJson, "utf-8"); 401 | const statsSource = { 402 | source: () => statsBuffer, 403 | size: () => statsBuffer.length, 404 | }; 405 | 406 | const filename = this._options.filename; 407 | 408 | const asset = compilation.getAsset(filename); 409 | if (asset) { 410 | compilation.updateAsset(filename, statsSource); 411 | } else { 412 | compilation.emitAsset(filename, statsSource); 413 | } 414 | } 415 | ); 416 | }); 417 | } 418 | } 419 | 420 | module.exports = FederationStatsPlugin; 421 | -------------------------------------------------------------------------------- /package-lock.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "webpack-federated-stats-plugin", 3 | "version": "0.0.0-beta.1", 4 | "lockfileVersion": 1, 5 | "requires": true, 6 | "dependencies": { 7 | "@types/eslint": { 8 | "version": "7.2.5", 9 | "resolved": "https://registry.npmjs.org/@types/eslint/-/eslint-7.2.5.tgz", 10 | "integrity": "sha512-Dc6ar9x16BdaR3NSxSF7T4IjL9gxxViJq8RmFd+2UAyA+K6ck2W+gUwfgpG/y9TPyUuBL35109bbULpEynvltA==", 11 | "dev": true, 12 | "requires": { 13 | "@types/estree": "*", 14 | "@types/json-schema": "*" 15 | } 16 | }, 17 | "@types/eslint-scope": { 18 | "version": "3.7.0", 19 | "resolved": "https://registry.npmjs.org/@types/eslint-scope/-/eslint-scope-3.7.0.tgz", 20 | "integrity": "sha512-O/ql2+rrCUe2W2rs7wMR+GqPRcgB6UiqN5RhrR5xruFlY7l9YLMn0ZkDzjoHLeiFkR8MCQZVudUuuvQ2BLC9Qw==", 21 | "dev": true, 22 | "requires": { 23 | "@types/eslint": "*", 24 | "@types/estree": "*" 25 | } 26 | }, 27 | "@types/estree": { 28 | "version": "0.0.45", 29 | "resolved": "https://registry.npmjs.org/@types/estree/-/estree-0.0.45.tgz", 30 | "integrity": "sha512-jnqIUKDUqJbDIUxm0Uj7bnlMnRm1T/eZ9N+AVMqhPgzrba2GhGG5o/jCTwmdPK709nEZsGoMzXEDUjcXHa3W0g==", 31 | "dev": true 32 | }, 33 | "@types/json-schema": { 34 | "version": "7.0.6", 35 | "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.6.tgz", 36 | "integrity": "sha512-3c+yGKvVP5Y9TYBEibGNR+kLtijnj7mYrXRg+WpFb2X9xm04g/DXYkfg4hmzJQosc9snFNUPkbYIhu+KAm6jJw==", 37 | "dev": true 38 | }, 39 | "@types/node": { 40 | "version": "14.14.10", 41 | "resolved": "https://registry.npmjs.org/@types/node/-/node-14.14.10.tgz", 42 | "integrity": "sha512-J32dgx2hw8vXrSbu4ZlVhn1Nm3GbeCFNw2FWL8S5QKucHGY0cyNwjdQdO+KMBZ4wpmC7KhLCiNsdk1RFRIYUQQ==", 43 | "dev": true 44 | }, 45 | "@webassemblyjs/ast": { 46 | "version": "1.9.0", 47 | "resolved": "https://registry.npmjs.org/@webassemblyjs/ast/-/ast-1.9.0.tgz", 48 | "integrity": "sha512-C6wW5L+b7ogSDVqymbkkvuW9kruN//YisMED04xzeBBqjHa2FYnmvOlS6Xj68xWQRgWvI9cIglsjFowH/RJyEA==", 49 | "dev": true, 50 | "requires": { 51 | "@webassemblyjs/helper-module-context": "1.9.0", 52 | "@webassemblyjs/helper-wasm-bytecode": "1.9.0", 53 | "@webassemblyjs/wast-parser": "1.9.0" 54 | } 55 | }, 56 | "@webassemblyjs/floating-point-hex-parser": { 57 | "version": "1.9.0", 58 | "resolved": "https://registry.npmjs.org/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.9.0.tgz", 59 | "integrity": "sha512-TG5qcFsS8QB4g4MhrxK5TqfdNe7Ey/7YL/xN+36rRjl/BlGE/NcBvJcqsRgCP6Z92mRE+7N50pRIi8SmKUbcQA==", 60 | "dev": true 61 | }, 62 | "@webassemblyjs/helper-api-error": { 63 | "version": "1.9.0", 64 | "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-api-error/-/helper-api-error-1.9.0.tgz", 65 | "integrity": "sha512-NcMLjoFMXpsASZFxJ5h2HZRcEhDkvnNFOAKneP5RbKRzaWJN36NC4jqQHKwStIhGXu5mUWlUUk7ygdtrO8lbmw==", 66 | "dev": true 67 | }, 68 | "@webassemblyjs/helper-buffer": { 69 | "version": "1.9.0", 70 | "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-buffer/-/helper-buffer-1.9.0.tgz", 71 | "integrity": "sha512-qZol43oqhq6yBPx7YM3m9Bv7WMV9Eevj6kMi6InKOuZxhw+q9hOkvq5e/PpKSiLfyetpaBnogSbNCfBwyB00CA==", 72 | "dev": true 73 | }, 74 | "@webassemblyjs/helper-code-frame": { 75 | "version": "1.9.0", 76 | "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-code-frame/-/helper-code-frame-1.9.0.tgz", 77 | "integrity": "sha512-ERCYdJBkD9Vu4vtjUYe8LZruWuNIToYq/ME22igL+2vj2dQ2OOujIZr3MEFvfEaqKoVqpsFKAGsRdBSBjrIvZA==", 78 | "dev": true, 79 | "requires": { 80 | "@webassemblyjs/wast-printer": "1.9.0" 81 | } 82 | }, 83 | "@webassemblyjs/helper-fsm": { 84 | "version": "1.9.0", 85 | "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-fsm/-/helper-fsm-1.9.0.tgz", 86 | "integrity": "sha512-OPRowhGbshCb5PxJ8LocpdX9Kl0uB4XsAjl6jH/dWKlk/mzsANvhwbiULsaiqT5GZGT9qinTICdj6PLuM5gslw==", 87 | "dev": true 88 | }, 89 | "@webassemblyjs/helper-module-context": { 90 | "version": "1.9.0", 91 | "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-module-context/-/helper-module-context-1.9.0.tgz", 92 | "integrity": "sha512-MJCW8iGC08tMk2enck1aPW+BE5Cw8/7ph/VGZxwyvGbJwjktKkDK7vy7gAmMDx88D7mhDTCNKAW5tED+gZ0W8g==", 93 | "dev": true, 94 | "requires": { 95 | "@webassemblyjs/ast": "1.9.0" 96 | } 97 | }, 98 | "@webassemblyjs/helper-wasm-bytecode": { 99 | "version": "1.9.0", 100 | "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.9.0.tgz", 101 | "integrity": "sha512-R7FStIzyNcd7xKxCZH5lE0Bqy+hGTwS3LJjuv1ZVxd9O7eHCedSdrId/hMOd20I+v8wDXEn+bjfKDLzTepoaUw==", 102 | "dev": true 103 | }, 104 | "@webassemblyjs/helper-wasm-section": { 105 | "version": "1.9.0", 106 | "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.9.0.tgz", 107 | "integrity": "sha512-XnMB8l3ek4tvrKUUku+IVaXNHz2YsJyOOmz+MMkZvh8h1uSJpSen6vYnw3IoQ7WwEuAhL8Efjms1ZWjqh2agvw==", 108 | "dev": true, 109 | "requires": { 110 | "@webassemblyjs/ast": "1.9.0", 111 | "@webassemblyjs/helper-buffer": "1.9.0", 112 | "@webassemblyjs/helper-wasm-bytecode": "1.9.0", 113 | "@webassemblyjs/wasm-gen": "1.9.0" 114 | } 115 | }, 116 | "@webassemblyjs/ieee754": { 117 | "version": "1.9.0", 118 | "resolved": "https://registry.npmjs.org/@webassemblyjs/ieee754/-/ieee754-1.9.0.tgz", 119 | "integrity": "sha512-dcX8JuYU/gvymzIHc9DgxTzUUTLexWwt8uCTWP3otys596io0L5aW02Gb1RjYpx2+0Jus1h4ZFqjla7umFniTg==", 120 | "dev": true, 121 | "requires": { 122 | "@xtuc/ieee754": "^1.2.0" 123 | } 124 | }, 125 | "@webassemblyjs/leb128": { 126 | "version": "1.9.0", 127 | "resolved": "https://registry.npmjs.org/@webassemblyjs/leb128/-/leb128-1.9.0.tgz", 128 | "integrity": "sha512-ENVzM5VwV1ojs9jam6vPys97B/S65YQtv/aanqnU7D8aSoHFX8GyhGg0CMfyKNIHBuAVjy3tlzd5QMMINa7wpw==", 129 | "dev": true, 130 | "requires": { 131 | "@xtuc/long": "4.2.2" 132 | } 133 | }, 134 | "@webassemblyjs/utf8": { 135 | "version": "1.9.0", 136 | "resolved": "https://registry.npmjs.org/@webassemblyjs/utf8/-/utf8-1.9.0.tgz", 137 | "integrity": "sha512-GZbQlWtopBTP0u7cHrEx+73yZKrQoBMpwkGEIqlacljhXCkVM1kMQge/Mf+csMJAjEdSwhOyLAS0AoR3AG5P8w==", 138 | "dev": true 139 | }, 140 | "@webassemblyjs/wasm-edit": { 141 | "version": "1.9.0", 142 | "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-edit/-/wasm-edit-1.9.0.tgz", 143 | "integrity": "sha512-FgHzBm80uwz5M8WKnMTn6j/sVbqilPdQXTWraSjBwFXSYGirpkSWE2R9Qvz9tNiTKQvoKILpCuTjBKzOIm0nxw==", 144 | "dev": true, 145 | "requires": { 146 | "@webassemblyjs/ast": "1.9.0", 147 | "@webassemblyjs/helper-buffer": "1.9.0", 148 | "@webassemblyjs/helper-wasm-bytecode": "1.9.0", 149 | "@webassemblyjs/helper-wasm-section": "1.9.0", 150 | "@webassemblyjs/wasm-gen": "1.9.0", 151 | "@webassemblyjs/wasm-opt": "1.9.0", 152 | "@webassemblyjs/wasm-parser": "1.9.0", 153 | "@webassemblyjs/wast-printer": "1.9.0" 154 | } 155 | }, 156 | "@webassemblyjs/wasm-gen": { 157 | "version": "1.9.0", 158 | "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-gen/-/wasm-gen-1.9.0.tgz", 159 | "integrity": "sha512-cPE3o44YzOOHvlsb4+E9qSqjc9Qf9Na1OO/BHFy4OI91XDE14MjFN4lTMezzaIWdPqHnsTodGGNP+iRSYfGkjA==", 160 | "dev": true, 161 | "requires": { 162 | "@webassemblyjs/ast": "1.9.0", 163 | "@webassemblyjs/helper-wasm-bytecode": "1.9.0", 164 | "@webassemblyjs/ieee754": "1.9.0", 165 | "@webassemblyjs/leb128": "1.9.0", 166 | "@webassemblyjs/utf8": "1.9.0" 167 | } 168 | }, 169 | "@webassemblyjs/wasm-opt": { 170 | "version": "1.9.0", 171 | "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-opt/-/wasm-opt-1.9.0.tgz", 172 | "integrity": "sha512-Qkjgm6Anhm+OMbIL0iokO7meajkzQD71ioelnfPEj6r4eOFuqm4YC3VBPqXjFyyNwowzbMD+hizmprP/Fwkl2A==", 173 | "dev": true, 174 | "requires": { 175 | "@webassemblyjs/ast": "1.9.0", 176 | "@webassemblyjs/helper-buffer": "1.9.0", 177 | "@webassemblyjs/wasm-gen": "1.9.0", 178 | "@webassemblyjs/wasm-parser": "1.9.0" 179 | } 180 | }, 181 | "@webassemblyjs/wasm-parser": { 182 | "version": "1.9.0", 183 | "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-parser/-/wasm-parser-1.9.0.tgz", 184 | "integrity": "sha512-9+wkMowR2AmdSWQzsPEjFU7njh8HTO5MqO8vjwEHuM+AMHioNqSBONRdr0NQQ3dVQrzp0s8lTcYqzUdb7YgELA==", 185 | "dev": true, 186 | "requires": { 187 | "@webassemblyjs/ast": "1.9.0", 188 | "@webassemblyjs/helper-api-error": "1.9.0", 189 | "@webassemblyjs/helper-wasm-bytecode": "1.9.0", 190 | "@webassemblyjs/ieee754": "1.9.0", 191 | "@webassemblyjs/leb128": "1.9.0", 192 | "@webassemblyjs/utf8": "1.9.0" 193 | } 194 | }, 195 | "@webassemblyjs/wast-parser": { 196 | "version": "1.9.0", 197 | "resolved": "https://registry.npmjs.org/@webassemblyjs/wast-parser/-/wast-parser-1.9.0.tgz", 198 | "integrity": "sha512-qsqSAP3QQ3LyZjNC/0jBJ/ToSxfYJ8kYyuiGvtn/8MK89VrNEfwj7BPQzJVHi0jGTRK2dGdJ5PRqhtjzoww+bw==", 199 | "dev": true, 200 | "requires": { 201 | "@webassemblyjs/ast": "1.9.0", 202 | "@webassemblyjs/floating-point-hex-parser": "1.9.0", 203 | "@webassemblyjs/helper-api-error": "1.9.0", 204 | "@webassemblyjs/helper-code-frame": "1.9.0", 205 | "@webassemblyjs/helper-fsm": "1.9.0", 206 | "@xtuc/long": "4.2.2" 207 | } 208 | }, 209 | "@webassemblyjs/wast-printer": { 210 | "version": "1.9.0", 211 | "resolved": "https://registry.npmjs.org/@webassemblyjs/wast-printer/-/wast-printer-1.9.0.tgz", 212 | "integrity": "sha512-2J0nE95rHXHyQ24cWjMKJ1tqB/ds8z/cyeOZxJhcb+rW+SQASVjuznUSmdz5GpVJTzU8JkhYut0D3siFDD6wsA==", 213 | "dev": true, 214 | "requires": { 215 | "@webassemblyjs/ast": "1.9.0", 216 | "@webassemblyjs/wast-parser": "1.9.0", 217 | "@xtuc/long": "4.2.2" 218 | } 219 | }, 220 | "@xtuc/ieee754": { 221 | "version": "1.2.0", 222 | "resolved": "https://registry.npmjs.org/@xtuc/ieee754/-/ieee754-1.2.0.tgz", 223 | "integrity": "sha512-DX8nKgqcGwsc0eJSqYt5lwP4DH5FlHnmuWWBRy7X0NcaGR0ZtuyeESgMwTYVEtxmsNGY+qit4QYT/MIYTOTPeA==", 224 | "dev": true 225 | }, 226 | "@xtuc/long": { 227 | "version": "4.2.2", 228 | "resolved": "https://registry.npmjs.org/@xtuc/long/-/long-4.2.2.tgz", 229 | "integrity": "sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ==", 230 | "dev": true 231 | }, 232 | "acorn": { 233 | "version": "8.0.4", 234 | "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.0.4.tgz", 235 | "integrity": "sha512-XNP0PqF1XD19ZlLKvB7cMmnZswW4C/03pRHgirB30uSJTaS3A3V1/P4sS3HPvFmjoriPCJQs+JDSbm4bL1TxGQ==", 236 | "dev": true 237 | }, 238 | "ajv": { 239 | "version": "6.12.6", 240 | "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", 241 | "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", 242 | "dev": true, 243 | "requires": { 244 | "fast-deep-equal": "^3.1.1", 245 | "fast-json-stable-stringify": "^2.0.0", 246 | "json-schema-traverse": "^0.4.1", 247 | "uri-js": "^4.2.2" 248 | } 249 | }, 250 | "ajv-keywords": { 251 | "version": "3.5.2", 252 | "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.5.2.tgz", 253 | "integrity": "sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==", 254 | "dev": true 255 | }, 256 | "browserslist": { 257 | "version": "4.14.7", 258 | "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.14.7.tgz", 259 | "integrity": "sha512-BSVRLCeG3Xt/j/1cCGj1019Wbty0H+Yvu2AOuZSuoaUWn3RatbL33Cxk+Q4jRMRAbOm0p7SLravLjpnT6s0vzQ==", 260 | "dev": true, 261 | "requires": { 262 | "caniuse-lite": "^1.0.30001157", 263 | "colorette": "^1.2.1", 264 | "electron-to-chromium": "^1.3.591", 265 | "escalade": "^3.1.1", 266 | "node-releases": "^1.1.66" 267 | } 268 | }, 269 | "buffer-from": { 270 | "version": "1.1.1", 271 | "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.1.tgz", 272 | "integrity": "sha512-MQcXEUbCKtEo7bhqEs6560Hyd4XaovZlO/k9V3hjVUF/zwW7KBVdSK4gIt/bzwS9MbR5qob+F5jusZsb0YQK2A==", 273 | "dev": true 274 | }, 275 | "caniuse-lite": { 276 | "version": "1.0.30001164", 277 | "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001164.tgz", 278 | "integrity": "sha512-G+A/tkf4bu0dSp9+duNiXc7bGds35DioCyC6vgK2m/rjA4Krpy5WeZgZyfH2f0wj2kI6yAWWucyap6oOwmY1mg==", 279 | "dev": true 280 | }, 281 | "chrome-trace-event": { 282 | "version": "1.0.2", 283 | "resolved": "https://registry.npmjs.org/chrome-trace-event/-/chrome-trace-event-1.0.2.tgz", 284 | "integrity": "sha512-9e/zx1jw7B4CO+c/RXoCsfg/x1AfUBioy4owYH0bJprEYAx5hRFLRhWBqHAG57D0ZM4H7vxbP7bPe0VwhQRYDQ==", 285 | "dev": true, 286 | "requires": { 287 | "tslib": "^1.9.0" 288 | } 289 | }, 290 | "colorette": { 291 | "version": "1.2.1", 292 | "resolved": "https://registry.npmjs.org/colorette/-/colorette-1.2.1.tgz", 293 | "integrity": "sha512-puCDz0CzydiSYOrnXpz/PKd69zRrribezjtE9yd4zvytoRc8+RY/KJPvtPFKZS3E3wP6neGyMe0vOTlHO5L3Pw==", 294 | "dev": true 295 | }, 296 | "commander": { 297 | "version": "2.20.3", 298 | "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", 299 | "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", 300 | "dev": true 301 | }, 302 | "electron-to-chromium": { 303 | "version": "1.3.612", 304 | "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.612.tgz", 305 | "integrity": "sha512-CdrdX1B6mQqxfw+51MPWB5qA6TKWjza9f5voBtUlRfEZEwZiFaxJLrhFI8zHE9SBAuGt4h84rQU6Ho9Bauo1LA==", 306 | "dev": true 307 | }, 308 | "enhanced-resolve": { 309 | "version": "5.3.2", 310 | "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.3.2.tgz", 311 | "integrity": "sha512-G28GCrglCAH6+EqMN2D+Q2wCUS1O1vVQJBn8ME2I/Api41YBe4vLWWRBOUbwDH7vwzSZdljxwTRVqnf+sm6XqQ==", 312 | "dev": true, 313 | "requires": { 314 | "graceful-fs": "^4.2.4", 315 | "tapable": "^2.0.0" 316 | } 317 | }, 318 | "escalade": { 319 | "version": "3.1.1", 320 | "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz", 321 | "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==", 322 | "dev": true 323 | }, 324 | "eslint-scope": { 325 | "version": "5.1.1", 326 | "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz", 327 | "integrity": "sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==", 328 | "dev": true, 329 | "requires": { 330 | "esrecurse": "^4.3.0", 331 | "estraverse": "^4.1.1" 332 | } 333 | }, 334 | "esrecurse": { 335 | "version": "4.3.0", 336 | "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz", 337 | "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==", 338 | "dev": true, 339 | "requires": { 340 | "estraverse": "^5.2.0" 341 | }, 342 | "dependencies": { 343 | "estraverse": { 344 | "version": "5.2.0", 345 | "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.2.0.tgz", 346 | "integrity": "sha512-BxbNGGNm0RyRYvUdHpIwv9IWzeM9XClbOxwoATuFdOE7ZE6wHL+HQ5T8hoPM+zHvmKzzsEqhgy0GrQ5X13afiQ==", 347 | "dev": true 348 | } 349 | } 350 | }, 351 | "estraverse": { 352 | "version": "4.3.0", 353 | "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", 354 | "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==", 355 | "dev": true 356 | }, 357 | "events": { 358 | "version": "3.2.0", 359 | "resolved": "https://registry.npmjs.org/events/-/events-3.2.0.tgz", 360 | "integrity": "sha512-/46HWwbfCX2xTawVfkKLGxMifJYQBWMwY1mjywRtb4c9x8l5NP3KoJtnIOiL1hfdRkIuYhETxQlo62IF8tcnlg==", 361 | "dev": true 362 | }, 363 | "fast-deep-equal": { 364 | "version": "3.1.3", 365 | "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", 366 | "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", 367 | "dev": true 368 | }, 369 | "fast-json-stable-stringify": { 370 | "version": "2.1.0", 371 | "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", 372 | "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==", 373 | "dev": true 374 | }, 375 | "find-up": { 376 | "version": "4.1.0", 377 | "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", 378 | "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", 379 | "dev": true, 380 | "requires": { 381 | "locate-path": "^5.0.0", 382 | "path-exists": "^4.0.0" 383 | } 384 | }, 385 | "glob-to-regexp": { 386 | "version": "0.4.1", 387 | "resolved": "https://registry.npmjs.org/glob-to-regexp/-/glob-to-regexp-0.4.1.tgz", 388 | "integrity": "sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw==", 389 | "dev": true 390 | }, 391 | "graceful-fs": { 392 | "version": "4.2.4", 393 | "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.4.tgz", 394 | "integrity": "sha512-WjKPNJF79dtJAVniUlGGWHYGz2jWxT6VhN/4m1NdkbZ2nOsEF+cI1Edgql5zCRhs/VsQYRvrXctxktVXZUkixw==", 395 | "dev": true 396 | }, 397 | "has-flag": { 398 | "version": "4.0.0", 399 | "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", 400 | "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", 401 | "dev": true 402 | }, 403 | "jest-worker": { 404 | "version": "26.6.2", 405 | "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-26.6.2.tgz", 406 | "integrity": "sha512-KWYVV1c4i+jbMpaBC+U++4Va0cp8OisU185o73T1vo99hqi7w8tSJfUXYswwqqrjzwxa6KpRK54WhPvwf5w6PQ==", 407 | "dev": true, 408 | "requires": { 409 | "@types/node": "*", 410 | "merge-stream": "^2.0.0", 411 | "supports-color": "^7.0.0" 412 | } 413 | }, 414 | "json-parse-better-errors": { 415 | "version": "1.0.2", 416 | "resolved": "https://registry.npmjs.org/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz", 417 | "integrity": "sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw==", 418 | "dev": true 419 | }, 420 | "json-schema-traverse": { 421 | "version": "0.4.1", 422 | "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", 423 | "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", 424 | "dev": true 425 | }, 426 | "loader-runner": { 427 | "version": "4.1.0", 428 | "resolved": "https://registry.npmjs.org/loader-runner/-/loader-runner-4.1.0.tgz", 429 | "integrity": "sha512-oR4lB4WvwFoC70ocraKhn5nkKSs23t57h9udUgw8o0iH8hMXeEoRuUgfcvgUwAJ1ZpRqBvcou4N2SMvM1DwMrA==", 430 | "dev": true 431 | }, 432 | "locate-path": { 433 | "version": "5.0.0", 434 | "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", 435 | "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", 436 | "dev": true, 437 | "requires": { 438 | "p-locate": "^4.1.0" 439 | } 440 | }, 441 | "merge-stream": { 442 | "version": "2.0.0", 443 | "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz", 444 | "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==", 445 | "dev": true 446 | }, 447 | "mime-db": { 448 | "version": "1.44.0", 449 | "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.44.0.tgz", 450 | "integrity": "sha512-/NOTfLrsPBVeH7YtFPgsVWveuL+4SjjYxaQ1xtM1KMFj7HdxlBlxeyNLzhyJVx7r4rZGJAZ/6lkKCitSc/Nmpg==", 451 | "dev": true 452 | }, 453 | "mime-types": { 454 | "version": "2.1.27", 455 | "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.27.tgz", 456 | "integrity": "sha512-JIhqnCasI9yD+SsmkquHBxTSEuZdQX5BuQnS2Vc7puQQQ+8yiP5AY5uWhpdv4YL4VM5c6iliiYWPgJ/nJQLp7w==", 457 | "dev": true, 458 | "requires": { 459 | "mime-db": "1.44.0" 460 | } 461 | }, 462 | "neo-async": { 463 | "version": "2.6.2", 464 | "resolved": "https://registry.npmjs.org/neo-async/-/neo-async-2.6.2.tgz", 465 | "integrity": "sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==", 466 | "dev": true 467 | }, 468 | "node-releases": { 469 | "version": "1.1.67", 470 | "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-1.1.67.tgz", 471 | "integrity": "sha512-V5QF9noGFl3EymEwUYzO+3NTDpGfQB4ve6Qfnzf3UNydMhjQRVPR1DZTuvWiLzaFJYw2fmDwAfnRNEVb64hSIg==", 472 | "dev": true 473 | }, 474 | "p-limit": { 475 | "version": "2.3.0", 476 | "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", 477 | "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", 478 | "dev": true, 479 | "requires": { 480 | "p-try": "^2.0.0" 481 | } 482 | }, 483 | "p-locate": { 484 | "version": "4.1.0", 485 | "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", 486 | "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", 487 | "dev": true, 488 | "requires": { 489 | "p-limit": "^2.2.0" 490 | } 491 | }, 492 | "p-try": { 493 | "version": "2.2.0", 494 | "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", 495 | "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", 496 | "dev": true 497 | }, 498 | "path-exists": { 499 | "version": "4.0.0", 500 | "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", 501 | "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", 502 | "dev": true 503 | }, 504 | "pkg-dir": { 505 | "version": "4.2.0", 506 | "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-4.2.0.tgz", 507 | "integrity": "sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==", 508 | "dev": true, 509 | "requires": { 510 | "find-up": "^4.0.0" 511 | } 512 | }, 513 | "punycode": { 514 | "version": "2.1.1", 515 | "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz", 516 | "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==", 517 | "dev": true 518 | }, 519 | "randombytes": { 520 | "version": "2.1.0", 521 | "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz", 522 | "integrity": "sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==", 523 | "dev": true, 524 | "requires": { 525 | "safe-buffer": "^5.1.0" 526 | } 527 | }, 528 | "safe-buffer": { 529 | "version": "5.2.1", 530 | "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", 531 | "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", 532 | "dev": true 533 | }, 534 | "schema-utils": { 535 | "version": "3.0.0", 536 | "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.0.0.tgz", 537 | "integrity": "sha512-6D82/xSzO094ajanoOSbe4YvXWMfn2A//8Y1+MUqFAJul5Bs+yn36xbK9OtNDcRVSBJ9jjeoXftM6CfztsjOAA==", 538 | "dev": true, 539 | "requires": { 540 | "@types/json-schema": "^7.0.6", 541 | "ajv": "^6.12.5", 542 | "ajv-keywords": "^3.5.2" 543 | } 544 | }, 545 | "serialize-javascript": { 546 | "version": "5.0.1", 547 | "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-5.0.1.tgz", 548 | "integrity": "sha512-SaaNal9imEO737H2c05Og0/8LUXG7EnsZyMa8MzkmuHoELfT6txuj0cMqRj6zfPKnmQ1yasR4PCJc8x+M4JSPA==", 549 | "dev": true, 550 | "requires": { 551 | "randombytes": "^2.1.0" 552 | } 553 | }, 554 | "source-list-map": { 555 | "version": "2.0.1", 556 | "resolved": "https://registry.npmjs.org/source-list-map/-/source-list-map-2.0.1.tgz", 557 | "integrity": "sha512-qnQ7gVMxGNxsiL4lEuJwe/To8UnK7fAnmbGEEH8RpLouuKbeEm0lhbQVFIrNSuB+G7tVrAlVsZgETT5nljf+Iw==", 558 | "dev": true 559 | }, 560 | "source-map": { 561 | "version": "0.6.1", 562 | "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", 563 | "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", 564 | "dev": true 565 | }, 566 | "source-map-support": { 567 | "version": "0.5.19", 568 | "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.19.tgz", 569 | "integrity": "sha512-Wonm7zOCIJzBGQdB+thsPar0kYuCIzYvxZwlBa87yi/Mdjv7Tip2cyVbLj5o0cFPN4EVkuTwb3GDDyUx2DGnGw==", 570 | "dev": true, 571 | "requires": { 572 | "buffer-from": "^1.0.0", 573 | "source-map": "^0.6.0" 574 | } 575 | }, 576 | "supports-color": { 577 | "version": "7.2.0", 578 | "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", 579 | "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", 580 | "dev": true, 581 | "requires": { 582 | "has-flag": "^4.0.0" 583 | } 584 | }, 585 | "tapable": { 586 | "version": "2.1.1", 587 | "resolved": "https://registry.npmjs.org/tapable/-/tapable-2.1.1.tgz", 588 | "integrity": "sha512-Wib1S8m2wdpLbmQz0RBEVosIyvb/ykfKXf3ZIDqvWoMg/zTNm6G/tDSuUM61J1kNCDXWJrLHGSFeMhAG+gAGpQ==", 589 | "dev": true 590 | }, 591 | "terser": { 592 | "version": "5.5.1", 593 | "resolved": "https://registry.npmjs.org/terser/-/terser-5.5.1.tgz", 594 | "integrity": "sha512-6VGWZNVP2KTUcltUQJ25TtNjx/XgdDsBDKGt8nN0MpydU36LmbPPcMBd2kmtZNNGVVDLg44k7GKeHHj+4zPIBQ==", 595 | "dev": true, 596 | "requires": { 597 | "commander": "^2.20.0", 598 | "source-map": "~0.7.2", 599 | "source-map-support": "~0.5.19" 600 | }, 601 | "dependencies": { 602 | "source-map": { 603 | "version": "0.7.3", 604 | "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.3.tgz", 605 | "integrity": "sha512-CkCj6giN3S+n9qrYiBTX5gystlENnRW5jZeNLHpe6aue+SrHcG5VYwujhW9s4dY31mEGsxBDrHR6oI69fTXsaQ==", 606 | "dev": true 607 | } 608 | } 609 | }, 610 | "terser-webpack-plugin": { 611 | "version": "5.0.3", 612 | "resolved": "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-5.0.3.tgz", 613 | "integrity": "sha512-zFdGk8Lh9ZJGPxxPE6jwysOlATWB8GMW8HcfGULWA/nPal+3VdATflQvSBSLQJRCmYZnfFJl6vkRTiwJGNgPiQ==", 614 | "dev": true, 615 | "requires": { 616 | "jest-worker": "^26.6.1", 617 | "p-limit": "^3.0.2", 618 | "schema-utils": "^3.0.0", 619 | "serialize-javascript": "^5.0.1", 620 | "source-map": "^0.6.1", 621 | "terser": "^5.3.8" 622 | }, 623 | "dependencies": { 624 | "p-limit": { 625 | "version": "3.1.0", 626 | "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", 627 | "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", 628 | "dev": true, 629 | "requires": { 630 | "yocto-queue": "^0.1.0" 631 | } 632 | } 633 | } 634 | }, 635 | "tslib": { 636 | "version": "1.14.1", 637 | "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", 638 | "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", 639 | "dev": true 640 | }, 641 | "uri-js": { 642 | "version": "4.4.0", 643 | "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.0.tgz", 644 | "integrity": "sha512-B0yRTzYdUCCn9n+F4+Gh4yIDtMQcaJsmYBDsTSG8g/OejKBodLQ2IHfN3bM7jUsRXndopT7OIXWdYqc1fjmV6g==", 645 | "dev": true, 646 | "requires": { 647 | "punycode": "^2.1.0" 648 | } 649 | }, 650 | "watchpack": { 651 | "version": "2.0.1", 652 | "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-2.0.1.tgz", 653 | "integrity": "sha512-vO8AKGX22ZRo6PiOFM9dC0re8IcKh8Kd/aH2zeqUc6w4/jBGlTy2P7fTC6ekT0NjVeGjgU2dGC5rNstKkeLEQg==", 654 | "dev": true, 655 | "requires": { 656 | "glob-to-regexp": "^0.4.1", 657 | "graceful-fs": "^4.1.2" 658 | } 659 | }, 660 | "webpack": { 661 | "version": "5.9.0", 662 | "resolved": "https://registry.npmjs.org/webpack/-/webpack-5.9.0.tgz", 663 | "integrity": "sha512-YnnqIV/uAS5ZrNpctSv378qV7HmbJ74DL+XfvMxzbX1bV9e7eeT6eEWU4wuUw33CNr/HspBh7R/xQlVjTEyAeA==", 664 | "dev": true, 665 | "requires": { 666 | "@types/eslint-scope": "^3.7.0", 667 | "@types/estree": "^0.0.45", 668 | "@webassemblyjs/ast": "1.9.0", 669 | "@webassemblyjs/helper-module-context": "1.9.0", 670 | "@webassemblyjs/wasm-edit": "1.9.0", 671 | "@webassemblyjs/wasm-parser": "1.9.0", 672 | "acorn": "^8.0.4", 673 | "browserslist": "^4.14.5", 674 | "chrome-trace-event": "^1.0.2", 675 | "enhanced-resolve": "^5.3.1", 676 | "eslint-scope": "^5.1.1", 677 | "events": "^3.2.0", 678 | "glob-to-regexp": "^0.4.1", 679 | "graceful-fs": "^4.2.4", 680 | "json-parse-better-errors": "^1.0.2", 681 | "loader-runner": "^4.1.0", 682 | "mime-types": "^2.1.27", 683 | "neo-async": "^2.6.2", 684 | "pkg-dir": "^4.2.0", 685 | "schema-utils": "^3.0.0", 686 | "tapable": "^2.1.1", 687 | "terser-webpack-plugin": "^5.0.3", 688 | "watchpack": "^2.0.0", 689 | "webpack-sources": "^2.1.1" 690 | } 691 | }, 692 | "webpack-sources": { 693 | "version": "2.2.0", 694 | "resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-2.2.0.tgz", 695 | "integrity": "sha512-bQsA24JLwcnWGArOKUxYKhX3Mz/nK1Xf6hxullKERyktjNMC4x8koOeaDNTA2fEJ09BdWLbM/iTW0ithREUP0w==", 696 | "dev": true, 697 | "requires": { 698 | "source-list-map": "^2.0.1", 699 | "source-map": "^0.6.1" 700 | } 701 | }, 702 | "yocto-queue": { 703 | "version": "0.1.0", 704 | "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz", 705 | "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==", 706 | "dev": true 707 | } 708 | } 709 | } 710 | -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "webpack-federated-stats-plugin", 3 | "version": "2.0.9", 4 | "description": "Write out relevant federation stats to a file for further consumption.", 5 | "main": "index.js", 6 | "homepage": "https://github.com/jacob-ebey/webpack-federated-stats-plugin#readme", 7 | "repository": { 8 | "type": "git", 9 | "url": "https://github.com/jacob-ebey/webpack-federated-stats-plugin.git" 10 | }, 11 | "scripts": { 12 | "test": "echo \"Error: no test specified\" && exit 0" 13 | }, 14 | "peerDependencies": { 15 | "webpack": "5" 16 | }, 17 | "devDependencies": { 18 | "webpack": "^5.9.0" 19 | }, 20 | "keywords": [], 21 | "author": "", 22 | "license": "ISC" 23 | } 24 | -------------------------------------------------------------------------------- /webpack-stats-types.ts: -------------------------------------------------------------------------------- 1 | export interface WebpackStats { 2 | hash: string; 3 | version: string; 4 | time: null; 5 | publicPath: string; 6 | outputPath: string; 7 | assetsByChunkName: WebpackStatsAssetsByChunkName; 8 | assets: WebpackStatsAsset[]; 9 | chunks: WebpackStatsChunk[]; 10 | modules: WebpackStatsModule[]; 11 | entrypoints: WebpackStatsEntrypoints; 12 | namedChunkGroups: WebpackStatsEntrypoints; 13 | errors: any[]; 14 | errorsCount: number; 15 | warnings: any[]; 16 | warningsCount: number; 17 | children: Child[]; 18 | } 19 | 20 | export interface WebpackStatsAsset { 21 | type: AssetType; 22 | name: string; 23 | size: number; 24 | emitted: boolean; 25 | comparedForEmit: boolean; 26 | cached: boolean; 27 | info: AssetInfo; 28 | chunkNames: Name[]; 29 | chunkIdHints: string[]; 30 | auxiliaryChunkNames: any[]; 31 | auxiliaryChunkIdHints: any[]; 32 | filteredRelated: number; 33 | related: RelatedElement[]; 34 | chunks: ID[]; 35 | auxiliaryChunks: any[]; 36 | isOverSizeLimit: boolean; 37 | } 38 | 39 | export enum Name { 40 | Main = "main", 41 | MiniCSSExtractPlugin = "mini-css-extract-plugin", 42 | PreactFrameworkExample = "preactFrameworkExample", 43 | } 44 | 45 | export enum ID { 46 | Main = "main", 47 | NodeModulesPreactHooksDistHooksModuleJS41170 = "node_modules_preact_hooks_dist_hooks_module_js-_41170", 48 | NodeModulesPreactHooksDistHooksModuleJS41171 = "node_modules_preact_hooks_dist_hooks_module_js-_41171", 49 | PreactFrameworkExample = "preactFrameworkExample", 50 | SrcCoreClientRenderTsx = "src_core_client-render_tsx", 51 | SrcRoutesAboutTsx = "src_routes_About_tsx", 52 | SrcRoutesHomeTsx = "src_routes_Home_tsx", 53 | VendorsNodeModulesPreactDistPreactModuleJS = "vendors-node_modules_preact_dist_preact_module_js", 54 | VendorsNodeModulesUniversalRouterSyncModuleJS = "vendors-node_modules_universal-router_sync_module_js", 55 | WebpackSharingConsumeDefaultPreactPreact3081 = "webpack_sharing_consume_default_preact_preact-_3081", 56 | WebpackSharingConsumeDefaultPreactPreactF9Bf = "webpack_sharing_consume_default_preact_preact-_f9bf", 57 | } 58 | 59 | export interface AssetInfo { 60 | javascriptModule?: boolean; 61 | related: InfoRelated; 62 | } 63 | 64 | export interface InfoRelated { 65 | sourceMap: string; 66 | } 67 | 68 | export interface RelatedElement { 69 | type: RelatedType; 70 | name: string; 71 | size: number; 72 | emitted: boolean; 73 | comparedForEmit: boolean; 74 | cached: boolean; 75 | info: RelatedInfo; 76 | chunkNames: any[]; 77 | chunkIdHints: any[]; 78 | auxiliaryChunkNames: Name[]; 79 | auxiliaryChunkIdHints: string[]; 80 | related: AssetsByChunkName; 81 | chunks: any[]; 82 | auxiliaryChunks: ID[]; 83 | isOverSizeLimit: boolean; 84 | } 85 | 86 | export interface RelatedInfo { 87 | development: boolean; 88 | } 89 | 90 | export interface AssetsByChunkName {} 91 | 92 | export enum RelatedType { 93 | SourceMap = "sourceMap", 94 | } 95 | 96 | export enum AssetType { 97 | Asset = "asset", 98 | } 99 | 100 | export interface WebpackStatsAssetsByChunkName { 101 | preactFrameworkExample: string[]; 102 | main: string[]; 103 | } 104 | 105 | export interface Child { 106 | name: string; 107 | hash: string; 108 | version: string; 109 | time: number; 110 | builtAt: number; 111 | publicPath: string; 112 | outputPath: string; 113 | assetsByChunkName: AssetsByChunkName; 114 | assets: any[]; 115 | chunks: ChildChunk[]; 116 | modules: ChildModule[]; 117 | entrypoints: ChildEntrypoints; 118 | namedChunkGroups: ChildEntrypoints; 119 | errors: any[]; 120 | errorsCount: number; 121 | warnings: any[]; 122 | warningsCount: number; 123 | children: any[]; 124 | } 125 | 126 | export interface ChildChunk { 127 | rendered: boolean; 128 | initial: boolean; 129 | entry: boolean; 130 | recorded: boolean; 131 | size: number; 132 | sizes: PurpleSizes; 133 | names: Name[]; 134 | idHints: any[]; 135 | runtime: Name[]; 136 | files: any[]; 137 | auxiliaryFiles: any[]; 138 | hash: string; 139 | childrenByOrder: AssetsByChunkName; 140 | id: Name; 141 | siblings: any[]; 142 | parents: any[]; 143 | children: any[]; 144 | modules: ChildModule[]; 145 | origins: Origin[]; 146 | } 147 | 148 | export interface ChildModule { 149 | type: ModuleType; 150 | moduleType: ModuleTypeEnum; 151 | size: number; 152 | sizes: PurpleSizes; 153 | built: boolean; 154 | codeGenerated: boolean; 155 | cached: boolean; 156 | identifier: string; 157 | name: string; 158 | nameForCondition: null | string; 159 | index: number | null; 160 | preOrderIndex: number | null; 161 | index2: number | null; 162 | postOrderIndex: number | null; 163 | cacheable?: boolean; 164 | optional: boolean; 165 | orphan: boolean; 166 | dependent?: boolean; 167 | issuer?: null | string; 168 | issuerName?: null | string; 169 | issuerPath?: IssuerPath[] | null; 170 | failed: boolean; 171 | errors: number; 172 | warnings: number; 173 | id: string; 174 | issuerId?: null | string; 175 | chunks: Name[]; 176 | assets: any[]; 177 | reasons: Reason[]; 178 | usedExports: null; 179 | providedExports: string[] | null; 180 | optimizationBailout: OptimizationBailout[]; 181 | depth: number | null; 182 | } 183 | 184 | export interface IssuerPath { 185 | identifier: string; 186 | name: string; 187 | id: string; 188 | } 189 | 190 | export enum ModuleTypeEnum { 191 | CSSMiniExtract = "css/mini-extract", 192 | ConsumeSharedModule = "consume-shared-module", 193 | JavascriptAuto = "javascript/auto", 194 | JavascriptDynamic = "javascript/dynamic", 195 | ProvideModule = "provide-module", 196 | Runtime = "runtime", 197 | } 198 | 199 | export enum OptimizationBailout { 200 | CommonJSBailoutModuleExportsIsUsedDirectlyAt15014 = "CommonJS bailout: module.exports is used directly at 15:0-14", 201 | CommonJSBailoutModuleExportsIsUsedDirectlyAt9014 = "CommonJS bailout: module.exports is used directly at 9:0-14", 202 | } 203 | 204 | export interface Reason { 205 | moduleIdentifier: null | string; 206 | module: null | string; 207 | moduleName: null | string; 208 | resolvedModuleIdentifier: null | string; 209 | resolvedModule: null | string; 210 | type: ReasonType | null; 211 | active: boolean; 212 | explanation: Explanation; 213 | userRequest: null | string; 214 | loc?: string; 215 | moduleId: null | string; 216 | resolvedModuleId: null | string; 217 | } 218 | 219 | export enum Explanation { 220 | Empty = "", 221 | UsedAsLibraryExport = "used as library export", 222 | } 223 | 224 | export enum ReasonType { 225 | CjsSelfExportsReference = "cjs self exports reference", 226 | ConsumeSharedFallback = "consume shared fallback", 227 | ContainerEntry = "container entry", 228 | ContainerExposed = "container exposed", 229 | Entry = "entry", 230 | HarmonyImportSpecifier = "harmony import specifier", 231 | HarmonySideEffectEvaluation = "harmony side effect evaluation", 232 | Import = "import()", 233 | ProvideModuleForShared = "provide module for shared", 234 | ProvideSharedModule = "provide shared module", 235 | Unknown = "unknown", 236 | } 237 | 238 | export interface PurpleSizes { 239 | javascript?: number; 240 | runtime?: number; 241 | } 242 | 243 | export enum ModuleType { 244 | Module = "module", 245 | } 246 | 247 | export interface Origin { 248 | module: string; 249 | moduleIdentifier: string; 250 | moduleName: string; 251 | loc: string; 252 | request?: string; 253 | moduleId?: string; 254 | } 255 | 256 | export interface ChildEntrypoints { 257 | "mini-css-extract-plugin": Main; 258 | } 259 | 260 | export interface Main { 261 | name: Name; 262 | chunks: Name[]; 263 | assets: AuxiliaryAssetElement[]; 264 | filteredAssets: number; 265 | assetsSize: number | null; 266 | auxiliaryAssets: AuxiliaryAssetElement[]; 267 | filteredAuxiliaryAssets: number; 268 | auxiliaryAssetsSize: number | null; 269 | children: AssetsByChunkName; 270 | childAssets: AssetsByChunkName; 271 | isOverSizeLimit: boolean; 272 | } 273 | 274 | export interface AuxiliaryAssetElement { 275 | name: string; 276 | } 277 | 278 | export interface WebpackStatsChunk { 279 | rendered: boolean; 280 | initial: boolean; 281 | entry: boolean; 282 | recorded: boolean; 283 | size: number; 284 | sizes: FluffySizes; 285 | names: Name[]; 286 | idHints: string[]; 287 | runtime: Name[]; 288 | files: string[]; 289 | auxiliaryFiles: string[]; 290 | hash: string; 291 | childrenByOrder: AssetsByChunkName; 292 | id: ID; 293 | siblings: ID[]; 294 | parents: ID[]; 295 | children: ID[]; 296 | modules: WebpackStatsModule[]; 297 | origins: Origin[]; 298 | reason?: string; 299 | } 300 | 301 | export interface WebpackStatsModule { 302 | type: ModuleType; 303 | moduleType: ModuleTypeEnum; 304 | size: number; 305 | sizes: FluffySizes; 306 | built: boolean; 307 | codeGenerated: boolean; 308 | cached: boolean; 309 | identifier: string; 310 | name: string; 311 | nameForCondition: null | string; 312 | index: number | null; 313 | preOrderIndex: number | null; 314 | index2: number | null; 315 | postOrderIndex: number | null; 316 | cacheable?: boolean; 317 | optional: boolean; 318 | orphan: boolean; 319 | dependent?: boolean; 320 | issuer?: null | string; 321 | issuerName?: null | string; 322 | issuerPath?: IssuerPath[] | null; 323 | failed: boolean; 324 | errors: number; 325 | warnings: number; 326 | id: null | string; 327 | issuerId?: null | string; 328 | chunks: ID[]; 329 | assets: any[]; 330 | reasons: Reason[]; 331 | usedExports: null; 332 | providedExports: string[] | null; 333 | optimizationBailout: string[]; 334 | depth: number | null; 335 | } 336 | 337 | export interface FluffySizes { 338 | javascript?: number; 339 | "share-init"?: number; 340 | runtime?: number; 341 | "consume-shared"?: number; 342 | "css/mini-extract"?: number; 343 | } 344 | 345 | export interface WebpackStatsEntrypoints { 346 | preactFrameworkExample: Main; 347 | main: Main; 348 | } 349 | -------------------------------------------------------------------------------- /yarn.lock: -------------------------------------------------------------------------------- 1 | # THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY. 2 | # yarn lockfile v1 3 | 4 | 5 | "@types/eslint-scope@^3.7.0": 6 | version "3.7.0" 7 | resolved "https://registry.yarnpkg.com/@types/eslint-scope/-/eslint-scope-3.7.0.tgz#4792816e31119ebd506902a482caec4951fabd86" 8 | integrity sha512-O/ql2+rrCUe2W2rs7wMR+GqPRcgB6UiqN5RhrR5xruFlY7l9YLMn0ZkDzjoHLeiFkR8MCQZVudUuuvQ2BLC9Qw== 9 | dependencies: 10 | "@types/eslint" "*" 11 | "@types/estree" "*" 12 | 13 | "@types/eslint@*": 14 | version "7.2.6" 15 | resolved "https://registry.yarnpkg.com/@types/eslint/-/eslint-7.2.6.tgz#5e9aff555a975596c03a98b59ecd103decc70c3c" 16 | integrity sha512-I+1sYH+NPQ3/tVqCeUSBwTE/0heyvtXqpIopUUArlBm0Kpocb8FbMa3AZ/ASKIFpN3rnEx932TTXDbt9OXsNDw== 17 | dependencies: 18 | "@types/estree" "*" 19 | "@types/json-schema" "*" 20 | 21 | "@types/estree@*", "@types/estree@^0.0.45": 22 | version "0.0.45" 23 | resolved "https://registry.yarnpkg.com/@types/estree/-/estree-0.0.45.tgz#e9387572998e5ecdac221950dab3e8c3b16af884" 24 | integrity sha512-jnqIUKDUqJbDIUxm0Uj7bnlMnRm1T/eZ9N+AVMqhPgzrba2GhGG5o/jCTwmdPK709nEZsGoMzXEDUjcXHa3W0g== 25 | 26 | "@types/json-schema@*", "@types/json-schema@^7.0.6": 27 | version "7.0.6" 28 | resolved "https://registry.yarnpkg.com/@types/json-schema/-/json-schema-7.0.6.tgz#f4c7ec43e81b319a9815115031709f26987891f0" 29 | integrity sha512-3c+yGKvVP5Y9TYBEibGNR+kLtijnj7mYrXRg+WpFb2X9xm04g/DXYkfg4hmzJQosc9snFNUPkbYIhu+KAm6jJw== 30 | 31 | "@types/node@*": 32 | version "14.14.11" 33 | resolved "https://registry.yarnpkg.com/@types/node/-/node-14.14.11.tgz#fc25a4248a5e8d0837019b1d170146d07334abe0" 34 | integrity sha512-BJ97wAUuU3NUiUCp44xzUFquQEvnk1wu7q4CMEUYKJWjdkr0YWYDsm4RFtAvxYsNjLsKcrFt6RvK8r+mnzMbEQ== 35 | 36 | "@webassemblyjs/ast@1.9.0": 37 | version "1.9.0" 38 | resolved "https://registry.yarnpkg.com/@webassemblyjs/ast/-/ast-1.9.0.tgz#bd850604b4042459a5a41cd7d338cbed695ed964" 39 | integrity sha512-C6wW5L+b7ogSDVqymbkkvuW9kruN//YisMED04xzeBBqjHa2FYnmvOlS6Xj68xWQRgWvI9cIglsjFowH/RJyEA== 40 | dependencies: 41 | "@webassemblyjs/helper-module-context" "1.9.0" 42 | "@webassemblyjs/helper-wasm-bytecode" "1.9.0" 43 | "@webassemblyjs/wast-parser" "1.9.0" 44 | 45 | "@webassemblyjs/floating-point-hex-parser@1.9.0": 46 | version "1.9.0" 47 | resolved "https://registry.yarnpkg.com/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.9.0.tgz#3c3d3b271bddfc84deb00f71344438311d52ffb4" 48 | integrity sha512-TG5qcFsS8QB4g4MhrxK5TqfdNe7Ey/7YL/xN+36rRjl/BlGE/NcBvJcqsRgCP6Z92mRE+7N50pRIi8SmKUbcQA== 49 | 50 | "@webassemblyjs/helper-api-error@1.9.0": 51 | version "1.9.0" 52 | resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-api-error/-/helper-api-error-1.9.0.tgz#203f676e333b96c9da2eeab3ccef33c45928b6a2" 53 | integrity sha512-NcMLjoFMXpsASZFxJ5h2HZRcEhDkvnNFOAKneP5RbKRzaWJN36NC4jqQHKwStIhGXu5mUWlUUk7ygdtrO8lbmw== 54 | 55 | "@webassemblyjs/helper-buffer@1.9.0": 56 | version "1.9.0" 57 | resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-buffer/-/helper-buffer-1.9.0.tgz#a1442d269c5feb23fcbc9ef759dac3547f29de00" 58 | integrity sha512-qZol43oqhq6yBPx7YM3m9Bv7WMV9Eevj6kMi6InKOuZxhw+q9hOkvq5e/PpKSiLfyetpaBnogSbNCfBwyB00CA== 59 | 60 | "@webassemblyjs/helper-code-frame@1.9.0": 61 | version "1.9.0" 62 | resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-code-frame/-/helper-code-frame-1.9.0.tgz#647f8892cd2043a82ac0c8c5e75c36f1d9159f27" 63 | integrity sha512-ERCYdJBkD9Vu4vtjUYe8LZruWuNIToYq/ME22igL+2vj2dQ2OOujIZr3MEFvfEaqKoVqpsFKAGsRdBSBjrIvZA== 64 | dependencies: 65 | "@webassemblyjs/wast-printer" "1.9.0" 66 | 67 | "@webassemblyjs/helper-fsm@1.9.0": 68 | version "1.9.0" 69 | resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-fsm/-/helper-fsm-1.9.0.tgz#c05256b71244214671f4b08ec108ad63b70eddb8" 70 | integrity sha512-OPRowhGbshCb5PxJ8LocpdX9Kl0uB4XsAjl6jH/dWKlk/mzsANvhwbiULsaiqT5GZGT9qinTICdj6PLuM5gslw== 71 | 72 | "@webassemblyjs/helper-module-context@1.9.0": 73 | version "1.9.0" 74 | resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-module-context/-/helper-module-context-1.9.0.tgz#25d8884b76839871a08a6c6f806c3979ef712f07" 75 | integrity sha512-MJCW8iGC08tMk2enck1aPW+BE5Cw8/7ph/VGZxwyvGbJwjktKkDK7vy7gAmMDx88D7mhDTCNKAW5tED+gZ0W8g== 76 | dependencies: 77 | "@webassemblyjs/ast" "1.9.0" 78 | 79 | "@webassemblyjs/helper-wasm-bytecode@1.9.0": 80 | version "1.9.0" 81 | resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.9.0.tgz#4fed8beac9b8c14f8c58b70d124d549dd1fe5790" 82 | integrity sha512-R7FStIzyNcd7xKxCZH5lE0Bqy+hGTwS3LJjuv1ZVxd9O7eHCedSdrId/hMOd20I+v8wDXEn+bjfKDLzTepoaUw== 83 | 84 | "@webassemblyjs/helper-wasm-section@1.9.0": 85 | version "1.9.0" 86 | resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.9.0.tgz#5a4138d5a6292ba18b04c5ae49717e4167965346" 87 | integrity sha512-XnMB8l3ek4tvrKUUku+IVaXNHz2YsJyOOmz+MMkZvh8h1uSJpSen6vYnw3IoQ7WwEuAhL8Efjms1ZWjqh2agvw== 88 | dependencies: 89 | "@webassemblyjs/ast" "1.9.0" 90 | "@webassemblyjs/helper-buffer" "1.9.0" 91 | "@webassemblyjs/helper-wasm-bytecode" "1.9.0" 92 | "@webassemblyjs/wasm-gen" "1.9.0" 93 | 94 | "@webassemblyjs/ieee754@1.9.0": 95 | version "1.9.0" 96 | resolved "https://registry.yarnpkg.com/@webassemblyjs/ieee754/-/ieee754-1.9.0.tgz#15c7a0fbaae83fb26143bbacf6d6df1702ad39e4" 97 | integrity sha512-dcX8JuYU/gvymzIHc9DgxTzUUTLexWwt8uCTWP3otys596io0L5aW02Gb1RjYpx2+0Jus1h4ZFqjla7umFniTg== 98 | dependencies: 99 | "@xtuc/ieee754" "^1.2.0" 100 | 101 | "@webassemblyjs/leb128@1.9.0": 102 | version "1.9.0" 103 | resolved "https://registry.yarnpkg.com/@webassemblyjs/leb128/-/leb128-1.9.0.tgz#f19ca0b76a6dc55623a09cffa769e838fa1e1c95" 104 | integrity sha512-ENVzM5VwV1ojs9jam6vPys97B/S65YQtv/aanqnU7D8aSoHFX8GyhGg0CMfyKNIHBuAVjy3tlzd5QMMINa7wpw== 105 | dependencies: 106 | "@xtuc/long" "4.2.2" 107 | 108 | "@webassemblyjs/utf8@1.9.0": 109 | version "1.9.0" 110 | resolved "https://registry.yarnpkg.com/@webassemblyjs/utf8/-/utf8-1.9.0.tgz#04d33b636f78e6a6813227e82402f7637b6229ab" 111 | integrity sha512-GZbQlWtopBTP0u7cHrEx+73yZKrQoBMpwkGEIqlacljhXCkVM1kMQge/Mf+csMJAjEdSwhOyLAS0AoR3AG5P8w== 112 | 113 | "@webassemblyjs/wasm-edit@1.9.0": 114 | version "1.9.0" 115 | resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-edit/-/wasm-edit-1.9.0.tgz#3fe6d79d3f0f922183aa86002c42dd256cfee9cf" 116 | integrity sha512-FgHzBm80uwz5M8WKnMTn6j/sVbqilPdQXTWraSjBwFXSYGirpkSWE2R9Qvz9tNiTKQvoKILpCuTjBKzOIm0nxw== 117 | dependencies: 118 | "@webassemblyjs/ast" "1.9.0" 119 | "@webassemblyjs/helper-buffer" "1.9.0" 120 | "@webassemblyjs/helper-wasm-bytecode" "1.9.0" 121 | "@webassemblyjs/helper-wasm-section" "1.9.0" 122 | "@webassemblyjs/wasm-gen" "1.9.0" 123 | "@webassemblyjs/wasm-opt" "1.9.0" 124 | "@webassemblyjs/wasm-parser" "1.9.0" 125 | "@webassemblyjs/wast-printer" "1.9.0" 126 | 127 | "@webassemblyjs/wasm-gen@1.9.0": 128 | version "1.9.0" 129 | resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-gen/-/wasm-gen-1.9.0.tgz#50bc70ec68ded8e2763b01a1418bf43491a7a49c" 130 | integrity sha512-cPE3o44YzOOHvlsb4+E9qSqjc9Qf9Na1OO/BHFy4OI91XDE14MjFN4lTMezzaIWdPqHnsTodGGNP+iRSYfGkjA== 131 | dependencies: 132 | "@webassemblyjs/ast" "1.9.0" 133 | "@webassemblyjs/helper-wasm-bytecode" "1.9.0" 134 | "@webassemblyjs/ieee754" "1.9.0" 135 | "@webassemblyjs/leb128" "1.9.0" 136 | "@webassemblyjs/utf8" "1.9.0" 137 | 138 | "@webassemblyjs/wasm-opt@1.9.0": 139 | version "1.9.0" 140 | resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-opt/-/wasm-opt-1.9.0.tgz#2211181e5b31326443cc8112eb9f0b9028721a61" 141 | integrity sha512-Qkjgm6Anhm+OMbIL0iokO7meajkzQD71ioelnfPEj6r4eOFuqm4YC3VBPqXjFyyNwowzbMD+hizmprP/Fwkl2A== 142 | dependencies: 143 | "@webassemblyjs/ast" "1.9.0" 144 | "@webassemblyjs/helper-buffer" "1.9.0" 145 | "@webassemblyjs/wasm-gen" "1.9.0" 146 | "@webassemblyjs/wasm-parser" "1.9.0" 147 | 148 | "@webassemblyjs/wasm-parser@1.9.0": 149 | version "1.9.0" 150 | resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-parser/-/wasm-parser-1.9.0.tgz#9d48e44826df4a6598294aa6c87469d642fff65e" 151 | integrity sha512-9+wkMowR2AmdSWQzsPEjFU7njh8HTO5MqO8vjwEHuM+AMHioNqSBONRdr0NQQ3dVQrzp0s8lTcYqzUdb7YgELA== 152 | dependencies: 153 | "@webassemblyjs/ast" "1.9.0" 154 | "@webassemblyjs/helper-api-error" "1.9.0" 155 | "@webassemblyjs/helper-wasm-bytecode" "1.9.0" 156 | "@webassemblyjs/ieee754" "1.9.0" 157 | "@webassemblyjs/leb128" "1.9.0" 158 | "@webassemblyjs/utf8" "1.9.0" 159 | 160 | "@webassemblyjs/wast-parser@1.9.0": 161 | version "1.9.0" 162 | resolved "https://registry.yarnpkg.com/@webassemblyjs/wast-parser/-/wast-parser-1.9.0.tgz#3031115d79ac5bd261556cecc3fa90a3ef451914" 163 | integrity sha512-qsqSAP3QQ3LyZjNC/0jBJ/ToSxfYJ8kYyuiGvtn/8MK89VrNEfwj7BPQzJVHi0jGTRK2dGdJ5PRqhtjzoww+bw== 164 | dependencies: 165 | "@webassemblyjs/ast" "1.9.0" 166 | "@webassemblyjs/floating-point-hex-parser" "1.9.0" 167 | "@webassemblyjs/helper-api-error" "1.9.0" 168 | "@webassemblyjs/helper-code-frame" "1.9.0" 169 | "@webassemblyjs/helper-fsm" "1.9.0" 170 | "@xtuc/long" "4.2.2" 171 | 172 | "@webassemblyjs/wast-printer@1.9.0": 173 | version "1.9.0" 174 | resolved "https://registry.yarnpkg.com/@webassemblyjs/wast-printer/-/wast-printer-1.9.0.tgz#4935d54c85fef637b00ce9f52377451d00d47899" 175 | integrity sha512-2J0nE95rHXHyQ24cWjMKJ1tqB/ds8z/cyeOZxJhcb+rW+SQASVjuznUSmdz5GpVJTzU8JkhYut0D3siFDD6wsA== 176 | dependencies: 177 | "@webassemblyjs/ast" "1.9.0" 178 | "@webassemblyjs/wast-parser" "1.9.0" 179 | "@xtuc/long" "4.2.2" 180 | 181 | "@xtuc/ieee754@^1.2.0": 182 | version "1.2.0" 183 | resolved "https://registry.yarnpkg.com/@xtuc/ieee754/-/ieee754-1.2.0.tgz#eef014a3145ae477a1cbc00cd1e552336dceb790" 184 | integrity sha512-DX8nKgqcGwsc0eJSqYt5lwP4DH5FlHnmuWWBRy7X0NcaGR0ZtuyeESgMwTYVEtxmsNGY+qit4QYT/MIYTOTPeA== 185 | 186 | "@xtuc/long@4.2.2": 187 | version "4.2.2" 188 | resolved "https://registry.yarnpkg.com/@xtuc/long/-/long-4.2.2.tgz#d291c6a4e97989b5c61d9acf396ae4fe133a718d" 189 | integrity sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ== 190 | 191 | acorn@^8.0.4: 192 | version "8.0.4" 193 | resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.0.4.tgz#7a3ae4191466a6984eee0fe3407a4f3aa9db8354" 194 | integrity sha512-XNP0PqF1XD19ZlLKvB7cMmnZswW4C/03pRHgirB30uSJTaS3A3V1/P4sS3HPvFmjoriPCJQs+JDSbm4bL1TxGQ== 195 | 196 | ajv-keywords@^3.5.2: 197 | version "3.5.2" 198 | resolved "https://registry.yarnpkg.com/ajv-keywords/-/ajv-keywords-3.5.2.tgz#31f29da5ab6e00d1c2d329acf7b5929614d5014d" 199 | integrity sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ== 200 | 201 | ajv@^6.12.5: 202 | version "6.12.6" 203 | resolved "https://registry.yarnpkg.com/ajv/-/ajv-6.12.6.tgz#baf5a62e802b07d977034586f8c3baf5adf26df4" 204 | integrity sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g== 205 | dependencies: 206 | fast-deep-equal "^3.1.1" 207 | fast-json-stable-stringify "^2.0.0" 208 | json-schema-traverse "^0.4.1" 209 | uri-js "^4.2.2" 210 | 211 | browserslist@^4.14.5: 212 | version "4.15.0" 213 | resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.15.0.tgz#3d48bbca6a3f378e86102ffd017d9a03f122bdb0" 214 | integrity sha512-IJ1iysdMkGmjjYeRlDU8PQejVwxvVO5QOfXH7ylW31GO6LwNRSmm/SgRXtNsEXqMLl2e+2H5eEJ7sfynF8TCaQ== 215 | dependencies: 216 | caniuse-lite "^1.0.30001164" 217 | colorette "^1.2.1" 218 | electron-to-chromium "^1.3.612" 219 | escalade "^3.1.1" 220 | node-releases "^1.1.67" 221 | 222 | buffer-from@^1.0.0: 223 | version "1.1.1" 224 | resolved "https://registry.yarnpkg.com/buffer-from/-/buffer-from-1.1.1.tgz#32713bc028f75c02fdb710d7c7bcec1f2c6070ef" 225 | integrity sha512-MQcXEUbCKtEo7bhqEs6560Hyd4XaovZlO/k9V3hjVUF/zwW7KBVdSK4gIt/bzwS9MbR5qob+F5jusZsb0YQK2A== 226 | 227 | caniuse-lite@^1.0.30001164: 228 | version "1.0.30001165" 229 | resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001165.tgz#32955490d2f60290bb186bb754f2981917fa744f" 230 | integrity sha512-8cEsSMwXfx7lWSUMA2s08z9dIgsnR5NAqjXP23stdsU3AUWkCr/rr4s4OFtHXn5XXr6+7kam3QFVoYyXNPdJPA== 231 | 232 | chrome-trace-event@^1.0.2: 233 | version "1.0.2" 234 | resolved "https://registry.yarnpkg.com/chrome-trace-event/-/chrome-trace-event-1.0.2.tgz#234090ee97c7d4ad1a2c4beae27505deffc608a4" 235 | integrity sha512-9e/zx1jw7B4CO+c/RXoCsfg/x1AfUBioy4owYH0bJprEYAx5hRFLRhWBqHAG57D0ZM4H7vxbP7bPe0VwhQRYDQ== 236 | dependencies: 237 | tslib "^1.9.0" 238 | 239 | colorette@^1.2.1: 240 | version "1.2.1" 241 | resolved "https://registry.yarnpkg.com/colorette/-/colorette-1.2.1.tgz#4d0b921325c14faf92633086a536db6e89564b1b" 242 | integrity sha512-puCDz0CzydiSYOrnXpz/PKd69zRrribezjtE9yd4zvytoRc8+RY/KJPvtPFKZS3E3wP6neGyMe0vOTlHO5L3Pw== 243 | 244 | commander@^2.20.0: 245 | version "2.20.3" 246 | resolved "https://registry.yarnpkg.com/commander/-/commander-2.20.3.tgz#fd485e84c03eb4881c20722ba48035e8531aeb33" 247 | integrity sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ== 248 | 249 | electron-to-chromium@^1.3.612: 250 | version "1.3.621" 251 | resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.3.621.tgz#0bbe2100ef0b28f88d0b1101fbdf433312f69be0" 252 | integrity sha512-FeIuBzArONbAmKmZIsZIFGu/Gc9AVGlVeVbhCq+G2YIl6QkT0TDn2HKN/FMf1btXEB9kEmIuQf3/lBTVAbmFOg== 253 | 254 | enhanced-resolve@^5.3.1: 255 | version "5.4.0" 256 | resolved "https://registry.yarnpkg.com/enhanced-resolve/-/enhanced-resolve-5.4.0.tgz#a8bcf23b00affac9455cf71efd80844f4054f4dc" 257 | integrity sha512-ZmqfWURB2lConOBM1JdCVfPyMRv5RdKWktLXO6123p97ovVm2CLBgw9t5MBj3jJWA6eHyOeIws9iJQoGFR4euQ== 258 | dependencies: 259 | graceful-fs "^4.2.4" 260 | tapable "^2.0.0" 261 | 262 | escalade@^3.1.1: 263 | version "3.1.1" 264 | resolved "https://registry.yarnpkg.com/escalade/-/escalade-3.1.1.tgz#d8cfdc7000965c5a0174b4a82eaa5c0552742e40" 265 | integrity sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw== 266 | 267 | eslint-scope@^5.1.1: 268 | version "5.1.1" 269 | resolved "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-5.1.1.tgz#e786e59a66cb92b3f6c1fb0d508aab174848f48c" 270 | integrity sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw== 271 | dependencies: 272 | esrecurse "^4.3.0" 273 | estraverse "^4.1.1" 274 | 275 | esrecurse@^4.3.0: 276 | version "4.3.0" 277 | resolved "https://registry.yarnpkg.com/esrecurse/-/esrecurse-4.3.0.tgz#7ad7964d679abb28bee72cec63758b1c5d2c9921" 278 | integrity sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag== 279 | dependencies: 280 | estraverse "^5.2.0" 281 | 282 | estraverse@^4.1.1: 283 | version "4.3.0" 284 | resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-4.3.0.tgz#398ad3f3c5a24948be7725e83d11a7de28cdbd1d" 285 | integrity sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw== 286 | 287 | estraverse@^5.2.0: 288 | version "5.2.0" 289 | resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-5.2.0.tgz#307df42547e6cc7324d3cf03c155d5cdb8c53880" 290 | integrity sha512-BxbNGGNm0RyRYvUdHpIwv9IWzeM9XClbOxwoATuFdOE7ZE6wHL+HQ5T8hoPM+zHvmKzzsEqhgy0GrQ5X13afiQ== 291 | 292 | events@^3.2.0: 293 | version "3.2.0" 294 | resolved "https://registry.yarnpkg.com/events/-/events-3.2.0.tgz#93b87c18f8efcd4202a461aec4dfc0556b639379" 295 | integrity sha512-/46HWwbfCX2xTawVfkKLGxMifJYQBWMwY1mjywRtb4c9x8l5NP3KoJtnIOiL1hfdRkIuYhETxQlo62IF8tcnlg== 296 | 297 | fast-deep-equal@^3.1.1: 298 | version "3.1.3" 299 | resolved "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz#3a7d56b559d6cbc3eb512325244e619a65c6c525" 300 | integrity sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q== 301 | 302 | fast-json-stable-stringify@^2.0.0: 303 | version "2.1.0" 304 | resolved "https://registry.yarnpkg.com/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz#874bf69c6f404c2b5d99c481341399fd55892633" 305 | integrity sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw== 306 | 307 | find-up@^5.0.0: 308 | version "5.0.0" 309 | resolved "https://registry.yarnpkg.com/find-up/-/find-up-5.0.0.tgz#4c92819ecb7083561e4f4a240a86be5198f536fc" 310 | integrity sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng== 311 | dependencies: 312 | locate-path "^6.0.0" 313 | path-exists "^4.0.0" 314 | 315 | glob-to-regexp@^0.4.1: 316 | version "0.4.1" 317 | resolved "https://registry.yarnpkg.com/glob-to-regexp/-/glob-to-regexp-0.4.1.tgz#c75297087c851b9a578bd217dd59a92f59fe546e" 318 | integrity sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw== 319 | 320 | graceful-fs@^4.1.2, graceful-fs@^4.2.4: 321 | version "4.2.4" 322 | resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.4.tgz#2256bde14d3632958c465ebc96dc467ca07a29fb" 323 | integrity sha512-WjKPNJF79dtJAVniUlGGWHYGz2jWxT6VhN/4m1NdkbZ2nOsEF+cI1Edgql5zCRhs/VsQYRvrXctxktVXZUkixw== 324 | 325 | has-flag@^4.0.0: 326 | version "4.0.0" 327 | resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-4.0.0.tgz#944771fd9c81c81265c4d6941860da06bb59479b" 328 | integrity sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ== 329 | 330 | jest-worker@^26.6.1: 331 | version "26.6.2" 332 | resolved "https://registry.yarnpkg.com/jest-worker/-/jest-worker-26.6.2.tgz#7f72cbc4d643c365e27b9fd775f9d0eaa9c7a8ed" 333 | integrity sha512-KWYVV1c4i+jbMpaBC+U++4Va0cp8OisU185o73T1vo99hqi7w8tSJfUXYswwqqrjzwxa6KpRK54WhPvwf5w6PQ== 334 | dependencies: 335 | "@types/node" "*" 336 | merge-stream "^2.0.0" 337 | supports-color "^7.0.0" 338 | 339 | json-parse-better-errors@^1.0.2: 340 | version "1.0.2" 341 | resolved "https://registry.yarnpkg.com/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz#bb867cfb3450e69107c131d1c514bab3dc8bcaa9" 342 | integrity sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw== 343 | 344 | json-schema-traverse@^0.4.1: 345 | version "0.4.1" 346 | resolved "https://registry.yarnpkg.com/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz#69f6a87d9513ab8bb8fe63bdb0979c448e684660" 347 | integrity sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg== 348 | 349 | loader-runner@^4.1.0: 350 | version "4.1.0" 351 | resolved "https://registry.yarnpkg.com/loader-runner/-/loader-runner-4.1.0.tgz#f70bc0c29edbabdf2043e7ee73ccc3fe1c96b42d" 352 | integrity sha512-oR4lB4WvwFoC70ocraKhn5nkKSs23t57h9udUgw8o0iH8hMXeEoRuUgfcvgUwAJ1ZpRqBvcou4N2SMvM1DwMrA== 353 | 354 | locate-path@^6.0.0: 355 | version "6.0.0" 356 | resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-6.0.0.tgz#55321eb309febbc59c4801d931a72452a681d286" 357 | integrity sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw== 358 | dependencies: 359 | p-locate "^5.0.0" 360 | 361 | merge-stream@^2.0.0: 362 | version "2.0.0" 363 | resolved "https://registry.yarnpkg.com/merge-stream/-/merge-stream-2.0.0.tgz#52823629a14dd00c9770fb6ad47dc6310f2c1f60" 364 | integrity sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w== 365 | 366 | mime-db@1.44.0: 367 | version "1.44.0" 368 | resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.44.0.tgz#fa11c5eb0aca1334b4233cb4d52f10c5a6272f92" 369 | integrity sha512-/NOTfLrsPBVeH7YtFPgsVWveuL+4SjjYxaQ1xtM1KMFj7HdxlBlxeyNLzhyJVx7r4rZGJAZ/6lkKCitSc/Nmpg== 370 | 371 | mime-types@^2.1.27: 372 | version "2.1.27" 373 | resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.27.tgz#47949f98e279ea53119f5722e0f34e529bec009f" 374 | integrity sha512-JIhqnCasI9yD+SsmkquHBxTSEuZdQX5BuQnS2Vc7puQQQ+8yiP5AY5uWhpdv4YL4VM5c6iliiYWPgJ/nJQLp7w== 375 | dependencies: 376 | mime-db "1.44.0" 377 | 378 | neo-async@^2.6.2: 379 | version "2.6.2" 380 | resolved "https://registry.yarnpkg.com/neo-async/-/neo-async-2.6.2.tgz#b4aafb93e3aeb2d8174ca53cf163ab7d7308305f" 381 | integrity sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw== 382 | 383 | node-releases@^1.1.67: 384 | version "1.1.67" 385 | resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-1.1.67.tgz#28ebfcccd0baa6aad8e8d4d8fe4cbc49ae239c12" 386 | integrity sha512-V5QF9noGFl3EymEwUYzO+3NTDpGfQB4ve6Qfnzf3UNydMhjQRVPR1DZTuvWiLzaFJYw2fmDwAfnRNEVb64hSIg== 387 | 388 | p-limit@^3.0.2: 389 | version "3.1.0" 390 | resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-3.1.0.tgz#e1daccbe78d0d1388ca18c64fea38e3e57e3706b" 391 | integrity sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ== 392 | dependencies: 393 | yocto-queue "^0.1.0" 394 | 395 | p-locate@^5.0.0: 396 | version "5.0.0" 397 | resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-5.0.0.tgz#83c8315c6785005e3bd021839411c9e110e6d834" 398 | integrity sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw== 399 | dependencies: 400 | p-limit "^3.0.2" 401 | 402 | path-exists@^4.0.0: 403 | version "4.0.0" 404 | resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-4.0.0.tgz#513bdbe2d3b95d7762e8c1137efa195c6c61b5b3" 405 | integrity sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w== 406 | 407 | pkg-dir@^5.0.0: 408 | version "5.0.0" 409 | resolved "https://registry.yarnpkg.com/pkg-dir/-/pkg-dir-5.0.0.tgz#a02d6aebe6ba133a928f74aec20bafdfe6b8e760" 410 | integrity sha512-NPE8TDbzl/3YQYY7CSS228s3g2ollTFnc+Qi3tqmqJp9Vg2ovUpixcJEo2HJScN2Ez+kEaal6y70c0ehqJBJeA== 411 | dependencies: 412 | find-up "^5.0.0" 413 | 414 | punycode@^2.1.0: 415 | version "2.1.1" 416 | resolved "https://registry.yarnpkg.com/punycode/-/punycode-2.1.1.tgz#b58b010ac40c22c5657616c8d2c2c02c7bf479ec" 417 | integrity sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A== 418 | 419 | randombytes@^2.1.0: 420 | version "2.1.0" 421 | resolved "https://registry.yarnpkg.com/randombytes/-/randombytes-2.1.0.tgz#df6f84372f0270dc65cdf6291349ab7a473d4f2a" 422 | integrity sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ== 423 | dependencies: 424 | safe-buffer "^5.1.0" 425 | 426 | safe-buffer@^5.1.0: 427 | version "5.2.1" 428 | resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.2.1.tgz#1eaf9fa9bdb1fdd4ec75f58f9cdb4e6b7827eec6" 429 | integrity sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ== 430 | 431 | schema-utils@^3.0.0: 432 | version "3.0.0" 433 | resolved "https://registry.yarnpkg.com/schema-utils/-/schema-utils-3.0.0.tgz#67502f6aa2b66a2d4032b4279a2944978a0913ef" 434 | integrity sha512-6D82/xSzO094ajanoOSbe4YvXWMfn2A//8Y1+MUqFAJul5Bs+yn36xbK9OtNDcRVSBJ9jjeoXftM6CfztsjOAA== 435 | dependencies: 436 | "@types/json-schema" "^7.0.6" 437 | ajv "^6.12.5" 438 | ajv-keywords "^3.5.2" 439 | 440 | serialize-javascript@^5.0.1: 441 | version "5.0.1" 442 | resolved "https://registry.yarnpkg.com/serialize-javascript/-/serialize-javascript-5.0.1.tgz#7886ec848049a462467a97d3d918ebb2aaf934f4" 443 | integrity sha512-SaaNal9imEO737H2c05Og0/8LUXG7EnsZyMa8MzkmuHoELfT6txuj0cMqRj6zfPKnmQ1yasR4PCJc8x+M4JSPA== 444 | dependencies: 445 | randombytes "^2.1.0" 446 | 447 | source-list-map@^2.0.1: 448 | version "2.0.1" 449 | resolved "https://registry.yarnpkg.com/source-list-map/-/source-list-map-2.0.1.tgz#3993bd873bfc48479cca9ea3a547835c7c154b34" 450 | integrity sha512-qnQ7gVMxGNxsiL4lEuJwe/To8UnK7fAnmbGEEH8RpLouuKbeEm0lhbQVFIrNSuB+G7tVrAlVsZgETT5nljf+Iw== 451 | 452 | source-map-support@~0.5.19: 453 | version "0.5.19" 454 | resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.5.19.tgz#a98b62f86dcaf4f67399648c085291ab9e8fed61" 455 | integrity sha512-Wonm7zOCIJzBGQdB+thsPar0kYuCIzYvxZwlBa87yi/Mdjv7Tip2cyVbLj5o0cFPN4EVkuTwb3GDDyUx2DGnGw== 456 | dependencies: 457 | buffer-from "^1.0.0" 458 | source-map "^0.6.0" 459 | 460 | source-map@^0.6.0, source-map@^0.6.1: 461 | version "0.6.1" 462 | resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.6.1.tgz#74722af32e9614e9c287a8d0bbde48b5e2f1a263" 463 | integrity sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g== 464 | 465 | source-map@~0.7.2: 466 | version "0.7.3" 467 | resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.7.3.tgz#5302f8169031735226544092e64981f751750383" 468 | integrity sha512-CkCj6giN3S+n9qrYiBTX5gystlENnRW5jZeNLHpe6aue+SrHcG5VYwujhW9s4dY31mEGsxBDrHR6oI69fTXsaQ== 469 | 470 | supports-color@^7.0.0: 471 | version "7.2.0" 472 | resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-7.2.0.tgz#1b7dcdcb32b8138801b3e478ba6a51caa89648da" 473 | integrity sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw== 474 | dependencies: 475 | has-flag "^4.0.0" 476 | 477 | tapable@^2.0.0, tapable@^2.1.1: 478 | version "2.2.0" 479 | resolved "https://registry.yarnpkg.com/tapable/-/tapable-2.2.0.tgz#5c373d281d9c672848213d0e037d1c4165ab426b" 480 | integrity sha512-FBk4IesMV1rBxX2tfiK8RAmogtWn53puLOQlvO8XuwlgxcYbP4mVPS9Ph4aeamSyyVjOl24aYWAuc8U5kCVwMw== 481 | 482 | terser-webpack-plugin@^5.0.3: 483 | version "5.0.3" 484 | resolved "https://registry.yarnpkg.com/terser-webpack-plugin/-/terser-webpack-plugin-5.0.3.tgz#ec60542db2421f45735c719d2e17dabfbb2e3e42" 485 | integrity sha512-zFdGk8Lh9ZJGPxxPE6jwysOlATWB8GMW8HcfGULWA/nPal+3VdATflQvSBSLQJRCmYZnfFJl6vkRTiwJGNgPiQ== 486 | dependencies: 487 | jest-worker "^26.6.1" 488 | p-limit "^3.0.2" 489 | schema-utils "^3.0.0" 490 | serialize-javascript "^5.0.1" 491 | source-map "^0.6.1" 492 | terser "^5.3.8" 493 | 494 | terser@^5.3.8: 495 | version "5.5.1" 496 | resolved "https://registry.yarnpkg.com/terser/-/terser-5.5.1.tgz#540caa25139d6f496fdea056e414284886fb2289" 497 | integrity sha512-6VGWZNVP2KTUcltUQJ25TtNjx/XgdDsBDKGt8nN0MpydU36LmbPPcMBd2kmtZNNGVVDLg44k7GKeHHj+4zPIBQ== 498 | dependencies: 499 | commander "^2.20.0" 500 | source-map "~0.7.2" 501 | source-map-support "~0.5.19" 502 | 503 | tslib@^1.9.0: 504 | version "1.14.1" 505 | resolved "https://registry.yarnpkg.com/tslib/-/tslib-1.14.1.tgz#cf2d38bdc34a134bcaf1091c41f6619e2f672d00" 506 | integrity sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg== 507 | 508 | uri-js@^4.2.2: 509 | version "4.4.0" 510 | resolved "https://registry.yarnpkg.com/uri-js/-/uri-js-4.4.0.tgz#aa714261de793e8a82347a7bcc9ce74e86f28602" 511 | integrity sha512-B0yRTzYdUCCn9n+F4+Gh4yIDtMQcaJsmYBDsTSG8g/OejKBodLQ2IHfN3bM7jUsRXndopT7OIXWdYqc1fjmV6g== 512 | dependencies: 513 | punycode "^2.1.0" 514 | 515 | watchpack@^2.0.0: 516 | version "2.1.0" 517 | resolved "https://registry.yarnpkg.com/watchpack/-/watchpack-2.1.0.tgz#e63194736bf3aa22026f7b191cd57907b0f9f696" 518 | integrity sha512-UjgD1mqjkG99+3lgG36at4wPnUXNvis2v1utwTgQ43C22c4LD71LsYMExdWXh4HZ+RmW+B0t1Vrg2GpXAkTOQw== 519 | dependencies: 520 | glob-to-regexp "^0.4.1" 521 | graceful-fs "^4.1.2" 522 | 523 | webpack-sources@^2.1.1: 524 | version "2.2.0" 525 | resolved "https://registry.yarnpkg.com/webpack-sources/-/webpack-sources-2.2.0.tgz#058926f39e3d443193b6c31547229806ffd02bac" 526 | integrity sha512-bQsA24JLwcnWGArOKUxYKhX3Mz/nK1Xf6hxullKERyktjNMC4x8koOeaDNTA2fEJ09BdWLbM/iTW0ithREUP0w== 527 | dependencies: 528 | source-list-map "^2.0.1" 529 | source-map "^0.6.1" 530 | 531 | webpack@^5.9.0: 532 | version "5.10.0" 533 | resolved "https://registry.yarnpkg.com/webpack/-/webpack-5.10.0.tgz#6f77c31522a2c525152d9c344f9765d168b3df08" 534 | integrity sha512-P0bHAXmIz0zsNcHNLqFmLY1ZtrT+jtBr7FqpuDtA2o7GiHC+zBsfhgK7SmJ1HG7BAEb3G9JoMdSVi7mEDvG3Zg== 535 | dependencies: 536 | "@types/eslint-scope" "^3.7.0" 537 | "@types/estree" "^0.0.45" 538 | "@webassemblyjs/ast" "1.9.0" 539 | "@webassemblyjs/helper-module-context" "1.9.0" 540 | "@webassemblyjs/wasm-edit" "1.9.0" 541 | "@webassemblyjs/wasm-parser" "1.9.0" 542 | acorn "^8.0.4" 543 | browserslist "^4.14.5" 544 | chrome-trace-event "^1.0.2" 545 | enhanced-resolve "^5.3.1" 546 | eslint-scope "^5.1.1" 547 | events "^3.2.0" 548 | glob-to-regexp "^0.4.1" 549 | graceful-fs "^4.2.4" 550 | json-parse-better-errors "^1.0.2" 551 | loader-runner "^4.1.0" 552 | mime-types "^2.1.27" 553 | neo-async "^2.6.2" 554 | pkg-dir "^5.0.0" 555 | schema-utils "^3.0.0" 556 | tapable "^2.1.1" 557 | terser-webpack-plugin "^5.0.3" 558 | watchpack "^2.0.0" 559 | webpack-sources "^2.1.1" 560 | 561 | yocto-queue@^0.1.0: 562 | version "0.1.0" 563 | resolved "https://registry.yarnpkg.com/yocto-queue/-/yocto-queue-0.1.0.tgz#0294eb3dee05028d31ee1a5fa2c556a6aaf10a1b" 564 | integrity sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q== 565 | --------------------------------------------------------------------------------