├── .gitignore ├── .babelrc ├── .travis.yml ├── bin └── cli.js ├── lib ├── index.js ├── state │ ├── debug.js │ ├── state.js │ └── init.js ├── out │ ├── emoji.js │ ├── install-packages.js │ ├── static-output.js │ └── interactive-update.js ├── in │ ├── best-guess-homepage.js │ ├── read-package-json.js │ ├── get-installed-packages.js │ ├── get-latest-from-registry.js │ ├── index.js │ ├── get-unused-packages.js │ └── create-package-summary.js └── cli.js ├── .editorconfig ├── appveyor.yml ├── license ├── index.d.ts ├── package.json ├── README.md └── yarn.lock /.gitignore: -------------------------------------------------------------------------------- 1 | /.idea/ 2 | /node_modules/ 3 | /*.log 4 | /lib-es5/ 5 | -------------------------------------------------------------------------------- /.babelrc: -------------------------------------------------------------------------------- 1 | { 2 | "presets": [ 3 | "es2015" 4 | ], 5 | "plugins": [ 6 | "transform-runtime" 7 | ] 8 | } 9 | -------------------------------------------------------------------------------- /.travis.yml: -------------------------------------------------------------------------------- 1 | sudo: false 2 | 3 | language: node_js 4 | 5 | os: 6 | - linux 7 | - osx 8 | 9 | node_js: 10 | - 7 11 | - 6 12 | - 4 13 | -------------------------------------------------------------------------------- /bin/cli.js: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env node 2 | 3 | var isEs2015; 4 | try { 5 | isEs2015 = new Function('() => {}'); 6 | } catch (e) { 7 | isEs2015 = false; 8 | } 9 | isEs2015 ? require('../lib/cli') : require('../lib-es5/cli'); 10 | -------------------------------------------------------------------------------- /lib/index.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | 3 | const npmCheck = require('./in'); 4 | const createState = require('./state/state'); 5 | 6 | function init(userOptions) { 7 | return createState(userOptions) 8 | .then(currentState => npmCheck(currentState)); 9 | } 10 | 11 | module.exports = init; 12 | -------------------------------------------------------------------------------- /lib/state/debug.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | const chalk = require('chalk'); 3 | 4 | function debug() { 5 | console.log(chalk.green('[npm-check] debug')); 6 | console.log.apply(console, arguments); 7 | console.log(`${chalk.green('===============================')}`); 8 | } 9 | 10 | module.exports = debug; 11 | -------------------------------------------------------------------------------- /lib/out/emoji.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | 3 | const emoji = require('node-emoji'); 4 | 5 | let emojiEnabled = true; 6 | 7 | function output(name) { 8 | if (emojiEnabled) { 9 | return emoji.emojify(name); 10 | } 11 | 12 | return ''; 13 | } 14 | 15 | function enabled(val) { 16 | emojiEnabled = val; 17 | } 18 | 19 | module.exports = output; 20 | module.exports.enabled = enabled; 21 | -------------------------------------------------------------------------------- /.editorconfig: -------------------------------------------------------------------------------- 1 | # Get the plugin for your editor and your 2 | # tab settings will be set automatically. 3 | # http://EditorConfig.org 4 | 5 | # top-most EditorConfig file 6 | root = true 7 | 8 | # Unix-style newlines with newline ending every file 9 | [*] 10 | end_of_line = lf 11 | insert_final_newline = true 12 | indent_style = space 13 | indent_size = 2 14 | charset = utf-8 15 | trim_trailing_whitespace = true 16 | insert_final_newline = true 17 | 18 | # Indentation override for all JS under lib directory 19 | [*.js] 20 | indent_size = 4 21 | -------------------------------------------------------------------------------- /appveyor.yml: -------------------------------------------------------------------------------- 1 | environment: 2 | matrix: 3 | - nodejs_version: 7 4 | - nodejs_version: 6 5 | - nodejs_version: 4 6 | 7 | install: 8 | - ps: Install-Product node $env:nodejs_version 9 | - npm i -g npm@3 10 | - npm install 11 | - set CI=true 12 | 13 | test_script: 14 | - node --version 15 | - npm --version 16 | - npm run lint 17 | - "node lib\\cli.js || ver > null" 18 | - "echo Exit code: %errorlevel%" 19 | 20 | build: off 21 | shallow_clone: true 22 | clone_depth: 1 23 | version: '{build}' 24 | matrix: 25 | fast_finish: true 26 | -------------------------------------------------------------------------------- /lib/in/best-guess-homepage.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | 3 | const gitUrl = require('giturl'); 4 | 5 | function bestGuessHomepage(data) { 6 | if (!data) { 7 | return false; 8 | } 9 | 10 | const packageDataForLatest = data.versions[data['dist-tags'].latest]; 11 | 12 | return packageDataForLatest.homepage || 13 | packageDataForLatest.bugs && packageDataForLatest.bugs.url && gitUrl.parse(packageDataForLatest.bugs.url.trim()) || 14 | packageDataForLatest.repository && packageDataForLatest.repository.url && gitUrl.parse(packageDataForLatest.repository.url.trim()); 15 | } 16 | 17 | module.exports = bestGuessHomepage; 18 | -------------------------------------------------------------------------------- /lib/in/read-package-json.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | 3 | const merge = require('merge-options'); 4 | 5 | function readPackageJson(filename) { 6 | let pkg; 7 | let error; 8 | try { 9 | pkg = require(filename); 10 | } catch (e) { 11 | if (e.code === 'MODULE_NOT_FOUND') { 12 | error = new Error(`A package.json was not found at ${filename}`); 13 | } else { 14 | error = new Error(`A package.json was found at ${filename}, but it is not valid.`); 15 | } 16 | } 17 | return merge(pkg, {devDependencies: {}, dependencies: {}, error: error}); 18 | } 19 | 20 | module.exports = readPackageJson; 21 | -------------------------------------------------------------------------------- /lib/in/get-installed-packages.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | const _ = require('lodash'); 3 | const globby = require('globby'); 4 | const readPackageJson = require('./read-package-json'); 5 | const path = require('path'); 6 | 7 | module.exports = function (cwd) { 8 | const GLOBBY_PACKAGE_JSON = '{*/package.json,@*/*/package.json}'; 9 | const installedPackages = globby.sync(GLOBBY_PACKAGE_JSON, {cwd: cwd}); 10 | 11 | return _(installedPackages) 12 | .map(pkgPath => { 13 | const pkg = readPackageJson(path.resolve(cwd, pkgPath)); 14 | return [pkg.name, pkg.version]; 15 | }) 16 | .fromPairs() 17 | .valueOf(); 18 | }; 19 | -------------------------------------------------------------------------------- /license: -------------------------------------------------------------------------------- 1 | The MIT License (MIT) 2 | 3 | Copyright (c) Dylan Greene 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 13 | all 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 21 | THE SOFTWARE. 22 | -------------------------------------------------------------------------------- /lib/out/install-packages.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | 3 | const chalk = require('chalk'); 4 | const execa = require('execa'); 5 | const ora = require('ora'); 6 | 7 | function install(packages, currentState) { 8 | if (!packages.length) { 9 | return Promise.resolve(currentState); 10 | } 11 | 12 | const installer = currentState.get('installer'); 13 | const installGlobal = currentState.get('global') ? '--global' : null; 14 | const saveExact = currentState.get('saveExact') ? '--save-exact' : null; 15 | const color = chalk.supportsColor ? '--color=always' : null; 16 | 17 | const npmArgs = ['install'] 18 | .concat(installGlobal) 19 | .concat(saveExact) 20 | .concat(packages) 21 | .concat(color) 22 | .filter(Boolean); 23 | 24 | console.log(''); 25 | console.log(`$ ${chalk.green(installer)} ${chalk.green(npmArgs.join(' '))}`); 26 | const spinner = ora(`Installing using ${chalk.green(installer)}...`); 27 | spinner.enabled = spinner.enabled && currentState.get('spinner'); 28 | spinner.start(); 29 | 30 | return execa(installer, npmArgs, {cwd: currentState.get('cwd')}).then(output => { 31 | spinner.stop(); 32 | console.log(output.stdout); 33 | console.log(output.stderr); 34 | 35 | return currentState; 36 | }).catch(err => { 37 | spinner.stop(); 38 | throw err; 39 | }); 40 | } 41 | 42 | module.exports = install; 43 | -------------------------------------------------------------------------------- /lib/in/get-latest-from-registry.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | 3 | const _ = require('lodash'); 4 | const bestGuessHomepage = require('./best-guess-homepage'); 5 | const semver = require('semver'); 6 | const packageJson = require('package-json'); 7 | const cpuCount = require('os').cpus().length; 8 | const throat = require('throat')(cpuCount); 9 | 10 | function getNpmInfo(packageName) { 11 | return throat(() => packageJson(packageName, { fullMetadata: true, allVersions: true })) 12 | .then(rawData => { 13 | const CRAZY_HIGH_SEMVER = '8000.0.0'; 14 | 15 | const sortedVersions = _(rawData.versions) 16 | .keys() 17 | .remove(_.partial(semver.gt, CRAZY_HIGH_SEMVER)) 18 | .sort(semver.compare) 19 | .valueOf(); 20 | 21 | const latest = rawData['dist-tags'].latest; 22 | const next = rawData['dist-tags'].next; 23 | const latestStableRelease = semver.satisfies(latest, '*') ? 24 | latest : 25 | semver.maxSatisfying(sortedVersions, '*'); 26 | return { 27 | latest: latestStableRelease, 28 | next: next, 29 | versions: sortedVersions, 30 | homepage: bestGuessHomepage(rawData) 31 | }; 32 | }).catch(err => { 33 | const errorMessage = `Registry error ${err.message}`; 34 | return { 35 | error: errorMessage 36 | }; 37 | }); 38 | } 39 | 40 | module.exports = getNpmInfo; 41 | -------------------------------------------------------------------------------- /lib/in/index.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | const co = require('co'); 3 | const merge = require('merge-options'); 4 | const ora = require('ora'); 5 | const getUnusedPackages = require('./get-unused-packages'); 6 | const createPackageSummary = require('./create-package-summary'); 7 | 8 | module.exports = function (currentState) { 9 | return co(function *() { 10 | yield getUnusedPackages(currentState); 11 | 12 | const spinner = ora(`Checking npm registries for updated packages.`); 13 | spinner.enabled = spinner.enabled && currentState.get('spinner'); 14 | spinner.start(); 15 | 16 | const cwdPackageJson = currentState.get('cwdPackageJson'); 17 | 18 | function dependencies(pkg) { 19 | if (currentState.get('global')) { 20 | return currentState.get('globalPackages'); 21 | } 22 | 23 | if (currentState.get('ignoreDev')) { 24 | return pkg.dependencies; 25 | } 26 | 27 | if (currentState.get('devOnly')) { 28 | return pkg.devDependencies; 29 | } 30 | 31 | return merge(pkg.dependencies, pkg.devDependencies); 32 | } 33 | 34 | const allDependencies = dependencies(cwdPackageJson); 35 | const allDependenciesIncludingMissing = Object.keys(merge(allDependencies, currentState.get('missingFromPackageJson'))); 36 | 37 | const arrayOfPackageInfo = yield allDependenciesIncludingMissing 38 | .map(moduleName => createPackageSummary(moduleName, currentState)) 39 | .filter(Boolean); 40 | 41 | currentState.set('packages', arrayOfPackageInfo); 42 | 43 | spinner.stop(); 44 | return currentState; 45 | }); 46 | }; 47 | -------------------------------------------------------------------------------- /lib/state/state.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | const mergeOptions = require('merge-options'); 3 | const init = require('./init'); 4 | const debug = require('./debug'); 5 | 6 | const defaultOptions = { 7 | update: false, 8 | global: false, 9 | cwd: process.cwd(), 10 | nodeModulesPath: false, 11 | skipUnused: false, 12 | 13 | ignoreDev: false, 14 | devOnly: false, 15 | forceColor: false, 16 | saveExact: false, 17 | specials: '', 18 | debug: false, 19 | emoji: true, 20 | spinner: false, 21 | installer: 'npm', 22 | ignore: [], 23 | 24 | globalPackages: {}, 25 | cwdPackageJson: {devDependencies: {}, dependencies: {}}, 26 | 27 | packages: false, 28 | unusedDependencies: false, 29 | missingFromPackageJson: {} 30 | }; 31 | 32 | function state(userOptions) { 33 | const currentStateObject = mergeOptions(defaultOptions, {}); 34 | 35 | function get(key) { 36 | if (!currentStateObject.hasOwnProperty(key)) { 37 | throw new Error(`Can't get unknown option "${key}".`); 38 | } 39 | return currentStateObject[key]; 40 | } 41 | 42 | function set(key, value) { 43 | if (get('debug')) { 44 | debug('set key', key, 'to value', value); 45 | } 46 | 47 | if (currentStateObject.hasOwnProperty(key)) { 48 | currentStateObject[key] = value; 49 | } else { 50 | throw new Error(`unknown option "${key}" setting to "${JSON.stringify(value, false, 4)}".`); 51 | } 52 | } 53 | 54 | function inspectIfDebugMode() { 55 | if (get('debug')) { 56 | inspect(); 57 | } 58 | } 59 | 60 | function inspect() { 61 | debug('current state', all()); 62 | } 63 | 64 | function all() { 65 | return currentStateObject; 66 | } 67 | 68 | const currentState = { 69 | get: get, 70 | set: set, 71 | all, 72 | inspectIfDebugMode 73 | }; 74 | 75 | return init(currentState, userOptions); 76 | } 77 | module.exports = state; 78 | -------------------------------------------------------------------------------- /lib/state/init.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | const _ = require('lodash'); 3 | const path = require('path'); 4 | const globalModulesPath = require('global-modules'); 5 | const readPackageJson = require('../in/read-package-json'); 6 | const globalPackages = require('../in/get-installed-packages'); 7 | const emoji = require('../out/emoji'); 8 | const fs = require('fs'); 9 | const chalk = require('chalk'); 10 | 11 | function init(currentState, userOptions) { 12 | return new Promise((resolve, reject) => { 13 | _.each(userOptions, (value, key) => currentState.set(key, value)); 14 | 15 | if (currentState.get('global')) { 16 | let modulesPath = globalModulesPath; 17 | 18 | if (process.env.NODE_PATH) { 19 | if (process.env.NODE_PATH.indexOf(path.delimiter) !== -1) { 20 | modulesPath = process.env.NODE_PATH.split(path.delimiter)[0]; 21 | console.log(chalk.yellow('warning: Using the first of multiple paths specified in NODE_PATH')); 22 | } else { 23 | modulesPath = process.env.NODE_PATH; 24 | } 25 | } 26 | 27 | if (!fs.existsSync(modulesPath)) { 28 | throw new Error('Path "' + modulesPath + '" does not exist. Please check the NODE_PATH environment variable.'); 29 | } 30 | 31 | console.log(chalk.green('The global path you are searching is: ' + modulesPath)); 32 | 33 | currentState.set('cwd', globalModulesPath); 34 | currentState.set('nodeModulesPath', globalModulesPath); 35 | currentState.set('globalPackages', globalPackages(modulesPath)); 36 | } else { 37 | const cwd = path.resolve(currentState.get('cwd')); 38 | const pkg = readPackageJson(path.join(cwd, 'package.json')); 39 | currentState.set('cwdPackageJson', pkg); 40 | currentState.set('cwd', cwd); 41 | currentState.set('nodeModulesPath', path.join(cwd, 'node_modules')); 42 | } 43 | 44 | emoji.enabled(currentState.get('emoji')); 45 | 46 | if (currentState.get('cwdPackageJson').error) { 47 | return reject(currentState.get('cwdPackageJson').error); 48 | } 49 | 50 | return resolve(currentState); 51 | }); 52 | } 53 | 54 | module.exports = init; 55 | -------------------------------------------------------------------------------- /index.d.ts: -------------------------------------------------------------------------------- 1 | declare module NpmCheck { 2 | interface INpmCheckOptions { 3 | global?: boolean; 4 | update?: boolean; 5 | skipUnused?: boolean; 6 | devOnly?: boolean; 7 | ignoreDev?: boolean; 8 | cwd?: string; 9 | saveExact?: boolean; 10 | currentState?: Object; 11 | } 12 | 13 | type INpmCheckGetSetValues = "packages" | "debug" | "global" | "cwd" | "cwdPackageJson" | "emoji"; 14 | 15 | type INpmVersionBumpType = "patch" | "minor" | "major" | "prerelease" | "build" | "nonSemver" | null; 16 | 17 | interface INpmCheckCurrentState { 18 | get: (key: INpmCheckGetSetValues) => INpmCheckPackage[]; 19 | set: (key: INpmCheckGetSetValues, val: any) => void; 20 | } 21 | 22 | interface INpmCheckPackage { 23 | moduleName: string; // name of the module. 24 | homepage: string; // url to the home page. 25 | regError: any; // error communicating with the registry 26 | pkgError: any; // error reading the package.json 27 | latest: string; // latest according to the registry. 28 | installed: string; // version installed 29 | isInstalled: boolean; // Is it installed? 30 | notInstalled: boolean; // Is it installed? 31 | packageWanted: string; // Requested version from the package.json. 32 | packageJson: string; // Version or range requested in the parent package.json. 33 | devDependency: boolean; // Is this a devDependency? 34 | usedInScripts: undefined | string[], // Array of `scripts` in package.json that use this module. 35 | mismatch: boolean; // Does the version installed not match the range in package.json? 36 | semverValid: string; // Is the installed version valid semver? 37 | easyUpgrade: boolean; // Will running just `npm install` upgrade the module? 38 | bump: INpmVersionBumpType; // What kind of bump is required to get the latest 39 | unused: boolean; // Is this module used in the code? 40 | } 41 | 42 | //The default function returns a promise 43 | export default function(options: INpmCheckOptions): { 44 | then(stateFn: (state: INpmCheckCurrentState) => void): void; 45 | }; 46 | 47 | } 48 | 49 | declare module "npm-check" { 50 | export = NpmCheck.default; 51 | } -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "npm-check", 3 | "version": "5.5.2", 4 | "description": "Check for outdated, incorrect, and unused dependencies.", 5 | "main": "lib", 6 | "engines": { 7 | "node": ">=0.11.0" 8 | }, 9 | "types": "./index.d.ts", 10 | "typings": "./index.d.ts", 11 | "scripts": { 12 | "lint": "xo ./lib/*.js", 13 | "test": "npm run lint && ./bin/cli.js || echo Exit Status: $?.", 14 | "transpile": "babel lib --out-dir lib-es5", 15 | "watch": "babel lib --out-dir lib-es5 --watch", 16 | "prepublish": "npm run transpile" 17 | }, 18 | "xo": { 19 | "space": 4, 20 | "rules": { 21 | "no-warning-comments": [ 22 | 0 23 | ], 24 | "global-require": [ 25 | 0 26 | ] 27 | } 28 | }, 29 | "bin": { 30 | "npm-check": "bin/cli.js" 31 | }, 32 | "repository": { 33 | "type": "git", 34 | "url": "https://github.com/dylang/npm-check.git" 35 | }, 36 | "keywords": [ 37 | "npm", 38 | "outdated", 39 | "dependencies", 40 | "unused", 41 | "changelog", 42 | "check", 43 | "updates", 44 | "api", 45 | "interactive", 46 | "cli", 47 | "safe", 48 | "updating", 49 | "updater", 50 | "installer", 51 | "devDependencies" 52 | ], 53 | "author": { 54 | "name": "Dylan Greene", 55 | "email": "dylang@gmail.com" 56 | }, 57 | "license": "MIT", 58 | "bugs": { 59 | "url": "https://github.com/dylang/npm-check/issues" 60 | }, 61 | "homepage": "https://github.com/dylang/npm-check", 62 | "files": [ 63 | "bin", 64 | "lib", 65 | "lib-es5" 66 | ], 67 | "dependencies": { 68 | "babel-runtime": "^6.6.1", 69 | "callsite-record": "^3.0.0", 70 | "chalk": "^1.1.3", 71 | "co": "^4.6.0", 72 | "depcheck": "^0.6.3", 73 | "execa": "^0.2.2", 74 | "giturl": "^1.0.0", 75 | "global-modules": "^1.0.0", 76 | "globby": "^4.0.0", 77 | "inquirer": "^0.12.0", 78 | "is-ci": "^1.0.8", 79 | "lodash": "^4.7.0", 80 | "meow": "^3.7.0", 81 | "merge-options": "0.0.64", 82 | "minimatch": "^3.0.2", 83 | "node-emoji": "^1.0.3", 84 | "ora": "^0.2.1", 85 | "package-json": "^4.0.1", 86 | "path-exists": "^2.1.0", 87 | "pkg-dir": "^1.0.0", 88 | "semver": "^5.0.1", 89 | "semver-diff": "^2.0.0", 90 | "text-table": "^0.2.0", 91 | "throat": "^2.0.2", 92 | "update-notifier": "^2.1.0" 93 | }, 94 | "devDependencies": { 95 | "babel-cli": "^6.6.5", 96 | "babel-plugin-transform-runtime": "^6.6.0", 97 | "babel-preset-es2015": "^6.6.0", 98 | "xo": "^0.13.0" 99 | } 100 | } 101 | -------------------------------------------------------------------------------- /lib/in/get-unused-packages.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | 3 | const depcheck = require('depcheck'); 4 | const ora = require('ora'); 5 | const _ = require('lodash'); 6 | 7 | function skipUnused(currentState) { 8 | return currentState.get('skipUnused') || // manual option to ignore this 9 | currentState.get('global') || // global modules 10 | currentState.get('update') || // in the process of doing an update 11 | !currentState.get('cwdPackageJson').name; // there's no package.json 12 | } 13 | 14 | function getSpecialParsers(currentState) { 15 | const specialsInput = currentState.get('specials'); 16 | if (!specialsInput) return; 17 | return specialsInput 18 | .split(',') 19 | .map((special) => depcheck.special[special]) 20 | .filter(Boolean); 21 | } 22 | 23 | function checkUnused(currentState) { 24 | const spinner = ora(`Checking for unused packages. --skip-unused if you don't want this.`); 25 | spinner.enabled = spinner.enabled && currentState.get('spinner'); 26 | spinner.start(); 27 | 28 | return new Promise(resolve => { 29 | if (skipUnused(currentState)) { 30 | resolve(currentState); 31 | return; 32 | } 33 | 34 | const depCheckOptions = { 35 | ignoreDirs: [ 36 | 'sandbox', 37 | 'dist', 38 | 'generated', 39 | '.generated', 40 | 'build', 41 | 'fixtures', 42 | 'jspm_packages' 43 | ], 44 | ignoreMatches: [ 45 | 'gulp-*', 46 | 'grunt-*', 47 | 'karma-*', 48 | 'angular-*', 49 | 'babel-*', 50 | 'metalsmith-*', 51 | 'eslint-plugin-*', 52 | '@types/*', 53 | 'grunt', 54 | 'mocha', 55 | 'ava' 56 | ], 57 | specials: getSpecialParsers(currentState) 58 | }; 59 | 60 | depcheck(currentState.get('cwd'), depCheckOptions, resolve); 61 | }).then(depCheckResults => { 62 | spinner.stop(); 63 | const unusedDependencies = [].concat(depCheckResults.dependencies, depCheckResults.devDependencies); 64 | currentState.set('unusedDependencies', unusedDependencies); 65 | 66 | const cwdPackageJson = currentState.get('cwdPackageJson'); 67 | 68 | // currently missing will return devDependencies that aren't really missing 69 | const missingFromPackageJson = _.omit(depCheckResults.missing || {}, 70 | Object.keys(cwdPackageJson.dependencies), Object.keys(cwdPackageJson.devDependencies)); 71 | currentState.set('missingFromPackageJson', missingFromPackageJson); 72 | return currentState; 73 | }); 74 | } 75 | 76 | module.exports = checkUnused; 77 | -------------------------------------------------------------------------------- /lib/cli.js: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env node 2 | 'use strict'; 3 | 4 | const meow = require('meow'); 5 | const updateNotifier = require('update-notifier'); 6 | const isCI = require('is-ci'); 7 | const createCallsiteRecord = require('callsite-record'); 8 | const pkg = require('../package.json'); 9 | const npmCheck = require('./index'); 10 | const staticOutput = require('./out/static-output'); 11 | const interactiveUpdate = require('./out/interactive-update'); 12 | const debug = require('./state/debug'); 13 | const pkgDir = require('pkg-dir'); 14 | 15 | updateNotifier({pkg}).notify(); 16 | 17 | const cli = meow({ 18 | help: ` 19 | Usage 20 | $ npm-check 21 | 22 | Path 23 | Where to check. Defaults to current directory. Use -g for checking global modules. 24 | 25 | Options 26 | -u, --update Interactive update. 27 | -g, --global Look at global modules. 28 | -s, --skip-unused Skip check for unused packages. 29 | -p, --production Skip devDependencies. 30 | -d, --dev-only Look at devDependencies only (skip dependencies). 31 | -i, --ignore Ignore dependencies based on succeeding glob. 32 | -E, --save-exact Save exact version (x.y.z) instead of caret (^x.y.z) in package.json. 33 | --specials List of depcheck specials to include in check for unused dependencies. 34 | --no-color Force or disable color output. 35 | --no-emoji Remove emoji support. No emoji in default in CI environments. 36 | --debug Debug output. Throw in a gist when creating issues on github. 37 | 38 | Examples 39 | $ npm-check # See what can be updated, what isn't being used. 40 | $ npm-check ../foo # Check another path. 41 | $ npm-check -gu # Update globally installed modules by picking which ones to upgrade. 42 | `}, 43 | { 44 | alias: { 45 | u: 'update', 46 | g: 'global', 47 | s: 'skip-unused', 48 | p: 'production', 49 | d: 'dev-only', 50 | E: 'save-exact', 51 | i: 'ignore' 52 | }, 53 | default: { 54 | dir: pkgDir.sync() || process.cwd(), 55 | emoji: !isCI, 56 | spinner: !isCI 57 | }, 58 | boolean: [ 59 | 'update', 60 | 'global', 61 | 'skip-unused', 62 | 'production', 63 | 'dev-only', 64 | 'save-exact', 65 | 'color', 66 | 'emoji', 67 | 'spinner' 68 | ], 69 | string: [ 70 | 'ignore', 71 | 'specials' 72 | ] 73 | }); 74 | 75 | const options = { 76 | cwd: cli.input[0] || cli.flags.dir, 77 | update: cli.flags.update, 78 | global: cli.flags.global, 79 | skipUnused: cli.flags.skipUnused, 80 | ignoreDev: cli.flags.production, 81 | devOnly: cli.flags.devOnly, 82 | saveExact: cli.flags.saveExact, 83 | specials: cli.flags.specials, 84 | emoji: cli.flags.emoji, 85 | installer: process.env.NPM_CHECK_INSTALLER || 'npm', 86 | debug: cli.flags.debug, 87 | spinner: cli.flags.spinner, 88 | ignore: cli.flags.ignore 89 | }; 90 | 91 | if (options.debug) { 92 | debug('cli.flags', cli.flags); 93 | debug('cli.input', cli.input); 94 | } 95 | 96 | npmCheck(options) 97 | .then(currentState => { 98 | currentState.inspectIfDebugMode(); 99 | 100 | if (options.update) { 101 | return interactiveUpdate(currentState); 102 | } 103 | 104 | return staticOutput(currentState); 105 | }) 106 | .catch(err => { 107 | console.log(err.message); 108 | if (options.debug) { 109 | console.log(createCallsiteRecord(err).renderSync()); 110 | } else { 111 | console.log('For more detail, add `--debug` to the command'); 112 | } 113 | process.exit(1); 114 | }); 115 | -------------------------------------------------------------------------------- /lib/out/static-output.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | 3 | const chalk = require('chalk'); 4 | const _ = require('lodash'); 5 | const table = require('text-table'); 6 | const emoji = require('./emoji'); 7 | 8 | function uppercaseFirstLetter(str) { 9 | return str[0].toUpperCase() + str.substr(1); 10 | } 11 | 12 | function render(pkg, currentState) { 13 | const packageName = pkg.moduleName; 14 | const rows = []; 15 | 16 | const indent = ' ' + emoji(' '); 17 | const flags = currentState.get('global') ? '--global' : `--save${pkg.devDependency ? '-dev' : ''}`; 18 | const upgradeCommand = `npm install ${flags} ${packageName}@${pkg.latest}`; 19 | const upgradeMessage = `${chalk.green(upgradeCommand)} to go from ${pkg.installed} to ${pkg.latest}`; 20 | // DYLAN: clean this up 21 | const status = _([ 22 | pkg.notInstalled ? chalk.bgRed.white.bold(emoji(' :worried: ') + ' MISSING! ') + ' Not installed.' : '', 23 | pkg.notInPackageJson ? chalk.bgRed.white.bold(emoji(' :worried: ') + ' PKG ERR! ') + ' Not in the package.json. ' + pkg.notInPackageJson : '', 24 | pkg.pkgError && !pkg.notInstalled ? chalk.bgGreen.white.bold(emoji(' :worried: ') + ' PKG ERR! ') + ' ' + chalk.red(pkg.pkgError.message) : '', 25 | pkg.bump && pkg.easyUpgrade ? [ 26 | chalk.bgGreen.white.bold(emoji(' :heart_eyes: ') + ' UPDATE! ') + ' Your local install is out of date. ' + chalk.blue.underline(pkg.homepage || ''), 27 | indent + upgradeMessage 28 | ] : '', 29 | pkg.bump && !pkg.easyUpgrade ? [ 30 | chalk.white.bold.bgGreen((pkg.bump === 'nonSemver' ? emoji(' :sunglasses: ') + ' new ver! '.toUpperCase() : emoji(' :sunglasses: ') + ' ' + pkg.bump.toUpperCase() + ' UP ')) + ' ' + uppercaseFirstLetter(pkg.bump) + ' update available. ' + chalk.blue.underline(pkg.homepage || ''), 31 | indent + upgradeMessage 32 | ] : '', 33 | pkg.unused ? [ 34 | chalk.black.bold.bgWhite(emoji(' :confused: ') + ' NOTUSED? ') + ` ${chalk.yellow(`Still using ${packageName}?`)}`, 35 | indent + `Depcheck did not find code similar to ${chalk.green(`require('${packageName}')`)} or ${chalk.green(`import from '${packageName}'`)}.`, 36 | indent + `Check your code before removing as depcheck isn't able to foresee all ways dependencies can be used.`, 37 | indent + `Use ${chalk.green('--skip-unused')} to skip this check.`, 38 | indent + `To remove this package: ${chalk.green(`npm uninstall --save${pkg.devDependency ? '-dev' : ''} ${packageName}`)}` 39 | ] : '', 40 | pkg.mismatch && !pkg.bump ? chalk.bgRed.yellow.bold(emoji(' :interrobang: ') + ' MISMATCH ') + ' Installed version does not match package.json. ' + pkg.installed + ' ≠ ' + pkg.packageJson : '', 41 | pkg.regError ? chalk.bgRed.white.bold(emoji(' :no_entry: ') + ' NPM ERR! ') + ' ' + chalk.red(pkg.regError) : '' 42 | ]) 43 | .flatten() 44 | .compact() 45 | .valueOf(); 46 | 47 | if (!status.length) { 48 | return false; 49 | } 50 | 51 | rows.push( 52 | [ 53 | chalk.yellow(packageName), 54 | status.shift() 55 | ]); 56 | 57 | while (status.length) { 58 | rows.push([ 59 | ' ', 60 | status.shift() 61 | ]); 62 | } 63 | 64 | rows.push( 65 | [ 66 | ' ' 67 | ]); 68 | 69 | return rows; 70 | } 71 | 72 | function outputConsole(currentState) { 73 | const packages = currentState.get('packages'); 74 | 75 | const rows = packages.reduce((acc, pkg) => { 76 | return acc.concat(render(pkg, currentState)); 77 | }, []) 78 | .filter(Boolean); 79 | 80 | if (rows.length) { 81 | const renderedTable = table(rows, { 82 | stringLength: s => chalk.stripColor(s).length 83 | }); 84 | 85 | console.log(''); 86 | console.log(renderedTable); 87 | console.log(`Use ${chalk.green(`npm-check -${currentState.get('global') ? 'g' : ''}u`)} for interactive update.`); 88 | process.exitCode = 1; 89 | } else { 90 | console.log(`${emoji(':heart: ')}Your modules look ${chalk.bold('amazing')}. Keep up the great work.${emoji(' :heart:')}`); 91 | process.exitCode = 0; 92 | } 93 | } 94 | 95 | module.exports = outputConsole; 96 | -------------------------------------------------------------------------------- /lib/in/create-package-summary.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | 3 | const readPackageJson = require('./read-package-json'); 4 | const getLatestFromRegistry = require('./get-latest-from-registry'); 5 | const _ = require('lodash'); 6 | const semverDiff = require('semver-diff'); 7 | const pathExists = require('path-exists'); 8 | const path = require('path'); 9 | const semver = require('semver'); 10 | const minimatch = require('minimatch'); 11 | 12 | function createPackageSummary(moduleName, currentState) { 13 | const cwdPackageJson = currentState.get('cwdPackageJson'); 14 | 15 | const modulePath = path.join(currentState.get('nodeModulesPath'), moduleName); 16 | const packageIsInstalled = pathExists.sync(modulePath); 17 | const modulePackageJson = readPackageJson(path.join(modulePath, 'package.json')); 18 | 19 | // Ignore private packages 20 | const isPrivate = Boolean(modulePackageJson.private); 21 | if (isPrivate) { 22 | return false; 23 | } 24 | 25 | // Ignore packages that are using github or file urls 26 | const packageJsonVersion = cwdPackageJson.dependencies[moduleName] || 27 | cwdPackageJson.devDependencies[moduleName] || 28 | currentState.get('globalPackages')[moduleName]; 29 | 30 | if (packageJsonVersion && !semver.validRange(packageJsonVersion)) { 31 | return false; 32 | } 33 | 34 | // Ignore specified '--ignore' package globs 35 | const ignore = currentState.get('ignore'); 36 | if (ignore) { 37 | const ignoreMatch = Array.isArray(ignore) ? ignore.some(ignoredModule => minimatch(moduleName, ignoredModule)) : minimatch(moduleName, ignore); 38 | if (ignoreMatch) { 39 | return false; 40 | } 41 | } 42 | 43 | const unusedDependencies = currentState.get('unusedDependencies'); 44 | const missingFromPackageJson = currentState.get('missingFromPackageJson'); 45 | 46 | function foundIn(files) { 47 | if (!files) { 48 | return; 49 | } 50 | 51 | return 'Found in: ' + files.map(filepath => filepath.replace(currentState.get('cwd'), '')) 52 | .join(', '); 53 | } 54 | 55 | return getLatestFromRegistry(moduleName) 56 | .then(fromRegistry => { 57 | const installedVersion = modulePackageJson.version; 58 | 59 | const latest = installedVersion && fromRegistry.latest && fromRegistry.next && semver.gt(installedVersion, fromRegistry.latest) ? fromRegistry.next : fromRegistry.latest; 60 | const versions = fromRegistry.versions || []; 61 | 62 | const versionWanted = semver.maxSatisfying(versions, packageJsonVersion); 63 | 64 | const versionToUse = installedVersion || versionWanted; 65 | const usingNonSemver = semver.valid(latest) && semver.lt(latest, '1.0.0-pre'); 66 | 67 | const bump = semver.valid(latest) && 68 | semver.valid(versionToUse) && 69 | (usingNonSemver && semverDiff(versionToUse, latest) ? 'nonSemver' : semverDiff(versionToUse, latest)); 70 | 71 | const unused = _.includes(unusedDependencies, moduleName); 72 | 73 | return { 74 | // info 75 | moduleName: moduleName, 76 | homepage: fromRegistry.homepage, 77 | regError: fromRegistry.error, 78 | pkgError: modulePackageJson.error, 79 | 80 | // versions 81 | latest: latest, 82 | installed: versionToUse, 83 | isInstalled: packageIsInstalled, 84 | notInstalled: !packageIsInstalled, 85 | packageWanted: versionWanted, 86 | packageJson: packageJsonVersion, 87 | 88 | // Missing from package json 89 | notInPackageJson: foundIn(missingFromPackageJson[moduleName]), 90 | 91 | // meta 92 | devDependency: _.has(cwdPackageJson.devDependencies, moduleName), 93 | usedInScripts: _.findKey(cwdPackageJson.scripts, script => { 94 | return script.indexOf(moduleName) !== -1; 95 | }), 96 | mismatch: semver.validRange(packageJsonVersion) && 97 | semver.valid(versionToUse) && 98 | !semver.satisfies(versionToUse, packageJsonVersion), 99 | semverValid: 100 | semver.valid(versionToUse), 101 | easyUpgrade: semver.validRange(packageJsonVersion) && 102 | semver.valid(versionToUse) && 103 | semver.satisfies(latest, packageJsonVersion) && 104 | bump !== 'major', 105 | bump: bump, 106 | 107 | unused: unused 108 | }; 109 | }); 110 | } 111 | 112 | module.exports = createPackageSummary; 113 | -------------------------------------------------------------------------------- /lib/out/interactive-update.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | 3 | const _ = require('lodash'); 4 | const inquirer = require('inquirer'); 5 | const chalk = require('chalk'); 6 | const table = require('text-table'); 7 | const installPackages = require('./install-packages'); 8 | const emoji = require('./emoji'); 9 | 10 | const UI_GROUPS = [ 11 | { 12 | title: chalk.bold.underline.green('Update package.json to match version installed.'), 13 | filter: {mismatch: true, bump: null} 14 | }, 15 | { 16 | title: `${chalk.bold.underline.green('Missing.')} ${chalk.green('You probably want these.')}`, 17 | filter: {notInstalled: true, bump: null} 18 | }, 19 | { 20 | title: `${chalk.bold.underline.green('Patch Update')} ${chalk.green('Backwards-compatible bug fixes.')}`, 21 | filter: {bump: 'patch'} 22 | }, 23 | { 24 | title: `${chalk.yellow.underline.bold('Minor Update')} ${chalk.yellow('New backwards-compatible features.')}`, 25 | bgColor: 'yellow', 26 | filter: {bump: 'minor'} 27 | }, 28 | { 29 | title: `${chalk.red.underline.bold('Major Update')} ${chalk.red('Potentially breaking API changes. Use caution.')}`, 30 | filter: {bump: 'major'} 31 | }, 32 | { 33 | title: `${chalk.magenta.underline.bold('Non-Semver')} ${chalk.magenta('Versions less than 1.0.0, caution.')}`, 34 | filter: {bump: 'nonSemver'} 35 | } 36 | ]; 37 | 38 | function label(pkg) { 39 | const bumpInstalled = pkg.bump ? pkg.installed : ''; 40 | const installed = pkg.mismatch ? pkg.packageJson : bumpInstalled; 41 | const name = chalk.yellow(pkg.moduleName); 42 | const type = pkg.devDependency ? chalk.green(' devDep') : ''; 43 | const missing = pkg.notInstalled ? chalk.red(' missing') : ''; 44 | const homepage = pkg.homepage ? chalk.blue.underline(pkg.homepage) : ''; 45 | return [ 46 | name + type + missing, 47 | installed, 48 | installed && '❯', 49 | chalk.bold(pkg.latest || ''), 50 | pkg.latest ? homepage : pkg.regError || pkg.pkgError 51 | ]; 52 | } 53 | 54 | function short(pkg) { 55 | return `${pkg.moduleName}@${pkg.latest}`; 56 | } 57 | 58 | function choice(pkg) { 59 | if (!pkg.mismatch && !pkg.bump && !pkg.notInstalled) { 60 | return false; 61 | } 62 | 63 | return { 64 | value: pkg, 65 | name: label(pkg), 66 | short: short(pkg) 67 | }; 68 | } 69 | 70 | function unselectable(options) { 71 | return new inquirer.Separator(chalk.reset(options ? options.title : ' ')); 72 | } 73 | 74 | function createChoices(packages, options) { 75 | const filteredChoices = _.filter(packages, options.filter); 76 | 77 | const choices = filteredChoices.map(choice) 78 | .filter(Boolean); 79 | 80 | const choicesAsATable = table(_.map(choices, 'name'), { 81 | align: ['l', 'l', 'l'], 82 | stringLength: function (str) { 83 | return chalk.stripColor(str).length; 84 | } 85 | }).split('\n'); 86 | 87 | const choicesWithTableFormating = _.map(choices, (choice, i) => { 88 | choice.name = choicesAsATable[i]; 89 | return choice; 90 | }); 91 | 92 | if (choicesWithTableFormating.length) { 93 | choices.unshift(unselectable(options)); 94 | choices.unshift(unselectable()); 95 | return choices; 96 | } 97 | } 98 | 99 | function interactive(currentState) { 100 | const packages = currentState.get('packages'); 101 | 102 | if (currentState.get('debug')) { 103 | console.log('packages', packages); 104 | } 105 | 106 | const choicesGrouped = UI_GROUPS.map(group => createChoices(packages, group)) 107 | .filter(Boolean); 108 | 109 | const choices = _.flatten(choicesGrouped); 110 | 111 | if (!choices.length) { 112 | console.log(`${emoji(':heart: ')}Your modules look ${chalk.bold('amazing')}. Keep up the great work.${emoji(' :heart:')}`); 113 | return; 114 | } 115 | 116 | choices.push(unselectable()); 117 | choices.push(unselectable({title: 'Space to select. Enter to start upgrading. Control-C to cancel.'})); 118 | 119 | const questions = [ 120 | { 121 | name: 'packages', 122 | message: 'Choose which packages to update.', 123 | type: 'checkbox', 124 | choices: choices.concat(unselectable()), 125 | pageSize: process.stdout.rows - 2 126 | } 127 | ]; 128 | 129 | return new Promise(resolve => inquirer.prompt(questions, resolve)).then(answers => { 130 | const packagesToUpdate = answers.packages; 131 | 132 | if (!packagesToUpdate || !packagesToUpdate.length) { 133 | console.log('No packages selected for update.'); 134 | return false; 135 | } 136 | 137 | const saveDependencies = packagesToUpdate 138 | .filter(pkg => !pkg.devDependency) 139 | .map(pkg => pkg.moduleName + '@' + pkg.latest); 140 | 141 | const saveDevDependencies = packagesToUpdate 142 | .filter(pkg => pkg.devDependency) 143 | .map(pkg => pkg.moduleName + '@' + pkg.latest); 144 | 145 | const updatedPackages = packagesToUpdate 146 | .map(pkg => pkg.moduleName + '@' + pkg.latest).join(', '); 147 | 148 | if (!currentState.get('global')) { 149 | if (saveDependencies.length) { 150 | saveDependencies.unshift('--save'); 151 | } 152 | 153 | if (saveDevDependencies.length) { 154 | saveDevDependencies.unshift('--save-dev'); 155 | } 156 | } 157 | 158 | return installPackages(saveDependencies, currentState) 159 | .then(currentState => installPackages(saveDevDependencies, currentState)) 160 | .then(currentState => { 161 | console.log(''); 162 | console.log(chalk.green(`[npm-check] Update complete!`)); 163 | console.log(chalk.green('[npm-check] ' + updatedPackages)); 164 | console.log(chalk.green(`[npm-check] You should re-run your tests to make sure everything works with the updates.`)); 165 | return currentState; 166 | }); 167 | }); 168 | } 169 | 170 | module.exports = interactive; 171 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | npm-check 2 | ========= 3 | [![Build Status](https://travis-ci.org/dylang/npm-check.svg?branch=master)](https://travis-ci.org/dylang/npm-check) 4 | [![NPM version](https://badge.fury.io/js/npm-check.svg)](http://badge.fury.io/js/npm-check) 5 | [![Dependency Status](https://img.shields.io/david/dylang/npm-check.svg)](https://david-dm.org/dylang/npm-check) 6 | [![npm](https://img.shields.io/npm/dm/npm-check.svg?maxAge=2592000)]() 7 | 8 | > Check for outdated, incorrect, and unused dependencies. 9 | 10 | npm-check -u 11 | 12 | ### Features 13 | 14 | * Tells you what's out of date. 15 | * Provides a link to the package's documentation so you can decide if you want the update. 16 | * Kindly informs you if a dependency is not being used in your code. 17 | * Works on your globally installed packages too, via `-g`. 18 | * **Interactive Update** for less typing and fewer typos, via `-u`. 19 | * Supports public and private [@scoped/packages](https://docs.npmjs.com/getting-started/scoped-packages). 20 | * Supports ES6-style [`import from`](http://exploringjs.com/es6/ch_modules.html) syntax. 21 | * Upgrades your modules using your installed version of npm, including the new `npm@3`, so dependencies go where you expect them. 22 | * Works with any public npm registry, [private registries](https://www.npmjs.com/enterprise), and alternate registries like [Sinopia](https://github.com/rlidwka/sinopia). 23 | * Does not query registries for packages with `private: true` in their package.json. 24 | * Emoji in a command-line app, because command-line apps can be fun too. 25 | * Works with `npm@2` and `npm@3`, as well as newer alternative installers like `ied` and `pnpm`. 26 | 27 | ### Requirements 28 | * Node >= 0.11. 29 | 30 | ### On the command line 31 | 32 | This is the easiest way to use `npm-check`. 33 | 34 | ### Install 35 | ```bash 36 | $ npm install -g npm-check 37 | ``` 38 | 39 | ### Use 40 | ```bash 41 | $ npm-check 42 | ``` 43 | 44 | npm-check 45 | 46 | The result should look like the screenshot, or something nice when your packages are all up-to-date and in use. 47 | 48 | When updates are required it will return a non-zero response code that you can use in your CI tools. 49 | 50 | ### Options 51 | 52 | ``` 53 | Usage 54 | $ npm-check 55 | 56 | Path 57 | Where to check. Defaults to current directory. Use -g for checking global modules. 58 | 59 | Options 60 | -u, --update Interactive update. 61 | -g, --global Look at global modules. 62 | -s, --skip-unused Skip check for unused packages. 63 | -p, --production Skip devDependencies. 64 | -d, --dev-only Look at devDependencies only (skip dependencies). 65 | -i, --ignore Ignore dependencies based on succeeding glob. 66 | -E, --save-exact Save exact version (x.y.z) instead of caret (^x.y.z) in package.json. 67 | --specials List of depcheck specials to include in check for unused dependencies. 68 | --no-color Force or disable color output. 69 | --no-emoji Remove emoji support. No emoji in default in CI environments. 70 | --debug Show debug output. Throw in a gist when creating issues on github. 71 | 72 | Examples 73 | $ npm-check # See what can be updated, what isn't being used. 74 | $ npm-check ../foo # Check another path. 75 | $ npm-check -gu # Update globally installed modules by picking which ones to upgrade. 76 | ``` 77 | 78 | ![npm-check-u](https://cloud.githubusercontent.com/assets/51505/9569912/8c600cd8-4f48-11e5-8757-9387a7a21316.gif) 79 | 80 | #### `-u, --update` 81 | 82 | Show an interactive UI for choosing which modules to update. 83 | 84 | Automatically updates versions referenced in the `package.json`. 85 | 86 | _Based on recommendations from the `npm` team, `npm-check` only updates using `npm install`, not `npm update`. 87 | To avoid using more than one version of `npm` in one directory, `npm-check` will automatically install updated modules 88 | using the version of `npm` installed globally._ 89 | 90 | npm-check -g -u 91 | 92 | ##### Update using [ied](https://github.com/alexanderGugel/ied) or [pnpm](https://github.com/rstacruz/pnpm) 93 | 94 | Set environment variable `NPM_CHECK_INSTALLER` to the name of the installer you wish to use. 95 | 96 | ```bash 97 | NPM_CHECK_INSTALLER=pnpm npm-check -u 98 | ## pnpm install --save-dev foo@version --color=always 99 | ``` 100 | 101 | You can also use this for dry-run testing: 102 | 103 | ```bash 104 | NPM_CHECK_INSTALLER=echo npm-check -u 105 | ``` 106 | 107 | #### `-g, --global` 108 | 109 | Check the versions of your globally installed packages. 110 | 111 | If the value of `process.env.NODE_PATH` is set, it will override the default path of global node_modules returned by package [`global-modules`](https://www.npmjs.com/package/global-modules). 112 | 113 | _Tip: Use `npm-check -u -g` to do a safe interactive update of global modules, including npm itself._ 114 | 115 | #### `-s, --skip-unused` 116 | 117 | By default `npm-check` will let you know if any of your modules are not being used by looking at `require` statements 118 | in your code. 119 | 120 | This option will skip that check. 121 | 122 | This is enabled by default when using `global` or `update`. 123 | 124 | #### `-p, --production` 125 | 126 | By default `npm-check` will look at packages listed as `dependencies` and `devDependencies`. 127 | 128 | This option will let it ignore outdated and unused checks for packages listed as `devDependencies`. 129 | 130 | #### `-d, --dev-only` 131 | 132 | Ignore `dependencies` and only check `devDependencies`. 133 | 134 | This option will let it ignore outdated and unused checks for packages listed as `dependencies`. 135 | 136 | #### `-i, --ignore` 137 | 138 | Ignore dependencies that match specified glob. 139 | 140 | `$ npm-check -i babel-*` will ignore all dependencies starting with 'babel-'. 141 | 142 | #### `-E, --save-exact` 143 | 144 | Install packages using `--save-exact`, meaning exact versions will be saved in package.json. 145 | 146 | Applies to both `dependencies` and `devDependencies`. 147 | 148 | #### `--specials` 149 | 150 | Check special (e.g. config) files when looking for unused dependencies. 151 | 152 | `$ npm-check --specials=bin,webpack` will look in the `scripts` section of package.json and in webpack config. 153 | 154 | See [https://github.com/depcheck/depcheck#special](https://github.com/depcheck/depcheck#special) for more information. 155 | 156 | #### `--color, --no-color` 157 | 158 | Enable or disable color support. 159 | 160 | By default `npm-check` uses colors if they are available. 161 | 162 | #### `--emoji, --no-emoji` 163 | 164 | Enable or disable emoji support. Useful for terminals that don't support them. Automatically disabled in CI servers. 165 | 166 | #### `--spinner, --no-spinner` 167 | 168 | Enable or disable the spinner. Useful for terminals that don't support them. Automatically disabled in CI servers. 169 | 170 | ### API 171 | 172 | The API is here in case you want to wrap this with your CI toolset. 173 | 174 | ```js 175 | const npmCheck = require('npm-check'); 176 | 177 | npmCheck(options) 178 | .then(currentState => console.log(currentState.get('packages'))); 179 | ``` 180 | 181 | #### `update` 182 | 183 | * Interactive update. 184 | * default is `false` 185 | 186 | #### `global` 187 | 188 | * Check global modules. 189 | * default is `false` 190 | * `cwd` is automatically set with this option. 191 | 192 | #### `skipUnused` 193 | 194 | * Skip checking for unused packages. 195 | * default is `false` 196 | 197 | #### `ignoreDev` 198 | 199 | * Ignore `devDependencies`. 200 | * This is called `--production` on the command line to match `npm`. 201 | * default is `false` 202 | 203 | #### `devOnly` 204 | 205 | * Ignore `dependencies` and only check `devDependencies`. 206 | * default is `false` 207 | 208 | #### `ignore` 209 | 210 | * Ignore dependencies that match specified glob. 211 | * default is `[]` 212 | 213 | #### `saveExact` 214 | 215 | * Update package.json with exact version `x.y.z` instead of semver range `^x.y.z`. 216 | * default is `false` 217 | 218 | #### `debug` 219 | 220 | * Show debug output. Throw in a gist when creating issues on github. 221 | * default is `false` 222 | 223 | #### `cwd` 224 | 225 | * Override where `npm-check` checks. 226 | * default is `process.cwd()` 227 | 228 | #### `specials` 229 | 230 | * List of [`depcheck`](https://github.com/depcheck/depcheck) special parsers to include. 231 | * default is `''` 232 | 233 | #### `currentState` 234 | 235 | The result of the promise is a `currentState` object, look in [state.js](https://github.com/dylang/npm-check/blob/master/lib/util/state.js) to see how it works. 236 | 237 | You will probably want `currentState.get('packages')` to get an array of packages and the state of each of them. 238 | 239 | Each item in the array will look like the following: 240 | 241 | ```js 242 | { 243 | moduleName: 'lodash', // name of the module. 244 | homepage: 'https://lodash.com/', // url to the home page. 245 | regError: undefined, // error communicating with the registry 246 | pkgError: undefined, // error reading the package.json 247 | latest: '4.7.0', // latest according to the registry. 248 | installed: '4.6.1', // version installed 249 | isInstalled: true, // Is it installed? 250 | notInstalled: false, // Is it installed? 251 | packageWanted: '4.7.0', // Requested version from the package.json. 252 | packageJson: '^4.6.1', // Version or range requested in the parent package.json. 253 | devDependency: false, // Is this a devDependency? 254 | usedInScripts: undefined, // Array of `scripts` in package.json that use this module. 255 | mismatch: false, // Does the version installed not match the range in package.json? 256 | semverValid: '4.6.1', // Is the installed version valid semver? 257 | easyUpgrade: true, // Will running just `npm install` upgrade the module? 258 | bump: 'minor', // What kind of bump is required to get the latest, such as patch, minor, major. 259 | unused: false // Is this module used in the code? 260 | }, 261 | ``` 262 | 263 | You will also see this if you use `--debug` on the command line. 264 | 265 | ### Inspiration 266 | 267 | * [npm outdated](https://www.npmjs.com/doc/cli/npm-outdated.html) - awkward output, requires --depth=0 to be grokable. 268 | * [david](https://github.com/alanshaw/david) - does not work with private registries. 269 | * [update-notifier](https://github.com/yeoman/update-notifier) - for single modules, not everything in package.json. 270 | * [depcheck](https://github.com/depcheck/depcheck) - only part of the puzzle. npm-check uses depcheck. 271 | 272 | ### About the Author 273 | 274 | Hi! Thanks for checking out this project! My name is **Dylan Greene**. When not overwhelmed with my two young kids I enjoy contributing 275 | to the open source community. I'm also a tech lead at [Opower](https://opower.com/). [![@dylang](https://img.shields.io/badge/github-dylang-green.svg)](https://github.com/dylang) [![@dylang](https://img.shields.io/badge/twitter-dylang-blue.svg)](https://twitter.com/dylang) 276 | 277 | Here's some of my other Node projects: 278 | 279 | | Name | Description | npm Downloads | 280 | |---|---|---| 281 | | [`grunt‑notify`](https://github.com/dylang/grunt-notify) | Automatic desktop notifications for Grunt errors and warnings. Supports OS X, Windows, Linux. | [![grunt-notify](https://img.shields.io/npm/dm/grunt-notify.svg?style=flat-square)](https://www.npmjs.org/package/grunt-notify) | 282 | | [`shortid`](https://github.com/dylang/shortid) | Amazingly short non-sequential url-friendly unique id generator. | [![shortid](https://img.shields.io/npm/dm/shortid.svg?style=flat-square)](https://www.npmjs.org/package/shortid) | 283 | | [`space‑hogs`](https://github.com/dylang/space-hogs) | Discover surprisingly large directories from the command line. | [![space-hogs](https://img.shields.io/npm/dm/space-hogs.svg?style=flat-square)](https://www.npmjs.org/package/space-hogs) | 284 | | [`rss`](https://github.com/dylang/node-rss) | RSS feed generator. Add RSS feeds to any project. Supports enclosures and GeoRSS. | [![rss](https://img.shields.io/npm/dm/rss.svg?style=flat-square)](https://www.npmjs.org/package/rss) | 285 | | [`grunt‑prompt`](https://github.com/dylang/grunt-prompt) | Interactive prompt for your Grunt config using console checkboxes, text input with filtering, password fields. | [![grunt-prompt](https://img.shields.io/npm/dm/grunt-prompt.svg?style=flat-square)](https://www.npmjs.org/package/grunt-prompt) | 286 | | [`xml`](https://github.com/dylang/node-xml) | Fast and simple xml generator. Supports attributes, CDATA, etc. Includes tests and examples. | [![xml](https://img.shields.io/npm/dm/xml.svg?style=flat-square)](https://www.npmjs.org/package/xml) | 287 | | [`changelog`](https://github.com/dylang/changelog) | Command line tool (and Node module) that generates a changelog in color output, markdown, or json for modules in npmjs.org's registry as well as any public github.com repo. | [![changelog](https://img.shields.io/npm/dm/changelog.svg?style=flat-square)](https://www.npmjs.org/package/changelog) | 288 | | [`grunt‑attention`](https://github.com/dylang/grunt-attention) | Display attention-grabbing messages in the terminal | [![grunt-attention](https://img.shields.io/npm/dm/grunt-attention.svg?style=flat-square)](https://www.npmjs.org/package/grunt-attention) | 289 | | [`observatory`](https://github.com/dylang/observatory) | Beautiful UI for showing tasks running on the command line. | [![observatory](https://img.shields.io/npm/dm/observatory.svg?style=flat-square)](https://www.npmjs.org/package/observatory) | 290 | | [`anthology`](https://github.com/dylang/anthology) | Module information and stats for any @npmjs user | [![anthology](https://img.shields.io/npm/dm/anthology.svg?style=flat-square)](https://www.npmjs.org/package/anthology) | 291 | | [`grunt‑cat`](https://github.com/dylang/grunt-cat) | Echo a file to the terminal. Works with text, figlets, ascii art, and full-color ansi. | [![grunt-cat](https://img.shields.io/npm/dm/grunt-cat.svg?style=flat-square)](https://www.npmjs.org/package/grunt-cat) | 292 | 293 | _This list was generated using [anthology](https://github.com/dylang/anthology)._ 294 | 295 | ### License 296 | Copyright (c) 2016 Dylan Greene, contributors. 297 | 298 | Released under the [MIT license](https://tldrlegal.com/license/mit-license). 299 | 300 | Screenshots are [CC BY-SA](https://creativecommons.org/licenses/by-sa/4.0/) (Attribution-ShareAlike). 301 | -------------------------------------------------------------------------------- /yarn.lock: -------------------------------------------------------------------------------- 1 | # THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY. 2 | # yarn lockfile v1 3 | 4 | 5 | abbrev@1: 6 | version "1.1.0" 7 | resolved "https://registry.yarnpkg.com/abbrev/-/abbrev-1.1.0.tgz#d0554c2256636e2f56e7c2e5ad183f859428d81f" 8 | 9 | acorn-jsx@^3.0.0: 10 | version "3.0.1" 11 | resolved "https://registry.yarnpkg.com/acorn-jsx/-/acorn-jsx-3.0.1.tgz#afdf9488fb1ecefc8348f6fb22f464e32a58b36b" 12 | dependencies: 13 | acorn "^3.0.4" 14 | 15 | acorn@^3.0.4: 16 | version "3.3.0" 17 | resolved "https://registry.yarnpkg.com/acorn/-/acorn-3.3.0.tgz#45e37fb39e8da3f25baee3ff5369e2bb5f22017a" 18 | 19 | acorn@^5.0.1: 20 | version "5.0.3" 21 | resolved "https://registry.yarnpkg.com/acorn/-/acorn-5.0.3.tgz#c460df08491463f028ccb82eab3730bf01087b3d" 22 | 23 | ajv-keywords@^1.0.0: 24 | version "1.5.1" 25 | resolved "https://registry.yarnpkg.com/ajv-keywords/-/ajv-keywords-1.5.1.tgz#314dd0a4b3368fad3dfcdc54ede6171b886daf3c" 26 | 27 | ajv@^4.7.0, ajv@^4.9.1: 28 | version "4.11.8" 29 | resolved "https://registry.yarnpkg.com/ajv/-/ajv-4.11.8.tgz#82ffb02b29e662ae53bdc20af15947706739c536" 30 | dependencies: 31 | co "^4.6.0" 32 | json-stable-stringify "^1.0.1" 33 | 34 | ansi-align@^2.0.0: 35 | version "2.0.0" 36 | resolved "https://registry.yarnpkg.com/ansi-align/-/ansi-align-2.0.0.tgz#c36aeccba563b89ceb556f3690f0b1d9e3547f7f" 37 | dependencies: 38 | string-width "^2.0.0" 39 | 40 | ansi-escapes@^1.1.0: 41 | version "1.4.0" 42 | resolved "https://registry.yarnpkg.com/ansi-escapes/-/ansi-escapes-1.4.0.tgz#d3a8a83b319aa67793662b13e761c7911422306e" 43 | 44 | ansi-regex@^2.0.0: 45 | version "2.1.1" 46 | resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-2.1.1.tgz#c3b33ab5ee360d86e0e628f0468ae7ef27d654df" 47 | 48 | ansi-styles@^2.2.1: 49 | version "2.2.1" 50 | resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-2.2.1.tgz#b432dd3358b634cf75e1e4664368240533c1ddbe" 51 | 52 | anymatch@^1.3.0: 53 | version "1.3.0" 54 | resolved "https://registry.yarnpkg.com/anymatch/-/anymatch-1.3.0.tgz#a3e52fa39168c825ff57b0248126ce5a8ff95507" 55 | dependencies: 56 | arrify "^1.0.0" 57 | micromatch "^2.1.5" 58 | 59 | aproba@^1.0.3: 60 | version "1.1.1" 61 | resolved "https://registry.yarnpkg.com/aproba/-/aproba-1.1.1.tgz#95d3600f07710aa0e9298c726ad5ecf2eacbabab" 62 | 63 | are-we-there-yet@~1.1.2: 64 | version "1.1.4" 65 | resolved "https://registry.yarnpkg.com/are-we-there-yet/-/are-we-there-yet-1.1.4.tgz#bb5dca382bb94f05e15194373d16fd3ba1ca110d" 66 | dependencies: 67 | delegates "^1.0.0" 68 | readable-stream "^2.0.6" 69 | 70 | argparse@^1.0.7: 71 | version "1.0.9" 72 | resolved "https://registry.yarnpkg.com/argparse/-/argparse-1.0.9.tgz#73d83bc263f86e97f8cc4f6bae1b0e90a7d22c86" 73 | dependencies: 74 | sprintf-js "~1.0.2" 75 | 76 | arr-diff@^2.0.0: 77 | version "2.0.0" 78 | resolved "https://registry.yarnpkg.com/arr-diff/-/arr-diff-2.0.0.tgz#8f3b827f955a8bd669697e4a4256ac3ceae356cf" 79 | dependencies: 80 | arr-flatten "^1.0.1" 81 | 82 | arr-flatten@^1.0.1: 83 | version "1.0.3" 84 | resolved "https://registry.yarnpkg.com/arr-flatten/-/arr-flatten-1.0.3.tgz#a274ed85ac08849b6bd7847c4580745dc51adfb1" 85 | 86 | array-differ@^1.0.0: 87 | version "1.0.0" 88 | resolved "https://registry.yarnpkg.com/array-differ/-/array-differ-1.0.0.tgz#eff52e3758249d33be402b8bb8e564bb2b5d4031" 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 | array-unique@^0.2.1: 105 | version "0.2.1" 106 | resolved "https://registry.yarnpkg.com/array-unique/-/array-unique-0.2.1.tgz#a1d97ccafcbc2625cc70fadceb36a50c58b01a53" 107 | 108 | arrify@^1.0.0: 109 | version "1.0.1" 110 | resolved "https://registry.yarnpkg.com/arrify/-/arrify-1.0.1.tgz#898508da2226f380df904728456849c1501a4b0d" 111 | 112 | asn1@~0.2.3: 113 | version "0.2.3" 114 | resolved "https://registry.yarnpkg.com/asn1/-/asn1-0.2.3.tgz#dac8787713c9966849fc8180777ebe9c1ddf3b86" 115 | 116 | assert-plus@1.0.0, assert-plus@^1.0.0: 117 | version "1.0.0" 118 | resolved "https://registry.yarnpkg.com/assert-plus/-/assert-plus-1.0.0.tgz#f12e0f3c5d77b0b1cdd9146942e4e96c1e4dd525" 119 | 120 | assert-plus@^0.2.0: 121 | version "0.2.0" 122 | resolved "https://registry.yarnpkg.com/assert-plus/-/assert-plus-0.2.0.tgz#d74e1b87e7affc0db8aadb7021f3fe48101ab234" 123 | 124 | async-each@^1.0.0: 125 | version "1.0.1" 126 | resolved "https://registry.yarnpkg.com/async-each/-/async-each-1.0.1.tgz#19d386a1d9edc6e7c1c85d388aedbcc56d33602d" 127 | 128 | asynckit@^0.4.0: 129 | version "0.4.0" 130 | resolved "https://registry.yarnpkg.com/asynckit/-/asynckit-0.4.0.tgz#c79ed97f7f34cb8f2ba1bc9790bcc366474b4b79" 131 | 132 | aws-sign2@~0.6.0: 133 | version "0.6.0" 134 | resolved "https://registry.yarnpkg.com/aws-sign2/-/aws-sign2-0.6.0.tgz#14342dd38dbcc94d0e5b87d763cd63612c0e794f" 135 | 136 | aws4@^1.2.1: 137 | version "1.6.0" 138 | resolved "https://registry.yarnpkg.com/aws4/-/aws4-1.6.0.tgz#83ef5ca860b2b32e4a0deedee8c771b9db57471e" 139 | 140 | babel-cli@^6.6.5: 141 | version "6.24.1" 142 | resolved "https://registry.yarnpkg.com/babel-cli/-/babel-cli-6.24.1.tgz#207cd705bba61489b2ea41b5312341cf6aca2283" 143 | dependencies: 144 | babel-core "^6.24.1" 145 | babel-polyfill "^6.23.0" 146 | babel-register "^6.24.1" 147 | babel-runtime "^6.22.0" 148 | commander "^2.8.1" 149 | convert-source-map "^1.1.0" 150 | fs-readdir-recursive "^1.0.0" 151 | glob "^7.0.0" 152 | lodash "^4.2.0" 153 | output-file-sync "^1.1.0" 154 | path-is-absolute "^1.0.0" 155 | slash "^1.0.0" 156 | source-map "^0.5.0" 157 | v8flags "^2.0.10" 158 | optionalDependencies: 159 | chokidar "^1.6.1" 160 | 161 | babel-code-frame@^6.22.0: 162 | version "6.22.0" 163 | resolved "https://registry.yarnpkg.com/babel-code-frame/-/babel-code-frame-6.22.0.tgz#027620bee567a88c32561574e7fd0801d33118e4" 164 | dependencies: 165 | chalk "^1.1.0" 166 | esutils "^2.0.2" 167 | js-tokens "^3.0.0" 168 | 169 | babel-core@^6.24.1: 170 | version "6.24.1" 171 | resolved "https://registry.yarnpkg.com/babel-core/-/babel-core-6.24.1.tgz#8c428564dce1e1f41fb337ec34f4c3b022b5ad83" 172 | dependencies: 173 | babel-code-frame "^6.22.0" 174 | babel-generator "^6.24.1" 175 | babel-helpers "^6.24.1" 176 | babel-messages "^6.23.0" 177 | babel-register "^6.24.1" 178 | babel-runtime "^6.22.0" 179 | babel-template "^6.24.1" 180 | babel-traverse "^6.24.1" 181 | babel-types "^6.24.1" 182 | babylon "^6.11.0" 183 | convert-source-map "^1.1.0" 184 | debug "^2.1.1" 185 | json5 "^0.5.0" 186 | lodash "^4.2.0" 187 | minimatch "^3.0.2" 188 | path-is-absolute "^1.0.0" 189 | private "^0.1.6" 190 | slash "^1.0.0" 191 | source-map "^0.5.0" 192 | 193 | babel-eslint@^6.0.0-beta.1: 194 | version "6.1.2" 195 | resolved "https://registry.yarnpkg.com/babel-eslint/-/babel-eslint-6.1.2.tgz#5293419fe3672d66598d327da9694567ba6a5f2f" 196 | dependencies: 197 | babel-traverse "^6.0.20" 198 | babel-types "^6.0.19" 199 | babylon "^6.0.18" 200 | lodash.assign "^4.0.0" 201 | lodash.pickby "^4.0.0" 202 | 203 | babel-generator@^6.24.1: 204 | version "6.24.1" 205 | resolved "https://registry.yarnpkg.com/babel-generator/-/babel-generator-6.24.1.tgz#e715f486c58ded25649d888944d52aa07c5d9497" 206 | dependencies: 207 | babel-messages "^6.23.0" 208 | babel-runtime "^6.22.0" 209 | babel-types "^6.24.1" 210 | detect-indent "^4.0.0" 211 | jsesc "^1.3.0" 212 | lodash "^4.2.0" 213 | source-map "^0.5.0" 214 | trim-right "^1.0.1" 215 | 216 | babel-helper-call-delegate@^6.24.1: 217 | version "6.24.1" 218 | resolved "https://registry.yarnpkg.com/babel-helper-call-delegate/-/babel-helper-call-delegate-6.24.1.tgz#ece6aacddc76e41c3461f88bfc575bd0daa2df8d" 219 | dependencies: 220 | babel-helper-hoist-variables "^6.24.1" 221 | babel-runtime "^6.22.0" 222 | babel-traverse "^6.24.1" 223 | babel-types "^6.24.1" 224 | 225 | babel-helper-define-map@^6.24.1: 226 | version "6.24.1" 227 | resolved "https://registry.yarnpkg.com/babel-helper-define-map/-/babel-helper-define-map-6.24.1.tgz#7a9747f258d8947d32d515f6aa1c7bd02204a080" 228 | dependencies: 229 | babel-helper-function-name "^6.24.1" 230 | babel-runtime "^6.22.0" 231 | babel-types "^6.24.1" 232 | lodash "^4.2.0" 233 | 234 | babel-helper-function-name@^6.24.1: 235 | version "6.24.1" 236 | resolved "https://registry.yarnpkg.com/babel-helper-function-name/-/babel-helper-function-name-6.24.1.tgz#d3475b8c03ed98242a25b48351ab18399d3580a9" 237 | dependencies: 238 | babel-helper-get-function-arity "^6.24.1" 239 | babel-runtime "^6.22.0" 240 | babel-template "^6.24.1" 241 | babel-traverse "^6.24.1" 242 | babel-types "^6.24.1" 243 | 244 | babel-helper-get-function-arity@^6.24.1: 245 | version "6.24.1" 246 | resolved "https://registry.yarnpkg.com/babel-helper-get-function-arity/-/babel-helper-get-function-arity-6.24.1.tgz#8f7782aa93407c41d3aa50908f89b031b1b6853d" 247 | dependencies: 248 | babel-runtime "^6.22.0" 249 | babel-types "^6.24.1" 250 | 251 | babel-helper-hoist-variables@^6.24.1: 252 | version "6.24.1" 253 | resolved "https://registry.yarnpkg.com/babel-helper-hoist-variables/-/babel-helper-hoist-variables-6.24.1.tgz#1ecb27689c9d25513eadbc9914a73f5408be7a76" 254 | dependencies: 255 | babel-runtime "^6.22.0" 256 | babel-types "^6.24.1" 257 | 258 | babel-helper-optimise-call-expression@^6.24.1: 259 | version "6.24.1" 260 | resolved "https://registry.yarnpkg.com/babel-helper-optimise-call-expression/-/babel-helper-optimise-call-expression-6.24.1.tgz#f7a13427ba9f73f8f4fa993c54a97882d1244257" 261 | dependencies: 262 | babel-runtime "^6.22.0" 263 | babel-types "^6.24.1" 264 | 265 | babel-helper-regex@^6.24.1: 266 | version "6.24.1" 267 | resolved "https://registry.yarnpkg.com/babel-helper-regex/-/babel-helper-regex-6.24.1.tgz#d36e22fab1008d79d88648e32116868128456ce8" 268 | dependencies: 269 | babel-runtime "^6.22.0" 270 | babel-types "^6.24.1" 271 | lodash "^4.2.0" 272 | 273 | babel-helper-replace-supers@^6.24.1: 274 | version "6.24.1" 275 | resolved "https://registry.yarnpkg.com/babel-helper-replace-supers/-/babel-helper-replace-supers-6.24.1.tgz#bf6dbfe43938d17369a213ca8a8bf74b6a90ab1a" 276 | dependencies: 277 | babel-helper-optimise-call-expression "^6.24.1" 278 | babel-messages "^6.23.0" 279 | babel-runtime "^6.22.0" 280 | babel-template "^6.24.1" 281 | babel-traverse "^6.24.1" 282 | babel-types "^6.24.1" 283 | 284 | babel-helpers@^6.24.1: 285 | version "6.24.1" 286 | resolved "https://registry.yarnpkg.com/babel-helpers/-/babel-helpers-6.24.1.tgz#3471de9caec388e5c850e597e58a26ddf37602b2" 287 | dependencies: 288 | babel-runtime "^6.22.0" 289 | babel-template "^6.24.1" 290 | 291 | babel-messages@^6.23.0: 292 | version "6.23.0" 293 | resolved "https://registry.yarnpkg.com/babel-messages/-/babel-messages-6.23.0.tgz#f3cdf4703858035b2a2951c6ec5edf6c62f2630e" 294 | dependencies: 295 | babel-runtime "^6.22.0" 296 | 297 | babel-plugin-check-es2015-constants@^6.22.0: 298 | version "6.22.0" 299 | resolved "https://registry.yarnpkg.com/babel-plugin-check-es2015-constants/-/babel-plugin-check-es2015-constants-6.22.0.tgz#35157b101426fd2ffd3da3f75c7d1e91835bbf8a" 300 | dependencies: 301 | babel-runtime "^6.22.0" 302 | 303 | babel-plugin-transform-es2015-arrow-functions@^6.22.0: 304 | version "6.22.0" 305 | resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-arrow-functions/-/babel-plugin-transform-es2015-arrow-functions-6.22.0.tgz#452692cb711d5f79dc7f85e440ce41b9f244d221" 306 | dependencies: 307 | babel-runtime "^6.22.0" 308 | 309 | babel-plugin-transform-es2015-block-scoped-functions@^6.22.0: 310 | version "6.22.0" 311 | resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-block-scoped-functions/-/babel-plugin-transform-es2015-block-scoped-functions-6.22.0.tgz#bbc51b49f964d70cb8d8e0b94e820246ce3a6141" 312 | dependencies: 313 | babel-runtime "^6.22.0" 314 | 315 | babel-plugin-transform-es2015-block-scoping@^6.24.1: 316 | version "6.24.1" 317 | resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-block-scoping/-/babel-plugin-transform-es2015-block-scoping-6.24.1.tgz#76c295dc3a4741b1665adfd3167215dcff32a576" 318 | dependencies: 319 | babel-runtime "^6.22.0" 320 | babel-template "^6.24.1" 321 | babel-traverse "^6.24.1" 322 | babel-types "^6.24.1" 323 | lodash "^4.2.0" 324 | 325 | babel-plugin-transform-es2015-classes@^6.24.1: 326 | version "6.24.1" 327 | resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-classes/-/babel-plugin-transform-es2015-classes-6.24.1.tgz#5a4c58a50c9c9461e564b4b2a3bfabc97a2584db" 328 | dependencies: 329 | babel-helper-define-map "^6.24.1" 330 | babel-helper-function-name "^6.24.1" 331 | babel-helper-optimise-call-expression "^6.24.1" 332 | babel-helper-replace-supers "^6.24.1" 333 | babel-messages "^6.23.0" 334 | babel-runtime "^6.22.0" 335 | babel-template "^6.24.1" 336 | babel-traverse "^6.24.1" 337 | babel-types "^6.24.1" 338 | 339 | babel-plugin-transform-es2015-computed-properties@^6.24.1: 340 | version "6.24.1" 341 | resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-computed-properties/-/babel-plugin-transform-es2015-computed-properties-6.24.1.tgz#6fe2a8d16895d5634f4cd999b6d3480a308159b3" 342 | dependencies: 343 | babel-runtime "^6.22.0" 344 | babel-template "^6.24.1" 345 | 346 | babel-plugin-transform-es2015-destructuring@^6.22.0: 347 | version "6.23.0" 348 | resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-destructuring/-/babel-plugin-transform-es2015-destructuring-6.23.0.tgz#997bb1f1ab967f682d2b0876fe358d60e765c56d" 349 | dependencies: 350 | babel-runtime "^6.22.0" 351 | 352 | babel-plugin-transform-es2015-duplicate-keys@^6.24.1: 353 | version "6.24.1" 354 | resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-duplicate-keys/-/babel-plugin-transform-es2015-duplicate-keys-6.24.1.tgz#73eb3d310ca969e3ef9ec91c53741a6f1576423e" 355 | dependencies: 356 | babel-runtime "^6.22.0" 357 | babel-types "^6.24.1" 358 | 359 | babel-plugin-transform-es2015-for-of@^6.22.0: 360 | version "6.23.0" 361 | resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-for-of/-/babel-plugin-transform-es2015-for-of-6.23.0.tgz#f47c95b2b613df1d3ecc2fdb7573623c75248691" 362 | dependencies: 363 | babel-runtime "^6.22.0" 364 | 365 | babel-plugin-transform-es2015-function-name@^6.24.1: 366 | version "6.24.1" 367 | resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-function-name/-/babel-plugin-transform-es2015-function-name-6.24.1.tgz#834c89853bc36b1af0f3a4c5dbaa94fd8eacaa8b" 368 | dependencies: 369 | babel-helper-function-name "^6.24.1" 370 | babel-runtime "^6.22.0" 371 | babel-types "^6.24.1" 372 | 373 | babel-plugin-transform-es2015-literals@^6.22.0: 374 | version "6.22.0" 375 | resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-literals/-/babel-plugin-transform-es2015-literals-6.22.0.tgz#4f54a02d6cd66cf915280019a31d31925377ca2e" 376 | dependencies: 377 | babel-runtime "^6.22.0" 378 | 379 | babel-plugin-transform-es2015-modules-amd@^6.24.1: 380 | version "6.24.1" 381 | resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-modules-amd/-/babel-plugin-transform-es2015-modules-amd-6.24.1.tgz#3b3e54017239842d6d19c3011c4bd2f00a00d154" 382 | dependencies: 383 | babel-plugin-transform-es2015-modules-commonjs "^6.24.1" 384 | babel-runtime "^6.22.0" 385 | babel-template "^6.24.1" 386 | 387 | babel-plugin-transform-es2015-modules-commonjs@^6.24.1: 388 | version "6.24.1" 389 | resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-modules-commonjs/-/babel-plugin-transform-es2015-modules-commonjs-6.24.1.tgz#d3e310b40ef664a36622200097c6d440298f2bfe" 390 | dependencies: 391 | babel-plugin-transform-strict-mode "^6.24.1" 392 | babel-runtime "^6.22.0" 393 | babel-template "^6.24.1" 394 | babel-types "^6.24.1" 395 | 396 | babel-plugin-transform-es2015-modules-systemjs@^6.24.1: 397 | version "6.24.1" 398 | resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-modules-systemjs/-/babel-plugin-transform-es2015-modules-systemjs-6.24.1.tgz#ff89a142b9119a906195f5f106ecf305d9407d23" 399 | dependencies: 400 | babel-helper-hoist-variables "^6.24.1" 401 | babel-runtime "^6.22.0" 402 | babel-template "^6.24.1" 403 | 404 | babel-plugin-transform-es2015-modules-umd@^6.24.1: 405 | version "6.24.1" 406 | resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-modules-umd/-/babel-plugin-transform-es2015-modules-umd-6.24.1.tgz#ac997e6285cd18ed6176adb607d602344ad38468" 407 | dependencies: 408 | babel-plugin-transform-es2015-modules-amd "^6.24.1" 409 | babel-runtime "^6.22.0" 410 | babel-template "^6.24.1" 411 | 412 | babel-plugin-transform-es2015-object-super@^6.24.1: 413 | version "6.24.1" 414 | resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-object-super/-/babel-plugin-transform-es2015-object-super-6.24.1.tgz#24cef69ae21cb83a7f8603dad021f572eb278f8d" 415 | dependencies: 416 | babel-helper-replace-supers "^6.24.1" 417 | babel-runtime "^6.22.0" 418 | 419 | babel-plugin-transform-es2015-parameters@^6.24.1: 420 | version "6.24.1" 421 | resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-parameters/-/babel-plugin-transform-es2015-parameters-6.24.1.tgz#57ac351ab49caf14a97cd13b09f66fdf0a625f2b" 422 | dependencies: 423 | babel-helper-call-delegate "^6.24.1" 424 | babel-helper-get-function-arity "^6.24.1" 425 | babel-runtime "^6.22.0" 426 | babel-template "^6.24.1" 427 | babel-traverse "^6.24.1" 428 | babel-types "^6.24.1" 429 | 430 | babel-plugin-transform-es2015-shorthand-properties@^6.24.1: 431 | version "6.24.1" 432 | resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-shorthand-properties/-/babel-plugin-transform-es2015-shorthand-properties-6.24.1.tgz#24f875d6721c87661bbd99a4622e51f14de38aa0" 433 | dependencies: 434 | babel-runtime "^6.22.0" 435 | babel-types "^6.24.1" 436 | 437 | babel-plugin-transform-es2015-spread@^6.22.0: 438 | version "6.22.0" 439 | resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-spread/-/babel-plugin-transform-es2015-spread-6.22.0.tgz#d6d68a99f89aedc4536c81a542e8dd9f1746f8d1" 440 | dependencies: 441 | babel-runtime "^6.22.0" 442 | 443 | babel-plugin-transform-es2015-sticky-regex@^6.24.1: 444 | version "6.24.1" 445 | resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-sticky-regex/-/babel-plugin-transform-es2015-sticky-regex-6.24.1.tgz#00c1cdb1aca71112cdf0cf6126c2ed6b457ccdbc" 446 | dependencies: 447 | babel-helper-regex "^6.24.1" 448 | babel-runtime "^6.22.0" 449 | babel-types "^6.24.1" 450 | 451 | babel-plugin-transform-es2015-template-literals@^6.22.0: 452 | version "6.22.0" 453 | resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-template-literals/-/babel-plugin-transform-es2015-template-literals-6.22.0.tgz#a84b3450f7e9f8f1f6839d6d687da84bb1236d8d" 454 | dependencies: 455 | babel-runtime "^6.22.0" 456 | 457 | babel-plugin-transform-es2015-typeof-symbol@^6.22.0: 458 | version "6.23.0" 459 | resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-typeof-symbol/-/babel-plugin-transform-es2015-typeof-symbol-6.23.0.tgz#dec09f1cddff94b52ac73d505c84df59dcceb372" 460 | dependencies: 461 | babel-runtime "^6.22.0" 462 | 463 | babel-plugin-transform-es2015-unicode-regex@^6.24.1: 464 | version "6.24.1" 465 | resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-unicode-regex/-/babel-plugin-transform-es2015-unicode-regex-6.24.1.tgz#d38b12f42ea7323f729387f18a7c5ae1faeb35e9" 466 | dependencies: 467 | babel-helper-regex "^6.24.1" 468 | babel-runtime "^6.22.0" 469 | regexpu-core "^2.0.0" 470 | 471 | babel-plugin-transform-regenerator@^6.24.1: 472 | version "6.24.1" 473 | resolved "https://registry.yarnpkg.com/babel-plugin-transform-regenerator/-/babel-plugin-transform-regenerator-6.24.1.tgz#b8da305ad43c3c99b4848e4fe4037b770d23c418" 474 | dependencies: 475 | regenerator-transform "0.9.11" 476 | 477 | babel-plugin-transform-runtime@^6.6.0: 478 | version "6.23.0" 479 | resolved "https://registry.yarnpkg.com/babel-plugin-transform-runtime/-/babel-plugin-transform-runtime-6.23.0.tgz#88490d446502ea9b8e7efb0fe09ec4d99479b1ee" 480 | dependencies: 481 | babel-runtime "^6.22.0" 482 | 483 | babel-plugin-transform-strict-mode@^6.24.1: 484 | version "6.24.1" 485 | resolved "https://registry.yarnpkg.com/babel-plugin-transform-strict-mode/-/babel-plugin-transform-strict-mode-6.24.1.tgz#d5faf7aa578a65bbe591cf5edae04a0c67020758" 486 | dependencies: 487 | babel-runtime "^6.22.0" 488 | babel-types "^6.24.1" 489 | 490 | babel-polyfill@^6.23.0: 491 | version "6.23.0" 492 | resolved "https://registry.yarnpkg.com/babel-polyfill/-/babel-polyfill-6.23.0.tgz#8364ca62df8eafb830499f699177466c3b03499d" 493 | dependencies: 494 | babel-runtime "^6.22.0" 495 | core-js "^2.4.0" 496 | regenerator-runtime "^0.10.0" 497 | 498 | babel-preset-es2015@^6.6.0: 499 | version "6.24.1" 500 | resolved "https://registry.yarnpkg.com/babel-preset-es2015/-/babel-preset-es2015-6.24.1.tgz#d44050d6bc2c9feea702aaf38d727a0210538939" 501 | dependencies: 502 | babel-plugin-check-es2015-constants "^6.22.0" 503 | babel-plugin-transform-es2015-arrow-functions "^6.22.0" 504 | babel-plugin-transform-es2015-block-scoped-functions "^6.22.0" 505 | babel-plugin-transform-es2015-block-scoping "^6.24.1" 506 | babel-plugin-transform-es2015-classes "^6.24.1" 507 | babel-plugin-transform-es2015-computed-properties "^6.24.1" 508 | babel-plugin-transform-es2015-destructuring "^6.22.0" 509 | babel-plugin-transform-es2015-duplicate-keys "^6.24.1" 510 | babel-plugin-transform-es2015-for-of "^6.22.0" 511 | babel-plugin-transform-es2015-function-name "^6.24.1" 512 | babel-plugin-transform-es2015-literals "^6.22.0" 513 | babel-plugin-transform-es2015-modules-amd "^6.24.1" 514 | babel-plugin-transform-es2015-modules-commonjs "^6.24.1" 515 | babel-plugin-transform-es2015-modules-systemjs "^6.24.1" 516 | babel-plugin-transform-es2015-modules-umd "^6.24.1" 517 | babel-plugin-transform-es2015-object-super "^6.24.1" 518 | babel-plugin-transform-es2015-parameters "^6.24.1" 519 | babel-plugin-transform-es2015-shorthand-properties "^6.24.1" 520 | babel-plugin-transform-es2015-spread "^6.22.0" 521 | babel-plugin-transform-es2015-sticky-regex "^6.24.1" 522 | babel-plugin-transform-es2015-template-literals "^6.22.0" 523 | babel-plugin-transform-es2015-typeof-symbol "^6.22.0" 524 | babel-plugin-transform-es2015-unicode-regex "^6.24.1" 525 | babel-plugin-transform-regenerator "^6.24.1" 526 | 527 | babel-register@^6.24.1: 528 | version "6.24.1" 529 | resolved "https://registry.yarnpkg.com/babel-register/-/babel-register-6.24.1.tgz#7e10e13a2f71065bdfad5a1787ba45bca6ded75f" 530 | dependencies: 531 | babel-core "^6.24.1" 532 | babel-runtime "^6.22.0" 533 | core-js "^2.4.0" 534 | home-or-tmp "^2.0.0" 535 | lodash "^4.2.0" 536 | mkdirp "^0.5.1" 537 | source-map-support "^0.4.2" 538 | 539 | babel-runtime@^6.18.0, babel-runtime@^6.22.0, babel-runtime@^6.6.1: 540 | version "6.23.0" 541 | resolved "https://registry.yarnpkg.com/babel-runtime/-/babel-runtime-6.23.0.tgz#0a9489f144de70efb3ce4300accdb329e2fc543b" 542 | dependencies: 543 | core-js "^2.4.0" 544 | regenerator-runtime "^0.10.0" 545 | 546 | babel-template@^6.24.1: 547 | version "6.24.1" 548 | resolved "https://registry.yarnpkg.com/babel-template/-/babel-template-6.24.1.tgz#04ae514f1f93b3a2537f2a0f60a5a45fb8308333" 549 | dependencies: 550 | babel-runtime "^6.22.0" 551 | babel-traverse "^6.24.1" 552 | babel-types "^6.24.1" 553 | babylon "^6.11.0" 554 | lodash "^4.2.0" 555 | 556 | babel-traverse@^6.0.20, babel-traverse@^6.24.1, babel-traverse@^6.7.3: 557 | version "6.24.1" 558 | resolved "https://registry.yarnpkg.com/babel-traverse/-/babel-traverse-6.24.1.tgz#ab36673fd356f9a0948659e7b338d5feadb31695" 559 | dependencies: 560 | babel-code-frame "^6.22.0" 561 | babel-messages "^6.23.0" 562 | babel-runtime "^6.22.0" 563 | babel-types "^6.24.1" 564 | babylon "^6.15.0" 565 | debug "^2.2.0" 566 | globals "^9.0.0" 567 | invariant "^2.2.0" 568 | lodash "^4.2.0" 569 | 570 | babel-types@^6.0.19, babel-types@^6.19.0, babel-types@^6.24.1: 571 | version "6.24.1" 572 | resolved "https://registry.yarnpkg.com/babel-types/-/babel-types-6.24.1.tgz#a136879dc15b3606bda0d90c1fc74304c2ff0975" 573 | dependencies: 574 | babel-runtime "^6.22.0" 575 | esutils "^2.0.2" 576 | lodash "^4.2.0" 577 | to-fast-properties "^1.0.1" 578 | 579 | babylon@^6.0.18, babylon@^6.1.21, babylon@^6.11.0, babylon@^6.15.0: 580 | version "6.17.1" 581 | resolved "https://registry.yarnpkg.com/babylon/-/babylon-6.17.1.tgz#17f14fddf361b695981fe679385e4f1c01ebd86f" 582 | 583 | balanced-match@^0.4.1: 584 | version "0.4.2" 585 | resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-0.4.2.tgz#cb3f3e3c732dc0f01ee70b403f302e61d7709838" 586 | 587 | bcrypt-pbkdf@^1.0.0: 588 | version "1.0.1" 589 | resolved "https://registry.yarnpkg.com/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.1.tgz#63bc5dcb61331b92bc05fd528953c33462a06f8d" 590 | dependencies: 591 | tweetnacl "^0.14.3" 592 | 593 | binary-extensions@^1.0.0: 594 | version "1.8.0" 595 | resolved "https://registry.yarnpkg.com/binary-extensions/-/binary-extensions-1.8.0.tgz#48ec8d16df4377eae5fa5884682480af4d95c774" 596 | 597 | block-stream@*: 598 | version "0.0.9" 599 | resolved "https://registry.yarnpkg.com/block-stream/-/block-stream-0.0.9.tgz#13ebfe778a03205cfe03751481ebb4b3300c126a" 600 | dependencies: 601 | inherits "~2.0.0" 602 | 603 | boom@2.x.x: 604 | version "2.10.1" 605 | resolved "https://registry.yarnpkg.com/boom/-/boom-2.10.1.tgz#39c8918ceff5799f83f9492a848f625add0c766f" 606 | dependencies: 607 | hoek "2.x.x" 608 | 609 | boxen@^0.3.1: 610 | version "0.3.1" 611 | resolved "https://registry.yarnpkg.com/boxen/-/boxen-0.3.1.tgz#a7d898243ae622f7abb6bb604d740a76c6a5461b" 612 | dependencies: 613 | chalk "^1.1.1" 614 | filled-array "^1.0.0" 615 | object-assign "^4.0.1" 616 | repeating "^2.0.0" 617 | string-width "^1.0.1" 618 | widest-line "^1.0.0" 619 | 620 | boxen@^1.0.0: 621 | version "1.1.0" 622 | resolved "https://registry.yarnpkg.com/boxen/-/boxen-1.1.0.tgz#b1b69dd522305e807a99deee777dbd6e5167b102" 623 | dependencies: 624 | ansi-align "^2.0.0" 625 | camelcase "^4.0.0" 626 | chalk "^1.1.1" 627 | cli-boxes "^1.0.0" 628 | string-width "^2.0.0" 629 | term-size "^0.1.0" 630 | widest-line "^1.0.0" 631 | 632 | brace-expansion@^1.1.7: 633 | version "1.1.7" 634 | resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.7.tgz#3effc3c50e000531fb720eaff80f0ae8ef23cf59" 635 | dependencies: 636 | balanced-match "^0.4.1" 637 | concat-map "0.0.1" 638 | 639 | braces@^1.8.2: 640 | version "1.8.5" 641 | resolved "https://registry.yarnpkg.com/braces/-/braces-1.8.5.tgz#ba77962e12dff969d6b76711e914b737857bf6a7" 642 | dependencies: 643 | expand-range "^1.8.1" 644 | preserve "^0.2.0" 645 | repeat-element "^1.1.2" 646 | 647 | buffer-shims@~1.0.0: 648 | version "1.0.0" 649 | resolved "https://registry.yarnpkg.com/buffer-shims/-/buffer-shims-1.0.0.tgz#9978ce317388c649ad8793028c3477ef044a8b51" 650 | 651 | builtin-modules@^1.0.0, builtin-modules@^1.1.1: 652 | version "1.1.1" 653 | resolved "https://registry.yarnpkg.com/builtin-modules/-/builtin-modules-1.1.1.tgz#270f076c5a72c02f5b65a47df94c5fe3a278892f" 654 | 655 | caller-path@^0.1.0: 656 | version "0.1.0" 657 | resolved "https://registry.yarnpkg.com/caller-path/-/caller-path-0.1.0.tgz#94085ef63581ecd3daa92444a8fe94e82577751f" 658 | dependencies: 659 | callsites "^0.2.0" 660 | 661 | callsite-record@^3.0.0: 662 | version "3.2.2" 663 | resolved "https://registry.yarnpkg.com/callsite-record/-/callsite-record-3.2.2.tgz#9a0390642e43fe8bb823945e51464f69f41643de" 664 | dependencies: 665 | callsite "^1.0.0" 666 | chalk "^1.1.1" 667 | error-stack-parser "^1.3.3" 668 | highlight-es "^1.0.0" 669 | lodash "4.6.1 || ^4.16.1" 670 | pinkie-promise "^2.0.0" 671 | 672 | callsite@^1.0.0: 673 | version "1.0.0" 674 | resolved "https://registry.yarnpkg.com/callsite/-/callsite-1.0.0.tgz#280398e5d664bd74038b6f0905153e6e8af1bc20" 675 | 676 | callsites@^0.2.0: 677 | version "0.2.0" 678 | resolved "https://registry.yarnpkg.com/callsites/-/callsites-0.2.0.tgz#afab96262910a7f33c19a5775825c69f34e350ca" 679 | 680 | camelcase-keys@^2.0.0: 681 | version "2.1.0" 682 | resolved "https://registry.yarnpkg.com/camelcase-keys/-/camelcase-keys-2.1.0.tgz#308beeaffdf28119051efa1d932213c91b8f92e7" 683 | dependencies: 684 | camelcase "^2.0.0" 685 | map-obj "^1.0.0" 686 | 687 | camelcase@^2.0.0: 688 | version "2.1.1" 689 | resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-2.1.1.tgz#7c1d16d679a1bbe59ca02cacecfb011e201f5a1f" 690 | 691 | camelcase@^3.0.0: 692 | version "3.0.0" 693 | resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-3.0.0.tgz#32fc4b9fcdaf845fcdf7e73bb97cac2261f0ab0a" 694 | 695 | camelcase@^4.0.0: 696 | version "4.1.0" 697 | resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-4.1.0.tgz#d545635be1e33c542649c69173e5de6acfae34dd" 698 | 699 | capture-stack-trace@^1.0.0: 700 | version "1.0.0" 701 | resolved "https://registry.yarnpkg.com/capture-stack-trace/-/capture-stack-trace-1.0.0.tgz#4a6fa07399c26bba47f0b2496b4d0fb408c5550d" 702 | 703 | caseless@~0.12.0: 704 | version "0.12.0" 705 | resolved "https://registry.yarnpkg.com/caseless/-/caseless-0.12.0.tgz#1b681c21ff84033c826543090689420d187151dc" 706 | 707 | chalk@^1.0.0, chalk@^1.1.0, chalk@^1.1.1, chalk@^1.1.3: 708 | version "1.1.3" 709 | resolved "https://registry.yarnpkg.com/chalk/-/chalk-1.1.3.tgz#a8115c55e4a702fe4d150abd3872822a7e09fc98" 710 | dependencies: 711 | ansi-styles "^2.2.1" 712 | escape-string-regexp "^1.0.2" 713 | has-ansi "^2.0.0" 714 | strip-ansi "^3.0.0" 715 | supports-color "^2.0.0" 716 | 717 | chokidar@^1.6.1: 718 | version "1.7.0" 719 | resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-1.7.0.tgz#798e689778151c8076b4b360e5edd28cda2bb468" 720 | dependencies: 721 | anymatch "^1.3.0" 722 | async-each "^1.0.0" 723 | glob-parent "^2.0.0" 724 | inherits "^2.0.1" 725 | is-binary-path "^1.0.0" 726 | is-glob "^2.0.0" 727 | path-is-absolute "^1.0.0" 728 | readdirp "^2.0.0" 729 | optionalDependencies: 730 | fsevents "^1.0.0" 731 | 732 | ci-info@^1.0.0: 733 | version "1.0.0" 734 | resolved "https://registry.yarnpkg.com/ci-info/-/ci-info-1.0.0.tgz#dc5285f2b4e251821683681c381c3388f46ec534" 735 | 736 | circular-json@^0.3.1: 737 | version "0.3.1" 738 | resolved "https://registry.yarnpkg.com/circular-json/-/circular-json-0.3.1.tgz#be8b36aefccde8b3ca7aa2d6afc07a37242c0d2d" 739 | 740 | cli-boxes@^1.0.0: 741 | version "1.0.0" 742 | resolved "https://registry.yarnpkg.com/cli-boxes/-/cli-boxes-1.0.0.tgz#4fa917c3e59c94a004cd61f8ee509da651687143" 743 | 744 | cli-cursor@^1.0.1, cli-cursor@^1.0.2: 745 | version "1.0.2" 746 | resolved "https://registry.yarnpkg.com/cli-cursor/-/cli-cursor-1.0.2.tgz#64da3f7d56a54412e59794bd62dc35295e8f2987" 747 | dependencies: 748 | restore-cursor "^1.0.1" 749 | 750 | cli-spinners@^0.1.2: 751 | version "0.1.2" 752 | resolved "https://registry.yarnpkg.com/cli-spinners/-/cli-spinners-0.1.2.tgz#bb764d88e185fb9e1e6a2a1f19772318f605e31c" 753 | 754 | cli-width@^2.0.0: 755 | version "2.1.0" 756 | resolved "https://registry.yarnpkg.com/cli-width/-/cli-width-2.1.0.tgz#b234ca209b29ef66fc518d9b98d5847b00edf00a" 757 | 758 | cliui@^3.2.0: 759 | version "3.2.0" 760 | resolved "https://registry.yarnpkg.com/cliui/-/cliui-3.2.0.tgz#120601537a916d29940f934da3b48d585a39213d" 761 | dependencies: 762 | string-width "^1.0.1" 763 | strip-ansi "^3.0.1" 764 | wrap-ansi "^2.0.0" 765 | 766 | co@^4.6.0: 767 | version "4.6.0" 768 | resolved "https://registry.yarnpkg.com/co/-/co-4.6.0.tgz#6ea6bdf3d853ae54ccb8e47bfa0bf3f9031fb184" 769 | 770 | code-point-at@^1.0.0: 771 | version "1.1.0" 772 | resolved "https://registry.yarnpkg.com/code-point-at/-/code-point-at-1.1.0.tgz#0d070b4d043a5bea33a2f1a40e2edb3d9a4ccf77" 773 | 774 | combined-stream@^1.0.5, combined-stream@~1.0.5: 775 | version "1.0.5" 776 | resolved "https://registry.yarnpkg.com/combined-stream/-/combined-stream-1.0.5.tgz#938370a57b4a51dea2c77c15d5c5fdf895164009" 777 | dependencies: 778 | delayed-stream "~1.0.0" 779 | 780 | commander@^2.8.1: 781 | version "2.9.0" 782 | resolved "https://registry.yarnpkg.com/commander/-/commander-2.9.0.tgz#9c99094176e12240cb22d6c5146098400fe0f7d4" 783 | dependencies: 784 | graceful-readlink ">= 1.0.0" 785 | 786 | concat-map@0.0.1: 787 | version "0.0.1" 788 | resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b" 789 | 790 | concat-stream@^1.4.6: 791 | version "1.6.0" 792 | resolved "https://registry.yarnpkg.com/concat-stream/-/concat-stream-1.6.0.tgz#0aac662fd52be78964d5532f694784e70110acf7" 793 | dependencies: 794 | inherits "^2.0.3" 795 | readable-stream "^2.2.2" 796 | typedarray "^0.0.6" 797 | 798 | configstore@^2.0.0: 799 | version "2.1.0" 800 | resolved "https://registry.yarnpkg.com/configstore/-/configstore-2.1.0.tgz#737a3a7036e9886102aa6099e47bb33ab1aba1a1" 801 | dependencies: 802 | dot-prop "^3.0.0" 803 | graceful-fs "^4.1.2" 804 | mkdirp "^0.5.0" 805 | object-assign "^4.0.1" 806 | os-tmpdir "^1.0.0" 807 | osenv "^0.1.0" 808 | uuid "^2.0.1" 809 | write-file-atomic "^1.1.2" 810 | xdg-basedir "^2.0.0" 811 | 812 | configstore@^3.0.0: 813 | version "3.1.0" 814 | resolved "https://registry.yarnpkg.com/configstore/-/configstore-3.1.0.tgz#45df907073e26dfa1cf4b2d52f5b60545eaa11d1" 815 | dependencies: 816 | dot-prop "^4.1.0" 817 | graceful-fs "^4.1.2" 818 | make-dir "^1.0.0" 819 | unique-string "^1.0.0" 820 | write-file-atomic "^2.0.0" 821 | xdg-basedir "^3.0.0" 822 | 823 | console-control-strings@^1.0.0, console-control-strings@~1.1.0: 824 | version "1.1.0" 825 | resolved "https://registry.yarnpkg.com/console-control-strings/-/console-control-strings-1.1.0.tgz#3d7cf4464db6446ea644bf4b39507f9851008e8e" 826 | 827 | convert-source-map@^1.1.0: 828 | version "1.5.0" 829 | resolved "https://registry.yarnpkg.com/convert-source-map/-/convert-source-map-1.5.0.tgz#9acd70851c6d5dfdd93d9282e5edf94a03ff46b5" 830 | 831 | core-js@^2.4.0: 832 | version "2.4.1" 833 | resolved "https://registry.yarnpkg.com/core-js/-/core-js-2.4.1.tgz#4de911e667b0eae9124e34254b53aea6fc618d3e" 834 | 835 | core-util-is@~1.0.0: 836 | version "1.0.2" 837 | resolved "https://registry.yarnpkg.com/core-util-is/-/core-util-is-1.0.2.tgz#b5fd54220aa2bc5ab57aab7140c940754503c1a7" 838 | 839 | create-error-class@^3.0.0, create-error-class@^3.0.1: 840 | version "3.0.2" 841 | resolved "https://registry.yarnpkg.com/create-error-class/-/create-error-class-3.0.2.tgz#06be7abef947a3f14a30fd610671d401bca8b7b6" 842 | dependencies: 843 | capture-stack-trace "^1.0.0" 844 | 845 | cross-spawn-async@^2.1.1: 846 | version "2.2.5" 847 | resolved "https://registry.yarnpkg.com/cross-spawn-async/-/cross-spawn-async-2.2.5.tgz#845ff0c0834a3ded9d160daca6d390906bb288cc" 848 | dependencies: 849 | lru-cache "^4.0.0" 850 | which "^1.2.8" 851 | 852 | cryptiles@2.x.x: 853 | version "2.0.5" 854 | resolved "https://registry.yarnpkg.com/cryptiles/-/cryptiles-2.0.5.tgz#3bdfecdc608147c1c67202fa291e7dca59eaa3b8" 855 | dependencies: 856 | boom "2.x.x" 857 | 858 | crypto-random-string@^1.0.0: 859 | version "1.0.0" 860 | resolved "https://registry.yarnpkg.com/crypto-random-string/-/crypto-random-string-1.0.0.tgz#a230f64f568310e1498009940790ec99545bca7e" 861 | 862 | currently-unhandled@^0.4.1: 863 | version "0.4.1" 864 | resolved "https://registry.yarnpkg.com/currently-unhandled/-/currently-unhandled-0.4.1.tgz#988df33feab191ef799a61369dd76c17adf957ea" 865 | dependencies: 866 | array-find-index "^1.0.1" 867 | 868 | d@1: 869 | version "1.0.0" 870 | resolved "https://registry.yarnpkg.com/d/-/d-1.0.0.tgz#754bb5bfe55451da69a58b94d45f4c5b0462d58f" 871 | dependencies: 872 | es5-ext "^0.10.9" 873 | 874 | dashdash@^1.12.0: 875 | version "1.14.1" 876 | resolved "https://registry.yarnpkg.com/dashdash/-/dashdash-1.14.1.tgz#853cfa0f7cbe2fed5de20326b8dd581035f6e2f0" 877 | dependencies: 878 | assert-plus "^1.0.0" 879 | 880 | debug@^2.1.1, debug@^2.2.0: 881 | version "2.6.6" 882 | resolved "https://registry.yarnpkg.com/debug/-/debug-2.6.6.tgz#a9fa6fbe9ca43cf1e79f73b75c0189cbb7d6db5a" 883 | dependencies: 884 | ms "0.7.3" 885 | 886 | decamelize@^1.1.1, decamelize@^1.1.2: 887 | version "1.2.0" 888 | resolved "https://registry.yarnpkg.com/decamelize/-/decamelize-1.2.0.tgz#f6534d15148269b20352e7bee26f501f9a191290" 889 | 890 | deep-assign@^1.0.0: 891 | version "1.0.0" 892 | resolved "https://registry.yarnpkg.com/deep-assign/-/deep-assign-1.0.0.tgz#b092743be8427dc621ea0067cdec7e70dd19f37b" 893 | dependencies: 894 | is-obj "^1.0.0" 895 | 896 | deep-extend@~0.4.0: 897 | version "0.4.2" 898 | resolved "https://registry.yarnpkg.com/deep-extend/-/deep-extend-0.4.2.tgz#48b699c27e334bf89f10892be432f6e4c7d34a7f" 899 | 900 | deep-is@~0.1.3: 901 | version "0.1.3" 902 | resolved "https://registry.yarnpkg.com/deep-is/-/deep-is-0.1.3.tgz#b369d6fb5dbc13eecf524f91b070feedc357cf34" 903 | 904 | del@^2.0.2: 905 | version "2.2.2" 906 | resolved "https://registry.yarnpkg.com/del/-/del-2.2.2.tgz#c12c981d067846c84bcaf862cff930d907ffd1a8" 907 | dependencies: 908 | globby "^5.0.0" 909 | is-path-cwd "^1.0.0" 910 | is-path-in-cwd "^1.0.0" 911 | object-assign "^4.0.1" 912 | pify "^2.0.0" 913 | pinkie-promise "^2.0.0" 914 | rimraf "^2.2.8" 915 | 916 | delayed-stream@~1.0.0: 917 | version "1.0.0" 918 | resolved "https://registry.yarnpkg.com/delayed-stream/-/delayed-stream-1.0.0.tgz#df3ae199acadfb7d440aaae0b29e2272b24ec619" 919 | 920 | delegates@^1.0.0: 921 | version "1.0.0" 922 | resolved "https://registry.yarnpkg.com/delegates/-/delegates-1.0.0.tgz#84c6e159b81904fdca59a0ef44cd870d31250f9a" 923 | 924 | depcheck@^0.6.3: 925 | version "0.6.7" 926 | resolved "https://registry.yarnpkg.com/depcheck/-/depcheck-0.6.7.tgz#6b3d1e993931e09ee673d3507d3175db734823e6" 927 | dependencies: 928 | babel-traverse "^6.7.3" 929 | babylon "^6.1.21" 930 | builtin-modules "^1.1.1" 931 | deprecate "^1.0.0" 932 | deps-regex "^0.1.4" 933 | js-yaml "^3.4.2" 934 | lodash "^4.5.1" 935 | minimatch "^3.0.2" 936 | require-package-name "^2.0.1" 937 | walkdir "0.0.11" 938 | yargs "^6.0.0" 939 | 940 | deprecate@^1.0.0: 941 | version "1.0.0" 942 | resolved "https://registry.yarnpkg.com/deprecate/-/deprecate-1.0.0.tgz#661490ed2428916a6c8883d8834e5646f4e4a4a8" 943 | 944 | deps-regex@^0.1.4: 945 | version "0.1.4" 946 | resolved "https://registry.yarnpkg.com/deps-regex/-/deps-regex-0.1.4.tgz#518667b7691460a5e7e0a341be76eb7ce8090184" 947 | 948 | detect-indent@^4.0.0: 949 | version "4.0.0" 950 | resolved "https://registry.yarnpkg.com/detect-indent/-/detect-indent-4.0.0.tgz#f76d064352cdf43a1cb6ce619c4ee3a9475de208" 951 | dependencies: 952 | repeating "^2.0.0" 953 | 954 | doctrine@^1.2.2: 955 | version "1.5.0" 956 | resolved "https://registry.yarnpkg.com/doctrine/-/doctrine-1.5.0.tgz#379dce730f6166f76cefa4e6707a159b02c5a6fa" 957 | dependencies: 958 | esutils "^2.0.2" 959 | isarray "^1.0.0" 960 | 961 | dot-prop@^3.0.0: 962 | version "3.0.0" 963 | resolved "https://registry.yarnpkg.com/dot-prop/-/dot-prop-3.0.0.tgz#1b708af094a49c9a0e7dbcad790aba539dac1177" 964 | dependencies: 965 | is-obj "^1.0.0" 966 | 967 | dot-prop@^4.1.0: 968 | version "4.1.1" 969 | resolved "https://registry.yarnpkg.com/dot-prop/-/dot-prop-4.1.1.tgz#a8493f0b7b5eeec82525b5c7587fa7de7ca859c1" 970 | dependencies: 971 | is-obj "^1.0.0" 972 | 973 | duplexer2@^0.1.4: 974 | version "0.1.4" 975 | resolved "https://registry.yarnpkg.com/duplexer2/-/duplexer2-0.1.4.tgz#8b12dab878c0d69e3e7891051662a32fc6bddcc1" 976 | dependencies: 977 | readable-stream "^2.0.2" 978 | 979 | duplexer3@^0.1.4: 980 | version "0.1.4" 981 | resolved "https://registry.yarnpkg.com/duplexer3/-/duplexer3-0.1.4.tgz#ee01dd1cac0ed3cbc7fdbea37dc0a8f1ce002ce2" 982 | 983 | ecc-jsbn@~0.1.1: 984 | version "0.1.1" 985 | resolved "https://registry.yarnpkg.com/ecc-jsbn/-/ecc-jsbn-0.1.1.tgz#0fc73a9ed5f0d53c38193398523ef7e543777505" 986 | dependencies: 987 | jsbn "~0.1.0" 988 | 989 | error-ex@^1.2.0: 990 | version "1.3.1" 991 | resolved "https://registry.yarnpkg.com/error-ex/-/error-ex-1.3.1.tgz#f855a86ce61adc4e8621c3cda21e7a7612c3a8dc" 992 | dependencies: 993 | is-arrayish "^0.2.1" 994 | 995 | error-stack-parser@^1.3.3: 996 | version "1.3.6" 997 | resolved "https://registry.yarnpkg.com/error-stack-parser/-/error-stack-parser-1.3.6.tgz#e0e73b93e417138d1cd7c0b746b1a4a14854c292" 998 | dependencies: 999 | stackframe "^0.3.1" 1000 | 1001 | es5-ext@^0.10.14, es5-ext@^0.10.9, es5-ext@~0.10.14: 1002 | version "0.10.16" 1003 | resolved "https://registry.yarnpkg.com/es5-ext/-/es5-ext-0.10.16.tgz#1ef1b04f3d09db6a5d630226d62202f2e425e45a" 1004 | dependencies: 1005 | es6-iterator "2" 1006 | es6-symbol "~3.1" 1007 | 1008 | es6-iterator@2, es6-iterator@^2.0.1, es6-iterator@~2.0.1: 1009 | version "2.0.1" 1010 | resolved "https://registry.yarnpkg.com/es6-iterator/-/es6-iterator-2.0.1.tgz#8e319c9f0453bf575d374940a655920e59ca5512" 1011 | dependencies: 1012 | d "1" 1013 | es5-ext "^0.10.14" 1014 | es6-symbol "^3.1" 1015 | 1016 | es6-map@^0.1.3: 1017 | version "0.1.5" 1018 | resolved "https://registry.yarnpkg.com/es6-map/-/es6-map-0.1.5.tgz#9136e0503dcc06a301690f0bb14ff4e364e949f0" 1019 | dependencies: 1020 | d "1" 1021 | es5-ext "~0.10.14" 1022 | es6-iterator "~2.0.1" 1023 | es6-set "~0.1.5" 1024 | es6-symbol "~3.1.1" 1025 | event-emitter "~0.3.5" 1026 | 1027 | es6-set@~0.1.5: 1028 | version "0.1.5" 1029 | resolved "https://registry.yarnpkg.com/es6-set/-/es6-set-0.1.5.tgz#d2b3ec5d4d800ced818db538d28974db0a73ccb1" 1030 | dependencies: 1031 | d "1" 1032 | es5-ext "~0.10.14" 1033 | es6-iterator "~2.0.1" 1034 | es6-symbol "3.1.1" 1035 | event-emitter "~0.3.5" 1036 | 1037 | es6-symbol@3.1.1, es6-symbol@^3.1, es6-symbol@^3.1.1, es6-symbol@~3.1, es6-symbol@~3.1.1: 1038 | version "3.1.1" 1039 | resolved "https://registry.yarnpkg.com/es6-symbol/-/es6-symbol-3.1.1.tgz#bf00ef4fdab6ba1b46ecb7b629b4c7ed5715cc77" 1040 | dependencies: 1041 | d "1" 1042 | es5-ext "~0.10.14" 1043 | 1044 | es6-weak-map@^2.0.1: 1045 | version "2.0.2" 1046 | resolved "https://registry.yarnpkg.com/es6-weak-map/-/es6-weak-map-2.0.2.tgz#5e3ab32251ffd1538a1f8e5ffa1357772f92d96f" 1047 | dependencies: 1048 | d "1" 1049 | es5-ext "^0.10.14" 1050 | es6-iterator "^2.0.1" 1051 | es6-symbol "^3.1.1" 1052 | 1053 | escape-string-regexp@^1.0.2, escape-string-regexp@^1.0.5: 1054 | version "1.0.5" 1055 | resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz#1b61c0562190a8dff6ae3bb2cf0200ca130b86d4" 1056 | 1057 | escope@^3.6.0: 1058 | version "3.6.0" 1059 | resolved "https://registry.yarnpkg.com/escope/-/escope-3.6.0.tgz#e01975e812781a163a6dadfdd80398dc64c889c3" 1060 | dependencies: 1061 | es6-map "^0.1.3" 1062 | es6-weak-map "^2.0.1" 1063 | esrecurse "^4.1.0" 1064 | estraverse "^4.1.1" 1065 | 1066 | eslint-config-xo@^0.12.0: 1067 | version "0.12.0" 1068 | resolved "https://registry.yarnpkg.com/eslint-config-xo/-/eslint-config-xo-0.12.0.tgz#e7708a9d28901228b04228ed46702a6c14195fe2" 1069 | 1070 | eslint-plugin-babel@^3.1.0: 1071 | version "3.3.0" 1072 | resolved "https://registry.yarnpkg.com/eslint-plugin-babel/-/eslint-plugin-babel-3.3.0.tgz#2f494aedcf6f4aa4e75b9155980837bc1fbde193" 1073 | 1074 | eslint-plugin-no-empty-blocks@0.0.2: 1075 | version "0.0.2" 1076 | resolved "https://registry.yarnpkg.com/eslint-plugin-no-empty-blocks/-/eslint-plugin-no-empty-blocks-0.0.2.tgz#cdf7a1fbd10508387b7e6a36ee4c9b9b23b109b9" 1077 | 1078 | eslint-plugin-no-use-extend-native@^0.3.2: 1079 | version "0.3.12" 1080 | resolved "https://registry.yarnpkg.com/eslint-plugin-no-use-extend-native/-/eslint-plugin-no-use-extend-native-0.3.12.tgz#3ad9a00c2df23b5d7f7f6be91550985a4ab701ea" 1081 | dependencies: 1082 | is-get-set-prop "^1.0.0" 1083 | is-js-type "^2.0.0" 1084 | is-obj-prop "^1.0.0" 1085 | is-proto-prop "^1.0.0" 1086 | 1087 | eslint@^2.3.0: 1088 | version "2.13.1" 1089 | resolved "https://registry.yarnpkg.com/eslint/-/eslint-2.13.1.tgz#e4cc8fa0f009fb829aaae23855a29360be1f6c11" 1090 | dependencies: 1091 | chalk "^1.1.3" 1092 | concat-stream "^1.4.6" 1093 | debug "^2.1.1" 1094 | doctrine "^1.2.2" 1095 | es6-map "^0.1.3" 1096 | escope "^3.6.0" 1097 | espree "^3.1.6" 1098 | estraverse "^4.2.0" 1099 | esutils "^2.0.2" 1100 | file-entry-cache "^1.1.1" 1101 | glob "^7.0.3" 1102 | globals "^9.2.0" 1103 | ignore "^3.1.2" 1104 | imurmurhash "^0.1.4" 1105 | inquirer "^0.12.0" 1106 | is-my-json-valid "^2.10.0" 1107 | is-resolvable "^1.0.0" 1108 | js-yaml "^3.5.1" 1109 | json-stable-stringify "^1.0.0" 1110 | levn "^0.3.0" 1111 | lodash "^4.0.0" 1112 | mkdirp "^0.5.0" 1113 | optionator "^0.8.1" 1114 | path-is-absolute "^1.0.0" 1115 | path-is-inside "^1.0.1" 1116 | pluralize "^1.2.1" 1117 | progress "^1.1.8" 1118 | require-uncached "^1.0.2" 1119 | shelljs "^0.6.0" 1120 | strip-json-comments "~1.0.1" 1121 | table "^3.7.8" 1122 | text-table "~0.2.0" 1123 | user-home "^2.0.0" 1124 | 1125 | espree@^3.1.6: 1126 | version "3.4.3" 1127 | resolved "https://registry.yarnpkg.com/espree/-/espree-3.4.3.tgz#2910b5ccd49ce893c2ffffaab4fd8b3a31b82374" 1128 | dependencies: 1129 | acorn "^5.0.1" 1130 | acorn-jsx "^3.0.0" 1131 | 1132 | esprima@^3.1.1: 1133 | version "3.1.3" 1134 | resolved "https://registry.yarnpkg.com/esprima/-/esprima-3.1.3.tgz#fdca51cee6133895e3c88d535ce49dbff62a4633" 1135 | 1136 | esrecurse@^4.1.0: 1137 | version "4.1.0" 1138 | resolved "https://registry.yarnpkg.com/esrecurse/-/esrecurse-4.1.0.tgz#4713b6536adf7f2ac4f327d559e7756bff648220" 1139 | dependencies: 1140 | estraverse "~4.1.0" 1141 | object-assign "^4.0.1" 1142 | 1143 | estraverse-fb@^1.3.1: 1144 | version "1.3.1" 1145 | resolved "https://registry.yarnpkg.com/estraverse-fb/-/estraverse-fb-1.3.1.tgz#160e75a80e605b08ce894bcce2fe3e429abf92bf" 1146 | 1147 | estraverse@^4.1.1, estraverse@^4.2.0: 1148 | version "4.2.0" 1149 | resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-4.2.0.tgz#0dee3fed31fcd469618ce7342099fc1afa0bdb13" 1150 | 1151 | estraverse@~4.1.0: 1152 | version "4.1.1" 1153 | resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-4.1.1.tgz#f6caca728933a850ef90661d0e17982ba47111a2" 1154 | 1155 | esutils@^2.0.2: 1156 | version "2.0.2" 1157 | resolved "https://registry.yarnpkg.com/esutils/-/esutils-2.0.2.tgz#0abf4f1caa5bcb1f7a9d8acc6dea4faaa04bac9b" 1158 | 1159 | event-emitter@~0.3.5: 1160 | version "0.3.5" 1161 | resolved "https://registry.yarnpkg.com/event-emitter/-/event-emitter-0.3.5.tgz#df8c69eef1647923c7157b9ce83840610b02cc39" 1162 | dependencies: 1163 | d "1" 1164 | es5-ext "~0.10.14" 1165 | 1166 | execa@^0.2.2: 1167 | version "0.2.2" 1168 | resolved "https://registry.yarnpkg.com/execa/-/execa-0.2.2.tgz#e2ead472c2c31aad6f73f1ac956eef45e12320cb" 1169 | dependencies: 1170 | cross-spawn-async "^2.1.1" 1171 | npm-run-path "^1.0.0" 1172 | object-assign "^4.0.1" 1173 | path-key "^1.0.0" 1174 | strip-eof "^1.0.0" 1175 | 1176 | execa@^0.4.0: 1177 | version "0.4.0" 1178 | resolved "https://registry.yarnpkg.com/execa/-/execa-0.4.0.tgz#4eb6467a36a095fabb2970ff9d5e3fb7bce6ebc3" 1179 | dependencies: 1180 | cross-spawn-async "^2.1.1" 1181 | is-stream "^1.1.0" 1182 | npm-run-path "^1.0.0" 1183 | object-assign "^4.0.1" 1184 | path-key "^1.0.0" 1185 | strip-eof "^1.0.0" 1186 | 1187 | exit-hook@^1.0.0: 1188 | version "1.1.1" 1189 | resolved "https://registry.yarnpkg.com/exit-hook/-/exit-hook-1.1.1.tgz#f05ca233b48c05d54fff07765df8507e95c02ff8" 1190 | 1191 | expand-brackets@^0.1.4: 1192 | version "0.1.5" 1193 | resolved "https://registry.yarnpkg.com/expand-brackets/-/expand-brackets-0.1.5.tgz#df07284e342a807cd733ac5af72411e581d1177b" 1194 | dependencies: 1195 | is-posix-bracket "^0.1.0" 1196 | 1197 | expand-range@^1.8.1: 1198 | version "1.8.2" 1199 | resolved "https://registry.yarnpkg.com/expand-range/-/expand-range-1.8.2.tgz#a299effd335fe2721ebae8e257ec79644fc85337" 1200 | dependencies: 1201 | fill-range "^2.1.0" 1202 | 1203 | extend@~3.0.0: 1204 | version "3.0.1" 1205 | resolved "https://registry.yarnpkg.com/extend/-/extend-3.0.1.tgz#a755ea7bc1adfcc5a31ce7e762dbaadc5e636444" 1206 | 1207 | extglob@^0.3.1: 1208 | version "0.3.2" 1209 | resolved "https://registry.yarnpkg.com/extglob/-/extglob-0.3.2.tgz#2e18ff3d2f49ab2765cec9023f011daa8d8349a1" 1210 | dependencies: 1211 | is-extglob "^1.0.0" 1212 | 1213 | extsprintf@1.0.2: 1214 | version "1.0.2" 1215 | resolved "https://registry.yarnpkg.com/extsprintf/-/extsprintf-1.0.2.tgz#e1080e0658e300b06294990cc70e1502235fd550" 1216 | 1217 | fast-levenshtein@~2.0.4: 1218 | version "2.0.6" 1219 | resolved "https://registry.yarnpkg.com/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz#3d8a5c66883a16a30ca8643e851f19baa7797917" 1220 | 1221 | figures@^1.3.5: 1222 | version "1.7.0" 1223 | resolved "https://registry.yarnpkg.com/figures/-/figures-1.7.0.tgz#cbe1e3affcf1cd44b80cadfed28dc793a9701d2e" 1224 | dependencies: 1225 | escape-string-regexp "^1.0.5" 1226 | object-assign "^4.1.0" 1227 | 1228 | file-entry-cache@^1.1.1: 1229 | version "1.3.1" 1230 | resolved "https://registry.yarnpkg.com/file-entry-cache/-/file-entry-cache-1.3.1.tgz#44c61ea607ae4be9c1402f41f44270cbfe334ff8" 1231 | dependencies: 1232 | flat-cache "^1.2.1" 1233 | object-assign "^4.0.1" 1234 | 1235 | filename-regex@^2.0.0: 1236 | version "2.0.1" 1237 | resolved "https://registry.yarnpkg.com/filename-regex/-/filename-regex-2.0.1.tgz#c1c4b9bee3e09725ddb106b75c1e301fe2f18b26" 1238 | 1239 | fill-range@^2.1.0: 1240 | version "2.2.3" 1241 | resolved "https://registry.yarnpkg.com/fill-range/-/fill-range-2.2.3.tgz#50b77dfd7e469bc7492470963699fe7a8485a723" 1242 | dependencies: 1243 | is-number "^2.1.0" 1244 | isobject "^2.0.0" 1245 | randomatic "^1.1.3" 1246 | repeat-element "^1.1.2" 1247 | repeat-string "^1.5.2" 1248 | 1249 | filled-array@^1.0.0: 1250 | version "1.1.0" 1251 | resolved "https://registry.yarnpkg.com/filled-array/-/filled-array-1.1.0.tgz#c3c4f6c663b923459a9aa29912d2d031f1507f84" 1252 | 1253 | find-up@^1.0.0: 1254 | version "1.1.2" 1255 | resolved "https://registry.yarnpkg.com/find-up/-/find-up-1.1.2.tgz#6b2e9822b1a2ce0a60ab64d610eccad53cb24d0f" 1256 | dependencies: 1257 | path-exists "^2.0.0" 1258 | pinkie-promise "^2.0.0" 1259 | 1260 | flat-cache@^1.2.1: 1261 | version "1.2.2" 1262 | resolved "https://registry.yarnpkg.com/flat-cache/-/flat-cache-1.2.2.tgz#fa86714e72c21db88601761ecf2f555d1abc6b96" 1263 | dependencies: 1264 | circular-json "^0.3.1" 1265 | del "^2.0.2" 1266 | graceful-fs "^4.1.2" 1267 | write "^0.2.1" 1268 | 1269 | for-in@^1.0.1: 1270 | version "1.0.2" 1271 | resolved "https://registry.yarnpkg.com/for-in/-/for-in-1.0.2.tgz#81068d295a8142ec0ac726c6e2200c30fb6d5e80" 1272 | 1273 | for-own@^0.1.4: 1274 | version "0.1.5" 1275 | resolved "https://registry.yarnpkg.com/for-own/-/for-own-0.1.5.tgz#5265c681a4f294dabbf17c9509b6763aa84510ce" 1276 | dependencies: 1277 | for-in "^1.0.1" 1278 | 1279 | forever-agent@~0.6.1: 1280 | version "0.6.1" 1281 | resolved "https://registry.yarnpkg.com/forever-agent/-/forever-agent-0.6.1.tgz#fbc71f0c41adeb37f96c577ad1ed42d8fdacca91" 1282 | 1283 | form-data@~2.1.1: 1284 | version "2.1.4" 1285 | resolved "https://registry.yarnpkg.com/form-data/-/form-data-2.1.4.tgz#33c183acf193276ecaa98143a69e94bfee1750d1" 1286 | dependencies: 1287 | asynckit "^0.4.0" 1288 | combined-stream "^1.0.5" 1289 | mime-types "^2.1.12" 1290 | 1291 | fs-readdir-recursive@^1.0.0: 1292 | version "1.0.0" 1293 | resolved "https://registry.yarnpkg.com/fs-readdir-recursive/-/fs-readdir-recursive-1.0.0.tgz#8cd1745c8b4f8a29c8caec392476921ba195f560" 1294 | 1295 | fs.realpath@^1.0.0: 1296 | version "1.0.0" 1297 | resolved "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f" 1298 | 1299 | fsevents@^1.0.0: 1300 | version "1.1.1" 1301 | resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-1.1.1.tgz#f19fd28f43eeaf761680e519a203c4d0b3d31aff" 1302 | dependencies: 1303 | nan "^2.3.0" 1304 | node-pre-gyp "^0.6.29" 1305 | 1306 | fstream-ignore@^1.0.5: 1307 | version "1.0.5" 1308 | resolved "https://registry.yarnpkg.com/fstream-ignore/-/fstream-ignore-1.0.5.tgz#9c31dae34767018fe1d249b24dada67d092da105" 1309 | dependencies: 1310 | fstream "^1.0.0" 1311 | inherits "2" 1312 | minimatch "^3.0.0" 1313 | 1314 | fstream@^1.0.0, fstream@^1.0.10, fstream@^1.0.2: 1315 | version "1.0.11" 1316 | resolved "https://registry.yarnpkg.com/fstream/-/fstream-1.0.11.tgz#5c1fb1f117477114f0632a0eb4b71b3cb0fd3171" 1317 | dependencies: 1318 | graceful-fs "^4.1.2" 1319 | inherits "~2.0.0" 1320 | mkdirp ">=0.5 0" 1321 | rimraf "2" 1322 | 1323 | gauge@~2.7.3: 1324 | version "2.7.4" 1325 | resolved "https://registry.yarnpkg.com/gauge/-/gauge-2.7.4.tgz#2c03405c7538c39d7eb37b317022e325fb018bf7" 1326 | dependencies: 1327 | aproba "^1.0.3" 1328 | console-control-strings "^1.0.0" 1329 | has-unicode "^2.0.0" 1330 | object-assign "^4.1.0" 1331 | signal-exit "^3.0.0" 1332 | string-width "^1.0.1" 1333 | strip-ansi "^3.0.1" 1334 | wide-align "^1.1.0" 1335 | 1336 | generate-function@^2.0.0: 1337 | version "2.0.0" 1338 | resolved "https://registry.yarnpkg.com/generate-function/-/generate-function-2.0.0.tgz#6858fe7c0969b7d4e9093337647ac79f60dfbe74" 1339 | 1340 | generate-object-property@^1.1.0: 1341 | version "1.2.0" 1342 | resolved "https://registry.yarnpkg.com/generate-object-property/-/generate-object-property-1.2.0.tgz#9c0e1c40308ce804f4783618b937fa88f99d50d0" 1343 | dependencies: 1344 | is-property "^1.0.0" 1345 | 1346 | get-caller-file@^1.0.1: 1347 | version "1.0.2" 1348 | resolved "https://registry.yarnpkg.com/get-caller-file/-/get-caller-file-1.0.2.tgz#f702e63127e7e231c160a80c1554acb70d5047e5" 1349 | 1350 | get-set-props@^0.1.0: 1351 | version "0.1.0" 1352 | resolved "https://registry.yarnpkg.com/get-set-props/-/get-set-props-0.1.0.tgz#998475c178445686d0b32246da5df8dbcfbe8ea3" 1353 | 1354 | get-stdin@^4.0.1: 1355 | version "4.0.1" 1356 | resolved "https://registry.yarnpkg.com/get-stdin/-/get-stdin-4.0.1.tgz#b968c6b0a04384324902e8bf1a5df32579a450fe" 1357 | 1358 | get-stdin@^5.0.0: 1359 | version "5.0.1" 1360 | resolved "https://registry.yarnpkg.com/get-stdin/-/get-stdin-5.0.1.tgz#122e161591e21ff4c52530305693f20e6393a398" 1361 | 1362 | get-stream@^3.0.0: 1363 | version "3.0.0" 1364 | resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-3.0.0.tgz#8e943d1358dc37555054ecbe2edb05aa174ede14" 1365 | 1366 | getpass@^0.1.1: 1367 | version "0.1.7" 1368 | resolved "https://registry.yarnpkg.com/getpass/-/getpass-0.1.7.tgz#5eff8e3e684d569ae4cb2b1282604e8ba62149fa" 1369 | dependencies: 1370 | assert-plus "^1.0.0" 1371 | 1372 | giturl@^1.0.0: 1373 | version "1.0.0" 1374 | resolved "https://registry.yarnpkg.com/giturl/-/giturl-1.0.0.tgz#9732a81e9e25c457a22f0e2ca1c9c51dbbb5325f" 1375 | 1376 | glob-base@^0.3.0: 1377 | version "0.3.0" 1378 | resolved "https://registry.yarnpkg.com/glob-base/-/glob-base-0.3.0.tgz#dbb164f6221b1c0b1ccf82aea328b497df0ea3c4" 1379 | dependencies: 1380 | glob-parent "^2.0.0" 1381 | is-glob "^2.0.0" 1382 | 1383 | glob-parent@^2.0.0: 1384 | version "2.0.0" 1385 | resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-2.0.0.tgz#81383d72db054fcccf5336daa902f182f6edbb28" 1386 | dependencies: 1387 | is-glob "^2.0.0" 1388 | 1389 | glob@^6.0.1: 1390 | version "6.0.4" 1391 | resolved "https://registry.yarnpkg.com/glob/-/glob-6.0.4.tgz#0f08860f6a155127b2fadd4f9ce24b1aab6e4d22" 1392 | dependencies: 1393 | inflight "^1.0.4" 1394 | inherits "2" 1395 | minimatch "2 || 3" 1396 | once "^1.3.0" 1397 | path-is-absolute "^1.0.0" 1398 | 1399 | glob@^7.0.0, glob@^7.0.3, glob@^7.0.5: 1400 | version "7.1.1" 1401 | resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.1.tgz#805211df04faaf1c63a3600306cdf5ade50b2ec8" 1402 | dependencies: 1403 | fs.realpath "^1.0.0" 1404 | inflight "^1.0.4" 1405 | inherits "2" 1406 | minimatch "^3.0.2" 1407 | once "^1.3.0" 1408 | path-is-absolute "^1.0.0" 1409 | 1410 | global-modules@^0.2.0: 1411 | version "0.2.3" 1412 | resolved "https://registry.yarnpkg.com/global-modules/-/global-modules-0.2.3.tgz#ea5a3bed42c6d6ce995a4f8a1269b5dae223828d" 1413 | dependencies: 1414 | global-prefix "^0.1.4" 1415 | is-windows "^0.2.0" 1416 | 1417 | global-prefix@^0.1.4: 1418 | version "0.1.5" 1419 | resolved "https://registry.yarnpkg.com/global-prefix/-/global-prefix-0.1.5.tgz#8d3bc6b8da3ca8112a160d8d496ff0462bfef78f" 1420 | dependencies: 1421 | homedir-polyfill "^1.0.0" 1422 | ini "^1.3.4" 1423 | is-windows "^0.2.0" 1424 | which "^1.2.12" 1425 | 1426 | globals@^9.0.0, globals@^9.2.0: 1427 | version "9.17.0" 1428 | resolved "https://registry.yarnpkg.com/globals/-/globals-9.17.0.tgz#0c0ca696d9b9bb694d2e5470bd37777caad50286" 1429 | 1430 | globby@^4.0.0: 1431 | version "4.1.0" 1432 | resolved "https://registry.yarnpkg.com/globby/-/globby-4.1.0.tgz#080f54549ec1b82a6c60e631fc82e1211dbe95f8" 1433 | dependencies: 1434 | array-union "^1.0.1" 1435 | arrify "^1.0.0" 1436 | glob "^6.0.1" 1437 | object-assign "^4.0.1" 1438 | pify "^2.0.0" 1439 | pinkie-promise "^2.0.0" 1440 | 1441 | globby@^5.0.0: 1442 | version "5.0.0" 1443 | resolved "https://registry.yarnpkg.com/globby/-/globby-5.0.0.tgz#ebd84667ca0dbb330b99bcfc68eac2bc54370e0d" 1444 | dependencies: 1445 | array-union "^1.0.1" 1446 | arrify "^1.0.0" 1447 | glob "^7.0.3" 1448 | object-assign "^4.0.1" 1449 | pify "^2.0.0" 1450 | pinkie-promise "^2.0.0" 1451 | 1452 | got@^5.0.0: 1453 | version "5.7.1" 1454 | resolved "https://registry.yarnpkg.com/got/-/got-5.7.1.tgz#5f81635a61e4a6589f180569ea4e381680a51f35" 1455 | dependencies: 1456 | create-error-class "^3.0.1" 1457 | duplexer2 "^0.1.4" 1458 | is-redirect "^1.0.0" 1459 | is-retry-allowed "^1.0.0" 1460 | is-stream "^1.0.0" 1461 | lowercase-keys "^1.0.0" 1462 | node-status-codes "^1.0.0" 1463 | object-assign "^4.0.1" 1464 | parse-json "^2.1.0" 1465 | pinkie-promise "^2.0.0" 1466 | read-all-stream "^3.0.0" 1467 | readable-stream "^2.0.5" 1468 | timed-out "^3.0.0" 1469 | unzip-response "^1.0.2" 1470 | url-parse-lax "^1.0.0" 1471 | 1472 | got@^6.7.1: 1473 | version "6.7.1" 1474 | resolved "https://registry.yarnpkg.com/got/-/got-6.7.1.tgz#240cd05785a9a18e561dc1b44b41c763ef1e8db0" 1475 | dependencies: 1476 | create-error-class "^3.0.0" 1477 | duplexer3 "^0.1.4" 1478 | get-stream "^3.0.0" 1479 | is-redirect "^1.0.0" 1480 | is-retry-allowed "^1.0.0" 1481 | is-stream "^1.0.0" 1482 | lowercase-keys "^1.0.0" 1483 | safe-buffer "^5.0.1" 1484 | timed-out "^4.0.0" 1485 | unzip-response "^2.0.1" 1486 | url-parse-lax "^1.0.0" 1487 | 1488 | graceful-fs@^4.1.11, graceful-fs@^4.1.2, graceful-fs@^4.1.4: 1489 | version "4.1.11" 1490 | resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.1.11.tgz#0e8bdfe4d1ddb8854d64e04ea7c00e2a026e5658" 1491 | 1492 | "graceful-readlink@>= 1.0.0": 1493 | version "1.0.1" 1494 | resolved "https://registry.yarnpkg.com/graceful-readlink/-/graceful-readlink-1.0.1.tgz#4cafad76bc62f02fa039b2f94e9a3dd3a391a725" 1495 | 1496 | har-schema@^1.0.5: 1497 | version "1.0.5" 1498 | resolved "https://registry.yarnpkg.com/har-schema/-/har-schema-1.0.5.tgz#d263135f43307c02c602afc8fe95970c0151369e" 1499 | 1500 | har-validator@~4.2.1: 1501 | version "4.2.1" 1502 | resolved "https://registry.yarnpkg.com/har-validator/-/har-validator-4.2.1.tgz#33481d0f1bbff600dd203d75812a6a5fba002e2a" 1503 | dependencies: 1504 | ajv "^4.9.1" 1505 | har-schema "^1.0.5" 1506 | 1507 | has-ansi@^2.0.0: 1508 | version "2.0.0" 1509 | resolved "https://registry.yarnpkg.com/has-ansi/-/has-ansi-2.0.0.tgz#34f5049ce1ecdf2b0649af3ef24e45ed35416d91" 1510 | dependencies: 1511 | ansi-regex "^2.0.0" 1512 | 1513 | has-flag@^1.0.0: 1514 | version "1.0.0" 1515 | resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-1.0.0.tgz#9d9e793165ce017a00f00418c43f942a7b1d11fa" 1516 | 1517 | has-unicode@^2.0.0: 1518 | version "2.0.1" 1519 | resolved "https://registry.yarnpkg.com/has-unicode/-/has-unicode-2.0.1.tgz#e0e6fe6a28cf51138855e086d1691e771de2a8b9" 1520 | 1521 | hawk@~3.1.3: 1522 | version "3.1.3" 1523 | resolved "https://registry.yarnpkg.com/hawk/-/hawk-3.1.3.tgz#078444bd7c1640b0fe540d2c9b73d59678e8e1c4" 1524 | dependencies: 1525 | boom "2.x.x" 1526 | cryptiles "2.x.x" 1527 | hoek "2.x.x" 1528 | sntp "1.x.x" 1529 | 1530 | highlight-es@^1.0.0: 1531 | version "1.0.1" 1532 | resolved "https://registry.yarnpkg.com/highlight-es/-/highlight-es-1.0.1.tgz#3bb01eb1f2062ddaab72f8b23766a3bf8c1a771f" 1533 | dependencies: 1534 | chalk "^1.1.1" 1535 | is-es2016-keyword "^1.0.0" 1536 | js-tokens "^3.0.0" 1537 | 1538 | hoek@2.x.x: 1539 | version "2.16.3" 1540 | resolved "https://registry.yarnpkg.com/hoek/-/hoek-2.16.3.tgz#20bb7403d3cea398e91dc4710a8ff1b8274a25ed" 1541 | 1542 | home-or-tmp@^2.0.0: 1543 | version "2.0.0" 1544 | resolved "https://registry.yarnpkg.com/home-or-tmp/-/home-or-tmp-2.0.0.tgz#e36c3f2d2cae7d746a857e38d18d5f32a7882db8" 1545 | dependencies: 1546 | os-homedir "^1.0.0" 1547 | os-tmpdir "^1.0.1" 1548 | 1549 | homedir-polyfill@^1.0.0: 1550 | version "1.0.1" 1551 | resolved "https://registry.yarnpkg.com/homedir-polyfill/-/homedir-polyfill-1.0.1.tgz#4c2bbc8a758998feebf5ed68580f76d46768b4bc" 1552 | dependencies: 1553 | parse-passwd "^1.0.0" 1554 | 1555 | hosted-git-info@^2.1.4: 1556 | version "2.4.2" 1557 | resolved "https://registry.yarnpkg.com/hosted-git-info/-/hosted-git-info-2.4.2.tgz#0076b9f46a270506ddbaaea56496897460612a67" 1558 | 1559 | http-signature@~1.1.0: 1560 | version "1.1.1" 1561 | resolved "https://registry.yarnpkg.com/http-signature/-/http-signature-1.1.1.tgz#df72e267066cd0ac67fb76adf8e134a8fbcf91bf" 1562 | dependencies: 1563 | assert-plus "^0.2.0" 1564 | jsprim "^1.2.2" 1565 | sshpk "^1.7.0" 1566 | 1567 | ignore@^3.1.2: 1568 | version "3.3.0" 1569 | resolved "https://registry.yarnpkg.com/ignore/-/ignore-3.3.0.tgz#3812d22cbe9125f2c2b4915755a1b8abd745a001" 1570 | 1571 | imurmurhash@^0.1.4: 1572 | version "0.1.4" 1573 | resolved "https://registry.yarnpkg.com/imurmurhash/-/imurmurhash-0.1.4.tgz#9218b9b2b928a238b13dc4fb6b6d576f231453ea" 1574 | 1575 | indent-string@^2.1.0: 1576 | version "2.1.0" 1577 | resolved "https://registry.yarnpkg.com/indent-string/-/indent-string-2.1.0.tgz#8e2d48348742121b4a8218b7a137e9a52049dc80" 1578 | dependencies: 1579 | repeating "^2.0.0" 1580 | 1581 | inflight@^1.0.4: 1582 | version "1.0.6" 1583 | resolved "https://registry.yarnpkg.com/inflight/-/inflight-1.0.6.tgz#49bd6331d7d02d0c09bc910a1075ba8165b56df9" 1584 | dependencies: 1585 | once "^1.3.0" 1586 | wrappy "1" 1587 | 1588 | inherits@2, inherits@^2.0.1, inherits@^2.0.3, inherits@~2.0.0, inherits@~2.0.1: 1589 | version "2.0.3" 1590 | resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.3.tgz#633c2c83e3da42a502f52466022480f4208261de" 1591 | 1592 | ini@^1.3.4, ini@~1.3.0: 1593 | version "1.3.4" 1594 | resolved "https://registry.yarnpkg.com/ini/-/ini-1.3.4.tgz#0537cb79daf59b59a1a517dff706c86ec039162e" 1595 | 1596 | inquirer@^0.12.0: 1597 | version "0.12.0" 1598 | resolved "https://registry.yarnpkg.com/inquirer/-/inquirer-0.12.0.tgz#1ef2bfd63504df0bc75785fff8c2c41df12f077e" 1599 | dependencies: 1600 | ansi-escapes "^1.1.0" 1601 | ansi-regex "^2.0.0" 1602 | chalk "^1.0.0" 1603 | cli-cursor "^1.0.1" 1604 | cli-width "^2.0.0" 1605 | figures "^1.3.5" 1606 | lodash "^4.3.0" 1607 | readline2 "^1.0.1" 1608 | run-async "^0.1.0" 1609 | rx-lite "^3.1.2" 1610 | string-width "^1.0.1" 1611 | strip-ansi "^3.0.0" 1612 | through "^2.3.6" 1613 | 1614 | invariant@^2.2.0: 1615 | version "2.2.2" 1616 | resolved "https://registry.yarnpkg.com/invariant/-/invariant-2.2.2.tgz#9e1f56ac0acdb6bf303306f338be3b204ae60360" 1617 | dependencies: 1618 | loose-envify "^1.0.0" 1619 | 1620 | invert-kv@^1.0.0: 1621 | version "1.0.0" 1622 | resolved "https://registry.yarnpkg.com/invert-kv/-/invert-kv-1.0.0.tgz#104a8e4aaca6d3d8cd157a8ef8bfab2d7a3ffdb6" 1623 | 1624 | is-arrayish@^0.2.1: 1625 | version "0.2.1" 1626 | resolved "https://registry.yarnpkg.com/is-arrayish/-/is-arrayish-0.2.1.tgz#77c99840527aa8ecb1a8ba697b80645a7a926a9d" 1627 | 1628 | is-binary-path@^1.0.0: 1629 | version "1.0.1" 1630 | resolved "https://registry.yarnpkg.com/is-binary-path/-/is-binary-path-1.0.1.tgz#75f16642b480f187a711c814161fd3a4a7655898" 1631 | dependencies: 1632 | binary-extensions "^1.0.0" 1633 | 1634 | is-buffer@^1.1.5: 1635 | version "1.1.5" 1636 | resolved "https://registry.yarnpkg.com/is-buffer/-/is-buffer-1.1.5.tgz#1f3b26ef613b214b88cbca23cc6c01d87961eecc" 1637 | 1638 | is-builtin-module@^1.0.0: 1639 | version "1.0.0" 1640 | resolved "https://registry.yarnpkg.com/is-builtin-module/-/is-builtin-module-1.0.0.tgz#540572d34f7ac3119f8f76c30cbc1b1e037affbe" 1641 | dependencies: 1642 | builtin-modules "^1.0.0" 1643 | 1644 | is-ci@^1.0.8: 1645 | version "1.0.10" 1646 | resolved "https://registry.yarnpkg.com/is-ci/-/is-ci-1.0.10.tgz#f739336b2632365061a9d48270cd56ae3369318e" 1647 | dependencies: 1648 | ci-info "^1.0.0" 1649 | 1650 | is-dotfile@^1.0.0: 1651 | version "1.0.2" 1652 | resolved "https://registry.yarnpkg.com/is-dotfile/-/is-dotfile-1.0.2.tgz#2c132383f39199f8edc268ca01b9b007d205cc4d" 1653 | 1654 | is-equal-shallow@^0.1.3: 1655 | version "0.1.3" 1656 | resolved "https://registry.yarnpkg.com/is-equal-shallow/-/is-equal-shallow-0.1.3.tgz#2238098fc221de0bcfa5d9eac4c45d638aa1c534" 1657 | dependencies: 1658 | is-primitive "^2.0.0" 1659 | 1660 | is-es2016-keyword@^1.0.0: 1661 | version "1.0.0" 1662 | resolved "https://registry.yarnpkg.com/is-es2016-keyword/-/is-es2016-keyword-1.0.0.tgz#f6e54e110c5e4f8d265e69d2ed0eaf8cf5f47718" 1663 | 1664 | is-extendable@^0.1.1: 1665 | version "0.1.1" 1666 | resolved "https://registry.yarnpkg.com/is-extendable/-/is-extendable-0.1.1.tgz#62b110e289a471418e3ec36a617d472e301dfc89" 1667 | 1668 | is-extglob@^1.0.0: 1669 | version "1.0.0" 1670 | resolved "https://registry.yarnpkg.com/is-extglob/-/is-extglob-1.0.0.tgz#ac468177c4943405a092fc8f29760c6ffc6206c0" 1671 | 1672 | is-finite@^1.0.0: 1673 | version "1.0.2" 1674 | resolved "https://registry.yarnpkg.com/is-finite/-/is-finite-1.0.2.tgz#cc6677695602be550ef11e8b4aa6305342b6d0aa" 1675 | dependencies: 1676 | number-is-nan "^1.0.0" 1677 | 1678 | is-fullwidth-code-point@^1.0.0: 1679 | version "1.0.0" 1680 | resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz#ef9e31386f031a7f0d643af82fde50c457ef00cb" 1681 | dependencies: 1682 | number-is-nan "^1.0.0" 1683 | 1684 | is-fullwidth-code-point@^2.0.0: 1685 | version "2.0.0" 1686 | resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz#a3b30a5c4f199183167aaab93beefae3ddfb654f" 1687 | 1688 | is-get-set-prop@^1.0.0: 1689 | version "1.0.0" 1690 | resolved "https://registry.yarnpkg.com/is-get-set-prop/-/is-get-set-prop-1.0.0.tgz#2731877e4d78a6a69edcce6bb9d68b0779e76312" 1691 | dependencies: 1692 | get-set-props "^0.1.0" 1693 | lowercase-keys "^1.0.0" 1694 | 1695 | is-glob@^2.0.0, is-glob@^2.0.1: 1696 | version "2.0.1" 1697 | resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-2.0.1.tgz#d096f926a3ded5600f3fdfd91198cb0888c2d863" 1698 | dependencies: 1699 | is-extglob "^1.0.0" 1700 | 1701 | is-js-type@^2.0.0: 1702 | version "2.0.0" 1703 | resolved "https://registry.yarnpkg.com/is-js-type/-/is-js-type-2.0.0.tgz#73617006d659b4eb4729bba747d28782df0f7e22" 1704 | dependencies: 1705 | js-types "^1.0.0" 1706 | 1707 | is-my-json-valid@^2.10.0: 1708 | version "2.16.0" 1709 | resolved "https://registry.yarnpkg.com/is-my-json-valid/-/is-my-json-valid-2.16.0.tgz#f079dd9bfdae65ee2038aae8acbc86ab109e3693" 1710 | dependencies: 1711 | generate-function "^2.0.0" 1712 | generate-object-property "^1.1.0" 1713 | jsonpointer "^4.0.0" 1714 | xtend "^4.0.0" 1715 | 1716 | is-npm@^1.0.0: 1717 | version "1.0.0" 1718 | resolved "https://registry.yarnpkg.com/is-npm/-/is-npm-1.0.0.tgz#f2fb63a65e4905b406c86072765a1a4dc793b9f4" 1719 | 1720 | is-number@^2.0.2, is-number@^2.1.0: 1721 | version "2.1.0" 1722 | resolved "https://registry.yarnpkg.com/is-number/-/is-number-2.1.0.tgz#01fcbbb393463a548f2f466cce16dece49db908f" 1723 | dependencies: 1724 | kind-of "^3.0.2" 1725 | 1726 | is-obj-prop@^1.0.0: 1727 | version "1.0.0" 1728 | resolved "https://registry.yarnpkg.com/is-obj-prop/-/is-obj-prop-1.0.0.tgz#b34de79c450b8d7c73ab2cdf67dc875adb85f80e" 1729 | dependencies: 1730 | lowercase-keys "^1.0.0" 1731 | obj-props "^1.0.0" 1732 | 1733 | is-obj@^1.0.0: 1734 | version "1.0.1" 1735 | resolved "https://registry.yarnpkg.com/is-obj/-/is-obj-1.0.1.tgz#3e4729ac1f5fde025cd7d83a896dab9f4f67db0f" 1736 | 1737 | is-path-cwd@^1.0.0: 1738 | version "1.0.0" 1739 | resolved "https://registry.yarnpkg.com/is-path-cwd/-/is-path-cwd-1.0.0.tgz#d225ec23132e89edd38fda767472e62e65f1106d" 1740 | 1741 | is-path-in-cwd@^1.0.0: 1742 | version "1.0.0" 1743 | resolved "https://registry.yarnpkg.com/is-path-in-cwd/-/is-path-in-cwd-1.0.0.tgz#6477582b8214d602346094567003be8a9eac04dc" 1744 | dependencies: 1745 | is-path-inside "^1.0.0" 1746 | 1747 | is-path-inside@^1.0.0: 1748 | version "1.0.0" 1749 | resolved "https://registry.yarnpkg.com/is-path-inside/-/is-path-inside-1.0.0.tgz#fc06e5a1683fbda13de667aff717bbc10a48f37f" 1750 | dependencies: 1751 | path-is-inside "^1.0.1" 1752 | 1753 | is-plain-obj@^1.0.0, is-plain-obj@^1.1.0: 1754 | version "1.1.0" 1755 | resolved "https://registry.yarnpkg.com/is-plain-obj/-/is-plain-obj-1.1.0.tgz#71a50c8429dfca773c92a390a4a03b39fcd51d3e" 1756 | 1757 | is-posix-bracket@^0.1.0: 1758 | version "0.1.1" 1759 | resolved "https://registry.yarnpkg.com/is-posix-bracket/-/is-posix-bracket-0.1.1.tgz#3334dc79774368e92f016e6fbc0a88f5cd6e6bc4" 1760 | 1761 | is-primitive@^2.0.0: 1762 | version "2.0.0" 1763 | resolved "https://registry.yarnpkg.com/is-primitive/-/is-primitive-2.0.0.tgz#207bab91638499c07b2adf240a41a87210034575" 1764 | 1765 | is-property@^1.0.0: 1766 | version "1.0.2" 1767 | resolved "https://registry.yarnpkg.com/is-property/-/is-property-1.0.2.tgz#57fe1c4e48474edd65b09911f26b1cd4095dda84" 1768 | 1769 | is-proto-prop@^1.0.0: 1770 | version "1.0.0" 1771 | resolved "https://registry.yarnpkg.com/is-proto-prop/-/is-proto-prop-1.0.0.tgz#b3951f95c089924fb5d4fcda6542ab3e83e2b220" 1772 | dependencies: 1773 | lowercase-keys "^1.0.0" 1774 | proto-props "^0.2.0" 1775 | 1776 | is-redirect@^1.0.0: 1777 | version "1.0.0" 1778 | resolved "https://registry.yarnpkg.com/is-redirect/-/is-redirect-1.0.0.tgz#1d03dded53bd8db0f30c26e4f95d36fc7c87dc24" 1779 | 1780 | is-resolvable@^1.0.0: 1781 | version "1.0.0" 1782 | resolved "https://registry.yarnpkg.com/is-resolvable/-/is-resolvable-1.0.0.tgz#8df57c61ea2e3c501408d100fb013cf8d6e0cc62" 1783 | dependencies: 1784 | tryit "^1.0.1" 1785 | 1786 | is-retry-allowed@^1.0.0: 1787 | version "1.1.0" 1788 | resolved "https://registry.yarnpkg.com/is-retry-allowed/-/is-retry-allowed-1.1.0.tgz#11a060568b67339444033d0125a61a20d564fb34" 1789 | 1790 | is-stream@^1.0.0, is-stream@^1.1.0: 1791 | version "1.1.0" 1792 | resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-1.1.0.tgz#12d4a3dd4e68e0b79ceb8dbc84173ae80d91ca44" 1793 | 1794 | is-typedarray@~1.0.0: 1795 | version "1.0.0" 1796 | resolved "https://registry.yarnpkg.com/is-typedarray/-/is-typedarray-1.0.0.tgz#e479c80858df0c1b11ddda6940f96011fcda4a9a" 1797 | 1798 | is-utf8@^0.2.0: 1799 | version "0.2.1" 1800 | resolved "https://registry.yarnpkg.com/is-utf8/-/is-utf8-0.2.1.tgz#4b0da1442104d1b336340e80797e865cf39f7d72" 1801 | 1802 | is-windows@^0.2.0: 1803 | version "0.2.0" 1804 | resolved "https://registry.yarnpkg.com/is-windows/-/is-windows-0.2.0.tgz#de1aa6d63ea29dd248737b69f1ff8b8002d2108c" 1805 | 1806 | isarray@1.0.0, isarray@^1.0.0, isarray@~1.0.0: 1807 | version "1.0.0" 1808 | resolved "https://registry.yarnpkg.com/isarray/-/isarray-1.0.0.tgz#bb935d48582cba168c06834957a54a3e07124f11" 1809 | 1810 | isexe@^2.0.0: 1811 | version "2.0.0" 1812 | resolved "https://registry.yarnpkg.com/isexe/-/isexe-2.0.0.tgz#e8fbf374dc556ff8947a10dcb0572d633f2cfa10" 1813 | 1814 | isobject@^2.0.0: 1815 | version "2.1.0" 1816 | resolved "https://registry.yarnpkg.com/isobject/-/isobject-2.1.0.tgz#f065561096a3f1da2ef46272f815c840d87e0c89" 1817 | dependencies: 1818 | isarray "1.0.0" 1819 | 1820 | isstream@~0.1.2: 1821 | version "0.1.2" 1822 | resolved "https://registry.yarnpkg.com/isstream/-/isstream-0.1.2.tgz#47e63f7af55afa6f92e1500e690eb8b8529c099a" 1823 | 1824 | jodid25519@^1.0.0: 1825 | version "1.0.2" 1826 | resolved "https://registry.yarnpkg.com/jodid25519/-/jodid25519-1.0.2.tgz#06d4912255093419477d425633606e0e90782967" 1827 | dependencies: 1828 | jsbn "~0.1.0" 1829 | 1830 | js-tokens@^3.0.0: 1831 | version "3.0.1" 1832 | resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-3.0.1.tgz#08e9f132484a2c45a30907e9dc4d5567b7f114d7" 1833 | 1834 | js-types@^1.0.0: 1835 | version "1.0.0" 1836 | resolved "https://registry.yarnpkg.com/js-types/-/js-types-1.0.0.tgz#d242e6494ed572ad3c92809fc8bed7f7687cbf03" 1837 | 1838 | js-yaml@^3.4.2, js-yaml@^3.5.1: 1839 | version "3.8.4" 1840 | resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-3.8.4.tgz#520b4564f86573ba96662af85a8cafa7b4b5a6f6" 1841 | dependencies: 1842 | argparse "^1.0.7" 1843 | esprima "^3.1.1" 1844 | 1845 | jsbn@~0.1.0: 1846 | version "0.1.1" 1847 | resolved "https://registry.yarnpkg.com/jsbn/-/jsbn-0.1.1.tgz#a5e654c2e5a2deb5f201d96cefbca80c0ef2f513" 1848 | 1849 | jsesc@^1.3.0: 1850 | version "1.3.0" 1851 | resolved "https://registry.yarnpkg.com/jsesc/-/jsesc-1.3.0.tgz#46c3fec8c1892b12b0833db9bc7622176dbab34b" 1852 | 1853 | jsesc@~0.5.0: 1854 | version "0.5.0" 1855 | resolved "https://registry.yarnpkg.com/jsesc/-/jsesc-0.5.0.tgz#e7dee66e35d6fc16f710fe91d5cf69f70f08911d" 1856 | 1857 | json-schema@0.2.3: 1858 | version "0.2.3" 1859 | resolved "https://registry.yarnpkg.com/json-schema/-/json-schema-0.2.3.tgz#b480c892e59a2f05954ce727bd3f2a4e882f9e13" 1860 | 1861 | json-stable-stringify@^1.0.0, json-stable-stringify@^1.0.1: 1862 | version "1.0.1" 1863 | resolved "https://registry.yarnpkg.com/json-stable-stringify/-/json-stable-stringify-1.0.1.tgz#9a759d39c5f2ff503fd5300646ed445f88c4f9af" 1864 | dependencies: 1865 | jsonify "~0.0.0" 1866 | 1867 | json-stringify-safe@~5.0.1: 1868 | version "5.0.1" 1869 | resolved "https://registry.yarnpkg.com/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz#1296a2d58fd45f19a0f6ce01d65701e2c735b6eb" 1870 | 1871 | json5@^0.5.0: 1872 | version "0.5.1" 1873 | resolved "https://registry.yarnpkg.com/json5/-/json5-0.5.1.tgz#1eade7acc012034ad84e2396767ead9fa5495821" 1874 | 1875 | jsonify@~0.0.0: 1876 | version "0.0.0" 1877 | resolved "https://registry.yarnpkg.com/jsonify/-/jsonify-0.0.0.tgz#2c74b6ee41d93ca51b7b5aaee8f503631d252a73" 1878 | 1879 | jsonpointer@^4.0.0: 1880 | version "4.0.1" 1881 | resolved "https://registry.yarnpkg.com/jsonpointer/-/jsonpointer-4.0.1.tgz#4fd92cb34e0e9db3c89c8622ecf51f9b978c6cb9" 1882 | 1883 | jsprim@^1.2.2: 1884 | version "1.4.0" 1885 | resolved "https://registry.yarnpkg.com/jsprim/-/jsprim-1.4.0.tgz#a3b87e40298d8c380552d8cc7628a0bb95a22918" 1886 | dependencies: 1887 | assert-plus "1.0.0" 1888 | extsprintf "1.0.2" 1889 | json-schema "0.2.3" 1890 | verror "1.3.6" 1891 | 1892 | kind-of@^3.0.2: 1893 | version "3.2.0" 1894 | resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-3.2.0.tgz#b58abe4d5c044ad33726a8c1525b48cf891bff07" 1895 | dependencies: 1896 | is-buffer "^1.1.5" 1897 | 1898 | latest-version@^2.0.0: 1899 | version "2.0.0" 1900 | resolved "https://registry.yarnpkg.com/latest-version/-/latest-version-2.0.0.tgz#56f8d6139620847b8017f8f1f4d78e211324168b" 1901 | dependencies: 1902 | package-json "^2.0.0" 1903 | 1904 | latest-version@^3.0.0: 1905 | version "3.1.0" 1906 | resolved "https://registry.yarnpkg.com/latest-version/-/latest-version-3.1.0.tgz#a205383fea322b33b5ae3b18abee0dc2f356ee15" 1907 | dependencies: 1908 | package-json "^4.0.0" 1909 | 1910 | lazy-req@^2.0.0: 1911 | version "2.0.0" 1912 | resolved "https://registry.yarnpkg.com/lazy-req/-/lazy-req-2.0.0.tgz#c9450a363ecdda2e6f0c70132ad4f37f8f06f2b4" 1913 | 1914 | lcid@^1.0.0: 1915 | version "1.0.0" 1916 | resolved "https://registry.yarnpkg.com/lcid/-/lcid-1.0.0.tgz#308accafa0bc483a3867b4b6f2b9506251d1b835" 1917 | dependencies: 1918 | invert-kv "^1.0.0" 1919 | 1920 | levn@^0.3.0, levn@~0.3.0: 1921 | version "0.3.0" 1922 | resolved "https://registry.yarnpkg.com/levn/-/levn-0.3.0.tgz#3b09924edf9f083c0490fdd4c0bc4421e04764ee" 1923 | dependencies: 1924 | prelude-ls "~1.1.2" 1925 | type-check "~0.3.2" 1926 | 1927 | load-json-file@^1.0.0, load-json-file@^1.1.0: 1928 | version "1.1.0" 1929 | resolved "https://registry.yarnpkg.com/load-json-file/-/load-json-file-1.1.0.tgz#956905708d58b4bab4c2261b04f59f31c99374c0" 1930 | dependencies: 1931 | graceful-fs "^4.1.2" 1932 | parse-json "^2.2.0" 1933 | pify "^2.0.0" 1934 | pinkie-promise "^2.0.0" 1935 | strip-bom "^2.0.0" 1936 | 1937 | lodash.assign@^4.0.0: 1938 | version "4.2.0" 1939 | resolved "https://registry.yarnpkg.com/lodash.assign/-/lodash.assign-4.2.0.tgz#0d99f3ccd7a6d261d19bdaeb9245005d285808e7" 1940 | 1941 | lodash.pickby@^4.0.0: 1942 | version "4.6.0" 1943 | resolved "https://registry.yarnpkg.com/lodash.pickby/-/lodash.pickby-4.6.0.tgz#7dea21d8c18d7703a27c704c15d3b84a67e33aff" 1944 | 1945 | "lodash@4.6.1 || ^4.16.1", lodash@^4.0.0, lodash@^4.2.0, lodash@^4.3.0, lodash@^4.5.1, lodash@^4.7.0: 1946 | version "4.17.4" 1947 | resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.4.tgz#78203a4d1c328ae1d86dca6460e369b57f4055ae" 1948 | 1949 | loose-envify@^1.0.0: 1950 | version "1.3.1" 1951 | resolved "https://registry.yarnpkg.com/loose-envify/-/loose-envify-1.3.1.tgz#d1a8ad33fa9ce0e713d65fdd0ac8b748d478c848" 1952 | dependencies: 1953 | js-tokens "^3.0.0" 1954 | 1955 | loud-rejection@^1.0.0: 1956 | version "1.6.0" 1957 | resolved "https://registry.yarnpkg.com/loud-rejection/-/loud-rejection-1.6.0.tgz#5b46f80147edee578870f086d04821cf998e551f" 1958 | dependencies: 1959 | currently-unhandled "^0.4.1" 1960 | signal-exit "^3.0.0" 1961 | 1962 | lowercase-keys@^1.0.0: 1963 | version "1.0.0" 1964 | resolved "https://registry.yarnpkg.com/lowercase-keys/-/lowercase-keys-1.0.0.tgz#4e3366b39e7f5457e35f1324bdf6f88d0bfc7306" 1965 | 1966 | lru-cache@^4.0.0: 1967 | version "4.0.2" 1968 | resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-4.0.2.tgz#1d17679c069cda5d040991a09dbc2c0db377e55e" 1969 | dependencies: 1970 | pseudomap "^1.0.1" 1971 | yallist "^2.0.0" 1972 | 1973 | make-dir@^1.0.0: 1974 | version "1.0.0" 1975 | resolved "https://registry.yarnpkg.com/make-dir/-/make-dir-1.0.0.tgz#97a011751e91dd87cfadef58832ebb04936de978" 1976 | dependencies: 1977 | pify "^2.3.0" 1978 | 1979 | map-obj@^1.0.0, map-obj@^1.0.1: 1980 | version "1.0.1" 1981 | resolved "https://registry.yarnpkg.com/map-obj/-/map-obj-1.0.1.tgz#d933ceb9205d82bdcf4886f6742bdc2b4dea146d" 1982 | 1983 | meow@^3.4.2, meow@^3.7.0: 1984 | version "3.7.0" 1985 | resolved "https://registry.yarnpkg.com/meow/-/meow-3.7.0.tgz#72cb668b425228290abbfa856892587308a801fb" 1986 | dependencies: 1987 | camelcase-keys "^2.0.0" 1988 | decamelize "^1.1.2" 1989 | loud-rejection "^1.0.0" 1990 | map-obj "^1.0.1" 1991 | minimist "^1.1.3" 1992 | normalize-package-data "^2.3.4" 1993 | object-assign "^4.0.1" 1994 | read-pkg-up "^1.0.1" 1995 | redent "^1.0.0" 1996 | trim-newlines "^1.0.0" 1997 | 1998 | merge-options@0.0.64: 1999 | version "0.0.64" 2000 | resolved "https://registry.yarnpkg.com/merge-options/-/merge-options-0.0.64.tgz#cbe04f594a6985eaf27f7f8f0b2a3acf6f9d562d" 2001 | dependencies: 2002 | is-plain-obj "^1.1.0" 2003 | 2004 | micromatch@^2.1.5: 2005 | version "2.3.11" 2006 | resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-2.3.11.tgz#86677c97d1720b363431d04d0d15293bd38c1565" 2007 | dependencies: 2008 | arr-diff "^2.0.0" 2009 | array-unique "^0.2.1" 2010 | braces "^1.8.2" 2011 | expand-brackets "^0.1.4" 2012 | extglob "^0.3.1" 2013 | filename-regex "^2.0.0" 2014 | is-extglob "^1.0.0" 2015 | is-glob "^2.0.1" 2016 | kind-of "^3.0.2" 2017 | normalize-path "^2.0.1" 2018 | object.omit "^2.0.0" 2019 | parse-glob "^3.0.4" 2020 | regex-cache "^0.4.2" 2021 | 2022 | mime-db@~1.27.0: 2023 | version "1.27.0" 2024 | resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.27.0.tgz#820f572296bbd20ec25ed55e5b5de869e5436eb1" 2025 | 2026 | mime-types@^2.1.12, mime-types@~2.1.7: 2027 | version "2.1.15" 2028 | resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.15.tgz#a4ebf5064094569237b8cf70046776d09fc92aed" 2029 | dependencies: 2030 | mime-db "~1.27.0" 2031 | 2032 | "minimatch@2 || 3", minimatch@^3.0.0, minimatch@^3.0.2: 2033 | version "3.0.4" 2034 | resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.0.4.tgz#5166e286457f03306064be5497e8dbb0c3d32083" 2035 | dependencies: 2036 | brace-expansion "^1.1.7" 2037 | 2038 | minimist@0.0.8: 2039 | version "0.0.8" 2040 | resolved "https://registry.yarnpkg.com/minimist/-/minimist-0.0.8.tgz#857fcabfc3397d2625b8228262e86aa7a011b05d" 2041 | 2042 | minimist@^1.1.3, minimist@^1.2.0: 2043 | version "1.2.0" 2044 | resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.0.tgz#a35008b20f41383eec1fb914f4cd5df79a264284" 2045 | 2046 | "mkdirp@>=0.5 0", mkdirp@^0.5.0, mkdirp@^0.5.1: 2047 | version "0.5.1" 2048 | resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.5.1.tgz#30057438eac6cf7f8c4767f38648d6697d75c903" 2049 | dependencies: 2050 | minimist "0.0.8" 2051 | 2052 | ms@0.7.3: 2053 | version "0.7.3" 2054 | resolved "https://registry.yarnpkg.com/ms/-/ms-0.7.3.tgz#708155a5e44e33f5fd0fc53e81d0d40a91be1fff" 2055 | 2056 | multimatch@^2.1.0: 2057 | version "2.1.0" 2058 | resolved "https://registry.yarnpkg.com/multimatch/-/multimatch-2.1.0.tgz#9c7906a22fb4c02919e2f5f75161b4cdbd4b2a2b" 2059 | dependencies: 2060 | array-differ "^1.0.0" 2061 | array-union "^1.0.1" 2062 | arrify "^1.0.0" 2063 | minimatch "^3.0.0" 2064 | 2065 | mute-stream@0.0.5: 2066 | version "0.0.5" 2067 | resolved "https://registry.yarnpkg.com/mute-stream/-/mute-stream-0.0.5.tgz#8fbfabb0a98a253d3184331f9e8deb7372fac6c0" 2068 | 2069 | nan@^2.3.0: 2070 | version "2.6.2" 2071 | resolved "https://registry.yarnpkg.com/nan/-/nan-2.6.2.tgz#e4ff34e6c95fdfb5aecc08de6596f43605a7db45" 2072 | 2073 | node-emoji@^1.0.3: 2074 | version "1.5.1" 2075 | resolved "https://registry.yarnpkg.com/node-emoji/-/node-emoji-1.5.1.tgz#fd918e412769bf8c448051238233840b2aff16a1" 2076 | dependencies: 2077 | string.prototype.codepointat "^0.2.0" 2078 | 2079 | node-pre-gyp@^0.6.29: 2080 | version "0.6.34" 2081 | resolved "https://registry.yarnpkg.com/node-pre-gyp/-/node-pre-gyp-0.6.34.tgz#94ad1c798a11d7fc67381b50d47f8cc18d9799f7" 2082 | dependencies: 2083 | mkdirp "^0.5.1" 2084 | nopt "^4.0.1" 2085 | npmlog "^4.0.2" 2086 | rc "^1.1.7" 2087 | request "^2.81.0" 2088 | rimraf "^2.6.1" 2089 | semver "^5.3.0" 2090 | tar "^2.2.1" 2091 | tar-pack "^3.4.0" 2092 | 2093 | node-status-codes@^1.0.0: 2094 | version "1.0.0" 2095 | resolved "https://registry.yarnpkg.com/node-status-codes/-/node-status-codes-1.0.0.tgz#5ae5541d024645d32a58fcddc9ceecea7ae3ac2f" 2096 | 2097 | nopt@^4.0.1: 2098 | version "4.0.1" 2099 | resolved "https://registry.yarnpkg.com/nopt/-/nopt-4.0.1.tgz#d0d4685afd5415193c8c7505602d0d17cd64474d" 2100 | dependencies: 2101 | abbrev "1" 2102 | osenv "^0.1.4" 2103 | 2104 | normalize-package-data@^2.3.2, normalize-package-data@^2.3.4: 2105 | version "2.3.8" 2106 | resolved "https://registry.yarnpkg.com/normalize-package-data/-/normalize-package-data-2.3.8.tgz#d819eda2a9dedbd1ffa563ea4071d936782295bb" 2107 | dependencies: 2108 | hosted-git-info "^2.1.4" 2109 | is-builtin-module "^1.0.0" 2110 | semver "2 || 3 || 4 || 5" 2111 | validate-npm-package-license "^3.0.1" 2112 | 2113 | normalize-path@^2.0.1: 2114 | version "2.1.1" 2115 | resolved "https://registry.yarnpkg.com/normalize-path/-/normalize-path-2.1.1.tgz#1ab28b556e198363a8c1a6f7e6fa20137fe6aed9" 2116 | dependencies: 2117 | remove-trailing-separator "^1.0.1" 2118 | 2119 | npm-run-path@^1.0.0: 2120 | version "1.0.0" 2121 | resolved "https://registry.yarnpkg.com/npm-run-path/-/npm-run-path-1.0.0.tgz#f5c32bf595fe81ae927daec52e82f8b000ac3c8f" 2122 | dependencies: 2123 | path-key "^1.0.0" 2124 | 2125 | npmlog@^4.0.2: 2126 | version "4.1.0" 2127 | resolved "https://registry.yarnpkg.com/npmlog/-/npmlog-4.1.0.tgz#dc59bee85f64f00ed424efb2af0783df25d1c0b5" 2128 | dependencies: 2129 | are-we-there-yet "~1.1.2" 2130 | console-control-strings "~1.1.0" 2131 | gauge "~2.7.3" 2132 | set-blocking "~2.0.0" 2133 | 2134 | number-is-nan@^1.0.0: 2135 | version "1.0.1" 2136 | resolved "https://registry.yarnpkg.com/number-is-nan/-/number-is-nan-1.0.1.tgz#097b602b53422a522c1afb8790318336941a011d" 2137 | 2138 | oauth-sign@~0.8.1: 2139 | version "0.8.2" 2140 | resolved "https://registry.yarnpkg.com/oauth-sign/-/oauth-sign-0.8.2.tgz#46a6ab7f0aead8deae9ec0565780b7d4efeb9d43" 2141 | 2142 | obj-props@^1.0.0: 2143 | version "1.1.0" 2144 | resolved "https://registry.yarnpkg.com/obj-props/-/obj-props-1.1.0.tgz#626313faa442befd4a44e9a02c3cb6bde937b511" 2145 | 2146 | object-assign@^4.0.1, object-assign@^4.1.0: 2147 | version "4.1.1" 2148 | resolved "https://registry.yarnpkg.com/object-assign/-/object-assign-4.1.1.tgz#2109adc7965887cfc05cbbd442cac8bfbb360863" 2149 | 2150 | object.omit@^2.0.0: 2151 | version "2.0.1" 2152 | resolved "https://registry.yarnpkg.com/object.omit/-/object.omit-2.0.1.tgz#1a9c744829f39dbb858c76ca3579ae2a54ebd1fa" 2153 | dependencies: 2154 | for-own "^0.1.4" 2155 | is-extendable "^0.1.1" 2156 | 2157 | once@^1.3.0, once@^1.3.3: 2158 | version "1.4.0" 2159 | resolved "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1" 2160 | dependencies: 2161 | wrappy "1" 2162 | 2163 | onetime@^1.0.0: 2164 | version "1.1.0" 2165 | resolved "https://registry.yarnpkg.com/onetime/-/onetime-1.1.0.tgz#a1f7838f8314c516f05ecefcbc4ccfe04b4ed789" 2166 | 2167 | optionator@^0.8.1: 2168 | version "0.8.2" 2169 | resolved "https://registry.yarnpkg.com/optionator/-/optionator-0.8.2.tgz#364c5e409d3f4d6301d6c0b4c05bba50180aeb64" 2170 | dependencies: 2171 | deep-is "~0.1.3" 2172 | fast-levenshtein "~2.0.4" 2173 | levn "~0.3.0" 2174 | prelude-ls "~1.1.2" 2175 | type-check "~0.3.2" 2176 | wordwrap "~1.0.0" 2177 | 2178 | ora@^0.2.1: 2179 | version "0.2.3" 2180 | resolved "https://registry.yarnpkg.com/ora/-/ora-0.2.3.tgz#37527d220adcd53c39b73571d754156d5db657a4" 2181 | dependencies: 2182 | chalk "^1.1.1" 2183 | cli-cursor "^1.0.2" 2184 | cli-spinners "^0.1.2" 2185 | object-assign "^4.0.1" 2186 | 2187 | os-homedir@^1.0.0: 2188 | version "1.0.2" 2189 | resolved "https://registry.yarnpkg.com/os-homedir/-/os-homedir-1.0.2.tgz#ffbc4988336e0e833de0c168c7ef152121aa7fb3" 2190 | 2191 | os-locale@^1.4.0: 2192 | version "1.4.0" 2193 | resolved "https://registry.yarnpkg.com/os-locale/-/os-locale-1.4.0.tgz#20f9f17ae29ed345e8bde583b13d2009803c14d9" 2194 | dependencies: 2195 | lcid "^1.0.0" 2196 | 2197 | os-tmpdir@^1.0.0, os-tmpdir@^1.0.1: 2198 | version "1.0.2" 2199 | resolved "https://registry.yarnpkg.com/os-tmpdir/-/os-tmpdir-1.0.2.tgz#bbe67406c79aa85c5cfec766fe5734555dfa1274" 2200 | 2201 | osenv@^0.1.0, osenv@^0.1.4: 2202 | version "0.1.4" 2203 | resolved "https://registry.yarnpkg.com/osenv/-/osenv-0.1.4.tgz#42fe6d5953df06c8064be6f176c3d05aaaa34644" 2204 | dependencies: 2205 | os-homedir "^1.0.0" 2206 | os-tmpdir "^1.0.0" 2207 | 2208 | output-file-sync@^1.1.0: 2209 | version "1.1.2" 2210 | resolved "https://registry.yarnpkg.com/output-file-sync/-/output-file-sync-1.1.2.tgz#d0a33eefe61a205facb90092e826598d5245ce76" 2211 | dependencies: 2212 | graceful-fs "^4.1.4" 2213 | mkdirp "^0.5.1" 2214 | object-assign "^4.1.0" 2215 | 2216 | package-json@^2.0.0: 2217 | version "2.4.0" 2218 | resolved "https://registry.yarnpkg.com/package-json/-/package-json-2.4.0.tgz#0d15bd67d1cbbddbb2ca222ff2edb86bcb31a8bb" 2219 | dependencies: 2220 | got "^5.0.0" 2221 | registry-auth-token "^3.0.1" 2222 | registry-url "^3.0.3" 2223 | semver "^5.1.0" 2224 | 2225 | package-json@^4.0.0, package-json@^4.0.1: 2226 | version "4.0.1" 2227 | resolved "https://registry.yarnpkg.com/package-json/-/package-json-4.0.1.tgz#8869a0401253661c4c4ca3da6c2121ed555f5eed" 2228 | dependencies: 2229 | got "^6.7.1" 2230 | registry-auth-token "^3.0.1" 2231 | registry-url "^3.0.3" 2232 | semver "^5.1.0" 2233 | 2234 | parse-glob@^3.0.4: 2235 | version "3.0.4" 2236 | resolved "https://registry.yarnpkg.com/parse-glob/-/parse-glob-3.0.4.tgz#b2c376cfb11f35513badd173ef0bb6e3a388391c" 2237 | dependencies: 2238 | glob-base "^0.3.0" 2239 | is-dotfile "^1.0.0" 2240 | is-extglob "^1.0.0" 2241 | is-glob "^2.0.0" 2242 | 2243 | parse-json@^2.1.0, parse-json@^2.2.0: 2244 | version "2.2.0" 2245 | resolved "https://registry.yarnpkg.com/parse-json/-/parse-json-2.2.0.tgz#f480f40434ef80741f8469099f8dea18f55a4dc9" 2246 | dependencies: 2247 | error-ex "^1.2.0" 2248 | 2249 | parse-passwd@^1.0.0: 2250 | version "1.0.0" 2251 | resolved "https://registry.yarnpkg.com/parse-passwd/-/parse-passwd-1.0.0.tgz#6d5b934a456993b23d37f40a382d6f1666a8e5c6" 2252 | 2253 | path-exists@^2.0.0, path-exists@^2.1.0: 2254 | version "2.1.0" 2255 | resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-2.1.0.tgz#0feb6c64f0fc518d9a754dd5efb62c7022761f4b" 2256 | dependencies: 2257 | pinkie-promise "^2.0.0" 2258 | 2259 | path-is-absolute@^1.0.0: 2260 | version "1.0.1" 2261 | resolved "https://registry.yarnpkg.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f" 2262 | 2263 | path-is-inside@^1.0.1: 2264 | version "1.0.2" 2265 | resolved "https://registry.yarnpkg.com/path-is-inside/-/path-is-inside-1.0.2.tgz#365417dede44430d1c11af61027facf074bdfc53" 2266 | 2267 | path-key@^1.0.0: 2268 | version "1.0.0" 2269 | resolved "https://registry.yarnpkg.com/path-key/-/path-key-1.0.0.tgz#5d53d578019646c0d68800db4e146e6bdc2ac7af" 2270 | 2271 | path-type@^1.0.0: 2272 | version "1.1.0" 2273 | resolved "https://registry.yarnpkg.com/path-type/-/path-type-1.1.0.tgz#59c44f7ee491da704da415da5a4070ba4f8fe441" 2274 | dependencies: 2275 | graceful-fs "^4.1.2" 2276 | pify "^2.0.0" 2277 | pinkie-promise "^2.0.0" 2278 | 2279 | performance-now@^0.2.0: 2280 | version "0.2.0" 2281 | resolved "https://registry.yarnpkg.com/performance-now/-/performance-now-0.2.0.tgz#33ef30c5c77d4ea21c5a53869d91b56d8f2555e5" 2282 | 2283 | pify@^2.0.0, pify@^2.3.0: 2284 | version "2.3.0" 2285 | resolved "https://registry.yarnpkg.com/pify/-/pify-2.3.0.tgz#ed141a6ac043a849ea588498e7dca8b15330e90c" 2286 | 2287 | pinkie-promise@^2.0.0: 2288 | version "2.0.1" 2289 | resolved "https://registry.yarnpkg.com/pinkie-promise/-/pinkie-promise-2.0.1.tgz#2135d6dfa7a358c069ac9b178776288228450ffa" 2290 | dependencies: 2291 | pinkie "^2.0.0" 2292 | 2293 | pinkie@^2.0.0: 2294 | version "2.0.4" 2295 | resolved "https://registry.yarnpkg.com/pinkie/-/pinkie-2.0.4.tgz#72556b80cfa0d48a974e80e77248e80ed4f7f870" 2296 | 2297 | pkg-conf@^1.0.1: 2298 | version "1.1.3" 2299 | resolved "https://registry.yarnpkg.com/pkg-conf/-/pkg-conf-1.1.3.tgz#378e56d6fd13e88bfb6f4a25df7a83faabddba5b" 2300 | dependencies: 2301 | find-up "^1.0.0" 2302 | load-json-file "^1.1.0" 2303 | object-assign "^4.0.1" 2304 | symbol "^0.2.1" 2305 | 2306 | pkg-dir@^1.0.0: 2307 | version "1.0.0" 2308 | resolved "https://registry.yarnpkg.com/pkg-dir/-/pkg-dir-1.0.0.tgz#7a4b508a8d5bb2d629d447056ff4e9c9314cf3d4" 2309 | dependencies: 2310 | find-up "^1.0.0" 2311 | 2312 | pluralize@^1.2.1: 2313 | version "1.2.1" 2314 | resolved "https://registry.yarnpkg.com/pluralize/-/pluralize-1.2.1.tgz#d1a21483fd22bb41e58a12fa3421823140897c45" 2315 | 2316 | prelude-ls@~1.1.2: 2317 | version "1.1.2" 2318 | resolved "https://registry.yarnpkg.com/prelude-ls/-/prelude-ls-1.1.2.tgz#21932a549f5e52ffd9a827f570e04be62a97da54" 2319 | 2320 | prepend-http@^1.0.1: 2321 | version "1.0.4" 2322 | resolved "https://registry.yarnpkg.com/prepend-http/-/prepend-http-1.0.4.tgz#d4f4562b0ce3696e41ac52d0e002e57a635dc6dc" 2323 | 2324 | preserve@^0.2.0: 2325 | version "0.2.0" 2326 | resolved "https://registry.yarnpkg.com/preserve/-/preserve-0.2.0.tgz#815ed1f6ebc65926f865b310c0713bcb3315ce4b" 2327 | 2328 | private@^0.1.6: 2329 | version "0.1.7" 2330 | resolved "https://registry.yarnpkg.com/private/-/private-0.1.7.tgz#68ce5e8a1ef0a23bb570cc28537b5332aba63ef1" 2331 | 2332 | process-nextick-args@~1.0.6: 2333 | version "1.0.7" 2334 | resolved "https://registry.yarnpkg.com/process-nextick-args/-/process-nextick-args-1.0.7.tgz#150e20b756590ad3f91093f25a4f2ad8bff30ba3" 2335 | 2336 | progress@^1.1.8: 2337 | version "1.1.8" 2338 | resolved "https://registry.yarnpkg.com/progress/-/progress-1.1.8.tgz#e260c78f6161cdd9b0e56cc3e0a85de17c7a57be" 2339 | 2340 | proto-props@^0.2.0: 2341 | version "0.2.1" 2342 | resolved "https://registry.yarnpkg.com/proto-props/-/proto-props-0.2.1.tgz#5e01dc2675a0de9abfa76e799dfa334d6f483f4b" 2343 | 2344 | pseudomap@^1.0.1: 2345 | version "1.0.2" 2346 | resolved "https://registry.yarnpkg.com/pseudomap/-/pseudomap-1.0.2.tgz#f052a28da70e618917ef0a8ac34c1ae5a68286b3" 2347 | 2348 | punycode@^1.4.1: 2349 | version "1.4.1" 2350 | resolved "https://registry.yarnpkg.com/punycode/-/punycode-1.4.1.tgz#c0d5a63b2718800ad8e1eb0fa5269c84dd41845e" 2351 | 2352 | qs@~6.4.0: 2353 | version "6.4.0" 2354 | resolved "https://registry.yarnpkg.com/qs/-/qs-6.4.0.tgz#13e26d28ad6b0ffaa91312cd3bf708ed351e7233" 2355 | 2356 | randomatic@^1.1.3: 2357 | version "1.1.6" 2358 | resolved "https://registry.yarnpkg.com/randomatic/-/randomatic-1.1.6.tgz#110dcabff397e9dcff7c0789ccc0a49adf1ec5bb" 2359 | dependencies: 2360 | is-number "^2.0.2" 2361 | kind-of "^3.0.2" 2362 | 2363 | rc@^1.0.1, rc@^1.1.6, rc@^1.1.7: 2364 | version "1.2.1" 2365 | resolved "https://registry.yarnpkg.com/rc/-/rc-1.2.1.tgz#2e03e8e42ee450b8cb3dce65be1bf8974e1dfd95" 2366 | dependencies: 2367 | deep-extend "~0.4.0" 2368 | ini "~1.3.0" 2369 | minimist "^1.2.0" 2370 | strip-json-comments "~2.0.1" 2371 | 2372 | read-all-stream@^3.0.0: 2373 | version "3.1.0" 2374 | resolved "https://registry.yarnpkg.com/read-all-stream/-/read-all-stream-3.1.0.tgz#35c3e177f2078ef789ee4bfafa4373074eaef4fa" 2375 | dependencies: 2376 | pinkie-promise "^2.0.0" 2377 | readable-stream "^2.0.0" 2378 | 2379 | read-pkg-up@^1.0.1: 2380 | version "1.0.1" 2381 | resolved "https://registry.yarnpkg.com/read-pkg-up/-/read-pkg-up-1.0.1.tgz#9d63c13276c065918d57f002a57f40a1b643fb02" 2382 | dependencies: 2383 | find-up "^1.0.0" 2384 | read-pkg "^1.0.0" 2385 | 2386 | read-pkg@^1.0.0: 2387 | version "1.1.0" 2388 | resolved "https://registry.yarnpkg.com/read-pkg/-/read-pkg-1.1.0.tgz#f5ffaa5ecd29cb31c0474bca7d756b6bb29e3f28" 2389 | dependencies: 2390 | load-json-file "^1.0.0" 2391 | normalize-package-data "^2.3.2" 2392 | path-type "^1.0.0" 2393 | 2394 | readable-stream@^2.0.0, readable-stream@^2.0.2, readable-stream@^2.0.5, readable-stream@^2.0.6, readable-stream@^2.1.4, readable-stream@^2.2.2: 2395 | version "2.2.9" 2396 | resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.2.9.tgz#cf78ec6f4a6d1eb43d26488cac97f042e74b7fc8" 2397 | dependencies: 2398 | buffer-shims "~1.0.0" 2399 | core-util-is "~1.0.0" 2400 | inherits "~2.0.1" 2401 | isarray "~1.0.0" 2402 | process-nextick-args "~1.0.6" 2403 | string_decoder "~1.0.0" 2404 | util-deprecate "~1.0.1" 2405 | 2406 | readdirp@^2.0.0: 2407 | version "2.1.0" 2408 | resolved "https://registry.yarnpkg.com/readdirp/-/readdirp-2.1.0.tgz#4ed0ad060df3073300c48440373f72d1cc642d78" 2409 | dependencies: 2410 | graceful-fs "^4.1.2" 2411 | minimatch "^3.0.2" 2412 | readable-stream "^2.0.2" 2413 | set-immediate-shim "^1.0.1" 2414 | 2415 | readline2@^1.0.1: 2416 | version "1.0.1" 2417 | resolved "https://registry.yarnpkg.com/readline2/-/readline2-1.0.1.tgz#41059608ffc154757b715d9989d199ffbf372e35" 2418 | dependencies: 2419 | code-point-at "^1.0.0" 2420 | is-fullwidth-code-point "^1.0.0" 2421 | mute-stream "0.0.5" 2422 | 2423 | redent@^1.0.0: 2424 | version "1.0.0" 2425 | resolved "https://registry.yarnpkg.com/redent/-/redent-1.0.0.tgz#cf916ab1fd5f1f16dfb20822dd6ec7f730c2afde" 2426 | dependencies: 2427 | indent-string "^2.1.0" 2428 | strip-indent "^1.0.1" 2429 | 2430 | regenerate@^1.2.1: 2431 | version "1.3.2" 2432 | resolved "https://registry.yarnpkg.com/regenerate/-/regenerate-1.3.2.tgz#d1941c67bad437e1be76433add5b385f95b19260" 2433 | 2434 | regenerator-runtime@^0.10.0: 2435 | version "0.10.5" 2436 | resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.10.5.tgz#336c3efc1220adcedda2c9fab67b5a7955a33658" 2437 | 2438 | regenerator-transform@0.9.11: 2439 | version "0.9.11" 2440 | resolved "https://registry.yarnpkg.com/regenerator-transform/-/regenerator-transform-0.9.11.tgz#3a7d067520cb7b7176769eb5ff868691befe1283" 2441 | dependencies: 2442 | babel-runtime "^6.18.0" 2443 | babel-types "^6.19.0" 2444 | private "^0.1.6" 2445 | 2446 | regex-cache@^0.4.2: 2447 | version "0.4.3" 2448 | resolved "https://registry.yarnpkg.com/regex-cache/-/regex-cache-0.4.3.tgz#9b1a6c35d4d0dfcef5711ae651e8e9d3d7114145" 2449 | dependencies: 2450 | is-equal-shallow "^0.1.3" 2451 | is-primitive "^2.0.0" 2452 | 2453 | regexpu-core@^2.0.0: 2454 | version "2.0.0" 2455 | resolved "https://registry.yarnpkg.com/regexpu-core/-/regexpu-core-2.0.0.tgz#49d038837b8dcf8bfa5b9a42139938e6ea2ae240" 2456 | dependencies: 2457 | regenerate "^1.2.1" 2458 | regjsgen "^0.2.0" 2459 | regjsparser "^0.1.4" 2460 | 2461 | registry-auth-token@^3.0.1: 2462 | version "3.3.1" 2463 | resolved "https://registry.yarnpkg.com/registry-auth-token/-/registry-auth-token-3.3.1.tgz#fb0d3289ee0d9ada2cbb52af5dfe66cb070d3006" 2464 | dependencies: 2465 | rc "^1.1.6" 2466 | safe-buffer "^5.0.1" 2467 | 2468 | registry-url@^3.0.3: 2469 | version "3.1.0" 2470 | resolved "https://registry.yarnpkg.com/registry-url/-/registry-url-3.1.0.tgz#3d4ef870f73dde1d77f0cf9a381432444e174942" 2471 | dependencies: 2472 | rc "^1.0.1" 2473 | 2474 | regjsgen@^0.2.0: 2475 | version "0.2.0" 2476 | resolved "https://registry.yarnpkg.com/regjsgen/-/regjsgen-0.2.0.tgz#6c016adeac554f75823fe37ac05b92d5a4edb1f7" 2477 | 2478 | regjsparser@^0.1.4: 2479 | version "0.1.5" 2480 | resolved "https://registry.yarnpkg.com/regjsparser/-/regjsparser-0.1.5.tgz#7ee8f84dc6fa792d3fd0ae228d24bd949ead205c" 2481 | dependencies: 2482 | jsesc "~0.5.0" 2483 | 2484 | remove-trailing-separator@^1.0.1: 2485 | version "1.0.1" 2486 | resolved "https://registry.yarnpkg.com/remove-trailing-separator/-/remove-trailing-separator-1.0.1.tgz#615ebb96af559552d4bf4057c8436d486ab63cc4" 2487 | 2488 | repeat-element@^1.1.2: 2489 | version "1.1.2" 2490 | resolved "https://registry.yarnpkg.com/repeat-element/-/repeat-element-1.1.2.tgz#ef089a178d1483baae4d93eb98b4f9e4e11d990a" 2491 | 2492 | repeat-string@^1.5.2: 2493 | version "1.6.1" 2494 | resolved "https://registry.yarnpkg.com/repeat-string/-/repeat-string-1.6.1.tgz#8dcae470e1c88abc2d600fff4a776286da75e637" 2495 | 2496 | repeating@^2.0.0: 2497 | version "2.0.1" 2498 | resolved "https://registry.yarnpkg.com/repeating/-/repeating-2.0.1.tgz#5214c53a926d3552707527fbab415dbc08d06dda" 2499 | dependencies: 2500 | is-finite "^1.0.0" 2501 | 2502 | request@^2.81.0: 2503 | version "2.81.0" 2504 | resolved "https://registry.yarnpkg.com/request/-/request-2.81.0.tgz#c6928946a0e06c5f8d6f8a9333469ffda46298a0" 2505 | dependencies: 2506 | aws-sign2 "~0.6.0" 2507 | aws4 "^1.2.1" 2508 | caseless "~0.12.0" 2509 | combined-stream "~1.0.5" 2510 | extend "~3.0.0" 2511 | forever-agent "~0.6.1" 2512 | form-data "~2.1.1" 2513 | har-validator "~4.2.1" 2514 | hawk "~3.1.3" 2515 | http-signature "~1.1.0" 2516 | is-typedarray "~1.0.0" 2517 | isstream "~0.1.2" 2518 | json-stringify-safe "~5.0.1" 2519 | mime-types "~2.1.7" 2520 | oauth-sign "~0.8.1" 2521 | performance-now "^0.2.0" 2522 | qs "~6.4.0" 2523 | safe-buffer "^5.0.1" 2524 | stringstream "~0.0.4" 2525 | tough-cookie "~2.3.0" 2526 | tunnel-agent "^0.6.0" 2527 | uuid "^3.0.0" 2528 | 2529 | require-directory@^2.1.1: 2530 | version "2.1.1" 2531 | resolved "https://registry.yarnpkg.com/require-directory/-/require-directory-2.1.1.tgz#8c64ad5fd30dab1c976e2344ffe7f792a6a6df42" 2532 | 2533 | require-main-filename@^1.0.1: 2534 | version "1.0.1" 2535 | resolved "https://registry.yarnpkg.com/require-main-filename/-/require-main-filename-1.0.1.tgz#97f717b69d48784f5f526a6c5aa8ffdda055a4d1" 2536 | 2537 | require-package-name@^2.0.1: 2538 | version "2.0.1" 2539 | resolved "https://registry.yarnpkg.com/require-package-name/-/require-package-name-2.0.1.tgz#c11e97276b65b8e2923f75dabf5fb2ef0c3841b9" 2540 | 2541 | require-uncached@^1.0.2: 2542 | version "1.0.3" 2543 | resolved "https://registry.yarnpkg.com/require-uncached/-/require-uncached-1.0.3.tgz#4e0d56d6c9662fd31e43011c4b95aa49955421d3" 2544 | dependencies: 2545 | caller-path "^0.1.0" 2546 | resolve-from "^1.0.0" 2547 | 2548 | resolve-cwd@^1.0.0: 2549 | version "1.0.0" 2550 | resolved "https://registry.yarnpkg.com/resolve-cwd/-/resolve-cwd-1.0.0.tgz#4eaeea41ed040d1702457df64a42b2b07d246f9f" 2551 | dependencies: 2552 | resolve-from "^2.0.0" 2553 | 2554 | resolve-from@^1.0.0: 2555 | version "1.0.1" 2556 | resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-1.0.1.tgz#26cbfe935d1aeeeabb29bc3fe5aeb01e93d44226" 2557 | 2558 | resolve-from@^2.0.0: 2559 | version "2.0.0" 2560 | resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-2.0.0.tgz#9480ab20e94ffa1d9e80a804c7ea147611966b57" 2561 | 2562 | restore-cursor@^1.0.1: 2563 | version "1.0.1" 2564 | resolved "https://registry.yarnpkg.com/restore-cursor/-/restore-cursor-1.0.1.tgz#34661f46886327fed2991479152252df92daa541" 2565 | dependencies: 2566 | exit-hook "^1.0.0" 2567 | onetime "^1.0.0" 2568 | 2569 | rimraf@2, rimraf@^2.2.8, rimraf@^2.5.1, rimraf@^2.6.1: 2570 | version "2.6.1" 2571 | resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-2.6.1.tgz#c2338ec643df7a1b7fe5c54fa86f57428a55f33d" 2572 | dependencies: 2573 | glob "^7.0.5" 2574 | 2575 | run-async@^0.1.0: 2576 | version "0.1.0" 2577 | resolved "https://registry.yarnpkg.com/run-async/-/run-async-0.1.0.tgz#c8ad4a5e110661e402a7d21b530e009f25f8e389" 2578 | dependencies: 2579 | once "^1.3.0" 2580 | 2581 | rx-lite@^3.1.2: 2582 | version "3.1.2" 2583 | resolved "https://registry.yarnpkg.com/rx-lite/-/rx-lite-3.1.2.tgz#19ce502ca572665f3b647b10939f97fd1615f102" 2584 | 2585 | safe-buffer@^5.0.1: 2586 | version "5.0.1" 2587 | resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.0.1.tgz#d263ca54696cd8a306b5ca6551e92de57918fbe7" 2588 | 2589 | semver-diff@^2.0.0: 2590 | version "2.1.0" 2591 | resolved "https://registry.yarnpkg.com/semver-diff/-/semver-diff-2.1.0.tgz#4bbb8437c8d37e4b0cf1a68fd726ec6d645d6d36" 2592 | dependencies: 2593 | semver "^5.0.3" 2594 | 2595 | "semver@2 || 3 || 4 || 5", semver@^5.0.1, semver@^5.0.3, semver@^5.1.0, semver@^5.3.0: 2596 | version "5.3.0" 2597 | resolved "https://registry.yarnpkg.com/semver/-/semver-5.3.0.tgz#9b2ce5d3de02d17c6012ad326aa6b4d0cf54f94f" 2598 | 2599 | set-blocking@^2.0.0, set-blocking@~2.0.0: 2600 | version "2.0.0" 2601 | resolved "https://registry.yarnpkg.com/set-blocking/-/set-blocking-2.0.0.tgz#045f9782d011ae9a6803ddd382b24392b3d890f7" 2602 | 2603 | set-immediate-shim@^1.0.1: 2604 | version "1.0.1" 2605 | resolved "https://registry.yarnpkg.com/set-immediate-shim/-/set-immediate-shim-1.0.1.tgz#4b2b1b27eb808a9f8dcc481a58e5e56f599f3f61" 2606 | 2607 | shelljs@^0.6.0: 2608 | version "0.6.1" 2609 | resolved "https://registry.yarnpkg.com/shelljs/-/shelljs-0.6.1.tgz#ec6211bed1920442088fe0f70b2837232ed2c8a8" 2610 | 2611 | signal-exit@^3.0.0: 2612 | version "3.0.2" 2613 | resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.2.tgz#b5fdc08f1287ea1178628e415e25132b73646c6d" 2614 | 2615 | slash@^1.0.0: 2616 | version "1.0.0" 2617 | resolved "https://registry.yarnpkg.com/slash/-/slash-1.0.0.tgz#c41f2f6c39fc16d1cd17ad4b5d896114ae470d55" 2618 | 2619 | slice-ansi@0.0.4: 2620 | version "0.0.4" 2621 | resolved "https://registry.yarnpkg.com/slice-ansi/-/slice-ansi-0.0.4.tgz#edbf8903f66f7ce2f8eafd6ceed65e264c831b35" 2622 | 2623 | slide@^1.1.5: 2624 | version "1.1.6" 2625 | resolved "https://registry.yarnpkg.com/slide/-/slide-1.1.6.tgz#56eb027d65b4d2dce6cb2e2d32c4d4afc9e1d707" 2626 | 2627 | sntp@1.x.x: 2628 | version "1.0.9" 2629 | resolved "https://registry.yarnpkg.com/sntp/-/sntp-1.0.9.tgz#6541184cc90aeea6c6e7b35e2659082443c66198" 2630 | dependencies: 2631 | hoek "2.x.x" 2632 | 2633 | sort-keys@^1.1.1: 2634 | version "1.1.2" 2635 | resolved "https://registry.yarnpkg.com/sort-keys/-/sort-keys-1.1.2.tgz#441b6d4d346798f1b4e49e8920adfba0e543f9ad" 2636 | dependencies: 2637 | is-plain-obj "^1.0.0" 2638 | 2639 | source-map-support@^0.4.2: 2640 | version "0.4.15" 2641 | resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.4.15.tgz#03202df65c06d2bd8c7ec2362a193056fef8d3b1" 2642 | dependencies: 2643 | source-map "^0.5.6" 2644 | 2645 | source-map@^0.5.0, source-map@^0.5.6: 2646 | version "0.5.6" 2647 | resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.5.6.tgz#75ce38f52bf0733c5a7f0c118d81334a2bb5f412" 2648 | 2649 | spdx-correct@~1.0.0: 2650 | version "1.0.2" 2651 | resolved "https://registry.yarnpkg.com/spdx-correct/-/spdx-correct-1.0.2.tgz#4b3073d933ff51f3912f03ac5519498a4150db40" 2652 | dependencies: 2653 | spdx-license-ids "^1.0.2" 2654 | 2655 | spdx-expression-parse@~1.0.0: 2656 | version "1.0.4" 2657 | resolved "https://registry.yarnpkg.com/spdx-expression-parse/-/spdx-expression-parse-1.0.4.tgz#9bdf2f20e1f40ed447fbe273266191fced51626c" 2658 | 2659 | spdx-license-ids@^1.0.2: 2660 | version "1.2.2" 2661 | resolved "https://registry.yarnpkg.com/spdx-license-ids/-/spdx-license-ids-1.2.2.tgz#c9df7a3424594ade6bd11900d596696dc06bac57" 2662 | 2663 | sprintf-js@~1.0.2: 2664 | version "1.0.3" 2665 | resolved "https://registry.yarnpkg.com/sprintf-js/-/sprintf-js-1.0.3.tgz#04e6926f662895354f3dd015203633b857297e2c" 2666 | 2667 | sshpk@^1.7.0: 2668 | version "1.13.0" 2669 | resolved "https://registry.yarnpkg.com/sshpk/-/sshpk-1.13.0.tgz#ff2a3e4fd04497555fed97b39a0fd82fafb3a33c" 2670 | dependencies: 2671 | asn1 "~0.2.3" 2672 | assert-plus "^1.0.0" 2673 | dashdash "^1.12.0" 2674 | getpass "^0.1.1" 2675 | optionalDependencies: 2676 | bcrypt-pbkdf "^1.0.0" 2677 | ecc-jsbn "~0.1.1" 2678 | jodid25519 "^1.0.0" 2679 | jsbn "~0.1.0" 2680 | tweetnacl "~0.14.0" 2681 | 2682 | stackframe@^0.3.1: 2683 | version "0.3.1" 2684 | resolved "https://registry.yarnpkg.com/stackframe/-/stackframe-0.3.1.tgz#33aa84f1177a5548c8935533cbfeb3420975f5a4" 2685 | 2686 | string-width@^1.0.1, string-width@^1.0.2: 2687 | version "1.0.2" 2688 | resolved "https://registry.yarnpkg.com/string-width/-/string-width-1.0.2.tgz#118bdf5b8cdc51a2a7e70d211e07e2b0b9b107d3" 2689 | dependencies: 2690 | code-point-at "^1.0.0" 2691 | is-fullwidth-code-point "^1.0.0" 2692 | strip-ansi "^3.0.0" 2693 | 2694 | string-width@^2.0.0: 2695 | version "2.0.0" 2696 | resolved "https://registry.yarnpkg.com/string-width/-/string-width-2.0.0.tgz#635c5436cc72a6e0c387ceca278d4e2eec52687e" 2697 | dependencies: 2698 | is-fullwidth-code-point "^2.0.0" 2699 | strip-ansi "^3.0.0" 2700 | 2701 | string.prototype.codepointat@^0.2.0: 2702 | version "0.2.0" 2703 | resolved "https://registry.yarnpkg.com/string.prototype.codepointat/-/string.prototype.codepointat-0.2.0.tgz#6b26e9bd3afcaa7be3b4269b526de1b82000ac78" 2704 | 2705 | string_decoder@~1.0.0: 2706 | version "1.0.0" 2707 | resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.0.0.tgz#f06f41157b664d86069f84bdbdc9b0d8ab281667" 2708 | dependencies: 2709 | buffer-shims "~1.0.0" 2710 | 2711 | stringstream@~0.0.4: 2712 | version "0.0.5" 2713 | resolved "https://registry.yarnpkg.com/stringstream/-/stringstream-0.0.5.tgz#4e484cd4de5a0bbbee18e46307710a8a81621878" 2714 | 2715 | strip-ansi@^3.0.0, strip-ansi@^3.0.1: 2716 | version "3.0.1" 2717 | resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-3.0.1.tgz#6a385fb8853d952d5ff05d0e8aaf94278dc63dcf" 2718 | dependencies: 2719 | ansi-regex "^2.0.0" 2720 | 2721 | strip-bom@^2.0.0: 2722 | version "2.0.0" 2723 | resolved "https://registry.yarnpkg.com/strip-bom/-/strip-bom-2.0.0.tgz#6219a85616520491f35788bdbf1447a99c7e6b0e" 2724 | dependencies: 2725 | is-utf8 "^0.2.0" 2726 | 2727 | strip-eof@^1.0.0: 2728 | version "1.0.0" 2729 | resolved "https://registry.yarnpkg.com/strip-eof/-/strip-eof-1.0.0.tgz#bb43ff5598a6eb05d89b59fcd129c983313606bf" 2730 | 2731 | strip-indent@^1.0.1: 2732 | version "1.0.1" 2733 | resolved "https://registry.yarnpkg.com/strip-indent/-/strip-indent-1.0.1.tgz#0c7962a6adefa7bbd4ac366460a638552ae1a0a2" 2734 | dependencies: 2735 | get-stdin "^4.0.1" 2736 | 2737 | strip-json-comments@~1.0.1: 2738 | version "1.0.4" 2739 | resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-1.0.4.tgz#1e15fbcac97d3ee99bf2d73b4c656b082bbafb91" 2740 | 2741 | strip-json-comments@~2.0.1: 2742 | version "2.0.1" 2743 | resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-2.0.1.tgz#3c531942e908c2697c0ec344858c286c7ca0a60a" 2744 | 2745 | supports-color@^2.0.0: 2746 | version "2.0.0" 2747 | resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-2.0.0.tgz#535d045ce6b6363fa40117084629995e9df324c7" 2748 | 2749 | symbol@^0.2.1: 2750 | version "0.2.3" 2751 | resolved "https://registry.yarnpkg.com/symbol/-/symbol-0.2.3.tgz#3b9873b8a901e47c6efe21526a3ac372ef28bbc7" 2752 | 2753 | table@^3.7.8: 2754 | version "3.8.3" 2755 | resolved "https://registry.yarnpkg.com/table/-/table-3.8.3.tgz#2bbc542f0fda9861a755d3947fefd8b3f513855f" 2756 | dependencies: 2757 | ajv "^4.7.0" 2758 | ajv-keywords "^1.0.0" 2759 | chalk "^1.1.1" 2760 | lodash "^4.0.0" 2761 | slice-ansi "0.0.4" 2762 | string-width "^2.0.0" 2763 | 2764 | tar-pack@^3.4.0: 2765 | version "3.4.0" 2766 | resolved "https://registry.yarnpkg.com/tar-pack/-/tar-pack-3.4.0.tgz#23be2d7f671a8339376cbdb0b8fe3fdebf317984" 2767 | dependencies: 2768 | debug "^2.2.0" 2769 | fstream "^1.0.10" 2770 | fstream-ignore "^1.0.5" 2771 | once "^1.3.3" 2772 | readable-stream "^2.1.4" 2773 | rimraf "^2.5.1" 2774 | tar "^2.2.1" 2775 | uid-number "^0.0.6" 2776 | 2777 | tar@^2.2.1: 2778 | version "2.2.1" 2779 | resolved "https://registry.yarnpkg.com/tar/-/tar-2.2.1.tgz#8e4d2a256c0e2185c6b18ad694aec968b83cb1d1" 2780 | dependencies: 2781 | block-stream "*" 2782 | fstream "^1.0.2" 2783 | inherits "2" 2784 | 2785 | term-size@^0.1.0: 2786 | version "0.1.1" 2787 | resolved "https://registry.yarnpkg.com/term-size/-/term-size-0.1.1.tgz#87360b96396cab5760963714cda0d0cbeecad9ca" 2788 | dependencies: 2789 | execa "^0.4.0" 2790 | 2791 | text-table@^0.2.0, text-table@~0.2.0: 2792 | version "0.2.0" 2793 | resolved "https://registry.yarnpkg.com/text-table/-/text-table-0.2.0.tgz#7f5ee823ae805207c00af2df4a84ec3fcfa570b4" 2794 | 2795 | the-argv@^1.0.0: 2796 | version "1.0.0" 2797 | resolved "https://registry.yarnpkg.com/the-argv/-/the-argv-1.0.0.tgz#0084705005730dd84db755253c931ae398db9522" 2798 | 2799 | throat@^2.0.2: 2800 | version "2.0.2" 2801 | resolved "https://registry.yarnpkg.com/throat/-/throat-2.0.2.tgz#a9fce808b69e133a632590780f342c30a6249b02" 2802 | 2803 | through@^2.3.6: 2804 | version "2.3.8" 2805 | resolved "https://registry.yarnpkg.com/through/-/through-2.3.8.tgz#0dd4c9ffaabc357960b1b724115d7e0e86a2e1f5" 2806 | 2807 | timed-out@^3.0.0: 2808 | version "3.1.3" 2809 | resolved "https://registry.yarnpkg.com/timed-out/-/timed-out-3.1.3.tgz#95860bfcc5c76c277f8f8326fd0f5b2e20eba217" 2810 | 2811 | timed-out@^4.0.0: 2812 | version "4.0.1" 2813 | resolved "https://registry.yarnpkg.com/timed-out/-/timed-out-4.0.1.tgz#f32eacac5a175bea25d7fab565ab3ed8741ef56f" 2814 | 2815 | to-fast-properties@^1.0.1: 2816 | version "1.0.3" 2817 | resolved "https://registry.yarnpkg.com/to-fast-properties/-/to-fast-properties-1.0.3.tgz#b83571fa4d8c25b82e231b06e3a3055de4ca1a47" 2818 | 2819 | tough-cookie@~2.3.0: 2820 | version "2.3.2" 2821 | resolved "https://registry.yarnpkg.com/tough-cookie/-/tough-cookie-2.3.2.tgz#f081f76e4c85720e6c37a5faced737150d84072a" 2822 | dependencies: 2823 | punycode "^1.4.1" 2824 | 2825 | trim-newlines@^1.0.0: 2826 | version "1.0.0" 2827 | resolved "https://registry.yarnpkg.com/trim-newlines/-/trim-newlines-1.0.0.tgz#5887966bb582a4503a41eb524f7d35011815a613" 2828 | 2829 | trim-right@^1.0.1: 2830 | version "1.0.1" 2831 | resolved "https://registry.yarnpkg.com/trim-right/-/trim-right-1.0.1.tgz#cb2e1203067e0c8de1f614094b9fe45704ea6003" 2832 | 2833 | tryit@^1.0.1: 2834 | version "1.0.3" 2835 | resolved "https://registry.yarnpkg.com/tryit/-/tryit-1.0.3.tgz#393be730a9446fd1ead6da59a014308f36c289cb" 2836 | 2837 | tunnel-agent@^0.6.0: 2838 | version "0.6.0" 2839 | resolved "https://registry.yarnpkg.com/tunnel-agent/-/tunnel-agent-0.6.0.tgz#27a5dea06b36b04a0a9966774b290868f0fc40fd" 2840 | dependencies: 2841 | safe-buffer "^5.0.1" 2842 | 2843 | tweetnacl@^0.14.3, tweetnacl@~0.14.0: 2844 | version "0.14.5" 2845 | resolved "https://registry.yarnpkg.com/tweetnacl/-/tweetnacl-0.14.5.tgz#5ae68177f192d4456269d108afa93ff8743f4f64" 2846 | 2847 | type-check@~0.3.2: 2848 | version "0.3.2" 2849 | resolved "https://registry.yarnpkg.com/type-check/-/type-check-0.3.2.tgz#5884cab512cf1d355e3fb784f30804b2b520db72" 2850 | dependencies: 2851 | prelude-ls "~1.1.2" 2852 | 2853 | typedarray@^0.0.6: 2854 | version "0.0.6" 2855 | resolved "https://registry.yarnpkg.com/typedarray/-/typedarray-0.0.6.tgz#867ac74e3864187b1d3d47d996a78ec5c8830777" 2856 | 2857 | uid-number@^0.0.6: 2858 | version "0.0.6" 2859 | resolved "https://registry.yarnpkg.com/uid-number/-/uid-number-0.0.6.tgz#0ea10e8035e8eb5b8e4449f06da1c730663baa81" 2860 | 2861 | unique-string@^1.0.0: 2862 | version "1.0.0" 2863 | resolved "https://registry.yarnpkg.com/unique-string/-/unique-string-1.0.0.tgz#9e1057cca851abb93398f8b33ae187b99caec11a" 2864 | dependencies: 2865 | crypto-random-string "^1.0.0" 2866 | 2867 | unzip-response@^1.0.2: 2868 | version "1.0.2" 2869 | resolved "https://registry.yarnpkg.com/unzip-response/-/unzip-response-1.0.2.tgz#b984f0877fc0a89c2c773cc1ef7b5b232b5b06fe" 2870 | 2871 | unzip-response@^2.0.1: 2872 | version "2.0.1" 2873 | resolved "https://registry.yarnpkg.com/unzip-response/-/unzip-response-2.0.1.tgz#d2f0f737d16b0615e72a6935ed04214572d56f97" 2874 | 2875 | update-notifier@^0.6.0: 2876 | version "0.6.3" 2877 | resolved "https://registry.yarnpkg.com/update-notifier/-/update-notifier-0.6.3.tgz#776dec8daa13e962a341e8a1d98354306b67ae08" 2878 | dependencies: 2879 | boxen "^0.3.1" 2880 | chalk "^1.0.0" 2881 | configstore "^2.0.0" 2882 | is-npm "^1.0.0" 2883 | latest-version "^2.0.0" 2884 | semver-diff "^2.0.0" 2885 | 2886 | update-notifier@^2.1.0: 2887 | version "2.1.0" 2888 | resolved "https://registry.yarnpkg.com/update-notifier/-/update-notifier-2.1.0.tgz#ec0c1e53536b76647a24b77cb83966d9315123d9" 2889 | dependencies: 2890 | boxen "^1.0.0" 2891 | chalk "^1.0.0" 2892 | configstore "^3.0.0" 2893 | is-npm "^1.0.0" 2894 | latest-version "^3.0.0" 2895 | lazy-req "^2.0.0" 2896 | semver-diff "^2.0.0" 2897 | xdg-basedir "^3.0.0" 2898 | 2899 | url-parse-lax@^1.0.0: 2900 | version "1.0.0" 2901 | resolved "https://registry.yarnpkg.com/url-parse-lax/-/url-parse-lax-1.0.0.tgz#7af8f303645e9bd79a272e7a14ac68bc0609da73" 2902 | dependencies: 2903 | prepend-http "^1.0.1" 2904 | 2905 | user-home@^1.1.1: 2906 | version "1.1.1" 2907 | resolved "https://registry.yarnpkg.com/user-home/-/user-home-1.1.1.tgz#2b5be23a32b63a7c9deb8d0f28d485724a3df190" 2908 | 2909 | user-home@^2.0.0: 2910 | version "2.0.0" 2911 | resolved "https://registry.yarnpkg.com/user-home/-/user-home-2.0.0.tgz#9c70bfd8169bc1dcbf48604e0f04b8b49cde9e9f" 2912 | dependencies: 2913 | os-homedir "^1.0.0" 2914 | 2915 | util-deprecate@~1.0.1: 2916 | version "1.0.2" 2917 | resolved "https://registry.yarnpkg.com/util-deprecate/-/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf" 2918 | 2919 | uuid@^2.0.1: 2920 | version "2.0.3" 2921 | resolved "https://registry.yarnpkg.com/uuid/-/uuid-2.0.3.tgz#67e2e863797215530dff318e5bf9dcebfd47b21a" 2922 | 2923 | uuid@^3.0.0: 2924 | version "3.0.1" 2925 | resolved "https://registry.yarnpkg.com/uuid/-/uuid-3.0.1.tgz#6544bba2dfda8c1cf17e629a3a305e2bb1fee6c1" 2926 | 2927 | v8flags@^2.0.10: 2928 | version "2.1.1" 2929 | resolved "https://registry.yarnpkg.com/v8flags/-/v8flags-2.1.1.tgz#aab1a1fa30d45f88dd321148875ac02c0b55e5b4" 2930 | dependencies: 2931 | user-home "^1.1.1" 2932 | 2933 | validate-npm-package-license@^3.0.1: 2934 | version "3.0.1" 2935 | resolved "https://registry.yarnpkg.com/validate-npm-package-license/-/validate-npm-package-license-3.0.1.tgz#2804babe712ad3379459acfbe24746ab2c303fbc" 2936 | dependencies: 2937 | spdx-correct "~1.0.0" 2938 | spdx-expression-parse "~1.0.0" 2939 | 2940 | verror@1.3.6: 2941 | version "1.3.6" 2942 | resolved "https://registry.yarnpkg.com/verror/-/verror-1.3.6.tgz#cff5df12946d297d2baaefaa2689e25be01c005c" 2943 | dependencies: 2944 | extsprintf "1.0.2" 2945 | 2946 | walkdir@0.0.11: 2947 | version "0.0.11" 2948 | resolved "https://registry.yarnpkg.com/walkdir/-/walkdir-0.0.11.tgz#a16d025eb931bd03b52f308caed0f40fcebe9532" 2949 | 2950 | which-module@^1.0.0: 2951 | version "1.0.0" 2952 | resolved "https://registry.yarnpkg.com/which-module/-/which-module-1.0.0.tgz#bba63ca861948994ff307736089e3b96026c2a4f" 2953 | 2954 | which@^1.2.12, which@^1.2.8: 2955 | version "1.2.14" 2956 | resolved "https://registry.yarnpkg.com/which/-/which-1.2.14.tgz#9a87c4378f03e827cecaf1acdf56c736c01c14e5" 2957 | dependencies: 2958 | isexe "^2.0.0" 2959 | 2960 | wide-align@^1.1.0: 2961 | version "1.1.2" 2962 | resolved "https://registry.yarnpkg.com/wide-align/-/wide-align-1.1.2.tgz#571e0f1b0604636ebc0dfc21b0339bbe31341710" 2963 | dependencies: 2964 | string-width "^1.0.2" 2965 | 2966 | widest-line@^1.0.0: 2967 | version "1.0.0" 2968 | resolved "https://registry.yarnpkg.com/widest-line/-/widest-line-1.0.0.tgz#0c09c85c2a94683d0d7eaf8ee097d564bf0e105c" 2969 | dependencies: 2970 | string-width "^1.0.1" 2971 | 2972 | wordwrap@~1.0.0: 2973 | version "1.0.0" 2974 | resolved "https://registry.yarnpkg.com/wordwrap/-/wordwrap-1.0.0.tgz#27584810891456a4171c8d0226441ade90cbcaeb" 2975 | 2976 | wrap-ansi@^2.0.0: 2977 | version "2.1.0" 2978 | resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-2.1.0.tgz#d8fc3d284dd05794fe84973caecdd1cf824fdd85" 2979 | dependencies: 2980 | string-width "^1.0.1" 2981 | strip-ansi "^3.0.1" 2982 | 2983 | wrappy@1: 2984 | version "1.0.2" 2985 | resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f" 2986 | 2987 | write-file-atomic@^1.1.2: 2988 | version "1.3.4" 2989 | resolved "https://registry.yarnpkg.com/write-file-atomic/-/write-file-atomic-1.3.4.tgz#f807a4f0b1d9e913ae7a48112e6cc3af1991b45f" 2990 | dependencies: 2991 | graceful-fs "^4.1.11" 2992 | imurmurhash "^0.1.4" 2993 | slide "^1.1.5" 2994 | 2995 | write-file-atomic@^2.0.0: 2996 | version "2.0.0" 2997 | resolved "https://registry.yarnpkg.com/write-file-atomic/-/write-file-atomic-2.0.0.tgz#bb99a5440d0d31dd860a68da392bffeef66251a1" 2998 | dependencies: 2999 | graceful-fs "^4.1.11" 3000 | imurmurhash "^0.1.4" 3001 | slide "^1.1.5" 3002 | 3003 | write-json-file@^1.1.0: 3004 | version "1.2.0" 3005 | resolved "https://registry.yarnpkg.com/write-json-file/-/write-json-file-1.2.0.tgz#2d5dfe96abc3c889057c93971aa4005efb548134" 3006 | dependencies: 3007 | graceful-fs "^4.1.2" 3008 | mkdirp "^0.5.1" 3009 | object-assign "^4.0.1" 3010 | pify "^2.0.0" 3011 | pinkie-promise "^2.0.0" 3012 | sort-keys "^1.1.1" 3013 | write-file-atomic "^1.1.2" 3014 | 3015 | write-pkg@^1.0.0: 3016 | version "1.0.0" 3017 | resolved "https://registry.yarnpkg.com/write-pkg/-/write-pkg-1.0.0.tgz#aeb8aa9d4d788e1d893dfb0854968b543a919f57" 3018 | dependencies: 3019 | write-json-file "^1.1.0" 3020 | 3021 | write@^0.2.1: 3022 | version "0.2.1" 3023 | resolved "https://registry.yarnpkg.com/write/-/write-0.2.1.tgz#5fc03828e264cea3fe91455476f7a3c566cb0757" 3024 | dependencies: 3025 | mkdirp "^0.5.1" 3026 | 3027 | xdg-basedir@^2.0.0: 3028 | version "2.0.0" 3029 | resolved "https://registry.yarnpkg.com/xdg-basedir/-/xdg-basedir-2.0.0.tgz#edbc903cc385fc04523d966a335504b5504d1bd2" 3030 | dependencies: 3031 | os-homedir "^1.0.0" 3032 | 3033 | xdg-basedir@^3.0.0: 3034 | version "3.0.0" 3035 | resolved "https://registry.yarnpkg.com/xdg-basedir/-/xdg-basedir-3.0.0.tgz#496b2cc109eca8dbacfe2dc72b603c17c5870ad4" 3036 | 3037 | xo-init@^0.3.0: 3038 | version "0.3.6" 3039 | resolved "https://registry.yarnpkg.com/xo-init/-/xo-init-0.3.6.tgz#f40c8f3304bd9d8b1381930987b178c9f141fc11" 3040 | dependencies: 3041 | arrify "^1.0.0" 3042 | minimist "^1.1.3" 3043 | path-exists "^2.0.0" 3044 | pify "^2.0.0" 3045 | pinkie-promise "^2.0.0" 3046 | read-pkg-up "^1.0.1" 3047 | the-argv "^1.0.0" 3048 | write-pkg "^1.0.0" 3049 | 3050 | xo@^0.13.0: 3051 | version "0.13.0" 3052 | resolved "https://registry.yarnpkg.com/xo/-/xo-0.13.0.tgz#5b5a791ec8a5746c4bffc44b1c8082ae50948c83" 3053 | dependencies: 3054 | arrify "^1.0.0" 3055 | babel-eslint "^6.0.0-beta.1" 3056 | debug "^2.2.0" 3057 | deep-assign "^1.0.0" 3058 | eslint "^2.3.0" 3059 | eslint-config-xo "^0.12.0" 3060 | eslint-plugin-babel "^3.1.0" 3061 | eslint-plugin-no-empty-blocks "0.0.2" 3062 | eslint-plugin-no-use-extend-native "^0.3.2" 3063 | estraverse-fb "^1.3.1" 3064 | get-stdin "^5.0.0" 3065 | globby "^4.0.0" 3066 | has-flag "^1.0.0" 3067 | home-or-tmp "^2.0.0" 3068 | meow "^3.4.2" 3069 | multimatch "^2.1.0" 3070 | object-assign "^4.0.1" 3071 | path-exists "^2.1.0" 3072 | pkg-conf "^1.0.1" 3073 | resolve-cwd "^1.0.0" 3074 | resolve-from "^2.0.0" 3075 | update-notifier "^0.6.0" 3076 | xo-init "^0.3.0" 3077 | 3078 | xtend@^4.0.0: 3079 | version "4.0.1" 3080 | resolved "https://registry.yarnpkg.com/xtend/-/xtend-4.0.1.tgz#a5c6d532be656e23db820efb943a1f04998d63af" 3081 | 3082 | y18n@^3.2.1: 3083 | version "3.2.1" 3084 | resolved "https://registry.yarnpkg.com/y18n/-/y18n-3.2.1.tgz#6d15fba884c08679c0d77e88e7759e811e07fa41" 3085 | 3086 | yallist@^2.0.0: 3087 | version "2.1.2" 3088 | resolved "https://registry.yarnpkg.com/yallist/-/yallist-2.1.2.tgz#1c11f9218f076089a47dd512f93c6699a6a81d52" 3089 | 3090 | yargs-parser@^4.2.0: 3091 | version "4.2.1" 3092 | resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-4.2.1.tgz#29cceac0dc4f03c6c87b4a9f217dd18c9f74871c" 3093 | dependencies: 3094 | camelcase "^3.0.0" 3095 | 3096 | yargs@^6.0.0: 3097 | version "6.6.0" 3098 | resolved "https://registry.yarnpkg.com/yargs/-/yargs-6.6.0.tgz#782ec21ef403345f830a808ca3d513af56065208" 3099 | dependencies: 3100 | camelcase "^3.0.0" 3101 | cliui "^3.2.0" 3102 | decamelize "^1.1.1" 3103 | get-caller-file "^1.0.1" 3104 | os-locale "^1.4.0" 3105 | read-pkg-up "^1.0.1" 3106 | require-directory "^2.1.1" 3107 | require-main-filename "^1.0.1" 3108 | set-blocking "^2.0.0" 3109 | string-width "^1.0.2" 3110 | which-module "^1.0.0" 3111 | y18n "^3.2.1" 3112 | yargs-parser "^4.2.0" 3113 | --------------------------------------------------------------------------------