From 2eba52f35ad2748c159d02bd52b46180f15e922e Mon Sep 17 00:00:00 2001 From: Brian Date: Mon, 26 Jun 2017 20:01:29 -0400 Subject: [PATCH 01/11] Support for eval $() wrapping.. --- README.md | 7 +++++++ bin/alks-developer-configure | 2 +- bin/alks-iam-deleterole | 4 +--- lib/developer.js | 4 ++-- lib/utils.js | 7 ++++++- 5 files changed, 17 insertions(+), 7 deletions(-) diff --git a/README.md b/README.md index 0dd62247..4b462a1e 100644 --- a/README.md +++ b/README.md @@ -84,6 +84,10 @@ docker run -it -e PLATFORM=windows -v %USERPROFILE%:/root coxauto/alks-cli sessi `alks developer configure` - Configures ALKS +### `developer favorites` + +`alks developer favorites` - Configure which accounts are favorites + ### `developer switch` `alks developer switch` - Switch the active ALKS account/role @@ -128,6 +132,7 @@ Arguments: * `-N` Forces a new session to be generated * `-d` Uses your default account from `alks developer configure` * `-f` If output is set to creds, force overwriting of AWS credentials if they already exist +* `-F` Filters favorite accounts Output values: @@ -149,6 +154,7 @@ Arguments: * `-N` Forces a new session to be generated * `-d` Uses your default account from `alks developer configure` * `-p [password]` Your password +* `-F` Filters favorite accounts ### `sessions list` @@ -170,6 +176,7 @@ Arguments: * `-n [roleName]` The name of the role, be sure to wrap in quotes, alphanumeric including: `@+=._-` * `-t [roleType]` The role type, to see available roles: `alks iam roletypes`, be sure to wrap in quotes * `-d`: Include default policies, defaults to false +* `-F` Filters favorite accounts Outputs the created role's ARN. diff --git a/bin/alks-developer-configure b/bin/alks-developer-configure index 6a4568b4..69e1d190 100755 --- a/bin/alks-developer-configure +++ b/bin/alks-developer-configure @@ -22,7 +22,7 @@ program var logger = 'dev-config'; function getPrompt(field, data, text, validator, callback){ - inquirer.prompt([{ + utils.getStdErrPrompt()([{ type: 'input', name: field, message: text, diff --git a/bin/alks-iam-deleterole b/bin/alks-iam-deleterole index 0230e98c..4fc67b39 100755 --- a/bin/alks-iam-deleterole +++ b/bin/alks-iam-deleterole @@ -21,13 +21,11 @@ program .option('-n, --rolename [rolename]', 'the name of the role to delete') .option('-a, --account [alksAccount]', 'alks account to use') .option('-r, --role [alksRole]', 'alks role to use') - .option('-F, --favorites', 'filters favorite accounts') .option('-v, --verbose', 'be verbose') .parse(process.argv); var roleName = program.rolename, alksAccount = program.account, - filterFaves = program.favorites || false, alksRole = program.role; utils.log(program, logger, 'validating role name: ' + roleName); @@ -35,7 +33,7 @@ if(_.isEmpty(roleName)){ utils.errorAndExit('The role name must be provided.'); } -Iam.getIAMKey(program, logger, alksAccount, alksRole, false, filterFaves, function(err, key, developer, password){ +Iam.getIAMKey(program, logger, alksAccount, alksRole, false, false, function(err, key, developer, password){ if(err){ return utils.errorAndExit(err); } diff --git a/lib/developer.js b/lib/developer.js index 699e2635..c16728ea 100644 --- a/lib/developer.js +++ b/lib/developer.js @@ -141,7 +141,7 @@ exports.removePassword = function(){ exports.getPasswordFromPrompt = function (callback, text, currentPassword){ utils.log(null, logger, 'getting password from prompt'); - inquirer.prompt([{ + utils.getStdErrPrompt()([{ type: 'password', name: 'password', message: text ? text : 'Password', @@ -353,7 +353,7 @@ exports.getALKSAccount = function(program, options, callback){ promptData['default'] = developer.lastAcctUsed; } - inquirer.prompt([ promptData ]).then(function(answers){ + utils.getStdErrPrompt()([ promptData ]).then(function(answers){ var acctStr = answers.alksAccount, data = acctStr.split(exports.getAccountDelim()), alksAccount = data[0], diff --git a/lib/utils.js b/lib/utils.js index 73aaefeb..ebe93d18 100755 --- a/lib/utils.js +++ b/lib/utils.js @@ -12,7 +12,8 @@ var _ = require('underscore'), throbber = require('cli-color/throbber'), npm = require('npm-registry-client'), semVer = require('semver'), - chmod = require('chmod'); + chmod = require('chmod'), + inquirer = require('inquirer'); var exports = module.exports = {}; @@ -217,3 +218,7 @@ exports.tryToExtractRole = function(account){ exports.getUA = function(){ return 'alks-cli'; } + +exports.getStdErrPrompt = function(){ + return inquirer.createPromptModule({ output: process.stderr }); +} \ No newline at end of file From cd6ce67e393d8a427b7d5de0b97ee458dcf51fbd Mon Sep 17 00:00:00 2001 From: Brian Date: Fri, 18 Aug 2017 11:21:26 -0400 Subject: [PATCH 02/11] Not used. --- lib/utils.js | 13 ------------- 1 file changed, 13 deletions(-) diff --git a/lib/utils.js b/lib/utils.js index ebe93d18..e2587fb8 100755 --- a/lib/utils.js +++ b/lib/utils.js @@ -9,7 +9,6 @@ var _ = require('underscore'), path = require('path'), os = require('os'), fs = require('fs'), - throbber = require('cli-color/throbber'), npm = require('npm-registry-client'), semVer = require('semver'), chmod = require('chmod'), @@ -20,18 +19,6 @@ var exports = module.exports = {}; var programCacher = null, accountRegex = /([0-9]*)(\/)(ALKS)([a-zA-Z]*)([- ]*)([a-zA-Z0-9_-]*)/g; -throbber = throbber(function(str){ - process.stdout.write(str); -}, 200); - -exports.startThrobber = function(program){ - if(process.stdout.isTTY) throbber.start(); -}; - -exports.stopThrobber = function(program){ - if(process.stdout.isTTY) throbber.stop(); -}; - exports.errorAndExit = function(errorMsg, errorObj, requestData){ console.error(clc.red(errorMsg)); if(errorObj){ From c390f5467d9e1de0219249ee23090f506610dc00 Mon Sep 17 00:00:00 2001 From: Brian Date: Fri, 18 Aug 2017 11:22:14 -0400 Subject: [PATCH 03/11] Updates ALKS API client --- npm-shrinkwrap.json | 558 ++++++++++++++++++++++++++++++++++++++------ package.json | 2 +- 2 files changed, 488 insertions(+), 72 deletions(-) diff --git a/npm-shrinkwrap.json b/npm-shrinkwrap.json index 58221ccd..053a35ef 100644 --- a/npm-shrinkwrap.json +++ b/npm-shrinkwrap.json @@ -2,10 +2,16 @@ "name": "alks", "version": "2.11.1", "lockfileVersion": 1, + "requires": true, "dependencies": { "alks-node": { "version": "https://registry.npmjs.org/alks-node/-/alks-node-0.5.2.tgz", - "integrity": "sha1-HBdJibpu2neZGrhn4qkqsexYqOw=" + "integrity": "sha1-HBdJibpu2neZGrhn4qkqsexYqOw=", + "requires": { + "moment": "http://registry.npmjs.org/moment/-/moment-2.17.1.tgz", + "request": "http://registry.npmjs.org/request/-/request-2.79.0.tgz", + "underscore": "https://registry.npmjs.org/underscore/-/underscore-1.8.3.tgz" + } }, "ansi-escapes": { "version": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-1.4.0.tgz", @@ -27,7 +33,11 @@ "are-we-there-yet": { "version": "https://registry.npmjs.org/are-we-there-yet/-/are-we-there-yet-1.1.2.tgz", "integrity": "sha1-gORw6VoIR5T+GJkmLFZnxuiN4bM=", - "optional": true + "optional": true, + "requires": { + "delegates": "https://registry.npmjs.org/delegates/-/delegates-1.0.0.tgz", + "readable-stream": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.0.6.tgz" + } }, "asn1": { "version": "https://registry.npmjs.org/asn1/-/asn1-0.2.3.tgz", @@ -45,7 +55,10 @@ }, "async": { "version": "http://registry.npmjs.org/async/-/async-2.1.4.tgz", - "integrity": "sha1-LSFgx3iAMuTdbL4lAvH5osj2zeQ=" + "integrity": "sha1-LSFgx3iAMuTdbL4lAvH5osj2zeQ=", + "requires": { + "lodash": "http://registry.npmjs.org/lodash/-/lodash-4.17.2.tgz" + } }, "asynckit": { "version": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", @@ -62,11 +75,17 @@ "bcrypt-pbkdf": { "version": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.0.tgz", "integrity": "sha1-PKdrhSQccXC/fZcD57mqdGMAQNQ=", - "optional": true + "optional": true, + "requires": { + "tweetnacl": "http://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.4.tgz" + } }, "boom": { "version": "https://registry.npmjs.org/boom/-/boom-2.10.1.tgz", - "integrity": "sha1-OciRjO/1eZ+D+UkqhI9iWt0Mdm8=" + "integrity": "sha1-OciRjO/1eZ+D+UkqhI9iWt0Mdm8=", + "requires": { + "hoek": "https://registry.npmjs.org/hoek/-/hoek-2.16.3.tgz" + } }, "builtin-modules": { "version": "https://registry.npmjs.org/builtin-modules/-/builtin-modules-1.1.1.tgz", @@ -80,27 +99,59 @@ "version": "3.5.0", "resolved": "https://registry.npmjs.org/chai/-/chai-3.5.0.tgz", "integrity": "sha1-TQJjewZ/6Vi9v906QOxW/vc3Mkc=", - "dev": true + "dev": true, + "requires": { + "assertion-error": "1.0.2", + "deep-eql": "0.1.3", + "type-detect": "1.0.0" + } }, "chalk": { "version": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", - "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=" + "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", + "requires": { + "ansi-styles": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", + "escape-string-regexp": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "has-ansi": "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz", + "strip-ansi": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", + "supports-color": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz" + } }, "chmod": { "version": "https://registry.npmjs.org/chmod/-/chmod-0.2.1.tgz", - "integrity": "sha1-3uccQg/AC/Uj1XKxSSL1XZGfnQo=" + "integrity": "sha1-3uccQg/AC/Uj1XKxSSL1XZGfnQo=", + "requires": { + "deep-extend": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.2.11.tgz", + "stat-mode": "https://registry.npmjs.org/stat-mode/-/stat-mode-0.1.0.tgz" + } }, "cli-color": { "version": "https://registry.npmjs.org/cli-color/-/cli-color-1.1.0.tgz", - "integrity": "sha1-3hiM3Ekp2DtnrqBBEPvtQP2/Z3U=" + "integrity": "sha1-3hiM3Ekp2DtnrqBBEPvtQP2/Z3U=", + "requires": { + "ansi-regex": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.0.0.tgz", + "d": "https://registry.npmjs.org/d/-/d-0.1.1.tgz", + "es5-ext": "https://registry.npmjs.org/es5-ext/-/es5-ext-0.10.12.tgz", + "es6-iterator": "https://registry.npmjs.org/es6-iterator/-/es6-iterator-2.0.0.tgz", + "memoizee": "https://registry.npmjs.org/memoizee/-/memoizee-0.3.10.tgz", + "timers-ext": "https://registry.npmjs.org/timers-ext/-/timers-ext-0.1.0.tgz" + } }, "cli-cursor": { "version": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-1.0.2.tgz", - "integrity": "sha1-ZNo/fValRBLll5S9Ytw1KV6PKYc=" + "integrity": "sha1-ZNo/fValRBLll5S9Ytw1KV6PKYc=", + "requires": { + "restore-cursor": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-1.0.1.tgz" + } }, "cli-table2": { "version": "https://registry.npmjs.org/cli-table2/-/cli-table2-0.2.0.tgz", "integrity": "sha1-LR738hig54biFFQFYtS9F3/jLZc=", + "requires": { + "colors": "https://registry.npmjs.org/colors/-/colors-1.1.2.tgz", + "lodash": "https://registry.npmjs.org/lodash/-/lodash-3.10.1.tgz", + "string-width": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz" + }, "dependencies": { "lodash": { "version": "https://registry.npmjs.org/lodash/-/lodash-3.10.1.tgz", @@ -115,10 +166,31 @@ "clortho": { "version": "https://github.com/Cox-Automotive/clortho/archive/1.2.3.tar.gz", "integrity": "sha1-cXwkbOvGAfJPAHg+K5R7SghlCjI=", + "requires": { + "inquirer": "https://registry.npmjs.org/inquirer/-/inquirer-0.11.4.tgz", + "js-string-escape": "https://registry.npmjs.org/js-string-escape/-/js-string-escape-1.0.1.tgz", + "keychain": "https://registry.npmjs.org/keychain/-/keychain-1.0.0.tgz", + "which": "http://registry.npmjs.org/which/-/which-1.2.12.tgz" + }, "dependencies": { "inquirer": { "version": "https://registry.npmjs.org/inquirer/-/inquirer-0.11.4.tgz", - "integrity": "sha1-geM3ToNhvq/y2XAWIG01nQsy+k0=" + "integrity": "sha1-geM3ToNhvq/y2XAWIG01nQsy+k0=", + "requires": { + "ansi-escapes": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-1.4.0.tgz", + "ansi-regex": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.0.0.tgz", + "chalk": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", + "cli-cursor": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-1.0.2.tgz", + "cli-width": "https://registry.npmjs.org/cli-width/-/cli-width-1.1.1.tgz", + "figures": "https://registry.npmjs.org/figures/-/figures-1.7.0.tgz", + "lodash": "https://registry.npmjs.org/lodash/-/lodash-3.10.1.tgz", + "readline2": "https://registry.npmjs.org/readline2/-/readline2-1.0.1.tgz", + "run-async": "https://registry.npmjs.org/run-async/-/run-async-0.1.0.tgz", + "rx-lite": "https://registry.npmjs.org/rx-lite/-/rx-lite-3.1.2.tgz", + "string-width": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", + "strip-ansi": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", + "through": "https://registry.npmjs.org/through/-/through-2.3.8.tgz" + } }, "lodash": { "version": "https://registry.npmjs.org/lodash/-/lodash-3.10.1.tgz", @@ -137,15 +209,26 @@ }, "combined-stream": { "version": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.5.tgz", - "integrity": "sha1-k4NwpXtKUd6ix3wV1cX9+JUWQAk=" + "integrity": "sha1-k4NwpXtKUd6ix3wV1cX9+JUWQAk=", + "requires": { + "delayed-stream": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz" + } }, "commander": { "version": "https://registry.npmjs.org/commander/-/commander-2.9.0.tgz", - "integrity": "sha1-nJkJQXbhIkDLItbFFGCYQA/g99Q=" + "integrity": "sha1-nJkJQXbhIkDLItbFFGCYQA/g99Q=", + "requires": { + "graceful-readlink": "https://registry.npmjs.org/graceful-readlink/-/graceful-readlink-1.0.1.tgz" + } }, "concat-stream": { "version": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.5.2.tgz", - "integrity": "sha1-cIl4Yk2FavQaWnQd790mHadSwmY=" + "integrity": "sha1-cIl4Yk2FavQaWnQd790mHadSwmY=", + "requires": { + "inherits": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", + "readable-stream": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.0.6.tgz", + "typedarray": "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz" + } }, "console-control-strings": { "version": "https://registry.npmjs.org/console-control-strings/-/console-control-strings-1.1.0.tgz", @@ -157,7 +240,10 @@ }, "cryptiles": { "version": "https://registry.npmjs.org/cryptiles/-/cryptiles-2.0.5.tgz", - "integrity": "sha1-O9/s3GCBR8HGcgL6KR59ylnqo7g=" + "integrity": "sha1-O9/s3GCBR8HGcgL6KR59ylnqo7g=", + "requires": { + "boom": "https://registry.npmjs.org/boom/-/boom-2.10.1.tgz" + } }, "crypto": { "version": "https://registry.npmjs.org/crypto/-/crypto-0.0.3.tgz", @@ -165,11 +251,17 @@ }, "d": { "version": "https://registry.npmjs.org/d/-/d-0.1.1.tgz", - "integrity": "sha1-2hhMU10Y2O57oqoim5FACfrhEwk=" + "integrity": "sha1-2hhMU10Y2O57oqoim5FACfrhEwk=", + "requires": { + "es5-ext": "https://registry.npmjs.org/es5-ext/-/es5-ext-0.10.12.tgz" + } }, "dashdash": { "version": "http://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz", "integrity": "sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA=", + "requires": { + "assert-plus": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz" + }, "dependencies": { "assert-plus": { "version": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", @@ -181,13 +273,19 @@ "version": "2.2.0", "resolved": "https://registry.npmjs.org/debug/-/debug-2.2.0.tgz", "integrity": "sha1-+HBX6ZWxofauaklgZkE3vFbwOdo=", - "dev": true + "dev": true, + "requires": { + "ms": "0.7.1" + } }, "deep-eql": { "version": "0.1.3", "resolved": "https://registry.npmjs.org/deep-eql/-/deep-eql-0.1.3.tgz", "integrity": "sha1-71WKyrjeJSBs1xOQbXTlaTDrafI=", "dev": true, + "requires": { + "type-detect": "0.1.1" + }, "dependencies": { "type-detect": { "version": "0.1.1", @@ -219,31 +317,62 @@ "ecc-jsbn": { "version": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.1.tgz", "integrity": "sha1-D8c6ntXw1Tw4GTOYUj735UN3dQU=", - "optional": true + "optional": true, + "requires": { + "jsbn": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.0.tgz" + } }, "es5-ext": { "version": "https://registry.npmjs.org/es5-ext/-/es5-ext-0.10.12.tgz", - "integrity": "sha1-qoRkHU23a2Krul5F/YBey6sUAEc=" + "integrity": "sha1-qoRkHU23a2Krul5F/YBey6sUAEc=", + "requires": { + "es6-iterator": "https://registry.npmjs.org/es6-iterator/-/es6-iterator-2.0.0.tgz", + "es6-symbol": "https://registry.npmjs.org/es6-symbol/-/es6-symbol-3.1.0.tgz" + } }, "es6-iterator": { "version": "https://registry.npmjs.org/es6-iterator/-/es6-iterator-2.0.0.tgz", - "integrity": "sha1-vZaFZ9YWNeM8C4BydhPJy0sJa6w=" + "integrity": "sha1-vZaFZ9YWNeM8C4BydhPJy0sJa6w=", + "requires": { + "d": "https://registry.npmjs.org/d/-/d-0.1.1.tgz", + "es5-ext": "https://registry.npmjs.org/es5-ext/-/es5-ext-0.10.12.tgz", + "es6-symbol": "https://registry.npmjs.org/es6-symbol/-/es6-symbol-3.1.0.tgz" + } }, "es6-symbol": { "version": "https://registry.npmjs.org/es6-symbol/-/es6-symbol-3.1.0.tgz", - "integrity": "sha1-lEgcZV56fK2C66gy2X1UM0ltf/o=" + "integrity": "sha1-lEgcZV56fK2C66gy2X1UM0ltf/o=", + "requires": { + "d": "https://registry.npmjs.org/d/-/d-0.1.1.tgz", + "es5-ext": "https://registry.npmjs.org/es5-ext/-/es5-ext-0.10.12.tgz" + } }, "es6-weak-map": { "version": "https://registry.npmjs.org/es6-weak-map/-/es6-weak-map-0.1.4.tgz", "integrity": "sha1-cGzvnpmqI2undmwjnIueKG6n0ig=", + "requires": { + "d": "https://registry.npmjs.org/d/-/d-0.1.1.tgz", + "es5-ext": "https://registry.npmjs.org/es5-ext/-/es5-ext-0.10.12.tgz", + "es6-iterator": "https://registry.npmjs.org/es6-iterator/-/es6-iterator-0.1.3.tgz", + "es6-symbol": "https://registry.npmjs.org/es6-symbol/-/es6-symbol-2.0.1.tgz" + }, "dependencies": { "es6-iterator": { "version": "https://registry.npmjs.org/es6-iterator/-/es6-iterator-0.1.3.tgz", - "integrity": "sha1-1vWLjE/EE8JJtLqhl2j45NfIlE4=" + "integrity": "sha1-1vWLjE/EE8JJtLqhl2j45NfIlE4=", + "requires": { + "d": "https://registry.npmjs.org/d/-/d-0.1.1.tgz", + "es5-ext": "https://registry.npmjs.org/es5-ext/-/es5-ext-0.10.12.tgz", + "es6-symbol": "https://registry.npmjs.org/es6-symbol/-/es6-symbol-2.0.1.tgz" + } }, "es6-symbol": { "version": "https://registry.npmjs.org/es6-symbol/-/es6-symbol-2.0.1.tgz", - "integrity": "sha1-dhtcZ8/U8dGK+yNPaR1nhoLLO/M=" + "integrity": "sha1-dhtcZ8/U8dGK+yNPaR1nhoLLO/M=", + "requires": { + "d": "https://registry.npmjs.org/d/-/d-0.1.1.tgz", + "es5-ext": "https://registry.npmjs.org/es5-ext/-/es5-ext-0.10.12.tgz" + } } } }, @@ -253,7 +382,11 @@ }, "event-emitter": { "version": "https://registry.npmjs.org/event-emitter/-/event-emitter-0.3.4.tgz", - "integrity": "sha1-jWPd+0z+H647MsomXExyAiIIC7U=" + "integrity": "sha1-jWPd+0z+H647MsomXExyAiIIC7U=", + "requires": { + "d": "https://registry.npmjs.org/d/-/d-0.1.1.tgz", + "es5-ext": "https://registry.npmjs.org/es5-ext/-/es5-ext-0.10.12.tgz" + } }, "exit-hook": { "version": "https://registry.npmjs.org/exit-hook/-/exit-hook-1.1.1.tgz", @@ -265,7 +398,12 @@ }, "external-editor": { "version": "http://registry.npmjs.org/external-editor/-/external-editor-1.1.1.tgz", - "integrity": "sha1-Etew24UPf/fnCBuvQAVwAGDEYAs=" + "integrity": "sha1-Etew24UPf/fnCBuvQAVwAGDEYAs=", + "requires": { + "extend": "https://registry.npmjs.org/extend/-/extend-3.0.0.tgz", + "spawn-sync": "https://registry.npmjs.org/spawn-sync/-/spawn-sync-1.0.15.tgz", + "tmp": "http://registry.npmjs.org/tmp/-/tmp-0.0.29.tgz" + } }, "extsprintf": { "version": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.0.2.tgz", @@ -273,7 +411,11 @@ }, "figures": { "version": "https://registry.npmjs.org/figures/-/figures-1.7.0.tgz", - "integrity": "sha1-y+Hjr/zxzUS4DK3+0o3Hk6lwHS4=" + "integrity": "sha1-y+Hjr/zxzUS4DK3+0o3Hk6lwHS4=", + "requires": { + "escape-string-regexp": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "object-assign": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.0.tgz" + } }, "forever-agent": { "version": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz", @@ -281,7 +423,12 @@ }, "form-data": { "version": "http://registry.npmjs.org/form-data/-/form-data-2.1.2.tgz", - "integrity": "sha1-icNTQAi5fq2ky7FX1Y9vXfAl6uQ=" + "integrity": "sha1-icNTQAi5fq2ky7FX1Y9vXfAl6uQ=", + "requires": { + "asynckit": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", + "combined-stream": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.5.tgz", + "mime-types": "http://registry.npmjs.org/mime-types/-/mime-types-2.1.13.tgz" + } }, "fuzzy": { "version": "https://registry.npmjs.org/fuzzy/-/fuzzy-0.1.3.tgz", @@ -291,6 +438,17 @@ "version": "http://registry.npmjs.org/gauge/-/gauge-2.7.2.tgz", "integrity": "sha1-Fc7MMbAtBTRaXWsOFxzbOtIwd3Q=", "optional": true, + "requires": { + "aproba": "https://registry.npmjs.org/aproba/-/aproba-1.0.4.tgz", + "console-control-strings": "https://registry.npmjs.org/console-control-strings/-/console-control-strings-1.1.0.tgz", + "has-unicode": "https://registry.npmjs.org/has-unicode/-/has-unicode-2.0.1.tgz", + "object-assign": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.0.tgz", + "signal-exit": "http://registry.npmjs.org/signal-exit/-/signal-exit-3.0.2.tgz", + "string-width": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", + "strip-ansi": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", + "supports-color": "https://registry.npmjs.org/supports-color/-/supports-color-0.2.0.tgz", + "wide-align": "https://registry.npmjs.org/wide-align/-/wide-align-1.1.0.tgz" + }, "dependencies": { "supports-color": { "version": "https://registry.npmjs.org/supports-color/-/supports-color-0.2.0.tgz", @@ -305,11 +463,17 @@ }, "generate-object-property": { "version": "https://registry.npmjs.org/generate-object-property/-/generate-object-property-1.2.0.tgz", - "integrity": "sha1-nA4cQDCM6AT0eDYYuTf6iPmdUNA=" + "integrity": "sha1-nA4cQDCM6AT0eDYYuTf6iPmdUNA=", + "requires": { + "is-property": "https://registry.npmjs.org/is-property/-/is-property-1.0.2.tgz" + } }, "getpass": { "version": "https://registry.npmjs.org/getpass/-/getpass-0.1.6.tgz", "integrity": "sha1-KD/9n8ElaECHUxHBtg6MQBhxEOY=", + "requires": { + "assert-plus": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz" + }, "dependencies": { "assert-plus": { "version": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", @@ -321,7 +485,11 @@ "version": "3.2.11", "resolved": "https://registry.npmjs.org/glob/-/glob-3.2.11.tgz", "integrity": "sha1-Spc/Y1uRkPcV0QmH1cAP0oFevj0=", - "dev": true + "dev": true, + "requires": { + "inherits": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", + "minimatch": "0.3.0" + } }, "graceful-fs": { "version": "http://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.11.tgz", @@ -340,16 +508,28 @@ "har-validator": { "version": "https://registry.npmjs.org/har-validator/-/har-validator-2.0.6.tgz", "integrity": "sha1-zcvAgYgmWtEZtqWnyKtw7s+10n0=", + "requires": { + "chalk": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", + "commander": "https://registry.npmjs.org/commander/-/commander-2.9.0.tgz", + "is-my-json-valid": "https://registry.npmjs.org/is-my-json-valid/-/is-my-json-valid-2.15.0.tgz", + "pinkie-promise": "https://registry.npmjs.org/pinkie-promise/-/pinkie-promise-2.0.1.tgz" + }, "dependencies": { "commander": { "version": "https://registry.npmjs.org/commander/-/commander-2.9.0.tgz", - "integrity": "sha1-nJkJQXbhIkDLItbFFGCYQA/g99Q=" + "integrity": "sha1-nJkJQXbhIkDLItbFFGCYQA/g99Q=", + "requires": { + "graceful-readlink": "https://registry.npmjs.org/graceful-readlink/-/graceful-readlink-1.0.1.tgz" + } } } }, "has-ansi": { "version": "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz", - "integrity": "sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE=" + "integrity": "sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE=", + "requires": { + "ansi-regex": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.0.0.tgz" + } }, "has-unicode": { "version": "https://registry.npmjs.org/has-unicode/-/has-unicode-2.0.1.tgz", @@ -358,7 +538,13 @@ }, "hawk": { "version": "https://registry.npmjs.org/hawk/-/hawk-3.1.3.tgz", - "integrity": "sha1-B4REvXwWQLD+VA0sm3PVlnjo4cQ=" + "integrity": "sha1-B4REvXwWQLD+VA0sm3PVlnjo4cQ=", + "requires": { + "boom": "https://registry.npmjs.org/boom/-/boom-2.10.1.tgz", + "cryptiles": "https://registry.npmjs.org/cryptiles/-/cryptiles-2.0.5.tgz", + "hoek": "https://registry.npmjs.org/hoek/-/hoek-2.16.3.tgz", + "sntp": "https://registry.npmjs.org/sntp/-/sntp-1.0.9.tgz" + } }, "hoek": { "version": "https://registry.npmjs.org/hoek/-/hoek-2.16.3.tgz", @@ -370,7 +556,12 @@ }, "http-signature": { "version": "https://registry.npmjs.org/http-signature/-/http-signature-1.1.1.tgz", - "integrity": "sha1-33LiZwZs0Kxn+3at+OE0qPvPkb8=" + "integrity": "sha1-33LiZwZs0Kxn+3at+OE0qPvPkb8=", + "requires": { + "assert-plus": "https://registry.npmjs.org/assert-plus/-/assert-plus-0.2.0.tgz", + "jsprim": "https://registry.npmjs.org/jsprim/-/jsprim-1.3.1.tgz", + "sshpk": "https://registry.npmjs.org/sshpk/-/sshpk-1.10.1.tgz" + } }, "inherits": { "version": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", @@ -379,6 +570,22 @@ "inquirer": { "version": "http://registry.npmjs.org/inquirer/-/inquirer-1.2.3.tgz", "integrity": "sha1-TexvMvN+97sLLtPx0aXD9UUHSRg=", + "requires": { + "ansi-escapes": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-1.4.0.tgz", + "chalk": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", + "cli-cursor": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-1.0.2.tgz", + "cli-width": "https://registry.npmjs.org/cli-width/-/cli-width-2.1.0.tgz", + "external-editor": "http://registry.npmjs.org/external-editor/-/external-editor-1.1.1.tgz", + "figures": "https://registry.npmjs.org/figures/-/figures-1.7.0.tgz", + "lodash": "http://registry.npmjs.org/lodash/-/lodash-4.17.2.tgz", + "mute-stream": "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.6.tgz", + "pinkie-promise": "https://registry.npmjs.org/pinkie-promise/-/pinkie-promise-2.0.1.tgz", + "run-async": "http://registry.npmjs.org/run-async/-/run-async-2.3.0.tgz", + "rx": "https://registry.npmjs.org/rx/-/rx-4.1.0.tgz", + "string-width": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", + "strip-ansi": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", + "through": "https://registry.npmjs.org/through/-/through-2.3.8.tgz" + }, "dependencies": { "cli-width": { "version": "https://registry.npmjs.org/cli-width/-/cli-width-2.1.0.tgz", @@ -390,21 +597,36 @@ }, "run-async": { "version": "http://registry.npmjs.org/run-async/-/run-async-2.3.0.tgz", - "integrity": "sha1-A3GrSuC91yDUFm19/aZP96RFpsA=" + "integrity": "sha1-A3GrSuC91yDUFm19/aZP96RFpsA=", + "requires": { + "is-promise": "https://registry.npmjs.org/is-promise/-/is-promise-2.1.0.tgz" + } } } }, "is-builtin-module": { "version": "https://registry.npmjs.org/is-builtin-module/-/is-builtin-module-1.0.0.tgz", - "integrity": "sha1-VAVy0096wxGfj3bDDLwbHgN6/74=" + "integrity": "sha1-VAVy0096wxGfj3bDDLwbHgN6/74=", + "requires": { + "builtin-modules": "https://registry.npmjs.org/builtin-modules/-/builtin-modules-1.1.1.tgz" + } }, "is-fullwidth-code-point": { "version": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz", - "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=" + "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=", + "requires": { + "number-is-nan": "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz" + } }, "is-my-json-valid": { "version": "https://registry.npmjs.org/is-my-json-valid/-/is-my-json-valid-2.15.0.tgz", - "integrity": "sha1-k27do8o8IR/ZjzstPgjaQ/eykVs=" + "integrity": "sha1-k27do8o8IR/ZjzstPgjaQ/eykVs=", + "requires": { + "generate-function": "https://registry.npmjs.org/generate-function/-/generate-function-2.0.0.tgz", + "generate-object-property": "https://registry.npmjs.org/generate-object-property/-/generate-object-property-1.2.0.tgz", + "jsonpointer": "https://registry.npmjs.org/jsonpointer/-/jsonpointer-4.0.0.tgz", + "xtend": "https://registry.npmjs.org/xtend/-/xtend-4.0.1.tgz" + } }, "is-promise": { "version": "https://registry.npmjs.org/is-promise/-/is-promise-2.1.0.tgz", @@ -435,6 +657,10 @@ "resolved": "https://registry.npmjs.org/jade/-/jade-0.26.3.tgz", "integrity": "sha1-jxDXl32NefL2/4YqgbBRPMslaGw=", "dev": true, + "requires": { + "commander": "0.6.1", + "mkdirp": "0.3.0" + }, "dependencies": { "commander": { "version": "0.6.1", @@ -453,7 +679,10 @@ "jodid25519": { "version": "https://registry.npmjs.org/jodid25519/-/jodid25519-1.0.2.tgz", "integrity": "sha1-BtSRIlUJNBlHfUJWM2BuDpB4KWc=", - "optional": true + "optional": true, + "requires": { + "jsbn": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.0.tgz" + } }, "js-string-escape": { "version": "https://registry.npmjs.org/js-string-escape/-/js-string-escape-1.0.1.tgz", @@ -478,7 +707,12 @@ }, "jsprim": { "version": "https://registry.npmjs.org/jsprim/-/jsprim-1.3.1.tgz", - "integrity": "sha1-KnJW9wQSop7jZwqspiWZTE3P8lI=" + "integrity": "sha1-KnJW9wQSop7jZwqspiWZTE3P8lI=", + "requires": { + "extsprintf": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.0.2.tgz", + "json-schema": "https://registry.npmjs.org/json-schema/-/json-schema-0.2.3.tgz", + "verror": "https://registry.npmjs.org/verror/-/verror-1.3.6.tgz" + } }, "keychain": { "version": "https://registry.npmjs.org/keychain/-/keychain-1.0.0.tgz", @@ -500,11 +734,23 @@ }, "lru-queue": { "version": "https://registry.npmjs.org/lru-queue/-/lru-queue-0.1.0.tgz", - "integrity": "sha1-Jzi9nw089PhEkMVzbEhpmsYyzaM=" + "integrity": "sha1-Jzi9nw089PhEkMVzbEhpmsYyzaM=", + "requires": { + "es5-ext": "https://registry.npmjs.org/es5-ext/-/es5-ext-0.10.12.tgz" + } }, "memoizee": { "version": "https://registry.npmjs.org/memoizee/-/memoizee-0.3.10.tgz", - "integrity": "sha1-TsoNiu057J0Bf0xcLy9kMvQuXI8=" + "integrity": "sha1-TsoNiu057J0Bf0xcLy9kMvQuXI8=", + "requires": { + "d": "https://registry.npmjs.org/d/-/d-0.1.1.tgz", + "es5-ext": "https://registry.npmjs.org/es5-ext/-/es5-ext-0.10.12.tgz", + "es6-weak-map": "https://registry.npmjs.org/es6-weak-map/-/es6-weak-map-0.1.4.tgz", + "event-emitter": "https://registry.npmjs.org/event-emitter/-/event-emitter-0.3.4.tgz", + "lru-queue": "https://registry.npmjs.org/lru-queue/-/lru-queue-0.1.0.tgz", + "next-tick": "https://registry.npmjs.org/next-tick/-/next-tick-0.2.2.tgz", + "timers-ext": "https://registry.npmjs.org/timers-ext/-/timers-ext-0.1.0.tgz" + } }, "mime-db": { "version": "http://registry.npmjs.org/mime-db/-/mime-db-1.25.0.tgz", @@ -512,13 +758,20 @@ }, "mime-types": { "version": "http://registry.npmjs.org/mime-types/-/mime-types-2.1.13.tgz", - "integrity": "sha1-4HqqnGxrmnyjASxpADrSWjnpKog=" + "integrity": "sha1-4HqqnGxrmnyjASxpADrSWjnpKog=", + "requires": { + "mime-db": "http://registry.npmjs.org/mime-db/-/mime-db-1.25.0.tgz" + } }, "minimatch": { "version": "0.3.0", "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-0.3.0.tgz", "integrity": "sha1-J12O2qxPG7MyZHIInnlJyDlGmd0=", - "dev": true + "dev": true, + "requires": { + "lru-cache": "2.7.3", + "sigmund": "1.0.1" + } }, "minimist": { "version": "0.0.8", @@ -530,13 +783,28 @@ "version": "0.5.1", "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz", "integrity": "sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM=", - "dev": true + "dev": true, + "requires": { + "minimist": "0.0.8" + } }, "mocha": { "version": "2.5.3", "resolved": "https://registry.npmjs.org/mocha/-/mocha-2.5.3.tgz", "integrity": "sha1-FhvlvetJZ3HrmzV0UFC2IrWu/Fg=", "dev": true, + "requires": { + "commander": "2.3.0", + "debug": "2.2.0", + "diff": "1.4.0", + "escape-string-regexp": "1.0.2", + "glob": "3.2.11", + "growl": "1.9.2", + "jade": "0.26.3", + "mkdirp": "0.5.1", + "supports-color": "1.2.0", + "to-iso-string": "0.0.2" + }, "dependencies": { "commander": { "version": "2.3.0", @@ -582,24 +850,55 @@ }, "node-netrc": { "version": "https://registry.npmjs.org/node-netrc/-/node-netrc-0.1.0.tgz", - "integrity": "sha1-bRqwiwUqmO8DlVDtqWVWKnqOaTg=" + "integrity": "sha1-bRqwiwUqmO8DlVDtqWVWKnqOaTg=", + "requires": { + "netrc": "https://registry.npmjs.org/netrc/-/netrc-0.1.4.tgz" + } }, "normalize-package-data": { "version": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.3.5.tgz", - "integrity": "sha1-jZJPFClg4Xd+f/4XBUNjHMfLAt8=" + "integrity": "sha1-jZJPFClg4Xd+f/4XBUNjHMfLAt8=", + "requires": { + "hosted-git-info": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.1.5.tgz", + "is-builtin-module": "https://registry.npmjs.org/is-builtin-module/-/is-builtin-module-1.0.0.tgz", + "semver": "https://registry.npmjs.org/semver/-/semver-5.3.0.tgz", + "validate-npm-package-license": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.1.tgz" + } }, "npm-package-arg": { "version": "https://registry.npmjs.org/npm-package-arg/-/npm-package-arg-4.2.0.tgz", - "integrity": "sha1-gJvGHKv1S9X/lPYWXIm6juiMEVw=" + "integrity": "sha1-gJvGHKv1S9X/lPYWXIm6juiMEVw=", + "requires": { + "hosted-git-info": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.1.5.tgz", + "semver": "https://registry.npmjs.org/semver/-/semver-5.3.0.tgz" + } }, "npm-registry-client": { "version": "http://registry.npmjs.org/npm-registry-client/-/npm-registry-client-7.4.1.tgz", - "integrity": "sha1-6eXeFbtJj+Sf/4f3z5rs4h4HHkI=" + "integrity": "sha1-6eXeFbtJj+Sf/4f3z5rs4h4HHkI=", + "requires": { + "concat-stream": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.5.2.tgz", + "graceful-fs": "http://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.11.tgz", + "normalize-package-data": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.3.5.tgz", + "npm-package-arg": "https://registry.npmjs.org/npm-package-arg/-/npm-package-arg-4.2.0.tgz", + "npmlog": "http://registry.npmjs.org/npmlog/-/npmlog-4.0.1.tgz", + "once": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "request": "http://registry.npmjs.org/request/-/request-2.79.0.tgz", + "retry": "https://registry.npmjs.org/retry/-/retry-0.10.0.tgz", + "semver": "https://registry.npmjs.org/semver/-/semver-5.3.0.tgz", + "slide": "https://registry.npmjs.org/slide/-/slide-1.1.6.tgz" + } }, "npmlog": { "version": "http://registry.npmjs.org/npmlog/-/npmlog-4.0.1.tgz", "integrity": "sha1-0U9QO0zXlxA3VVMAS6luZmL7wLg=", - "optional": true + "optional": true, + "requires": { + "are-we-there-yet": "https://registry.npmjs.org/are-we-there-yet/-/are-we-there-yet-1.1.2.tgz", + "console-control-strings": "https://registry.npmjs.org/console-control-strings/-/console-control-strings-1.1.0.tgz", + "gauge": "http://registry.npmjs.org/gauge/-/gauge-2.7.2.tgz", + "set-blocking": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz" + } }, "number-is-nan": { "version": "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz", @@ -615,7 +914,10 @@ }, "once": { "version": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", - "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=" + "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", + "requires": { + "wrappy": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz" + } }, "onetime": { "version": "https://registry.npmjs.org/onetime/-/onetime-1.1.0.tgz", @@ -623,7 +925,11 @@ }, "opn": { "version": "https://registry.npmjs.org/opn/-/opn-4.0.2.tgz", - "integrity": "sha1-erwi5kTf9jsKltWrfyeQwPAavJU=" + "integrity": "sha1-erwi5kTf9jsKltWrfyeQwPAavJU=", + "requires": { + "object-assign": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.0.tgz", + "pinkie-promise": "https://registry.npmjs.org/pinkie-promise/-/pinkie-promise-2.0.1.tgz" + } }, "os-shim": { "version": "https://registry.npmjs.org/os-shim/-/os-shim-0.1.3.tgz", @@ -639,7 +945,10 @@ }, "pinkie-promise": { "version": "https://registry.npmjs.org/pinkie-promise/-/pinkie-promise-2.0.1.tgz", - "integrity": "sha1-ITXW36ejWMBprJsXh3YogihFD/o=" + "integrity": "sha1-ITXW36ejWMBprJsXh3YogihFD/o=", + "requires": { + "pinkie": "https://registry.npmjs.org/pinkie/-/pinkie-2.0.4.tgz" + } }, "process-nextick-args": { "version": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-1.0.7.tgz", @@ -647,7 +956,10 @@ }, "prop-ini": { "version": "https://registry.npmjs.org/prop-ini/-/prop-ini-0.0.2.tgz", - "integrity": "sha1-ZzOny1JCrKsr5C5gdYPYEksXKls=" + "integrity": "sha1-ZzOny1JCrKsr5C5gdYPYEksXKls=", + "requires": { + "extend": "https://registry.npmjs.org/extend/-/extend-3.0.0.tgz" + } }, "punycode": { "version": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz", @@ -659,19 +971,58 @@ }, "readable-stream": { "version": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.0.6.tgz", - "integrity": "sha1-j5A0HmilPMySh4jaz80Rs265t44=" + "integrity": "sha1-j5A0HmilPMySh4jaz80Rs265t44=", + "requires": { + "core-util-is": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", + "inherits": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", + "isarray": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "process-nextick-args": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-1.0.7.tgz", + "string_decoder": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz", + "util-deprecate": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz" + } }, "readline2": { "version": "https://registry.npmjs.org/readline2/-/readline2-1.0.1.tgz", - "integrity": "sha1-QQWWCP/BVHV7cV2ZidGZ/783LjU=" + "integrity": "sha1-QQWWCP/BVHV7cV2ZidGZ/783LjU=", + "requires": { + "code-point-at": "http://registry.npmjs.org/code-point-at/-/code-point-at-1.1.0.tgz", + "is-fullwidth-code-point": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz", + "mute-stream": "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.5.tgz" + } }, "request": { "version": "http://registry.npmjs.org/request/-/request-2.79.0.tgz", - "integrity": "sha1-Tf5b9r6LjNw3/Pk+BLZVd3InEN4=" + "integrity": "sha1-Tf5b9r6LjNw3/Pk+BLZVd3InEN4=", + "requires": { + "aws-sign2": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.6.0.tgz", + "aws4": "https://registry.npmjs.org/aws4/-/aws4-1.5.0.tgz", + "caseless": "https://registry.npmjs.org/caseless/-/caseless-0.11.0.tgz", + "combined-stream": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.5.tgz", + "extend": "https://registry.npmjs.org/extend/-/extend-3.0.0.tgz", + "forever-agent": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz", + "form-data": "http://registry.npmjs.org/form-data/-/form-data-2.1.2.tgz", + "har-validator": "https://registry.npmjs.org/har-validator/-/har-validator-2.0.6.tgz", + "hawk": "https://registry.npmjs.org/hawk/-/hawk-3.1.3.tgz", + "http-signature": "https://registry.npmjs.org/http-signature/-/http-signature-1.1.1.tgz", + "is-typedarray": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", + "isstream": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz", + "json-stringify-safe": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz", + "mime-types": "http://registry.npmjs.org/mime-types/-/mime-types-2.1.13.tgz", + "oauth-sign": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.8.2.tgz", + "qs": "https://registry.npmjs.org/qs/-/qs-6.3.0.tgz", + "stringstream": "https://registry.npmjs.org/stringstream/-/stringstream-0.0.5.tgz", + "tough-cookie": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.3.2.tgz", + "tunnel-agent": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.4.3.tgz", + "uuid": "http://registry.npmjs.org/uuid/-/uuid-3.0.1.tgz" + } }, "restore-cursor": { "version": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-1.0.1.tgz", - "integrity": "sha1-NGYfRohjJ/7SmRR5FSJS35LapUE=" + "integrity": "sha1-NGYfRohjJ/7SmRR5FSJS35LapUE=", + "requires": { + "exit-hook": "https://registry.npmjs.org/exit-hook/-/exit-hook-1.1.1.tgz", + "onetime": "https://registry.npmjs.org/onetime/-/onetime-1.1.0.tgz" + } }, "retry": { "version": "https://registry.npmjs.org/retry/-/retry-0.10.0.tgz", @@ -679,7 +1030,10 @@ }, "run-async": { "version": "https://registry.npmjs.org/run-async/-/run-async-0.1.0.tgz", - "integrity": "sha1-yK1KXhEGYeQCp9IbUw4AnyX444k=" + "integrity": "sha1-yK1KXhEGYeQCp9IbUw4AnyX444k=", + "requires": { + "once": "https://registry.npmjs.org/once/-/once-1.4.0.tgz" + } }, "rx": { "version": "https://registry.npmjs.org/rx/-/rx-4.1.0.tgz", @@ -715,15 +1069,25 @@ }, "sntp": { "version": "https://registry.npmjs.org/sntp/-/sntp-1.0.9.tgz", - "integrity": "sha1-ZUEYTMkK7qbG57NeJlkIJEPGYZg=" + "integrity": "sha1-ZUEYTMkK7qbG57NeJlkIJEPGYZg=", + "requires": { + "hoek": "https://registry.npmjs.org/hoek/-/hoek-2.16.3.tgz" + } }, "spawn-sync": { "version": "https://registry.npmjs.org/spawn-sync/-/spawn-sync-1.0.15.tgz", - "integrity": "sha1-sAeZVX63+wyDdsKdROih6mfldHY=" + "integrity": "sha1-sAeZVX63+wyDdsKdROih6mfldHY=", + "requires": { + "concat-stream": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.5.2.tgz", + "os-shim": "https://registry.npmjs.org/os-shim/-/os-shim-0.1.3.tgz" + } }, "spdx-correct": { "version": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-1.0.2.tgz", - "integrity": "sha1-SzBz2TP/UfORLwOsVRlJikFQ20A=" + "integrity": "sha1-SzBz2TP/UfORLwOsVRlJikFQ20A=", + "requires": { + "spdx-license-ids": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-1.2.2.tgz" + } }, "spdx-expression-parse": { "version": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-1.0.4.tgz", @@ -740,6 +1104,17 @@ "sshpk": { "version": "https://registry.npmjs.org/sshpk/-/sshpk-1.10.1.tgz", "integrity": "sha1-MOGl0ykkSXShr2FREznVla9mOLA=", + "requires": { + "asn1": "https://registry.npmjs.org/asn1/-/asn1-0.2.3.tgz", + "assert-plus": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", + "bcrypt-pbkdf": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.0.tgz", + "dashdash": "http://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz", + "ecc-jsbn": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.1.tgz", + "getpass": "https://registry.npmjs.org/getpass/-/getpass-0.1.6.tgz", + "jodid25519": "https://registry.npmjs.org/jodid25519/-/jodid25519-1.0.2.tgz", + "jsbn": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.0.tgz", + "tweetnacl": "http://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.4.tgz" + }, "dependencies": { "assert-plus": { "version": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", @@ -757,7 +1132,12 @@ }, "string-width": { "version": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", - "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=" + "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=", + "requires": { + "code-point-at": "http://registry.npmjs.org/code-point-at/-/code-point-at-1.1.0.tgz", + "is-fullwidth-code-point": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz", + "strip-ansi": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz" + } }, "stringstream": { "version": "https://registry.npmjs.org/stringstream/-/stringstream-0.0.5.tgz", @@ -765,7 +1145,10 @@ }, "strip-ansi": { "version": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", - "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=" + "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", + "requires": { + "ansi-regex": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.0.0.tgz" + } }, "supports-color": { "version": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", @@ -777,11 +1160,18 @@ }, "timers-ext": { "version": "https://registry.npmjs.org/timers-ext/-/timers-ext-0.1.0.tgz", - "integrity": "sha1-ADRaLKkwidElEyIFQ4nSY+J7d+I=" + "integrity": "sha1-ADRaLKkwidElEyIFQ4nSY+J7d+I=", + "requires": { + "es5-ext": "https://registry.npmjs.org/es5-ext/-/es5-ext-0.10.12.tgz", + "next-tick": "https://registry.npmjs.org/next-tick/-/next-tick-0.2.2.tgz" + } }, "tmp": { "version": "http://registry.npmjs.org/tmp/-/tmp-0.0.29.tgz", - "integrity": "sha1-8lEl/w3Z2jzLDC3Tce4SiLuRKMA=" + "integrity": "sha1-8lEl/w3Z2jzLDC3Tce4SiLuRKMA=", + "requires": { + "os-tmpdir": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz" + } }, "to-iso-string": { "version": "0.0.2", @@ -791,7 +1181,10 @@ }, "tough-cookie": { "version": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.3.2.tgz", - "integrity": "sha1-8IH3bkyFcg5sN6X6ztc3FQ2EByo=" + "integrity": "sha1-8IH3bkyFcg5sN6X6ztc3FQ2EByo=", + "requires": { + "punycode": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz" + } }, "tunnel-agent": { "version": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.4.3.tgz", @@ -818,11 +1211,21 @@ }, "underscore.string": { "version": "https://registry.npmjs.org/underscore.string/-/underscore.string-3.3.4.tgz", - "integrity": "sha1-LCo/n4PmR2L9xF5s6sZRQoZCE9s=" + "integrity": "sha1-LCo/n4PmR2L9xF5s6sZRQoZCE9s=", + "requires": { + "sprintf-js": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", + "util-deprecate": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz" + } }, "universal-analytics": { "version": "http://registry.npmjs.org/universal-analytics/-/universal-analytics-0.4.8.tgz", "integrity": "sha1-gOiGJ0Gq9vohAsRR3a8ExrpKLQI=", + "requires": { + "async": "https://registry.npmjs.org/async/-/async-1.2.1.tgz", + "request": "http://registry.npmjs.org/request/-/request-2.79.0.tgz", + "underscore": "https://registry.npmjs.org/underscore/-/underscore-1.8.3.tgz", + "uuid": "http://registry.npmjs.org/uuid/-/uuid-3.0.1.tgz" + }, "dependencies": { "async": { "version": "https://registry.npmjs.org/async/-/async-1.2.1.tgz", @@ -840,20 +1243,33 @@ }, "validate-npm-package-license": { "version": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.1.tgz", - "integrity": "sha1-KAS6vnEq0zeUWaz74kdGqywwP7w=" + "integrity": "sha1-KAS6vnEq0zeUWaz74kdGqywwP7w=", + "requires": { + "spdx-correct": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-1.0.2.tgz", + "spdx-expression-parse": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-1.0.4.tgz" + } }, "verror": { "version": "https://registry.npmjs.org/verror/-/verror-1.3.6.tgz", - "integrity": "sha1-z/XfEpRtKX0rqu+qJoniW+AcAFw=" + "integrity": "sha1-z/XfEpRtKX0rqu+qJoniW+AcAFw=", + "requires": { + "extsprintf": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.0.2.tgz" + } }, "which": { "version": "http://registry.npmjs.org/which/-/which-1.2.12.tgz", - "integrity": "sha1-3me15FAmnxlJCe8j7OTr5Bb6EZI=" + "integrity": "sha1-3me15FAmnxlJCe8j7OTr5Bb6EZI=", + "requires": { + "isexe": "https://registry.npmjs.org/isexe/-/isexe-1.1.2.tgz" + } }, "wide-align": { "version": "https://registry.npmjs.org/wide-align/-/wide-align-1.1.0.tgz", "integrity": "sha1-QO3egCpx/qHwcNo+YtzaLnrdlq0=", - "optional": true + "optional": true, + "requires": { + "string-width": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz" + } }, "wrappy": { "version": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", diff --git a/package.json b/package.json index e13d4f77..2d158a96 100644 --- a/package.json +++ b/package.json @@ -36,7 +36,7 @@ "alks" ], "dependencies": { - "alks-node": "^0.5.2", + "alks-node": "^0.6.0", "async": "^2.0.0-rc.6", "chmod": "^0.2.1", "cli-color": "^1.1.0", From ef28448a6489e57412e90d11ef3d74f86243cccd Mon Sep 17 00:00:00 2001 From: Brian Date: Fri, 18 Aug 2017 12:22:22 -0400 Subject: [PATCH 04/11] Updating ALKS node lib and bumping version --- npm-shrinkwrap.json | 2072 ++++++++++++++++++++++++++----------------- package.json | 2 +- 2 files changed, 1276 insertions(+), 798 deletions(-) diff --git a/npm-shrinkwrap.json b/npm-shrinkwrap.json index 053a35ef..7472087c 100644 --- a/npm-shrinkwrap.json +++ b/npm-shrinkwrap.json @@ -1,16 +1,26 @@ { "name": "alks", - "version": "2.11.1", + "version": "2.12.0", "lockfileVersion": 1, "requires": true, "dependencies": { + "ajv": { + "version": "4.11.8", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-4.11.8.tgz", + "integrity": "sha1-gv+wKynmYq5TvcIK8VlHcGc5xTY=", + "requires": { + "co": "4.6.0", + "json-stable-stringify": "1.0.1" + } + }, "alks-node": { - "version": "https://registry.npmjs.org/alks-node/-/alks-node-0.5.2.tgz", - "integrity": "sha1-HBdJibpu2neZGrhn4qkqsexYqOw=", + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/alks-node/-/alks-node-0.6.0.tgz", + "integrity": "sha512-WteGqm41w6UvlgJOGx+uY7cqOvIX+nXqWxSNppfE2vCcDvA8Gh7M17eFptYjcokoTjfzLyq94ZH5wpmqRj2F+Q==", "requires": { - "moment": "http://registry.npmjs.org/moment/-/moment-2.17.1.tgz", - "request": "http://registry.npmjs.org/request/-/request-2.79.0.tgz", - "underscore": "https://registry.npmjs.org/underscore/-/underscore-1.8.3.tgz" + "moment": "2.18.1", + "request": "2.81.0", + "underscore": "1.8.3" } }, "ansi-escapes": { @@ -25,28 +35,6 @@ "version": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=" }, - "aproba": { - "version": "https://registry.npmjs.org/aproba/-/aproba-1.0.4.tgz", - "integrity": "sha1-JxNoB3XnYUyLoYbAZdTi5S0QcsA=", - "optional": true - }, - "are-we-there-yet": { - "version": "https://registry.npmjs.org/are-we-there-yet/-/are-we-there-yet-1.1.2.tgz", - "integrity": "sha1-gORw6VoIR5T+GJkmLFZnxuiN4bM=", - "optional": true, - "requires": { - "delegates": "https://registry.npmjs.org/delegates/-/delegates-1.0.0.tgz", - "readable-stream": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.0.6.tgz" - } - }, - "asn1": { - "version": "https://registry.npmjs.org/asn1/-/asn1-0.2.3.tgz", - "integrity": "sha1-2sh4dxPJlmhJ/IGAd36+nB3fO4Y=" - }, - "assert-plus": { - "version": "https://registry.npmjs.org/assert-plus/-/assert-plus-0.2.0.tgz", - "integrity": "sha1-104bh+ev/A24qttwIfP+SBAasjQ=" - }, "assertion-error": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/assertion-error/-/assertion-error-1.0.2.tgz", @@ -54,47 +42,20 @@ "dev": true }, "async": { - "version": "http://registry.npmjs.org/async/-/async-2.1.4.tgz", - "integrity": "sha1-LSFgx3iAMuTdbL4lAvH5osj2zeQ=", - "requires": { - "lodash": "http://registry.npmjs.org/lodash/-/lodash-4.17.2.tgz" - } - }, - "asynckit": { - "version": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", - "integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k=" - }, - "aws-sign2": { - "version": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.6.0.tgz", - "integrity": "sha1-FDQt0428yU0OW4fXY81jYSwOeU8=" - }, - "aws4": { - "version": "https://registry.npmjs.org/aws4/-/aws4-1.5.0.tgz", - "integrity": "sha1-Cin/t5wxyecS7rCH6OemS0pW11U=" - }, - "bcrypt-pbkdf": { - "version": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.0.tgz", - "integrity": "sha1-PKdrhSQccXC/fZcD57mqdGMAQNQ=", - "optional": true, - "requires": { - "tweetnacl": "http://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.4.tgz" - } - }, - "boom": { - "version": "https://registry.npmjs.org/boom/-/boom-2.10.1.tgz", - "integrity": "sha1-OciRjO/1eZ+D+UkqhI9iWt0Mdm8=", + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/async/-/async-2.5.0.tgz", + "integrity": "sha512-e+lJAJeNWuPCNyxZKOBdaJGyLGHugXVQtrAwtuAe2vhxTYxFTKE73p8JuTmdH0qdQZtDvI4dhJwjZc5zsfIsYw==", "requires": { - "hoek": "https://registry.npmjs.org/hoek/-/hoek-2.16.3.tgz" + "lodash": "4.17.4" + }, + "dependencies": { + "lodash": { + "version": "4.17.4", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.4.tgz", + "integrity": "sha1-eCA6TRwyiuHYbcpkYONptX9AVa4=" + } } }, - "builtin-modules": { - "version": "https://registry.npmjs.org/builtin-modules/-/builtin-modules-1.1.1.tgz", - "integrity": "sha1-Jw8HbFpywC9bZaR9+Uxf46J4iS8=" - }, - "caseless": { - "version": "https://registry.npmjs.org/caseless/-/caseless-0.11.0.tgz", - "integrity": "sha1-cVuW6phBWTzDMGeSP17GDr2k99c=" - }, "chai": { "version": "3.5.0", "resolved": "https://registry.npmjs.org/chai/-/chai-3.5.0.tgz", @@ -118,23 +79,142 @@ } }, "chmod": { - "version": "https://registry.npmjs.org/chmod/-/chmod-0.2.1.tgz", + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/chmod/-/chmod-0.2.1.tgz", "integrity": "sha1-3uccQg/AC/Uj1XKxSSL1XZGfnQo=", "requires": { - "deep-extend": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.2.11.tgz", - "stat-mode": "https://registry.npmjs.org/stat-mode/-/stat-mode-0.1.0.tgz" + "deep-extend": "0.2.11", + "stat-mode": "0.1.0" + }, + "dependencies": { + "deep-extend": { + "version": "0.2.11", + "resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.2.11.tgz", + "integrity": "sha1-eha6aXKRMjQFBhcElLyD9wdv4I8=" + }, + "stat-mode": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/stat-mode/-/stat-mode-0.1.0.tgz", + "integrity": "sha1-DPvsOvKeYFkSLS9+/D6WqCA1Vqk=" + } } }, "cli-color": { - "version": "https://registry.npmjs.org/cli-color/-/cli-color-1.1.0.tgz", - "integrity": "sha1-3hiM3Ekp2DtnrqBBEPvtQP2/Z3U=", - "requires": { - "ansi-regex": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.0.0.tgz", - "d": "https://registry.npmjs.org/d/-/d-0.1.1.tgz", - "es5-ext": "https://registry.npmjs.org/es5-ext/-/es5-ext-0.10.12.tgz", - "es6-iterator": "https://registry.npmjs.org/es6-iterator/-/es6-iterator-2.0.0.tgz", - "memoizee": "https://registry.npmjs.org/memoizee/-/memoizee-0.3.10.tgz", - "timers-ext": "https://registry.npmjs.org/timers-ext/-/timers-ext-0.1.0.tgz" + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/cli-color/-/cli-color-1.2.0.tgz", + "integrity": "sha1-OlrnT9drYmevZm5p4q+70B3vNNE=", + "requires": { + "ansi-regex": "2.1.1", + "d": "1.0.0", + "es5-ext": "0.10.29", + "es6-iterator": "2.0.1", + "memoizee": "0.4.5", + "timers-ext": "0.1.2" + }, + "dependencies": { + "ansi-regex": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", + "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=" + }, + "d": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/d/-/d-1.0.0.tgz", + "integrity": "sha1-dUu1v+VUUdpppYuU1F9MWwRi1Y8=", + "requires": { + "es5-ext": "0.10.29" + } + }, + "es5-ext": { + "version": "0.10.29", + "resolved": "https://registry.npmjs.org/es5-ext/-/es5-ext-0.10.29.tgz", + "integrity": "sha512-KXla9NXo5sdaEkGSmbFPYgjH6m75kxsthL6GDRSug/Y2OiMoYm0I9giL39j4cgmaFmAbkIFJ6gG+SGKnLSmOvA==", + "requires": { + "es6-iterator": "2.0.1", + "es6-symbol": "3.1.1" + } + }, + "es6-iterator": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/es6-iterator/-/es6-iterator-2.0.1.tgz", + "integrity": "sha1-jjGcnwRTv1ddN0lAplWSDlnKVRI=", + "requires": { + "d": "1.0.0", + "es5-ext": "0.10.29", + "es6-symbol": "3.1.1" + } + }, + "es6-symbol": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/es6-symbol/-/es6-symbol-3.1.1.tgz", + "integrity": "sha1-vwDvT9q2uhtG7Le2KbTH7VcVzHc=", + "requires": { + "d": "1.0.0", + "es5-ext": "0.10.29" + } + }, + "es6-weak-map": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/es6-weak-map/-/es6-weak-map-2.0.2.tgz", + "integrity": "sha1-XjqzIlH/0VOKH45f+hNXdy+S2W8=", + "requires": { + "d": "1.0.0", + "es5-ext": "0.10.29", + "es6-iterator": "2.0.1", + "es6-symbol": "3.1.1" + } + }, + "event-emitter": { + "version": "0.3.5", + "resolved": "https://registry.npmjs.org/event-emitter/-/event-emitter-0.3.5.tgz", + "integrity": "sha1-34xp7vFkeSPHFXuc6DhAYQsCzDk=", + "requires": { + "d": "1.0.0", + "es5-ext": "0.10.29" + } + }, + "is-promise": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-promise/-/is-promise-2.1.0.tgz", + "integrity": "sha1-eaKp7OfwlugPNtKy87wWwf9L8/o=" + }, + "lru-queue": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/lru-queue/-/lru-queue-0.1.0.tgz", + "integrity": "sha1-Jzi9nw089PhEkMVzbEhpmsYyzaM=", + "requires": { + "es5-ext": "0.10.29" + } + }, + "memoizee": { + "version": "0.4.5", + "resolved": "https://registry.npmjs.org/memoizee/-/memoizee-0.4.5.tgz", + "integrity": "sha1-G8PqHkvgVt1HXVIZede+PV5bIcg=", + "requires": { + "d": "1.0.0", + "es5-ext": "0.10.29", + "es6-weak-map": "2.0.2", + "event-emitter": "0.3.5", + "is-promise": "2.1.0", + "lru-queue": "0.1.0", + "next-tick": "1.0.0", + "timers-ext": "0.1.2" + } + }, + "next-tick": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/next-tick/-/next-tick-1.0.0.tgz", + "integrity": "sha1-yobR/ogoFpsBICCOPchCS524NCw=" + }, + "timers-ext": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/timers-ext/-/timers-ext-0.1.2.tgz", + "integrity": "sha1-YcxHp2wavTGV8UUn+XjViulMUgQ=", + "requires": { + "es5-ext": "0.10.29", + "next-tick": "1.0.0" + } + } } }, "cli-cursor": { @@ -145,17 +225,66 @@ } }, "cli-table2": { - "version": "https://registry.npmjs.org/cli-table2/-/cli-table2-0.2.0.tgz", + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/cli-table2/-/cli-table2-0.2.0.tgz", "integrity": "sha1-LR738hig54biFFQFYtS9F3/jLZc=", "requires": { - "colors": "https://registry.npmjs.org/colors/-/colors-1.1.2.tgz", - "lodash": "https://registry.npmjs.org/lodash/-/lodash-3.10.1.tgz", - "string-width": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz" + "colors": "1.1.2", + "lodash": "3.10.1", + "string-width": "1.0.2" }, "dependencies": { + "ansi-regex": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", + "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=" + }, + "code-point-at": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/code-point-at/-/code-point-at-1.1.0.tgz", + "integrity": "sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c=" + }, + "colors": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/colors/-/colors-1.1.2.tgz", + "integrity": "sha1-FopHAXVran9RoSzgyXv6KMCE7WM=", + "optional": true + }, + "is-fullwidth-code-point": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz", + "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=", + "requires": { + "number-is-nan": "1.0.1" + } + }, "lodash": { - "version": "https://registry.npmjs.org/lodash/-/lodash-3.10.1.tgz", + "version": "3.10.1", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-3.10.1.tgz", "integrity": "sha1-W/Rejkm6QYnhfUgnid/RW9FAt7Y=" + }, + "number-is-nan": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz", + "integrity": "sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0=" + }, + "string-width": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", + "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=", + "requires": { + "code-point-at": "1.1.0", + "is-fullwidth-code-point": "1.0.0", + "strip-ansi": "3.0.1" + } + }, + "strip-ansi": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", + "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", + "requires": { + "ansi-regex": "2.1.1" + } } } }, @@ -198,77 +327,25 @@ } } }, + "co": { + "version": "4.6.0", + "resolved": "https://registry.npmjs.org/co/-/co-4.6.0.tgz", + "integrity": "sha1-bqa989hTrlTMuOR7+gvz+QMfsYQ=" + }, "code-point-at": { "version": "http://registry.npmjs.org/code-point-at/-/code-point-at-1.1.0.tgz", "integrity": "sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c=" }, - "colors": { - "version": "https://registry.npmjs.org/colors/-/colors-1.1.2.tgz", - "integrity": "sha1-FopHAXVran9RoSzgyXv6KMCE7WM=", - "optional": true - }, - "combined-stream": { - "version": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.5.tgz", - "integrity": "sha1-k4NwpXtKUd6ix3wV1cX9+JUWQAk=", - "requires": { - "delayed-stream": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz" - } - }, "commander": { - "version": "https://registry.npmjs.org/commander/-/commander-2.9.0.tgz", - "integrity": "sha1-nJkJQXbhIkDLItbFFGCYQA/g99Q=", - "requires": { - "graceful-readlink": "https://registry.npmjs.org/graceful-readlink/-/graceful-readlink-1.0.1.tgz" - } - }, - "concat-stream": { - "version": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.5.2.tgz", - "integrity": "sha1-cIl4Yk2FavQaWnQd790mHadSwmY=", - "requires": { - "inherits": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", - "readable-stream": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.0.6.tgz", - "typedarray": "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz" - } - }, - "console-control-strings": { - "version": "https://registry.npmjs.org/console-control-strings/-/console-control-strings-1.1.0.tgz", - "integrity": "sha1-PXz0Rk22RG6mRL9LOVB/mFEAjo4=" - }, - "core-util-is": { - "version": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", - "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=" - }, - "cryptiles": { - "version": "https://registry.npmjs.org/cryptiles/-/cryptiles-2.0.5.tgz", - "integrity": "sha1-O9/s3GCBR8HGcgL6KR59ylnqo7g=", - "requires": { - "boom": "https://registry.npmjs.org/boom/-/boom-2.10.1.tgz" - } + "version": "2.11.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.11.0.tgz", + "integrity": "sha512-b0553uYA5YAEGgyYIGYROzKQ7X5RAqedkfjiZxwi0kL1g3bOaBNNZfYkzt/CL0umgD5wc9Jec2FbB98CjkMRvQ==" }, "crypto": { - "version": "https://registry.npmjs.org/crypto/-/crypto-0.0.3.tgz", + "version": "0.0.3", + "resolved": "https://registry.npmjs.org/crypto/-/crypto-0.0.3.tgz", "integrity": "sha1-RwqBuGvkxe4XrMggeh9TFa4g27A=" }, - "d": { - "version": "https://registry.npmjs.org/d/-/d-0.1.1.tgz", - "integrity": "sha1-2hhMU10Y2O57oqoim5FACfrhEwk=", - "requires": { - "es5-ext": "https://registry.npmjs.org/es5-ext/-/es5-ext-0.10.12.tgz" - } - }, - "dashdash": { - "version": "http://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz", - "integrity": "sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA=", - "requires": { - "assert-plus": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz" - }, - "dependencies": { - "assert-plus": { - "version": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", - "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=" - } - } - }, "debug": { "version": "2.2.0", "resolved": "https://registry.npmjs.org/debug/-/debug-2.2.0.tgz", @@ -295,120 +372,20 @@ } } }, - "deep-extend": { - "version": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.2.11.tgz", - "integrity": "sha1-eha6aXKRMjQFBhcElLyD9wdv4I8=" - }, - "delayed-stream": { - "version": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", - "integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk=" - }, - "delegates": { - "version": "https://registry.npmjs.org/delegates/-/delegates-1.0.0.tgz", - "integrity": "sha1-hMbhWbgZBP3KWaDvRM2HDTElD5o=", - "optional": true - }, "diff": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/diff/-/diff-1.4.0.tgz", "integrity": "sha1-fyjS657nsVqX79ic5j3P2qPMur8=", "dev": true }, - "ecc-jsbn": { - "version": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.1.tgz", - "integrity": "sha1-D8c6ntXw1Tw4GTOYUj735UN3dQU=", - "optional": true, - "requires": { - "jsbn": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.0.tgz" - } - }, - "es5-ext": { - "version": "https://registry.npmjs.org/es5-ext/-/es5-ext-0.10.12.tgz", - "integrity": "sha1-qoRkHU23a2Krul5F/YBey6sUAEc=", - "requires": { - "es6-iterator": "https://registry.npmjs.org/es6-iterator/-/es6-iterator-2.0.0.tgz", - "es6-symbol": "https://registry.npmjs.org/es6-symbol/-/es6-symbol-3.1.0.tgz" - } - }, - "es6-iterator": { - "version": "https://registry.npmjs.org/es6-iterator/-/es6-iterator-2.0.0.tgz", - "integrity": "sha1-vZaFZ9YWNeM8C4BydhPJy0sJa6w=", - "requires": { - "d": "https://registry.npmjs.org/d/-/d-0.1.1.tgz", - "es5-ext": "https://registry.npmjs.org/es5-ext/-/es5-ext-0.10.12.tgz", - "es6-symbol": "https://registry.npmjs.org/es6-symbol/-/es6-symbol-3.1.0.tgz" - } - }, - "es6-symbol": { - "version": "https://registry.npmjs.org/es6-symbol/-/es6-symbol-3.1.0.tgz", - "integrity": "sha1-lEgcZV56fK2C66gy2X1UM0ltf/o=", - "requires": { - "d": "https://registry.npmjs.org/d/-/d-0.1.1.tgz", - "es5-ext": "https://registry.npmjs.org/es5-ext/-/es5-ext-0.10.12.tgz" - } - }, - "es6-weak-map": { - "version": "https://registry.npmjs.org/es6-weak-map/-/es6-weak-map-0.1.4.tgz", - "integrity": "sha1-cGzvnpmqI2undmwjnIueKG6n0ig=", - "requires": { - "d": "https://registry.npmjs.org/d/-/d-0.1.1.tgz", - "es5-ext": "https://registry.npmjs.org/es5-ext/-/es5-ext-0.10.12.tgz", - "es6-iterator": "https://registry.npmjs.org/es6-iterator/-/es6-iterator-0.1.3.tgz", - "es6-symbol": "https://registry.npmjs.org/es6-symbol/-/es6-symbol-2.0.1.tgz" - }, - "dependencies": { - "es6-iterator": { - "version": "https://registry.npmjs.org/es6-iterator/-/es6-iterator-0.1.3.tgz", - "integrity": "sha1-1vWLjE/EE8JJtLqhl2j45NfIlE4=", - "requires": { - "d": "https://registry.npmjs.org/d/-/d-0.1.1.tgz", - "es5-ext": "https://registry.npmjs.org/es5-ext/-/es5-ext-0.10.12.tgz", - "es6-symbol": "https://registry.npmjs.org/es6-symbol/-/es6-symbol-2.0.1.tgz" - } - }, - "es6-symbol": { - "version": "https://registry.npmjs.org/es6-symbol/-/es6-symbol-2.0.1.tgz", - "integrity": "sha1-dhtcZ8/U8dGK+yNPaR1nhoLLO/M=", - "requires": { - "d": "https://registry.npmjs.org/d/-/d-0.1.1.tgz", - "es5-ext": "https://registry.npmjs.org/es5-ext/-/es5-ext-0.10.12.tgz" - } - } - } - }, "escape-string-regexp": { "version": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=" }, - "event-emitter": { - "version": "https://registry.npmjs.org/event-emitter/-/event-emitter-0.3.4.tgz", - "integrity": "sha1-jWPd+0z+H647MsomXExyAiIIC7U=", - "requires": { - "d": "https://registry.npmjs.org/d/-/d-0.1.1.tgz", - "es5-ext": "https://registry.npmjs.org/es5-ext/-/es5-ext-0.10.12.tgz" - } - }, "exit-hook": { "version": "https://registry.npmjs.org/exit-hook/-/exit-hook-1.1.1.tgz", "integrity": "sha1-8FyiM7SMBdVP/wd2XfhQfpXAL/g=" }, - "extend": { - "version": "https://registry.npmjs.org/extend/-/extend-3.0.0.tgz", - "integrity": "sha1-WkdDU7nzNT3dgXbf03uRyDpG8dQ=" - }, - "external-editor": { - "version": "http://registry.npmjs.org/external-editor/-/external-editor-1.1.1.tgz", - "integrity": "sha1-Etew24UPf/fnCBuvQAVwAGDEYAs=", - "requires": { - "extend": "https://registry.npmjs.org/extend/-/extend-3.0.0.tgz", - "spawn-sync": "https://registry.npmjs.org/spawn-sync/-/spawn-sync-1.0.15.tgz", - "tmp": "http://registry.npmjs.org/tmp/-/tmp-0.0.29.tgz" - } - }, - "extsprintf": { - "version": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.0.2.tgz", - "integrity": "sha1-4QgOBljjALBilJkMxw4VAiNf1VA=" - }, "figures": { "version": "https://registry.npmjs.org/figures/-/figures-1.7.0.tgz", "integrity": "sha1-y+Hjr/zxzUS4DK3+0o3Hk6lwHS4=", @@ -417,70 +394,11 @@ "object-assign": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.0.tgz" } }, - "forever-agent": { - "version": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz", - "integrity": "sha1-+8cfDEGt6zf5bFd60e1C2P2sypE=" - }, - "form-data": { - "version": "http://registry.npmjs.org/form-data/-/form-data-2.1.2.tgz", - "integrity": "sha1-icNTQAi5fq2ky7FX1Y9vXfAl6uQ=", - "requires": { - "asynckit": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", - "combined-stream": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.5.tgz", - "mime-types": "http://registry.npmjs.org/mime-types/-/mime-types-2.1.13.tgz" - } - }, "fuzzy": { - "version": "https://registry.npmjs.org/fuzzy/-/fuzzy-0.1.3.tgz", + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/fuzzy/-/fuzzy-0.1.3.tgz", "integrity": "sha1-THbsL/CsGjap3M+aAN+GIweNTtg=" }, - "gauge": { - "version": "http://registry.npmjs.org/gauge/-/gauge-2.7.2.tgz", - "integrity": "sha1-Fc7MMbAtBTRaXWsOFxzbOtIwd3Q=", - "optional": true, - "requires": { - "aproba": "https://registry.npmjs.org/aproba/-/aproba-1.0.4.tgz", - "console-control-strings": "https://registry.npmjs.org/console-control-strings/-/console-control-strings-1.1.0.tgz", - "has-unicode": "https://registry.npmjs.org/has-unicode/-/has-unicode-2.0.1.tgz", - "object-assign": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.0.tgz", - "signal-exit": "http://registry.npmjs.org/signal-exit/-/signal-exit-3.0.2.tgz", - "string-width": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", - "strip-ansi": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", - "supports-color": "https://registry.npmjs.org/supports-color/-/supports-color-0.2.0.tgz", - "wide-align": "https://registry.npmjs.org/wide-align/-/wide-align-1.1.0.tgz" - }, - "dependencies": { - "supports-color": { - "version": "https://registry.npmjs.org/supports-color/-/supports-color-0.2.0.tgz", - "integrity": "sha1-2S3iaU6z9nMjlz1649i1W0wiGQo=", - "optional": true - } - } - }, - "generate-function": { - "version": "https://registry.npmjs.org/generate-function/-/generate-function-2.0.0.tgz", - "integrity": "sha1-aFj+fAlpt9TpCTM3ZHrHn2DfvnQ=" - }, - "generate-object-property": { - "version": "https://registry.npmjs.org/generate-object-property/-/generate-object-property-1.2.0.tgz", - "integrity": "sha1-nA4cQDCM6AT0eDYYuTf6iPmdUNA=", - "requires": { - "is-property": "https://registry.npmjs.org/is-property/-/is-property-1.0.2.tgz" - } - }, - "getpass": { - "version": "https://registry.npmjs.org/getpass/-/getpass-0.1.6.tgz", - "integrity": "sha1-KD/9n8ElaECHUxHBtg6MQBhxEOY=", - "requires": { - "assert-plus": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz" - }, - "dependencies": { - "assert-plus": { - "version": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", - "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=" - } - } - }, "glob": { "version": "3.2.11", "resolved": "https://registry.npmjs.org/glob/-/glob-3.2.11.tgz", @@ -491,38 +409,16 @@ "minimatch": "0.3.0" } }, - "graceful-fs": { - "version": "http://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.11.tgz", - "integrity": "sha1-Dovf5NHduIVNZOBOp8AOKgJuVlg=" - }, - "graceful-readlink": { - "version": "https://registry.npmjs.org/graceful-readlink/-/graceful-readlink-1.0.1.tgz", - "integrity": "sha1-TK+tdrxi8C+gObL5Tpo906ORpyU=" - }, "growl": { "version": "1.9.2", "resolved": "https://registry.npmjs.org/growl/-/growl-1.9.2.tgz", "integrity": "sha1-Dqd0NxXbjY3ixe3hd14bRayFwC8=", "dev": true }, - "har-validator": { - "version": "https://registry.npmjs.org/har-validator/-/har-validator-2.0.6.tgz", - "integrity": "sha1-zcvAgYgmWtEZtqWnyKtw7s+10n0=", - "requires": { - "chalk": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", - "commander": "https://registry.npmjs.org/commander/-/commander-2.9.0.tgz", - "is-my-json-valid": "https://registry.npmjs.org/is-my-json-valid/-/is-my-json-valid-2.15.0.tgz", - "pinkie-promise": "https://registry.npmjs.org/pinkie-promise/-/pinkie-promise-2.0.1.tgz" - }, - "dependencies": { - "commander": { - "version": "https://registry.npmjs.org/commander/-/commander-2.9.0.tgz", - "integrity": "sha1-nJkJQXbhIkDLItbFFGCYQA/g99Q=", - "requires": { - "graceful-readlink": "https://registry.npmjs.org/graceful-readlink/-/graceful-readlink-1.0.1.tgz" - } - } - } + "har-schema": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/har-schema/-/har-schema-1.0.5.tgz", + "integrity": "sha1-0mMTX0MwfALGAq/I/pWXDAFRNp4=" }, "has-ansi": { "version": "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz", @@ -531,127 +427,322 @@ "ansi-regex": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.0.0.tgz" } }, - "has-unicode": { - "version": "https://registry.npmjs.org/has-unicode/-/has-unicode-2.0.1.tgz", - "integrity": "sha1-4Ob+aijPUROIVeCG0Wkedx3iqLk=", - "optional": true - }, - "hawk": { - "version": "https://registry.npmjs.org/hawk/-/hawk-3.1.3.tgz", - "integrity": "sha1-B4REvXwWQLD+VA0sm3PVlnjo4cQ=", - "requires": { - "boom": "https://registry.npmjs.org/boom/-/boom-2.10.1.tgz", - "cryptiles": "https://registry.npmjs.org/cryptiles/-/cryptiles-2.0.5.tgz", - "hoek": "https://registry.npmjs.org/hoek/-/hoek-2.16.3.tgz", - "sntp": "https://registry.npmjs.org/sntp/-/sntp-1.0.9.tgz" - } - }, - "hoek": { - "version": "https://registry.npmjs.org/hoek/-/hoek-2.16.3.tgz", - "integrity": "sha1-ILt0A9POo5jpHcRxCo/xuCdKJe0=" - }, - "hosted-git-info": { - "version": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.1.5.tgz", - "integrity": "sha1-C6gdkNouJas0ozLm7HeTbhWYEYs=" - }, - "http-signature": { - "version": "https://registry.npmjs.org/http-signature/-/http-signature-1.1.1.tgz", - "integrity": "sha1-33LiZwZs0Kxn+3at+OE0qPvPkb8=", - "requires": { - "assert-plus": "https://registry.npmjs.org/assert-plus/-/assert-plus-0.2.0.tgz", - "jsprim": "https://registry.npmjs.org/jsprim/-/jsprim-1.3.1.tgz", - "sshpk": "https://registry.npmjs.org/sshpk/-/sshpk-1.10.1.tgz" - } - }, "inherits": { "version": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", - "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=" + "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=", + "dev": true }, "inquirer": { - "version": "http://registry.npmjs.org/inquirer/-/inquirer-1.2.3.tgz", + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-1.2.3.tgz", "integrity": "sha1-TexvMvN+97sLLtPx0aXD9UUHSRg=", "requires": { - "ansi-escapes": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-1.4.0.tgz", - "chalk": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", - "cli-cursor": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-1.0.2.tgz", - "cli-width": "https://registry.npmjs.org/cli-width/-/cli-width-2.1.0.tgz", - "external-editor": "http://registry.npmjs.org/external-editor/-/external-editor-1.1.1.tgz", - "figures": "https://registry.npmjs.org/figures/-/figures-1.7.0.tgz", - "lodash": "http://registry.npmjs.org/lodash/-/lodash-4.17.2.tgz", - "mute-stream": "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.6.tgz", - "pinkie-promise": "https://registry.npmjs.org/pinkie-promise/-/pinkie-promise-2.0.1.tgz", - "run-async": "http://registry.npmjs.org/run-async/-/run-async-2.3.0.tgz", - "rx": "https://registry.npmjs.org/rx/-/rx-4.1.0.tgz", - "string-width": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", - "strip-ansi": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", - "through": "https://registry.npmjs.org/through/-/through-2.3.8.tgz" + "ansi-escapes": "1.4.0", + "chalk": "1.1.3", + "cli-cursor": "1.0.2", + "cli-width": "2.1.0", + "external-editor": "1.1.1", + "figures": "1.7.0", + "lodash": "4.17.4", + "mute-stream": "0.0.6", + "pinkie-promise": "2.0.1", + "run-async": "2.3.0", + "rx": "4.1.0", + "string-width": "1.0.2", + "strip-ansi": "3.0.1", + "through": "2.3.8" }, "dependencies": { + "ansi-escapes": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-1.4.0.tgz", + "integrity": "sha1-06ioOzGapneTZisT52HHkRQiMG4=" + }, + "ansi-regex": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", + "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=" + }, + "ansi-styles": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", + "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=" + }, + "chalk": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", + "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", + "requires": { + "ansi-styles": "2.2.1", + "escape-string-regexp": "1.0.5", + "has-ansi": "2.0.0", + "strip-ansi": "3.0.1", + "supports-color": "2.0.0" + } + }, + "cli-cursor": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-1.0.2.tgz", + "integrity": "sha1-ZNo/fValRBLll5S9Ytw1KV6PKYc=", + "requires": { + "restore-cursor": "1.0.1" + } + }, "cli-width": { - "version": "https://registry.npmjs.org/cli-width/-/cli-width-2.1.0.tgz", + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/cli-width/-/cli-width-2.1.0.tgz", "integrity": "sha1-sjTKIJsp72b8UY2bmNWEewDt8Ao=" }, + "code-point-at": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/code-point-at/-/code-point-at-1.1.0.tgz", + "integrity": "sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c=" + }, + "concat-stream": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.6.0.tgz", + "integrity": "sha1-CqxmL9Ur54lk1VMvaUeE5wEQrPc=", + "requires": { + "inherits": "2.0.3", + "readable-stream": "2.3.3", + "typedarray": "0.0.6" + } + }, + "core-util-is": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", + "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=" + }, + "escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=" + }, + "exit-hook": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/exit-hook/-/exit-hook-1.1.1.tgz", + "integrity": "sha1-8FyiM7SMBdVP/wd2XfhQfpXAL/g=" + }, + "extend": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.1.tgz", + "integrity": "sha1-p1Xqe8Gt/MWjHOfnYtuq3F5jZEQ=" + }, + "external-editor": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/external-editor/-/external-editor-1.1.1.tgz", + "integrity": "sha1-Etew24UPf/fnCBuvQAVwAGDEYAs=", + "requires": { + "extend": "3.0.1", + "spawn-sync": "1.0.15", + "tmp": "0.0.29" + } + }, + "figures": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/figures/-/figures-1.7.0.tgz", + "integrity": "sha1-y+Hjr/zxzUS4DK3+0o3Hk6lwHS4=", + "requires": { + "escape-string-regexp": "1.0.5", + "object-assign": "4.1.1" + } + }, + "has-ansi": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz", + "integrity": "sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE=", + "requires": { + "ansi-regex": "2.1.1" + } + }, + "inherits": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", + "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=" + }, + "is-fullwidth-code-point": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz", + "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=", + "requires": { + "number-is-nan": "1.0.1" + } + }, + "is-promise": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-promise/-/is-promise-2.1.0.tgz", + "integrity": "sha1-eaKp7OfwlugPNtKy87wWwf9L8/o=" + }, + "isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=" + }, + "lodash": { + "version": "4.17.4", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.4.tgz", + "integrity": "sha1-eCA6TRwyiuHYbcpkYONptX9AVa4=" + }, "mute-stream": { - "version": "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.6.tgz", + "version": "0.0.6", + "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.6.tgz", "integrity": "sha1-SJYrGeFp/R38JAs/HnMXYnu8R9s=" }, + "number-is-nan": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz", + "integrity": "sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0=" + }, + "object-assign": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", + "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=" + }, + "onetime": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/onetime/-/onetime-1.1.0.tgz", + "integrity": "sha1-ofeDj4MUxRbwXs78vEzP4EtO14k=" + }, + "os-shim": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/os-shim/-/os-shim-0.1.3.tgz", + "integrity": "sha1-a2LDeRz3kJ6jXtRuF2WLtBfLORc=" + }, + "os-tmpdir": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz", + "integrity": "sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ=" + }, + "pinkie": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/pinkie/-/pinkie-2.0.4.tgz", + "integrity": "sha1-clVrgM+g1IqXToDnckjoDtT3+HA=" + }, + "pinkie-promise": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/pinkie-promise/-/pinkie-promise-2.0.1.tgz", + "integrity": "sha1-ITXW36ejWMBprJsXh3YogihFD/o=", + "requires": { + "pinkie": "2.0.4" + } + }, + "process-nextick-args": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-1.0.7.tgz", + "integrity": "sha1-FQ4gt1ZZCtP5EJPyWk8q2L/zC6M=" + }, + "readable-stream": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.3.tgz", + "integrity": "sha512-m+qzzcn7KUxEmd1gMbchF+Y2eIUbieUaxkWtptyHywrX0rE8QEYqPC07Vuy4Wm32/xE16NcdBctb8S0Xe/5IeQ==", + "requires": { + "core-util-is": "1.0.2", + "inherits": "2.0.3", + "isarray": "1.0.0", + "process-nextick-args": "1.0.7", + "safe-buffer": "5.1.1", + "string_decoder": "1.0.3", + "util-deprecate": "1.0.2" + } + }, + "restore-cursor": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-1.0.1.tgz", + "integrity": "sha1-NGYfRohjJ/7SmRR5FSJS35LapUE=", + "requires": { + "exit-hook": "1.1.1", + "onetime": "1.1.0" + } + }, "run-async": { - "version": "http://registry.npmjs.org/run-async/-/run-async-2.3.0.tgz", + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/run-async/-/run-async-2.3.0.tgz", "integrity": "sha1-A3GrSuC91yDUFm19/aZP96RFpsA=", "requires": { - "is-promise": "https://registry.npmjs.org/is-promise/-/is-promise-2.1.0.tgz" + "is-promise": "2.1.0" } - } - } - }, - "is-builtin-module": { - "version": "https://registry.npmjs.org/is-builtin-module/-/is-builtin-module-1.0.0.tgz", - "integrity": "sha1-VAVy0096wxGfj3bDDLwbHgN6/74=", - "requires": { - "builtin-modules": "https://registry.npmjs.org/builtin-modules/-/builtin-modules-1.1.1.tgz" - } - }, - "is-fullwidth-code-point": { - "version": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz", - "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=", - "requires": { - "number-is-nan": "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz" - } - }, - "is-my-json-valid": { - "version": "https://registry.npmjs.org/is-my-json-valid/-/is-my-json-valid-2.15.0.tgz", - "integrity": "sha1-k27do8o8IR/ZjzstPgjaQ/eykVs=", - "requires": { - "generate-function": "https://registry.npmjs.org/generate-function/-/generate-function-2.0.0.tgz", - "generate-object-property": "https://registry.npmjs.org/generate-object-property/-/generate-object-property-1.2.0.tgz", - "jsonpointer": "https://registry.npmjs.org/jsonpointer/-/jsonpointer-4.0.0.tgz", - "xtend": "https://registry.npmjs.org/xtend/-/xtend-4.0.1.tgz" + }, + "rx": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/rx/-/rx-4.1.0.tgz", + "integrity": "sha1-pfE/957zt0D+MKqAP7CfmIBdR4I=" + }, + "spawn-sync": { + "version": "1.0.15", + "resolved": "https://registry.npmjs.org/spawn-sync/-/spawn-sync-1.0.15.tgz", + "integrity": "sha1-sAeZVX63+wyDdsKdROih6mfldHY=", + "requires": { + "concat-stream": "1.6.0", + "os-shim": "0.1.3" + } + }, + "string_decoder": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.0.3.tgz", + "integrity": "sha512-4AH6Z5fzNNBcH+6XDMfA/BTt87skxqJlO0lAh3Dker5zThcAxG6mKz+iGu308UKoPPQ8Dcqx/4JhujzltRa+hQ==", + "requires": { + "safe-buffer": "5.1.1" + } + }, + "string-width": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", + "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=", + "requires": { + "code-point-at": "1.1.0", + "is-fullwidth-code-point": "1.0.0", + "strip-ansi": "3.0.1" + } + }, + "strip-ansi": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", + "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", + "requires": { + "ansi-regex": "2.1.1" + } + }, + "supports-color": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", + "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=" + }, + "through": { + "version": "2.3.8", + "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz", + "integrity": "sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU=" + }, + "tmp": { + "version": "0.0.29", + "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.29.tgz", + "integrity": "sha1-8lEl/w3Z2jzLDC3Tce4SiLuRKMA=", + "requires": { + "os-tmpdir": "1.0.2" + } + }, + "typedarray": { + "version": "0.0.6", + "resolved": "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz", + "integrity": "sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c=" + }, + "util-deprecate": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", + "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=" + } } }, - "is-promise": { - "version": "https://registry.npmjs.org/is-promise/-/is-promise-2.1.0.tgz", - "integrity": "sha1-eaKp7OfwlugPNtKy87wWwf9L8/o=" - }, - "is-property": { - "version": "https://registry.npmjs.org/is-property/-/is-property-1.0.2.tgz", - "integrity": "sha1-V/4cTkhHTt1lsJkR8msc1Ald2oQ=" - }, - "is-typedarray": { - "version": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", - "integrity": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=" - }, - "isarray": { - "version": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=" + "is-fullwidth-code-point": { + "version": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz", + "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=", + "requires": { + "number-is-nan": "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz" + } }, "isexe": { "version": "https://registry.npmjs.org/isexe/-/isexe-1.1.2.tgz", "integrity": "sha1-NvPiLmB1CSD15yQaR2qMakInWtA=" }, - "isstream": { - "version": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz", - "integrity": "sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo=" - }, "jade": { "version": "0.26.3", "resolved": "https://registry.npmjs.org/jade/-/jade-0.26.3.tgz", @@ -676,55 +767,31 @@ } } }, - "jodid25519": { - "version": "https://registry.npmjs.org/jodid25519/-/jodid25519-1.0.2.tgz", - "integrity": "sha1-BtSRIlUJNBlHfUJWM2BuDpB4KWc=", - "optional": true, - "requires": { - "jsbn": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.0.tgz" - } - }, "js-string-escape": { "version": "https://registry.npmjs.org/js-string-escape/-/js-string-escape-1.0.1.tgz", "integrity": "sha1-4mJbrbwNZ8dTPp7cEGjFh65BN+8=" }, - "jsbn": { - "version": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.0.tgz", - "integrity": "sha1-ZQmH2g3XT06/WhE3eiqi0nPpff0=", - "optional": true - }, - "json-schema": { - "version": "https://registry.npmjs.org/json-schema/-/json-schema-0.2.3.tgz", - "integrity": "sha1-tIDIkuWaLwWVTOcnvT8qTogvnhM=" - }, - "json-stringify-safe": { - "version": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz", - "integrity": "sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus=" - }, - "jsonpointer": { - "version": "https://registry.npmjs.org/jsonpointer/-/jsonpointer-4.0.0.tgz", - "integrity": "sha1-ZmHhYdL8RF8Z+YQwIxNDci4fy9U=" - }, - "jsprim": { - "version": "https://registry.npmjs.org/jsprim/-/jsprim-1.3.1.tgz", - "integrity": "sha1-KnJW9wQSop7jZwqspiWZTE3P8lI=", + "json-stable-stringify": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/json-stable-stringify/-/json-stable-stringify-1.0.1.tgz", + "integrity": "sha1-mnWdOcXy/1A/1TAGRu1EX4jE+a8=", "requires": { - "extsprintf": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.0.2.tgz", - "json-schema": "https://registry.npmjs.org/json-schema/-/json-schema-0.2.3.tgz", - "verror": "https://registry.npmjs.org/verror/-/verror-1.3.6.tgz" + "jsonify": "0.0.0" } }, + "jsonify": { + "version": "0.0.0", + "resolved": "https://registry.npmjs.org/jsonify/-/jsonify-0.0.0.tgz", + "integrity": "sha1-LHS27kHZPKUbe1qu6PUDYx0lKnM=" + }, "keychain": { "version": "https://registry.npmjs.org/keychain/-/keychain-1.0.0.tgz", "integrity": "sha1-J7MLCLEfWMc6l5zqXtLFpsNtOus=" }, - "lodash": { - "version": "http://registry.npmjs.org/lodash/-/lodash-4.17.2.tgz", - "integrity": "sha1-NKMFW6vgTOQkZ7YH1wAHLH/2v0I=" - }, "lokijs": { - "version": "https://registry.npmjs.org/lokijs/-/lokijs-1.4.1.tgz", - "integrity": "sha1-6he+ktLqfKuhyBbWwgBkJOjbC/4=" + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/lokijs/-/lokijs-1.5.0.tgz", + "integrity": "sha1-meQD1qieR+Ee0MXUmftVoGA9Xvw=" }, "lru-cache": { "version": "2.7.3", @@ -732,37 +799,6 @@ "integrity": "sha1-bUUk6LlV+V1PW1iFHOId1y+06VI=", "dev": true }, - "lru-queue": { - "version": "https://registry.npmjs.org/lru-queue/-/lru-queue-0.1.0.tgz", - "integrity": "sha1-Jzi9nw089PhEkMVzbEhpmsYyzaM=", - "requires": { - "es5-ext": "https://registry.npmjs.org/es5-ext/-/es5-ext-0.10.12.tgz" - } - }, - "memoizee": { - "version": "https://registry.npmjs.org/memoizee/-/memoizee-0.3.10.tgz", - "integrity": "sha1-TsoNiu057J0Bf0xcLy9kMvQuXI8=", - "requires": { - "d": "https://registry.npmjs.org/d/-/d-0.1.1.tgz", - "es5-ext": "https://registry.npmjs.org/es5-ext/-/es5-ext-0.10.12.tgz", - "es6-weak-map": "https://registry.npmjs.org/es6-weak-map/-/es6-weak-map-0.1.4.tgz", - "event-emitter": "https://registry.npmjs.org/event-emitter/-/event-emitter-0.3.4.tgz", - "lru-queue": "https://registry.npmjs.org/lru-queue/-/lru-queue-0.1.0.tgz", - "next-tick": "https://registry.npmjs.org/next-tick/-/next-tick-0.2.2.tgz", - "timers-ext": "https://registry.npmjs.org/timers-ext/-/timers-ext-0.1.0.tgz" - } - }, - "mime-db": { - "version": "http://registry.npmjs.org/mime-db/-/mime-db-1.25.0.tgz", - "integrity": "sha1-wY29fHOl2/b0SgJNwNFloeexw5I=" - }, - "mime-types": { - "version": "http://registry.npmjs.org/mime-types/-/mime-types-2.1.13.tgz", - "integrity": "sha1-4HqqnGxrmnyjASxpADrSWjnpKog=", - "requires": { - "mime-db": "http://registry.npmjs.org/mime-db/-/mime-db-1.25.0.tgz" - } - }, "minimatch": { "version": "0.3.0", "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-0.3.0.tgz", @@ -827,8 +863,9 @@ } }, "moment": { - "version": "http://registry.npmjs.org/moment/-/moment-2.17.1.tgz", - "integrity": "sha1-/tlQYGPzaxDwZsi1mhRNf66+HYI=" + "version": "2.18.1", + "resolved": "https://registry.npmjs.org/moment/-/moment-2.18.1.tgz", + "integrity": "sha1-w2GT3Tzhwu7SrbfIAtu8d6gbHA8=" }, "ms": { "version": "0.7.1", @@ -840,74 +877,328 @@ "version": "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.5.tgz", "integrity": "sha1-j7+rsKmKJT0xhDMfno3rc3L6xsA=" }, - "netrc": { - "version": "https://registry.npmjs.org/netrc/-/netrc-0.1.4.tgz", - "integrity": "sha1-a+lPysqNd63gqWcNxGCRTJRHJEQ=" - }, - "next-tick": { - "version": "https://registry.npmjs.org/next-tick/-/next-tick-0.2.2.tgz", - "integrity": "sha1-ddpKkn7liH45BliABltzNkE7MQ0=" - }, "node-netrc": { - "version": "https://registry.npmjs.org/node-netrc/-/node-netrc-0.1.0.tgz", + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/node-netrc/-/node-netrc-0.1.0.tgz", "integrity": "sha1-bRqwiwUqmO8DlVDtqWVWKnqOaTg=", "requires": { - "netrc": "https://registry.npmjs.org/netrc/-/netrc-0.1.4.tgz" - } - }, - "normalize-package-data": { - "version": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.3.5.tgz", - "integrity": "sha1-jZJPFClg4Xd+f/4XBUNjHMfLAt8=", - "requires": { - "hosted-git-info": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.1.5.tgz", - "is-builtin-module": "https://registry.npmjs.org/is-builtin-module/-/is-builtin-module-1.0.0.tgz", - "semver": "https://registry.npmjs.org/semver/-/semver-5.3.0.tgz", - "validate-npm-package-license": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.1.tgz" - } - }, - "npm-package-arg": { - "version": "https://registry.npmjs.org/npm-package-arg/-/npm-package-arg-4.2.0.tgz", - "integrity": "sha1-gJvGHKv1S9X/lPYWXIm6juiMEVw=", - "requires": { - "hosted-git-info": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.1.5.tgz", - "semver": "https://registry.npmjs.org/semver/-/semver-5.3.0.tgz" + "netrc": "0.1.4" + }, + "dependencies": { + "netrc": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/netrc/-/netrc-0.1.4.tgz", + "integrity": "sha1-a+lPysqNd63gqWcNxGCRTJRHJEQ=" + } } }, "npm-registry-client": { - "version": "http://registry.npmjs.org/npm-registry-client/-/npm-registry-client-7.4.1.tgz", - "integrity": "sha1-6eXeFbtJj+Sf/4f3z5rs4h4HHkI=", - "requires": { - "concat-stream": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.5.2.tgz", - "graceful-fs": "http://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.11.tgz", - "normalize-package-data": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.3.5.tgz", - "npm-package-arg": "https://registry.npmjs.org/npm-package-arg/-/npm-package-arg-4.2.0.tgz", - "npmlog": "http://registry.npmjs.org/npmlog/-/npmlog-4.0.1.tgz", - "once": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", - "request": "http://registry.npmjs.org/request/-/request-2.79.0.tgz", - "retry": "https://registry.npmjs.org/retry/-/retry-0.10.0.tgz", - "semver": "https://registry.npmjs.org/semver/-/semver-5.3.0.tgz", - "slide": "https://registry.npmjs.org/slide/-/slide-1.1.6.tgz" - } - }, - "npmlog": { - "version": "http://registry.npmjs.org/npmlog/-/npmlog-4.0.1.tgz", - "integrity": "sha1-0U9QO0zXlxA3VVMAS6luZmL7wLg=", - "optional": true, - "requires": { - "are-we-there-yet": "https://registry.npmjs.org/are-we-there-yet/-/are-we-there-yet-1.1.2.tgz", - "console-control-strings": "https://registry.npmjs.org/console-control-strings/-/console-control-strings-1.1.0.tgz", - "gauge": "http://registry.npmjs.org/gauge/-/gauge-2.7.2.tgz", - "set-blocking": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz" + "version": "7.5.0", + "resolved": "https://registry.npmjs.org/npm-registry-client/-/npm-registry-client-7.5.0.tgz", + "integrity": "sha1-D23W5dEUJM+pn85bkw/q8JtPfwQ=", + "requires": { + "concat-stream": "1.6.0", + "graceful-fs": "4.1.11", + "normalize-package-data": "2.4.0", + "npm-package-arg": "4.2.1", + "npmlog": "4.1.2", + "once": "1.4.0", + "request": "2.81.0", + "retry": "0.10.1", + "semver": "5.4.1", + "slide": "1.1.6" + }, + "dependencies": { + "ansi-regex": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", + "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=" + }, + "aproba": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/aproba/-/aproba-1.1.2.tgz", + "integrity": "sha512-ZpYajIfO0j2cOFTO955KUMIKNmj6zhX8kVztMAxFsDaMwz+9Z9SV0uou2pC9HJqcfpffOsjnbrDMvkNy+9RXPw==", + "optional": true + }, + "are-we-there-yet": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/are-we-there-yet/-/are-we-there-yet-1.1.4.tgz", + "integrity": "sha1-u13KOCu5TwXhUZQ3PRb9O6HKEQ0=", + "optional": true, + "requires": { + "delegates": "1.0.0", + "readable-stream": "2.3.3" + } + }, + "builtin-modules": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/builtin-modules/-/builtin-modules-1.1.1.tgz", + "integrity": "sha1-Jw8HbFpywC9bZaR9+Uxf46J4iS8=" + }, + "code-point-at": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/code-point-at/-/code-point-at-1.1.0.tgz", + "integrity": "sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c=" + }, + "concat-stream": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.6.0.tgz", + "integrity": "sha1-CqxmL9Ur54lk1VMvaUeE5wEQrPc=", + "requires": { + "inherits": "2.0.3", + "readable-stream": "2.3.3", + "typedarray": "0.0.6" + } + }, + "console-control-strings": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/console-control-strings/-/console-control-strings-1.1.0.tgz", + "integrity": "sha1-PXz0Rk22RG6mRL9LOVB/mFEAjo4=" + }, + "core-util-is": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", + "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=" + }, + "delegates": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/delegates/-/delegates-1.0.0.tgz", + "integrity": "sha1-hMbhWbgZBP3KWaDvRM2HDTElD5o=", + "optional": true + }, + "gauge": { + "version": "2.7.4", + "resolved": "https://registry.npmjs.org/gauge/-/gauge-2.7.4.tgz", + "integrity": "sha1-LANAXHU4w51+s3sxcCLjJfsBi/c=", + "optional": true, + "requires": { + "aproba": "1.1.2", + "console-control-strings": "1.1.0", + "has-unicode": "2.0.1", + "object-assign": "4.1.1", + "signal-exit": "3.0.2", + "string-width": "1.0.2", + "strip-ansi": "3.0.1", + "wide-align": "1.1.2" + } + }, + "graceful-fs": { + "version": "4.1.11", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.11.tgz", + "integrity": "sha1-Dovf5NHduIVNZOBOp8AOKgJuVlg=" + }, + "has-unicode": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/has-unicode/-/has-unicode-2.0.1.tgz", + "integrity": "sha1-4Ob+aijPUROIVeCG0Wkedx3iqLk=", + "optional": true + }, + "hosted-git-info": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.5.0.tgz", + "integrity": "sha512-pNgbURSuab90KbTqvRPsseaTxOJCZBD0a7t+haSN33piP9cCM4l0CqdzAif2hUqm716UovKB2ROmiabGAKVXyg==" + }, + "inherits": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", + "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=" + }, + "is-builtin-module": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-builtin-module/-/is-builtin-module-1.0.0.tgz", + "integrity": "sha1-VAVy0096wxGfj3bDDLwbHgN6/74=", + "requires": { + "builtin-modules": "1.1.1" + } + }, + "is-fullwidth-code-point": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz", + "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=", + "requires": { + "number-is-nan": "1.0.1" + } + }, + "isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=" + }, + "normalize-package-data": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.4.0.tgz", + "integrity": "sha512-9jjUFbTPfEy3R/ad/2oNbKtW9Hgovl5O1FvFWKkKblNXoN/Oou6+9+KKohPK13Yc3/TyunyWhJp6gvRNR/PPAw==", + "requires": { + "hosted-git-info": "2.5.0", + "is-builtin-module": "1.0.0", + "semver": "5.4.1", + "validate-npm-package-license": "3.0.1" + } + }, + "npm-package-arg": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/npm-package-arg/-/npm-package-arg-4.2.1.tgz", + "integrity": "sha1-WTMD/eqF98Qid18X+et2cPaA4+w=", + "requires": { + "hosted-git-info": "2.5.0", + "semver": "5.4.1" + } + }, + "npmlog": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/npmlog/-/npmlog-4.1.2.tgz", + "integrity": "sha512-2uUqazuKlTaSI/dC8AzicUck7+IrEaOnN/e0jd3Xtt1KcGpwx30v50mL7oPyr/h9bL3E4aZccVwpwP+5W9Vjkg==", + "optional": true, + "requires": { + "are-we-there-yet": "1.1.4", + "console-control-strings": "1.1.0", + "gauge": "2.7.4", + "set-blocking": "2.0.0" + } + }, + "number-is-nan": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz", + "integrity": "sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0=" + }, + "object-assign": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", + "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=", + "optional": true + }, + "once": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", + "requires": { + "wrappy": "1.0.2" + } + }, + "process-nextick-args": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-1.0.7.tgz", + "integrity": "sha1-FQ4gt1ZZCtP5EJPyWk8q2L/zC6M=" + }, + "readable-stream": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.3.tgz", + "integrity": "sha512-m+qzzcn7KUxEmd1gMbchF+Y2eIUbieUaxkWtptyHywrX0rE8QEYqPC07Vuy4Wm32/xE16NcdBctb8S0Xe/5IeQ==", + "requires": { + "core-util-is": "1.0.2", + "inherits": "2.0.3", + "isarray": "1.0.0", + "process-nextick-args": "1.0.7", + "safe-buffer": "5.1.1", + "string_decoder": "1.0.3", + "util-deprecate": "1.0.2" + } + }, + "retry": { + "version": "0.10.1", + "resolved": "https://registry.npmjs.org/retry/-/retry-0.10.1.tgz", + "integrity": "sha1-52OI0heZLCUnUCQdPTlW/tmNj/Q=" + }, + "set-blocking": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", + "integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc=", + "optional": true + }, + "signal-exit": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.2.tgz", + "integrity": "sha1-tf3AjxKH6hF4Yo5BXiUTK3NkbG0=", + "optional": true + }, + "slide": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/slide/-/slide-1.1.6.tgz", + "integrity": "sha1-VusCfWW00tzmyy4tMsTUr8nh1wc=" + }, + "spdx-correct": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-1.0.2.tgz", + "integrity": "sha1-SzBz2TP/UfORLwOsVRlJikFQ20A=", + "requires": { + "spdx-license-ids": "1.2.2" + } + }, + "spdx-expression-parse": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-1.0.4.tgz", + "integrity": "sha1-m98vIOH0DtRH++JzJmGR/O1RYmw=" + }, + "spdx-license-ids": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-1.2.2.tgz", + "integrity": "sha1-yd96NCRZSt5r0RkA1ZZpbcBrrFc=" + }, + "string_decoder": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.0.3.tgz", + "integrity": "sha512-4AH6Z5fzNNBcH+6XDMfA/BTt87skxqJlO0lAh3Dker5zThcAxG6mKz+iGu308UKoPPQ8Dcqx/4JhujzltRa+hQ==", + "requires": { + "safe-buffer": "5.1.1" + } + }, + "string-width": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", + "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=", + "requires": { + "code-point-at": "1.1.0", + "is-fullwidth-code-point": "1.0.0", + "strip-ansi": "3.0.1" + } + }, + "strip-ansi": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", + "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", + "requires": { + "ansi-regex": "2.1.1" + } + }, + "typedarray": { + "version": "0.0.6", + "resolved": "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz", + "integrity": "sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c=" + }, + "util-deprecate": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", + "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=" + }, + "validate-npm-package-license": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.1.tgz", + "integrity": "sha1-KAS6vnEq0zeUWaz74kdGqywwP7w=", + "requires": { + "spdx-correct": "1.0.2", + "spdx-expression-parse": "1.0.4" + } + }, + "wide-align": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/wide-align/-/wide-align-1.1.2.tgz", + "integrity": "sha512-ijDLlyQ7s6x1JgCLur53osjm/UXUYD9+0PbYKrBsYisYXzCxN+HC3mYDNy/dWdmf3AwqwU3CXwDCvsNgGK1S0w==", + "optional": true, + "requires": { + "string-width": "1.0.2" + } + }, + "wrappy": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=" + } } }, "number-is-nan": { "version": "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz", "integrity": "sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0=" }, - "oauth-sign": { - "version": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.8.2.tgz", - "integrity": "sha1-Rqarfwrq2N6unsBWV4C31O/rnUM=" - }, "object-assign": { "version": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.0.tgz", "integrity": "sha1-ejs9DpgGPUP0wD8uiubNUahog6A=" @@ -924,61 +1215,52 @@ "integrity": "sha1-ofeDj4MUxRbwXs78vEzP4EtO14k=" }, "opn": { - "version": "https://registry.npmjs.org/opn/-/opn-4.0.2.tgz", + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/opn/-/opn-4.0.2.tgz", "integrity": "sha1-erwi5kTf9jsKltWrfyeQwPAavJU=", "requires": { - "object-assign": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.0.tgz", - "pinkie-promise": "https://registry.npmjs.org/pinkie-promise/-/pinkie-promise-2.0.1.tgz" - } - }, - "os-shim": { - "version": "https://registry.npmjs.org/os-shim/-/os-shim-0.1.3.tgz", - "integrity": "sha1-a2LDeRz3kJ6jXtRuF2WLtBfLORc=" - }, - "os-tmpdir": { - "version": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz", - "integrity": "sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ=" - }, - "pinkie": { - "version": "https://registry.npmjs.org/pinkie/-/pinkie-2.0.4.tgz", - "integrity": "sha1-clVrgM+g1IqXToDnckjoDtT3+HA=" - }, - "pinkie-promise": { - "version": "https://registry.npmjs.org/pinkie-promise/-/pinkie-promise-2.0.1.tgz", - "integrity": "sha1-ITXW36ejWMBprJsXh3YogihFD/o=", - "requires": { - "pinkie": "https://registry.npmjs.org/pinkie/-/pinkie-2.0.4.tgz" + "object-assign": "4.1.1", + "pinkie-promise": "2.0.1" + }, + "dependencies": { + "object-assign": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", + "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=" + }, + "pinkie": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/pinkie/-/pinkie-2.0.4.tgz", + "integrity": "sha1-clVrgM+g1IqXToDnckjoDtT3+HA=" + }, + "pinkie-promise": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/pinkie-promise/-/pinkie-promise-2.0.1.tgz", + "integrity": "sha1-ITXW36ejWMBprJsXh3YogihFD/o=", + "requires": { + "pinkie": "2.0.4" + } + } } }, - "process-nextick-args": { - "version": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-1.0.7.tgz", - "integrity": "sha1-FQ4gt1ZZCtP5EJPyWk8q2L/zC6M=" + "performance-now": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-0.2.0.tgz", + "integrity": "sha1-M+8wxcd9TqIcWlOGnZG1bY8lVeU=" }, "prop-ini": { - "version": "https://registry.npmjs.org/prop-ini/-/prop-ini-0.0.2.tgz", + "version": "0.0.2", + "resolved": "https://registry.npmjs.org/prop-ini/-/prop-ini-0.0.2.tgz", "integrity": "sha1-ZzOny1JCrKsr5C5gdYPYEksXKls=", "requires": { - "extend": "https://registry.npmjs.org/extend/-/extend-3.0.0.tgz" - } - }, - "punycode": { - "version": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz", - "integrity": "sha1-wNWmOycYgArY4esPpSachN1BhF4=" - }, - "qs": { - "version": "https://registry.npmjs.org/qs/-/qs-6.3.0.tgz", - "integrity": "sha1-9AOyZPI7wBIox0ExtAfxjV6l1EI=" - }, - "readable-stream": { - "version": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.0.6.tgz", - "integrity": "sha1-j5A0HmilPMySh4jaz80Rs265t44=", - "requires": { - "core-util-is": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", - "inherits": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", - "isarray": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "process-nextick-args": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-1.0.7.tgz", - "string_decoder": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz", - "util-deprecate": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz" + "extend": "3.0.1" + }, + "dependencies": { + "extend": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.1.tgz", + "integrity": "sha1-p1Xqe8Gt/MWjHOfnYtuq3F5jZEQ=" + } } }, "readline2": { @@ -991,29 +1273,357 @@ } }, "request": { - "version": "http://registry.npmjs.org/request/-/request-2.79.0.tgz", - "integrity": "sha1-Tf5b9r6LjNw3/Pk+BLZVd3InEN4=", - "requires": { - "aws-sign2": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.6.0.tgz", - "aws4": "https://registry.npmjs.org/aws4/-/aws4-1.5.0.tgz", - "caseless": "https://registry.npmjs.org/caseless/-/caseless-0.11.0.tgz", - "combined-stream": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.5.tgz", - "extend": "https://registry.npmjs.org/extend/-/extend-3.0.0.tgz", - "forever-agent": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz", - "form-data": "http://registry.npmjs.org/form-data/-/form-data-2.1.2.tgz", - "har-validator": "https://registry.npmjs.org/har-validator/-/har-validator-2.0.6.tgz", - "hawk": "https://registry.npmjs.org/hawk/-/hawk-3.1.3.tgz", - "http-signature": "https://registry.npmjs.org/http-signature/-/http-signature-1.1.1.tgz", - "is-typedarray": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", - "isstream": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz", - "json-stringify-safe": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz", - "mime-types": "http://registry.npmjs.org/mime-types/-/mime-types-2.1.13.tgz", - "oauth-sign": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.8.2.tgz", - "qs": "https://registry.npmjs.org/qs/-/qs-6.3.0.tgz", - "stringstream": "https://registry.npmjs.org/stringstream/-/stringstream-0.0.5.tgz", - "tough-cookie": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.3.2.tgz", - "tunnel-agent": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.4.3.tgz", - "uuid": "http://registry.npmjs.org/uuid/-/uuid-3.0.1.tgz" + "version": "2.81.0", + "resolved": "https://registry.npmjs.org/request/-/request-2.81.0.tgz", + "integrity": "sha1-xpKJRqDgbF+Nb4qTM0af/aRimKA=", + "requires": { + "aws-sign2": "0.6.0", + "aws4": "1.6.0", + "caseless": "0.12.0", + "combined-stream": "1.0.5", + "extend": "3.0.1", + "forever-agent": "0.6.1", + "form-data": "2.1.4", + "har-validator": "4.2.1", + "hawk": "3.1.3", + "http-signature": "1.1.1", + "is-typedarray": "1.0.0", + "isstream": "0.1.2", + "json-stringify-safe": "5.0.1", + "mime-types": "2.1.16", + "oauth-sign": "0.8.2", + "performance-now": "0.2.0", + "qs": "6.4.0", + "safe-buffer": "5.1.1", + "stringstream": "0.0.5", + "tough-cookie": "2.3.2", + "tunnel-agent": "0.6.0", + "uuid": "3.1.0" + }, + "dependencies": { + "asn1": { + "version": "0.2.3", + "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.3.tgz", + "integrity": "sha1-2sh4dxPJlmhJ/IGAd36+nB3fO4Y=" + }, + "assert-plus": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-0.2.0.tgz", + "integrity": "sha1-104bh+ev/A24qttwIfP+SBAasjQ=" + }, + "asynckit": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", + "integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k=" + }, + "aws-sign2": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.6.0.tgz", + "integrity": "sha1-FDQt0428yU0OW4fXY81jYSwOeU8=" + }, + "aws4": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.6.0.tgz", + "integrity": "sha1-g+9cqGCysy5KDe7e6MdxudtXRx4=" + }, + "bcrypt-pbkdf": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.1.tgz", + "integrity": "sha1-Y7xdy2EzG5K8Bf1SiVPDNGKgb40=", + "optional": true, + "requires": { + "tweetnacl": "0.14.5" + } + }, + "boom": { + "version": "2.10.1", + "resolved": "https://registry.npmjs.org/boom/-/boom-2.10.1.tgz", + "integrity": "sha1-OciRjO/1eZ+D+UkqhI9iWt0Mdm8=", + "requires": { + "hoek": "2.16.3" + } + }, + "caseless": { + "version": "0.12.0", + "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz", + "integrity": "sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw=" + }, + "combined-stream": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.5.tgz", + "integrity": "sha1-k4NwpXtKUd6ix3wV1cX9+JUWQAk=", + "requires": { + "delayed-stream": "1.0.0" + } + }, + "core-util-is": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", + "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=" + }, + "cryptiles": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/cryptiles/-/cryptiles-2.0.5.tgz", + "integrity": "sha1-O9/s3GCBR8HGcgL6KR59ylnqo7g=", + "requires": { + "boom": "2.10.1" + } + }, + "dashdash": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz", + "integrity": "sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA=", + "requires": { + "assert-plus": "1.0.0" + }, + "dependencies": { + "assert-plus": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", + "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=" + } + } + }, + "delayed-stream": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", + "integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk=" + }, + "ecc-jsbn": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.1.tgz", + "integrity": "sha1-D8c6ntXw1Tw4GTOYUj735UN3dQU=", + "optional": true, + "requires": { + "jsbn": "0.1.1" + } + }, + "extend": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.1.tgz", + "integrity": "sha1-p1Xqe8Gt/MWjHOfnYtuq3F5jZEQ=" + }, + "extsprintf": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz", + "integrity": "sha1-lpGEQOMEGnpBT4xS48V06zw+HgU=" + }, + "forever-agent": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz", + "integrity": "sha1-+8cfDEGt6zf5bFd60e1C2P2sypE=" + }, + "form-data": { + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.1.4.tgz", + "integrity": "sha1-M8GDrPGTJ27KqYFDpp6Uv+4XUNE=", + "requires": { + "asynckit": "0.4.0", + "combined-stream": "1.0.5", + "mime-types": "2.1.16" + } + }, + "getpass": { + "version": "0.1.7", + "resolved": "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz", + "integrity": "sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo=", + "requires": { + "assert-plus": "1.0.0" + }, + "dependencies": { + "assert-plus": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", + "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=" + } + } + }, + "har-validator": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-4.2.1.tgz", + "integrity": "sha1-M0gdDxu/9gDdID11gSpqX7oALio=", + "requires": { + "ajv": "4.11.8", + "har-schema": "1.0.5" + } + }, + "hawk": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/hawk/-/hawk-3.1.3.tgz", + "integrity": "sha1-B4REvXwWQLD+VA0sm3PVlnjo4cQ=", + "requires": { + "boom": "2.10.1", + "cryptiles": "2.0.5", + "hoek": "2.16.3", + "sntp": "1.0.9" + } + }, + "hoek": { + "version": "2.16.3", + "resolved": "https://registry.npmjs.org/hoek/-/hoek-2.16.3.tgz", + "integrity": "sha1-ILt0A9POo5jpHcRxCo/xuCdKJe0=" + }, + "http-signature": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.1.1.tgz", + "integrity": "sha1-33LiZwZs0Kxn+3at+OE0qPvPkb8=", + "requires": { + "assert-plus": "0.2.0", + "jsprim": "1.4.1", + "sshpk": "1.13.1" + } + }, + "is-typedarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", + "integrity": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=" + }, + "isstream": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz", + "integrity": "sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo=" + }, + "jsbn": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz", + "integrity": "sha1-peZUwuWi3rXyAdls77yoDA7y9RM=", + "optional": true + }, + "json-schema": { + "version": "0.2.3", + "resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.2.3.tgz", + "integrity": "sha1-tIDIkuWaLwWVTOcnvT8qTogvnhM=" + }, + "json-stringify-safe": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz", + "integrity": "sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus=" + }, + "jsprim": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/jsprim/-/jsprim-1.4.1.tgz", + "integrity": "sha1-MT5mvB5cwG5Di8G3SZwuXFastqI=", + "requires": { + "assert-plus": "1.0.0", + "extsprintf": "1.3.0", + "json-schema": "0.2.3", + "verror": "1.10.0" + }, + "dependencies": { + "assert-plus": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", + "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=" + } + } + }, + "mime-db": { + "version": "1.29.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.29.0.tgz", + "integrity": "sha1-SNJtI1WJZRcErFkWygYAGRQmaHg=" + }, + "mime-types": { + "version": "2.1.16", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.16.tgz", + "integrity": "sha1-K4WKUuXs1RbbiXrCvodIeDBpjiM=", + "requires": { + "mime-db": "1.29.0" + } + }, + "oauth-sign": { + "version": "0.8.2", + "resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.8.2.tgz", + "integrity": "sha1-Rqarfwrq2N6unsBWV4C31O/rnUM=" + }, + "punycode": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz", + "integrity": "sha1-wNWmOycYgArY4esPpSachN1BhF4=" + }, + "qs": { + "version": "6.4.0", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.4.0.tgz", + "integrity": "sha1-E+JtKK1rD/qpExLNO/cI7TUecjM=" + }, + "sntp": { + "version": "1.0.9", + "resolved": "https://registry.npmjs.org/sntp/-/sntp-1.0.9.tgz", + "integrity": "sha1-ZUEYTMkK7qbG57NeJlkIJEPGYZg=", + "requires": { + "hoek": "2.16.3" + } + }, + "sshpk": { + "version": "1.13.1", + "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.13.1.tgz", + "integrity": "sha1-US322mKHFEMW3EwY/hzx2UBzm+M=", + "requires": { + "asn1": "0.2.3", + "assert-plus": "1.0.0", + "bcrypt-pbkdf": "1.0.1", + "dashdash": "1.14.1", + "ecc-jsbn": "0.1.1", + "getpass": "0.1.7", + "jsbn": "0.1.1", + "tweetnacl": "0.14.5" + }, + "dependencies": { + "assert-plus": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", + "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=" + } + } + }, + "stringstream": { + "version": "0.0.5", + "resolved": "https://registry.npmjs.org/stringstream/-/stringstream-0.0.5.tgz", + "integrity": "sha1-TkhM1N5aC7vuGORjB3EKioFiGHg=" + }, + "tough-cookie": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.3.2.tgz", + "integrity": "sha1-8IH3bkyFcg5sN6X6ztc3FQ2EByo=", + "requires": { + "punycode": "1.4.1" + } + }, + "tunnel-agent": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz", + "integrity": "sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0=", + "requires": { + "safe-buffer": "5.1.1" + } + }, + "tweetnacl": { + "version": "0.14.5", + "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz", + "integrity": "sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q=", + "optional": true + }, + "uuid": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.1.0.tgz", + "integrity": "sha512-DIWtzUkw04M4k3bf1IcpS2tngXEL26YUD2M0tMDUpnUrz2hgzUBlD55a4FjdLGPvfHxS6uluGWvaVEqgBcVa+g==" + }, + "verror": { + "version": "1.10.0", + "resolved": "https://registry.npmjs.org/verror/-/verror-1.10.0.tgz", + "integrity": "sha1-OhBcoXBTr1XW4nDB+CiGguGNpAA=", + "requires": { + "assert-plus": "1.0.0", + "core-util-is": "1.0.2", + "extsprintf": "1.3.0" + }, + "dependencies": { + "assert-plus": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", + "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=" + } + } + } } }, "restore-cursor": { @@ -1024,10 +1634,6 @@ "onetime": "https://registry.npmjs.org/onetime/-/onetime-1.1.0.tgz" } }, - "retry": { - "version": "https://registry.npmjs.org/retry/-/retry-0.10.0.tgz", - "integrity": "sha1-ZJ4VykCEItmDGBYZNef31lLUNd0=" - }, "run-async": { "version": "https://registry.npmjs.org/run-async/-/run-async-0.1.0.tgz", "integrity": "sha1-yK1KXhEGYeQCp9IbUw4AnyX444k=", @@ -1035,22 +1641,19 @@ "once": "https://registry.npmjs.org/once/-/once-1.4.0.tgz" } }, - "rx": { - "version": "https://registry.npmjs.org/rx/-/rx-4.1.0.tgz", - "integrity": "sha1-pfE/957zt0D+MKqAP7CfmIBdR4I=" - }, "rx-lite": { "version": "https://registry.npmjs.org/rx-lite/-/rx-lite-3.1.2.tgz", "integrity": "sha1-Gc5QLKVyZl87ZHsQk5+X/RYV8QI=" }, - "semver": { - "version": "https://registry.npmjs.org/semver/-/semver-5.3.0.tgz", - "integrity": "sha1-myzl094C0XxgEq0yaqa00M9U+U8=" + "safe-buffer": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.1.tgz", + "integrity": "sha512-kKvNJn6Mm93gAczWVJg7wH+wGYWNrDHdWvpUmHyEsgCtIwwo3bqPtV4tR5tuPaUhTOo/kvhVwd8XwwOllGYkbg==" }, - "set-blocking": { - "version": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", - "integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc=", - "optional": true + "semver": { + "version": "5.4.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.4.1.tgz", + "integrity": "sha512-WfG/X9+oATh81XtllIo/I8gOiY9EXRdv1cQdyykeXK17YcUW3EXUAi2To4pcH6nZtJPr7ZOpM5OMyWJZm+8Rsg==" }, "sigmund": { "version": "1.0.1", @@ -1058,78 +1661,6 @@ "integrity": "sha1-P/IfGYytIXX587eBhT/ZTQ0ZtZA=", "dev": true }, - "signal-exit": { - "version": "http://registry.npmjs.org/signal-exit/-/signal-exit-3.0.2.tgz", - "integrity": "sha1-tf3AjxKH6hF4Yo5BXiUTK3NkbG0=", - "optional": true - }, - "slide": { - "version": "https://registry.npmjs.org/slide/-/slide-1.1.6.tgz", - "integrity": "sha1-VusCfWW00tzmyy4tMsTUr8nh1wc=" - }, - "sntp": { - "version": "https://registry.npmjs.org/sntp/-/sntp-1.0.9.tgz", - "integrity": "sha1-ZUEYTMkK7qbG57NeJlkIJEPGYZg=", - "requires": { - "hoek": "https://registry.npmjs.org/hoek/-/hoek-2.16.3.tgz" - } - }, - "spawn-sync": { - "version": "https://registry.npmjs.org/spawn-sync/-/spawn-sync-1.0.15.tgz", - "integrity": "sha1-sAeZVX63+wyDdsKdROih6mfldHY=", - "requires": { - "concat-stream": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.5.2.tgz", - "os-shim": "https://registry.npmjs.org/os-shim/-/os-shim-0.1.3.tgz" - } - }, - "spdx-correct": { - "version": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-1.0.2.tgz", - "integrity": "sha1-SzBz2TP/UfORLwOsVRlJikFQ20A=", - "requires": { - "spdx-license-ids": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-1.2.2.tgz" - } - }, - "spdx-expression-parse": { - "version": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-1.0.4.tgz", - "integrity": "sha1-m98vIOH0DtRH++JzJmGR/O1RYmw=" - }, - "spdx-license-ids": { - "version": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-1.2.2.tgz", - "integrity": "sha1-yd96NCRZSt5r0RkA1ZZpbcBrrFc=" - }, - "sprintf-js": { - "version": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", - "integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=" - }, - "sshpk": { - "version": "https://registry.npmjs.org/sshpk/-/sshpk-1.10.1.tgz", - "integrity": "sha1-MOGl0ykkSXShr2FREznVla9mOLA=", - "requires": { - "asn1": "https://registry.npmjs.org/asn1/-/asn1-0.2.3.tgz", - "assert-plus": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", - "bcrypt-pbkdf": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.0.tgz", - "dashdash": "http://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz", - "ecc-jsbn": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.1.tgz", - "getpass": "https://registry.npmjs.org/getpass/-/getpass-0.1.6.tgz", - "jodid25519": "https://registry.npmjs.org/jodid25519/-/jodid25519-1.0.2.tgz", - "jsbn": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.0.tgz", - "tweetnacl": "http://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.4.tgz" - }, - "dependencies": { - "assert-plus": { - "version": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", - "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=" - } - } - }, - "stat-mode": { - "version": "https://registry.npmjs.org/stat-mode/-/stat-mode-0.1.0.tgz", - "integrity": "sha1-DPvsOvKeYFkSLS9+/D6WqCA1Vqk=" - }, - "string_decoder": { - "version": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz", - "integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ=" - }, "string-width": { "version": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=", @@ -1139,10 +1670,6 @@ "strip-ansi": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz" } }, - "stringstream": { - "version": "https://registry.npmjs.org/stringstream/-/stringstream-0.0.5.tgz", - "integrity": "sha1-TkhM1N5aC7vuGORjB3EKioFiGHg=" - }, "strip-ansi": { "version": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", @@ -1158,104 +1685,67 @@ "version": "https://registry.npmjs.org/through/-/through-2.3.8.tgz", "integrity": "sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU=" }, - "timers-ext": { - "version": "https://registry.npmjs.org/timers-ext/-/timers-ext-0.1.0.tgz", - "integrity": "sha1-ADRaLKkwidElEyIFQ4nSY+J7d+I=", - "requires": { - "es5-ext": "https://registry.npmjs.org/es5-ext/-/es5-ext-0.10.12.tgz", - "next-tick": "https://registry.npmjs.org/next-tick/-/next-tick-0.2.2.tgz" - } - }, - "tmp": { - "version": "http://registry.npmjs.org/tmp/-/tmp-0.0.29.tgz", - "integrity": "sha1-8lEl/w3Z2jzLDC3Tce4SiLuRKMA=", - "requires": { - "os-tmpdir": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz" - } - }, "to-iso-string": { "version": "0.0.2", "resolved": "https://registry.npmjs.org/to-iso-string/-/to-iso-string-0.0.2.tgz", "integrity": "sha1-TcGeZk38y+Jb2NtQiwDG2hWCVdE=", "dev": true }, - "tough-cookie": { - "version": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.3.2.tgz", - "integrity": "sha1-8IH3bkyFcg5sN6X6ztc3FQ2EByo=", - "requires": { - "punycode": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz" - } - }, - "tunnel-agent": { - "version": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.4.3.tgz", - "integrity": "sha1-Y3PbdpCf5XDgjXNYM2Xtgop07us=" - }, - "tweetnacl": { - "version": "http://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.4.tgz", - "integrity": "sha1-jJ2/tSeVaG8WbNICN5S88QPRPCs=", - "optional": true - }, "type-detect": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/type-detect/-/type-detect-1.0.0.tgz", "integrity": "sha1-diIXzAbbJY7EiQihKY6LlRIejqI=", "dev": true }, - "typedarray": { - "version": "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz", - "integrity": "sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c=" - }, "underscore": { - "version": "https://registry.npmjs.org/underscore/-/underscore-1.8.3.tgz", + "version": "1.8.3", + "resolved": "https://registry.npmjs.org/underscore/-/underscore-1.8.3.tgz", "integrity": "sha1-Tz+1OxBuYJf8+ctBCfKl6b36UCI=" }, "underscore.string": { - "version": "https://registry.npmjs.org/underscore.string/-/underscore.string-3.3.4.tgz", + "version": "3.3.4", + "resolved": "https://registry.npmjs.org/underscore.string/-/underscore.string-3.3.4.tgz", "integrity": "sha1-LCo/n4PmR2L9xF5s6sZRQoZCE9s=", "requires": { - "sprintf-js": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", - "util-deprecate": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz" + "sprintf-js": "1.1.1", + "util-deprecate": "1.0.2" + }, + "dependencies": { + "sprintf-js": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.1.1.tgz", + "integrity": "sha1-Nr54Mgr+WAH2zqPueLblqrlA6gw=" + }, + "util-deprecate": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", + "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=" + } } }, "universal-analytics": { - "version": "http://registry.npmjs.org/universal-analytics/-/universal-analytics-0.4.8.tgz", - "integrity": "sha1-gOiGJ0Gq9vohAsRR3a8ExrpKLQI=", - "requires": { - "async": "https://registry.npmjs.org/async/-/async-1.2.1.tgz", - "request": "http://registry.npmjs.org/request/-/request-2.79.0.tgz", - "underscore": "https://registry.npmjs.org/underscore/-/underscore-1.8.3.tgz", - "uuid": "http://registry.npmjs.org/uuid/-/uuid-3.0.1.tgz" + "version": "0.4.15", + "resolved": "https://registry.npmjs.org/universal-analytics/-/universal-analytics-0.4.15.tgz", + "integrity": "sha512-9Dt6WBWsHsmv74G+N/rmEgi6KFZxVvQXkVhr0disegeUryybQAUQwMD1l5EtqaOu+hSOGbhL/hPPQYisZIqPRw==", + "requires": { + "async": "1.2.1", + "request": "2.81.0", + "underscore": "1.8.3", + "uuid": "3.1.0" }, "dependencies": { "async": { - "version": "https://registry.npmjs.org/async/-/async-1.2.1.tgz", + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/async/-/async-1.2.1.tgz", "integrity": "sha1-pIFqF81f9RbfosdpikUzabl5DeA=" + }, + "uuid": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.1.0.tgz", + "integrity": "sha512-DIWtzUkw04M4k3bf1IcpS2tngXEL26YUD2M0tMDUpnUrz2hgzUBlD55a4FjdLGPvfHxS6uluGWvaVEqgBcVa+g==" } } }, - "util-deprecate": { - "version": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", - "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=" - }, - "uuid": { - "version": "http://registry.npmjs.org/uuid/-/uuid-3.0.1.tgz", - "integrity": "sha1-ZUS7ot/ajBzxfmKaOjBeK7H+5sE=" - }, - "validate-npm-package-license": { - "version": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.1.tgz", - "integrity": "sha1-KAS6vnEq0zeUWaz74kdGqywwP7w=", - "requires": { - "spdx-correct": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-1.0.2.tgz", - "spdx-expression-parse": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-1.0.4.tgz" - } - }, - "verror": { - "version": "https://registry.npmjs.org/verror/-/verror-1.3.6.tgz", - "integrity": "sha1-z/XfEpRtKX0rqu+qJoniW+AcAFw=", - "requires": { - "extsprintf": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.0.2.tgz" - } - }, "which": { "version": "http://registry.npmjs.org/which/-/which-1.2.12.tgz", "integrity": "sha1-3me15FAmnxlJCe8j7OTr5Bb6EZI=", @@ -1263,21 +1753,9 @@ "isexe": "https://registry.npmjs.org/isexe/-/isexe-1.1.2.tgz" } }, - "wide-align": { - "version": "https://registry.npmjs.org/wide-align/-/wide-align-1.1.0.tgz", - "integrity": "sha1-QO3egCpx/qHwcNo+YtzaLnrdlq0=", - "optional": true, - "requires": { - "string-width": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz" - } - }, "wrappy": { "version": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=" - }, - "xtend": { - "version": "https://registry.npmjs.org/xtend/-/xtend-4.0.1.tgz", - "integrity": "sha1-pcbVMr5lbiPbgg77lDofBJmNY68=" } } } diff --git a/package.json b/package.json index 2d158a96..1889358e 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "alks", - "version": "2.11.1", + "version": "2.12.0", "description": "CLI for working with ALKS", "main": "bin/alks", "scripts": { From fc51be40c0e9bab875a8926246a61a3c1e55188f Mon Sep 17 00:00:00 2001 From: Brian Date: Fri, 18 Aug 2017 12:22:40 -0400 Subject: [PATCH 05/11] Adding LTK support --- bin/alks-iam | 4 ++- bin/alks-iam-createltk | 66 ++++++++++++++++++++++++++++++++++++++++++ bin/alks-iam-deleteltk | 64 ++++++++++++++++++++++++++++++++++++++++ lib/iam.js | 39 +++++++++++++++++++++++++ 4 files changed, 172 insertions(+), 1 deletion(-) create mode 100755 bin/alks-iam-createltk create mode 100755 bin/alks-iam-deleteltk diff --git a/bin/alks-iam b/bin/alks-iam index b8fe1b00..0d4c1b96 100755 --- a/bin/alks-iam +++ b/bin/alks-iam @@ -10,8 +10,10 @@ var program = require('commander'), program .version(config.version) .command('createrole', 'create IAM role') - .command('deleterole', 'remove an IAM role') + .command('deleterole', 'remove an IAM role') .command('roletypes', 'list the available iam role types') + .command('createltk', 'create a longterm key') + .command('deleteltk', 'delete a longterm key') .parse(process.argv); utils.subcommandSuggestion(program, 'iam'); \ No newline at end of file diff --git a/bin/alks-iam-createltk b/bin/alks-iam-createltk new file mode 100755 index 00000000..36e0b1d3 --- /dev/null +++ b/bin/alks-iam-createltk @@ -0,0 +1,66 @@ +#!/usr/bin/env node +'use strict'; + +process.title = 'ALKS'; + +var program = require('commander'), + _ = require('underscore'), + clc = require('cli-color'), + alks = require('alks-node'), + Iam = require('../lib/iam'), + utils = require('../lib/utils'), + Developer = require('../lib/developer'), + config = require('../package.json'); + +var logger = 'iam-createltk'; + +program + .version(config.version) + .description('creates a new IAM Longterm Key') + .option('-n, --iamusername [iamUsername]', 'the name of the iam user associated with the LTK') + .option('-a, --account [alksAccount]', 'alks account to use') + .option('-r, --role [alksRole]', 'alks role to use') + .option('-F, --favorites', 'filters favorite accounts') + .option('-v, --verbose', 'be verbose') + .parse(process.argv); + +var iamUsername = program.iamusername, + alksAccount = program.account, + alksRole = program.role, + filterFaves = program.favorites || false; + +utils.log(program, logger, 'validating iam user name: ' + iamUsername); +if(_.isEmpty(iamUsername)){ + utils.errorAndExit('The IAM username is required.'); +} + +if(!_.isUndefined(alksAccount) && _.isUndefined(alksRole)){ + utils.log(program, logger, 'trying to extract role from account'); + alksRole = utils.tryToExtractRole(alksAccount); +} + +Iam.getIAMAccount(program, logger, alksAccount, alksRole, filterFaves, function(err, developer, password, alksAccount, alksRole){ + if(err){ + return utils.errorAndExit(err); + } + + // create the LTK + var data = _.extend({}, developer); + data.alksAccount = alksAccount; + data.alksRole = alksRole; + utils.log(program, logger, 'calling api to create ltk: ' + iamUsername); + + alks.createLongTermKey(data, password, iamUsername, { debug: program.verbose, ua: utils.getUA() }, function(err, data){ + if(err){ + return utils.errorAndExit(err); + } + + console.error(clc.white(['LTK created for IAM User: ', iamUsername, ' was created with the ARN: '].join('')) + clc.white.underline(data.iamUserArn)); + console.error(clc.white(['LTK Access Key: '].join('')) + clc.white.underline(data.accessKey)); + console.error(clc.white(['LTK Secret Key: '].join('')) + clc.white.underline(data.secretKey)); + + utils.log(program, logger, 'checking for updates'); + utils.checkForUpdate(); + Developer.trackActivity(logger); + }); +}); \ No newline at end of file diff --git a/bin/alks-iam-deleteltk b/bin/alks-iam-deleteltk new file mode 100755 index 00000000..2621db52 --- /dev/null +++ b/bin/alks-iam-deleteltk @@ -0,0 +1,64 @@ +#!/usr/bin/env node +'use strict'; + +process.title = 'ALKS'; + +var program = require('commander'), + _ = require('underscore'), + clc = require('cli-color'), + alks = require('alks-node'), + Iam = require('../lib/iam'), + utils = require('../lib/utils'), + Developer = require('../lib/developer'), + config = require('../package.json'); + +var logger = 'iam-deleteltk'; + +program + .version(config.version) + .description('deletes an IAM Longterm Key') + .option('-n, --iamusername [iamUsername]', 'the name of the iam user associated with the LTK') + .option('-a, --account [alksAccount]', 'alks account to use') + .option('-r, --role [alksRole]', 'alks role to use') + .option('-F, --favorites', 'filters favorite accounts') + .option('-v, --verbose', 'be verbose') + .parse(process.argv); + +var iamUsername = program.iamusername, + alksAccount = program.account, + alksRole = program.role, + filterFaves = program.favorites || false; + +utils.log(program, logger, 'validating iam user name: ' + iamUsername); +if(_.isEmpty(iamUsername)){ + utils.errorAndExit('The IAM username is required.'); +} + +if(!_.isUndefined(alksAccount) && _.isUndefined(alksRole)){ + utils.log(program, logger, 'trying to extract role from account'); + alksRole = utils.tryToExtractRole(alksAccount); +} + +Iam.getIAMAccount(program, logger, alksAccount, alksRole, filterFaves, function(err, developer, password, alksAccount, alksRole){ + if(err){ + return utils.errorAndExit(err); + } + + // delete the LTK + var data = _.extend({}, developer); + data.alksAccount = alksAccount; + data.alksRole = alksRole; + utils.log(program, logger, 'calling api to delete ltk: ' + iamUsername); + + alks.deleteLongTermKey(data, password, iamUsername, { debug: program.verbose, ua: utils.getUA() }, function(err, data){ + if(err){ + return utils.errorAndExit(err); + } + + console.error(clc.white(['LTK deleted for IAM User: ', iamUsername].join(''))); + + utils.log(program, logger, 'checking for updates'); + utils.checkForUpdate(); + Developer.trackActivity(logger); + }); +}); \ No newline at end of file diff --git a/lib/iam.js b/lib/iam.js index 2019d3d1..867911de 100644 --- a/lib/iam.js +++ b/lib/iam.js @@ -93,4 +93,43 @@ exports.getIAMKey = function(program, logger, alksAccount, alksRole, forceNewSes }); } ], cb); +}; + +exports.getIAMAccount = function(program, logger, alksAccount, alksRole, filterFavorites, cb){ + async.waterfall([ + // check to be sure were configured + function(callback){ + Developer.ensureConfigured(callback); + }, + // get developer + function(callback){ + utils.log(program, logger, 'getting developer'); + Developer.getDeveloper(callback); + }, + // get password + function(developer, callback){ + utils.log(program, logger, 'getting password'); + Developer.getPassword(program, function(err, password){ + callback(err, developer, password); + }); + }, + // get alks account + function(developer, password, callback){ + // set password so they dont get prompted again + program.password = password; + + // only lookup alks account if they didnt provide + if(_.isEmpty(alksAccount) || _.isEmpty(alksRole)){ + utils.log(program, logger, 'getting accounts'); + Developer.getALKSAccount(program, { iamOnly: true, filterFavorites: filterFavorites }, function(err, data){ + if(err) callback(err); + else callback(null, developer, password, data.alksAccount, data.alksRole); + }); + } + else{ + utils.log(program, logger, 'using provided account/role' + alksAccount + ' ' + alksRole); + callback(null, developer, password, alksAccount, alksRole); + } + } + ], cb); }; \ No newline at end of file From aaab0869860238a5250b97186a505cb293e2395e Mon Sep 17 00:00:00 2001 From: Brian Date: Mon, 2 Oct 2017 10:33:10 -0400 Subject: [PATCH 06/11] add filter account support `iam deleterole`.. resolves #68 --- bin/alks-iam-deleterole | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/bin/alks-iam-deleterole b/bin/alks-iam-deleterole index 4fc67b39..b460f17c 100755 --- a/bin/alks-iam-deleterole +++ b/bin/alks-iam-deleterole @@ -21,19 +21,21 @@ program .option('-n, --rolename [rolename]', 'the name of the role to delete') .option('-a, --account [alksAccount]', 'alks account to use') .option('-r, --role [alksRole]', 'alks role to use') + .option('-F, --favorites', 'filters favorite accounts') .option('-v, --verbose', 'be verbose') .parse(process.argv); -var roleName = program.rolename, - alksAccount = program.account, - alksRole = program.role; +var roleName = program.rolename, + alksAccount = program.account, + alksRole = program.role, + filterFaves = program.favorites || false; utils.log(program, logger, 'validating role name: ' + roleName); if(_.isEmpty(roleName)){ utils.errorAndExit('The role name must be provided.'); } -Iam.getIAMKey(program, logger, alksAccount, alksRole, false, false, function(err, key, developer, password){ +Iam.getIAMKey(program, logger, alksAccount, alksRole, false, filterFaves, function(err, key, developer, password){ if(err){ return utils.errorAndExit(err); } From 10aeebf0233aa100f1f4ae35d8aaed7f5aa08d98 Mon Sep 17 00:00:00 2001 From: Brian Date: Mon, 2 Oct 2017 11:16:27 -0400 Subject: [PATCH 07/11] Fixed some odd race conditions with update check and update notes check --- lib/developer.js | 46 +++++--------------- lib/utils.js | 108 ++++++++++++++++++++++++++++++----------------- 2 files changed, 81 insertions(+), 73 deletions(-) diff --git a/lib/developer.js b/lib/developer.js index c16728ea..41ef99db 100644 --- a/lib/developer.js +++ b/lib/developer.js @@ -6,13 +6,9 @@ var _ = require('underscore'), loki = require('lokijs'), clortho = require('clortho').forService('alkscli'), netrc = require('node-netrc'), - inquirer = require('inquirer'), - semVer = require('semver'), path = require('path'), - clc = require('cli-color'), alks = require('alks-node'), utils = require('./utils'), - fs = require('fs'), ua = require('universal-analytics'), chmod = require('chmod'), pkg = require(path.join(__dirname, '../', 'package.json')); @@ -26,12 +22,17 @@ var ALKS_USERID = 'alksuid', var db = new loki(utils.getDBFile()), visitor = null, delim = ' :: ', - logger = 'developer'; + logger = 'developer', + vAtSt = null; exports.getAccountDelim = function(){ return delim; }; +exports.getVersionAtStart = function(){ + return vAtSt; +}; + function getDeveloperCollection(callback){ // have the DB load from disk db.loadDatabase({}, function(){ @@ -98,13 +99,6 @@ exports.getPasswordFromKeystore = function(cb){ } } -function getChangeLog(){ - var file = path.join(__dirname, '../', 'changelog.txt'), - contents = fs.readFileSync(file, 'utf8'); - - return contents; -} - exports.storePassword = function(password, callback){ utils.log(null, logger, 'storing password'); if(utils.isPasswordSecurelyStorable()){ @@ -158,33 +152,15 @@ exports.getPasswordFromPrompt = function (callback, text, currentPassword){ exports.ensureConfigured = function(callback){ exports.getDeveloper(function(err, developer){ + if(!vAtSt) vAtSt = developer.lastVersion; + // validate we have a valid configuration if(_.isEmpty(developer.server) || _.isEmpty(developer.userid)){ callback(new Error('ALKS CLI is not configured. Please run: alks developer configure'), developer); } else{ - // since this is the first func to always get called check for update - var currentVersion = pkg.version, - lastRunVerion = developer.lastVersion; - - // if they dont have a last version, set to current and save - if(!lastRunVerion){ - developer.lastVersion = lastRunVerion = currentVersion; - exports.saveDeveloper(developer); - } - - // check if they just updated - if(semVer.gt(currentVersion, lastRunVerion)){ - // give them release notes - utils.showBorderedMessage(110, clc.white(getChangeLog())); - - // save the last version - developer.lastVersion = currentVersion; - exports.saveDeveloper(developer); - } - - callback(null); + callback(); } }); }; @@ -297,10 +273,10 @@ exports.getALKSAccount = function(program, options, callback){ function(developer, password, cb){ alks.getAccounts(opts.server, opts.userid, password, { debug: program.verbose, ua: utils.getUA() }, function(err, alksAccounts){ var indexedAlksAccounts = []; - _.each(alksAccounts, function(alksAccount, i){ + _.each(alksAccounts, function(alksAccount){ if(opts.iamOnly === true && alksAccount.iam === false) return; - alksAccount = [alksAccount.account, alksAccount.role].join(exports.getAccountDelim()) + alksAccount = [alksAccount.account, alksAccount.role].join(exports.getAccountDelim()); indexedAlksAccounts.push(alksAccount); }); cb(err, developer, password, indexedAlksAccounts); diff --git a/lib/utils.js b/lib/utils.js index e2587fb8..182b1306 100755 --- a/lib/utils.js +++ b/lib/utils.js @@ -17,9 +17,17 @@ var _ = require('underscore'), var exports = module.exports = {}; var programCacher = null, + logger = 'utils', accountRegex = /([0-9]*)(\/)(ALKS)([a-zA-Z]*)([- ]*)([a-zA-Z0-9_-]*)/g; -exports.errorAndExit = function(errorMsg, errorObj, requestData){ +function getChangeLog(){ + var file = path.join(__dirname, '../', 'changelog.txt'), + contents = fs.readFileSync(file, 'utf8'); + + return contents; +} + +exports.errorAndExit = function(errorMsg, errorObj){ console.error(clc.red(errorMsg)); if(errorObj){ console.error(clc.red(JSON.stringify(errorObj, null, 4))); @@ -50,7 +58,7 @@ exports.isWindows = function(){ exports.isOSX = function(){ return 'darwin' === process.platform; -} +}; exports.getFilePathInHome = function(filename){ return path.join((process.env.HOME || process.env.USERPROFILE || process.env.HOMEPATH), filename); @@ -94,36 +102,6 @@ exports.showBorderedMessage = function(cols, msg){ console.error(table.toString()); }; -exports.checkForUpdate = function(callback){ - var pkg = require(path.join(__dirname, '../', 'package.json')), - myVer = pkg.version, - app = pkg.name, - noop = function(){}, - client = new npm({ log: { verbose:noop, info:noop, http:noop } }); - - client.get('https://registry.npmjs.org/'+app+'/latest', { timeout: 1000 }, function (error, data, raw, res){ - if(!error){ - var latestVer = data.version, - needsUpdate = semVer.gt(latestVer, myVer); - - if(needsUpdate){ - var msg = [ - clc.white('Update available '), - clc.blue(myVer), - clc.white(' → '), - clc.green(latestVer + '\n'), - clc.white('Run: '), - clc.green('npm i -g ' + app), - clc.white(' to update') - ].join(''); - - exports.showBorderedMessage(40, msg); - } - } - if(_.isFunction(callback)) callback(null); - }); -}; - exports.subcommandSuggestion = function(program, subcommand){ var commands = _.map(program.commands, '_name'), requestedCommand = _.head(program.args); @@ -151,7 +129,7 @@ exports.isPasswordSecurelyStorable = function(){ exports.passwordSaveErrorHandler = function(err){ console.error(clc.red('Error saving password!'), err.message); - if(isWindows()){ + if(exports.isWindows()){ console.error(clc.red('It looks like you\'re on Windows. This is most likely a script permission error. Please run: "Set-ExecutionPolicy -Scope CurrentUser remotesigned", press "Y" and try again.')); } }; @@ -189,23 +167,77 @@ exports.getBadAccountMessage = function(){ exports.getAccountRegex = function(){ return accountRegex; -} +}; exports.tryToExtractRole = function(account){ var match; while(match = accountRegex.exec(account)){ if(match && account.indexOf('ALKS_') === -1){ // ignore legacy accounts - return match[4] + return match[4]; } } return null; -} +}; exports.getUA = function(){ return 'alks-cli'; -} +}; exports.getStdErrPrompt = function(){ return inquirer.createPromptModule({ output: process.stderr }); -} \ No newline at end of file +}; + +exports.checkForUpdate = function(callback){ + var pkg = require(path.join(__dirname, '../', 'package.json')), + myVer = pkg.version, + app = pkg.name, + noop = function(){}, + noCB = false, + client = new npm({ log: { verbose:noop, info:noop, http:noop } }); + + client.get('https://registry.npmjs.org/'+app+'/latest', { timeout: 1000 }, function (error, data){ + if(!error){ + var latestVer = data.version, + needsUpdate = semVer.gt(latestVer, myVer); + + if(!_.isFunction(callback)) callback = noop; + + exports.log(null, logger, 'needs update? ' + (needsUpdate ? 'yes' : 'no')); + if(needsUpdate){ + var msg = [ + clc.white('Update available '), + clc.blue(myVer), + clc.white(' → '), + clc.green(latestVer + '\n'), + clc.white('Run: '), + clc.green('npm i -g ' + app), + clc.white(' to update') + ].join(''); + + exports.showBorderedMessage(40, msg); + } + else{ + var Dev = require('./developer.js'), // stupid cyclic dependency! + currentVersion = pkg.version, + lastRunVerion = Dev.getVersionAtStart(); + + // check if they just updated + if(lastRunVerion !== null && semVer.gt(currentVersion, lastRunVerion)){ + exports.log(null, logger, 'user updated, updating db with version'); + // give them release notes + exports.showBorderedMessage(110, clc.white(getChangeLog())); + + // save the last version + noCB = true; + Dev.getDeveloper(function(err, developer){ + exports.log(null, logger, 'db'); + developer.lastVersion = currentVersion; + Dev.saveDeveloper(developer, callback); + }); + } + } + } + if(!noCB) callback(null); + }); +}; From 73239d14feb2c7f5af9b48a1b9f518bf6313f086 Mon Sep 17 00:00:00 2001 From: Brian Date: Mon, 2 Oct 2017 11:16:47 -0400 Subject: [PATCH 08/11] finishing up LTK support docs, a few tweaks, etc.. --- README.md | 23 +++++++++++++++++++++++ bin/alks-iam-createltk | 12 +++++++----- changelog.txt | 7 ++----- npm-shrinkwrap.json | 2 +- package.json | 2 +- 5 files changed, 34 insertions(+), 12 deletions(-) diff --git a/README.md b/README.md index 4b462a1e..333d7e15 100644 --- a/README.md +++ b/README.md @@ -199,6 +199,29 @@ Arguments: Outputs a list of available role types. +### `iam createltk` + +`alks iam createrltk` Creates a new long term key in the specified AWS account. + +Arguments: + +* `-p [password]` Your password +* `-n [iamusername]` The name of the IAM user associated with the LTK, be sure to wrap in quotes, alphanumeric including: `@+=._-` +* `-t [roleType]` The role type, to see available roles: `alks iam roletypes`, be sure to wrap in quotes +* `-d`: Include default policies, defaults to false +* `-F` Filters favorite accounts + +Outputs the created user's ARN along with the long term access key and long term secret key. + +### `iam deleteltk` + +`alks iam deleteltk` Deletes a previously created LTK in the specified AWS account. + +Arguments: + +* `-p [password]` Your password +* `-n [iamusername]` The name of the IAM user, be sure to wrap in quotes, alphanumeric including: `@+=._-` + # Output Formats ALKS CLI will output in a variety of formats: diff --git a/bin/alks-iam-createltk b/bin/alks-iam-createltk index 36e0b1d3..38267110 100755 --- a/bin/alks-iam-createltk +++ b/bin/alks-iam-createltk @@ -12,26 +12,28 @@ var program = require('commander'), Developer = require('../lib/developer'), config = require('../package.json'); -var logger = 'iam-createltk'; +var logger = 'iam-createltk', + nameDesc = 'alphanumeric including @+=._-'; program .version(config.version) .description('creates a new IAM Longterm Key') - .option('-n, --iamusername [iamUsername]', 'the name of the iam user associated with the LTK') + .option('-n, --iamusername [iamUsername]', 'the name of the iam user associated with the LTK, ' + nameDesc) .option('-a, --account [alksAccount]', 'alks account to use') .option('-r, --role [alksRole]', 'alks role to use') .option('-F, --favorites', 'filters favorite accounts') .option('-v, --verbose', 'be verbose') .parse(process.argv); -var iamUsername = program.iamusername, +var NAME_REGEX = /^[a-zA-Z0-9!@+=._-]+$/g, + iamUsername = program.iamusername, alksAccount = program.account, alksRole = program.role, filterFaves = program.favorites || false; utils.log(program, logger, 'validating iam user name: ' + iamUsername); -if(_.isEmpty(iamUsername)){ - utils.errorAndExit('The IAM username is required.'); +if(_.isEmpty(iamUsername) || !NAME_REGEX.test(iamUsername)){ + utils.errorAndExit('The username provided contains illegal characters. It must be ' + nameDesc); } if(!_.isUndefined(alksAccount) && _.isUndefined(alksRole)){ diff --git a/changelog.txt b/changelog.txt index 2d1d935e..8f15db6d 100644 --- a/changelog.txt +++ b/changelog.txt @@ -3,11 +3,8 @@ Thanks for upgrading to the latest version of the ALKS CLI! -→ You can now set favorite accounts: `alks developer favorites` -→ `alks sessions open` now floats your favorites to the top -→ `alks sessions open` now supports `-F` to filter your favorites -→ `alks sessions console` now supports `-F` to filter your favorites -→ `alks iam createrole` now supports `-F` to filter your favorites +→ You can now create long term keys: `alks iam createltk` +→ You can remove long term keys: `alks iam deleteltk` → `alks iam deleterole` now supports `-F` to filter your favorites → Have feedback? https://github.com/Cox-Automotive/ALKS-CLI/issues diff --git a/npm-shrinkwrap.json b/npm-shrinkwrap.json index 7472087c..bee05415 100644 --- a/npm-shrinkwrap.json +++ b/npm-shrinkwrap.json @@ -1,6 +1,6 @@ { "name": "alks", - "version": "2.12.0", + "version": "2.13.0", "lockfileVersion": 1, "requires": true, "dependencies": { diff --git a/package.json b/package.json index 1889358e..e21c643a 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "alks", - "version": "2.12.0", + "version": "2.13.0", "description": "CLI for working with ALKS", "main": "bin/alks", "scripts": { From 4b250c28a464fe0006e231d36727d34936777620 Mon Sep 17 00:00:00 2001 From: Brian Date: Tue, 3 Oct 2017 10:53:16 -0400 Subject: [PATCH 09/11] Sessions now provide the expiration time --- changelog.txt | 3 ++- lib/keys.js | 5 +++-- 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/changelog.txt b/changelog.txt index 8f15db6d..3bfa68d8 100644 --- a/changelog.txt +++ b/changelog.txt @@ -1,10 +1,11 @@ -★ Release Notes: 2017-06-20 ★ +★ Release Notes: 2017-10-03 ★ ≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡ Thanks for upgrading to the latest version of the ALKS CLI! → You can now create long term keys: `alks iam createltk` → You can remove long term keys: `alks iam deleteltk` +→ Sessions now provide the expiration time as: `env.AWS_SESSION_EXPIRES` → `alks iam deleterole` now supports `-F` to filter your favorites → Have feedback? https://github.com/Cox-Automotive/ALKS-CLI/issues diff --git a/lib/keys.js b/lib/keys.js index eb9b44b7..016e8e36 100644 --- a/lib/keys.js +++ b/lib/keys.js @@ -153,7 +153,7 @@ exports.getKeys = function(password, isIAM, callback){ exports.getKeyOutput = function(format, key, profile, force){ // strip un-needed data - _.each([ 'meta', '$loki', 'expires', 'alksAccount', 'alksRole' ], function(attr){ + _.each([ 'meta', '$loki', 'isIAM', 'alksAccount', 'alksRole' ], function(attr){ delete key[attr]; }); @@ -169,7 +169,8 @@ exports.getKeyOutput = function(format, key, profile, force){ return [ cmd, ' AWS_ACCESS_KEY_ID=', key.accessKey, ' && ', cmd, ' AWS_SECRET_ACCESS_KEY=', key.secretKey, ' && ', - cmd, ' AWS_SESSION_TOKEN=', key.sessionToken + cmd, ' AWS_SESSION_TOKEN=', key.sessionToken, ' && ', + cmd, ' AWS_SESSION_EXPIRES=', moment(key.expires).format() ].join(''); } else if(format === 'creds'){ From 44fa607068f8877cbfe2fc8cfa36359453de7b37 Mon Sep 17 00:00:00 2001 From: Brian Antonelli Date: Fri, 20 Oct 2017 11:03:13 -0400 Subject: [PATCH 10/11] Update LTK docs --- README.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index 333d7e15..b1eda4f5 100644 --- a/README.md +++ b/README.md @@ -201,14 +201,14 @@ Outputs a list of available role types. ### `iam createltk` -`alks iam createrltk` Creates a new long term key in the specified AWS account. +`alks iam createltk` Creates a new long term key in the specified AWS account. Arguments: * `-p [password]` Your password +* `-a [account]` The ALKS account to use, be sure to wrap in quotes +* `-r [role]` The ALKS role to use, be sure to wrap in quotes * `-n [iamusername]` The name of the IAM user associated with the LTK, be sure to wrap in quotes, alphanumeric including: `@+=._-` -* `-t [roleType]` The role type, to see available roles: `alks iam roletypes`, be sure to wrap in quotes -* `-d`: Include default policies, defaults to false * `-F` Filters favorite accounts Outputs the created user's ARN along with the long term access key and long term secret key. From 62d674e474072bab0071d3283d92ee5b742487aa Mon Sep 17 00:00:00 2001 From: Brian Date: Tue, 14 Nov 2017 11:19:28 -0500 Subject: [PATCH 11/11] Updates release notes --- changelog.txt | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/changelog.txt b/changelog.txt index 3bfa68d8..ec088d2e 100644 --- a/changelog.txt +++ b/changelog.txt @@ -1,12 +1,13 @@ -★ Release Notes: 2017-10-03 ★ +★ Release Notes: 2017-11-14 ★ ≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡ Thanks for upgrading to the latest version of the ALKS CLI! +→ Adds support for long term keys (ltk) for non-prod and lab accounts → You can now create long term keys: `alks iam createltk` → You can remove long term keys: `alks iam deleteltk` → Sessions now provide the expiration time as: `env.AWS_SESSION_EXPIRES` → `alks iam deleterole` now supports `-F` to filter your favorites → Have feedback? https://github.com/Cox-Automotive/ALKS-CLI/issues -☁☁☁☁☁☁ Happy Clouding! ☁☁☁☁☁☁ +☁☁☁☁☁☁ Happy Clouding! ☁☁☁☁☁☁ \ No newline at end of file