├── .gitignore ├── .npmignore ├── LICENSE ├── README.md ├── index.js ├── package.json ├── run.js └── yarn.lock /.gitignore: -------------------------------------------------------------------------------- 1 | /report 2 | node_modules 3 | /npm-debug.log 4 | /.DS_Store 5 | sites.txt -------------------------------------------------------------------------------- /.npmignore: -------------------------------------------------------------------------------- 1 | yarn.lock 2 | /report 3 | sites.txt -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2017 Mike Stead 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | ## Lighthouse Batch Reporter 2 | 3 | Supports executing 4 | [Lighthouse](https://developers.google.com/web/tools/lighthouse) analysis over a 5 | number of sites in sequence and generating a summary report including all of 6 | their scores. Scores are calculated from the average score between Performance, 7 | PWA, Accessibility and Best Practice and SEO sections. 8 | 9 | Also writes out the full `json` report for each site and optionally an `html` 10 | report too. 11 | 12 | 13 | > Lighthouse Batch v7+ requires Node v12+. This is a requirement 14 | > from the dependency on Lighthouse v7+. 15 | 16 | ## CLI 17 | 18 | Example usage 19 | 20 | npx lighthouse-batch -s https://www.bbc.com,https://housing.com 21 | 22 | or install globally before use 23 | 24 | npm install lighthouse-batch -g 25 | lighthouse-batch -s https://www.bbc.com,https://housing.com 26 | 27 | This will generate the following files under the `./report/lighthouse` folder. 28 | 29 | www_bbc_com.report.json // Full results for bbc.com 30 | housing_com.report.json // Full results from housing.com 31 | summary.json // Summary of results with scores out of 100 32 | 33 | Example `summary.json` 34 | 35 | ```json 36 | [ 37 | { 38 | "url": "https://www.bbc.com", 39 | "name": "www_bbc_com", 40 | "file": "www_bbc_com.report.json", 41 | "score": "0.64", 42 | "detail": { 43 | "performance": 0.36, 44 | "accessibility": 0.87, 45 | "best-practices": 0.71, 46 | "seo": 0.96, 47 | "pwa": 0.31 48 | } 49 | }, 50 | { 51 | "url": "https://housing.com", 52 | "name": "housing_com", 53 | "file": "housing_com.report.json", 54 | "score": "0.71", 55 | "detail": { 56 | "performance": 0.42, 57 | "accessibility": 0.78, 58 | "best-practices": 0.93, 59 | "seo": 0.97, 60 | "pwa": 0.46 61 | } 62 | } 63 | ] 64 | ``` 65 | 66 | There's the option to read site urls from a text file, one per line. 67 | 68 | lighthouse-batch -f sites.txt 69 | 70 | Example `sites.txt`: 71 | 72 | ```text 73 | https://www.bbc.com 74 | https://housing.com 75 | ``` 76 | 77 | If you want html reports include the `--html` option. 78 | 79 | housing_com.report.html 80 | www_bbc_com.report.html 81 | 82 | Or add the `--csv` option for csv reports. 83 | 84 | housing_com.report.csv 85 | www_bbc_com.report.csv 86 | 87 | You can specify budget thresholds for primary metrics. If any are not met the run will fail. 88 | 89 | lighthouse-batch -s https://web.dev \ 90 | --score 92 \ 91 | --seo 95 \ 92 | --pwa 85 \ 93 | --best-practices 90 \ 94 | --accessibility 100 \ 95 | --fail-fast 96 | 97 | The `--fail-fast` option will error as soon as a budget is not met 98 | and skip pending sites. 99 | 100 | #### All options 101 | 102 | ```console 103 | lighthouse-batch [options] 104 | 105 | Options: 106 | -V, --version output the version number 107 | -s, --sites [sites] a comma delimited list of site urls to analyze with Lighthouse 108 | -f, --file [path] an input file with a site url per-line to analyze with Lighthouse 109 | -p, --params extra parameters to pass to lighthouse cli for each execution e.g. -p "--perf --quiet" 110 | -h, --html generate an html report alongside the json report 111 | --csv generate a csv report alongside the json report 112 | -o, --out [out] the output folder to place reports, defaults to './report/lighthouse' 113 | --score average score for each site to meet (1-100) 114 | --accessibility accessibility score for each site to meet (1-100) 115 | --best-practices best practices score for each site to meet (1-100) 116 | --seo seo score for each site to meet (1-100) 117 | --pwa pwa score for each site to meet (1-100) 118 | --fail-fast fail as soon as a budget threshold is not met 119 | -g, --use-global use a global lighthouse install instead of the dependency version 120 | -v, --verbose enable verbose logging 121 | --no-report remove individual json reports for each site 122 | --print print the final summary to stdout 123 | --help output usage information 124 | ``` 125 | 126 | ## Notes 127 | 128 | - Chrome is run with the following flags to support the widest set of execution 129 | environments, including docker containers 130 | `--chrome-flags="--no-sandbox --headless --disable-gpu"`. You can replace 131 | these with your own by passing `--chrome-flags` as extra parameters. e.g. 132 | 133 | `--params "--chrome-flags=\"--no-sandbox --disable-gpu\""` 134 | -------------------------------------------------------------------------------- /index.js: -------------------------------------------------------------------------------- 1 | "use strict"; 2 | require("shelljs/global"); 3 | const fs = require("fs"); 4 | const path = require("path"); 5 | const crypto = require("crypto"); 6 | const OUT = "./report/lighthouse"; 7 | const REPORT_SUMMARY = "summary.json"; 8 | const JSON_EXT = ".report.json"; 9 | const CSV_EXT = ".report.csv"; 10 | const HTML_EXT = ".report.html"; 11 | 12 | execute.OUT = OUT; 13 | module.exports = execute; 14 | 15 | function execute(options) { 16 | log = log.bind(log, options.verbose || false); 17 | 18 | const out = options.out || OUT; 19 | const lhScript = lighthouseScript(options, log); 20 | const summaryPath = path.join(out, REPORT_SUMMARY); 21 | 22 | try { 23 | const files = fs.readdirSync(out); 24 | files.forEach((f) => { 25 | if ( 26 | f.endsWith(JSON_EXT) || 27 | f.endsWith(HTML_EXT) || 28 | f.endsWith(CSV_EXT) || 29 | f == REPORT_SUMMARY 30 | ) { 31 | const oldFile = path.join(out, f); 32 | log(`Removing old report file: ${oldFile}`); 33 | rm("-f", oldFile); 34 | } 35 | }); 36 | } catch (e) {} 37 | 38 | mkdir("-p", out); 39 | 40 | let budgetErrors = []; 41 | const count = options.sites.length; 42 | log(`Lighthouse batch run begin for ${count} site${count > 1 ? "s" : ""}`); 43 | 44 | const reports = sitesInfo(options) 45 | .map((site, i) => { 46 | if (budgetErrors.length && options.failFast) { 47 | return undefined; 48 | } 49 | const prefix = `${i + 1}/${count}: `; 50 | const htmlOut = options.html ? " --output html" : ""; 51 | const csvOut = options.csv ? " --output csv" : ""; 52 | const filePath = path.join(out, site.file); 53 | const customParams = options.params || ""; 54 | const chromeFlags = 55 | customParams.indexOf("--chrome-flags=") === -1 56 | ? `--chrome-flags="--no-sandbox --headless --disable-gpu"` 57 | : ""; 58 | // if gen'ing (html|csv)+json reports, ext '.report.json' is added by lighthouse cli automatically, 59 | // so here we try and keep the file names consistent by stripping to avoid duplication 60 | const outputPath = 61 | options.html || options.csv 62 | ? filePath.slice(0, -JSON_EXT.length) 63 | : filePath; 64 | const cmd = `"${site.url}" --output json${ 65 | htmlOut + csvOut 66 | } --output-path "${outputPath}" ${chromeFlags} ${customParams}`; 67 | 68 | log(`${prefix}Lighthouse analyzing '${site.url}'`); 69 | log(cmd); 70 | const outcome = exec(`${lhScript} ${cmd}`); 71 | const summary = updateSummary(filePath, site, outcome, options); 72 | 73 | if (summary.error) 74 | console.warn(`${prefix}Lighthouse analysis FAILED for ${summary.url}`); 75 | else 76 | log( 77 | `${prefix}Lighthouse analysis of '${summary.url}' complete with score ${summary.score}` 78 | ); 79 | 80 | if (options.report === false) { 81 | log(`Removing generated report file '${filePath}'`); 82 | rm(filePath); 83 | } 84 | 85 | const errors = checkBudgets(summary, options); 86 | if (errors) { 87 | const other = summary.errors; 88 | summary.errors = { 89 | budget: errors, 90 | }; 91 | if (other) { 92 | summary.errors.other = other; 93 | } 94 | budgetErrors = budgetErrors.concat(errors); 95 | } 96 | 97 | return summary; 98 | }) 99 | .filter((summary) => !!summary); 100 | 101 | console.log(`Lighthouse batch run end`); 102 | console.log(`Writing reports summary to ${summaryPath}`); 103 | 104 | fs.writeFileSync(summaryPath, JSON.stringify(reports), "utf8"); 105 | if (options.print) { 106 | console.log(`Printing reports summary`); 107 | console.log(JSON.stringify(reports, null, 2)); 108 | } 109 | 110 | if (budgetErrors.length) { 111 | console.error(`Error: failed to meet budget thresholds`); 112 | for (let err of budgetErrors) { 113 | console.error(` - ${err}`); 114 | } 115 | log("Exiting with code 1"); 116 | process.exit(1); 117 | } 118 | } 119 | 120 | function sitesInfo(options) { 121 | let sites = []; 122 | if (options.file) { 123 | try { 124 | const contents = fs.readFileSync(options.file, "utf8"); 125 | sites = contents.trim().split("\n"); 126 | } catch (e) { 127 | console.error(`Failed to read file ${options.file}, aborting.\n`, e); 128 | log("Exiting with code 1"); 129 | process.exit(1); 130 | } 131 | } 132 | if (options.sites) { 133 | sites = sites.concat(options.sites); 134 | } 135 | const existingNames = {}; 136 | return sites.map((url) => { 137 | url = url.trim(); 138 | if (!url.match(/^https?:/)) { 139 | if (!url.startsWith("//")) url = `//${url}`; 140 | url = `https:${url}`; 141 | } 142 | const origName = siteName(url); 143 | let name = origName; 144 | 145 | // if the same page is being tested multiple times then 146 | // give each one an incremented name to avoid collisions 147 | let j = 1; 148 | while (existingNames[name]) { 149 | name = `${origName}_${j}`; 150 | j++; 151 | } 152 | existingNames[name] = true; 153 | 154 | const info = { 155 | url, 156 | name, 157 | file: `${name}${JSON_EXT}`, 158 | }; 159 | if (options.html) info.html = `${name}${HTML_EXT}`; 160 | if (options.csv) info.csv = `${name}${CSV_EXT}`; 161 | return info; 162 | }); 163 | } 164 | 165 | function lighthouseScript(options, log) { 166 | if (options.useGlobal) { 167 | if (exec("lighthouse --version").code === 0) { 168 | log("Targeting global install of Lighthouse cli"); 169 | return "lighthouse"; 170 | } else { 171 | console.warn( 172 | "Global Lighthouse install not found, falling back to local one" 173 | ); 174 | } 175 | } 176 | let cliPath = path.resolve( 177 | `${__dirname}/node_modules/lighthouse/lighthouse-cli/index.js` 178 | ); 179 | if (!fs.existsSync(cliPath)) { 180 | cliPath = path.resolve( 181 | `${__dirname}/../lighthouse/lighthouse-cli/index.js` 182 | ); 183 | if (!fs.existsSync(cliPath)) { 184 | console.error(`Failed to find Lighthouse CLI, aborting.`); 185 | process.exit(1); 186 | } 187 | } 188 | log(`Targeting local Lighthouse cli at '${cliPath}'`); 189 | return `node ${cliPath}`; 190 | } 191 | 192 | function siteName(site) { 193 | const maxLength = 100; 194 | let name = site 195 | .replace(/^https?:\/\//, "") 196 | .replace(/[\/\?#:\*\$@\!\.]/g, "_"); 197 | 198 | if (name.length > maxLength) { 199 | const hash = crypto 200 | .createHash("sha1") 201 | .update(name) 202 | .digest("hex") 203 | .slice(0, 7); 204 | 205 | name = name.slice(0, maxLength).replace(/_+$/g, ""); // trim any `_` suffix 206 | name = `${name}_${hash}`; 207 | } 208 | return name; 209 | } 210 | 211 | function updateSummary(filePath, summary, outcome, options) { 212 | if (outcome.code !== 0) { 213 | summary.score = 0; 214 | summary.error = outcome.stderr; 215 | return summary; 216 | } 217 | const report = JSON.parse(fs.readFileSync(filePath)); 218 | return { 219 | ...summary, 220 | ...getAverageScore(report), 221 | }; 222 | } 223 | 224 | function getAverageScore(report) { 225 | let categories = report.reportCategories; // lighthouse v1,2 226 | if (report.categories) { 227 | // lighthouse v3 228 | categories = Object.values(report.categories); 229 | } 230 | let total = 0; 231 | const detail = categories.reduce((acc, cat) => { 232 | if (cat.id) acc[cat.id] = cat.score; 233 | total += cat.score; 234 | return acc; 235 | }, {}); 236 | return { 237 | score: Number((total / categories.length).toFixed(2)), 238 | detail, 239 | }; 240 | } 241 | 242 | function checkBudgets(summary, options) { 243 | const errors = []; 244 | if (options.score > 0) { 245 | const score = toScore(summary.score); 246 | if (score < options.score) { 247 | errors.push( 248 | `average score ${score} < ${options.score} for ${summary.url}` 249 | ); 250 | } 251 | } 252 | 253 | if (options.accessibility > 0 && summary.detail) { 254 | const score = toScore(summary.detail.accessibility); 255 | if (score < options.accessibility) { 256 | errors.push( 257 | `accessibility score ${score} < ${options.accessibility} for ${summary.url}` 258 | ); 259 | } 260 | } 261 | 262 | if (options.performance > 0 && summary.detail) { 263 | const score = toScore(summary.detail.performance); 264 | if (score < options.performance) { 265 | errors.push( 266 | `performance score ${score} < ${options.performance} for ${summary.url}` 267 | ); 268 | } 269 | } 270 | 271 | if (options.bestPractices > 0 && summary.detail) { 272 | const score = toScore(summary.detail["best-practices"]); 273 | if (score < options.bestPractices) { 274 | errors.push( 275 | `best practices score ${score} < ${options.bestPractices} for ${summary.url}` 276 | ); 277 | } 278 | } 279 | 280 | if (options.seo > 0 && summary.detail) { 281 | const score = toScore(summary.detail.seo); 282 | if (score < options.seo) { 283 | errors.push( 284 | `seo score ${score} < ${options.seo} for site ${summary.url}` 285 | ); 286 | } 287 | } 288 | 289 | if (options.pwa > 0 && summary.detail) { 290 | const score = toScore(summary.detail.pwa); 291 | if (score < options.pwa) { 292 | errors.push( 293 | `pwa score ${score} < ${options.pwa} for site ${summary.url}` 294 | ); 295 | } 296 | } 297 | 298 | return errors.length ? errors : undefined; 299 | } 300 | 301 | function log(v, msg) { 302 | if (v) console.log(msg); 303 | } 304 | 305 | function toScore(score) { 306 | return Number(score) * 100; 307 | } 308 | -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "lighthouse-batch", 3 | "version": "8.1.1", 4 | "description": "Generate lighthouse reports for one or more websites", 5 | "main": "index.js", 6 | "bin": { 7 | "lighthouse-batch": "run.js" 8 | }, 9 | "engines": { 10 | "node": ">=12.13" 11 | }, 12 | "author": "Mike Stead", 13 | "license": "MIT", 14 | "homepage": "https://github.com/mikestead/lighthouse-batch", 15 | "repository": { 16 | "type": "git", 17 | "url": "https://github.com/mikestead/lighthouse-batch.git" 18 | }, 19 | "dependencies": { 20 | "commander": "^2.9.0", 21 | "lighthouse": "^8.3.0", 22 | "shelljs": "^0.8.4" 23 | } 24 | } 25 | -------------------------------------------------------------------------------- /run.js: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env node 2 | "use strict"; 3 | 4 | const program = require("commander"); 5 | const execute = require("./index"); 6 | 7 | program 8 | .version(require("./package.json").version) 9 | .option( 10 | "-s, --sites [sites]", 11 | "a comma delimited list of site urls to analyze with Lighthouse", 12 | (str) => str.split(","), 13 | [] 14 | ) 15 | .option( 16 | "-f, --file [path]", 17 | "an input file with a site url per-line to analyze with Lighthouse" 18 | ) 19 | .option( 20 | "-p, --params ", 21 | 'extra parameters to pass to lighthouse cli for each execution e.g. -p "--perf --quiet"' 22 | ) 23 | .option("-h, --html", "generate an html report alongside the json report") 24 | .option("--csv", "generate a csv report alongside the json report") 25 | .option( 26 | "-o, --out [out]", 27 | `the output folder to place reports, defaults to '${execute.OUT}'` 28 | ) 29 | .option( 30 | "--score ", 31 | `average score for each site to meet (1-100)`, 32 | Number 33 | ) 34 | .option( 35 | "--accessibility ", 36 | `accessibility score for each site to meet (1-100)`, 37 | Number 38 | ) 39 | .option( 40 | "--performance ", 41 | `performance score for each site to meet (1-100)`, 42 | Number 43 | ) 44 | .option( 45 | "--best-practices ", 46 | `best practice score for each site to meet (1-100)`, 47 | Number 48 | ) 49 | .option( 50 | "--seo ", 51 | `seo score for each site to meet (1-100)`, 52 | Number 53 | ) 54 | .option( 55 | "--pwa ", 56 | `pwa score for each site to meet (1-100)`, 57 | Number 58 | ) 59 | .option("--fail-fast", `fail as soon as a budget threshold is not met`) 60 | .option( 61 | "-g, --use-global", 62 | "use a global lighthouse install instead of the dependency version" 63 | ) 64 | .option("-v, --verbose", "enable verbose logging") 65 | .option("--no-report", "remove individual json reports for each site") 66 | .option("--print", "print the final summary to stdout") 67 | .parse(process.argv); 68 | 69 | execute(program); 70 | -------------------------------------------------------------------------------- /yarn.lock: -------------------------------------------------------------------------------- 1 | # THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY. 2 | # yarn lockfile v1 3 | 4 | 5 | "@sindresorhus/is@^0.14.0": 6 | version "0.14.0" 7 | resolved "https://registry.yarnpkg.com/@sindresorhus/is/-/is-0.14.0.tgz#9fb3a3cf3132328151f353de4632e01e52102bea" 8 | integrity sha512-9NET910DNaIPngYnLLPeg+Ogzqsi9uM4mSboU5y6p8S5DzMTVEsJZrawi+BoDNUVBa2DhJqQYUFvMDfgU062LQ== 9 | 10 | "@szmarczak/http-timer@^1.1.2": 11 | version "1.1.2" 12 | resolved "https://registry.yarnpkg.com/@szmarczak/http-timer/-/http-timer-1.1.2.tgz#b1665e2c461a2cd92f4c1bbf50d5454de0d4b421" 13 | integrity sha512-XIB2XbzHTN6ieIjfIMV9hlVcfPU26s2vafYWQcZHWXHOxiaRZYEDKEwdl129Zyg50+foYV2jCgtrqSA6qNuNSA== 14 | dependencies: 15 | defer-to-connect "^1.0.1" 16 | 17 | "@types/node@*": 18 | version "14.0.13" 19 | resolved "https://registry.yarnpkg.com/@types/node/-/node-14.0.13.tgz#ee1128e881b874c371374c1f72201893616417c9" 20 | integrity sha512-rouEWBImiRaSJsVA+ITTFM6ZxibuAlTuNOCyxVbwreu6k6+ujs7DfnU9o+PShFhET78pMBl3eH+AGSI5eOTkPA== 21 | 22 | ansi-align@^3.0.0: 23 | version "3.0.0" 24 | resolved "https://registry.yarnpkg.com/ansi-align/-/ansi-align-3.0.0.tgz#b536b371cf687caaef236c18d3e21fe3797467cb" 25 | integrity sha512-ZpClVKqXN3RGBmKibdfWzqCY4lnjEuoNzU5T0oEFpfd/z5qJHVarukridD4juLO2FXMiwUQxr9WqQtaYa8XRYw== 26 | dependencies: 27 | string-width "^3.0.0" 28 | 29 | ansi-colors@^4.1.1: 30 | version "4.1.1" 31 | resolved "https://registry.yarnpkg.com/ansi-colors/-/ansi-colors-4.1.1.tgz#cbb9ae256bf750af1eab344f229aa27fe94ba348" 32 | integrity sha512-JoX0apGbHaUJBNl6yF+p6JAFYZ666/hhCGKN5t9QFjbJQKUU/g8MNbFDbvfrgKXvI1QpZplPOnwIo99lX/AAmA== 33 | 34 | ansi-regex@^4.1.0: 35 | version "4.1.0" 36 | resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-4.1.0.tgz#8b9f8f08cf1acb843756a839ca8c7e3168c51997" 37 | integrity sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg== 38 | 39 | ansi-regex@^5.0.0: 40 | version "5.0.0" 41 | resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-5.0.0.tgz#388539f55179bf39339c81af30a654d69f87cb75" 42 | integrity sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg== 43 | 44 | ansi-styles@^4.0.0, ansi-styles@^4.1.0: 45 | version "4.3.0" 46 | resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-4.3.0.tgz#edd803628ae71c04c85ae7a0906edad34b648937" 47 | integrity sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg== 48 | dependencies: 49 | color-convert "^2.0.1" 50 | 51 | axe-core@4.2.3: 52 | version "4.2.3" 53 | resolved "https://registry.yarnpkg.com/axe-core/-/axe-core-4.2.3.tgz#2a3afc332f0031b42f602f4a3de03c211ca98f72" 54 | integrity sha512-pXnVMfJKSIWU2Ml4JHP7pZEPIrgBO1Fd3WGx+fPBsS+KRGhE4vxooD8XBGWbQOIVSZsVK7pUDBBkCicNu80yzQ== 55 | 56 | balanced-match@^1.0.0: 57 | version "1.0.0" 58 | resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.0.tgz#89b4d199ab2bee49de164ea02b89ce462d71b767" 59 | integrity sha1-ibTRmasr7kneFk6gK4nORi1xt2c= 60 | 61 | boxen@^4.2.0: 62 | version "4.2.0" 63 | resolved "https://registry.yarnpkg.com/boxen/-/boxen-4.2.0.tgz#e411b62357d6d6d36587c8ac3d5d974daa070e64" 64 | integrity sha512-eB4uT9RGzg2odpER62bBwSLvUeGC+WbRjjyyFhGsKnc8wp/m0+hQsMUvUe3H2V0D5vw0nBdO1hCJoZo5mKeuIQ== 65 | dependencies: 66 | ansi-align "^3.0.0" 67 | camelcase "^5.3.1" 68 | chalk "^3.0.0" 69 | cli-boxes "^2.2.0" 70 | string-width "^4.1.0" 71 | term-size "^2.1.0" 72 | type-fest "^0.8.1" 73 | widest-line "^3.1.0" 74 | 75 | brace-expansion@^1.1.7: 76 | version "1.1.11" 77 | resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.11.tgz#3c7fcbf529d87226f3d2f52b966ff5271eb441dd" 78 | integrity sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA== 79 | dependencies: 80 | balanced-match "^1.0.0" 81 | concat-map "0.0.1" 82 | 83 | cacheable-request@^6.0.0: 84 | version "6.1.0" 85 | resolved "https://registry.yarnpkg.com/cacheable-request/-/cacheable-request-6.1.0.tgz#20ffb8bd162ba4be11e9567d823db651052ca912" 86 | integrity sha512-Oj3cAGPCqOZX7Rz64Uny2GYAZNliQSqfbePrgAQ1wKAihYmCUnraBtJtKcGR4xz7wF+LoJC+ssFZvv5BgF9Igg== 87 | dependencies: 88 | clone-response "^1.0.2" 89 | get-stream "^5.1.0" 90 | http-cache-semantics "^4.0.0" 91 | keyv "^3.0.0" 92 | lowercase-keys "^2.0.0" 93 | normalize-url "^4.1.0" 94 | responselike "^1.0.2" 95 | 96 | camelcase@^5.3.1: 97 | version "5.3.1" 98 | resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-5.3.1.tgz#e3c9b31569e106811df242f715725a1f4c494320" 99 | integrity sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg== 100 | 101 | chalk@^3.0.0: 102 | version "3.0.0" 103 | resolved "https://registry.yarnpkg.com/chalk/-/chalk-3.0.0.tgz#3f73c2bf526591f574cc492c51e2456349f844e4" 104 | integrity sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg== 105 | dependencies: 106 | ansi-styles "^4.1.0" 107 | supports-color "^7.1.0" 108 | 109 | charenc@~0.0.1: 110 | version "0.0.2" 111 | resolved "https://registry.yarnpkg.com/charenc/-/charenc-0.0.2.tgz#c0a1d2f3a7092e03774bfa83f14c0fc5790a8667" 112 | integrity sha1-wKHS86cJLgN3S/qD8UwPxXkKhmc= 113 | 114 | chrome-launcher@^0.14.0: 115 | version "0.14.0" 116 | resolved "https://registry.yarnpkg.com/chrome-launcher/-/chrome-launcher-0.14.0.tgz#de8d8a534ccaeea0f36ea8dc12dd99e3169f3320" 117 | integrity sha512-W//HpflaW6qBGrmuskup7g+XJZN6w03ko9QSIe5CtcTal2u0up5SeReK3Ll1Why4Ey8dPkv8XSodZyHPnGbVHQ== 118 | dependencies: 119 | "@types/node" "*" 120 | escape-string-regexp "^4.0.0" 121 | is-wsl "^2.2.0" 122 | lighthouse-logger "^1.0.0" 123 | 124 | ci-info@^2.0.0: 125 | version "2.0.0" 126 | resolved "https://registry.yarnpkg.com/ci-info/-/ci-info-2.0.0.tgz#67a9e964be31a51e15e5010d58e6f12834002f46" 127 | integrity sha512-5tK7EtrZ0N+OLFMthtqOj4fI2Jeb88C4CAZPu25LDVUgXJ0A3Js4PMGqrn0JU1W0Mh1/Z8wZzYPxqUrXeBboCQ== 128 | 129 | cli-boxes@^2.2.0: 130 | version "2.2.1" 131 | resolved "https://registry.yarnpkg.com/cli-boxes/-/cli-boxes-2.2.1.tgz#ddd5035d25094fce220e9cab40a45840a440318f" 132 | integrity sha512-y4coMcylgSCdVinjiDBuR8PCC2bLjyGTwEmPb9NHR/QaNU6EUOXcTY/s6VjGMD6ENSEaeQYHCY0GNGS5jfMwPw== 133 | 134 | cliui@^7.0.2: 135 | version "7.0.4" 136 | resolved "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz#a0265ee655476fc807aea9df3df8df7783808b4f" 137 | integrity sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ== 138 | dependencies: 139 | string-width "^4.2.0" 140 | strip-ansi "^6.0.0" 141 | wrap-ansi "^7.0.0" 142 | 143 | clone-response@^1.0.2: 144 | version "1.0.2" 145 | resolved "https://registry.yarnpkg.com/clone-response/-/clone-response-1.0.2.tgz#d1dc973920314df67fbeb94223b4ee350239e96b" 146 | integrity sha1-0dyXOSAxTfZ/vrlCI7TuNQI56Ws= 147 | dependencies: 148 | mimic-response "^1.0.0" 149 | 150 | color-convert@^2.0.1: 151 | version "2.0.1" 152 | resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-2.0.1.tgz#72d3a68d598c9bdb3af2ad1e84f21d896abd4de3" 153 | integrity sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ== 154 | dependencies: 155 | color-name "~1.1.4" 156 | 157 | color-name@~1.1.4: 158 | version "1.1.4" 159 | resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.4.tgz#c2a09a87acbde69543de6f63fa3995c826c536a2" 160 | integrity sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA== 161 | 162 | commander@^2.9.0: 163 | version "2.20.3" 164 | resolved "https://registry.yarnpkg.com/commander/-/commander-2.20.3.tgz#fd485e84c03eb4881c20722ba48035e8531aeb33" 165 | integrity sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ== 166 | 167 | concat-map@0.0.1: 168 | version "0.0.1" 169 | resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b" 170 | integrity sha1-2Klr13/Wjfd5OnMDajug1UBdR3s= 171 | 172 | configstore@^5.0.1: 173 | version "5.0.1" 174 | resolved "https://registry.yarnpkg.com/configstore/-/configstore-5.0.1.tgz#d365021b5df4b98cdd187d6a3b0e3f6a7cc5ed96" 175 | integrity sha512-aMKprgk5YhBNyH25hj8wGt2+D52Sw1DRRIzqBwLp2Ya9mFmY8KPvvtvmna8SxVR9JMZ4kzMD68N22vlaRpkeFA== 176 | dependencies: 177 | dot-prop "^5.2.0" 178 | graceful-fs "^4.1.2" 179 | make-dir "^3.0.0" 180 | unique-string "^2.0.0" 181 | write-file-atomic "^3.0.0" 182 | xdg-basedir "^4.0.0" 183 | 184 | cookie@0.3.1: 185 | version "0.3.1" 186 | resolved "https://registry.yarnpkg.com/cookie/-/cookie-0.3.1.tgz#e7e0a1f9ef43b4c8ba925c5c5a96e806d16873bb" 187 | integrity sha1-5+Ch+e9DtMi6klxcWpboBtFoc7s= 188 | 189 | crypt@~0.0.1: 190 | version "0.0.2" 191 | resolved "https://registry.yarnpkg.com/crypt/-/crypt-0.0.2.tgz#88d7ff7ec0dfb86f713dc87bbb42d044d3e6c41b" 192 | integrity sha1-iNf/fsDfuG9xPch7u0LQRNPmxBs= 193 | 194 | crypto-random-string@^2.0.0: 195 | version "2.0.0" 196 | resolved "https://registry.yarnpkg.com/crypto-random-string/-/crypto-random-string-2.0.0.tgz#ef2a7a966ec11083388369baa02ebead229b30d5" 197 | integrity sha512-v1plID3y9r/lPhviJ1wrXpLeyUIGAZ2SHNYTEapm7/8A9nLPoyvVp3RK/EPFqn5kEznyWgYZNsRtYYIWbuG8KA== 198 | 199 | csp_evaluator@1.0.4: 200 | version "1.0.4" 201 | resolved "https://registry.yarnpkg.com/csp_evaluator/-/csp_evaluator-1.0.4.tgz#152deb224683020d55a9dce853266ecab6c56129" 202 | integrity sha512-hs1lAKCbx/SWXYwpUWu3bS/k1CS10HRLh/7Kjh+VMW2ZZ8GmzymMGlModz+IIgh4gpn+PGuSVoJFkBPU3wGR7Q== 203 | 204 | cssom@0.3.x: 205 | version "0.3.8" 206 | resolved "https://registry.yarnpkg.com/cssom/-/cssom-0.3.8.tgz#9f1276f5b2b463f2114d3f2c75250af8c1a36f4a" 207 | integrity sha512-b0tGHbfegbhPJpxpiBPU2sCkigAqtM9O121le6bbOlgyV+NyGyCmVfJ6QW9eRjz8CpNfWEOYBIMIGRYkLwsIYg== 208 | 209 | cssstyle@1.2.1: 210 | version "1.2.1" 211 | resolved "https://registry.yarnpkg.com/cssstyle/-/cssstyle-1.2.1.tgz#3aceb2759eaf514ac1a21628d723d6043a819495" 212 | integrity sha512-7DYm8qe+gPx/h77QlCyFmX80+fGaE/6A/Ekl0zaszYOubvySO2saYFdQ78P29D0UsULxFKCetDGNaNRUdSF+2A== 213 | dependencies: 214 | cssom "0.3.x" 215 | 216 | debug@^2.6.8, debug@^2.6.9: 217 | version "2.6.9" 218 | resolved "https://registry.yarnpkg.com/debug/-/debug-2.6.9.tgz#5d128515df134ff327e90a4c93f4e077a536341f" 219 | integrity sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA== 220 | dependencies: 221 | ms "2.0.0" 222 | 223 | decompress-response@^3.3.0: 224 | version "3.3.0" 225 | resolved "https://registry.yarnpkg.com/decompress-response/-/decompress-response-3.3.0.tgz#80a4dd323748384bfa248083622aedec982adff3" 226 | integrity sha1-gKTdMjdIOEv6JICDYirt7Jgq3/M= 227 | dependencies: 228 | mimic-response "^1.0.0" 229 | 230 | deep-extend@^0.6.0: 231 | version "0.6.0" 232 | resolved "https://registry.yarnpkg.com/deep-extend/-/deep-extend-0.6.0.tgz#c4fa7c95404a17a9c3e8ca7e1537312b736330ac" 233 | integrity sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA== 234 | 235 | defer-to-connect@^1.0.1: 236 | version "1.1.3" 237 | resolved "https://registry.yarnpkg.com/defer-to-connect/-/defer-to-connect-1.1.3.tgz#331ae050c08dcf789f8c83a7b81f0ed94f4ac591" 238 | integrity sha512-0ISdNousHvZT2EiFlZeZAHBUvSxmKswVCEf8hW7KWgG4a8MVEu/3Vb6uWYozkjylyCxe0JBIiRB1jV45S70WVQ== 239 | 240 | dot-prop@^5.2.0: 241 | version "5.3.0" 242 | resolved "https://registry.yarnpkg.com/dot-prop/-/dot-prop-5.3.0.tgz#90ccce708cd9cd82cc4dc8c3ddd9abdd55b20e88" 243 | integrity sha512-QM8q3zDe58hqUqjraQOmzZ1LIH9SWQJTlEKCH4kJ2oQvLZk7RbQXvtDM2XEq3fwkV9CCvvH4LA0AV+ogFsBM2Q== 244 | dependencies: 245 | is-obj "^2.0.0" 246 | 247 | duplexer3@^0.1.4: 248 | version "0.1.4" 249 | resolved "https://registry.yarnpkg.com/duplexer3/-/duplexer3-0.1.4.tgz#ee01dd1cac0ed3cbc7fdbea37dc0a8f1ce002ce2" 250 | integrity sha1-7gHdHKwO08vH/b6jfcCo8c4ALOI= 251 | 252 | emoji-regex@^7.0.1: 253 | version "7.0.3" 254 | resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-7.0.3.tgz#933a04052860c85e83c122479c4748a8e4c72156" 255 | integrity sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA== 256 | 257 | emoji-regex@^8.0.0: 258 | version "8.0.0" 259 | resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-8.0.0.tgz#e818fd69ce5ccfcb404594f842963bf53164cc37" 260 | integrity sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A== 261 | 262 | end-of-stream@^1.1.0: 263 | version "1.4.4" 264 | resolved "https://registry.yarnpkg.com/end-of-stream/-/end-of-stream-1.4.4.tgz#5ae64a5f45057baf3626ec14da0ca5e4b2431eb0" 265 | integrity sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q== 266 | dependencies: 267 | once "^1.4.0" 268 | 269 | enquirer@^2.3.6: 270 | version "2.3.6" 271 | resolved "https://registry.yarnpkg.com/enquirer/-/enquirer-2.3.6.tgz#2a7fe5dd634a1e4125a975ec994ff5456dc3734d" 272 | integrity sha512-yjNnPr315/FjS4zIsUxYguYUPP2e1NK4d7E7ZOLiyYCcbFBiTMyID+2wvm2w6+pZ/odMA7cRkjhsPbltwBOrLg== 273 | dependencies: 274 | ansi-colors "^4.1.1" 275 | 276 | escalade@^3.1.1: 277 | version "3.1.1" 278 | resolved "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz#d8cfdc7000965c5a0174b4a82eaa5c0552742e40" 279 | integrity sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw== 280 | 281 | escape-goat@^2.0.0: 282 | version "2.1.1" 283 | resolved "https://registry.yarnpkg.com/escape-goat/-/escape-goat-2.1.1.tgz#1b2dc77003676c457ec760b2dc68edb648188675" 284 | integrity sha512-8/uIhbG12Csjy2JEW7D9pHbreaVaS/OpN3ycnyvElTdwM5n6GY6W6e2IPemfvGZeUMqZ9A/3GqIZMgKnBhAw/Q== 285 | 286 | escape-string-regexp@^4.0.0: 287 | version "4.0.0" 288 | resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz#14ba83a5d373e3d311e5afca29cf5bfad965bf34" 289 | integrity sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA== 290 | 291 | fs.realpath@^1.0.0: 292 | version "1.0.0" 293 | resolved "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f" 294 | integrity sha1-FQStJSMVjKpA20onh8sBQRmU6k8= 295 | 296 | get-caller-file@^2.0.5: 297 | version "2.0.5" 298 | resolved "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz#4f94412a82db32f36e3b0b9741f8a97feb031f7e" 299 | integrity sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg== 300 | 301 | get-stream@^4.1.0: 302 | version "4.1.0" 303 | resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-4.1.0.tgz#c1b255575f3dc21d59bfc79cd3d2b46b1c3a54b5" 304 | integrity sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w== 305 | dependencies: 306 | pump "^3.0.0" 307 | 308 | get-stream@^5.1.0: 309 | version "5.2.0" 310 | resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-5.2.0.tgz#4966a1795ee5ace65e706c4b7beb71257d6e22d3" 311 | integrity sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA== 312 | dependencies: 313 | pump "^3.0.0" 314 | 315 | glob@^7.0.0: 316 | version "7.1.6" 317 | resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.6.tgz#141f33b81a7c2492e125594307480c46679278a6" 318 | integrity sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA== 319 | dependencies: 320 | fs.realpath "^1.0.0" 321 | inflight "^1.0.4" 322 | inherits "2" 323 | minimatch "^3.0.4" 324 | once "^1.3.0" 325 | path-is-absolute "^1.0.0" 326 | 327 | global-dirs@^2.0.1: 328 | version "2.0.1" 329 | resolved "https://registry.yarnpkg.com/global-dirs/-/global-dirs-2.0.1.tgz#acdf3bb6685bcd55cb35e8a052266569e9469201" 330 | integrity sha512-5HqUqdhkEovj2Of/ms3IeS/EekcO54ytHRLV4PEY2rhRwrHXLQjeVEES0Lhka0xwNDtGYn58wyC4s5+MHsOO6A== 331 | dependencies: 332 | ini "^1.3.5" 333 | 334 | got@^9.6.0: 335 | version "9.6.0" 336 | resolved "https://registry.yarnpkg.com/got/-/got-9.6.0.tgz#edf45e7d67f99545705de1f7bbeeeb121765ed85" 337 | integrity sha512-R7eWptXuGYxwijs0eV+v3o6+XH1IqVK8dJOEecQfTmkncw9AV4dcw/Dhxi8MdlqPthxxpZyizMzyg8RTmEsG+Q== 338 | dependencies: 339 | "@sindresorhus/is" "^0.14.0" 340 | "@szmarczak/http-timer" "^1.1.2" 341 | cacheable-request "^6.0.0" 342 | decompress-response "^3.3.0" 343 | duplexer3 "^0.1.4" 344 | get-stream "^4.1.0" 345 | lowercase-keys "^1.0.1" 346 | mimic-response "^1.0.1" 347 | p-cancelable "^1.0.0" 348 | to-readable-stream "^1.0.0" 349 | url-parse-lax "^3.0.0" 350 | 351 | graceful-fs@^4.1.2: 352 | version "4.2.4" 353 | resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.4.tgz#2256bde14d3632958c465ebc96dc467ca07a29fb" 354 | integrity sha512-WjKPNJF79dtJAVniUlGGWHYGz2jWxT6VhN/4m1NdkbZ2nOsEF+cI1Edgql5zCRhs/VsQYRvrXctxktVXZUkixw== 355 | 356 | has-flag@^4.0.0: 357 | version "4.0.0" 358 | resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-4.0.0.tgz#944771fd9c81c81265c4d6941860da06bb59479b" 359 | integrity sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ== 360 | 361 | has-yarn@^2.1.0: 362 | version "2.1.0" 363 | resolved "https://registry.yarnpkg.com/has-yarn/-/has-yarn-2.1.0.tgz#137e11354a7b5bf11aa5cb649cf0c6f3ff2b2e77" 364 | integrity sha512-UqBRqi4ju7T+TqGNdqAO0PaSVGsDGJUBQvk9eUWNGRY1CFGDzYhLWoM7JQEemnlvVcv/YEmc2wNW8BC24EnUsw== 365 | 366 | http-cache-semantics@^4.0.0: 367 | version "4.1.0" 368 | resolved "https://registry.yarnpkg.com/http-cache-semantics/-/http-cache-semantics-4.1.0.tgz#49e91c5cbf36c9b94bcfcd71c23d5249ec74e390" 369 | integrity sha512-carPklcUh7ROWRK7Cv27RPtdhYhUsela/ue5/jKzjegVvXDqM2ILE9Q2BGn9JZJh1g87cp56su/FgQSzcWS8cQ== 370 | 371 | http-link-header@^0.8.0: 372 | version "0.8.0" 373 | resolved "https://registry.yarnpkg.com/http-link-header/-/http-link-header-0.8.0.tgz#a22b41a0c9b1e2d8fac1bf1b697c6bd532d5f5e4" 374 | integrity sha1-oitBoMmx4tj6wb8baXxr1TLV9eQ= 375 | 376 | image-ssim@^0.2.0: 377 | version "0.2.0" 378 | resolved "https://registry.yarnpkg.com/image-ssim/-/image-ssim-0.2.0.tgz#83b42c7a2e6e4b85505477fe6917f5dbc56420e5" 379 | integrity sha1-g7Qsei5uS4VQVHf+aRf128VkIOU= 380 | 381 | import-lazy@^2.1.0: 382 | version "2.1.0" 383 | resolved "https://registry.yarnpkg.com/import-lazy/-/import-lazy-2.1.0.tgz#05698e3d45c88e8d7e9d92cb0584e77f096f3e43" 384 | integrity sha1-BWmOPUXIjo1+nZLLBYTnfwlvPkM= 385 | 386 | imurmurhash@^0.1.4: 387 | version "0.1.4" 388 | resolved "https://registry.yarnpkg.com/imurmurhash/-/imurmurhash-0.1.4.tgz#9218b9b2b928a238b13dc4fb6b6d576f231453ea" 389 | integrity sha1-khi5srkoojixPcT7a21XbyMUU+o= 390 | 391 | inflight@^1.0.4: 392 | version "1.0.6" 393 | resolved "https://registry.yarnpkg.com/inflight/-/inflight-1.0.6.tgz#49bd6331d7d02d0c09bc910a1075ba8165b56df9" 394 | integrity sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk= 395 | dependencies: 396 | once "^1.3.0" 397 | wrappy "1" 398 | 399 | inherits@2: 400 | version "2.0.4" 401 | resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.4.tgz#0fa2c64f932917c3433a0ded55363aae37416b7c" 402 | integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ== 403 | 404 | ini@^1.3.5, ini@~1.3.0: 405 | version "1.3.7" 406 | resolved "https://registry.yarnpkg.com/ini/-/ini-1.3.7.tgz#a09363e1911972ea16d7a8851005d84cf09a9a84" 407 | integrity sha512-iKpRpXP+CrP2jyrxvg1kMUpXDyRUFDWurxbnVT1vQPx+Wz9uCYsMIqYuSBLV+PAaZG/d7kRLKRFc9oDMsH+mFQ== 408 | 409 | interpret@^1.0.0: 410 | version "1.4.0" 411 | resolved "https://registry.yarnpkg.com/interpret/-/interpret-1.4.0.tgz#665ab8bc4da27a774a40584e812e3e0fa45b1a1e" 412 | integrity sha512-agE4QfB2Lkp9uICn7BAqoscw4SZP9kTE2hxiFI3jBPmXJfdqiahTbUuKGsMoN2GtqL9AxhYioAcVvgsb1HvRbA== 413 | 414 | intl-messageformat-parser@^1.8.1: 415 | version "1.8.1" 416 | resolved "https://registry.yarnpkg.com/intl-messageformat-parser/-/intl-messageformat-parser-1.8.1.tgz#0eb14c5618333be4c95c409457b66c8c33ddcc01" 417 | integrity sha512-IMSCKVf0USrM/959vj3xac7s8f87sc+80Y/ipBzdKy4ifBv5Gsj2tZ41EAaURVg01QU71fYr77uA8Meh6kELbg== 418 | 419 | intl-messageformat@^4.4.0: 420 | version "4.4.0" 421 | resolved "https://registry.yarnpkg.com/intl-messageformat/-/intl-messageformat-4.4.0.tgz#aa196a4d04b573f4090bc417f982d81de4f74fad" 422 | integrity sha512-z+Bj2rS3LZSYU4+sNitdHrwnBhr0wO80ZJSW8EzKDBowwUe3Q/UsvgCGjrwa+HPzoGCLEb9HAjfJgo4j2Sac8w== 423 | dependencies: 424 | intl-messageformat-parser "^1.8.1" 425 | 426 | is-buffer@~1.1.1: 427 | version "1.1.6" 428 | resolved "https://registry.yarnpkg.com/is-buffer/-/is-buffer-1.1.6.tgz#efaa2ea9daa0d7ab2ea13a97b2b8ad51fefbe8be" 429 | integrity sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w== 430 | 431 | is-ci@^2.0.0: 432 | version "2.0.0" 433 | resolved "https://registry.yarnpkg.com/is-ci/-/is-ci-2.0.0.tgz#6bc6334181810e04b5c22b3d589fdca55026404c" 434 | integrity sha512-YfJT7rkpQB0updsdHLGWrvhBJfcfzNNawYDNIyQXJz0IViGf75O8EBPKSdvw2rF+LGCsX4FZ8tcr3b19LcZq4w== 435 | dependencies: 436 | ci-info "^2.0.0" 437 | 438 | is-docker@^2.0.0: 439 | version "2.0.0" 440 | resolved "https://registry.yarnpkg.com/is-docker/-/is-docker-2.0.0.tgz#2cb0df0e75e2d064fe1864c37cdeacb7b2dcf25b" 441 | integrity sha512-pJEdRugimx4fBMra5z2/5iRdZ63OhYV0vr0Dwm5+xtW4D1FvRkB8hamMIhnWfyJeDdyr/aa7BDyNbtG38VxgoQ== 442 | 443 | is-fullwidth-code-point@^2.0.0: 444 | version "2.0.0" 445 | resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz#a3b30a5c4f199183167aaab93beefae3ddfb654f" 446 | integrity sha1-o7MKXE8ZkYMWeqq5O+764937ZU8= 447 | 448 | is-fullwidth-code-point@^3.0.0: 449 | version "3.0.0" 450 | resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz#f116f8064fe90b3f7844a38997c0b75051269f1d" 451 | integrity sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg== 452 | 453 | is-installed-globally@^0.3.1: 454 | version "0.3.2" 455 | resolved "https://registry.yarnpkg.com/is-installed-globally/-/is-installed-globally-0.3.2.tgz#fd3efa79ee670d1187233182d5b0a1dd00313141" 456 | integrity sha512-wZ8x1js7Ia0kecP/CHM/3ABkAmujX7WPvQk6uu3Fly/Mk44pySulQpnHG46OMjHGXApINnV4QhY3SWnECO2z5g== 457 | dependencies: 458 | global-dirs "^2.0.1" 459 | is-path-inside "^3.0.1" 460 | 461 | is-npm@^4.0.0: 462 | version "4.0.0" 463 | resolved "https://registry.yarnpkg.com/is-npm/-/is-npm-4.0.0.tgz#c90dd8380696df87a7a6d823c20d0b12bbe3c84d" 464 | integrity sha512-96ECIfh9xtDDlPylNPXhzjsykHsMJZ18ASpaWzQyBr4YRTcVjUvzaHayDAES2oU/3KpljhHUjtSRNiDwi0F0ig== 465 | 466 | is-obj@^2.0.0: 467 | version "2.0.0" 468 | resolved "https://registry.yarnpkg.com/is-obj/-/is-obj-2.0.0.tgz#473fb05d973705e3fd9620545018ca8e22ef4982" 469 | integrity sha512-drqDG3cbczxxEJRoOXcOjtdp1J/lyp1mNn0xaznRs8+muBhgQcrnbspox5X5fOw0HnMnbfDzvnEMEtqDEJEo8w== 470 | 471 | is-path-inside@^3.0.1: 472 | version "3.0.2" 473 | resolved "https://registry.yarnpkg.com/is-path-inside/-/is-path-inside-3.0.2.tgz#f5220fc82a3e233757291dddc9c5877f2a1f3017" 474 | integrity sha512-/2UGPSgmtqwo1ktx8NDHjuPwZWmHhO+gj0f93EkhLB5RgW9RZevWYYlIkS6zePc6U2WpOdQYIwHe9YC4DWEBVg== 475 | 476 | is-typedarray@^1.0.0: 477 | version "1.0.0" 478 | resolved "https://registry.yarnpkg.com/is-typedarray/-/is-typedarray-1.0.0.tgz#e479c80858df0c1b11ddda6940f96011fcda4a9a" 479 | integrity sha1-5HnICFjfDBsR3dppQPlgEfzaSpo= 480 | 481 | is-wsl@^1.1.0: 482 | version "1.1.0" 483 | resolved "https://registry.yarnpkg.com/is-wsl/-/is-wsl-1.1.0.tgz#1f16e4aa22b04d1336b66188a66af3c600c3a66d" 484 | integrity sha1-HxbkqiKwTRM2tmGIpmrzxgDDpm0= 485 | 486 | is-wsl@^2.2.0: 487 | version "2.2.0" 488 | resolved "https://registry.yarnpkg.com/is-wsl/-/is-wsl-2.2.0.tgz#74a4c76e77ca9fd3f932f290c17ea326cd157271" 489 | integrity sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww== 490 | dependencies: 491 | is-docker "^2.0.0" 492 | 493 | is-yarn-global@^0.3.0: 494 | version "0.3.0" 495 | resolved "https://registry.yarnpkg.com/is-yarn-global/-/is-yarn-global-0.3.0.tgz#d502d3382590ea3004893746754c89139973e232" 496 | integrity sha512-VjSeb/lHmkoyd8ryPVIKvOCn4D1koMqY+vqyjjUfc3xyKtP4dYOxM44sZrnqQSzSds3xyOrUTLTC9LVCVgLngw== 497 | 498 | jpeg-js@^0.4.1: 499 | version "0.4.2" 500 | resolved "https://registry.yarnpkg.com/jpeg-js/-/jpeg-js-0.4.2.tgz#8b345b1ae4abde64c2da2fe67ea216a114ac279d" 501 | integrity sha512-+az2gi/hvex7eLTMTlbRLOhH6P6WFdk2ITI8HJsaH2VqYO0I594zXSYEP+tf4FW+8Cy68ScDXoAsQdyQanv3sw== 502 | 503 | js-library-detector@^6.4.0: 504 | version "6.4.0" 505 | resolved "https://registry.npmjs.org/js-library-detector/-/js-library-detector-6.4.0.tgz#63e165cb84a4a0a7f7bbf1e97d60623921baae14" 506 | integrity sha512-NB2sYpmgqiTd7PNNhgp6bnEZmjvTUdAbzxABvYXWLpTL/t158T6mPnD8uYNd0FDP73YWyMrTYDvPxqdvCTbv2g== 507 | 508 | json-buffer@3.0.0: 509 | version "3.0.0" 510 | resolved "https://registry.yarnpkg.com/json-buffer/-/json-buffer-3.0.0.tgz#5b1f397afc75d677bde8bcfc0e47e1f9a3d9a898" 511 | integrity sha1-Wx85evx11ne96Lz8Dkfh+aPZqJg= 512 | 513 | keyv@^3.0.0: 514 | version "3.1.0" 515 | resolved "https://registry.yarnpkg.com/keyv/-/keyv-3.1.0.tgz#ecc228486f69991e49e9476485a5be1e8fc5c4d9" 516 | integrity sha512-9ykJ/46SN/9KPM/sichzQ7OvXyGDYKGTaDlKMGCAlg2UK8KRy4jb0d8sFc+0Tt0YYnThq8X2RZgCg74RPxgcVA== 517 | dependencies: 518 | json-buffer "3.0.0" 519 | 520 | latest-version@^5.0.0: 521 | version "5.1.0" 522 | resolved "https://registry.yarnpkg.com/latest-version/-/latest-version-5.1.0.tgz#119dfe908fe38d15dfa43ecd13fa12ec8832face" 523 | integrity sha512-weT+r0kTkRQdCdYCNtkMwWXQTMEswKrFBkm4ckQOMVhhqhIMI1UT2hMj+1iigIhgSZm5gTmrRXBNoGUgaTY1xA== 524 | dependencies: 525 | package-json "^6.3.0" 526 | 527 | lighthouse-logger@^1.0.0: 528 | version "1.2.0" 529 | resolved "https://registry.yarnpkg.com/lighthouse-logger/-/lighthouse-logger-1.2.0.tgz#b76d56935e9c137e86a04741f6bb9b2776e886ca" 530 | integrity sha512-wzUvdIeJZhRsG6gpZfmSCfysaxNEr43i+QT+Hie94wvHDKFLi4n7C2GqZ4sTC+PH5b5iktmXJvU87rWvhP3lHw== 531 | dependencies: 532 | debug "^2.6.8" 533 | marky "^1.2.0" 534 | 535 | lighthouse-logger@^1.3.0: 536 | version "1.3.0" 537 | resolved "https://registry.yarnpkg.com/lighthouse-logger/-/lighthouse-logger-1.3.0.tgz#ba6303e739307c4eee18f08249524e7dafd510db" 538 | integrity sha512-BbqAKApLb9ywUli+0a+PcV04SyJ/N1q/8qgCNe6U97KbPCS1BTksEuHFLYdvc8DltuhfxIUBqDZsC0bBGtl3lA== 539 | dependencies: 540 | debug "^2.6.9" 541 | marky "^1.2.2" 542 | 543 | lighthouse-stack-packs@^1.5.0: 544 | version "1.5.0" 545 | resolved "https://registry.yarnpkg.com/lighthouse-stack-packs/-/lighthouse-stack-packs-1.5.0.tgz#c191f2b94db21602254baaebfb0bb90307a00ffa" 546 | integrity sha512-ntVOqFsrrTQYrNf+W+sNE9GjddW+ab5QN0WrrCikjMFsUvEQ28CvT0SXcHPZXFtcsb1lMSuVaNCmEuj7oXtYGQ== 547 | 548 | lighthouse@^8.3.0: 549 | version "8.3.0" 550 | resolved "https://registry.yarnpkg.com/lighthouse/-/lighthouse-8.3.0.tgz#2dd8e1440500c3e70235d13bf8946425e21eb616" 551 | integrity sha512-EPSm4TaC6B6VusCsPtifGtp+eLxOGlbeqAE69GAMlOtFoMRxM0VTXHcNENHzSBhaiR9j5aHZ06/6PRzb2orxEg== 552 | dependencies: 553 | axe-core "4.2.3" 554 | chrome-launcher "^0.14.0" 555 | configstore "^5.0.1" 556 | csp_evaluator "1.0.4" 557 | cssstyle "1.2.1" 558 | enquirer "^2.3.6" 559 | http-link-header "^0.8.0" 560 | intl-messageformat "^4.4.0" 561 | jpeg-js "^0.4.1" 562 | js-library-detector "^6.4.0" 563 | lighthouse-logger "^1.3.0" 564 | lighthouse-stack-packs "^1.5.0" 565 | lodash.clonedeep "^4.5.0" 566 | lodash.get "^4.4.2" 567 | lodash.isequal "^4.5.0" 568 | lodash.set "^4.3.2" 569 | lookup-closest-locale "6.0.4" 570 | metaviewport-parser "0.2.0" 571 | open "^6.4.0" 572 | parse-cache-control "1.0.1" 573 | ps-list "^7.2.0" 574 | raven "^2.2.1" 575 | robots-parser "^2.0.1" 576 | semver "^5.3.0" 577 | speedline-core "^1.4.3" 578 | third-party-web "^0.12.4" 579 | update-notifier "^4.1.0" 580 | ws "^7.0.0" 581 | yargs "^16.1.1" 582 | yargs-parser "^20.2.4" 583 | 584 | lodash.clonedeep@^4.5.0: 585 | version "4.5.0" 586 | resolved "https://registry.yarnpkg.com/lodash.clonedeep/-/lodash.clonedeep-4.5.0.tgz#e23f3f9c4f8fbdde872529c1071857a086e5ccef" 587 | integrity sha1-4j8/nE+Pvd6HJSnBBxhXoIblzO8= 588 | 589 | lodash.get@^4.4.2: 590 | version "4.4.2" 591 | resolved "https://registry.yarnpkg.com/lodash.get/-/lodash.get-4.4.2.tgz#2d177f652fa31e939b4438d5341499dfa3825e99" 592 | integrity sha1-LRd/ZS+jHpObRDjVNBSZ36OCXpk= 593 | 594 | lodash.isequal@^4.5.0: 595 | version "4.5.0" 596 | resolved "https://registry.yarnpkg.com/lodash.isequal/-/lodash.isequal-4.5.0.tgz#415c4478f2bcc30120c22ce10ed3226f7d3e18e0" 597 | integrity sha1-QVxEePK8wwEgwizhDtMib30+GOA= 598 | 599 | lodash.set@^4.3.2: 600 | version "4.3.2" 601 | resolved "https://registry.yarnpkg.com/lodash.set/-/lodash.set-4.3.2.tgz#d8757b1da807dde24816b0d6a84bea1a76230b23" 602 | integrity sha1-2HV7HagH3eJIFrDWqEvqGnYjCyM= 603 | 604 | lookup-closest-locale@6.0.4: 605 | version "6.0.4" 606 | resolved "https://registry.yarnpkg.com/lookup-closest-locale/-/lookup-closest-locale-6.0.4.tgz#1279fed7546a601647bbc980f64423ee990a8590" 607 | integrity sha512-bWoFbSGe6f1GvMGzj17LrwMX4FhDXDwZyH04ySVCPbtOJADcSRguZNKewoJ3Ful/MOxD/wRHvFPadk/kYZUbuQ== 608 | 609 | lowercase-keys@^1.0.0, lowercase-keys@^1.0.1: 610 | version "1.0.1" 611 | resolved "https://registry.yarnpkg.com/lowercase-keys/-/lowercase-keys-1.0.1.tgz#6f9e30b47084d971a7c820ff15a6c5167b74c26f" 612 | integrity sha512-G2Lj61tXDnVFFOi8VZds+SoQjtQC3dgokKdDG2mTm1tx4m50NUHBOZSBwQQHyy0V12A0JTG4icfZQH+xPyh8VA== 613 | 614 | lowercase-keys@^2.0.0: 615 | version "2.0.0" 616 | resolved "https://registry.yarnpkg.com/lowercase-keys/-/lowercase-keys-2.0.0.tgz#2603e78b7b4b0006cbca2fbcc8a3202558ac9479" 617 | integrity sha512-tqNXrS78oMOE73NMxK4EMLQsQowWf8jKooH9g7xPavRT706R6bkQJ6DY2Te7QukaZsulxa30wQ7bk0pm4XiHmA== 618 | 619 | make-dir@^3.0.0: 620 | version "3.1.0" 621 | resolved "https://registry.yarnpkg.com/make-dir/-/make-dir-3.1.0.tgz#415e967046b3a7f1d185277d84aa58203726a13f" 622 | integrity sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw== 623 | dependencies: 624 | semver "^6.0.0" 625 | 626 | marky@^1.2.0: 627 | version "1.2.1" 628 | resolved "https://registry.yarnpkg.com/marky/-/marky-1.2.1.tgz#a3fcf82ffd357756b8b8affec9fdbf3a30dc1b02" 629 | integrity sha512-md9k+Gxa3qLH6sUKpeC2CNkJK/Ld+bEz5X96nYwloqphQE0CKCVEKco/6jxEZixinqNdz5RFi/KaCyfbMDMAXQ== 630 | 631 | marky@^1.2.2: 632 | version "1.2.2" 633 | resolved "https://registry.yarnpkg.com/marky/-/marky-1.2.2.tgz#4456765b4de307a13d263a69b0c79bf226e68323" 634 | integrity sha512-k1dB2HNeaNyORco8ulVEhctyEGkKHb2YWAhDsxeFlW2nROIirsctBYzKwwS3Vza+sKTS1zO4Z+n9/+9WbGLIxQ== 635 | 636 | md5@^2.2.1: 637 | version "2.2.1" 638 | resolved "https://registry.yarnpkg.com/md5/-/md5-2.2.1.tgz#53ab38d5fe3c8891ba465329ea23fac0540126f9" 639 | integrity sha1-U6s41f48iJG6RlMp6iP6wFQBJvk= 640 | dependencies: 641 | charenc "~0.0.1" 642 | crypt "~0.0.1" 643 | is-buffer "~1.1.1" 644 | 645 | metaviewport-parser@0.2.0: 646 | version "0.2.0" 647 | resolved "https://registry.yarnpkg.com/metaviewport-parser/-/metaviewport-parser-0.2.0.tgz#535c3ce1ccf6223a5025fddc6a1c36505f7e7db1" 648 | integrity sha1-U1w84cz2IjpQJf3cahw2UF9+fbE= 649 | 650 | mimic-response@^1.0.0, mimic-response@^1.0.1: 651 | version "1.0.1" 652 | resolved "https://registry.yarnpkg.com/mimic-response/-/mimic-response-1.0.1.tgz#4923538878eef42063cb8a3e3b0798781487ab1b" 653 | integrity sha512-j5EctnkH7amfV/q5Hgmoal1g2QHFJRraOtmx0JpIqkxhBhI/lJSl1nMpQ45hVarwNETOoWEimndZ4QK0RHxuxQ== 654 | 655 | minimatch@^3.0.4: 656 | version "3.0.4" 657 | resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.0.4.tgz#5166e286457f03306064be5497e8dbb0c3d32083" 658 | integrity sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA== 659 | dependencies: 660 | brace-expansion "^1.1.7" 661 | 662 | minimist@^1.2.0: 663 | version "1.2.5" 664 | resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.5.tgz#67d66014b66a6a8aaa0c083c5fd58df4e4e97602" 665 | integrity sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw== 666 | 667 | ms@2.0.0: 668 | version "2.0.0" 669 | resolved "https://registry.yarnpkg.com/ms/-/ms-2.0.0.tgz#5608aeadfc00be6c2901df5f9861788de0d597c8" 670 | integrity sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g= 671 | 672 | normalize-url@^4.1.0: 673 | version "4.5.0" 674 | resolved "https://registry.yarnpkg.com/normalize-url/-/normalize-url-4.5.0.tgz#453354087e6ca96957bd8f5baf753f5982142129" 675 | integrity sha512-2s47yzUxdexf1OhyRi4Em83iQk0aPvwTddtFz4hnSSw9dCEsLEGf6SwIO8ss/19S9iBb5sJaOuTvTGDeZI00BQ== 676 | 677 | once@^1.3.0, once@^1.3.1, once@^1.4.0: 678 | version "1.4.0" 679 | resolved "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1" 680 | integrity sha1-WDsap3WWHUsROsF9nFC6753Xa9E= 681 | dependencies: 682 | wrappy "1" 683 | 684 | open@^6.4.0: 685 | version "6.4.0" 686 | resolved "https://registry.yarnpkg.com/open/-/open-6.4.0.tgz#5c13e96d0dc894686164f18965ecfe889ecfc8a9" 687 | integrity sha512-IFenVPgF70fSm1keSd2iDBIDIBZkroLeuffXq+wKTzTJlBpesFWojV9lb8mzOfaAzM1sr7HQHuO0vtV0zYekGg== 688 | dependencies: 689 | is-wsl "^1.1.0" 690 | 691 | p-cancelable@^1.0.0: 692 | version "1.1.0" 693 | resolved "https://registry.yarnpkg.com/p-cancelable/-/p-cancelable-1.1.0.tgz#d078d15a3af409220c886f1d9a0ca2e441ab26cc" 694 | integrity sha512-s73XxOZ4zpt1edZYZzvhqFa6uvQc1vwUa0K0BdtIZgQMAJj9IbebH+JkgKZc9h+B05PKHLOTl4ajG1BmNrVZlw== 695 | 696 | package-json@^6.3.0: 697 | version "6.5.0" 698 | resolved "https://registry.yarnpkg.com/package-json/-/package-json-6.5.0.tgz#6feedaca35e75725876d0b0e64974697fed145b0" 699 | integrity sha512-k3bdm2n25tkyxcjSKzB5x8kfVxlMdgsbPr0GkZcwHsLpba6cBjqCt1KlcChKEvxHIcTB1FVMuwoijZ26xex5MQ== 700 | dependencies: 701 | got "^9.6.0" 702 | registry-auth-token "^4.0.0" 703 | registry-url "^5.0.0" 704 | semver "^6.2.0" 705 | 706 | parse-cache-control@1.0.1: 707 | version "1.0.1" 708 | resolved "https://registry.yarnpkg.com/parse-cache-control/-/parse-cache-control-1.0.1.tgz#8eeab3e54fa56920fe16ba38f77fa21aacc2d74e" 709 | integrity sha1-juqz5U+laSD+Fro493+iGqzC104= 710 | 711 | path-is-absolute@^1.0.0: 712 | version "1.0.1" 713 | resolved "https://registry.yarnpkg.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f" 714 | integrity sha1-F0uSaHNVNP+8es5r9TpanhtcX18= 715 | 716 | path-parse@^1.0.6: 717 | version "1.0.6" 718 | resolved "https://registry.yarnpkg.com/path-parse/-/path-parse-1.0.6.tgz#d62dbb5679405d72c4737ec58600e9ddcf06d24c" 719 | integrity sha512-GSmOT2EbHrINBf9SR7CDELwlJ8AENk3Qn7OikK4nFYAu3Ote2+JYNVvkpAEQm3/TLNEJFD/xZJjzyxg3KBWOzw== 720 | 721 | prepend-http@^2.0.0: 722 | version "2.0.0" 723 | resolved "https://registry.yarnpkg.com/prepend-http/-/prepend-http-2.0.0.tgz#e92434bfa5ea8c19f41cdfd401d741a3c819d897" 724 | integrity sha1-6SQ0v6XqjBn0HN/UAddBo8gZ2Jc= 725 | 726 | ps-list@^7.2.0: 727 | version "7.2.0" 728 | resolved "https://registry.yarnpkg.com/ps-list/-/ps-list-7.2.0.tgz#3d110e1de8249a4b178c9b1cf2a215d1e4e42fc0" 729 | integrity sha512-v4Bl6I3f2kJfr5o80ShABNHAokIgY+wFDTQfE+X3zWYgSGQOCBeYptLZUpoOALBqO5EawmDN/tjTldJesd0ujQ== 730 | 731 | pump@^3.0.0: 732 | version "3.0.0" 733 | resolved "https://registry.yarnpkg.com/pump/-/pump-3.0.0.tgz#b4a2116815bde2f4e1ea602354e8c75565107a64" 734 | integrity sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww== 735 | dependencies: 736 | end-of-stream "^1.1.0" 737 | once "^1.3.1" 738 | 739 | pupa@^2.0.1: 740 | version "2.1.1" 741 | resolved "https://registry.yarnpkg.com/pupa/-/pupa-2.1.1.tgz#f5e8fd4afc2c5d97828faa523549ed8744a20d62" 742 | integrity sha512-l1jNAspIBSFqbT+y+5FosojNpVpF94nlI+wDUpqP9enwOTfHx9f0gh5nB96vl+6yTpsJsypeNrwfzPrKuHB41A== 743 | dependencies: 744 | escape-goat "^2.0.0" 745 | 746 | raven@^2.2.1: 747 | version "2.6.4" 748 | resolved "https://registry.yarnpkg.com/raven/-/raven-2.6.4.tgz#458d4a380c8fbb59e0150c655625aaf60c167ea3" 749 | integrity sha512-6PQdfC4+DQSFncowthLf+B6Hr0JpPsFBgTVYTAOq7tCmx/kR4SXbeawtPch20+3QfUcQDoJBLjWW1ybvZ4kXTw== 750 | dependencies: 751 | cookie "0.3.1" 752 | md5 "^2.2.1" 753 | stack-trace "0.0.10" 754 | timed-out "4.0.1" 755 | uuid "3.3.2" 756 | 757 | rc@^1.2.8: 758 | version "1.2.8" 759 | resolved "https://registry.yarnpkg.com/rc/-/rc-1.2.8.tgz#cd924bf5200a075b83c188cd6b9e211b7fc0d3ed" 760 | integrity sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw== 761 | dependencies: 762 | deep-extend "^0.6.0" 763 | ini "~1.3.0" 764 | minimist "^1.2.0" 765 | strip-json-comments "~2.0.1" 766 | 767 | rechoir@^0.6.2: 768 | version "0.6.2" 769 | resolved "https://registry.yarnpkg.com/rechoir/-/rechoir-0.6.2.tgz#85204b54dba82d5742e28c96756ef43af50e3384" 770 | integrity sha1-hSBLVNuoLVdC4oyWdW70OvUOM4Q= 771 | dependencies: 772 | resolve "^1.1.6" 773 | 774 | registry-auth-token@^4.0.0: 775 | version "4.2.1" 776 | resolved "https://registry.yarnpkg.com/registry-auth-token/-/registry-auth-token-4.2.1.tgz#6d7b4006441918972ccd5fedcd41dc322c79b250" 777 | integrity sha512-6gkSb4U6aWJB4SF2ZvLb76yCBjcvufXBqvvEx1HbmKPkutswjW1xNVRY0+daljIYRbogN7O0etYSlbiaEQyMyw== 778 | dependencies: 779 | rc "^1.2.8" 780 | 781 | registry-url@^5.0.0: 782 | version "5.1.0" 783 | resolved "https://registry.yarnpkg.com/registry-url/-/registry-url-5.1.0.tgz#e98334b50d5434b81136b44ec638d9c2009c5009" 784 | integrity sha512-8acYXXTI0AkQv6RAOjE3vOaIXZkT9wo4LOFbBKYQEEnnMNBpKqdUrI6S4NT0KPIo/WVvJ5tE/X5LF/TQUf0ekw== 785 | dependencies: 786 | rc "^1.2.8" 787 | 788 | require-directory@^2.1.1: 789 | version "2.1.1" 790 | resolved "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz#8c64ad5fd30dab1c976e2344ffe7f792a6a6df42" 791 | integrity sha1-jGStX9MNqxyXbiNE/+f3kqam30I= 792 | 793 | resolve@^1.1.6: 794 | version "1.17.0" 795 | resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.17.0.tgz#b25941b54968231cc2d1bb76a79cb7f2c0bf8444" 796 | integrity sha512-ic+7JYiV8Vi2yzQGFWOkiZD5Z9z7O2Zhm9XMaTxdJExKasieFCr+yXZ/WmXsckHiKl12ar0y6XiXDx3m4RHn1w== 797 | dependencies: 798 | path-parse "^1.0.6" 799 | 800 | responselike@^1.0.2: 801 | version "1.0.2" 802 | resolved "https://registry.yarnpkg.com/responselike/-/responselike-1.0.2.tgz#918720ef3b631c5642be068f15ade5a46f4ba1e7" 803 | integrity sha1-kYcg7ztjHFZCvgaPFa3lpG9Loec= 804 | dependencies: 805 | lowercase-keys "^1.0.0" 806 | 807 | robots-parser@^2.0.1: 808 | version "2.1.1" 809 | resolved "https://registry.yarnpkg.com/robots-parser/-/robots-parser-2.1.1.tgz#41b289cf44a6aa136dc62be0085adca954573ab0" 810 | integrity sha512-6yWEYSdhK3bAEcYY0In3wgSBK70BiQoJArzdjZKCP/35b3gKIYu5Lc0qQqsoxjoLVebVoJiKK4VWGc5+oxvWBQ== 811 | 812 | semver-diff@^3.1.1: 813 | version "3.1.1" 814 | resolved "https://registry.yarnpkg.com/semver-diff/-/semver-diff-3.1.1.tgz#05f77ce59f325e00e2706afd67bb506ddb1ca32b" 815 | integrity sha512-GX0Ix/CJcHyB8c4ykpHGIAvLyOwOobtM/8d+TQkAd81/bEjgPHrfba41Vpesr7jX/t8Uh+R3EX9eAS5be+jQYg== 816 | dependencies: 817 | semver "^6.3.0" 818 | 819 | semver@^5.3.0: 820 | version "5.7.1" 821 | resolved "https://registry.yarnpkg.com/semver/-/semver-5.7.1.tgz#a954f931aeba508d307bbf069eff0c01c96116f7" 822 | integrity sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ== 823 | 824 | semver@^6.0.0, semver@^6.2.0, semver@^6.3.0: 825 | version "6.3.0" 826 | resolved "https://registry.yarnpkg.com/semver/-/semver-6.3.0.tgz#ee0a64c8af5e8ceea67687b133761e1becbd1d3d" 827 | integrity sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw== 828 | 829 | shelljs@^0.8.4: 830 | version "0.8.4" 831 | resolved "https://registry.yarnpkg.com/shelljs/-/shelljs-0.8.4.tgz#de7684feeb767f8716b326078a8a00875890e3c2" 832 | integrity sha512-7gk3UZ9kOfPLIAbslLzyWeGiEqx9e3rxwZM0KE6EL8GlGwjym9Mrlx5/p33bWTu9YG6vcS4MBxYZDHYr5lr8BQ== 833 | dependencies: 834 | glob "^7.0.0" 835 | interpret "^1.0.0" 836 | rechoir "^0.6.2" 837 | 838 | signal-exit@^3.0.2: 839 | version "3.0.3" 840 | resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.3.tgz#a1410c2edd8f077b08b4e253c8eacfcaf057461c" 841 | integrity sha512-VUJ49FC8U1OxwZLxIbTTrDvLnf/6TDgxZcK8wxR8zs13xpx7xbG60ndBlhNrFi2EMuFRoeDoJO7wthSLq42EjA== 842 | 843 | speedline-core@^1.4.3: 844 | version "1.4.3" 845 | resolved "https://registry.yarnpkg.com/speedline-core/-/speedline-core-1.4.3.tgz#4d6e7276e2063c2d36a375cb25a523ac73475319" 846 | integrity sha512-DI7/OuAUD+GMpR6dmu8lliO2Wg5zfeh+/xsdyJZCzd8o5JgFUjCeLsBDuZjIQJdwXS3J0L/uZYrELKYqx+PXog== 847 | dependencies: 848 | "@types/node" "*" 849 | image-ssim "^0.2.0" 850 | jpeg-js "^0.4.1" 851 | 852 | stack-trace@0.0.10: 853 | version "0.0.10" 854 | resolved "https://registry.yarnpkg.com/stack-trace/-/stack-trace-0.0.10.tgz#547c70b347e8d32b4e108ea1a2a159e5fdde19c0" 855 | integrity sha1-VHxws0fo0ytOEI6hoqFZ5f3eGcA= 856 | 857 | string-width@^3.0.0: 858 | version "3.1.0" 859 | resolved "https://registry.yarnpkg.com/string-width/-/string-width-3.1.0.tgz#22767be21b62af1081574306f69ac51b62203961" 860 | integrity sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w== 861 | dependencies: 862 | emoji-regex "^7.0.1" 863 | is-fullwidth-code-point "^2.0.0" 864 | strip-ansi "^5.1.0" 865 | 866 | string-width@^4.0.0, string-width@^4.1.0, string-width@^4.2.0: 867 | version "4.2.0" 868 | resolved "https://registry.yarnpkg.com/string-width/-/string-width-4.2.0.tgz#952182c46cc7b2c313d1596e623992bd163b72b5" 869 | integrity sha512-zUz5JD+tgqtuDjMhwIg5uFVV3dtqZ9yQJlZVfq4I01/K5Paj5UHj7VyrQOJvzawSVlKpObApbfD0Ed6yJc+1eg== 870 | dependencies: 871 | emoji-regex "^8.0.0" 872 | is-fullwidth-code-point "^3.0.0" 873 | strip-ansi "^6.0.0" 874 | 875 | strip-ansi@^5.1.0: 876 | version "5.2.0" 877 | resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-5.2.0.tgz#8c9a536feb6afc962bdfa5b104a5091c1ad9c0ae" 878 | integrity sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA== 879 | dependencies: 880 | ansi-regex "^4.1.0" 881 | 882 | strip-ansi@^6.0.0: 883 | version "6.0.0" 884 | resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-6.0.0.tgz#0b1571dd7669ccd4f3e06e14ef1eed26225ae532" 885 | integrity sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w== 886 | dependencies: 887 | ansi-regex "^5.0.0" 888 | 889 | strip-json-comments@~2.0.1: 890 | version "2.0.1" 891 | resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-2.0.1.tgz#3c531942e908c2697c0ec344858c286c7ca0a60a" 892 | integrity sha1-PFMZQukIwml8DsNEhYwobHygpgo= 893 | 894 | supports-color@^7.1.0: 895 | version "7.2.0" 896 | resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-7.2.0.tgz#1b7dcdcb32b8138801b3e478ba6a51caa89648da" 897 | integrity sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw== 898 | dependencies: 899 | has-flag "^4.0.0" 900 | 901 | term-size@^2.1.0: 902 | version "2.2.1" 903 | resolved "https://registry.yarnpkg.com/term-size/-/term-size-2.2.1.tgz#2a6a54840432c2fb6320fea0f415531e90189f54" 904 | integrity sha512-wK0Ri4fOGjv/XPy8SBHZChl8CM7uMc5VML7SqiQ0zG7+J5Vr+RMQDoHa2CNT6KHUnTGIXH34UDMkPzAUyapBZg== 905 | 906 | third-party-web@^0.12.4: 907 | version "0.12.5" 908 | resolved "https://registry.yarnpkg.com/third-party-web/-/third-party-web-0.12.5.tgz#df336053ddcbce68aa2da3787641233739ad5a64" 909 | integrity sha512-A8YS1bpOzm9os0w7wH/BbN5WZgzyf0zbrrWHckX57v+EkCaM7jZPoRpzgqrakh2e7IWP1KwAnMtlcGTATYZw8A== 910 | 911 | timed-out@4.0.1: 912 | version "4.0.1" 913 | resolved "https://registry.yarnpkg.com/timed-out/-/timed-out-4.0.1.tgz#f32eacac5a175bea25d7fab565ab3ed8741ef56f" 914 | integrity sha1-8y6srFoXW+ol1/q1Zas+2HQe9W8= 915 | 916 | to-readable-stream@^1.0.0: 917 | version "1.0.0" 918 | resolved "https://registry.yarnpkg.com/to-readable-stream/-/to-readable-stream-1.0.0.tgz#ce0aa0c2f3df6adf852efb404a783e77c0475771" 919 | integrity sha512-Iq25XBt6zD5npPhlLVXGFN3/gyR2/qODcKNNyTMd4vbm39HUaOiAM4PMq0eMVC/Tkxz+Zjdsc55g9yyz+Yq00Q== 920 | 921 | type-fest@^0.8.1: 922 | version "0.8.1" 923 | resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.8.1.tgz#09e249ebde851d3b1e48d27c105444667f17b83d" 924 | integrity sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA== 925 | 926 | typedarray-to-buffer@^3.1.5: 927 | version "3.1.5" 928 | resolved "https://registry.yarnpkg.com/typedarray-to-buffer/-/typedarray-to-buffer-3.1.5.tgz#a97ee7a9ff42691b9f783ff1bc5112fe3fca9080" 929 | integrity sha512-zdu8XMNEDepKKR+XYOXAVPtWui0ly0NtohUscw+UmaHiAWT8hrV1rr//H6V+0DvJ3OQ19S979M0laLfX8rm82Q== 930 | dependencies: 931 | is-typedarray "^1.0.0" 932 | 933 | unique-string@^2.0.0: 934 | version "2.0.0" 935 | resolved "https://registry.yarnpkg.com/unique-string/-/unique-string-2.0.0.tgz#39c6451f81afb2749de2b233e3f7c5e8843bd89d" 936 | integrity sha512-uNaeirEPvpZWSgzwsPGtU2zVSTrn/8L5q/IexZmH0eH6SA73CmAA5U4GwORTxQAZs95TAXLNqeLoPPNO5gZfWg== 937 | dependencies: 938 | crypto-random-string "^2.0.0" 939 | 940 | update-notifier@^4.1.0: 941 | version "4.1.3" 942 | resolved "https://registry.yarnpkg.com/update-notifier/-/update-notifier-4.1.3.tgz#be86ee13e8ce48fb50043ff72057b5bd598e1ea3" 943 | integrity sha512-Yld6Z0RyCYGB6ckIjffGOSOmHXj1gMeE7aROz4MG+XMkmixBX4jUngrGXNYz7wPKBmtoD4MnBa2Anu7RSKht/A== 944 | dependencies: 945 | boxen "^4.2.0" 946 | chalk "^3.0.0" 947 | configstore "^5.0.1" 948 | has-yarn "^2.1.0" 949 | import-lazy "^2.1.0" 950 | is-ci "^2.0.0" 951 | is-installed-globally "^0.3.1" 952 | is-npm "^4.0.0" 953 | is-yarn-global "^0.3.0" 954 | latest-version "^5.0.0" 955 | pupa "^2.0.1" 956 | semver-diff "^3.1.1" 957 | xdg-basedir "^4.0.0" 958 | 959 | url-parse-lax@^3.0.0: 960 | version "3.0.0" 961 | resolved "https://registry.yarnpkg.com/url-parse-lax/-/url-parse-lax-3.0.0.tgz#16b5cafc07dbe3676c1b1999177823d6503acb0c" 962 | integrity sha1-FrXK/Afb42dsGxmZF3gj1lA6yww= 963 | dependencies: 964 | prepend-http "^2.0.0" 965 | 966 | uuid@3.3.2: 967 | version "3.3.2" 968 | resolved "https://registry.yarnpkg.com/uuid/-/uuid-3.3.2.tgz#1b4af4955eb3077c501c23872fc6513811587131" 969 | integrity sha512-yXJmeNaw3DnnKAOKJE51sL/ZaYfWJRl1pK9dr19YFCu0ObS231AB1/LbqTKRAQ5kw8A90rA6fr4riOUpTZvQZA== 970 | 971 | widest-line@^3.1.0: 972 | version "3.1.0" 973 | resolved "https://registry.yarnpkg.com/widest-line/-/widest-line-3.1.0.tgz#8292333bbf66cb45ff0de1603b136b7ae1496eca" 974 | integrity sha512-NsmoXalsWVDMGupxZ5R08ka9flZjjiLvHVAWYOKtiKM8ujtZWr9cRffak+uSE48+Ob8ObalXpwyeUiyDD6QFgg== 975 | dependencies: 976 | string-width "^4.0.0" 977 | 978 | wrap-ansi@^7.0.0: 979 | version "7.0.0" 980 | resolved "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz#67e145cff510a6a6984bdf1152911d69d2eb9e43" 981 | integrity sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q== 982 | dependencies: 983 | ansi-styles "^4.0.0" 984 | string-width "^4.1.0" 985 | strip-ansi "^6.0.0" 986 | 987 | wrappy@1: 988 | version "1.0.2" 989 | resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f" 990 | integrity sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8= 991 | 992 | write-file-atomic@^3.0.0: 993 | version "3.0.3" 994 | resolved "https://registry.yarnpkg.com/write-file-atomic/-/write-file-atomic-3.0.3.tgz#56bd5c5a5c70481cd19c571bd39ab965a5de56e8" 995 | integrity sha512-AvHcyZ5JnSfq3ioSyjrBkH9yW4m7Ayk8/9My/DD9onKeu/94fwrMocemO2QAJFAlnnDN+ZDS+ZjAR5ua1/PV/Q== 996 | dependencies: 997 | imurmurhash "^0.1.4" 998 | is-typedarray "^1.0.0" 999 | signal-exit "^3.0.2" 1000 | typedarray-to-buffer "^3.1.5" 1001 | 1002 | ws@^7.0.0: 1003 | version "7.5.3" 1004 | resolved "https://registry.yarnpkg.com/ws/-/ws-7.5.3.tgz#160835b63c7d97bfab418fc1b8a9fced2ac01a74" 1005 | integrity sha512-kQ/dHIzuLrS6Je9+uv81ueZomEwH0qVYstcAQ4/Z93K8zeko9gtAbttJWzoC5ukqXY1PpoouV3+VSOqEAFt5wg== 1006 | 1007 | xdg-basedir@^4.0.0: 1008 | version "4.0.0" 1009 | resolved "https://registry.yarnpkg.com/xdg-basedir/-/xdg-basedir-4.0.0.tgz#4bc8d9984403696225ef83a1573cbbcb4e79db13" 1010 | integrity sha512-PSNhEJDejZYV7h50BohL09Er9VaIefr2LMAf3OEmpCkjOi34eYyQYAXUTjEQtZJTKcF0E2UKTh+osDLsgNim9Q== 1011 | 1012 | y18n@^5.0.5: 1013 | version "5.0.5" 1014 | resolved "https://registry.npmjs.org/y18n/-/y18n-5.0.5.tgz#8769ec08d03b1ea2df2500acef561743bbb9ab18" 1015 | integrity sha512-hsRUr4FFrvhhRH12wOdfs38Gy7k2FFzB9qgN9v3aLykRq0dRcdcpz5C9FxdS2NuhOrI/628b/KSTJ3rwHysYSg== 1016 | 1017 | yargs-parser@^20.2.2, yargs-parser@^20.2.4: 1018 | version "20.2.4" 1019 | resolved "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.4.tgz#b42890f14566796f85ae8e3a25290d205f154a54" 1020 | integrity sha512-WOkpgNhPTlE73h4VFAFsOnomJVaovO8VqLDzy5saChRBFQFBoMYirowyW+Q9HB4HFF4Z7VZTiG3iSzJJA29yRA== 1021 | 1022 | yargs@^16.1.1: 1023 | version "16.2.0" 1024 | resolved "https://registry.npmjs.org/yargs/-/yargs-16.2.0.tgz#1c82bf0f6b6a66eafce7ef30e376f49a12477f66" 1025 | integrity sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw== 1026 | dependencies: 1027 | cliui "^7.0.2" 1028 | escalade "^3.1.1" 1029 | get-caller-file "^2.0.5" 1030 | require-directory "^2.1.1" 1031 | string-width "^4.2.0" 1032 | y18n "^5.0.5" 1033 | yargs-parser "^20.2.2" 1034 | --------------------------------------------------------------------------------