From b4b04dc8efc653dddf7146f157449031d9938d01 Mon Sep 17 00:00:00 2001 From: Jack Franklin Date: Thu, 29 May 2014 19:39:47 +0100 Subject: [PATCH 1/6] Deal with API errors * updated middleman to pass errors back * more consistently use cb(err, data) convention * deal with 503 errors (Heroku down) --- bin/cli.js | 4 +++- package.json | 4 ++-- pulldown.js | 27 ++++++++++++++++++++++----- 3 files changed, 27 insertions(+), 8 deletions(-) diff --git a/bin/cli.js b/bin/cli.js index 2ec4f5e..ef25432 100755 --- a/bin/cli.js +++ b/bin/cli.js @@ -112,7 +112,9 @@ var cli = { this.stopTicker(); if(err) { this.log("Error: " + err.message, "red"); - this.log("Did you only use one colon instead of two to separate the search term and file name?"); + if(!err.statusCode) { + this.log("Did you only use one colon instead of two to separate the search term and file name?"); + } return; } if(this.output && !this.dryRun) shell.mkdir("-p", this.output); diff --git a/package.json b/package.json index a33900c..76c9cf1 100644 --- a/package.json +++ b/package.json @@ -23,12 +23,12 @@ "shelljs": "0.0.6", "unzip": "~0.1.8", "pulldown-resolve": "~0.1.2", - "pulldown-middle-man": "0.1.0", "async": "~0.2.8", "underscore": "~1.4.4", "chalk": "~0.2.0", "update-notifier": "~0.1.5", - "yargs": "~1.1.3" + "yargs": "~1.1.3", + "pulldown-middle-man": "^0.2.0" }, "devDependencies": { "mocha": "~1.10.0", diff --git a/pulldown.js b/pulldown.js index 0b39b69..66f9c25 100755 --- a/pulldown.js +++ b/pulldown.js @@ -34,7 +34,13 @@ pulldown.ls = function(done) { pulldown.processDownload = function(userArgs, done) { this.localJson = this.getLocalJson(); - this.processUserArgs(userArgs, function(urls) { + this.processUserArgs(userArgs, function(err, urls) { + if(err) { + return done({ + statusCode: 503, + message: 'Our API returned a 503. It may be offline currently. Please check the Pulldown issue tracker [https://github.com/jackfranklin/pulldown/issues?state=open] and report this if it hasn\'t been already.' + }); + } this.downloadFiles(urls, done); }.bind(this)); }; @@ -51,10 +57,14 @@ pulldown.getLocalJson = function() { pulldown.processUserArgs = function(userArgs, callback) { async.map(userArgs, function(item, done) { - this.parsePackageArgument(item, function(data) { - done(null, data); + this.parsePackageArgument(item, function(err, data) { + done(err, data); }.bind(this)); }.bind(this), function(err, results) { + if(err) { + callback(err); + return; + } results = _.flatten(results); // need to make sure each obj in results is uniq @@ -63,7 +73,7 @@ pulldown.processUserArgs = function(userArgs, callback) { var jsonResults = results.map(function(item) { return JSON.stringify(item); }); results = _.uniq(jsonResults).map(function(item) { return JSON.parse(item); }); - callback(results); + callback(null, results); }); }; @@ -75,7 +85,10 @@ pulldown.parsePackageArgument = function(searchTerm, callback) { resolve.identifier(searchTerm, { registry: this.localJson, helper: function(identifier, callback) { - middleMan.set(identifier, function(data) { + middleMan.set(identifier, function(err, data) { + if(err) { + return callback(err); + } data = data.map(function(item) { return item[0] === "/" ? "https:" + item : item; }); @@ -83,6 +96,10 @@ pulldown.parsePackageArgument = function(searchTerm, callback) { }); } }, function(err, set) { + if(err) { + return callback(err); + } + set = set.map(function(item) { return item[0] === "/" ? "https:" + item : item; }); From f75eb57493c489a04c84b4272b38ea2adafb4b19 Mon Sep 17 00:00:00 2001 From: Jack Franklin Date: Thu, 29 May 2014 22:27:50 +0100 Subject: [PATCH 2/6] Fix passing data through as response, and not as error --- pulldown.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pulldown.js b/pulldown.js index 66f9c25..20c2193 100755 --- a/pulldown.js +++ b/pulldown.js @@ -110,7 +110,7 @@ pulldown.parsePackageArgument = function(searchTerm, callback) { if(!set.length) { resp.push({ searchTerm: searchTerm, found: false }); } - callback(resp); + callback(null, resp); }); }; From 4c1ea1fbc92c262124bfb5e4f2cf4b613499dbc7 Mon Sep 17 00:00:00 2001 From: Jack Franklin Date: Thu, 29 May 2014 23:07:24 +0100 Subject: [PATCH 3/6] hard code middleman version (also ^ doesnt work on Node 0.8 --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 76c9cf1..e640a35 100644 --- a/package.json +++ b/package.json @@ -28,7 +28,7 @@ "chalk": "~0.2.0", "update-notifier": "~0.1.5", "yargs": "~1.1.3", - "pulldown-middle-man": "^0.2.0" + "pulldown-middle-man": "0.2.0" }, "devDependencies": { "mocha": "~1.10.0", From c52b183149080f08cc09c336c99676fb9b23c4e5 Mon Sep 17 00:00:00 2001 From: Jack Franklin Date: Sun, 22 Jun 2014 17:32:57 +0100 Subject: [PATCH 4/6] lock version numbers --- package.json | 30 +++++++++++++++--------------- 1 file changed, 15 insertions(+), 15 deletions(-) diff --git a/package.json b/package.json index e640a35..132e02d 100644 --- a/package.json +++ b/package.json @@ -19,24 +19,24 @@ "url": "git@github.com:jackfranklin/pulldown.git" }, "dependencies": { - "request": "~2.10.0", + "request": "2.10.0", "shelljs": "0.0.6", - "unzip": "~0.1.8", - "pulldown-resolve": "~0.1.2", - "async": "~0.2.8", - "underscore": "~1.4.4", - "chalk": "~0.2.0", - "update-notifier": "~0.1.5", - "yargs": "~1.1.3", + "unzip": "0.1.8", + "pulldown-resolve": "0.1.2", + "async": "0.2.8", + "underscore": "1.4.4", + "chalk": "0.2.0", + "update-notifier": "0.1.5", + "yargs": "1.1.3", "pulldown-middle-man": "0.2.0" }, "devDependencies": { - "mocha": "~1.10.0", - "sinon": "~1.7.2", - "rimraf": "~2.2.0", - "nock": "~0.22.1", - "grunt": "~0.4.1", - "grunt-contrib-jshint": "~0.6.3", - "grunt-simple-mocha": "~0.4.0" + "mocha": "1.10.0", + "sinon": "1.7.2", + "rimraf": "2.2.0", + "nock": "0.22.1", + "grunt": "0.4.1", + "grunt-contrib-jshint": "0.6.3", + "grunt-simple-mocha": "0.4.0" } } From 65c7b1f7030df051bb91cf23c43e2e268312fcd2 Mon Sep 17 00:00:00 2001 From: Jack Franklin Date: Sun, 22 Jun 2014 17:51:39 +0100 Subject: [PATCH 5/6] shrinkwrap --- npm-shrinkwrap.json | 450 ++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 450 insertions(+) create mode 100644 npm-shrinkwrap.json diff --git a/npm-shrinkwrap.json b/npm-shrinkwrap.json new file mode 100644 index 0000000..9713e96 --- /dev/null +++ b/npm-shrinkwrap.json @@ -0,0 +1,450 @@ +{ + "name": "pulldown", + "version": "1.0.4", + "dependencies": { + "async": { + "version": "0.2.8", + "from": "async@0.2.8", + "resolved": "https://registry.npmjs.org/async/-/async-0.2.8.tgz" + }, + "chalk": { + "version": "0.2.0", + "from": "chalk@0.2.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-0.2.0.tgz", + "dependencies": { + "has-color": { + "version": "0.1.7", + "from": "has-color@~0.1.0" + }, + "ansi-styles": { + "version": "0.2.0", + "from": "ansi-styles@~0.2.0" + } + } + }, + "pulldown-middle-man": { + "version": "0.2.0", + "from": "pulldown-middle-man@0.2.0", + "resolved": "https://registry.npmjs.org/pulldown-middle-man/-/pulldown-middle-man-0.2.0.tgz", + "dependencies": { + "request": { + "version": "2.21.0", + "from": "request@~2.21.0", + "dependencies": { + "qs": { + "version": "0.6.6", + "from": "qs@~0.6.0" + }, + "json-stringify-safe": { + "version": "4.0.0", + "from": "json-stringify-safe@~4.0.0" + }, + "forever-agent": { + "version": "0.5.2", + "from": "forever-agent@~0.5.0" + }, + "tunnel-agent": { + "version": "0.3.0", + "from": "tunnel-agent@~0.3.0" + }, + "http-signature": { + "version": "0.9.11", + "from": "http-signature@~0.9.11", + "dependencies": { + "assert-plus": { + "version": "0.1.2", + "from": "assert-plus@0.1.2" + }, + "asn1": { + "version": "0.1.11", + "from": "asn1@0.1.11" + }, + "ctype": { + "version": "0.5.2", + "from": "ctype@0.5.2" + } + } + }, + "hawk": { + "version": "0.13.1", + "from": "hawk@~0.13.0", + "dependencies": { + "hoek": { + "version": "0.8.5", + "from": "hoek@0.8.x" + }, + "boom": { + "version": "0.4.2", + "from": "boom@0.4.x", + "dependencies": { + "hoek": { + "version": "0.9.1", + "from": "hoek@0.9.x" + } + } + }, + "cryptiles": { + "version": "0.2.2", + "from": "cryptiles@0.2.x" + }, + "sntp": { + "version": "0.2.4", + "from": "sntp@0.2.x", + "dependencies": { + "hoek": { + "version": "0.9.1", + "from": "hoek@0.9.x" + } + } + } + } + }, + "aws-sign": { + "version": "0.3.0", + "from": "aws-sign@~0.3.0" + }, + "oauth-sign": { + "version": "0.3.0", + "from": "oauth-sign@~0.3.0" + }, + "cookie-jar": { + "version": "0.3.0", + "from": "cookie-jar@~0.3.0" + }, + "node-uuid": { + "version": "1.4.1", + "from": "node-uuid@~1.4.0" + }, + "mime": { + "version": "1.2.11", + "from": "mime@~1.2.9" + }, + "form-data": { + "version": "0.0.8", + "from": "form-data@0.0.8", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-0.0.8.tgz", + "dependencies": { + "combined-stream": { + "version": "0.0.4", + "from": "combined-stream@~0.0.4", + "dependencies": { + "delayed-stream": { + "version": "0.0.5", + "from": "delayed-stream@0.0.5" + } + } + } + } + } + } + } + } + }, + "pulldown-resolve": { + "version": "0.1.2", + "from": "pulldown-resolve@0.1.2", + "resolved": "https://registry.npmjs.org/pulldown-resolve/-/pulldown-resolve-0.1.2.tgz" + }, + "request": { + "version": "2.10.0", + "from": "request@2.10.0", + "resolved": "https://registry.npmjs.org/request/-/request-2.10.0.tgz" + }, + "shelljs": { + "version": "0.0.6", + "from": "shelljs@0.0.6", + "resolved": "https://registry.npmjs.org/shelljs/-/shelljs-0.0.6.tgz" + }, + "underscore": { + "version": "1.4.4", + "from": "underscore@1.4.4", + "resolved": "https://registry.npmjs.org/underscore/-/underscore-1.4.4.tgz" + }, + "unzip": { + "version": "0.1.8", + "from": "unzip@0.1.8", + "resolved": "https://registry.npmjs.org/unzip/-/unzip-0.1.8.tgz", + "dependencies": { + "fstream": { + "version": "0.1.27", + "from": "fstream@~0.1.21", + "dependencies": { + "graceful-fs": { + "version": "3.0.2", + "from": "graceful-fs@~3.0.2" + }, + "inherits": { + "version": "2.0.1", + "from": "inherits@~2.0.1" + }, + "mkdirp": { + "version": "0.3.5", + "from": "mkdirp@0.3" + } + } + }, + "pullstream": { + "version": "0.4.0", + "from": "pullstream@~0.4.0", + "dependencies": { + "over": { + "version": "0.0.5", + "from": "over@~0.0.5" + }, + "slice-stream": { + "version": "0.0.0", + "from": "slice-stream@0.0.0", + "resolved": "https://registry.npmjs.org/slice-stream/-/slice-stream-0.0.0.tgz" + } + } + }, + "binary": { + "version": "0.3.0", + "from": "binary@~0.3.0", + "dependencies": { + "chainsaw": { + "version": "0.1.0", + "from": "chainsaw@~0.1.0", + "dependencies": { + "traverse": { + "version": "0.3.9", + "from": "traverse@>=0.3.0 <0.4" + } + } + }, + "buffers": { + "version": "0.1.1", + "from": "buffers@~0.1.1" + } + } + }, + "readable-stream": { + "version": "1.0.27-1", + "from": "readable-stream@~1.0.0", + "dependencies": { + "core-util-is": { + "version": "1.0.1", + "from": "core-util-is@~1.0.0" + }, + "isarray": { + "version": "0.0.1", + "from": "isarray@0.0.1" + }, + "string_decoder": { + "version": "0.10.25-1", + "from": "string_decoder@~0.10.x" + }, + "inherits": { + "version": "2.0.1", + "from": "inherits@~2.0.1" + } + } + }, + "setimmediate": { + "version": "1.0.2", + "from": "setimmediate@~1.0.1", + "resolved": "https://registry.npmjs.org/setimmediate/-/setimmediate-1.0.2.tgz" + }, + "match-stream": { + "version": "0.0.2", + "from": "match-stream@~0.0.2", + "dependencies": { + "buffers": { + "version": "0.1.1", + "from": "buffers@~0.1.1" + } + } + } + } + }, + "update-notifier": { + "version": "0.1.5", + "from": "update-notifier@0.1.5", + "resolved": "https://registry.npmjs.org/update-notifier/-/update-notifier-0.1.5.tgz", + "dependencies": { + "request": { + "version": "2.22.0", + "from": "request@~2.22.0", + "dependencies": { + "qs": { + "version": "0.6.6", + "from": "qs@~0.6.0" + }, + "json-stringify-safe": { + "version": "4.0.0", + "from": "json-stringify-safe@~4.0.0" + }, + "forever-agent": { + "version": "0.5.2", + "from": "forever-agent@~0.5.0" + }, + "tunnel-agent": { + "version": "0.3.0", + "from": "tunnel-agent@~0.3.0" + }, + "http-signature": { + "version": "0.10.0", + "from": "http-signature@~0.10.0", + "dependencies": { + "assert-plus": { + "version": "0.1.2", + "from": "assert-plus@0.1.2" + }, + "asn1": { + "version": "0.1.11", + "from": "asn1@0.1.11" + }, + "ctype": { + "version": "0.5.2", + "from": "ctype@0.5.2" + } + } + }, + "hawk": { + "version": "0.13.1", + "from": "hawk@~0.13.0", + "dependencies": { + "hoek": { + "version": "0.8.5", + "from": "hoek@0.8.x" + }, + "boom": { + "version": "0.4.2", + "from": "boom@0.4.x", + "dependencies": { + "hoek": { + "version": "0.9.1", + "from": "hoek@0.9.x" + } + } + }, + "cryptiles": { + "version": "0.2.2", + "from": "cryptiles@0.2.x" + }, + "sntp": { + "version": "0.2.4", + "from": "sntp@0.2.x", + "dependencies": { + "hoek": { + "version": "0.9.1", + "from": "hoek@0.9.x" + } + } + } + } + }, + "aws-sign": { + "version": "0.3.0", + "from": "aws-sign@~0.3.0" + }, + "oauth-sign": { + "version": "0.3.0", + "from": "oauth-sign@~0.3.0" + }, + "cookie-jar": { + "version": "0.3.0", + "from": "cookie-jar@~0.3.0" + }, + "node-uuid": { + "version": "1.4.1", + "from": "node-uuid@~1.4.0" + }, + "mime": { + "version": "1.2.11", + "from": "mime@~1.2.9" + }, + "form-data": { + "version": "0.0.8", + "from": "form-data@0.0.8", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-0.0.8.tgz", + "dependencies": { + "combined-stream": { + "version": "0.0.4", + "from": "combined-stream@~0.0.4", + "dependencies": { + "delayed-stream": { + "version": "0.0.5", + "from": "delayed-stream@0.0.5" + } + } + } + } + } + } + }, + "configstore": { + "version": "0.1.7", + "from": "configstore@~0.1.0", + "dependencies": { + "lodash": { + "version": "2.4.1", + "from": "lodash@~2.4.1" + }, + "mkdirp": { + "version": "0.3.5", + "from": "mkdirp@~0.3.5" + }, + "js-yaml": { + "version": "2.1.3", + "from": "js-yaml@~2.1.0", + "dependencies": { + "argparse": { + "version": "0.1.15", + "from": "argparse@~ 0.1.11", + "dependencies": { + "underscore.string": { + "version": "2.3.3", + "from": "underscore.string@~2.3.1" + } + } + }, + "esprima": { + "version": "1.0.4", + "from": "esprima@~ 1.0.2" + } + } + }, + "osenv": { + "version": "0.0.3", + "from": "osenv@0.0.3" + }, + "graceful-fs": { + "version": "2.0.3", + "from": "graceful-fs@~2.0.1" + } + } + }, + "semver": { + "version": "2.0.11", + "from": "semver@~2.0.0" + }, + "chalk": { + "version": "0.1.1", + "from": "chalk@~0.1.0", + "dependencies": { + "has-color": { + "version": "0.1.7", + "from": "has-color@~0.1.0" + }, + "ansi-styles": { + "version": "0.1.2", + "from": "ansi-styles@~0.1.0" + } + } + } + } + }, + "yargs": { + "version": "1.1.3", + "from": "yargs@1.1.3", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-1.1.3.tgz", + "dependencies": { + "minimist": { + "version": "0.0.10", + "from": "minimist@~0.0.1" + } + } + } + } +} From 5a9bcc99750853b77ab20a5bab1500c9a5c9e44a Mon Sep 17 00:00:00 2001 From: Jack Franklin Date: Sun, 22 Jun 2014 18:12:45 +0100 Subject: [PATCH 6/6] dont need shrinkwrap --- npm-shrinkwrap.json | 450 -------------------------------------------- 1 file changed, 450 deletions(-) delete mode 100644 npm-shrinkwrap.json diff --git a/npm-shrinkwrap.json b/npm-shrinkwrap.json deleted file mode 100644 index 9713e96..0000000 --- a/npm-shrinkwrap.json +++ /dev/null @@ -1,450 +0,0 @@ -{ - "name": "pulldown", - "version": "1.0.4", - "dependencies": { - "async": { - "version": "0.2.8", - "from": "async@0.2.8", - "resolved": "https://registry.npmjs.org/async/-/async-0.2.8.tgz" - }, - "chalk": { - "version": "0.2.0", - "from": "chalk@0.2.0", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-0.2.0.tgz", - "dependencies": { - "has-color": { - "version": "0.1.7", - "from": "has-color@~0.1.0" - }, - "ansi-styles": { - "version": "0.2.0", - "from": "ansi-styles@~0.2.0" - } - } - }, - "pulldown-middle-man": { - "version": "0.2.0", - "from": "pulldown-middle-man@0.2.0", - "resolved": "https://registry.npmjs.org/pulldown-middle-man/-/pulldown-middle-man-0.2.0.tgz", - "dependencies": { - "request": { - "version": "2.21.0", - "from": "request@~2.21.0", - "dependencies": { - "qs": { - "version": "0.6.6", - "from": "qs@~0.6.0" - }, - "json-stringify-safe": { - "version": "4.0.0", - "from": "json-stringify-safe@~4.0.0" - }, - "forever-agent": { - "version": "0.5.2", - "from": "forever-agent@~0.5.0" - }, - "tunnel-agent": { - "version": "0.3.0", - "from": "tunnel-agent@~0.3.0" - }, - "http-signature": { - "version": "0.9.11", - "from": "http-signature@~0.9.11", - "dependencies": { - "assert-plus": { - "version": "0.1.2", - "from": "assert-plus@0.1.2" - }, - "asn1": { - "version": "0.1.11", - "from": "asn1@0.1.11" - }, - "ctype": { - "version": "0.5.2", - "from": "ctype@0.5.2" - } - } - }, - "hawk": { - "version": "0.13.1", - "from": "hawk@~0.13.0", - "dependencies": { - "hoek": { - "version": "0.8.5", - "from": "hoek@0.8.x" - }, - "boom": { - "version": "0.4.2", - "from": "boom@0.4.x", - "dependencies": { - "hoek": { - "version": "0.9.1", - "from": "hoek@0.9.x" - } - } - }, - "cryptiles": { - "version": "0.2.2", - "from": "cryptiles@0.2.x" - }, - "sntp": { - "version": "0.2.4", - "from": "sntp@0.2.x", - "dependencies": { - "hoek": { - "version": "0.9.1", - "from": "hoek@0.9.x" - } - } - } - } - }, - "aws-sign": { - "version": "0.3.0", - "from": "aws-sign@~0.3.0" - }, - "oauth-sign": { - "version": "0.3.0", - "from": "oauth-sign@~0.3.0" - }, - "cookie-jar": { - "version": "0.3.0", - "from": "cookie-jar@~0.3.0" - }, - "node-uuid": { - "version": "1.4.1", - "from": "node-uuid@~1.4.0" - }, - "mime": { - "version": "1.2.11", - "from": "mime@~1.2.9" - }, - "form-data": { - "version": "0.0.8", - "from": "form-data@0.0.8", - "resolved": "https://registry.npmjs.org/form-data/-/form-data-0.0.8.tgz", - "dependencies": { - "combined-stream": { - "version": "0.0.4", - "from": "combined-stream@~0.0.4", - "dependencies": { - "delayed-stream": { - "version": "0.0.5", - "from": "delayed-stream@0.0.5" - } - } - } - } - } - } - } - } - }, - "pulldown-resolve": { - "version": "0.1.2", - "from": "pulldown-resolve@0.1.2", - "resolved": "https://registry.npmjs.org/pulldown-resolve/-/pulldown-resolve-0.1.2.tgz" - }, - "request": { - "version": "2.10.0", - "from": "request@2.10.0", - "resolved": "https://registry.npmjs.org/request/-/request-2.10.0.tgz" - }, - "shelljs": { - "version": "0.0.6", - "from": "shelljs@0.0.6", - "resolved": "https://registry.npmjs.org/shelljs/-/shelljs-0.0.6.tgz" - }, - "underscore": { - "version": "1.4.4", - "from": "underscore@1.4.4", - "resolved": "https://registry.npmjs.org/underscore/-/underscore-1.4.4.tgz" - }, - "unzip": { - "version": "0.1.8", - "from": "unzip@0.1.8", - "resolved": "https://registry.npmjs.org/unzip/-/unzip-0.1.8.tgz", - "dependencies": { - "fstream": { - "version": "0.1.27", - "from": "fstream@~0.1.21", - "dependencies": { - "graceful-fs": { - "version": "3.0.2", - "from": "graceful-fs@~3.0.2" - }, - "inherits": { - "version": "2.0.1", - "from": "inherits@~2.0.1" - }, - "mkdirp": { - "version": "0.3.5", - "from": "mkdirp@0.3" - } - } - }, - "pullstream": { - "version": "0.4.0", - "from": "pullstream@~0.4.0", - "dependencies": { - "over": { - "version": "0.0.5", - "from": "over@~0.0.5" - }, - "slice-stream": { - "version": "0.0.0", - "from": "slice-stream@0.0.0", - "resolved": "https://registry.npmjs.org/slice-stream/-/slice-stream-0.0.0.tgz" - } - } - }, - "binary": { - "version": "0.3.0", - "from": "binary@~0.3.0", - "dependencies": { - "chainsaw": { - "version": "0.1.0", - "from": "chainsaw@~0.1.0", - "dependencies": { - "traverse": { - "version": "0.3.9", - "from": "traverse@>=0.3.0 <0.4" - } - } - }, - "buffers": { - "version": "0.1.1", - "from": "buffers@~0.1.1" - } - } - }, - "readable-stream": { - "version": "1.0.27-1", - "from": "readable-stream@~1.0.0", - "dependencies": { - "core-util-is": { - "version": "1.0.1", - "from": "core-util-is@~1.0.0" - }, - "isarray": { - "version": "0.0.1", - "from": "isarray@0.0.1" - }, - "string_decoder": { - "version": "0.10.25-1", - "from": "string_decoder@~0.10.x" - }, - "inherits": { - "version": "2.0.1", - "from": "inherits@~2.0.1" - } - } - }, - "setimmediate": { - "version": "1.0.2", - "from": "setimmediate@~1.0.1", - "resolved": "https://registry.npmjs.org/setimmediate/-/setimmediate-1.0.2.tgz" - }, - "match-stream": { - "version": "0.0.2", - "from": "match-stream@~0.0.2", - "dependencies": { - "buffers": { - "version": "0.1.1", - "from": "buffers@~0.1.1" - } - } - } - } - }, - "update-notifier": { - "version": "0.1.5", - "from": "update-notifier@0.1.5", - "resolved": "https://registry.npmjs.org/update-notifier/-/update-notifier-0.1.5.tgz", - "dependencies": { - "request": { - "version": "2.22.0", - "from": "request@~2.22.0", - "dependencies": { - "qs": { - "version": "0.6.6", - "from": "qs@~0.6.0" - }, - "json-stringify-safe": { - "version": "4.0.0", - "from": "json-stringify-safe@~4.0.0" - }, - "forever-agent": { - "version": "0.5.2", - "from": "forever-agent@~0.5.0" - }, - "tunnel-agent": { - "version": "0.3.0", - "from": "tunnel-agent@~0.3.0" - }, - "http-signature": { - "version": "0.10.0", - "from": "http-signature@~0.10.0", - "dependencies": { - "assert-plus": { - "version": "0.1.2", - "from": "assert-plus@0.1.2" - }, - "asn1": { - "version": "0.1.11", - "from": "asn1@0.1.11" - }, - "ctype": { - "version": "0.5.2", - "from": "ctype@0.5.2" - } - } - }, - "hawk": { - "version": "0.13.1", - "from": "hawk@~0.13.0", - "dependencies": { - "hoek": { - "version": "0.8.5", - "from": "hoek@0.8.x" - }, - "boom": { - "version": "0.4.2", - "from": "boom@0.4.x", - "dependencies": { - "hoek": { - "version": "0.9.1", - "from": "hoek@0.9.x" - } - } - }, - "cryptiles": { - "version": "0.2.2", - "from": "cryptiles@0.2.x" - }, - "sntp": { - "version": "0.2.4", - "from": "sntp@0.2.x", - "dependencies": { - "hoek": { - "version": "0.9.1", - "from": "hoek@0.9.x" - } - } - } - } - }, - "aws-sign": { - "version": "0.3.0", - "from": "aws-sign@~0.3.0" - }, - "oauth-sign": { - "version": "0.3.0", - "from": "oauth-sign@~0.3.0" - }, - "cookie-jar": { - "version": "0.3.0", - "from": "cookie-jar@~0.3.0" - }, - "node-uuid": { - "version": "1.4.1", - "from": "node-uuid@~1.4.0" - }, - "mime": { - "version": "1.2.11", - "from": "mime@~1.2.9" - }, - "form-data": { - "version": "0.0.8", - "from": "form-data@0.0.8", - "resolved": "https://registry.npmjs.org/form-data/-/form-data-0.0.8.tgz", - "dependencies": { - "combined-stream": { - "version": "0.0.4", - "from": "combined-stream@~0.0.4", - "dependencies": { - "delayed-stream": { - "version": "0.0.5", - "from": "delayed-stream@0.0.5" - } - } - } - } - } - } - }, - "configstore": { - "version": "0.1.7", - "from": "configstore@~0.1.0", - "dependencies": { - "lodash": { - "version": "2.4.1", - "from": "lodash@~2.4.1" - }, - "mkdirp": { - "version": "0.3.5", - "from": "mkdirp@~0.3.5" - }, - "js-yaml": { - "version": "2.1.3", - "from": "js-yaml@~2.1.0", - "dependencies": { - "argparse": { - "version": "0.1.15", - "from": "argparse@~ 0.1.11", - "dependencies": { - "underscore.string": { - "version": "2.3.3", - "from": "underscore.string@~2.3.1" - } - } - }, - "esprima": { - "version": "1.0.4", - "from": "esprima@~ 1.0.2" - } - } - }, - "osenv": { - "version": "0.0.3", - "from": "osenv@0.0.3" - }, - "graceful-fs": { - "version": "2.0.3", - "from": "graceful-fs@~2.0.1" - } - } - }, - "semver": { - "version": "2.0.11", - "from": "semver@~2.0.0" - }, - "chalk": { - "version": "0.1.1", - "from": "chalk@~0.1.0", - "dependencies": { - "has-color": { - "version": "0.1.7", - "from": "has-color@~0.1.0" - }, - "ansi-styles": { - "version": "0.1.2", - "from": "ansi-styles@~0.1.0" - } - } - } - } - }, - "yargs": { - "version": "1.1.3", - "from": "yargs@1.1.3", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-1.1.3.tgz", - "dependencies": { - "minimist": { - "version": "0.0.10", - "from": "minimist@~0.0.1" - } - } - } - } -}