From 027158f3b4865f570edad76517d2891c38c392eb Mon Sep 17 00:00:00 2001 From: Ryan Macdonald Date: Wed, 12 Oct 2016 13:10:51 -0400 Subject: [PATCH] Refactor themekit abstraction (#77) * refactor for node-themekit * testing themekit module * remove slate setup and update deps * update to scoped themekit * fix eslint version * remove unused deps and unnecessary promises --- packages/slate-cli/.eslintrc.yml | 2 + packages/slate-cli/README.md | 22 +- packages/slate-cli/bin/slate.js | 7 +- packages/slate-cli/circle.yml | 1 - packages/slate-cli/commands/remove.js | 26 +- packages/slate-cli/commands/replace.js | 26 +- packages/slate-cli/commands/setup.js | 37 -- packages/slate-cli/commands/upload.js | 26 +- packages/slate-cli/commands/version.js | 18 +- packages/slate-cli/includes/messages.js | 28 - packages/slate-cli/includes/themekit.js | 255 -------- packages/slate-cli/index.js | 1 - packages/slate-cli/npm-shrinkwrap.json | 749 ++++++++++++++---------- packages/slate-cli/package.json | 17 +- 14 files changed, 530 insertions(+), 685 deletions(-) delete mode 100644 packages/slate-cli/commands/setup.js delete mode 100644 packages/slate-cli/includes/themekit.js diff --git a/packages/slate-cli/.eslintrc.yml b/packages/slate-cli/.eslintrc.yml index 22084c004..112e91b54 100644 --- a/packages/slate-cli/.eslintrc.yml +++ b/packages/slate-cli/.eslintrc.yml @@ -10,3 +10,5 @@ rules: spaced-comment: 0 no-process-env: 0 indent: ["error", 2, {"SwitchCase": 1}] +globals: + Promise: 1 diff --git a/packages/slate-cli/README.md b/packages/slate-cli/README.md index 85691957f..5e9b1a0e4 100644 --- a/packages/slate-cli/README.md +++ b/packages/slate-cli/README.md @@ -23,8 +23,6 @@ Clone the latest version of Slate CLI to your local machine using SSH git clone git@github.com:Shopify/slate-cli.git ``` - - #### 2. Run npm link ```shell cd slate-cli @@ -38,14 +36,6 @@ a symbolic link to your global npm directory. You should now be able to run slate from your terminal. Try running `slate -v` to verify that everything worked (if this didn't work, see [Troubleshooting](#troubleshooting) for guidance). -#### 3. Run slate setup - -```shell -slate setup -``` - -This command installs [ThemeKit](http://themekit.cat) and other non-node dependencies. More details [here](#setup). - ## Getting started #### 1. Create a new project @@ -101,8 +91,7 @@ You're ready to start developing with Slate. To get started, run the following 1. Pull the latest version from GitHub - Make sure that your current branch is master and that your master branch is up-to-date. 2. Run `npm update` - This will update all project dependencies and developer tools listed in the [package.json](package.json) file. -3. Run `slate setup` - This installs project-specific dependencies and developer tools. More details [here](#setup). -4. Run `npm prune` and `npm install` (optional) - After major changes, it may be necessary to clean out your `node_modules` and +3. Run `npm prune` and `npm install` (optional) - After major changes, it may be necessary to clean out your `node_modules` and make sure that new modules have been correctly installed. This will remove any unused dependencies from `node_modules` and install all new dependencies. @@ -111,19 +100,11 @@ make sure that new modules have been correctly installed. Command | Usage --- | --- -[setup](#setup) | `slate setup` [new theme](#new-theme) | `slate new theme [name]` [new section](#new-section) | `slate new section [name]` [help](#help) | `slate -h` [version](#version) | `slate -v` -### setup -``` -slate setup -``` - -Installs [Theme Kit](http://themekit.cat/), a cross-platform tool which provides utilities that allow you to interact with Shopify themes. - ### new theme ``` slate new theme [name] @@ -239,7 +220,6 @@ If you encounter any issues, here are some preliminary steps to take: - `git pull` latest version of Slate CLI. - `npm install` to make sure you have all the dependencies. -- `slate setup` to make sure all Slate CLI dependencies are installed. - `npm link` to make sure that the symlink exists and Slate CLI is globally installed. ## License diff --git a/packages/slate-cli/bin/slate.js b/packages/slate-cli/bin/slate.js index 14549f630..e40c14bf4 100755 --- a/packages/slate-cli/bin/slate.js +++ b/packages/slate-cli/bin/slate.js @@ -5,11 +5,11 @@ var parseOptions = require('nopt'); var slate = require('../index.js'); var msg = require('../includes/messages.js'); -/* eslint-disable quote-props ,id-length */ +/* eslint-disable quote-props, id-length */ var validOpts = { 'environment': String, 'help': Boolean, - 'manual': Boolean, // flag for manual deploy (used with deploy command) + 'manual': Boolean, 'nosync': Boolean, 'version': Boolean }; @@ -24,6 +24,7 @@ var shorthand = { // filtered list of valid options that were passed w/ the command var opts = parseOptions(validOpts, shorthand); + if (opts.argv.remain[0]) { var command = opts.argv.remain[0]; // the first arg in the `remain` array is the command var args = opts.argv.remain.slice(1); // the remaining args to be passed with the command @@ -38,8 +39,6 @@ if (opts.argv.remain[0]) { process.stdout.write(msg.unknownCommand()); slate.help.command(); } - - // No args were passed... } else { if (opts.version) { slate.version.command(); diff --git a/packages/slate-cli/circle.yml b/packages/slate-cli/circle.yml index 6a8be4b75..3228decb2 100644 --- a/packages/slate-cli/circle.yml +++ b/packages/slate-cli/circle.yml @@ -9,4 +9,3 @@ dependencies: test: override: - npm run lint - - slate setup diff --git a/packages/slate-cli/commands/remove.js b/packages/slate-cli/commands/remove.js index 4e2608a4d..c43a8e6fa 100644 --- a/packages/slate-cli/commands/remove.js +++ b/packages/slate-cli/commands/remove.js @@ -1,5 +1,5 @@ var msg = require('../includes/messages.js'); -var themekit = require('../includes/themekit.js'); +var command = require('@shopify/themekit').command; module.exports = { command: function(args, options) { @@ -7,9 +7,29 @@ module.exports = { return process.stdout.write(msg.noFiles()); } else { if (options.environment) { - return themekit.commands(['remove', '-env', options.environment].concat(args)); + return new Promise(function(resolve, reject) { + command({ + args: ['remove', '-env', options.environment].concat(args) + }, function(err) { + if (err) { + reject(err); + } else { + resolve(); + } + }); + }); } else { - return themekit.commands(['remove'].concat(args)); + return new Promise(function(resolve, reject) { + command({ + args: ['remove'].concat(args) + }, function(err) { + if (err) { + reject(err); + } else { + resolve(); + } + }); + }); } } } diff --git a/packages/slate-cli/commands/replace.js b/packages/slate-cli/commands/replace.js index e17cfc5ca..a5e65288b 100644 --- a/packages/slate-cli/commands/replace.js +++ b/packages/slate-cli/commands/replace.js @@ -1,11 +1,31 @@ -var themekit = require('../includes/themekit.js'); +var command = require('@shopify/themekit').command; module.exports = { command: function(args, options) { if (options.environment) { - return themekit.commands(['replace', '-env', options.environment].concat(args)); + return new Promise(function(resolve, reject) { + command({ + args: ['replace', '-env', options.environment].concat(args) + }, function(err) { + if (err) { + reject(err); + } else { + resolve(); + } + }); + }); } else { - return themekit.commands(['replace'].concat(args)); + return new Promise(function(resolve, reject) { + command({ + args: ['replace'].concat(args) + }, function(err) { + if (err) { + reject(err); + } else { + resolve(); + } + }); + }); } } }; diff --git a/packages/slate-cli/commands/setup.js b/packages/slate-cli/commands/setup.js deleted file mode 100644 index b76b7322e..000000000 --- a/packages/slate-cli/commands/setup.js +++ /dev/null @@ -1,37 +0,0 @@ -var msg = require('../includes/messages.js'); -var utils = require('../includes/utils.js'); -var themekit = require('../includes/themekit.js'); - -module.exports = { - command: function() { - setupThemeKit() - .then(function() { - process.stdout.write(msg.installerSuccess('slate-cli')); - }); - }, - help: function() { - utils.logHelpMsg([ - 'Usage: setup', - '', - 'Install framework dependencies.' - ]); - } -}; - -/** - * Uses ThemeKit include to install ThemeKit and write the - * status of the install. - * - * @returns {Promise} - The ThemeKit install - * @private - */ -function setupThemeKit() { - return themekit.install() - .then(function(binPath) { - process.stdout.write(msg.installerPath('ThemeKit', binPath)); - }) - .catch(function(error) { - process.stderr.write(msg.installerFailed('ThemeKit', error)); - process.exit(5); // eslint-disable-line no-process-exit - }); -} diff --git a/packages/slate-cli/commands/upload.js b/packages/slate-cli/commands/upload.js index bd58a90c5..40a348478 100644 --- a/packages/slate-cli/commands/upload.js +++ b/packages/slate-cli/commands/upload.js @@ -1,5 +1,5 @@ var msg = require('../includes/messages.js'); -var themekit = require('../includes/themekit.js'); +var command = require('@shopify/themekit').command; module.exports = { command: function(args, options) { @@ -7,9 +7,29 @@ module.exports = { return process.stdout.write(msg.noFiles()); } else { if (options.environment) { - return themekit.commands(['upload', '-env', options.environment].concat(args)); + return new Promise(function(resolve, reject) { + command({ + args: ['upload', '-env', options.environment].concat(args) + }, function(err) { + if (err) { + reject(err); + } else { + resolve(); + } + }); + }); } else { - return themekit.commands(['upload'].concat(args)); + return new Promise(function(resolve, reject) { + command({ + args: ['upload'].concat(args) + }, function(err) { + if (err) { + reject(err); + } else { + resolve(); + } + }); + }); } } } diff --git a/packages/slate-cli/commands/version.js b/packages/slate-cli/commands/version.js index 2e7ba000c..c6d5e15bc 100644 --- a/packages/slate-cli/commands/version.js +++ b/packages/slate-cli/commands/version.js @@ -1,13 +1,23 @@ var msg = require('../includes/messages.js'); var utils = require('../includes/utils.js'); -var themekit = require('../includes/themekit.js'); +var command = require('@shopify/themekit').command; module.exports = { command: function() { - return themekit.commands(['version']) - .then(function() { - process.stdout.write(msg.versionInfo()); + return new Promise(function(resolve, reject) { + command({ + args: ['version'] + }, function(err) { + if (err) { + reject(err); + } else { + resolve(); + } }); + }) + .then(function() { + process.stdout.write(msg.versionInfo()); + }); }, help: function() { utils.logHelpMsg([ diff --git a/packages/slate-cli/includes/messages.js b/packages/slate-cli/includes/messages.js index d35add304..7994219d4 100644 --- a/packages/slate-cli/includes/messages.js +++ b/packages/slate-cli/includes/messages.js @@ -13,14 +13,6 @@ module.exports = { return 'Unknown command, please refer to help. \n'; }, - fetchingDependencies: function() { - return 'Fetching dependencies...\n'; - }, - - missingDependencies: function() { - return 'Dependencies missing. Please run slate setup\n'; - }, - noGenerator: function() { return 'No generator specified, please use one of the following commands:\n' + this.generatorsList(); }, @@ -39,25 +31,5 @@ module.exports = { scaffoldsList: function() { return ' slate\n'; - }, - - unknownInstaller: function() { - return 'Unknown installer, please use one of the following commands:\n' + this.installersList(); - }, - - installersList: function() { - return ' slate setup themekit\n'; - }, - - installerPath: function(name, path) { - return name + ': ' + path + '\n'; - }, - - installerFailed: function(name, error) { - return name + ' failed to install\n ' + error + '\n'; - }, - - installerSuccess: function(name) { - return name + ' successfully installed\n'; } }; diff --git a/packages/slate-cli/includes/themekit.js b/packages/slate-cli/includes/themekit.js deleted file mode 100644 index 021db9614..000000000 --- a/packages/slate-cli/includes/themekit.js +++ /dev/null @@ -1,255 +0,0 @@ -var Promise = require('bluebird'); -var stat = Promise.promisify(require('fs').stat); -var unlink = Promise.promisify(require('fs').unlink); -var path = require('path'); -var _ = require('lodash'); -var FeedParser = require('feedparser'); -var request = require('request'); -var msg = require('./messages.js'); -var BinWrapper = require('bin-wrapper'); -var spawn = require('child_process').spawn; -var slateRoot = path.resolve(__dirname, '..'); -var themeKitBin = {}; -var themeKitPath = ''; -var themeKitRepo = 'https://github.com/Shopify/themekit'; - -/** - * @module ThemeKit - * - */ -var themeKit = { - - /** - * Uses BinWrapper instance and executes version command - * to test the ThemeKit binary. - * - * @returns {Promise:String} - The ThemeKit installation - */ - install: function() { - return test() - .then(function(exists) { - if (!exists) { - return Promise.resolve(); - } - - return getPath() - .then(function(binPath) { - return unlink(binPath); - }); - }) - .then(function() { - return get(); - }) - .then(function(bin) { - return new Promise(function(resolve, reject) { - process.stdout.write(msg.fetchingDependencies()); - - bin.run(['version'], function(err) { - if (err) { - reject(err); - } else { - resolve(getPath()); - } - }); - }); - }); - }, - - /** - * Uses child_process to spawn a new thread and - * executes the command with the local ThemeKit - * binary. - * - * @param args {Object} - The command and additional args to execute. - * @returns {Promise} - The child_process stream - */ - commands: function(args) { - var error = ''; - - return test() - .then(function(exists) { - if (exists) { - return getPath(); - } else { - throw new Error(msg.missingDependencies()); - } - }) - .then(function(binPath) { - var childProcess = spawn(binPath, args); - - return new Promise(function(resolve, reject) { - childProcess.stdout.setEncoding('utf8'); - childProcess.stdout.on('data', function(data) { - process.stdout.write(data); - }); - - childProcess.stderr.on('data', function(data) { - process.stdout.write(data); - error += data; - }); - - childProcess.on('error', function(err) { - process.stdout.write(err); - reject(err); - }); - - childProcess.on('close', function() { - if (error) { - reject(new Error(error)); - } else { - resolve(); - } - }); - }); - }); - } -}; - -module.exports = themeKit; - -/** - * Initializes BinWrapper to have a single instance. - * - * @returns {Object} - BinWrapper instance for themeKitBin - * - * @private - */ -function init() { - if (_.isEmpty(themeKitBin)) { - themeKitBin = new BinWrapper(); - } - - return themeKitBin; -} - -/** - * Uses BinWrapper to fetch the ThemeKit binary based on - * system and architecture. The binary gets stored in - * slate-cli bin. - * - * @returns {Promise:Object} - BinWrapper instance for ThemeKit - * - * @private - */ -function get() { - var bin = init(); - - return getLatestRelease() - .then(function(latestRelease) { - return bin - .src(latestRelease + '/darwin-amd64.zip', 'darwin') - .src(latestRelease + '/linux-386.zip', 'linux') - .src(latestRelease + '/linux-amd64.zip', 'linux', 'x64') - .src(latestRelease + '/windows-386.zip', 'win32') - .src(latestRelease + '/windows-amd64.zip', 'win32', 'x64') - .dest(path.join(slateRoot, '/bin')) - .use(process.platform === 'win32' ? 'theme.exe' : 'theme'); - }); -} - -/** - * Resolves the path to local ThemeKit binary. - * - * @returns {Promise:String} - The path to ThemeKit - * - * @private - */ -function getPath() { - if (themeKitPath) { - return Promise.resolve(themeKitPath); - } - - return get() - .then(function(bin) { - themeKitPath = bin.path(); - return themeKitPath; - }); -} - -/** - * Fetches releases based on Atom GitHub feed. - * - * @returns {Promise:Array} - All releases available for URL - * - * @private - */ -function getReleases(feedUrl) { - var req = request(feedUrl); - var feedparser = new FeedParser(); - var items = []; - - return new Promise(function(resolve, reject) { - req.on('error', function(err) { - reject(err); - }); - - req.on('response', function(res) { - if (res.statusCode !== 200) { - reject(new Error('Bad status code')); - } - - this.pipe(feedparser); - }); - - feedparser.on('error', function(err) { - reject(err); - }); - - feedparser.on('readable', function() { - var item; - - while (item = this.read()) { //eslint-disable-line no-cond-assign - items.push(item); - } - }); - - feedparser.on('end', function() { - resolve(items); - }); - }); -} - -/** - * Fetches releases based on Atom GitHub feed. Gets the - * latest release of ThemeKit based on the feed. - * - * @returns {Promise:String} - Download URL for latest ThemeKit release - * - * @private - */ -function getLatestRelease() { - return getReleases(themeKitRepo + '/releases.atom') - .then(function(releases) { - var base = themeKitRepo + '/releases/download/'; - var latestTag = releases.length > 0 ? releases[0].title : '0.4.2'; - var latestRelease = base + latestTag; - - return latestRelease; - }); -} - -/** - * Tests if ThemeKit binary exists. - * - * @returns {Promise:Boolean} - If ThemeKit exists - * - * @private - */ -function test() { - var exists = true; - - return getPath() - .then(function(binPath) { - return stat(binPath); - }) - .catch(function(err) { - if (err.code === 'ENOENT') { - exists = false; - } else { - throw new Error(err); - } - }) - .then(function() { - return exists; - }); -} diff --git a/packages/slate-cli/index.js b/packages/slate-cli/index.js index 97f9e0639..6fb8901f5 100644 --- a/packages/slate-cli/index.js +++ b/packages/slate-cli/index.js @@ -3,7 +3,6 @@ module.exports = { // global/install tasks help: require('./commands/help'), version: require('./commands/version'), - setup: require('./commands/setup'), upload: require('./commands/upload'), remove: require('./commands/remove'), replace: require('./commands/replace'), diff --git a/packages/slate-cli/npm-shrinkwrap.json b/packages/slate-cli/npm-shrinkwrap.json index ed0988823..74fd8ab83 100644 --- a/packages/slate-cli/npm-shrinkwrap.json +++ b/packages/slate-cli/npm-shrinkwrap.json @@ -2,25 +2,49 @@ "name": "slate-cli", "version": "0.8.0", "dependencies": { + "@shopify/themekit": { + "version": "0.4.3", + "from": "@shopify/themekit@latest", + "resolved": "https://registry.npmjs.org/@shopify/themekit/-/themekit-0.4.3.tgz" + }, "abbrev": { "version": "1.0.9", "from": "abbrev@>=1.0.0 <2.0.0", "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.0.9.tgz" }, "acorn": { - "version": "3.3.0", - "from": "acorn@>=3.3.0 <4.0.0", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-3.3.0.tgz" + "version": "4.0.3", + "from": "acorn@>=4.0.1 <5.0.0", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-4.0.3.tgz" }, "acorn-jsx": { "version": "3.0.1", "from": "acorn-jsx@>=3.0.0 <4.0.0", - "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-3.0.1.tgz" + "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-3.0.1.tgz", + "dependencies": { + "acorn": { + "version": "3.3.0", + "from": "acorn@>=3.0.4 <4.0.0", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-3.3.0.tgz" + } + } }, - "addressparser": { - "version": "0.1.3", - "from": "addressparser@>=0.1.3 <0.2.0", - "resolved": "https://registry.npmjs.org/addressparser/-/addressparser-0.1.3.tgz" + "ajv": { + "version": "4.7.7", + "from": "ajv@>=4.7.0 <5.0.0", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-4.7.7.tgz", + "dependencies": { + "co": { + "version": "4.6.0", + "from": "co@>=4.6.0 <5.0.0", + "resolved": "https://registry.npmjs.org/co/-/co-4.6.0.tgz" + } + } + }, + "ajv-keywords": { + "version": "1.1.1", + "from": "ajv-keywords@>=1.0.0 <2.0.0", + "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-1.1.1.tgz" }, "amdefine": { "version": "1.0.0", @@ -29,7 +53,7 @@ }, "ansi": { "version": "0.3.1", - "from": "ansi@>=0.3.1 <0.4.0", + "from": "ansi@>=0.3.0 <0.4.0", "resolved": "https://registry.npmjs.org/ansi/-/ansi-0.3.1.tgz" }, "ansi-escapes": { @@ -58,9 +82,9 @@ "resolved": "https://registry.npmjs.org/are-we-there-yet/-/are-we-there-yet-1.1.2.tgz" }, "argparse": { - "version": "1.0.7", + "version": "1.0.9", "from": "argparse@>=1.0.7 <2.0.0", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.7.tgz" + "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.9.tgz" }, "arr-diff": { "version": "2.0.0", @@ -78,14 +102,9 @@ "resolved": "https://registry.npmjs.org/array-differ/-/array-differ-1.0.0.tgz" }, "array-find-index": { - "version": "1.0.1", + "version": "1.0.2", "from": "array-find-index@>=1.0.1 <2.0.0", - "resolved": "https://registry.npmjs.org/array-find-index/-/array-find-index-1.0.1.tgz" - }, - "array-indexofobject": { - "version": "0.0.1", - "from": "array-indexofobject@>=0.0.1 <0.1.0", - "resolved": "https://registry.npmjs.org/array-indexofobject/-/array-indexofobject-0.0.1.tgz" + "resolved": "https://registry.npmjs.org/array-find-index/-/array-find-index-1.0.2.tgz" }, "array-union": { "version": "1.0.2", @@ -123,9 +142,14 @@ "resolved": "https://registry.npmjs.org/ast-query/-/ast-query-1.2.0.tgz" }, "async": { - "version": "1.5.2", - "from": "async@>=1.4.2 <2.0.0", - "resolved": "https://registry.npmjs.org/async/-/async-1.5.2.tgz" + "version": "2.0.1", + "from": "async@>=2.0.0 <3.0.0", + "resolved": "https://registry.npmjs.org/async/-/async-2.0.1.tgz" + }, + "asynckit": { + "version": "0.4.0", + "from": "asynckit@>=0.4.0 <0.5.0", + "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz" }, "aws-sign2": { "version": "0.6.0", @@ -138,13 +162,13 @@ "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.4.1.tgz" }, "babel-code-frame": { - "version": "6.11.0", - "from": "babel-code-frame@>=6.8.0 <7.0.0", - "resolved": "https://registry.npmjs.org/babel-code-frame/-/babel-code-frame-6.11.0.tgz" + "version": "6.16.0", + "from": "babel-code-frame@>=6.16.0 <7.0.0", + "resolved": "https://registry.npmjs.org/babel-code-frame/-/babel-code-frame-6.16.0.tgz" }, "babel-eslint": { "version": "6.1.2", - "from": "babel-eslint@>=6.0.0 <7.0.0", + "from": "babel-eslint@>=6.1.0 <6.2.0", "resolved": "https://registry.npmjs.org/babel-eslint/-/babel-eslint-6.1.2.tgz" }, "babel-messages": { @@ -158,9 +182,9 @@ "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.11.6.tgz" }, "babel-traverse": { - "version": "6.13.0", + "version": "6.16.0", "from": "babel-traverse@>=6.0.20 <7.0.0", - "resolved": "https://registry.npmjs.org/babel-traverse/-/babel-traverse-6.13.0.tgz", + "resolved": "https://registry.npmjs.org/babel-traverse/-/babel-traverse-6.16.0.tgz", "dependencies": { "globals": { "version": "8.18.0", @@ -170,20 +194,25 @@ } }, "babel-types": { - "version": "6.13.0", + "version": "6.16.0", "from": "babel-types@>=6.0.19 <7.0.0", - "resolved": "https://registry.npmjs.org/babel-types/-/babel-types-6.13.0.tgz" + "resolved": "https://registry.npmjs.org/babel-types/-/babel-types-6.16.0.tgz" }, "babylon": { - "version": "6.9.0", + "version": "6.11.4", "from": "babylon@>=6.0.18 <7.0.0", - "resolved": "https://registry.npmjs.org/babylon/-/babylon-6.9.0.tgz" + "resolved": "https://registry.npmjs.org/babylon/-/babylon-6.11.4.tgz" }, "balanced-match": { "version": "0.4.2", "from": "balanced-match@>=0.4.1 <0.5.0", "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-0.4.2.tgz" }, + "bcrypt-pbkdf": { + "version": "1.0.0", + "from": "bcrypt-pbkdf@>=1.0.0 <2.0.0", + "resolved": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.0.tgz" + }, "beeper": { "version": "1.1.0", "from": "beeper@>=1.0.0 <2.0.0", @@ -217,9 +246,9 @@ "resolved": "https://registry.npmjs.org/bin-wrapper/-/bin-wrapper-3.0.2.tgz" }, "binaryextensions": { - "version": "1.0.1", - "from": "binaryextensions@>=1.0.0 <1.1.0", - "resolved": "https://registry.npmjs.org/binaryextensions/-/binaryextensions-1.0.1.tgz" + "version": "2.0.0", + "from": "binaryextensions@>=1.0.0 <2.0.0||>=2.0.0 <3.0.0", + "resolved": "https://registry.npmjs.org/binaryextensions/-/binaryextensions-2.0.0.tgz" }, "bl": { "version": "1.1.2", @@ -233,11 +262,6 @@ } } }, - "bluebird": { - "version": "3.4.1", - "from": "bluebird@3.4.1", - "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.4.1.tgz" - }, "boolbase": { "version": "1.0.0", "from": "boolbase@>=1.0.0 <1.1.0", @@ -248,6 +272,11 @@ "from": "boom@>=2.0.0 <3.0.0", "resolved": "https://registry.npmjs.org/boom/-/boom-2.10.1.tgz" }, + "boxen": { + "version": "0.3.1", + "from": "boxen@>=0.3.1 <0.4.0", + "resolved": "https://registry.npmjs.org/boxen/-/boxen-0.3.1.tgz" + }, "brace-expansion": { "version": "1.1.6", "from": "brace-expansion@>=1.0.0 <2.0.0", @@ -259,9 +288,9 @@ "resolved": "https://registry.npmjs.org/braces/-/braces-1.8.5.tgz" }, "buf-compare": { - "version": "1.0.0", + "version": "1.0.1", "from": "buf-compare@>=1.0.0 <2.0.0", - "resolved": "https://registry.npmjs.org/buf-compare/-/buf-compare-1.0.0.tgz" + "resolved": "https://registry.npmjs.org/buf-compare/-/buf-compare-1.0.1.tgz" }, "buffer-crc32": { "version": "0.2.5", @@ -405,9 +434,9 @@ "resolved": "https://registry.npmjs.org/co/-/co-3.1.0.tgz" }, "code-point-at": { - "version": "1.0.0", + "version": "1.0.1", "from": "code-point-at@>=1.0.0 <2.0.0", - "resolved": "https://registry.npmjs.org/code-point-at/-/code-point-at-1.0.0.tgz" + "resolved": "https://registry.npmjs.org/code-point-at/-/code-point-at-1.0.1.tgz" }, "colors": { "version": "1.0.3", @@ -435,9 +464,9 @@ "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz" }, "concat-stream": { - "version": "1.5.1", + "version": "1.5.2", "from": "concat-stream@>=1.4.7 <2.0.0", - "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.5.1.tgz", + "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.5.2.tgz", "dependencies": { "readable-stream": { "version": "2.0.6", @@ -447,9 +476,14 @@ } }, "config-chain": { - "version": "1.1.10", + "version": "1.1.11", "from": "config-chain@>=1.1.8 <1.2.0", - "resolved": "https://registry.npmjs.org/config-chain/-/config-chain-1.1.10.tgz" + "resolved": "https://registry.npmjs.org/config-chain/-/config-chain-1.1.11.tgz" + }, + "configstore": { + "version": "1.4.0", + "from": "configstore@>=1.0.0 <2.0.0", + "resolved": "https://registry.npmjs.org/configstore/-/configstore-1.4.0.tgz" }, "contains-path": { "version": "0.1.0", @@ -462,9 +496,9 @@ "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.3.0.tgz" }, "core-assert": { - "version": "0.1.3", - "from": "core-assert@>=0.1.0 <0.2.0", - "resolved": "https://registry.npmjs.org/core-assert/-/core-assert-0.1.3.tgz" + "version": "0.2.1", + "from": "core-assert@>=0.2.0 <0.3.0", + "resolved": "https://registry.npmjs.org/core-assert/-/core-assert-0.2.1.tgz" }, "core-js": { "version": "2.4.1", @@ -482,14 +516,9 @@ "resolved": "https://registry.npmjs.org/create-error-class/-/create-error-class-3.0.2.tgz" }, "cross-spawn": { - "version": "2.2.3", - "from": "cross-spawn@>=2.0.0 <3.0.0", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-2.2.3.tgz" - }, - "cross-spawn-async": { - "version": "2.2.4", - "from": "cross-spawn-async@>=2.2.2 <3.0.0", - "resolved": "https://registry.npmjs.org/cross-spawn-async/-/cross-spawn-async-2.2.4.tgz" + "version": "4.0.2", + "from": "cross-spawn@>=4.0.0 <5.0.0", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-4.0.2.tgz" }, "cryptiles": { "version": "2.0.5", @@ -517,9 +546,9 @@ "resolved": "https://registry.npmjs.org/d/-/d-0.1.1.tgz" }, "damerau-levenshtein": { - "version": "1.0.0", + "version": "1.0.3", "from": "damerau-levenshtein@>=1.0.0 <2.0.0", - "resolved": "https://registry.npmjs.org/damerau-levenshtein/-/damerau-levenshtein-1.0.0.tgz" + "resolved": "https://registry.npmjs.org/damerau-levenshtein/-/damerau-levenshtein-1.0.3.tgz" }, "dargs": { "version": "4.1.0", @@ -652,9 +681,9 @@ "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.3.tgz" }, "deep-strict-equal": { - "version": "0.1.0", - "from": "deep-strict-equal@>=0.1.0 <0.2.0", - "resolved": "https://registry.npmjs.org/deep-strict-equal/-/deep-strict-equal-0.1.0.tgz" + "version": "0.2.0", + "from": "deep-strict-equal@>=0.2.0 <0.3.0", + "resolved": "https://registry.npmjs.org/deep-strict-equal/-/deep-strict-equal-0.2.0.tgz" }, "default-uid": { "version": "1.0.0", @@ -667,9 +696,9 @@ "resolved": "https://registry.npmjs.org/del/-/del-2.2.2.tgz", "dependencies": { "glob": { - "version": "7.0.5", - "from": "glob@>=7.0.3 <8.0.0", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.0.5.tgz" + "version": "7.1.1", + "from": "glob@^7.0.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.1.tgz" }, "globby": { "version": "5.0.0", @@ -704,9 +733,9 @@ "resolved": "https://registry.npmjs.org/diff/-/diff-2.2.3.tgz" }, "doctrine": { - "version": "1.2.3", + "version": "1.4.0", "from": "doctrine@>=1.2.2 <2.0.0", - "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-1.2.3.tgz" + "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-1.4.0.tgz" }, "dom-serializer": { "version": "0.1.0", @@ -737,7 +766,7 @@ }, "dot-prop": { "version": "2.4.0", - "from": "dot-prop@>=2.3.0 <3.0.0", + "from": "dot-prop@>=2.0.0 <3.0.0", "resolved": "https://registry.npmjs.org/dot-prop/-/dot-prop-2.4.0.tgz" }, "downgrade-root": { @@ -777,16 +806,26 @@ "from": "ecc-jsbn@>=0.1.1 <0.2.0", "resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.1.tgz" }, + "editions": { + "version": "1.1.2", + "from": "editions@>=1.1.1 <2.0.0", + "resolved": "https://registry.npmjs.org/editions/-/editions-1.1.2.tgz" + }, "ejs": { - "version": "2.5.1", + "version": "2.5.2", "from": "ejs@>=2.3.1 <3.0.0", - "resolved": "https://registry.npmjs.org/ejs/-/ejs-2.5.1.tgz" + "resolved": "https://registry.npmjs.org/ejs/-/ejs-2.5.2.tgz" }, "end-of-stream": { "version": "1.1.0", "from": "end-of-stream@>=1.0.0 <2.0.0", "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.1.0.tgz" }, + "enhance-visitors": { + "version": "1.0.0", + "from": "enhance-visitors@>=1.0.0 <2.0.0", + "resolved": "https://registry.npmjs.org/enhance-visitors/-/enhance-visitors-1.0.0.tgz" + }, "entities": { "version": "1.1.1", "from": "entities@>=1.1.1 <1.2.0", @@ -855,14 +894,14 @@ } }, "eslint-import-resolver-node": { - "version": "0.2.2", + "version": "0.2.3", "from": "eslint-import-resolver-node@>=0.2.0 <0.3.0", - "resolved": "https://registry.npmjs.org/eslint-import-resolver-node/-/eslint-import-resolver-node-0.2.2.tgz" + "resolved": "https://registry.npmjs.org/eslint-import-resolver-node/-/eslint-import-resolver-node-0.2.3.tgz" }, "eslint-plugin-ava": { - "version": "2.5.0", - "from": "eslint-plugin-ava@>=2.5.0 <2.6.0", - "resolved": "https://registry.npmjs.org/eslint-plugin-ava/-/eslint-plugin-ava-2.5.0.tgz" + "version": "3.0.0", + "from": "eslint-plugin-ava@>=3.0.0 <3.1.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-ava/-/eslint-plugin-ava-3.0.0.tgz" }, "eslint-plugin-babel": { "version": "3.3.0", @@ -875,66 +914,61 @@ "resolved": "https://registry.npmjs.org/eslint-plugin-chai-expect/-/eslint-plugin-chai-expect-1.1.1.tgz" }, "eslint-plugin-flowtype": { - "version": "2.3.1", - "from": "eslint-plugin-flowtype@>=2.3.0 <2.4.0", - "resolved": "https://registry.npmjs.org/eslint-plugin-flowtype/-/eslint-plugin-flowtype-2.3.1.tgz" + "version": "2.7.2", + "from": "eslint-plugin-flowtype@>=2.7.0 <2.8.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-flowtype/-/eslint-plugin-flowtype-2.7.2.tgz" }, "eslint-plugin-import": { - "version": "1.10.3", - "from": "eslint-plugin-import@>=1.10.0 <1.11.0", - "resolved": "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-1.10.3.tgz" + "version": "1.13.0", + "from": "eslint-plugin-import@>=1.13.0 <1.14.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-1.13.0.tgz", + "dependencies": { + "doctrine": { + "version": "1.2.3", + "from": "doctrine@>=1.2.0 <1.3.0", + "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-1.2.3.tgz" + } + } }, "eslint-plugin-jsx-a11y": { - "version": "2.0.1", - "from": "eslint-plugin-jsx-a11y@>=2.0.0 <2.1.0", - "resolved": "https://registry.npmjs.org/eslint-plugin-jsx-a11y/-/eslint-plugin-jsx-a11y-2.0.1.tgz" + "version": "2.1.0", + "from": "eslint-plugin-jsx-a11y@>=2.1.0 <2.2.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-jsx-a11y/-/eslint-plugin-jsx-a11y-2.1.0.tgz" }, "eslint-plugin-lodash": { - "version": "1.9.4", - "from": "eslint-plugin-lodash@>=1.9.0 <1.10.0", - "resolved": "https://registry.npmjs.org/eslint-plugin-lodash/-/eslint-plugin-lodash-1.9.4.tgz" + "version": "1.10.3", + "from": "eslint-plugin-lodash@>=1.10.0 <1.11.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-lodash/-/eslint-plugin-lodash-1.10.3.tgz" }, "eslint-plugin-mocha": { - "version": "4.0.0", - "from": "eslint-plugin-mocha@>=4.0.0 <4.1.0", - "resolved": "https://registry.npmjs.org/eslint-plugin-mocha/-/eslint-plugin-mocha-4.0.0.tgz" - }, - "eslint-plugin-node": { - "version": "2.0.0", - "from": "eslint-plugin-node@2.0.0", - "resolved": "https://registry.npmjs.org/eslint-plugin-node/-/eslint-plugin-node-2.0.0.tgz", - "dependencies": { - "semver": { - "version": "5.2.0", - "from": "semver@5.2.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.2.0.tgz" - } - } + "version": "4.3.0", + "from": "eslint-plugin-mocha@>=4.3.0 <4.4.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-mocha/-/eslint-plugin-mocha-4.3.0.tgz" }, "eslint-plugin-promise": { - "version": "1.3.2", - "from": "eslint-plugin-promise@>=1.3.0 <1.4.0", - "resolved": "https://registry.npmjs.org/eslint-plugin-promise/-/eslint-plugin-promise-1.3.2.tgz" + "version": "2.0.1", + "from": "eslint-plugin-promise@>=2.0.0 <2.1.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-promise/-/eslint-plugin-promise-2.0.1.tgz" }, "eslint-plugin-react": { - "version": "5.1.1", - "from": "eslint-plugin-react@>=5.1.0 <5.2.0", - "resolved": "https://registry.npmjs.org/eslint-plugin-react/-/eslint-plugin-react-5.1.1.tgz" + "version": "6.1.2", + "from": "eslint-plugin-react@>=6.1.0 <6.2.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-react/-/eslint-plugin-react-6.1.2.tgz" }, "eslint-plugin-sort-class-members": { - "version": "1.0.1", + "version": "1.0.2", "from": "eslint-plugin-sort-class-members@>=1.0.0 <1.1.0", - "resolved": "https://registry.npmjs.org/eslint-plugin-sort-class-members/-/eslint-plugin-sort-class-members-1.0.1.tgz" + "resolved": "https://registry.npmjs.org/eslint-plugin-sort-class-members/-/eslint-plugin-sort-class-members-1.0.2.tgz" }, "espree": { - "version": "3.1.7", - "from": "espree@>=3.1.6 <4.0.0", - "resolved": "https://registry.npmjs.org/espree/-/espree-3.1.7.tgz" + "version": "3.3.2", + "from": "espree@>=3.3.1 <4.0.0", + "resolved": "https://registry.npmjs.org/espree/-/espree-3.3.2.tgz" }, "esprima": { - "version": "2.7.2", + "version": "2.7.3", "from": "esprima@>=2.0.0 <3.0.0", - "resolved": "https://registry.npmjs.org/esprima/-/esprima-2.7.2.tgz" + "resolved": "https://registry.npmjs.org/esprima/-/esprima-2.7.3.tgz" }, "espurify": { "version": "1.6.0", @@ -1004,14 +1038,21 @@ "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz" }, "external-editor": { - "version": "1.0.3", - "from": "external-editor@>=1.0.1 <2.0.0", - "resolved": "https://registry.npmjs.org/external-editor/-/external-editor-1.0.3.tgz" + "version": "1.1.0", + "from": "external-editor@>=1.1.0 <2.0.0", + "resolved": "https://registry.npmjs.org/external-editor/-/external-editor-1.1.0.tgz" }, "extglob": { "version": "0.3.2", "from": "extglob@>=0.3.1 <0.4.0", - "resolved": "https://registry.npmjs.org/extglob/-/extglob-0.3.2.tgz" + "resolved": "https://registry.npmjs.org/extglob/-/extglob-0.3.2.tgz", + "dependencies": { + "is-extglob": { + "version": "1.0.0", + "from": "is-extglob@>=1.0.0 <2.0.0", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-1.0.0.tgz" + } + } }, "extsprintf": { "version": "1.0.2", @@ -1024,32 +1065,15 @@ "resolved": "https://registry.npmjs.org/fancy-log/-/fancy-log-1.2.0.tgz" }, "fast-levenshtein": { - "version": "1.1.4", - "from": "fast-levenshtein@>=1.1.0 <2.0.0", - "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-1.1.4.tgz" + "version": "2.0.5", + "from": "fast-levenshtein@>=2.0.4 <2.1.0", + "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.5.tgz" }, "fd-slicer": { "version": "1.0.1", "from": "fd-slicer@>=1.0.1 <1.1.0", "resolved": "https://registry.npmjs.org/fd-slicer/-/fd-slicer-1.0.1.tgz" }, - "feedparser": { - "version": "1.1.4", - "from": "feedparser@latest", - "resolved": "https://registry.npmjs.org/feedparser/-/feedparser-1.1.4.tgz", - "dependencies": { - "isarray": { - "version": "0.0.1", - "from": "isarray@0.0.1", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz" - }, - "readable-stream": { - "version": "1.0.34", - "from": "readable-stream@>=1.0.17 <1.1.0", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.0.34.tgz" - } - } - }, "figures": { "version": "1.7.0", "from": "figures@>=1.3.5 <2.0.0", @@ -1116,9 +1140,9 @@ "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-1.2.1.tgz" }, "for-in": { - "version": "0.1.5", + "version": "0.1.6", "from": "for-in@>=0.1.5 <0.2.0", - "resolved": "https://registry.npmjs.org/for-in/-/for-in-0.1.5.tgz" + "resolved": "https://registry.npmjs.org/for-in/-/for-in-0.1.6.tgz" }, "for-own": { "version": "0.1.4", @@ -1136,9 +1160,9 @@ "resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz" }, "form-data": { - "version": "1.0.0-rc4", - "from": "form-data@>=1.0.0-rc4 <1.1.0", - "resolved": "https://registry.npmjs.org/form-data/-/form-data-1.0.0-rc4.tgz" + "version": "2.0.0", + "from": "form-data@>=2.0.0 <2.1.0", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.0.0.tgz" }, "formatio": { "version": "1.1.1", @@ -1210,17 +1234,34 @@ "glob-base": { "version": "0.3.0", "from": "glob-base@>=0.3.0 <0.4.0", - "resolved": "https://registry.npmjs.org/glob-base/-/glob-base-0.3.0.tgz" + "resolved": "https://registry.npmjs.org/glob-base/-/glob-base-0.3.0.tgz", + "dependencies": { + "glob-parent": { + "version": "2.0.0", + "from": "glob-parent@>=2.0.0 <3.0.0", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-2.0.0.tgz" + }, + "is-extglob": { + "version": "1.0.0", + "from": "is-extglob@>=1.0.0 <2.0.0", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-1.0.0.tgz" + }, + "is-glob": { + "version": "2.0.1", + "from": "is-glob@>=2.0.0 <3.0.0", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-2.0.1.tgz" + } + } }, "glob-parent": { - "version": "2.0.0", - "from": "glob-parent@>=2.0.0 <3.0.0", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-2.0.0.tgz" + "version": "3.0.0", + "from": "glob-parent@>=3.0.0 <4.0.0", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-3.0.0.tgz" }, "glob-stream": { - "version": "5.3.2", + "version": "5.3.5", "from": "glob-stream@>=5.3.2 <6.0.0", - "resolved": "https://registry.npmjs.org/glob-stream/-/glob-stream-5.3.2.tgz" + "resolved": "https://registry.npmjs.org/glob-stream/-/glob-stream-5.3.5.tgz" }, "global-npm": { "version": "0.3.0", @@ -1228,9 +1269,9 @@ "resolved": "https://registry.npmjs.org/global-npm/-/global-npm-0.3.0.tgz" }, "globals": { - "version": "9.9.0", + "version": "9.12.0", "from": "globals@>=9.2.0 <10.0.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-9.9.0.tgz" + "resolved": "https://registry.npmjs.org/globals/-/globals-9.12.0.tgz" }, "globby": { "version": "4.1.0", @@ -1255,9 +1296,9 @@ "resolved": "https://registry.npmjs.org/got/-/got-5.6.0.tgz" }, "graceful-fs": { - "version": "4.1.5", + "version": "4.1.9", "from": "graceful-fs@>=4.1.2 <5.0.0", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.5.tgz" + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.9.tgz" }, "graceful-readlink": { "version": "1.0.1", @@ -1431,7 +1472,7 @@ }, "ignore": { "version": "3.1.5", - "from": "ignore@>=3.1.2 <4.0.0", + "from": "ignore@>=3.1.5 <4.0.0", "resolved": "https://registry.npmjs.org/ignore/-/ignore-3.1.5.tgz" }, "imurmurhash": { @@ -1450,9 +1491,9 @@ "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.5.tgz" }, "inherits": { - "version": "2.0.1", + "version": "2.0.3", "from": "inherits@>=2.0.1 <2.1.0", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.1.tgz" + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz" }, "ini": { "version": "1.3.4", @@ -1460,25 +1501,25 @@ "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.4.tgz" }, "inquirer": { - "version": "1.1.2", + "version": "1.2.1", "from": "inquirer@>=1.0.2 <2.0.0", - "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-1.1.2.tgz" + "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-1.2.1.tgz" }, "insight": { "version": "0.7.0", "from": "insight@>=0.7.0 <0.8.0", "resolved": "https://registry.npmjs.org/insight/-/insight-0.7.0.tgz", "dependencies": { + "async": { + "version": "1.5.2", + "from": "async@>=1.4.2 <2.0.0", + "resolved": "https://registry.npmjs.org/async/-/async-1.5.2.tgz" + }, "cli-width": { "version": "1.1.1", "from": "cli-width@>=1.0.1 <2.0.0", "resolved": "https://registry.npmjs.org/cli-width/-/cli-width-1.1.1.tgz" }, - "configstore": { - "version": "1.4.0", - "from": "configstore@>=1.0.0 <2.0.0", - "resolved": "https://registry.npmjs.org/configstore/-/configstore-1.4.0.tgz" - }, "inquirer": { "version": "0.10.1", "from": "inquirer@>=0.10.0 <0.11.0", @@ -1546,20 +1587,25 @@ "from": "is-equal-shallow@>=0.1.3 <0.2.0", "resolved": "https://registry.npmjs.org/is-equal-shallow/-/is-equal-shallow-0.1.3.tgz" }, + "is-error": { + "version": "2.2.0", + "from": "is-error@>=2.2.0 <3.0.0", + "resolved": "https://registry.npmjs.org/is-error/-/is-error-2.2.0.tgz" + }, "is-extendable": { "version": "0.1.1", "from": "is-extendable@>=0.1.1 <0.2.0", "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz" }, "is-extglob": { - "version": "1.0.0", - "from": "is-extglob@>=1.0.0 <2.0.0", - "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-1.0.0.tgz" + "version": "2.0.0", + "from": "is-extglob@>=2.0.0 <3.0.0", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.0.0.tgz" }, "is-finite": { - "version": "1.0.1", + "version": "1.0.2", "from": "is-finite@>=1.0.0 <2.0.0", - "resolved": "https://registry.npmjs.org/is-finite/-/is-finite-1.0.1.tgz" + "resolved": "https://registry.npmjs.org/is-finite/-/is-finite-1.0.2.tgz" }, "is-fullwidth-code-point": { "version": "1.0.0", @@ -1567,9 +1613,9 @@ "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz" }, "is-glob": { - "version": "2.0.1", - "from": "is-glob@>=2.0.0 <3.0.0", - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-2.0.1.tgz" + "version": "3.0.0", + "from": "is-glob@>=3.0.0 <4.0.0", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-3.0.0.tgz" }, "is-gzip": { "version": "1.0.0", @@ -1577,9 +1623,9 @@ "resolved": "https://registry.npmjs.org/is-gzip/-/is-gzip-1.0.0.tgz" }, "is-my-json-valid": { - "version": "2.13.1", + "version": "2.15.0", "from": "is-my-json-valid@>=2.12.4 <3.0.0", - "resolved": "https://registry.npmjs.org/is-my-json-valid/-/is-my-json-valid-2.13.1.tgz" + "resolved": "https://registry.npmjs.org/is-my-json-valid/-/is-my-json-valid-2.15.0.tgz" }, "is-natural-number": { "version": "2.1.1", @@ -1732,9 +1778,9 @@ "resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz" }, "istextorbinary": { - "version": "1.0.2", - "from": "istextorbinary@>=1.0.2 <2.0.0", - "resolved": "https://registry.npmjs.org/istextorbinary/-/istextorbinary-1.0.2.tgz" + "version": "2.1.0", + "from": "istextorbinary@>=2.1.0 <3.0.0", + "resolved": "https://registry.npmjs.org/istextorbinary/-/istextorbinary-2.1.0.tgz" }, "jodid25519": { "version": "1.0.2", @@ -1757,9 +1803,9 @@ "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.0.tgz" }, "json-schema": { - "version": "0.2.2", - "from": "json-schema@0.2.2", - "resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.2.2.tgz" + "version": "0.2.3", + "from": "json-schema@0.2.3", + "resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.2.3.tgz" }, "json-stable-stringify": { "version": "1.0.1", @@ -1777,14 +1823,14 @@ "resolved": "https://registry.npmjs.org/jsonify/-/jsonify-0.0.0.tgz" }, "jsonpointer": { - "version": "2.0.0", - "from": "jsonpointer@2.0.0", - "resolved": "https://registry.npmjs.org/jsonpointer/-/jsonpointer-2.0.0.tgz" + "version": "4.0.0", + "from": "jsonpointer@>=4.0.0 <5.0.0", + "resolved": "https://registry.npmjs.org/jsonpointer/-/jsonpointer-4.0.0.tgz" }, "jsprim": { - "version": "1.3.0", + "version": "1.3.1", "from": "jsprim@>=1.2.2 <2.0.0", - "resolved": "https://registry.npmjs.org/jsprim/-/jsprim-1.3.0.tgz" + "resolved": "https://registry.npmjs.org/jsprim/-/jsprim-1.3.1.tgz" }, "jsx-ast-utils": { "version": "1.3.1", @@ -1822,9 +1868,9 @@ "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-1.1.0.tgz" }, "lodash": { - "version": "4.13.1", - "from": "lodash@4.13.1", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.13.1.tgz" + "version": "4.16.4", + "from": "lodash@4.16.4", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.16.4.tgz" }, "lodash._basecopy": { "version": "3.0.1", @@ -1946,11 +1992,6 @@ "from": "lodash.pickby@>=4.0.0 <5.0.0", "resolved": "https://registry.npmjs.org/lodash.pickby/-/lodash.pickby-4.6.0.tgz" }, - "lodash.rest": { - "version": "4.0.5", - "from": "lodash.rest@>=4.0.3 <5.0.0", - "resolved": "https://registry.npmjs.org/lodash.rest/-/lodash.rest-4.0.5.tgz" - }, "lodash.restparam": { "version": "3.6.1", "from": "lodash.restparam@>=3.0.0 <4.0.0", @@ -2000,7 +2041,7 @@ }, "lru-cache": { "version": "4.0.1", - "from": "lru-cache@>=4.0.0 <5.0.0", + "from": "lru-cache@>=4.0.1 <5.0.0", "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-4.0.1.tgz" }, "map-obj": { @@ -2031,9 +2072,9 @@ "resolved": "https://registry.npmjs.org/mem-fs-editor/-/mem-fs-editor-2.3.0.tgz", "dependencies": { "glob": { - "version": "7.0.5", + "version": "7.1.0", "from": "glob@>=7.0.3 <8.0.0", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.0.5.tgz" + "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.0.tgz" }, "readable-stream": { "version": "2.0.6", @@ -2065,17 +2106,29 @@ "micromatch": { "version": "2.3.11", "from": "micromatch@>=2.3.7 <3.0.0", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-2.3.11.tgz" + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-2.3.11.tgz", + "dependencies": { + "is-extglob": { + "version": "1.0.0", + "from": "is-extglob@>=1.0.0 <2.0.0", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-1.0.0.tgz" + }, + "is-glob": { + "version": "2.0.1", + "from": "is-glob@>=2.0.1 <3.0.0", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-2.0.1.tgz" + } + } }, "mime-db": { - "version": "1.23.0", - "from": "mime-db@>=1.23.0 <1.24.0", - "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.23.0.tgz" + "version": "1.24.0", + "from": "mime-db@>=1.24.0 <1.25.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.24.0.tgz" }, "mime-types": { - "version": "2.1.11", + "version": "2.1.12", "from": "mime-types@>=2.1.7 <2.2.0", - "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.11.tgz" + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.12.tgz" }, "minimatch": { "version": "3.0.3", @@ -2136,6 +2189,11 @@ "from": "mute-stream@0.0.6", "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.6.tgz" }, + "natural-compare": { + "version": "1.4.0", + "from": "natural-compare@>=1.4.0 <2.0.0", + "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz" + }, "node-status-codes": { "version": "1.0.0", "from": "node-status-codes@>=1.0.0 <2.0.0", @@ -2189,9 +2247,9 @@ "resolved": "https://registry.npmjs.org/nth-check/-/nth-check-1.0.1.tgz" }, "number-is-nan": { - "version": "1.0.0", + "version": "1.0.1", "from": "number-is-nan@>=1.0.0 <2.0.0", - "resolved": "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.0.tgz" + "resolved": "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz" }, "oauth-sign": { "version": "0.8.2", @@ -2234,9 +2292,9 @@ "resolved": "https://registry.npmjs.org/opn/-/opn-3.0.3.tgz" }, "optionator": { - "version": "0.8.1", + "version": "0.8.2", "from": "optionator@>=0.8.1 <0.9.0", - "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.8.1.tgz" + "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.8.2.tgz" }, "ordered-read-streams": { "version": "0.3.0", @@ -2249,9 +2307,9 @@ "resolved": "https://registry.npmjs.org/os-filter-obj/-/os-filter-obj-1.0.3.tgz" }, "os-homedir": { - "version": "1.0.1", + "version": "1.0.2", "from": "os-homedir@>=1.0.0 <2.0.0", - "resolved": "https://registry.npmjs.org/os-homedir/-/os-homedir-1.0.1.tgz" + "resolved": "https://registry.npmjs.org/os-homedir/-/os-homedir-1.0.2.tgz" }, "os-name": { "version": "1.0.3", @@ -2264,9 +2322,9 @@ "resolved": "https://registry.npmjs.org/os-shim/-/os-shim-0.1.3.tgz" }, "os-tmpdir": { - "version": "1.0.1", + "version": "1.0.2", "from": "os-tmpdir@>=1.0.0 <2.0.0", - "resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.1.tgz" + "resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz" }, "osenv": { "version": "0.1.3", @@ -2279,9 +2337,9 @@ "resolved": "https://registry.npmjs.org/osx-release/-/osx-release-1.1.0.tgz" }, "package-json": { - "version": "2.3.3", - "from": "package-json@>=2.0.0 <3.0.0", - "resolved": "https://registry.npmjs.org/package-json/-/package-json-2.3.3.tgz" + "version": "2.4.0", + "from": "package-json@>=2.1.0 <3.0.0", + "resolved": "https://registry.npmjs.org/package-json/-/package-json-2.4.0.tgz" }, "pad-component": { "version": "0.0.1", @@ -2291,7 +2349,19 @@ "parse-glob": { "version": "3.0.4", "from": "parse-glob@>=3.0.4 <4.0.0", - "resolved": "https://registry.npmjs.org/parse-glob/-/parse-glob-3.0.4.tgz" + "resolved": "https://registry.npmjs.org/parse-glob/-/parse-glob-3.0.4.tgz", + "dependencies": { + "is-extglob": { + "version": "1.0.0", + "from": "is-extglob@>=1.0.0 <2.0.0", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-1.0.0.tgz" + }, + "is-glob": { + "version": "2.0.1", + "from": "is-glob@>=2.0.0 <3.0.0", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-2.0.1.tgz" + } + } }, "parse-help": { "version": "0.1.1", @@ -2309,14 +2379,14 @@ "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-2.1.0.tgz" }, "path-is-absolute": { - "version": "1.0.0", + "version": "1.0.1", "from": "path-is-absolute@>=1.0.0 <2.0.0", - "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.0.tgz" + "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz" }, "path-is-inside": { - "version": "1.0.1", + "version": "1.0.2", "from": "path-is-inside@>=1.0.1 <2.0.0", - "resolved": "https://registry.npmjs.org/path-is-inside/-/path-is-inside-1.0.1.tgz" + "resolved": "https://registry.npmjs.org/path-is-inside/-/path-is-inside-1.0.2.tgz" }, "path-type": { "version": "1.1.0", @@ -2385,7 +2455,7 @@ }, "progress": { "version": "1.1.8", - "from": "progress@latest", + "from": "progress@>=1.1.8 <2.0.0", "resolved": "https://registry.npmjs.org/progress/-/progress-1.1.8.tgz" }, "proto-list": { @@ -2425,7 +2495,7 @@ }, "read-chunk": { "version": "1.0.1", - "from": "read-chunk@>=1.0.1 <2.0.0", + "from": "read-chunk@>=1.0.0 <2.0.0", "resolved": "https://registry.npmjs.org/read-chunk/-/read-chunk-1.0.1.tgz" }, "read-pkg": { @@ -2439,9 +2509,9 @@ "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-1.0.1.tgz" }, "readable-stream": { - "version": "2.1.4", + "version": "2.1.5", "from": "readable-stream@>=2.0.2 <3.0.0", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.1.4.tgz" + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.1.5.tgz" }, "readline2": { "version": "1.0.1", @@ -2475,6 +2545,11 @@ "from": "regex-cache@>=0.4.2 <0.5.0", "resolved": "https://registry.npmjs.org/regex-cache/-/regex-cache-0.4.3.tgz" }, + "registry-auth-token": { + "version": "3.0.1", + "from": "registry-auth-token@>=3.0.1 <4.0.0", + "resolved": "https://registry.npmjs.org/registry-auth-token/-/registry-auth-token-3.0.1.tgz" + }, "registry-url": { "version": "3.1.0", "from": "registry-url@>=3.0.3 <4.0.0", @@ -2500,10 +2575,15 @@ "from": "replace-ext@0.0.1", "resolved": "https://registry.npmjs.org/replace-ext/-/replace-ext-0.0.1.tgz" }, + "req-all": { + "version": "0.1.0", + "from": "req-all@>=0.1.0 <0.2.0", + "resolved": "https://registry.npmjs.org/req-all/-/req-all-0.1.0.tgz" + }, "request": { - "version": "2.74.0", - "from": "request@latest", - "resolved": "https://registry.npmjs.org/request/-/request-2.74.0.tgz" + "version": "2.75.0", + "from": "request@2.75.0", + "resolved": "https://registry.npmjs.org/request/-/request-2.75.0.tgz" }, "require-uncached": { "version": "1.0.2", @@ -2531,9 +2611,9 @@ "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.5.4.tgz", "dependencies": { "glob": { - "version": "7.0.5", + "version": "7.1.0", "from": "glob@>=7.0.5 <8.0.0", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.0.5.tgz" + "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.0.tgz" } } }, @@ -2562,11 +2642,6 @@ "from": "samsam@1.1.2", "resolved": "https://registry.npmjs.org/samsam/-/samsam-1.1.2.tgz" }, - "sax": { - "version": "0.6.1", - "from": "sax@>=0.6.0 <0.7.0", - "resolved": "https://registry.npmjs.org/sax/-/sax-0.6.1.tgz" - }, "seek-bzip": { "version": "1.0.5", "from": "seek-bzip@>=1.0.3 <2.0.0", @@ -2598,26 +2673,31 @@ "resolved": "https://registry.npmjs.org/set-immediate-shim/-/set-immediate-shim-1.0.1.tgz" }, "shelljs": { - "version": "0.7.3", + "version": "0.7.4", "from": "shelljs@>=0.7.0 <0.8.0", - "resolved": "https://registry.npmjs.org/shelljs/-/shelljs-0.7.3.tgz", + "resolved": "https://registry.npmjs.org/shelljs/-/shelljs-0.7.4.tgz", "dependencies": { "glob": { - "version": "7.0.5", + "version": "7.1.0", "from": "glob@>=7.0.0 <8.0.0", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.0.5.tgz" + "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.0.tgz" } } }, "signal-exit": { - "version": "3.0.0", + "version": "3.0.1", "from": "signal-exit@>=3.0.0 <4.0.0", - "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.0.tgz" + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.1.tgz" + }, + "simple-spinner": { + "version": "0.0.5", + "from": "simple-spinner@0.0.5", + "resolved": "https://registry.npmjs.org/simple-spinner/-/simple-spinner-0.0.5.tgz" }, "sinon": { - "version": "1.17.5", + "version": "1.17.6", "from": "sinon@>=1.17.2 <2.0.0", - "resolved": "https://registry.npmjs.org/sinon/-/sinon-1.17.5.tgz" + "resolved": "https://registry.npmjs.org/sinon/-/sinon-1.17.6.tgz" }, "Slate": { "version": "0.8.0", @@ -2664,15 +2744,10 @@ "from": "spdx-correct@>=1.0.0 <1.1.0", "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-1.0.2.tgz" }, - "spdx-exceptions": { - "version": "1.0.5", - "from": "spdx-exceptions@>=1.0.4 <2.0.0", - "resolved": "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-1.0.5.tgz" - }, "spdx-expression-parse": { - "version": "1.0.2", + "version": "1.0.4", "from": "spdx-expression-parse@>=1.0.0 <1.1.0", - "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-1.0.2.tgz" + "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-1.0.4.tgz" }, "spdx-license-ids": { "version": "1.2.2", @@ -2685,9 +2760,9 @@ "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz" }, "sshpk": { - "version": "1.9.2", + "version": "1.10.1", "from": "sshpk@>=1.7.0 <2.0.0", - "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.9.2.tgz", + "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.10.1.tgz", "dependencies": { "assert-plus": { "version": "1.0.0", @@ -2697,9 +2772,9 @@ } }, "stat-mode": { - "version": "0.2.1", + "version": "0.2.2", "from": "stat-mode@>=0.2.0 <0.3.0", - "resolved": "https://registry.npmjs.org/stat-mode/-/stat-mode-0.2.1.tgz" + "resolved": "https://registry.npmjs.org/stat-mode/-/stat-mode-0.2.2.tgz" }, "stream-combiner2": { "version": "1.1.1", @@ -2787,9 +2862,9 @@ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz" }, "table": { - "version": "3.7.8", + "version": "3.8.0", "from": "table@>=3.7.8 <4.0.0", - "resolved": "https://registry.npmjs.org/table/-/table-3.7.8.tgz" + "resolved": "https://registry.npmjs.org/table/-/table-3.8.0.tgz" }, "tabtab": { "version": "1.3.2", @@ -2824,9 +2899,9 @@ "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz" }, "textextensions": { - "version": "1.0.2", - "from": "textextensions@>=1.0.0 <1.1.0", - "resolved": "https://registry.npmjs.org/textextensions/-/textextensions-1.0.2.tgz" + "version": "2.0.1", + "from": "textextensions@>=1.0.0 <2.0.0||>=2.0.0 <3.0.0", + "resolved": "https://registry.npmjs.org/textextensions/-/textextensions-2.0.1.tgz" }, "through": { "version": "2.3.8", @@ -2894,7 +2969,7 @@ }, "tough-cookie": { "version": "2.3.1", - "from": "tough-cookie@>=2.0.0 <3.0.0", + "from": "tough-cookie@>=2.3.0 <2.4.0", "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.3.1.tgz" }, "traverse": { @@ -2922,15 +2997,10 @@ "from": "tunnel-agent@>=0.4.0 <0.5.0", "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.4.3.tgz" }, - "tv4": { - "version": "1.2.7", - "from": "tv4@>=1.2.7 <2.0.0", - "resolved": "https://registry.npmjs.org/tv4/-/tv4-1.2.7.tgz" - }, "tweetnacl": { - "version": "0.13.3", - "from": "tweetnacl@>=0.13.0 <0.14.0", - "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.13.3.tgz" + "version": "0.14.3", + "from": "tweetnacl@>=0.14.0 <0.15.0", + "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.3.tgz" }, "twig": { "version": "0.8.9", @@ -2968,9 +3038,26 @@ "resolved": "https://registry.npmjs.org/untildify/-/untildify-2.1.0.tgz" }, "unzip-response": { - "version": "1.0.0", + "version": "1.0.1", "from": "unzip-response@>=1.0.0 <2.0.0", - "resolved": "https://registry.npmjs.org/unzip-response/-/unzip-response-1.0.0.tgz" + "resolved": "https://registry.npmjs.org/unzip-response/-/unzip-response-1.0.1.tgz" + }, + "update-notifier": { + "version": "0.6.3", + "from": "update-notifier@>=0.6.0 <0.7.0", + "resolved": "https://registry.npmjs.org/update-notifier/-/update-notifier-0.6.3.tgz", + "dependencies": { + "configstore": { + "version": "2.1.0", + "from": "configstore@>=2.0.0 <3.0.0", + "resolved": "https://registry.npmjs.org/configstore/-/configstore-2.1.0.tgz" + }, + "dot-prop": { + "version": "3.0.0", + "from": "dot-prop@>=3.0.0 <4.0.0", + "resolved": "https://registry.npmjs.org/dot-prop/-/dot-prop-3.0.0.tgz" + } + } }, "url-parse-lax": { "version": "1.0.0", @@ -2985,7 +3072,14 @@ "util": { "version": "0.10.3", "from": "util@>=0.10.3 <1.0.0", - "resolved": "https://registry.npmjs.org/util/-/util-0.10.3.tgz" + "resolved": "https://registry.npmjs.org/util/-/util-0.10.3.tgz", + "dependencies": { + "inherits": { + "version": "2.0.1", + "from": "inherits@2.0.1", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.1.tgz" + } + } }, "util-deprecate": { "version": "1.0.2", @@ -2993,9 +3087,9 @@ "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz" }, "uuid": { - "version": "2.0.2", + "version": "2.0.3", "from": "uuid@>=2.0.1 <3.0.0", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-2.0.2.tgz" + "resolved": "https://registry.npmjs.org/uuid/-/uuid-2.0.3.tgz" }, "vali-date": { "version": "1.0.0", @@ -3069,9 +3163,9 @@ "resolved": "https://registry.npmjs.org/ware/-/ware-1.3.0.tgz" }, "which": { - "version": "1.2.10", + "version": "1.2.11", "from": "which@>=1.2.1 <2.0.0", - "resolved": "https://registry.npmjs.org/which/-/which-1.2.10.tgz" + "resolved": "https://registry.npmjs.org/which/-/which-1.2.11.tgz" }, "widest-line": { "version": "1.0.0", @@ -3109,20 +3203,15 @@ "resolved": "https://registry.npmjs.org/write/-/write-0.2.1.tgz" }, "write-file-atomic": { - "version": "1.1.4", + "version": "1.2.0", "from": "write-file-atomic@>=1.1.2 <2.0.0", - "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-1.1.4.tgz" + "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-1.2.0.tgz" }, "xdg-basedir": { "version": "2.0.0", "from": "xdg-basedir@>=2.0.0 <3.0.0", "resolved": "https://registry.npmjs.org/xdg-basedir/-/xdg-basedir-2.0.0.tgz" }, - "xregexp": { - "version": "3.1.1", - "from": "xregexp@>=3.0.0 <4.0.0", - "resolved": "https://registry.npmjs.org/xregexp/-/xregexp-3.1.1.tgz" - }, "xtend": { "version": "4.0.1", "from": "xtend@>=4.0.0 <5.0.0", @@ -3168,19 +3257,19 @@ "resolved": "https://registry.npmjs.org/yeoman-doctor/-/yeoman-doctor-2.1.0.tgz" }, "yeoman-environment": { - "version": "1.6.3", + "version": "1.6.4", "from": "yeoman-environment@>=1.1.0 <2.0.0", - "resolved": "https://registry.npmjs.org/yeoman-environment/-/yeoman-environment-1.6.3.tgz" + "resolved": "https://registry.npmjs.org/yeoman-environment/-/yeoman-environment-1.6.4.tgz" }, "yeoman-generator": { - "version": "0.23.3", - "from": "yeoman-generator@0.23.3", - "resolved": "https://registry.npmjs.org/yeoman-generator/-/yeoman-generator-0.23.3.tgz", + "version": "0.24.1", + "from": "yeoman-generator@0.24.1", + "resolved": "https://registry.npmjs.org/yeoman-generator/-/yeoman-generator-0.24.1.tgz", "dependencies": { "glob": { - "version": "7.0.5", + "version": "7.1.0", "from": "glob@>=7.0.3 <8.0.0", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.0.5.tgz" + "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.0.tgz" }, "readable-stream": { "version": "2.0.6", @@ -3195,9 +3284,56 @@ } }, "yeoman-test": { - "version": "1.4.0", + "version": "1.5.1", "from": "yeoman-test@>=1.0.0 <2.0.0", - "resolved": "https://registry.npmjs.org/yeoman-test/-/yeoman-test-1.4.0.tgz" + "resolved": "https://registry.npmjs.org/yeoman-test/-/yeoman-test-1.5.1.tgz", + "dependencies": { + "async": { + "version": "1.5.2", + "from": "async@>=1.4.2 <2.0.0", + "resolved": "https://registry.npmjs.org/async/-/async-1.5.2.tgz" + }, + "binaryextensions": { + "version": "1.0.1", + "from": "binaryextensions@>=1.0.0 <1.1.0", + "resolved": "https://registry.npmjs.org/binaryextensions/-/binaryextensions-1.0.1.tgz" + }, + "cross-spawn": { + "version": "3.0.1", + "from": "cross-spawn@>=3.0.0 <4.0.0", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-3.0.1.tgz" + }, + "glob": { + "version": "7.1.0", + "from": "glob@>=7.0.3 <8.0.0", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.0.tgz" + }, + "istextorbinary": { + "version": "1.0.2", + "from": "istextorbinary@>=1.0.2 <2.0.0", + "resolved": "https://registry.npmjs.org/istextorbinary/-/istextorbinary-1.0.2.tgz" + }, + "readable-stream": { + "version": "2.0.6", + "from": "readable-stream@>=2.0.0 <2.1.0", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.0.6.tgz" + }, + "textextensions": { + "version": "1.0.2", + "from": "textextensions@>=1.0.0 <1.1.0", + "resolved": "https://registry.npmjs.org/textextensions/-/textextensions-1.0.2.tgz" + }, + "through2": { + "version": "2.0.1", + "from": "through2@>=2.0.0 <3.0.0", + "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.1.tgz" + }, + "yeoman-generator": { + "version": "0.23.4", + "from": "yeoman-generator@>=0.23.0 <0.24.0", + "resolved": "https://registry.npmjs.org/yeoman-generator/-/yeoman-generator-0.23.4.tgz" + } + } }, "yeoman-welcome": { "version": "1.0.1", @@ -3205,25 +3341,20 @@ "resolved": "https://registry.npmjs.org/yeoman-welcome/-/yeoman-welcome-1.0.1.tgz" }, "yo": { - "version": "1.8.4", - "from": "yo@1.8.4", - "resolved": "https://registry.npmjs.org/yo/-/yo-1.8.4.tgz", + "version": "1.8.5", + "from": "yo@1.8.5", + "resolved": "https://registry.npmjs.org/yo/-/yo-1.8.5.tgz", "dependencies": { - "boxen": { - "version": "0.3.1", - "from": "boxen@>=0.3.1 <0.4.0", - "resolved": "https://registry.npmjs.org/boxen/-/boxen-0.3.1.tgz" + "async": { + "version": "1.5.2", + "from": "async@>=1.0.0 <2.0.0", + "resolved": "https://registry.npmjs.org/async/-/async-1.5.2.tgz" }, "cli-width": { "version": "1.1.1", "from": "cli-width@>=1.0.1 <2.0.0", "resolved": "https://registry.npmjs.org/cli-width/-/cli-width-1.1.1.tgz" }, - "configstore": { - "version": "1.4.0", - "from": "configstore@>=1.0.0 <2.0.0", - "resolved": "https://registry.npmjs.org/configstore/-/configstore-1.4.0.tgz" - }, "cross-spawn": { "version": "3.0.1", "from": "cross-spawn@>=3.0.1 <4.0.0", @@ -3243,25 +3374,13 @@ "version": "0.1.0", "from": "run-async@>=0.1.0 <0.2.0", "resolved": "https://registry.npmjs.org/run-async/-/run-async-0.1.0.tgz" - }, - "update-notifier": { - "version": "0.6.3", - "from": "update-notifier@>=0.6.0 <0.7.0", - "resolved": "https://registry.npmjs.org/update-notifier/-/update-notifier-0.6.3.tgz", - "dependencies": { - "configstore": { - "version": "2.0.0", - "from": "configstore@2.0.0", - "resolved": "https://registry.npmjs.org/configstore/-/configstore-2.0.0.tgz" - } - } } } }, "yosay": { - "version": "1.2.0", + "version": "1.2.1", "from": "yosay@>=1.0.0 <2.0.0", - "resolved": "https://registry.npmjs.org/yosay/-/yosay-1.2.0.tgz" + "resolved": "https://registry.npmjs.org/yosay/-/yosay-1.2.1.tgz" } } } diff --git a/packages/slate-cli/package.json b/packages/slate-cli/package.json index 05d589fa6..7a1b548ba 100644 --- a/packages/slate-cli/package.json +++ b/packages/slate-cli/package.json @@ -22,22 +22,19 @@ "generate-section": "yo --no-insight --no-update-notifier ./generators/new-section/section.js" }, "dependencies": { + "@shopify/themekit": "0.4.3", "Slate": "git+ssh://git@github.com/shopify/slate.git#e1ab032b596ddfb5e7722efb6a9792eb1bce5adf", - "bin-wrapper": "3.0.2", - "bluebird": "3.4.1", - "feedparser": "1.1.4", "find-root": "1.0.0", "global-npm": "0.3.0", - "lodash": "4.13.1", + "lodash": "4.16.4", "nopt": "3.0.6", "open": "0.0.5", - "request": "2.74.0", - "yeoman-generator": "0.23.3", - "yo": "1.8.4" + "yeoman-generator": "0.24.1", + "yo": "1.8.5" }, "devDependencies": { - "eslint": "3.2.2", - "eslint-plugin-node": "2.0.0", - "eslint-plugin-shopify": "13.0.0" + "eslint": "3.3.1", + "eslint-plugin-node": "2.1.2", + "eslint-plugin-shopify": "14.0.2" } }