├── .eslintrc ├── .gitignore ├── .lighthouserc ├── .node-version ├── .prettierignore ├── .prettierrc ├── LICENSE ├── README.md ├── bin └── index.js ├── index.js ├── package.json └── yarn.lock /.eslintrc: -------------------------------------------------------------------------------- 1 | { 2 | "env": { 3 | "node": true, 4 | "es6": true 5 | }, 6 | "parserOptions": { 7 | "ecmaVersion": 2017, 8 | "sourceType": "module" 9 | } 10 | } 11 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | node_modules 2 | -------------------------------------------------------------------------------- /.lighthouserc: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "url": "https://google.com/", 4 | "thresholds": { 5 | "performance": 90.25, 6 | "seo": 90.25, 7 | "progressive": 90.25, 8 | "a11y": 90.25, 9 | "bestPractice": 90.25 10 | } 11 | } 12 | ] 13 | -------------------------------------------------------------------------------- /.node-version: -------------------------------------------------------------------------------- 1 | 9.5.0 2 | -------------------------------------------------------------------------------- /.prettierignore: -------------------------------------------------------------------------------- 1 | bin 2 | -------------------------------------------------------------------------------- /.prettierrc: -------------------------------------------------------------------------------- 1 | { 2 | "singleQuote": true, 3 | "semi": false 4 | } 5 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | Copyright 2018 Luke Jones 2 | 3 | Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: 4 | 5 | The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. 6 | 7 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. 8 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # lighthouse-thresholds 2 | 3 | This package runs [Google Lighthouse](https://github.com/GoogleChrome/lighthouse) and compares the scores against predetermined thresholds defined an a `.lighthouserc` config file. 4 | 5 | ## Usage 6 | 7 | Create a `.lighthouserc` file in your project root (see the example file [here](#example-lighthouserc-file)). 8 | 9 | Run `lighthouse-thresholds` to run Google Lighthouse against your defined URLs and either pass or fail them when comparing with the set thresholds. 10 | 11 | Note that there will need to be a locally installed version of chrome (or chromium), for this package to work. 12 | 13 | ## Config options 14 | 15 | | Param | Type | Meaning | 16 | | ------------------------- | -------- | ---------------------------------------------------- | 17 | | `url` | _String_ | A full url to run Google Lighthouse against | 18 | | `thresholds` | _Object_ | An object containing the predetermined thresholds | 19 | | `thresholds.performance` | _Number_ | A threshold for the page's performance score | 20 | | `thresholds.seo` | _Number_ | A threshold for the page's performance score | 21 | | `thresholds.progressive` | _Number_ | A threshold for the page's progressive/offline score | 22 | | `thresholds.a11y` | _Number_ | A threshold for the page's accessibility score | 23 | | `thresholds.bestPractice` | _Number_ | A threshold for the page's best practice score | 24 | 25 | ## Example `.lighthouserc` file 26 | 27 | ```json 28 | [ 29 | { 30 | "url": "https://google.com/", 31 | "thresholds": { 32 | "performance": 90.25, 33 | "seo": 90.25, 34 | "progressive": 90.25, 35 | "a11y": 90.25, 36 | "bestPractice": 90.25 37 | } 38 | } 39 | ] 40 | ``` 41 | 42 | Note that this file can also be `.lighthouserc.js`, in which case it must be in the form: 43 | 44 | ```js 45 | module.exports = { ...config } 46 | ``` 47 | -------------------------------------------------------------------------------- /bin/index.js: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env node 2 | 'use strict'; 3 | 4 | function _interopDefault (ex) { return (ex && (typeof ex === 'object') && 'default' in ex) ? ex['default'] : ex; } 5 | 6 | var findConfig = _interopDefault(require('find-config')); 7 | var lodash = require('lodash'); 8 | var chalk = _interopDefault(require('chalk')); 9 | var lighthouse = _interopDefault(require('lighthouse')); 10 | var chromeLauncher = require('chrome-launcher'); 11 | 12 | const log = str => console.log(chalk.green(str)); 13 | 14 | const err = error => { 15 | if (error.length > 0) { 16 | error.forEach(e => console.log(chalk.bold.red(e))); 17 | } else { 18 | console.log(chalk.bold.red(error)); 19 | } 20 | 21 | process.exit(1); 22 | }; 23 | 24 | const launchChromeAndRunLighthouse = async url => { 25 | const chromeFlags = ['--headless', '--no-sandbox', '--disable-gpu']; 26 | const chrome = await chromeLauncher.launch({ 27 | chromeFlags, 28 | connectionPollInterval: 10000 29 | }); 30 | const results = await lighthouse( 31 | url, 32 | { chromeFlags, port: chrome.port }, 33 | null 34 | ); 35 | 36 | delete results.artifacts; 37 | await chrome.kill(); 38 | 39 | return results 40 | }; 41 | 42 | const parseReport = async (scores, thresholds, url) => { 43 | const errors = []; 44 | const { 45 | performance: performanceScore, 46 | progressiveWebApp: progressiveScore, 47 | accessibility: a11yScore, 48 | bestPractices: bestPracticeScore, 49 | seo: seoScore 50 | } = scores; 51 | const { 52 | performance = 0, 53 | progressive = 0, 54 | a11y = 0, 55 | bestPractice = 0, 56 | seo = 0 57 | } = thresholds; 58 | 59 | if (performance > performanceScore) { 60 | errors.push(`${url} - Performance: ${performanceScore} < ${performance}`); 61 | } 62 | 63 | if (progressive > progressiveScore) { 64 | errors.push( 65 | `${url} - Progressive Web App: ${progressiveScore} < ${progressive}` 66 | ); 67 | } 68 | 69 | if (a11y > a11yScore) { 70 | errors.push(`${url} - a11y: ${a11yScore} < ${a11y}`); 71 | } 72 | 73 | if (bestPractice > bestPracticeScore) { 74 | errors.push( 75 | `${url} - Best Practices: ${bestPracticeScore} < ${bestPractice}` 76 | ); 77 | } 78 | 79 | if (seo > seoScore) { 80 | errors.push(`${url} - SEO: ${seoScore} < ${seo}`); 81 | } 82 | 83 | return errors 84 | } 85 | ;(async () => { 86 | let errors = []; 87 | const config = 88 | JSON.parse(findConfig.read('.lighthouserc')) || 89 | findConfig.require('.lighthouserc.js'); 90 | 91 | if (!config) { 92 | err('Could not find .lighthouserc or .lighthouserc.js config file'); 93 | } 94 | 95 | try { 96 | await Promise.all( 97 | config.map( 98 | ({ url, thresholds }) => 99 | new Promise((resolve, reject) => 100 | launchChromeAndRunLighthouse(url) 101 | .then(async ({ reportCategories }) => { 102 | const normalizeKeys = lodash.keyBy(reportCategories, ({ name }) => 103 | lodash.camelCase(name) 104 | ); 105 | const scores = lodash.mapValues(normalizeKeys, ({ score }) => 106 | parseFloat(score.toFixed(2)) 107 | ); 108 | 109 | const issues = await parseReport(scores, thresholds, url); 110 | errors = errors.concat(issues); 111 | resolve(); 112 | }) 113 | .catch(e => { 114 | reject(e); 115 | }) 116 | ) 117 | ) 118 | ); 119 | } catch (e) { 120 | throw e 121 | } 122 | 123 | if (errors.length) err(errors); 124 | 125 | log('Passed thresholds'); 126 | })(); 127 | -------------------------------------------------------------------------------- /index.js: -------------------------------------------------------------------------------- 1 | import findConfig from 'find-config' 2 | import { mapValues, keyBy, camelCase } from 'lodash' 3 | import chalk from 'chalk' 4 | import lighthouse from 'lighthouse' 5 | import * as chromeLauncher from 'chrome-launcher' 6 | 7 | const log = str => console.log(chalk.green(str)) 8 | 9 | const err = error => { 10 | if (error.length > 0) { 11 | error.forEach(e => console.log(chalk.bold.red(e))) 12 | } else { 13 | console.log(chalk.bold.red(error)) 14 | } 15 | 16 | process.exit(1) 17 | } 18 | 19 | const launchChromeAndRunLighthouse = async url => { 20 | try { 21 | log(`fetching ${url}`) 22 | const chromeFlags = ['--headless', '--no-sandbox', '--disable-gpu'] 23 | const chrome = await chromeLauncher.launch({ 24 | chromeFlags, 25 | connectionPollInterval: 10000 26 | }) 27 | log('running lighthouse') 28 | const results = await lighthouse( 29 | url, 30 | { chromeFlags, port: chrome.port }, 31 | null 32 | ) 33 | 34 | delete results.artifacts 35 | await chrome.kill() 36 | 37 | return results 38 | } catch (e) { 39 | throw e 40 | } 41 | } 42 | 43 | const parseReport = async (scores, thresholds, url) => { 44 | const errors = [] 45 | const { 46 | performance: performanceScore, 47 | progressiveWebApp: progressiveScore, 48 | accessibility: a11yScore, 49 | bestPractices: bestPracticeScore, 50 | seo: seoScore 51 | } = scores 52 | const { 53 | performance = 0, 54 | progressive = 0, 55 | a11y = 0, 56 | bestPractice = 0, 57 | seo = 0 58 | } = thresholds 59 | 60 | if (performance > performanceScore) { 61 | errors.push(`${url} - Performance: ${performanceScore} < ${performance}`) 62 | } 63 | 64 | if (progressive > progressiveScore) { 65 | errors.push( 66 | `${url} - Progressive Web App: ${progressiveScore} < ${progressive}` 67 | ) 68 | } 69 | 70 | if (a11y > a11yScore) { 71 | errors.push(`${url} - a11y: ${a11yScore} < ${a11y}`) 72 | } 73 | 74 | if (bestPractice > bestPracticeScore) { 75 | errors.push( 76 | `${url} - Best Practices: ${bestPracticeScore} < ${bestPractice}` 77 | ) 78 | } 79 | 80 | if (seo > seoScore) { 81 | errors.push(`${url} - SEO: ${seoScore} < ${seo}`) 82 | } 83 | 84 | return errors 85 | } 86 | ;(async () => { 87 | let errors = [] 88 | const config = 89 | JSON.parse(findConfig.read('.lighthouserc')) || 90 | findConfig.require('.lighthouserc.js') 91 | 92 | if (!config) { 93 | err('Could not find .lighthouserc or .lighthouserc.js config file') 94 | } 95 | 96 | try { 97 | await Promise.all( 98 | config.map( 99 | ({ url, thresholds }) => 100 | new Promise((resolve, reject) => 101 | launchChromeAndRunLighthouse(url) 102 | .then(async ({ reportCategories }) => { 103 | const normalizeKeys = keyBy(reportCategories, ({ name }) => 104 | camelCase(name) 105 | ) 106 | const scores = mapValues(normalizeKeys, ({ score }) => 107 | parseFloat(score.toFixed(2)) 108 | ) 109 | 110 | log('parsing results') 111 | const issues = await parseReport(scores, thresholds, url) 112 | errors = errors.concat(issues) 113 | resolve() 114 | }) 115 | .catch(e => { 116 | reject(e) 117 | }) 118 | ) 119 | ) 120 | ) 121 | } catch (e) { 122 | throw e 123 | } 124 | 125 | if (errors.length) err(errors) 126 | 127 | log('Passed thresholds') 128 | })() 129 | -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "lighthouse-thresholds", 3 | "version": "1.0.6-alpha", 4 | "description": "A tool for setting and comparing lighthouse budgets", 5 | "main": "index.js", 6 | "license": "MIT", 7 | "repository": "https://github.com/luke-j/lighthouse-thresholds", 8 | "author": { 9 | "name": "Luke Jones", 10 | "email": "luke@lukejones.co", 11 | "url": "lukejones.co" 12 | }, 13 | "bin": { 14 | "lighthouse-thresholds": "bin/index.js" 15 | }, 16 | "scripts": { 17 | "precommit": "npm run lint && npm run beautify", 18 | "lint": "eslint src", 19 | "beautify": "pretty-quick --staged", 20 | "build": 21 | "rollup index.js --banner '#!/usr/bin/env node' --output.format cjs --output.file bin/index.js && chmod +x bin/index.js" 22 | }, 23 | "engines": { 24 | "node": ">= 8" 25 | }, 26 | "devDependencies": { 27 | "eslint": "^4.19.1", 28 | "husky": "^0.14.3", 29 | "prettier": "^1.12.1", 30 | "pretty-quick": "^1.4.1", 31 | "rollup": "^0.58.2" 32 | }, 33 | "dependencies": { 34 | "chalk": "^2.4.1", 35 | "chrome-launcher": "^0.10.2", 36 | "find-config": "^1.0.0", 37 | "lighthouse": "^2.9.4", 38 | "lodash": "^4.17.10" 39 | } 40 | } 41 | -------------------------------------------------------------------------------- /yarn.lock: -------------------------------------------------------------------------------- 1 | # THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY. 2 | # yarn lockfile v1 3 | 4 | 5 | "@types/core-js@^0.9.41": 6 | version "0.9.46" 7 | resolved "https://registry.yarnpkg.com/@types/core-js/-/core-js-0.9.46.tgz#ea701ee34cbb6dfe6d100f1530319547c93c8d79" 8 | 9 | "@types/estree@0.0.38": 10 | version "0.0.38" 11 | resolved "https://registry.yarnpkg.com/@types/estree/-/estree-0.0.38.tgz#c1be40aa933723c608820a99a373a16d215a1ca2" 12 | 13 | "@types/mkdirp@^0.3.29": 14 | version "0.3.29" 15 | resolved "https://registry.yarnpkg.com/@types/mkdirp/-/mkdirp-0.3.29.tgz#7f2ad7ec55f914482fc9b1ec4bb1ae6028d46066" 16 | 17 | "@types/node@*": 18 | version "9.6.6" 19 | resolved "https://registry.yarnpkg.com/@types/node/-/node-9.6.6.tgz#439b91f9caf3983cad2eef1e11f6bedcbf9431d2" 20 | 21 | "@types/node@^9.3.0": 22 | version "9.6.14" 23 | resolved "https://registry.yarnpkg.com/@types/node/-/node-9.6.14.tgz#79b5167f822d5fb0fb2b5c92ca150391ae0f2542" 24 | 25 | "@types/rimraf@^0.0.28": 26 | version "0.0.28" 27 | resolved "https://registry.yarnpkg.com/@types/rimraf/-/rimraf-0.0.28.tgz#5562519bc7963caca8abf7f128cae3b594d41d06" 28 | 29 | acorn-jsx@^3.0.0: 30 | version "3.0.1" 31 | resolved "https://registry.yarnpkg.com/acorn-jsx/-/acorn-jsx-3.0.1.tgz#afdf9488fb1ecefc8348f6fb22f464e32a58b36b" 32 | dependencies: 33 | acorn "^3.0.4" 34 | 35 | acorn@^3.0.4: 36 | version "3.3.0" 37 | resolved "https://registry.yarnpkg.com/acorn/-/acorn-3.3.0.tgz#45e37fb39e8da3f25baee3ff5369e2bb5f22017a" 38 | 39 | acorn@^5.5.0: 40 | version "5.5.3" 41 | resolved "https://registry.yarnpkg.com/acorn/-/acorn-5.5.3.tgz#f473dd47e0277a08e28e9bec5aeeb04751f0b8c9" 42 | 43 | ajv-keywords@^2.1.0: 44 | version "2.1.1" 45 | resolved "https://registry.yarnpkg.com/ajv-keywords/-/ajv-keywords-2.1.1.tgz#617997fc5f60576894c435f940d819e135b80762" 46 | 47 | ajv@^5.2.3, ajv@^5.3.0: 48 | version "5.5.2" 49 | resolved "https://registry.yarnpkg.com/ajv/-/ajv-5.5.2.tgz#73b5eeca3fab653e3d3f9422b341ad42205dc965" 50 | dependencies: 51 | co "^4.6.0" 52 | fast-deep-equal "^1.0.0" 53 | fast-json-stable-stringify "^2.0.0" 54 | json-schema-traverse "^0.3.0" 55 | 56 | ansi-align@^2.0.0: 57 | version "2.0.0" 58 | resolved "https://registry.yarnpkg.com/ansi-align/-/ansi-align-2.0.0.tgz#c36aeccba563b89ceb556f3690f0b1d9e3547f7f" 59 | dependencies: 60 | string-width "^2.0.0" 61 | 62 | ansi-escapes@^3.0.0: 63 | version "3.1.0" 64 | resolved "https://registry.yarnpkg.com/ansi-escapes/-/ansi-escapes-3.1.0.tgz#f73207bb81207d75fd6c83f125af26eea378ca30" 65 | 66 | ansi-regex@^2.0.0: 67 | version "2.1.1" 68 | resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-2.1.1.tgz#c3b33ab5ee360d86e0e628f0468ae7ef27d654df" 69 | 70 | ansi-regex@^3.0.0: 71 | version "3.0.0" 72 | resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-3.0.0.tgz#ed0317c322064f79466c02966bddb605ab37d998" 73 | 74 | ansi-styles@^2.2.1: 75 | version "2.2.1" 76 | resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-2.2.1.tgz#b432dd3358b634cf75e1e4664368240533c1ddbe" 77 | 78 | ansi-styles@^3.2.1: 79 | version "3.2.1" 80 | resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-3.2.1.tgz#41fbb20243e50b12be0f04b8dedbf07520ce841d" 81 | dependencies: 82 | color-convert "^1.9.0" 83 | 84 | argparse@^1.0.7: 85 | version "1.0.10" 86 | resolved "https://registry.yarnpkg.com/argparse/-/argparse-1.0.10.tgz#bcd6791ea5ae09725e17e5ad988134cd40b3d911" 87 | dependencies: 88 | sprintf-js "~1.0.2" 89 | 90 | array-find-index@^1.0.1: 91 | version "1.0.2" 92 | resolved "https://registry.yarnpkg.com/array-find-index/-/array-find-index-1.0.2.tgz#df010aa1287e164bbda6f9723b0a96a1ec4187a1" 93 | 94 | array-union@^1.0.1: 95 | version "1.0.2" 96 | resolved "https://registry.yarnpkg.com/array-union/-/array-union-1.0.2.tgz#9a34410e4f4e3da23dea375be5be70f24778ec39" 97 | dependencies: 98 | array-uniq "^1.0.1" 99 | 100 | array-uniq@^1.0.1: 101 | version "1.0.3" 102 | resolved "https://registry.yarnpkg.com/array-uniq/-/array-uniq-1.0.3.tgz#af6ac877a25cc7f74e058894753858dfdb24fdb6" 103 | 104 | arrify@^1.0.0: 105 | version "1.0.1" 106 | resolved "https://registry.yarnpkg.com/arrify/-/arrify-1.0.1.tgz#898508da2226f380df904728456849c1501a4b0d" 107 | 108 | async-limiter@~1.0.0: 109 | version "1.0.0" 110 | resolved "https://registry.yarnpkg.com/async-limiter/-/async-limiter-1.0.0.tgz#78faed8c3d074ab81f22b4e985d79e8738f720f8" 111 | 112 | axe-core@3.0.0-beta.2: 113 | version "3.0.0-beta.2" 114 | resolved "https://registry.yarnpkg.com/axe-core/-/axe-core-3.0.0-beta.2.tgz#82a13d371268034352bba2bcb263c5625b3e4a09" 115 | 116 | babar@0.0.3: 117 | version "0.0.3" 118 | resolved "https://registry.yarnpkg.com/babar/-/babar-0.0.3.tgz#2f394d4a5918f7e1ae9e5408e9a96f3f935ee1e2" 119 | dependencies: 120 | colors "~0.6.2" 121 | 122 | babel-code-frame@^6.22.0: 123 | version "6.26.0" 124 | resolved "https://registry.yarnpkg.com/babel-code-frame/-/babel-code-frame-6.26.0.tgz#63fd43f7dc1e3bb7ce35947db8fe369a3f58c74b" 125 | dependencies: 126 | chalk "^1.1.3" 127 | esutils "^2.0.2" 128 | js-tokens "^3.0.2" 129 | 130 | balanced-match@^1.0.0: 131 | version "1.0.0" 132 | resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.0.tgz#89b4d199ab2bee49de164ea02b89ce462d71b767" 133 | 134 | boxen@^1.2.1: 135 | version "1.3.0" 136 | resolved "https://registry.yarnpkg.com/boxen/-/boxen-1.3.0.tgz#55c6c39a8ba58d9c61ad22cd877532deb665a20b" 137 | dependencies: 138 | ansi-align "^2.0.0" 139 | camelcase "^4.0.0" 140 | chalk "^2.0.1" 141 | cli-boxes "^1.0.0" 142 | string-width "^2.0.0" 143 | term-size "^1.2.0" 144 | widest-line "^2.0.0" 145 | 146 | brace-expansion@^1.1.7: 147 | version "1.1.11" 148 | resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.11.tgz#3c7fcbf529d87226f3d2f52b966ff5271eb441dd" 149 | dependencies: 150 | balanced-match "^1.0.0" 151 | concat-map "0.0.1" 152 | 153 | buffer-from@^1.0.0: 154 | version "1.0.0" 155 | resolved "https://registry.yarnpkg.com/buffer-from/-/buffer-from-1.0.0.tgz#4cb8832d23612589b0406e9e2956c17f06fdf531" 156 | 157 | builtin-modules@^1.0.0: 158 | version "1.1.1" 159 | resolved "https://registry.yarnpkg.com/builtin-modules/-/builtin-modules-1.1.1.tgz#270f076c5a72c02f5b65a47df94c5fe3a278892f" 160 | 161 | caller-path@^0.1.0: 162 | version "0.1.0" 163 | resolved "https://registry.yarnpkg.com/caller-path/-/caller-path-0.1.0.tgz#94085ef63581ecd3daa92444a8fe94e82577751f" 164 | dependencies: 165 | callsites "^0.2.0" 166 | 167 | callsites@^0.2.0: 168 | version "0.2.0" 169 | resolved "https://registry.yarnpkg.com/callsites/-/callsites-0.2.0.tgz#afab96262910a7f33c19a5775825c69f34e350ca" 170 | 171 | camelcase-keys@^2.0.0: 172 | version "2.1.0" 173 | resolved "https://registry.yarnpkg.com/camelcase-keys/-/camelcase-keys-2.1.0.tgz#308beeaffdf28119051efa1d932213c91b8f92e7" 174 | dependencies: 175 | camelcase "^2.0.0" 176 | map-obj "^1.0.0" 177 | 178 | camelcase@^2.0.0, camelcase@^2.0.1: 179 | version "2.1.1" 180 | resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-2.1.1.tgz#7c1d16d679a1bbe59ca02cacecfb011e201f5a1f" 181 | 182 | camelcase@^4.0.0, camelcase@^4.1.0: 183 | version "4.1.0" 184 | resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-4.1.0.tgz#d545635be1e33c542649c69173e5de6acfae34dd" 185 | 186 | capture-stack-trace@^1.0.0: 187 | version "1.0.0" 188 | resolved "https://registry.yarnpkg.com/capture-stack-trace/-/capture-stack-trace-1.0.0.tgz#4a6fa07399c26bba47f0b2496b4d0fb408c5550d" 189 | 190 | chalk@^1.1.3: 191 | version "1.1.3" 192 | resolved "https://registry.yarnpkg.com/chalk/-/chalk-1.1.3.tgz#a8115c55e4a702fe4d150abd3872822a7e09fc98" 193 | dependencies: 194 | ansi-styles "^2.2.1" 195 | escape-string-regexp "^1.0.2" 196 | has-ansi "^2.0.0" 197 | strip-ansi "^3.0.0" 198 | supports-color "^2.0.0" 199 | 200 | chalk@^2.0.0, chalk@^2.1.0, chalk@^2.3.0: 201 | version "2.4.0" 202 | resolved "https://registry.yarnpkg.com/chalk/-/chalk-2.4.0.tgz#a060a297a6b57e15b61ca63ce84995daa0fe6e52" 203 | dependencies: 204 | ansi-styles "^3.2.1" 205 | escape-string-regexp "^1.0.5" 206 | supports-color "^5.3.0" 207 | 208 | chalk@^2.0.1, chalk@^2.4.1: 209 | version "2.4.1" 210 | resolved "https://registry.yarnpkg.com/chalk/-/chalk-2.4.1.tgz#18c49ab16a037b6eb0152cc83e3471338215b66e" 211 | dependencies: 212 | ansi-styles "^3.2.1" 213 | escape-string-regexp "^1.0.5" 214 | supports-color "^5.3.0" 215 | 216 | chardet@^0.4.0: 217 | version "0.4.2" 218 | resolved "https://registry.yarnpkg.com/chardet/-/chardet-0.4.2.tgz#b5473b33dc97c424e5d98dc87d55d4d8a29c8bf2" 219 | 220 | charenc@~0.0.1: 221 | version "0.0.2" 222 | resolved "https://registry.yarnpkg.com/charenc/-/charenc-0.0.2.tgz#c0a1d2f3a7092e03774bfa83f14c0fc5790a8667" 223 | 224 | chrome-devtools-frontend@1.0.401423: 225 | version "1.0.401423" 226 | resolved "https://registry.yarnpkg.com/chrome-devtools-frontend/-/chrome-devtools-frontend-1.0.401423.tgz#32a89b8d04e378a494be3c8d63271703be1c04ea" 227 | 228 | chrome-devtools-frontend@1.0.422034: 229 | version "1.0.422034" 230 | resolved "https://registry.yarnpkg.com/chrome-devtools-frontend/-/chrome-devtools-frontend-1.0.422034.tgz#071c8ce14466b7653032fcd1ad1a4a68d5e3cbd9" 231 | 232 | chrome-launcher@^0.10.2: 233 | version "0.10.2" 234 | resolved "https://registry.yarnpkg.com/chrome-launcher/-/chrome-launcher-0.10.2.tgz#f7d860ddec627b6f01015736b5ae1e33b3d165b1" 235 | dependencies: 236 | "@types/core-js" "^0.9.41" 237 | "@types/mkdirp" "^0.3.29" 238 | "@types/node" "^9.3.0" 239 | "@types/rimraf" "^0.0.28" 240 | is-wsl "^1.1.0" 241 | lighthouse-logger "^1.0.0" 242 | mkdirp "0.5.1" 243 | rimraf "^2.6.1" 244 | 245 | ci-info@^1.0.0: 246 | version "1.1.3" 247 | resolved "https://registry.yarnpkg.com/ci-info/-/ci-info-1.1.3.tgz#710193264bb05c77b8c90d02f5aaf22216a667b2" 248 | 249 | circular-json@^0.3.1: 250 | version "0.3.3" 251 | resolved "https://registry.yarnpkg.com/circular-json/-/circular-json-0.3.3.tgz#815c99ea84f6809529d2f45791bdf82711352d66" 252 | 253 | cli-boxes@^1.0.0: 254 | version "1.0.0" 255 | resolved "https://registry.yarnpkg.com/cli-boxes/-/cli-boxes-1.0.0.tgz#4fa917c3e59c94a004cd61f8ee509da651687143" 256 | 257 | cli-cursor@^2.1.0: 258 | version "2.1.0" 259 | resolved "https://registry.yarnpkg.com/cli-cursor/-/cli-cursor-2.1.0.tgz#b35dac376479facc3e94747d41d0d0f5238ffcb5" 260 | dependencies: 261 | restore-cursor "^2.0.0" 262 | 263 | cli-width@^2.0.0: 264 | version "2.2.0" 265 | resolved "https://registry.yarnpkg.com/cli-width/-/cli-width-2.2.0.tgz#ff19ede8a9a5e579324147b0c11f0fbcbabed639" 266 | 267 | cliui@^3.0.3: 268 | version "3.2.0" 269 | resolved "https://registry.yarnpkg.com/cliui/-/cliui-3.2.0.tgz#120601537a916d29940f934da3b48d585a39213d" 270 | dependencies: 271 | string-width "^1.0.1" 272 | strip-ansi "^3.0.1" 273 | wrap-ansi "^2.0.0" 274 | 275 | co@^4.6.0: 276 | version "4.6.0" 277 | resolved "https://registry.yarnpkg.com/co/-/co-4.6.0.tgz#6ea6bdf3d853ae54ccb8e47bfa0bf3f9031fb184" 278 | 279 | code-point-at@^1.0.0: 280 | version "1.1.0" 281 | resolved "https://registry.yarnpkg.com/code-point-at/-/code-point-at-1.1.0.tgz#0d070b4d043a5bea33a2f1a40e2edb3d9a4ccf77" 282 | 283 | color-convert@^1.9.0: 284 | version "1.9.1" 285 | resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-1.9.1.tgz#c1261107aeb2f294ebffec9ed9ecad529a6097ed" 286 | dependencies: 287 | color-name "^1.1.1" 288 | 289 | color-name@^1.1.1: 290 | version "1.1.3" 291 | resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.3.tgz#a7d0558bd89c42f795dd42328f740831ca53bc25" 292 | 293 | colors@~0.6.2: 294 | version "0.6.2" 295 | resolved "https://registry.yarnpkg.com/colors/-/colors-0.6.2.tgz#2423fe6678ac0c5dae8852e5d0e5be08c997abcc" 296 | 297 | concat-map@0.0.1: 298 | version "0.0.1" 299 | resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b" 300 | 301 | concat-stream@^1.6.0: 302 | version "1.6.2" 303 | resolved "https://registry.yarnpkg.com/concat-stream/-/concat-stream-1.6.2.tgz#904bdf194cd3122fc675c77fc4ac3d4ff0fd1a34" 304 | dependencies: 305 | buffer-from "^1.0.0" 306 | inherits "^2.0.3" 307 | readable-stream "^2.2.2" 308 | typedarray "^0.0.6" 309 | 310 | configstore@^3.0.0, configstore@^3.1.1: 311 | version "3.1.2" 312 | resolved "https://registry.yarnpkg.com/configstore/-/configstore-3.1.2.tgz#c6f25defaeef26df12dd33414b001fe81a543f8f" 313 | dependencies: 314 | dot-prop "^4.1.0" 315 | graceful-fs "^4.1.2" 316 | make-dir "^1.0.0" 317 | unique-string "^1.0.0" 318 | write-file-atomic "^2.0.0" 319 | xdg-basedir "^3.0.0" 320 | 321 | cookie@0.3.1: 322 | version "0.3.1" 323 | resolved "https://registry.yarnpkg.com/cookie/-/cookie-0.3.1.tgz#e7e0a1f9ef43b4c8ba925c5c5a96e806d16873bb" 324 | 325 | core-util-is@~1.0.0: 326 | version "1.0.2" 327 | resolved "https://registry.yarnpkg.com/core-util-is/-/core-util-is-1.0.2.tgz#b5fd54220aa2bc5ab57aab7140c940754503c1a7" 328 | 329 | create-error-class@^3.0.0: 330 | version "3.0.2" 331 | resolved "https://registry.yarnpkg.com/create-error-class/-/create-error-class-3.0.2.tgz#06be7abef947a3f14a30fd610671d401bca8b7b6" 332 | dependencies: 333 | capture-stack-trace "^1.0.0" 334 | 335 | cross-spawn@^5.0.1, cross-spawn@^5.1.0: 336 | version "5.1.0" 337 | resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-5.1.0.tgz#e8bd0efee58fcff6f8f94510a0a554bbfa235449" 338 | dependencies: 339 | lru-cache "^4.0.1" 340 | shebang-command "^1.2.0" 341 | which "^1.2.9" 342 | 343 | crypt@~0.0.1: 344 | version "0.0.2" 345 | resolved "https://registry.yarnpkg.com/crypt/-/crypt-0.0.2.tgz#88d7ff7ec0dfb86f713dc87bbb42d044d3e6c41b" 346 | 347 | crypto-random-string@^1.0.0: 348 | version "1.0.0" 349 | resolved "https://registry.yarnpkg.com/crypto-random-string/-/crypto-random-string-1.0.0.tgz#a230f64f568310e1498009940790ec99545bca7e" 350 | 351 | currently-unhandled@^0.4.1: 352 | version "0.4.1" 353 | resolved "https://registry.yarnpkg.com/currently-unhandled/-/currently-unhandled-0.4.1.tgz#988df33feab191ef799a61369dd76c17adf957ea" 354 | dependencies: 355 | array-find-index "^1.0.1" 356 | 357 | debug@^2.6.8: 358 | version "2.6.9" 359 | resolved "https://registry.yarnpkg.com/debug/-/debug-2.6.9.tgz#5d128515df134ff327e90a4c93f4e077a536341f" 360 | dependencies: 361 | ms "2.0.0" 362 | 363 | debug@^3.1.0: 364 | version "3.1.0" 365 | resolved "https://registry.yarnpkg.com/debug/-/debug-3.1.0.tgz#5bb5a0672628b64149566ba16819e61518c67261" 366 | dependencies: 367 | ms "2.0.0" 368 | 369 | decamelize@^1.1.1, decamelize@^1.1.2: 370 | version "1.2.0" 371 | resolved "https://registry.yarnpkg.com/decamelize/-/decamelize-1.2.0.tgz#f6534d15148269b20352e7bee26f501f9a191290" 372 | 373 | deep-extend@^0.5.1: 374 | version "0.5.1" 375 | resolved "https://registry.yarnpkg.com/deep-extend/-/deep-extend-0.5.1.tgz#b894a9dd90d3023fbf1c55a394fb858eb2066f1f" 376 | 377 | deep-is@~0.1.3: 378 | version "0.1.3" 379 | resolved "https://registry.yarnpkg.com/deep-is/-/deep-is-0.1.3.tgz#b369d6fb5dbc13eecf524f91b070feedc357cf34" 380 | 381 | del@^2.0.2: 382 | version "2.2.2" 383 | resolved "https://registry.yarnpkg.com/del/-/del-2.2.2.tgz#c12c981d067846c84bcaf862cff930d907ffd1a8" 384 | dependencies: 385 | globby "^5.0.0" 386 | is-path-cwd "^1.0.0" 387 | is-path-in-cwd "^1.0.0" 388 | object-assign "^4.0.1" 389 | pify "^2.0.0" 390 | pinkie-promise "^2.0.0" 391 | rimraf "^2.2.8" 392 | 393 | devtools-timeline-model@1.1.6: 394 | version "1.1.6" 395 | resolved "https://registry.yarnpkg.com/devtools-timeline-model/-/devtools-timeline-model-1.1.6.tgz#7be51a73b55d727b597bb30dd1ed2e8e210639a5" 396 | dependencies: 397 | chrome-devtools-frontend "1.0.401423" 398 | resolve "1.1.7" 399 | 400 | doctrine@^2.1.0: 401 | version "2.1.0" 402 | resolved "https://registry.yarnpkg.com/doctrine/-/doctrine-2.1.0.tgz#5cd01fc101621b42c4cd7f5d1a66243716d3f39d" 403 | dependencies: 404 | esutils "^2.0.2" 405 | 406 | dot-prop@^4.1.0: 407 | version "4.2.0" 408 | resolved "https://registry.yarnpkg.com/dot-prop/-/dot-prop-4.2.0.tgz#1f19e0c2e1aa0e32797c49799f2837ac6af69c57" 409 | dependencies: 410 | is-obj "^1.0.0" 411 | 412 | duplexer3@^0.1.4: 413 | version "0.1.4" 414 | resolved "https://registry.yarnpkg.com/duplexer3/-/duplexer3-0.1.4.tgz#ee01dd1cac0ed3cbc7fdbea37dc0a8f1ce002ce2" 415 | 416 | error-ex@^1.2.0: 417 | version "1.3.1" 418 | resolved "https://registry.yarnpkg.com/error-ex/-/error-ex-1.3.1.tgz#f855a86ce61adc4e8621c3cda21e7a7612c3a8dc" 419 | dependencies: 420 | is-arrayish "^0.2.1" 421 | 422 | escape-string-regexp@^1.0.2, escape-string-regexp@^1.0.5: 423 | version "1.0.5" 424 | resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz#1b61c0562190a8dff6ae3bb2cf0200ca130b86d4" 425 | 426 | eslint-scope@^3.7.1: 427 | version "3.7.1" 428 | resolved "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-3.7.1.tgz#3d63c3edfda02e06e01a452ad88caacc7cdcb6e8" 429 | dependencies: 430 | esrecurse "^4.1.0" 431 | estraverse "^4.1.1" 432 | 433 | eslint-visitor-keys@^1.0.0: 434 | version "1.0.0" 435 | resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-1.0.0.tgz#3f3180fb2e291017716acb4c9d6d5b5c34a6a81d" 436 | 437 | eslint@^4.19.1: 438 | version "4.19.1" 439 | resolved "https://registry.yarnpkg.com/eslint/-/eslint-4.19.1.tgz#32d1d653e1d90408854bfb296f076ec7e186a300" 440 | dependencies: 441 | ajv "^5.3.0" 442 | babel-code-frame "^6.22.0" 443 | chalk "^2.1.0" 444 | concat-stream "^1.6.0" 445 | cross-spawn "^5.1.0" 446 | debug "^3.1.0" 447 | doctrine "^2.1.0" 448 | eslint-scope "^3.7.1" 449 | eslint-visitor-keys "^1.0.0" 450 | espree "^3.5.4" 451 | esquery "^1.0.0" 452 | esutils "^2.0.2" 453 | file-entry-cache "^2.0.0" 454 | functional-red-black-tree "^1.0.1" 455 | glob "^7.1.2" 456 | globals "^11.0.1" 457 | ignore "^3.3.3" 458 | imurmurhash "^0.1.4" 459 | inquirer "^3.0.6" 460 | is-resolvable "^1.0.0" 461 | js-yaml "^3.9.1" 462 | json-stable-stringify-without-jsonify "^1.0.1" 463 | levn "^0.3.0" 464 | lodash "^4.17.4" 465 | minimatch "^3.0.2" 466 | mkdirp "^0.5.1" 467 | natural-compare "^1.4.0" 468 | optionator "^0.8.2" 469 | path-is-inside "^1.0.2" 470 | pluralize "^7.0.0" 471 | progress "^2.0.0" 472 | regexpp "^1.0.1" 473 | require-uncached "^1.0.3" 474 | semver "^5.3.0" 475 | strip-ansi "^4.0.0" 476 | strip-json-comments "~2.0.1" 477 | table "4.0.2" 478 | text-table "~0.2.0" 479 | 480 | espree@^3.5.4: 481 | version "3.5.4" 482 | resolved "https://registry.yarnpkg.com/espree/-/espree-3.5.4.tgz#b0f447187c8a8bed944b815a660bddf5deb5d1a7" 483 | dependencies: 484 | acorn "^5.5.0" 485 | acorn-jsx "^3.0.0" 486 | 487 | esprima@^4.0.0: 488 | version "4.0.0" 489 | resolved "https://registry.yarnpkg.com/esprima/-/esprima-4.0.0.tgz#4499eddcd1110e0b218bacf2fa7f7f59f55ca804" 490 | 491 | esquery@^1.0.0: 492 | version "1.0.1" 493 | resolved "https://registry.yarnpkg.com/esquery/-/esquery-1.0.1.tgz#406c51658b1f5991a5f9b62b1dc25b00e3e5c708" 494 | dependencies: 495 | estraverse "^4.0.0" 496 | 497 | esrecurse@^4.1.0: 498 | version "4.2.1" 499 | resolved "https://registry.yarnpkg.com/esrecurse/-/esrecurse-4.2.1.tgz#007a3b9fdbc2b3bb87e4879ea19c92fdbd3942cf" 500 | dependencies: 501 | estraverse "^4.1.0" 502 | 503 | estraverse@^4.0.0, estraverse@^4.1.0, estraverse@^4.1.1: 504 | version "4.2.0" 505 | resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-4.2.0.tgz#0dee3fed31fcd469618ce7342099fc1afa0bdb13" 506 | 507 | esutils@^2.0.2: 508 | version "2.0.2" 509 | resolved "https://registry.yarnpkg.com/esutils/-/esutils-2.0.2.tgz#0abf4f1caa5bcb1f7a9d8acc6dea4faaa04bac9b" 510 | 511 | execa@^0.7.0: 512 | version "0.7.0" 513 | resolved "https://registry.yarnpkg.com/execa/-/execa-0.7.0.tgz#944becd34cc41ee32a63a9faf27ad5a65fc59777" 514 | dependencies: 515 | cross-spawn "^5.0.1" 516 | get-stream "^3.0.0" 517 | is-stream "^1.1.0" 518 | npm-run-path "^2.0.0" 519 | p-finally "^1.0.0" 520 | signal-exit "^3.0.0" 521 | strip-eof "^1.0.0" 522 | 523 | execa@^0.8.0: 524 | version "0.8.0" 525 | resolved "https://registry.yarnpkg.com/execa/-/execa-0.8.0.tgz#d8d76bbc1b55217ed190fd6dd49d3c774ecfc8da" 526 | dependencies: 527 | cross-spawn "^5.0.1" 528 | get-stream "^3.0.0" 529 | is-stream "^1.1.0" 530 | npm-run-path "^2.0.0" 531 | p-finally "^1.0.0" 532 | signal-exit "^3.0.0" 533 | strip-eof "^1.0.0" 534 | 535 | external-editor@^2.0.4: 536 | version "2.2.0" 537 | resolved "https://registry.yarnpkg.com/external-editor/-/external-editor-2.2.0.tgz#045511cfd8d133f3846673d1047c154e214ad3d5" 538 | dependencies: 539 | chardet "^0.4.0" 540 | iconv-lite "^0.4.17" 541 | tmp "^0.0.33" 542 | 543 | fast-deep-equal@^1.0.0: 544 | version "1.1.0" 545 | resolved "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-1.1.0.tgz#c053477817c86b51daa853c81e059b733d023614" 546 | 547 | fast-json-stable-stringify@^2.0.0: 548 | version "2.0.0" 549 | resolved "https://registry.yarnpkg.com/fast-json-stable-stringify/-/fast-json-stable-stringify-2.0.0.tgz#d5142c0caee6b1189f87d3a76111064f86c8bbf2" 550 | 551 | fast-levenshtein@~2.0.4: 552 | version "2.0.6" 553 | resolved "https://registry.yarnpkg.com/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz#3d8a5c66883a16a30ca8643e851f19baa7797917" 554 | 555 | figures@^2.0.0: 556 | version "2.0.0" 557 | resolved "https://registry.yarnpkg.com/figures/-/figures-2.0.0.tgz#3ab1a2d2a62c8bfb431a0c94cb797a2fce27c962" 558 | dependencies: 559 | escape-string-regexp "^1.0.5" 560 | 561 | file-entry-cache@^2.0.0: 562 | version "2.0.0" 563 | resolved "https://registry.yarnpkg.com/file-entry-cache/-/file-entry-cache-2.0.0.tgz#c392990c3e684783d838b8c84a45d8a048458361" 564 | dependencies: 565 | flat-cache "^1.2.1" 566 | object-assign "^4.0.1" 567 | 568 | find-config@^1.0.0: 569 | version "1.0.0" 570 | resolved "https://registry.yarnpkg.com/find-config/-/find-config-1.0.0.tgz#eafa2b9bc07fa9c90e9a0c3ef9cecf1cc800f530" 571 | dependencies: 572 | user-home "^2.0.0" 573 | 574 | find-up@^1.0.0: 575 | version "1.1.2" 576 | resolved "https://registry.yarnpkg.com/find-up/-/find-up-1.1.2.tgz#6b2e9822b1a2ce0a60ab64d610eccad53cb24d0f" 577 | dependencies: 578 | path-exists "^2.0.0" 579 | pinkie-promise "^2.0.0" 580 | 581 | find-up@^2.1.0: 582 | version "2.1.0" 583 | resolved "https://registry.yarnpkg.com/find-up/-/find-up-2.1.0.tgz#45d1b7e506c717ddd482775a2b77920a3c0c57a7" 584 | dependencies: 585 | locate-path "^2.0.0" 586 | 587 | flat-cache@^1.2.1: 588 | version "1.3.0" 589 | resolved "https://registry.yarnpkg.com/flat-cache/-/flat-cache-1.3.0.tgz#d3030b32b38154f4e3b7e9c709f490f7ef97c481" 590 | dependencies: 591 | circular-json "^0.3.1" 592 | del "^2.0.2" 593 | graceful-fs "^4.1.2" 594 | write "^0.2.1" 595 | 596 | fs-extra@^4.0.1: 597 | version "4.0.3" 598 | resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-4.0.3.tgz#0d852122e5bc5beb453fb028e9c0c9bf36340c94" 599 | dependencies: 600 | graceful-fs "^4.1.2" 601 | jsonfile "^4.0.0" 602 | universalify "^0.1.0" 603 | 604 | fs.realpath@^1.0.0: 605 | version "1.0.0" 606 | resolved "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f" 607 | 608 | functional-red-black-tree@^1.0.1: 609 | version "1.0.1" 610 | resolved "https://registry.yarnpkg.com/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz#1b0ab3bd553b2a0d6399d29c0e3ea0b252078327" 611 | 612 | get-stdin@^4.0.1: 613 | version "4.0.1" 614 | resolved "https://registry.yarnpkg.com/get-stdin/-/get-stdin-4.0.1.tgz#b968c6b0a04384324902e8bf1a5df32579a450fe" 615 | 616 | get-stream@^3.0.0: 617 | version "3.0.0" 618 | resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-3.0.0.tgz#8e943d1358dc37555054ecbe2edb05aa174ede14" 619 | 620 | glob@^7.0.3, glob@^7.0.5, glob@^7.1.2: 621 | version "7.1.2" 622 | resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.2.tgz#c19c9df9a028702d678612384a6552404c636d15" 623 | dependencies: 624 | fs.realpath "^1.0.0" 625 | inflight "^1.0.4" 626 | inherits "2" 627 | minimatch "^3.0.4" 628 | once "^1.3.0" 629 | path-is-absolute "^1.0.0" 630 | 631 | global-dirs@^0.1.0: 632 | version "0.1.1" 633 | resolved "https://registry.yarnpkg.com/global-dirs/-/global-dirs-0.1.1.tgz#b319c0dd4607f353f3be9cca4c72fc148c49f445" 634 | dependencies: 635 | ini "^1.3.4" 636 | 637 | globals@^11.0.1: 638 | version "11.4.0" 639 | resolved "https://registry.yarnpkg.com/globals/-/globals-11.4.0.tgz#b85c793349561c16076a3c13549238a27945f1bc" 640 | 641 | globby@^5.0.0: 642 | version "5.0.0" 643 | resolved "https://registry.yarnpkg.com/globby/-/globby-5.0.0.tgz#ebd84667ca0dbb330b99bcfc68eac2bc54370e0d" 644 | dependencies: 645 | array-union "^1.0.1" 646 | arrify "^1.0.0" 647 | glob "^7.0.3" 648 | object-assign "^4.0.1" 649 | pify "^2.0.0" 650 | pinkie-promise "^2.0.0" 651 | 652 | got@^6.7.1: 653 | version "6.7.1" 654 | resolved "https://registry.yarnpkg.com/got/-/got-6.7.1.tgz#240cd05785a9a18e561dc1b44b41c763ef1e8db0" 655 | dependencies: 656 | create-error-class "^3.0.0" 657 | duplexer3 "^0.1.4" 658 | get-stream "^3.0.0" 659 | is-redirect "^1.0.0" 660 | is-retry-allowed "^1.0.0" 661 | is-stream "^1.0.0" 662 | lowercase-keys "^1.0.0" 663 | safe-buffer "^5.0.1" 664 | timed-out "^4.0.0" 665 | unzip-response "^2.0.1" 666 | url-parse-lax "^1.0.0" 667 | 668 | graceful-fs@^4.1.11, graceful-fs@^4.1.2, graceful-fs@^4.1.6: 669 | version "4.1.11" 670 | resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.1.11.tgz#0e8bdfe4d1ddb8854d64e04ea7c00e2a026e5658" 671 | 672 | has-ansi@^2.0.0: 673 | version "2.0.0" 674 | resolved "https://registry.yarnpkg.com/has-ansi/-/has-ansi-2.0.0.tgz#34f5049ce1ecdf2b0649af3ef24e45ed35416d91" 675 | dependencies: 676 | ansi-regex "^2.0.0" 677 | 678 | has-flag@^3.0.0: 679 | version "3.0.0" 680 | resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-3.0.0.tgz#b5d454dc2199ae225699f3467e5a07f3b955bafd" 681 | 682 | hosted-git-info@^2.1.4: 683 | version "2.6.0" 684 | resolved "https://registry.yarnpkg.com/hosted-git-info/-/hosted-git-info-2.6.0.tgz#23235b29ab230c576aab0d4f13fc046b0b038222" 685 | 686 | http-link-header@^0.8.0: 687 | version "0.8.0" 688 | resolved "https://registry.yarnpkg.com/http-link-header/-/http-link-header-0.8.0.tgz#a22b41a0c9b1e2d8fac1bf1b697c6bd532d5f5e4" 689 | 690 | husky@^0.14.3: 691 | version "0.14.3" 692 | resolved "https://registry.yarnpkg.com/husky/-/husky-0.14.3.tgz#c69ed74e2d2779769a17ba8399b54ce0b63c12c3" 693 | dependencies: 694 | is-ci "^1.0.10" 695 | normalize-path "^1.0.0" 696 | strip-indent "^2.0.0" 697 | 698 | iconv-lite@^0.4.17: 699 | version "0.4.21" 700 | resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.21.tgz#c47f8733d02171189ebc4a400f3218d348094798" 701 | dependencies: 702 | safer-buffer "^2.1.0" 703 | 704 | ignore@^3.3.3, ignore@^3.3.7: 705 | version "3.3.8" 706 | resolved "https://registry.yarnpkg.com/ignore/-/ignore-3.3.8.tgz#3f8e9c35d38708a3a7e0e9abb6c73e7ee7707b2b" 707 | 708 | image-ssim@^0.2.0: 709 | version "0.2.0" 710 | resolved "https://registry.yarnpkg.com/image-ssim/-/image-ssim-0.2.0.tgz#83b42c7a2e6e4b85505477fe6917f5dbc56420e5" 711 | 712 | import-lazy@^2.1.0: 713 | version "2.1.0" 714 | resolved "https://registry.yarnpkg.com/import-lazy/-/import-lazy-2.1.0.tgz#05698e3d45c88e8d7e9d92cb0584e77f096f3e43" 715 | 716 | imurmurhash@^0.1.4: 717 | version "0.1.4" 718 | resolved "https://registry.yarnpkg.com/imurmurhash/-/imurmurhash-0.1.4.tgz#9218b9b2b928a238b13dc4fb6b6d576f231453ea" 719 | 720 | indent-string@^2.1.0: 721 | version "2.1.0" 722 | resolved "https://registry.yarnpkg.com/indent-string/-/indent-string-2.1.0.tgz#8e2d48348742121b4a8218b7a137e9a52049dc80" 723 | dependencies: 724 | repeating "^2.0.0" 725 | 726 | inflight@^1.0.4: 727 | version "1.0.6" 728 | resolved "https://registry.yarnpkg.com/inflight/-/inflight-1.0.6.tgz#49bd6331d7d02d0c09bc910a1075ba8165b56df9" 729 | dependencies: 730 | once "^1.3.0" 731 | wrappy "1" 732 | 733 | inherits@2, inherits@^2.0.3, inherits@~2.0.3: 734 | version "2.0.3" 735 | resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.3.tgz#633c2c83e3da42a502f52466022480f4208261de" 736 | 737 | ini@^1.3.4, ini@~1.3.0: 738 | version "1.3.5" 739 | resolved "https://registry.yarnpkg.com/ini/-/ini-1.3.5.tgz#eee25f56db1c9ec6085e0c22778083f596abf927" 740 | 741 | inquirer@^3.0.6, inquirer@^3.3.0: 742 | version "3.3.0" 743 | resolved "https://registry.yarnpkg.com/inquirer/-/inquirer-3.3.0.tgz#9dd2f2ad765dcab1ff0443b491442a20ba227dc9" 744 | dependencies: 745 | ansi-escapes "^3.0.0" 746 | chalk "^2.0.0" 747 | cli-cursor "^2.1.0" 748 | cli-width "^2.0.0" 749 | external-editor "^2.0.4" 750 | figures "^2.0.0" 751 | lodash "^4.3.0" 752 | mute-stream "0.0.7" 753 | run-async "^2.2.0" 754 | rx-lite "^4.0.8" 755 | rx-lite-aggregates "^4.0.8" 756 | string-width "^2.1.0" 757 | strip-ansi "^4.0.0" 758 | through "^2.3.6" 759 | 760 | invert-kv@^1.0.0: 761 | version "1.0.0" 762 | resolved "https://registry.yarnpkg.com/invert-kv/-/invert-kv-1.0.0.tgz#104a8e4aaca6d3d8cd157a8ef8bfab2d7a3ffdb6" 763 | 764 | is-arrayish@^0.2.1: 765 | version "0.2.1" 766 | resolved "https://registry.yarnpkg.com/is-arrayish/-/is-arrayish-0.2.1.tgz#77c99840527aa8ecb1a8ba697b80645a7a926a9d" 767 | 768 | is-buffer@~1.1.1: 769 | version "1.1.6" 770 | resolved "https://registry.yarnpkg.com/is-buffer/-/is-buffer-1.1.6.tgz#efaa2ea9daa0d7ab2ea13a97b2b8ad51fefbe8be" 771 | 772 | is-builtin-module@^1.0.0: 773 | version "1.0.0" 774 | resolved "https://registry.yarnpkg.com/is-builtin-module/-/is-builtin-module-1.0.0.tgz#540572d34f7ac3119f8f76c30cbc1b1e037affbe" 775 | dependencies: 776 | builtin-modules "^1.0.0" 777 | 778 | is-ci@^1.0.10: 779 | version "1.1.0" 780 | resolved "https://registry.yarnpkg.com/is-ci/-/is-ci-1.1.0.tgz#247e4162e7860cebbdaf30b774d6b0ac7dcfe7a5" 781 | dependencies: 782 | ci-info "^1.0.0" 783 | 784 | is-finite@^1.0.0: 785 | version "1.0.2" 786 | resolved "https://registry.yarnpkg.com/is-finite/-/is-finite-1.0.2.tgz#cc6677695602be550ef11e8b4aa6305342b6d0aa" 787 | dependencies: 788 | number-is-nan "^1.0.0" 789 | 790 | is-fullwidth-code-point@^1.0.0: 791 | version "1.0.0" 792 | resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz#ef9e31386f031a7f0d643af82fde50c457ef00cb" 793 | dependencies: 794 | number-is-nan "^1.0.0" 795 | 796 | is-fullwidth-code-point@^2.0.0: 797 | version "2.0.0" 798 | resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz#a3b30a5c4f199183167aaab93beefae3ddfb654f" 799 | 800 | is-installed-globally@^0.1.0: 801 | version "0.1.0" 802 | resolved "https://registry.yarnpkg.com/is-installed-globally/-/is-installed-globally-0.1.0.tgz#0dfd98f5a9111716dd535dda6492f67bf3d25a80" 803 | dependencies: 804 | global-dirs "^0.1.0" 805 | is-path-inside "^1.0.0" 806 | 807 | is-npm@^1.0.0: 808 | version "1.0.0" 809 | resolved "https://registry.yarnpkg.com/is-npm/-/is-npm-1.0.0.tgz#f2fb63a65e4905b406c86072765a1a4dc793b9f4" 810 | 811 | is-obj@^1.0.0: 812 | version "1.0.1" 813 | resolved "https://registry.yarnpkg.com/is-obj/-/is-obj-1.0.1.tgz#3e4729ac1f5fde025cd7d83a896dab9f4f67db0f" 814 | 815 | is-path-cwd@^1.0.0: 816 | version "1.0.0" 817 | resolved "https://registry.yarnpkg.com/is-path-cwd/-/is-path-cwd-1.0.0.tgz#d225ec23132e89edd38fda767472e62e65f1106d" 818 | 819 | is-path-in-cwd@^1.0.0: 820 | version "1.0.1" 821 | resolved "https://registry.yarnpkg.com/is-path-in-cwd/-/is-path-in-cwd-1.0.1.tgz#5ac48b345ef675339bd6c7a48a912110b241cf52" 822 | dependencies: 823 | is-path-inside "^1.0.0" 824 | 825 | is-path-inside@^1.0.0: 826 | version "1.0.1" 827 | resolved "https://registry.yarnpkg.com/is-path-inside/-/is-path-inside-1.0.1.tgz#8ef5b7de50437a3fdca6b4e865ef7aa55cb48036" 828 | dependencies: 829 | path-is-inside "^1.0.1" 830 | 831 | is-promise@^2.1.0: 832 | version "2.1.0" 833 | resolved "https://registry.yarnpkg.com/is-promise/-/is-promise-2.1.0.tgz#79a2a9ece7f096e80f36d2b2f3bc16c1ff4bf3fa" 834 | 835 | is-redirect@^1.0.0: 836 | version "1.0.0" 837 | resolved "https://registry.yarnpkg.com/is-redirect/-/is-redirect-1.0.0.tgz#1d03dded53bd8db0f30c26e4f95d36fc7c87dc24" 838 | 839 | is-resolvable@^1.0.0: 840 | version "1.1.0" 841 | resolved "https://registry.yarnpkg.com/is-resolvable/-/is-resolvable-1.1.0.tgz#fb18f87ce1feb925169c9a407c19318a3206ed88" 842 | 843 | is-retry-allowed@^1.0.0: 844 | version "1.1.0" 845 | resolved "https://registry.yarnpkg.com/is-retry-allowed/-/is-retry-allowed-1.1.0.tgz#11a060568b67339444033d0125a61a20d564fb34" 846 | 847 | is-stream@^1.0.0, is-stream@^1.1.0: 848 | version "1.1.0" 849 | resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-1.1.0.tgz#12d4a3dd4e68e0b79ceb8dbc84173ae80d91ca44" 850 | 851 | is-utf8@^0.2.0: 852 | version "0.2.1" 853 | resolved "https://registry.yarnpkg.com/is-utf8/-/is-utf8-0.2.1.tgz#4b0da1442104d1b336340e80797e865cf39f7d72" 854 | 855 | is-wsl@^1.1.0: 856 | version "1.1.0" 857 | resolved "https://registry.yarnpkg.com/is-wsl/-/is-wsl-1.1.0.tgz#1f16e4aa22b04d1336b66188a66af3c600c3a66d" 858 | 859 | isarray@~1.0.0: 860 | version "1.0.0" 861 | resolved "https://registry.yarnpkg.com/isarray/-/isarray-1.0.0.tgz#bb935d48582cba168c06834957a54a3e07124f11" 862 | 863 | isexe@^2.0.0: 864 | version "2.0.0" 865 | resolved "https://registry.yarnpkg.com/isexe/-/isexe-2.0.0.tgz#e8fbf374dc556ff8947a10dcb0572d633f2cfa10" 866 | 867 | jpeg-js@0.1.2, jpeg-js@^0.1.2: 868 | version "0.1.2" 869 | resolved "https://registry.yarnpkg.com/jpeg-js/-/jpeg-js-0.1.2.tgz#135b992c0575c985cfa0f494a3227ed238583ece" 870 | 871 | js-library-detector@^4.3.1: 872 | version "4.3.1" 873 | resolved "https://registry.yarnpkg.com/js-library-detector/-/js-library-detector-4.3.1.tgz#6d34f55002813bc0a7543deef53faa4e2e79767b" 874 | 875 | js-tokens@^3.0.2: 876 | version "3.0.2" 877 | resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-3.0.2.tgz#9866df395102130e38f7f996bceb65443209c25b" 878 | 879 | js-yaml@^3.9.1: 880 | version "3.11.0" 881 | resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-3.11.0.tgz#597c1a8bd57152f26d622ce4117851a51f5ebaef" 882 | dependencies: 883 | argparse "^1.0.7" 884 | esprima "^4.0.0" 885 | 886 | json-schema-traverse@^0.3.0: 887 | version "0.3.1" 888 | resolved "https://registry.yarnpkg.com/json-schema-traverse/-/json-schema-traverse-0.3.1.tgz#349a6d44c53a51de89b40805c5d5e59b417d3340" 889 | 890 | json-stable-stringify-without-jsonify@^1.0.1: 891 | version "1.0.1" 892 | resolved "https://registry.yarnpkg.com/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz#9db7b59496ad3f3cfef30a75142d2d930ad72651" 893 | 894 | jsonfile@^4.0.0: 895 | version "4.0.0" 896 | resolved "https://registry.yarnpkg.com/jsonfile/-/jsonfile-4.0.0.tgz#8771aae0799b64076b76640fca058f9c10e33ecb" 897 | optionalDependencies: 898 | graceful-fs "^4.1.6" 899 | 900 | latest-version@^3.0.0: 901 | version "3.1.0" 902 | resolved "https://registry.yarnpkg.com/latest-version/-/latest-version-3.1.0.tgz#a205383fea322b33b5ae3b18abee0dc2f356ee15" 903 | dependencies: 904 | package-json "^4.0.0" 905 | 906 | lcid@^1.0.0: 907 | version "1.0.0" 908 | resolved "https://registry.yarnpkg.com/lcid/-/lcid-1.0.0.tgz#308accafa0bc483a3867b4b6f2b9506251d1b835" 909 | dependencies: 910 | invert-kv "^1.0.0" 911 | 912 | levn@^0.3.0, levn@~0.3.0: 913 | version "0.3.0" 914 | resolved "https://registry.yarnpkg.com/levn/-/levn-0.3.0.tgz#3b09924edf9f083c0490fdd4c0bc4421e04764ee" 915 | dependencies: 916 | prelude-ls "~1.1.2" 917 | type-check "~0.3.2" 918 | 919 | lighthouse-logger@^1.0.0: 920 | version "1.0.1" 921 | resolved "https://registry.yarnpkg.com/lighthouse-logger/-/lighthouse-logger-1.0.1.tgz#f073d83f7acbc96729bf100a121c8f006991ae61" 922 | dependencies: 923 | debug "^2.6.8" 924 | 925 | lighthouse@^2.9.4: 926 | version "2.9.4" 927 | resolved "https://registry.yarnpkg.com/lighthouse/-/lighthouse-2.9.4.tgz#01aa469abaad1cfc06814293b3f6b6ba8971320f" 928 | dependencies: 929 | axe-core "3.0.0-beta.2" 930 | chrome-devtools-frontend "1.0.422034" 931 | chrome-launcher "^0.10.2" 932 | configstore "^3.1.1" 933 | devtools-timeline-model "1.1.6" 934 | esprima "^4.0.0" 935 | http-link-header "^0.8.0" 936 | inquirer "^3.3.0" 937 | jpeg-js "0.1.2" 938 | js-library-detector "^4.3.1" 939 | lighthouse-logger "^1.0.0" 940 | lodash.isequal "^4.5.0" 941 | metaviewport-parser "0.2.0" 942 | mkdirp "0.5.1" 943 | opn "4.0.2" 944 | parse-cache-control "1.0.1" 945 | patch-package "^5.1.1" 946 | raven "^2.2.1" 947 | rimraf "^2.6.1" 948 | robots-parser "^1.0.2" 949 | semver "^5.3.0" 950 | speedline "1.3.0" 951 | update-notifier "^2.1.0" 952 | whatwg-url "^6.3.0" 953 | ws "3.3.2" 954 | yargs "3.32.0" 955 | yargs-parser "7.0.0" 956 | 957 | load-json-file@^1.0.0: 958 | version "1.1.0" 959 | resolved "https://registry.yarnpkg.com/load-json-file/-/load-json-file-1.1.0.tgz#956905708d58b4bab4c2261b04f59f31c99374c0" 960 | dependencies: 961 | graceful-fs "^4.1.2" 962 | parse-json "^2.2.0" 963 | pify "^2.0.0" 964 | pinkie-promise "^2.0.0" 965 | strip-bom "^2.0.0" 966 | 967 | locate-path@^2.0.0: 968 | version "2.0.0" 969 | resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-2.0.0.tgz#2b568b265eec944c6d9c0de9c3dbbbca0354cd8e" 970 | dependencies: 971 | p-locate "^2.0.0" 972 | path-exists "^3.0.0" 973 | 974 | lodash.isequal@^4.5.0: 975 | version "4.5.0" 976 | resolved "https://registry.yarnpkg.com/lodash.isequal/-/lodash.isequal-4.5.0.tgz#415c4478f2bcc30120c22ce10ed3226f7d3e18e0" 977 | 978 | lodash.sortby@^4.7.0: 979 | version "4.7.0" 980 | resolved "https://registry.yarnpkg.com/lodash.sortby/-/lodash.sortby-4.7.0.tgz#edd14c824e2cc9c1e0b0a1b42bb5210516a42438" 981 | 982 | lodash@^4.17.10, lodash@^4.17.4, lodash@^4.3.0: 983 | version "4.17.10" 984 | resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.10.tgz#1b7793cf7259ea38fb3661d4d38b3260af8ae4e7" 985 | 986 | loud-rejection@^1.0.0, loud-rejection@^1.6.0: 987 | version "1.6.0" 988 | resolved "https://registry.yarnpkg.com/loud-rejection/-/loud-rejection-1.6.0.tgz#5b46f80147edee578870f086d04821cf998e551f" 989 | dependencies: 990 | currently-unhandled "^0.4.1" 991 | signal-exit "^3.0.0" 992 | 993 | lowercase-keys@^1.0.0: 994 | version "1.0.1" 995 | resolved "https://registry.yarnpkg.com/lowercase-keys/-/lowercase-keys-1.0.1.tgz#6f9e30b47084d971a7c820ff15a6c5167b74c26f" 996 | 997 | lru-cache@^4.0.1: 998 | version "4.1.2" 999 | resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-4.1.2.tgz#45234b2e6e2f2b33da125624c4664929a0224c3f" 1000 | dependencies: 1001 | pseudomap "^1.0.2" 1002 | yallist "^2.1.2" 1003 | 1004 | make-dir@^1.0.0: 1005 | version "1.2.0" 1006 | resolved "https://registry.yarnpkg.com/make-dir/-/make-dir-1.2.0.tgz#6d6a49eead4aae296c53bbf3a1a008bd6c89469b" 1007 | dependencies: 1008 | pify "^3.0.0" 1009 | 1010 | map-obj@^1.0.0, map-obj@^1.0.1: 1011 | version "1.0.1" 1012 | resolved "https://registry.yarnpkg.com/map-obj/-/map-obj-1.0.1.tgz#d933ceb9205d82bdcf4886f6742bdc2b4dea146d" 1013 | 1014 | md5@^2.2.1: 1015 | version "2.2.1" 1016 | resolved "https://registry.yarnpkg.com/md5/-/md5-2.2.1.tgz#53ab38d5fe3c8891ba465329ea23fac0540126f9" 1017 | dependencies: 1018 | charenc "~0.0.1" 1019 | crypt "~0.0.1" 1020 | is-buffer "~1.1.1" 1021 | 1022 | meow@^3.7.0: 1023 | version "3.7.0" 1024 | resolved "https://registry.yarnpkg.com/meow/-/meow-3.7.0.tgz#72cb668b425228290abbfa856892587308a801fb" 1025 | dependencies: 1026 | camelcase-keys "^2.0.0" 1027 | decamelize "^1.1.2" 1028 | loud-rejection "^1.0.0" 1029 | map-obj "^1.0.1" 1030 | minimist "^1.1.3" 1031 | normalize-package-data "^2.3.4" 1032 | object-assign "^4.0.1" 1033 | read-pkg-up "^1.0.1" 1034 | redent "^1.0.0" 1035 | trim-newlines "^1.0.0" 1036 | 1037 | metaviewport-parser@0.2.0: 1038 | version "0.2.0" 1039 | resolved "https://registry.yarnpkg.com/metaviewport-parser/-/metaviewport-parser-0.2.0.tgz#535c3ce1ccf6223a5025fddc6a1c36505f7e7db1" 1040 | 1041 | mimic-fn@^1.0.0: 1042 | version "1.2.0" 1043 | resolved "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-1.2.0.tgz#820c86a39334640e99516928bd03fca88057d022" 1044 | 1045 | minimatch@^3.0.2, minimatch@^3.0.4: 1046 | version "3.0.4" 1047 | resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.0.4.tgz#5166e286457f03306064be5497e8dbb0c3d32083" 1048 | dependencies: 1049 | brace-expansion "^1.1.7" 1050 | 1051 | minimist@0.0.8: 1052 | version "0.0.8" 1053 | resolved "https://registry.yarnpkg.com/minimist/-/minimist-0.0.8.tgz#857fcabfc3397d2625b8228262e86aa7a011b05d" 1054 | 1055 | minimist@^1.1.3, minimist@^1.2.0: 1056 | version "1.2.0" 1057 | resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.0.tgz#a35008b20f41383eec1fb914f4cd5df79a264284" 1058 | 1059 | mkdirp@0.5.1, mkdirp@^0.5.1: 1060 | version "0.5.1" 1061 | resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.5.1.tgz#30057438eac6cf7f8c4767f38648d6697d75c903" 1062 | dependencies: 1063 | minimist "0.0.8" 1064 | 1065 | mri@^1.1.0: 1066 | version "1.1.0" 1067 | resolved "https://registry.yarnpkg.com/mri/-/mri-1.1.0.tgz#5c0a3f29c8ccffbbb1ec941dcec09d71fa32f36a" 1068 | 1069 | ms@2.0.0: 1070 | version "2.0.0" 1071 | resolved "https://registry.yarnpkg.com/ms/-/ms-2.0.0.tgz#5608aeadfc00be6c2901df5f9861788de0d597c8" 1072 | 1073 | mute-stream@0.0.7: 1074 | version "0.0.7" 1075 | resolved "https://registry.yarnpkg.com/mute-stream/-/mute-stream-0.0.7.tgz#3075ce93bc21b8fab43e1bc4da7e8115ed1e7bab" 1076 | 1077 | natural-compare@^1.4.0: 1078 | version "1.4.0" 1079 | resolved "https://registry.yarnpkg.com/natural-compare/-/natural-compare-1.4.0.tgz#4abebfeed7541f2c27acfb29bdbbd15c8d5ba4f7" 1080 | 1081 | normalize-package-data@^2.3.2, normalize-package-data@^2.3.4: 1082 | version "2.4.0" 1083 | resolved "https://registry.yarnpkg.com/normalize-package-data/-/normalize-package-data-2.4.0.tgz#12f95a307d58352075a04907b84ac8be98ac012f" 1084 | dependencies: 1085 | hosted-git-info "^2.1.4" 1086 | is-builtin-module "^1.0.0" 1087 | semver "2 || 3 || 4 || 5" 1088 | validate-npm-package-license "^3.0.1" 1089 | 1090 | normalize-path@^1.0.0: 1091 | version "1.0.0" 1092 | resolved "https://registry.yarnpkg.com/normalize-path/-/normalize-path-1.0.0.tgz#32d0e472f91ff345701c15a8311018d3b0a90379" 1093 | 1094 | npm-run-path@^2.0.0: 1095 | version "2.0.2" 1096 | resolved "https://registry.yarnpkg.com/npm-run-path/-/npm-run-path-2.0.2.tgz#35a9232dfa35d7067b4cb2ddf2357b1871536c5f" 1097 | dependencies: 1098 | path-key "^2.0.0" 1099 | 1100 | number-is-nan@^1.0.0: 1101 | version "1.0.1" 1102 | resolved "https://registry.yarnpkg.com/number-is-nan/-/number-is-nan-1.0.1.tgz#097b602b53422a522c1afb8790318336941a011d" 1103 | 1104 | object-assign@^4.0.1: 1105 | version "4.1.1" 1106 | resolved "https://registry.yarnpkg.com/object-assign/-/object-assign-4.1.1.tgz#2109adc7965887cfc05cbbd442cac8bfbb360863" 1107 | 1108 | once@^1.3.0: 1109 | version "1.4.0" 1110 | resolved "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1" 1111 | dependencies: 1112 | wrappy "1" 1113 | 1114 | onetime@^2.0.0: 1115 | version "2.0.1" 1116 | resolved "https://registry.yarnpkg.com/onetime/-/onetime-2.0.1.tgz#067428230fd67443b2794b22bba528b6867962d4" 1117 | dependencies: 1118 | mimic-fn "^1.0.0" 1119 | 1120 | opn@4.0.2: 1121 | version "4.0.2" 1122 | resolved "https://registry.yarnpkg.com/opn/-/opn-4.0.2.tgz#7abc22e644dff63b0a96d5ab7f2790c0f01abc95" 1123 | dependencies: 1124 | object-assign "^4.0.1" 1125 | pinkie-promise "^2.0.0" 1126 | 1127 | optionator@^0.8.2: 1128 | version "0.8.2" 1129 | resolved "https://registry.yarnpkg.com/optionator/-/optionator-0.8.2.tgz#364c5e409d3f4d6301d6c0b4c05bba50180aeb64" 1130 | dependencies: 1131 | deep-is "~0.1.3" 1132 | fast-levenshtein "~2.0.4" 1133 | levn "~0.3.0" 1134 | prelude-ls "~1.1.2" 1135 | type-check "~0.3.2" 1136 | wordwrap "~1.0.0" 1137 | 1138 | os-homedir@^1.0.0: 1139 | version "1.0.2" 1140 | resolved "https://registry.yarnpkg.com/os-homedir/-/os-homedir-1.0.2.tgz#ffbc4988336e0e833de0c168c7ef152121aa7fb3" 1141 | 1142 | os-locale@^1.4.0: 1143 | version "1.4.0" 1144 | resolved "https://registry.yarnpkg.com/os-locale/-/os-locale-1.4.0.tgz#20f9f17ae29ed345e8bde583b13d2009803c14d9" 1145 | dependencies: 1146 | lcid "^1.0.0" 1147 | 1148 | os-tmpdir@~1.0.1, os-tmpdir@~1.0.2: 1149 | version "1.0.2" 1150 | resolved "https://registry.yarnpkg.com/os-tmpdir/-/os-tmpdir-1.0.2.tgz#bbe67406c79aa85c5cfec766fe5734555dfa1274" 1151 | 1152 | p-finally@^1.0.0: 1153 | version "1.0.0" 1154 | resolved "https://registry.yarnpkg.com/p-finally/-/p-finally-1.0.0.tgz#3fbcfb15b899a44123b34b6dcc18b724336a2cae" 1155 | 1156 | p-limit@^1.1.0: 1157 | version "1.2.0" 1158 | resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-1.2.0.tgz#0e92b6bedcb59f022c13d0f1949dc82d15909f1c" 1159 | dependencies: 1160 | p-try "^1.0.0" 1161 | 1162 | p-locate@^2.0.0: 1163 | version "2.0.0" 1164 | resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-2.0.0.tgz#20a0103b222a70c8fd39cc2e580680f3dde5ec43" 1165 | dependencies: 1166 | p-limit "^1.1.0" 1167 | 1168 | p-try@^1.0.0: 1169 | version "1.0.0" 1170 | resolved "https://registry.yarnpkg.com/p-try/-/p-try-1.0.0.tgz#cbc79cdbaf8fd4228e13f621f2b1a237c1b207b3" 1171 | 1172 | package-json@^4.0.0: 1173 | version "4.0.1" 1174 | resolved "https://registry.yarnpkg.com/package-json/-/package-json-4.0.1.tgz#8869a0401253661c4c4ca3da6c2121ed555f5eed" 1175 | dependencies: 1176 | got "^6.7.1" 1177 | registry-auth-token "^3.0.1" 1178 | registry-url "^3.0.3" 1179 | semver "^5.1.0" 1180 | 1181 | parse-cache-control@1.0.1: 1182 | version "1.0.1" 1183 | resolved "https://registry.yarnpkg.com/parse-cache-control/-/parse-cache-control-1.0.1.tgz#8eeab3e54fa56920fe16ba38f77fa21aacc2d74e" 1184 | 1185 | parse-json@^2.2.0: 1186 | version "2.2.0" 1187 | resolved "https://registry.yarnpkg.com/parse-json/-/parse-json-2.2.0.tgz#f480f40434ef80741f8469099f8dea18f55a4dc9" 1188 | dependencies: 1189 | error-ex "^1.2.0" 1190 | 1191 | patch-package@^5.1.1: 1192 | version "5.1.1" 1193 | resolved "https://registry.yarnpkg.com/patch-package/-/patch-package-5.1.1.tgz#e5e82fe08bed760b773b8eb73a7bcb7c1634f802" 1194 | dependencies: 1195 | chalk "^1.1.3" 1196 | cross-spawn "^5.1.0" 1197 | fs-extra "^4.0.1" 1198 | minimist "^1.2.0" 1199 | rimraf "^2.6.1" 1200 | slash "^1.0.0" 1201 | tmp "^0.0.31" 1202 | update-notifier "^2.2.0" 1203 | 1204 | path-exists@^2.0.0: 1205 | version "2.1.0" 1206 | resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-2.1.0.tgz#0feb6c64f0fc518d9a754dd5efb62c7022761f4b" 1207 | dependencies: 1208 | pinkie-promise "^2.0.0" 1209 | 1210 | path-exists@^3.0.0: 1211 | version "3.0.0" 1212 | resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-3.0.0.tgz#ce0ebeaa5f78cb18925ea7d810d7b59b010fd515" 1213 | 1214 | path-is-absolute@^1.0.0: 1215 | version "1.0.1" 1216 | resolved "https://registry.yarnpkg.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f" 1217 | 1218 | path-is-inside@^1.0.1, path-is-inside@^1.0.2: 1219 | version "1.0.2" 1220 | resolved "https://registry.yarnpkg.com/path-is-inside/-/path-is-inside-1.0.2.tgz#365417dede44430d1c11af61027facf074bdfc53" 1221 | 1222 | path-key@^2.0.0: 1223 | version "2.0.1" 1224 | resolved "https://registry.yarnpkg.com/path-key/-/path-key-2.0.1.tgz#411cadb574c5a140d3a4b1910d40d80cc9f40b40" 1225 | 1226 | path-type@^1.0.0: 1227 | version "1.1.0" 1228 | resolved "https://registry.yarnpkg.com/path-type/-/path-type-1.1.0.tgz#59c44f7ee491da704da415da5a4070ba4f8fe441" 1229 | dependencies: 1230 | graceful-fs "^4.1.2" 1231 | pify "^2.0.0" 1232 | pinkie-promise "^2.0.0" 1233 | 1234 | pify@^2.0.0: 1235 | version "2.3.0" 1236 | resolved "https://registry.yarnpkg.com/pify/-/pify-2.3.0.tgz#ed141a6ac043a849ea588498e7dca8b15330e90c" 1237 | 1238 | pify@^3.0.0: 1239 | version "3.0.0" 1240 | resolved "https://registry.yarnpkg.com/pify/-/pify-3.0.0.tgz#e5a4acd2c101fdf3d9a4d07f0dbc4db49dd28176" 1241 | 1242 | pinkie-promise@^2.0.0: 1243 | version "2.0.1" 1244 | resolved "https://registry.yarnpkg.com/pinkie-promise/-/pinkie-promise-2.0.1.tgz#2135d6dfa7a358c069ac9b178776288228450ffa" 1245 | dependencies: 1246 | pinkie "^2.0.0" 1247 | 1248 | pinkie@^2.0.0: 1249 | version "2.0.4" 1250 | resolved "https://registry.yarnpkg.com/pinkie/-/pinkie-2.0.4.tgz#72556b80cfa0d48a974e80e77248e80ed4f7f870" 1251 | 1252 | pluralize@^7.0.0: 1253 | version "7.0.0" 1254 | resolved "https://registry.yarnpkg.com/pluralize/-/pluralize-7.0.0.tgz#298b89df8b93b0221dbf421ad2b1b1ea23fc6777" 1255 | 1256 | prelude-ls@~1.1.2: 1257 | version "1.1.2" 1258 | resolved "https://registry.yarnpkg.com/prelude-ls/-/prelude-ls-1.1.2.tgz#21932a549f5e52ffd9a827f570e04be62a97da54" 1259 | 1260 | prepend-http@^1.0.1: 1261 | version "1.0.4" 1262 | resolved "https://registry.yarnpkg.com/prepend-http/-/prepend-http-1.0.4.tgz#d4f4562b0ce3696e41ac52d0e002e57a635dc6dc" 1263 | 1264 | prettier@^1.12.1: 1265 | version "1.12.1" 1266 | resolved "https://registry.yarnpkg.com/prettier/-/prettier-1.12.1.tgz#c1ad20e803e7749faf905a409d2367e06bbe7325" 1267 | 1268 | pretty-quick@^1.4.1: 1269 | version "1.4.1" 1270 | resolved "https://registry.yarnpkg.com/pretty-quick/-/pretty-quick-1.4.1.tgz#9d41f778d2d4d940ec603d1293a0998e84c4722c" 1271 | dependencies: 1272 | chalk "^2.3.0" 1273 | execa "^0.8.0" 1274 | find-up "^2.1.0" 1275 | ignore "^3.3.7" 1276 | mri "^1.1.0" 1277 | 1278 | process-nextick-args@~2.0.0: 1279 | version "2.0.0" 1280 | resolved "https://registry.yarnpkg.com/process-nextick-args/-/process-nextick-args-2.0.0.tgz#a37d732f4271b4ab1ad070d35508e8290788ffaa" 1281 | 1282 | progress@^2.0.0: 1283 | version "2.0.0" 1284 | resolved "https://registry.yarnpkg.com/progress/-/progress-2.0.0.tgz#8a1be366bf8fc23db2bd23f10c6fe920b4389d1f" 1285 | 1286 | pseudomap@^1.0.2: 1287 | version "1.0.2" 1288 | resolved "https://registry.yarnpkg.com/pseudomap/-/pseudomap-1.0.2.tgz#f052a28da70e618917ef0a8ac34c1ae5a68286b3" 1289 | 1290 | punycode@^2.1.0: 1291 | version "2.1.0" 1292 | resolved "https://registry.yarnpkg.com/punycode/-/punycode-2.1.0.tgz#5f863edc89b96db09074bad7947bf09056ca4e7d" 1293 | 1294 | raven@^2.2.1: 1295 | version "2.6.0" 1296 | resolved "https://registry.yarnpkg.com/raven/-/raven-2.6.0.tgz#3806a82c9ee8cd3e75c3b7ea7bb1935aad092d0c" 1297 | dependencies: 1298 | cookie "0.3.1" 1299 | md5 "^2.2.1" 1300 | stack-trace "0.0.10" 1301 | timed-out "4.0.1" 1302 | uuid "3.0.0" 1303 | 1304 | rc@^1.0.1, rc@^1.1.6: 1305 | version "1.2.7" 1306 | resolved "https://registry.yarnpkg.com/rc/-/rc-1.2.7.tgz#8a10ca30d588d00464360372b890d06dacd02297" 1307 | dependencies: 1308 | deep-extend "^0.5.1" 1309 | ini "~1.3.0" 1310 | minimist "^1.2.0" 1311 | strip-json-comments "~2.0.1" 1312 | 1313 | read-pkg-up@^1.0.1: 1314 | version "1.0.1" 1315 | resolved "https://registry.yarnpkg.com/read-pkg-up/-/read-pkg-up-1.0.1.tgz#9d63c13276c065918d57f002a57f40a1b643fb02" 1316 | dependencies: 1317 | find-up "^1.0.0" 1318 | read-pkg "^1.0.0" 1319 | 1320 | read-pkg@^1.0.0: 1321 | version "1.1.0" 1322 | resolved "https://registry.yarnpkg.com/read-pkg/-/read-pkg-1.1.0.tgz#f5ffaa5ecd29cb31c0474bca7d756b6bb29e3f28" 1323 | dependencies: 1324 | load-json-file "^1.0.0" 1325 | normalize-package-data "^2.3.2" 1326 | path-type "^1.0.0" 1327 | 1328 | readable-stream@^2.2.2: 1329 | version "2.3.6" 1330 | resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.3.6.tgz#b11c27d88b8ff1fbe070643cf94b0c79ae1b0aaf" 1331 | dependencies: 1332 | core-util-is "~1.0.0" 1333 | inherits "~2.0.3" 1334 | isarray "~1.0.0" 1335 | process-nextick-args "~2.0.0" 1336 | safe-buffer "~5.1.1" 1337 | string_decoder "~1.1.1" 1338 | util-deprecate "~1.0.1" 1339 | 1340 | redent@^1.0.0: 1341 | version "1.0.0" 1342 | resolved "https://registry.yarnpkg.com/redent/-/redent-1.0.0.tgz#cf916ab1fd5f1f16dfb20822dd6ec7f730c2afde" 1343 | dependencies: 1344 | indent-string "^2.1.0" 1345 | strip-indent "^1.0.1" 1346 | 1347 | regexpp@^1.0.1: 1348 | version "1.1.0" 1349 | resolved "https://registry.yarnpkg.com/regexpp/-/regexpp-1.1.0.tgz#0e3516dd0b7904f413d2d4193dce4618c3a689ab" 1350 | 1351 | registry-auth-token@^3.0.1: 1352 | version "3.3.2" 1353 | resolved "https://registry.yarnpkg.com/registry-auth-token/-/registry-auth-token-3.3.2.tgz#851fd49038eecb586911115af845260eec983f20" 1354 | dependencies: 1355 | rc "^1.1.6" 1356 | safe-buffer "^5.0.1" 1357 | 1358 | registry-url@^3.0.3: 1359 | version "3.1.0" 1360 | resolved "https://registry.yarnpkg.com/registry-url/-/registry-url-3.1.0.tgz#3d4ef870f73dde1d77f0cf9a381432444e174942" 1361 | dependencies: 1362 | rc "^1.0.1" 1363 | 1364 | repeating@^2.0.0: 1365 | version "2.0.1" 1366 | resolved "https://registry.yarnpkg.com/repeating/-/repeating-2.0.1.tgz#5214c53a926d3552707527fbab415dbc08d06dda" 1367 | dependencies: 1368 | is-finite "^1.0.0" 1369 | 1370 | require-uncached@^1.0.3: 1371 | version "1.0.3" 1372 | resolved "https://registry.yarnpkg.com/require-uncached/-/require-uncached-1.0.3.tgz#4e0d56d6c9662fd31e43011c4b95aa49955421d3" 1373 | dependencies: 1374 | caller-path "^0.1.0" 1375 | resolve-from "^1.0.0" 1376 | 1377 | resolve-from@^1.0.0: 1378 | version "1.0.1" 1379 | resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-1.0.1.tgz#26cbfe935d1aeeeabb29bc3fe5aeb01e93d44226" 1380 | 1381 | resolve@1.1.7: 1382 | version "1.1.7" 1383 | resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.1.7.tgz#203114d82ad2c5ed9e8e0411b3932875e889e97b" 1384 | 1385 | restore-cursor@^2.0.0: 1386 | version "2.0.0" 1387 | resolved "https://registry.yarnpkg.com/restore-cursor/-/restore-cursor-2.0.0.tgz#9f7ee287f82fd326d4fd162923d62129eee0dfaf" 1388 | dependencies: 1389 | onetime "^2.0.0" 1390 | signal-exit "^3.0.2" 1391 | 1392 | rimraf@^2.2.8, rimraf@^2.6.1: 1393 | version "2.6.2" 1394 | resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-2.6.2.tgz#2ed8150d24a16ea8651e6d6ef0f47c4158ce7a36" 1395 | dependencies: 1396 | glob "^7.0.5" 1397 | 1398 | robots-parser@^1.0.2: 1399 | version "1.0.2" 1400 | resolved "https://registry.yarnpkg.com/robots-parser/-/robots-parser-1.0.2.tgz#9ebe25b1a2c52773cbe6f1dbe90ebc9518089009" 1401 | 1402 | rollup@^0.58.2: 1403 | version "0.58.2" 1404 | resolved "https://registry.yarnpkg.com/rollup/-/rollup-0.58.2.tgz#2feddea8c0c022f3e74b35c48e3c21b3433803ce" 1405 | dependencies: 1406 | "@types/estree" "0.0.38" 1407 | "@types/node" "*" 1408 | 1409 | run-async@^2.2.0: 1410 | version "2.3.0" 1411 | resolved "https://registry.yarnpkg.com/run-async/-/run-async-2.3.0.tgz#0371ab4ae0bdd720d4166d7dfda64ff7a445a6c0" 1412 | dependencies: 1413 | is-promise "^2.1.0" 1414 | 1415 | rx-lite-aggregates@^4.0.8: 1416 | version "4.0.8" 1417 | resolved "https://registry.yarnpkg.com/rx-lite-aggregates/-/rx-lite-aggregates-4.0.8.tgz#753b87a89a11c95467c4ac1626c4efc4e05c67be" 1418 | dependencies: 1419 | rx-lite "*" 1420 | 1421 | rx-lite@*, rx-lite@^4.0.8: 1422 | version "4.0.8" 1423 | resolved "https://registry.yarnpkg.com/rx-lite/-/rx-lite-4.0.8.tgz#0b1e11af8bc44836f04a6407e92da42467b79444" 1424 | 1425 | safe-buffer@^5.0.1, safe-buffer@~5.1.0, safe-buffer@~5.1.1: 1426 | version "5.1.2" 1427 | resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.2.tgz#991ec69d296e0313747d59bdfd2b745c35f8828d" 1428 | 1429 | safer-buffer@^2.1.0: 1430 | version "2.1.2" 1431 | resolved "https://registry.yarnpkg.com/safer-buffer/-/safer-buffer-2.1.2.tgz#44fa161b0187b9549dd84bb91802f9bd8385cd6a" 1432 | 1433 | semver-diff@^2.0.0: 1434 | version "2.1.0" 1435 | resolved "https://registry.yarnpkg.com/semver-diff/-/semver-diff-2.1.0.tgz#4bbb8437c8d37e4b0cf1a68fd726ec6d645d6d36" 1436 | dependencies: 1437 | semver "^5.0.3" 1438 | 1439 | "semver@2 || 3 || 4 || 5", semver@^5.0.3, semver@^5.1.0, semver@^5.3.0: 1440 | version "5.5.0" 1441 | resolved "https://registry.yarnpkg.com/semver/-/semver-5.5.0.tgz#dc4bbc7a6ca9d916dee5d43516f0092b58f7b8ab" 1442 | 1443 | shebang-command@^1.2.0: 1444 | version "1.2.0" 1445 | resolved "https://registry.yarnpkg.com/shebang-command/-/shebang-command-1.2.0.tgz#44aac65b695b03398968c39f363fee5deafdf1ea" 1446 | dependencies: 1447 | shebang-regex "^1.0.0" 1448 | 1449 | shebang-regex@^1.0.0: 1450 | version "1.0.0" 1451 | resolved "https://registry.yarnpkg.com/shebang-regex/-/shebang-regex-1.0.0.tgz#da42f49740c0b42db2ca9728571cb190c98efea3" 1452 | 1453 | signal-exit@^3.0.0, signal-exit@^3.0.2: 1454 | version "3.0.2" 1455 | resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.2.tgz#b5fdc08f1287ea1178628e415e25132b73646c6d" 1456 | 1457 | slash@^1.0.0: 1458 | version "1.0.0" 1459 | resolved "https://registry.yarnpkg.com/slash/-/slash-1.0.0.tgz#c41f2f6c39fc16d1cd17ad4b5d896114ae470d55" 1460 | 1461 | slice-ansi@1.0.0: 1462 | version "1.0.0" 1463 | resolved "https://registry.yarnpkg.com/slice-ansi/-/slice-ansi-1.0.0.tgz#044f1a49d8842ff307aad6b505ed178bd950134d" 1464 | dependencies: 1465 | is-fullwidth-code-point "^2.0.0" 1466 | 1467 | spdx-correct@^3.0.0: 1468 | version "3.0.0" 1469 | resolved "https://registry.yarnpkg.com/spdx-correct/-/spdx-correct-3.0.0.tgz#05a5b4d7153a195bc92c3c425b69f3b2a9524c82" 1470 | dependencies: 1471 | spdx-expression-parse "^3.0.0" 1472 | spdx-license-ids "^3.0.0" 1473 | 1474 | spdx-exceptions@^2.1.0: 1475 | version "2.1.0" 1476 | resolved "https://registry.yarnpkg.com/spdx-exceptions/-/spdx-exceptions-2.1.0.tgz#2c7ae61056c714a5b9b9b2b2af7d311ef5c78fe9" 1477 | 1478 | spdx-expression-parse@^3.0.0: 1479 | version "3.0.0" 1480 | resolved "https://registry.yarnpkg.com/spdx-expression-parse/-/spdx-expression-parse-3.0.0.tgz#99e119b7a5da00e05491c9fa338b7904823b41d0" 1481 | dependencies: 1482 | spdx-exceptions "^2.1.0" 1483 | spdx-license-ids "^3.0.0" 1484 | 1485 | spdx-license-ids@^3.0.0: 1486 | version "3.0.0" 1487 | resolved "https://registry.yarnpkg.com/spdx-license-ids/-/spdx-license-ids-3.0.0.tgz#7a7cd28470cc6d3a1cfe6d66886f6bc430d3ac87" 1488 | 1489 | speedline@1.3.0: 1490 | version "1.3.0" 1491 | resolved "https://registry.yarnpkg.com/speedline/-/speedline-1.3.0.tgz#201c458ca7aba2ac847fe5860c1a92966aaed3a9" 1492 | dependencies: 1493 | babar "0.0.3" 1494 | image-ssim "^0.2.0" 1495 | jpeg-js "^0.1.2" 1496 | loud-rejection "^1.6.0" 1497 | meow "^3.7.0" 1498 | 1499 | sprintf-js@~1.0.2: 1500 | version "1.0.3" 1501 | resolved "https://registry.yarnpkg.com/sprintf-js/-/sprintf-js-1.0.3.tgz#04e6926f662895354f3dd015203633b857297e2c" 1502 | 1503 | stack-trace@0.0.10: 1504 | version "0.0.10" 1505 | resolved "https://registry.yarnpkg.com/stack-trace/-/stack-trace-0.0.10.tgz#547c70b347e8d32b4e108ea1a2a159e5fdde19c0" 1506 | 1507 | string-width@^1.0.1: 1508 | version "1.0.2" 1509 | resolved "https://registry.yarnpkg.com/string-width/-/string-width-1.0.2.tgz#118bdf5b8cdc51a2a7e70d211e07e2b0b9b107d3" 1510 | dependencies: 1511 | code-point-at "^1.0.0" 1512 | is-fullwidth-code-point "^1.0.0" 1513 | strip-ansi "^3.0.0" 1514 | 1515 | string-width@^2.0.0, string-width@^2.1.0, string-width@^2.1.1: 1516 | version "2.1.1" 1517 | resolved "https://registry.yarnpkg.com/string-width/-/string-width-2.1.1.tgz#ab93f27a8dc13d28cac815c462143a6d9012ae9e" 1518 | dependencies: 1519 | is-fullwidth-code-point "^2.0.0" 1520 | strip-ansi "^4.0.0" 1521 | 1522 | string_decoder@~1.1.1: 1523 | version "1.1.1" 1524 | resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.1.1.tgz#9cf1611ba62685d7030ae9e4ba34149c3af03fc8" 1525 | dependencies: 1526 | safe-buffer "~5.1.0" 1527 | 1528 | strip-ansi@^3.0.0, strip-ansi@^3.0.1: 1529 | version "3.0.1" 1530 | resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-3.0.1.tgz#6a385fb8853d952d5ff05d0e8aaf94278dc63dcf" 1531 | dependencies: 1532 | ansi-regex "^2.0.0" 1533 | 1534 | strip-ansi@^4.0.0: 1535 | version "4.0.0" 1536 | resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-4.0.0.tgz#a8479022eb1ac368a871389b635262c505ee368f" 1537 | dependencies: 1538 | ansi-regex "^3.0.0" 1539 | 1540 | strip-bom@^2.0.0: 1541 | version "2.0.0" 1542 | resolved "https://registry.yarnpkg.com/strip-bom/-/strip-bom-2.0.0.tgz#6219a85616520491f35788bdbf1447a99c7e6b0e" 1543 | dependencies: 1544 | is-utf8 "^0.2.0" 1545 | 1546 | strip-eof@^1.0.0: 1547 | version "1.0.0" 1548 | resolved "https://registry.yarnpkg.com/strip-eof/-/strip-eof-1.0.0.tgz#bb43ff5598a6eb05d89b59fcd129c983313606bf" 1549 | 1550 | strip-indent@^1.0.1: 1551 | version "1.0.1" 1552 | resolved "https://registry.yarnpkg.com/strip-indent/-/strip-indent-1.0.1.tgz#0c7962a6adefa7bbd4ac366460a638552ae1a0a2" 1553 | dependencies: 1554 | get-stdin "^4.0.1" 1555 | 1556 | strip-indent@^2.0.0: 1557 | version "2.0.0" 1558 | resolved "https://registry.yarnpkg.com/strip-indent/-/strip-indent-2.0.0.tgz#5ef8db295d01e6ed6cbf7aab96998d7822527b68" 1559 | 1560 | strip-json-comments@~2.0.1: 1561 | version "2.0.1" 1562 | resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-2.0.1.tgz#3c531942e908c2697c0ec344858c286c7ca0a60a" 1563 | 1564 | supports-color@^2.0.0: 1565 | version "2.0.0" 1566 | resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-2.0.0.tgz#535d045ce6b6363fa40117084629995e9df324c7" 1567 | 1568 | supports-color@^5.3.0: 1569 | version "5.4.0" 1570 | resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-5.4.0.tgz#1c6b337402c2137605efe19f10fec390f6faab54" 1571 | dependencies: 1572 | has-flag "^3.0.0" 1573 | 1574 | table@4.0.2: 1575 | version "4.0.2" 1576 | resolved "https://registry.yarnpkg.com/table/-/table-4.0.2.tgz#a33447375391e766ad34d3486e6e2aedc84d2e36" 1577 | dependencies: 1578 | ajv "^5.2.3" 1579 | ajv-keywords "^2.1.0" 1580 | chalk "^2.1.0" 1581 | lodash "^4.17.4" 1582 | slice-ansi "1.0.0" 1583 | string-width "^2.1.1" 1584 | 1585 | term-size@^1.2.0: 1586 | version "1.2.0" 1587 | resolved "https://registry.yarnpkg.com/term-size/-/term-size-1.2.0.tgz#458b83887f288fc56d6fffbfad262e26638efa69" 1588 | dependencies: 1589 | execa "^0.7.0" 1590 | 1591 | text-table@~0.2.0: 1592 | version "0.2.0" 1593 | resolved "https://registry.yarnpkg.com/text-table/-/text-table-0.2.0.tgz#7f5ee823ae805207c00af2df4a84ec3fcfa570b4" 1594 | 1595 | through@^2.3.6: 1596 | version "2.3.8" 1597 | resolved "https://registry.yarnpkg.com/through/-/through-2.3.8.tgz#0dd4c9ffaabc357960b1b724115d7e0e86a2e1f5" 1598 | 1599 | timed-out@4.0.1, timed-out@^4.0.0: 1600 | version "4.0.1" 1601 | resolved "https://registry.yarnpkg.com/timed-out/-/timed-out-4.0.1.tgz#f32eacac5a175bea25d7fab565ab3ed8741ef56f" 1602 | 1603 | tmp@^0.0.31: 1604 | version "0.0.31" 1605 | resolved "https://registry.yarnpkg.com/tmp/-/tmp-0.0.31.tgz#8f38ab9438e17315e5dbd8b3657e8bfb277ae4a7" 1606 | dependencies: 1607 | os-tmpdir "~1.0.1" 1608 | 1609 | tmp@^0.0.33: 1610 | version "0.0.33" 1611 | resolved "https://registry.yarnpkg.com/tmp/-/tmp-0.0.33.tgz#6d34335889768d21b2bcda0aa277ced3b1bfadf9" 1612 | dependencies: 1613 | os-tmpdir "~1.0.2" 1614 | 1615 | tr46@^1.0.1: 1616 | version "1.0.1" 1617 | resolved "https://registry.yarnpkg.com/tr46/-/tr46-1.0.1.tgz#a8b13fd6bfd2489519674ccde55ba3693b706d09" 1618 | dependencies: 1619 | punycode "^2.1.0" 1620 | 1621 | trim-newlines@^1.0.0: 1622 | version "1.0.0" 1623 | resolved "https://registry.yarnpkg.com/trim-newlines/-/trim-newlines-1.0.0.tgz#5887966bb582a4503a41eb524f7d35011815a613" 1624 | 1625 | type-check@~0.3.2: 1626 | version "0.3.2" 1627 | resolved "https://registry.yarnpkg.com/type-check/-/type-check-0.3.2.tgz#5884cab512cf1d355e3fb784f30804b2b520db72" 1628 | dependencies: 1629 | prelude-ls "~1.1.2" 1630 | 1631 | typedarray@^0.0.6: 1632 | version "0.0.6" 1633 | resolved "https://registry.yarnpkg.com/typedarray/-/typedarray-0.0.6.tgz#867ac74e3864187b1d3d47d996a78ec5c8830777" 1634 | 1635 | ultron@~1.1.0: 1636 | version "1.1.1" 1637 | resolved "https://registry.yarnpkg.com/ultron/-/ultron-1.1.1.tgz#9fe1536a10a664a65266a1e3ccf85fd36302bc9c" 1638 | 1639 | unique-string@^1.0.0: 1640 | version "1.0.0" 1641 | resolved "https://registry.yarnpkg.com/unique-string/-/unique-string-1.0.0.tgz#9e1057cca851abb93398f8b33ae187b99caec11a" 1642 | dependencies: 1643 | crypto-random-string "^1.0.0" 1644 | 1645 | universalify@^0.1.0: 1646 | version "0.1.1" 1647 | resolved "https://registry.yarnpkg.com/universalify/-/universalify-0.1.1.tgz#fa71badd4437af4c148841e3b3b165f9e9e590b7" 1648 | 1649 | unzip-response@^2.0.1: 1650 | version "2.0.1" 1651 | resolved "https://registry.yarnpkg.com/unzip-response/-/unzip-response-2.0.1.tgz#d2f0f737d16b0615e72a6935ed04214572d56f97" 1652 | 1653 | update-notifier@^2.1.0, update-notifier@^2.2.0: 1654 | version "2.5.0" 1655 | resolved "https://registry.yarnpkg.com/update-notifier/-/update-notifier-2.5.0.tgz#d0744593e13f161e406acb1d9408b72cad08aff6" 1656 | dependencies: 1657 | boxen "^1.2.1" 1658 | chalk "^2.0.1" 1659 | configstore "^3.0.0" 1660 | import-lazy "^2.1.0" 1661 | is-ci "^1.0.10" 1662 | is-installed-globally "^0.1.0" 1663 | is-npm "^1.0.0" 1664 | latest-version "^3.0.0" 1665 | semver-diff "^2.0.0" 1666 | xdg-basedir "^3.0.0" 1667 | 1668 | url-parse-lax@^1.0.0: 1669 | version "1.0.0" 1670 | resolved "https://registry.yarnpkg.com/url-parse-lax/-/url-parse-lax-1.0.0.tgz#7af8f303645e9bd79a272e7a14ac68bc0609da73" 1671 | dependencies: 1672 | prepend-http "^1.0.1" 1673 | 1674 | user-home@^2.0.0: 1675 | version "2.0.0" 1676 | resolved "https://registry.yarnpkg.com/user-home/-/user-home-2.0.0.tgz#9c70bfd8169bc1dcbf48604e0f04b8b49cde9e9f" 1677 | dependencies: 1678 | os-homedir "^1.0.0" 1679 | 1680 | util-deprecate@~1.0.1: 1681 | version "1.0.2" 1682 | resolved "https://registry.yarnpkg.com/util-deprecate/-/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf" 1683 | 1684 | uuid@3.0.0: 1685 | version "3.0.0" 1686 | resolved "https://registry.yarnpkg.com/uuid/-/uuid-3.0.0.tgz#6728fc0459c450d796a99c31837569bdf672d728" 1687 | 1688 | validate-npm-package-license@^3.0.1: 1689 | version "3.0.3" 1690 | resolved "https://registry.yarnpkg.com/validate-npm-package-license/-/validate-npm-package-license-3.0.3.tgz#81643bcbef1bdfecd4623793dc4648948ba98338" 1691 | dependencies: 1692 | spdx-correct "^3.0.0" 1693 | spdx-expression-parse "^3.0.0" 1694 | 1695 | webidl-conversions@^4.0.2: 1696 | version "4.0.2" 1697 | resolved "https://registry.yarnpkg.com/webidl-conversions/-/webidl-conversions-4.0.2.tgz#a855980b1f0b6b359ba1d5d9fb39ae941faa63ad" 1698 | 1699 | whatwg-url@^6.3.0: 1700 | version "6.4.1" 1701 | resolved "https://registry.yarnpkg.com/whatwg-url/-/whatwg-url-6.4.1.tgz#fdb94b440fd4ad836202c16e9737d511f012fd67" 1702 | dependencies: 1703 | lodash.sortby "^4.7.0" 1704 | tr46 "^1.0.1" 1705 | webidl-conversions "^4.0.2" 1706 | 1707 | which@^1.2.9: 1708 | version "1.3.0" 1709 | resolved "https://registry.yarnpkg.com/which/-/which-1.3.0.tgz#ff04bdfc010ee547d780bec38e1ac1c2777d253a" 1710 | dependencies: 1711 | isexe "^2.0.0" 1712 | 1713 | widest-line@^2.0.0: 1714 | version "2.0.0" 1715 | resolved "https://registry.yarnpkg.com/widest-line/-/widest-line-2.0.0.tgz#0142a4e8a243f8882c0233aa0e0281aa76152273" 1716 | dependencies: 1717 | string-width "^2.1.1" 1718 | 1719 | window-size@^0.1.4: 1720 | version "0.1.4" 1721 | resolved "https://registry.yarnpkg.com/window-size/-/window-size-0.1.4.tgz#f8e1aa1ee5a53ec5bf151ffa09742a6ad7697876" 1722 | 1723 | wordwrap@~1.0.0: 1724 | version "1.0.0" 1725 | resolved "https://registry.yarnpkg.com/wordwrap/-/wordwrap-1.0.0.tgz#27584810891456a4171c8d0226441ade90cbcaeb" 1726 | 1727 | wrap-ansi@^2.0.0: 1728 | version "2.1.0" 1729 | resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-2.1.0.tgz#d8fc3d284dd05794fe84973caecdd1cf824fdd85" 1730 | dependencies: 1731 | string-width "^1.0.1" 1732 | strip-ansi "^3.0.1" 1733 | 1734 | wrappy@1: 1735 | version "1.0.2" 1736 | resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f" 1737 | 1738 | write-file-atomic@^2.0.0: 1739 | version "2.3.0" 1740 | resolved "https://registry.yarnpkg.com/write-file-atomic/-/write-file-atomic-2.3.0.tgz#1ff61575c2e2a4e8e510d6fa4e243cce183999ab" 1741 | dependencies: 1742 | graceful-fs "^4.1.11" 1743 | imurmurhash "^0.1.4" 1744 | signal-exit "^3.0.2" 1745 | 1746 | write@^0.2.1: 1747 | version "0.2.1" 1748 | resolved "https://registry.yarnpkg.com/write/-/write-0.2.1.tgz#5fc03828e264cea3fe91455476f7a3c566cb0757" 1749 | dependencies: 1750 | mkdirp "^0.5.1" 1751 | 1752 | ws@3.3.2: 1753 | version "3.3.2" 1754 | resolved "https://registry.yarnpkg.com/ws/-/ws-3.3.2.tgz#96c1d08b3fefda1d5c1e33700d3bfaa9be2d5608" 1755 | dependencies: 1756 | async-limiter "~1.0.0" 1757 | safe-buffer "~5.1.0" 1758 | ultron "~1.1.0" 1759 | 1760 | xdg-basedir@^3.0.0: 1761 | version "3.0.0" 1762 | resolved "https://registry.yarnpkg.com/xdg-basedir/-/xdg-basedir-3.0.0.tgz#496b2cc109eca8dbacfe2dc72b603c17c5870ad4" 1763 | 1764 | y18n@^3.2.0: 1765 | version "3.2.1" 1766 | resolved "https://registry.yarnpkg.com/y18n/-/y18n-3.2.1.tgz#6d15fba884c08679c0d77e88e7759e811e07fa41" 1767 | 1768 | yallist@^2.1.2: 1769 | version "2.1.2" 1770 | resolved "https://registry.yarnpkg.com/yallist/-/yallist-2.1.2.tgz#1c11f9218f076089a47dd512f93c6699a6a81d52" 1771 | 1772 | yargs-parser@7.0.0: 1773 | version "7.0.0" 1774 | resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-7.0.0.tgz#8d0ac42f16ea55debd332caf4c4038b3e3f5dfd9" 1775 | dependencies: 1776 | camelcase "^4.1.0" 1777 | 1778 | yargs@3.32.0: 1779 | version "3.32.0" 1780 | resolved "https://registry.yarnpkg.com/yargs/-/yargs-3.32.0.tgz#03088e9ebf9e756b69751611d2a5ef591482c995" 1781 | dependencies: 1782 | camelcase "^2.0.1" 1783 | cliui "^3.0.3" 1784 | decamelize "^1.1.1" 1785 | os-locale "^1.4.0" 1786 | string-width "^1.0.1" 1787 | window-size "^0.1.4" 1788 | y18n "^3.2.0" 1789 | --------------------------------------------------------------------------------