From 59fb1dea540fd76c27da3676605ffeff7efd0200 Mon Sep 17 00:00:00 2001 From: Raul Ochoa Date: Tue, 6 Oct 2015 18:49:11 +0200 Subject: [PATCH 01/40] Start using mapconfig-extension branch from windshaft --- npm-shrinkwrap.json | 41 ++++++++++++++++++++++++++--------------- package.json | 2 +- 2 files changed, 27 insertions(+), 16 deletions(-) diff --git a/npm-shrinkwrap.json b/npm-shrinkwrap.json index 6370ac3a..727251f8 100644 --- a/npm-shrinkwrap.json +++ b/npm-shrinkwrap.json @@ -68,14 +68,14 @@ "dependencies": { "unpipe": { "version": "1.0.0", - "from": "unpipe@1.0.0", + "from": "unpipe@~1.0.0", "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz" } } }, "type-is": { "version": "1.6.9", - "from": "type-is@~1.6.9", + "from": "type-is@~1.6.6", "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.9.tgz", "dependencies": { "media-typer": { @@ -85,7 +85,7 @@ }, "mime-types": { "version": "2.1.7", - "from": "mime-types@~2.1.7", + "from": "mime-types@~2.1.6", "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.7.tgz", "dependencies": { "mime-db": { @@ -192,7 +192,7 @@ "dependencies": { "mime-types": { "version": "2.1.7", - "from": "mime-types@~2.1.7", + "from": "mime-types@~2.1.6", "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.7.tgz", "dependencies": { "mime-db": { @@ -381,7 +381,7 @@ }, "mime-types": { "version": "2.1.7", - "from": "mime-types@~2.1.7", + "from": "mime-types@~2.1.6", "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.7.tgz", "dependencies": { "mime-db": { @@ -441,7 +441,7 @@ }, "inherits": { "version": "2.0.1", - "from": "inherits@2", + "from": "inherits@~2.0.1", "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.1.tgz" } } @@ -533,7 +533,7 @@ }, "inherits": { "version": "2.0.1", - "from": "inherits@2", + "from": "inherits@~2.0.1", "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.1.tgz" }, "isarray": { @@ -620,9 +620,9 @@ "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.4.1.tgz" }, "tough-cookie": { - "version": "2.0.0", + "version": "2.1.0", "from": "tough-cookie@>=0.12.0", - "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.0.0.tgz" + "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.1.0.tgz" }, "http-signature": { "version": "0.11.0", @@ -711,9 +711,9 @@ "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-1.8.0.tgz", "dependencies": { "bluebird": { - "version": "2.10.1", + "version": "2.10.2", "from": "bluebird@^2.9.30", - "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-2.10.1.tgz" + "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-2.10.2.tgz" }, "chalk": { "version": "1.1.1", @@ -827,8 +827,9 @@ "resolved": "https://registry.npmjs.org/underscore/-/underscore-1.6.0.tgz" }, "windshaft": { - "version": "1.0.1", - "from": "windshaft@~1.0.1", + "version": "1.0.2", + "from": "https://github.com/CartoDB/Windshaft/tarball/mapconfig-extension", + "resolved": "https://github.com/CartoDB/Windshaft/tarball/mapconfig-extension", "dependencies": { "mapnik": { "version": "1.4.15-cdb2", @@ -1301,9 +1302,9 @@ "resolved": "https://registry.npmjs.org/node-uuid/-/node-uuid-1.4.3.tgz" }, "tough-cookie": { - "version": "2.0.0", + "version": "2.1.0", "from": "tough-cookie@>=0.12.0", - "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.0.0.tgz" + "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.1.0.tgz" }, "form-data": { "version": "0.1.4", @@ -2966,6 +2967,11 @@ } } } + }, + "semver": { + "version": "1.1.4", + "from": "semver@~1.1.4", + "resolved": "https://registry.npmjs.org/semver/-/semver-1.1.4.tgz" } } }, @@ -3046,6 +3052,11 @@ } } }, + "semver": { + "version": "5.0.3", + "from": "semver@~5.0.3", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.0.3.tgz" + }, "carto": { "version": "0.15.1-cdb1", "from": "https://github.com/CartoDB/carto/tarball/0.15.1-cdb1", diff --git a/package.json b/package.json index 473fbbdf..12f9194e 100644 --- a/package.json +++ b/package.json @@ -29,7 +29,7 @@ "node-statsd": "~0.0.7", "underscore" : "~1.6.0", "dot": "~1.0.2", - "windshaft": "~1.0.1", + "windshaft": "https://github.com/CartoDB/Windshaft/tarball/mapconfig-extension", "step": "~0.0.6", "queue-async": "~1.0.7", "request": "~2.62.0", From b80e80bd61707c711b928e1f12a1e3aa599f8576 Mon Sep 17 00:00:00 2001 From: Raul Ochoa Date: Tue, 6 Oct 2015 19:46:52 +0200 Subject: [PATCH 02/40] Do not pass MapStore as it is no longer needed in Attributes backend --- lib/cartodb/server.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/cartodb/server.js b/lib/cartodb/server.js index e7824d2b..c608dc4d 100644 --- a/lib/cartodb/server.js +++ b/lib/cartodb/server.js @@ -131,7 +131,7 @@ module.exports = function(serverOptions) { var rendererStatsReporter = new RendererStatsReporter(rendererCache, rendererCacheOpts.statsInterval); rendererStatsReporter.start(); - var attributesBackend = new windshaft.backend.Attributes(mapStore); + var attributesBackend = new windshaft.backend.Attributes(); var previewBackend = new windshaft.backend.Preview(rendererCache); var tileBackend = new windshaft.backend.Tile(rendererCache); var mapValidatorBackend = new windshaft.backend.MapValidator(tileBackend, attributesBackend); From 9bc95a6071372db87849b473d32381b17b714128 Mon Sep 17 00:00:00 2001 From: Raul Ochoa Date: Tue, 6 Oct 2015 19:47:44 +0200 Subject: [PATCH 03/40] List endpoint for layergroups --- lib/cartodb/controllers/layergroup.js | 37 +++++++- lib/cartodb/server.js | 1 + test/acceptance/lists.js | 121 ++++++++++++++++++++++++++ 3 files changed, 158 insertions(+), 1 deletion(-) create mode 100644 test/acceptance/lists.js diff --git a/lib/cartodb/controllers/layergroup.js b/lib/cartodb/controllers/layergroup.js index 9194c05f..f352b263 100644 --- a/lib/cartodb/controllers/layergroup.js +++ b/lib/cartodb/controllers/layergroup.js @@ -17,6 +17,7 @@ var TablesCacheEntry = require('../cache/model/database_tables_entry'); * @param {TileBackend} tileBackend * @param {PreviewBackend} previewBackend * @param {AttributesBackend} attributesBackend + * @param {ListBackend} listBackend * @param {SurrogateKeysCache} surrogateKeysCache * @param {UserLimitsApi} userLimitsApi * @param {QueryTablesApi} queryTablesApi @@ -24,13 +25,14 @@ var TablesCacheEntry = require('../cache/model/database_tables_entry'); * @constructor */ function LayergroupController(authApi, pgConnection, mapStore, tileBackend, previewBackend, attributesBackend, - surrogateKeysCache, userLimitsApi, queryTablesApi, layergroupAffectedTables) { + listBackend, surrogateKeysCache, userLimitsApi, queryTablesApi, layergroupAffectedTables) { BaseController.call(this, authApi, pgConnection); this.mapStore = mapStore; this.tileBackend = tileBackend; this.previewBackend = previewBackend; this.attributesBackend = attributesBackend; + this.listBackend = listBackend; this.surrogateKeysCache = surrogateKeysCache; this.userLimitsApi = userLimitsApi; this.queryTablesApi = queryTablesApi; @@ -66,6 +68,39 @@ LayergroupController.prototype.register = function(app) { app.get(app.base_url_mapconfig + '/static/bbox/:token/:west,:south,:east,:north/:width/:height.:format', cors(), userMiddleware, this.bbox.bind(this)); + + app.get(app.base_url_mapconfig + + '/:token/list/:listName', cors(), userMiddleware, + this.list.bind(this)); + +}; + +LayergroupController.prototype.list = function(req, res) { + var self = this; + + step( + function setupParams() { + self.req2params(req, this); + }, + function retrieveList(err) { + assert.ifError(err); + + var mapConfigProvider = new MapStoreMapConfigProvider( + self.mapStore, req.context.user, self.userLimitsApi, req.params + ); + self.listBackend.getList(mapConfigProvider, req.params, this); + }, + function finish(err, tile, stats) { + req.profiler.add(stats || {}); + + if (err) { + self.sendError(req, res, err, 'GET LIST'); + } else { + self.sendResponse(req, res, tile, 200); + } + } + ); + }; LayergroupController.prototype.attributes = function(req, res) { diff --git a/lib/cartodb/server.js b/lib/cartodb/server.js index c608dc4d..2745ff23 100644 --- a/lib/cartodb/server.js +++ b/lib/cartodb/server.js @@ -161,6 +161,7 @@ module.exports = function(serverOptions) { tileBackend, previewBackend, attributesBackend, + new windshaft.backend.List(), surrogateKeysCache, userLimitsApi, queryTablesApi, diff --git a/test/acceptance/lists.js b/test/acceptance/lists.js new file mode 100644 index 00000000..9bd07a54 --- /dev/null +++ b/test/acceptance/lists.js @@ -0,0 +1,121 @@ +var assert = require('../support/assert'); +var step = require('step'); + +var helper = require(__dirname + '/../support/test_helper'); +var LayergroupToken = require('../../lib/cartodb/models/layergroup_token'); + +var CartodbWindshaft = require('../../lib/cartodb/server'); +var serverOptions = require('../../lib/cartodb/server_options'); +var server = new CartodbWindshaft(serverOptions); +server.setMaxListeners(0); + + +describe('lists', function() { + + var keysToDelete; + + beforeEach(function() { + keysToDelete = {}; + }); + + afterEach(function(done) { + helper.deleteRedisKeys(keysToDelete, done); + }); + + + it("should expose layer list", function(done) { + + var layergroup = { + version: '1.5.0', + layers: [ + { + type: 'mapnik', + options: { + sql: 'select * from test_table', + cartocss: '#layer { marker-fill: red; marker-width: 32; marker-allow-overlap: true; }', + cartocss_version: '2.3.0' + }, + lists: { + names: { + columns: ['name'] + } + } + } + ] + }; + + var layergroupId; + step( + function createLayergroup() { + var next = this; + assert.response(server, + { + url: '/api/v1/map', + method: 'POST', + headers: { + host: 'localhost', + 'Content-Type': 'application/json' + }, + data: JSON.stringify(layergroup) + }, + { + status: 200, + headers: { + 'Content-Type': 'application/json; charset=utf-8' + } + }, + function(res, err) { + if (err) { + return next(err); + } + return next(null, JSON.parse(res.body).layergroupid); + } + ); + }, + function getList(err, _layergroupId) { + assert.ifError(err); + + var next = this; + layergroupId = _layergroupId; + + assert.response(server, + { + url: '/api/v1/map/' + layergroupId + '/list/names', + method: 'GET', + headers: { + host: 'localhost' + } + }, + { + status: 200, + headers: { + 'Content-Type': 'application/json; charset=utf-8' + } + }, + function(res, err) { + if (err) { + return next(err); + } + + var expectedList = [ + {name:"Hawai"}, + {name:"El Estocolmo"}, + {name:"El Rey del Tallarín"}, + {name:"El Lacón"}, + {name:"El Pico"} + ]; + assert.deepEqual(JSON.parse(res.body), expectedList); + + next(null); + } + ); + }, + function finish(err) { + keysToDelete['map_cfg|' + LayergroupToken.parse(layergroupId).token] = 0; + keysToDelete['user:localhost:mapviews:global'] = 5; + done(err); + } + ); + }); + +}); From 36a6af326652df90a7a410776e8842eff8fdec36 Mon Sep 17 00:00:00 2001 From: Raul Ochoa Date: Mon, 26 Oct 2015 10:23:56 +0100 Subject: [PATCH 04/40] Replaces List with Widget backend and changes list access to be layer based --- lib/cartodb/controllers/layergroup.js | 10 +++++----- lib/cartodb/server.js | 2 +- test/acceptance/lists.js | 9 ++++++--- 3 files changed, 12 insertions(+), 9 deletions(-) diff --git a/lib/cartodb/controllers/layergroup.js b/lib/cartodb/controllers/layergroup.js index f352b263..0fa5500c 100644 --- a/lib/cartodb/controllers/layergroup.js +++ b/lib/cartodb/controllers/layergroup.js @@ -17,7 +17,7 @@ var TablesCacheEntry = require('../cache/model/database_tables_entry'); * @param {TileBackend} tileBackend * @param {PreviewBackend} previewBackend * @param {AttributesBackend} attributesBackend - * @param {ListBackend} listBackend + * @param {WidgetBackend} widgetBackend * @param {SurrogateKeysCache} surrogateKeysCache * @param {UserLimitsApi} userLimitsApi * @param {QueryTablesApi} queryTablesApi @@ -25,14 +25,14 @@ var TablesCacheEntry = require('../cache/model/database_tables_entry'); * @constructor */ function LayergroupController(authApi, pgConnection, mapStore, tileBackend, previewBackend, attributesBackend, - listBackend, surrogateKeysCache, userLimitsApi, queryTablesApi, layergroupAffectedTables) { + widgetBackend, surrogateKeysCache, userLimitsApi, queryTablesApi, layergroupAffectedTables) { BaseController.call(this, authApi, pgConnection); this.mapStore = mapStore; this.tileBackend = tileBackend; this.previewBackend = previewBackend; this.attributesBackend = attributesBackend; - this.listBackend = listBackend; + this.widgetBackend = widgetBackend; this.surrogateKeysCache = surrogateKeysCache; this.userLimitsApi = userLimitsApi; this.queryTablesApi = queryTablesApi; @@ -70,7 +70,7 @@ LayergroupController.prototype.register = function(app) { this.bbox.bind(this)); app.get(app.base_url_mapconfig + - '/:token/list/:listName', cors(), userMiddleware, + '/:token/:layer/list/:listName', cors(), userMiddleware, this.list.bind(this)); }; @@ -88,7 +88,7 @@ LayergroupController.prototype.list = function(req, res) { var mapConfigProvider = new MapStoreMapConfigProvider( self.mapStore, req.context.user, self.userLimitsApi, req.params ); - self.listBackend.getList(mapConfigProvider, req.params, this); + self.widgetBackend.getList(mapConfigProvider, req.params, this); }, function finish(err, tile, stats) { req.profiler.add(stats || {}); diff --git a/lib/cartodb/server.js b/lib/cartodb/server.js index 2745ff23..e4079574 100644 --- a/lib/cartodb/server.js +++ b/lib/cartodb/server.js @@ -161,7 +161,7 @@ module.exports = function(serverOptions) { tileBackend, previewBackend, attributesBackend, - new windshaft.backend.List(), + new windshaft.backend.Widget(), surrogateKeysCache, userLimitsApi, queryTablesApi, diff --git a/test/acceptance/lists.js b/test/acceptance/lists.js index 9bd07a54..6c12ff2a 100644 --- a/test/acceptance/lists.js +++ b/test/acceptance/lists.js @@ -35,9 +35,12 @@ describe('lists', function() { cartocss: '#layer { marker-fill: red; marker-width: 32; marker-allow-overlap: true; }', cartocss_version: '2.3.0' }, - lists: { + widgets: { names: { - columns: ['name'] + type: 'list', + options: { + columns: ['name'] + } } } } @@ -80,7 +83,7 @@ describe('lists', function() { assert.response(server, { - url: '/api/v1/map/' + layergroupId + '/list/names', + url: '/api/v1/map/' + layergroupId + '/0/list/names', method: 'GET', headers: { host: 'localhost' From 4b0ecb1251d8dd3a5ae6086334a6c2bbcd6a8818 Mon Sep 17 00:00:00 2001 From: Raul Ochoa Date: Mon, 26 Oct 2015 11:10:59 +0100 Subject: [PATCH 05/40] Adds histogram support, a bit of code duplication --- lib/cartodb/controllers/layergroup.js | 31 +++++++ test/acceptance/histograms.js | 117 ++++++++++++++++++++++++++ 2 files changed, 148 insertions(+) create mode 100644 test/acceptance/histograms.js diff --git a/lib/cartodb/controllers/layergroup.js b/lib/cartodb/controllers/layergroup.js index 0fa5500c..3226ca6e 100644 --- a/lib/cartodb/controllers/layergroup.js +++ b/lib/cartodb/controllers/layergroup.js @@ -73,6 +73,9 @@ LayergroupController.prototype.register = function(app) { '/:token/:layer/list/:listName', cors(), userMiddleware, this.list.bind(this)); + app.get(app.base_url_mapconfig + + '/:token/:layer/histogram/:histogramName', cors(), userMiddleware, + this.histogram.bind(this)); }; LayergroupController.prototype.list = function(req, res) { @@ -103,6 +106,34 @@ LayergroupController.prototype.list = function(req, res) { }; +LayergroupController.prototype.histogram = function(req, res) { + var self = this; + + step( + function setupParams() { + self.req2params(req, this); + }, + function retrieveList(err) { + assert.ifError(err); + + var mapConfigProvider = new MapStoreMapConfigProvider( + self.mapStore, req.context.user, self.userLimitsApi, req.params + ); + self.widgetBackend.getHistogram(mapConfigProvider, req.params, this); + }, + function finish(err, tile, stats) { + req.profiler.add(stats || {}); + + if (err) { + self.sendError(req, res, err, 'GET LIST'); + } else { + self.sendResponse(req, res, tile, 200); + } + } + ); + +}; + LayergroupController.prototype.attributes = function(req, res) { var self = this; diff --git a/test/acceptance/histograms.js b/test/acceptance/histograms.js new file mode 100644 index 00000000..9177383d --- /dev/null +++ b/test/acceptance/histograms.js @@ -0,0 +1,117 @@ +var assert = require('../support/assert'); +var step = require('step'); + +var helper = require(__dirname + '/../support/test_helper'); +var LayergroupToken = require('../../lib/cartodb/models/layergroup_token'); + +var CartodbWindshaft = require('../../lib/cartodb/server'); +var serverOptions = require('../../lib/cartodb/server_options'); +var server = new CartodbWindshaft(serverOptions); +server.setMaxListeners(0); + + +describe('lists', function() { + + var keysToDelete; + + beforeEach(function() { + keysToDelete = {}; + }); + + afterEach(function(done) { + helper.deleteRedisKeys(keysToDelete, done); + }); + + + it("should expose layer histogram", function(done) { + + var layergroup = { + version: '1.5.0', + layers: [ + { + type: 'mapnik', + options: { + sql: 'select * from populated_places_simple_reduced', + cartocss: '#layer { marker-fill: red; marker-width: 32; marker-allow-overlap: true; }', + cartocss_version: '2.3.0' + }, + widgets: { + pop_max: { + type: 'histogram', + options: { + column: 'pop_max' + } + } + } + } + ] + }; + + var layergroupId; + step( + function createLayergroup() { + var next = this; + assert.response(server, + { + url: '/api/v1/map', + method: 'POST', + headers: { + host: 'localhost', + 'Content-Type': 'application/json' + }, + data: JSON.stringify(layergroup) + }, + { + status: 200, + headers: { + 'Content-Type': 'application/json; charset=utf-8' + } + }, + function(res, err) { + if (err) { + return next(err); + } + return next(null, JSON.parse(res.body).layergroupid); + } + ); + }, + function getList(err, _layergroupId) { + assert.ifError(err); + + var next = this; + layergroupId = _layergroupId; + + assert.response(server, + { + url: '/api/v1/map/' + layergroupId + '/0/histogram/pop_max', + method: 'GET', + headers: { + host: 'localhost' + } + }, + { + status: 200, + headers: { + 'Content-Type': 'application/json; charset=utf-8' + } + }, + function(res, err) { + if (err) { + return next(err); + } + + console.log(JSON.parse(res.body)); + + next(null); + } + ); + }, + function finish(err) { + keysToDelete['map_cfg|' + LayergroupToken.parse(layergroupId).token] = 0; + keysToDelete['user:localhost:mapviews:global'] = 5; + done(err); + } + ); + }); + +}); From f9d3e419a0181e620cc90120b18b9e354cd051fb Mon Sep 17 00:00:00 2001 From: Raul Ochoa Date: Mon, 26 Oct 2015 11:12:26 +0100 Subject: [PATCH 06/40] Renames list -> histogram --- test/acceptance/histograms.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/test/acceptance/histograms.js b/test/acceptance/histograms.js index 9177383d..8bb9da97 100644 --- a/test/acceptance/histograms.js +++ b/test/acceptance/histograms.js @@ -10,7 +10,7 @@ var server = new CartodbWindshaft(serverOptions); server.setMaxListeners(0); -describe('lists', function() { +describe('histograms', function() { var keysToDelete; @@ -75,7 +75,7 @@ describe('lists', function() { } ); }, - function getList(err, _layergroupId) { + function getHistogram(err, _layergroupId) { assert.ifError(err); var next = this; From 6d9182aba8418f85c6c8864c922dc0efee824908 Mon Sep 17 00:00:00 2001 From: Raul Ochoa Date: Mon, 26 Oct 2015 13:42:06 +0100 Subject: [PATCH 07/40] Rename widgets endpoint to honour its name --- lib/cartodb/controllers/layergroup.js | 42 ++++----------------------- test/acceptance/histograms.js | 6 ++-- test/acceptance/lists.js | 2 +- 3 files changed, 10 insertions(+), 40 deletions(-) diff --git a/lib/cartodb/controllers/layergroup.js b/lib/cartodb/controllers/layergroup.js index 3226ca6e..d5b1e05c 100644 --- a/lib/cartodb/controllers/layergroup.js +++ b/lib/cartodb/controllers/layergroup.js @@ -70,15 +70,11 @@ LayergroupController.prototype.register = function(app) { this.bbox.bind(this)); app.get(app.base_url_mapconfig + - '/:token/:layer/list/:listName', cors(), userMiddleware, - this.list.bind(this)); - - app.get(app.base_url_mapconfig + - '/:token/:layer/histogram/:histogramName', cors(), userMiddleware, - this.histogram.bind(this)); + '/:token/:layer/widget/:widgetName', cors(), userMiddleware, + this.widget.bind(this)); }; -LayergroupController.prototype.list = function(req, res) { +LayergroupController.prototype.widget = function(req, res) { var self = this; step( @@ -91,41 +87,13 @@ LayergroupController.prototype.list = function(req, res) { var mapConfigProvider = new MapStoreMapConfigProvider( self.mapStore, req.context.user, self.userLimitsApi, req.params ); - self.widgetBackend.getList(mapConfigProvider, req.params, this); + self.widgetBackend.getWidget(mapConfigProvider, req.params, this); }, function finish(err, tile, stats) { req.profiler.add(stats || {}); if (err) { - self.sendError(req, res, err, 'GET LIST'); - } else { - self.sendResponse(req, res, tile, 200); - } - } - ); - -}; - -LayergroupController.prototype.histogram = function(req, res) { - var self = this; - - step( - function setupParams() { - self.req2params(req, this); - }, - function retrieveList(err) { - assert.ifError(err); - - var mapConfigProvider = new MapStoreMapConfigProvider( - self.mapStore, req.context.user, self.userLimitsApi, req.params - ); - self.widgetBackend.getHistogram(mapConfigProvider, req.params, this); - }, - function finish(err, tile, stats) { - req.profiler.add(stats || {}); - - if (err) { - self.sendError(req, res, err, 'GET LIST'); + self.sendError(req, res, err, 'GET WIDGET'); } else { self.sendResponse(req, res, tile, 200); } diff --git a/test/acceptance/histograms.js b/test/acceptance/histograms.js index 8bb9da97..59cbdbde 100644 --- a/test/acceptance/histograms.js +++ b/test/acceptance/histograms.js @@ -83,7 +83,7 @@ describe('histograms', function() { assert.response(server, { - url: '/api/v1/map/' + layergroupId + '/0/histogram/pop_max', + url: '/api/v1/map/' + layergroupId + '/0/widget/pop_max', method: 'GET', headers: { host: 'localhost' @@ -100,7 +100,9 @@ describe('histograms', function() { return next(err); } - console.log(JSON.parse(res.body)); + var histogram = JSON.parse(res.body); + + assert.ok(histogram.length); next(null); } diff --git a/test/acceptance/lists.js b/test/acceptance/lists.js index 6c12ff2a..f22c20e0 100644 --- a/test/acceptance/lists.js +++ b/test/acceptance/lists.js @@ -83,7 +83,7 @@ describe('lists', function() { assert.response(server, { - url: '/api/v1/map/' + layergroupId + '/0/list/names', + url: '/api/v1/map/' + layergroupId + '/0/widget/names', method: 'GET', headers: { host: 'localhost' From 8b222914c5480a79869afad126f1e128334d068c Mon Sep 17 00:00:00 2001 From: Raul Ochoa Date: Mon, 26 Oct 2015 14:35:51 +0100 Subject: [PATCH 08/40] Add URL to widgets with their endpoints --- lib/cartodb/controllers/map.js | 35 ++++++++++++++++++++++++++++++++++ test/acceptance/lists.js | 4 +++- 2 files changed, 38 insertions(+), 1 deletion(-) diff --git a/lib/cartodb/controllers/map.js b/lib/cartodb/controllers/map.js index f6391db1..e514d8a9 100644 --- a/lib/cartodb/controllers/map.js +++ b/lib/cartodb/controllers/map.js @@ -306,6 +306,8 @@ MapController.prototype.afterLayergroupCreate = function(req, res, mapconfig, la layergroup.layergroupid = layergroup.layergroupid + ':' + result.lastUpdatedTime; layergroup.last_updated = new Date(result.lastUpdatedTime).toISOString(); + addWidgetsUrl(username, layergroup); + if (req.method === 'GET') { var tableCacheEntry = new TablesCacheEntry(dbName, result.affectedTables); var ttl = global.environment.varnish.layergroupTtl || 86400; @@ -324,3 +326,36 @@ MapController.prototype.afterLayergroupCreate = function(req, res, mapconfig, la } ); }; + +function addWidgetsUrl(username, layergroup) { + +// global.environment.serverMetadata + + if (layergroup.metadata && Array.isArray(layergroup.metadata.layers)) { + layergroup.metadata.layers = layergroup.metadata.layers.map(function(layer, layerIndex) { + if (layer.widgets) { + Object.keys(layer.widgets).forEach(function(widgetName) { + var resource = layergroup.layergroupid + '/' + layerIndex + '/widget/' + widgetName; + layer.widgets[widgetName].url = getUrls(username, resource); + }); + } + return layer; + }); + } + +} + +function getUrls(username, resource) { + var cdnUrl = global.environment.serverMetadata && global.environment.serverMetadata.cdn_url; + if (cdnUrl) { + return { + http: 'http://' + cdnUrl.http + '/' + username + '/api/v1/map' + resource, + https: 'https://' + cdnUrl.https + '/' + username + '/api/v1/map' + resource + }; + } else { + var port = global.environment.port; + return { + http: 'http://' + username + '.' + 'localhost.lan:' + port + '/api/v1/map' + resource + }; + } +} diff --git a/test/acceptance/lists.js b/test/acceptance/lists.js index f22c20e0..bc7fdd66 100644 --- a/test/acceptance/lists.js +++ b/test/acceptance/lists.js @@ -71,7 +71,9 @@ describe('lists', function() { if (err) { return next(err); } - return next(null, JSON.parse(res.body).layergroupid); + var parsedBody = JSON.parse(res.body); + assert.ok(parsedBody.metadata.layers[0].widgets.names); + return next(null, parsedBody.layergroupid); } ); }, From 3a05d8c2e80890db96abb9dc0844f5bba1431e5e Mon Sep 17 00:00:00 2001 From: Raul Ochoa Date: Mon, 26 Oct 2015 16:40:39 +0100 Subject: [PATCH 09/40] Widgets inside layer options --- test/acceptance/histograms.js | 14 +++++++------- test/acceptance/lists.js | 14 +++++++------- 2 files changed, 14 insertions(+), 14 deletions(-) diff --git a/test/acceptance/histograms.js b/test/acceptance/histograms.js index 59cbdbde..24537640 100644 --- a/test/acceptance/histograms.js +++ b/test/acceptance/histograms.js @@ -33,13 +33,13 @@ describe('histograms', function() { options: { sql: 'select * from populated_places_simple_reduced', cartocss: '#layer { marker-fill: red; marker-width: 32; marker-allow-overlap: true; }', - cartocss_version: '2.3.0' - }, - widgets: { - pop_max: { - type: 'histogram', - options: { - column: 'pop_max' + cartocss_version: '2.3.0', + widgets: { + pop_max: { + type: 'histogram', + options: { + column: 'pop_max' + } } } } diff --git a/test/acceptance/lists.js b/test/acceptance/lists.js index bc7fdd66..eb468105 100644 --- a/test/acceptance/lists.js +++ b/test/acceptance/lists.js @@ -33,13 +33,13 @@ describe('lists', function() { options: { sql: 'select * from test_table', cartocss: '#layer { marker-fill: red; marker-width: 32; marker-allow-overlap: true; }', - cartocss_version: '2.3.0' - }, - widgets: { - names: { - type: 'list', - options: { - columns: ['name'] + cartocss_version: '2.3.0', + widgets: { + names: { + type: 'list', + options: { + columns: ['name'] + } } } } From 8a9e257cdbc8d523b36f47810a9ad34fa8c2fb04 Mon Sep 17 00:00:00 2001 From: Raul Ochoa Date: Mon, 26 Oct 2015 16:51:21 +0100 Subject: [PATCH 10/40] Adds target to Makefile to just remove and re-install windshaft dep --- Makefile | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/Makefile b/Makefile index 98454b25..7a424cc7 100644 --- a/Makefile +++ b/Makefile @@ -9,6 +9,10 @@ all: clean: rm -rf node_modules/* +update-windshaft: + rm -rf node_modules/windshaft + npm install windshaft + distclean: clean rm config.status* From 7b57d22444fc4d75d1630bb8b66240c674186e50 Mon Sep 17 00:00:00 2001 From: Pablo Alonso Garcia Date: Mon, 26 Oct 2015 17:50:50 +0100 Subject: [PATCH 11/40] Added trailing slash to API endpoint in widget URLs --- lib/cartodb/controllers/map.js | 6 +++--- test/acceptance/lists.js | 5 +++++ 2 files changed, 8 insertions(+), 3 deletions(-) diff --git a/lib/cartodb/controllers/map.js b/lib/cartodb/controllers/map.js index e514d8a9..117bb62d 100644 --- a/lib/cartodb/controllers/map.js +++ b/lib/cartodb/controllers/map.js @@ -349,13 +349,13 @@ function getUrls(username, resource) { var cdnUrl = global.environment.serverMetadata && global.environment.serverMetadata.cdn_url; if (cdnUrl) { return { - http: 'http://' + cdnUrl.http + '/' + username + '/api/v1/map' + resource, - https: 'https://' + cdnUrl.https + '/' + username + '/api/v1/map' + resource + http: 'http://' + cdnUrl.http + '/' + username + '/api/v1/map/' + resource, + https: 'https://' + cdnUrl.https + '/' + username + '/api/v1/map/' + resource }; } else { var port = global.environment.port; return { - http: 'http://' + username + '.' + 'localhost.lan:' + port + '/api/v1/map' + resource + http: 'http://' + username + '.' + 'localhost.lan:' + port + '/api/v1/map/' + resource }; } } diff --git a/test/acceptance/lists.js b/test/acceptance/lists.js index eb468105..ab94b79e 100644 --- a/test/acceptance/lists.js +++ b/test/acceptance/lists.js @@ -72,7 +72,12 @@ describe('lists', function() { return next(err); } var parsedBody = JSON.parse(res.body); + var expectedWidgetURLS = { + "http": "http://localhost.localhost.lan:8888" + + "/api/v1/map/adfb1f912ddb9a5af5e9ef0b2229ed3b:1234567890123/0/widget/names" + }; assert.ok(parsedBody.metadata.layers[0].widgets.names); + assert.equal(parsedBody.metadata.layers[0].widgets.names.url.http, expectedWidgetURLS.http); return next(null, parsedBody.layergroupid); } ); From fda405f35dea5d8fc6ae336f4679d36fcd66e9de Mon Sep 17 00:00:00 2001 From: Raul Ochoa Date: Tue, 27 Oct 2015 12:50:27 +0100 Subject: [PATCH 12/40] Unify widgets tests --- test/acceptance/histograms.js | 119 ----------------------- test/acceptance/{lists.js => widgets.js} | 95 +++++++++++++++++- 2 files changed, 94 insertions(+), 120 deletions(-) delete mode 100644 test/acceptance/histograms.js rename test/acceptance/{lists.js => widgets.js} (58%) diff --git a/test/acceptance/histograms.js b/test/acceptance/histograms.js deleted file mode 100644 index 24537640..00000000 --- a/test/acceptance/histograms.js +++ /dev/null @@ -1,119 +0,0 @@ -var assert = require('../support/assert'); -var step = require('step'); - -var helper = require(__dirname + '/../support/test_helper'); -var LayergroupToken = require('../../lib/cartodb/models/layergroup_token'); - -var CartodbWindshaft = require('../../lib/cartodb/server'); -var serverOptions = require('../../lib/cartodb/server_options'); -var server = new CartodbWindshaft(serverOptions); -server.setMaxListeners(0); - - -describe('histograms', function() { - - var keysToDelete; - - beforeEach(function() { - keysToDelete = {}; - }); - - afterEach(function(done) { - helper.deleteRedisKeys(keysToDelete, done); - }); - - - it("should expose layer histogram", function(done) { - - var layergroup = { - version: '1.5.0', - layers: [ - { - type: 'mapnik', - options: { - sql: 'select * from populated_places_simple_reduced', - cartocss: '#layer { marker-fill: red; marker-width: 32; marker-allow-overlap: true; }', - cartocss_version: '2.3.0', - widgets: { - pop_max: { - type: 'histogram', - options: { - column: 'pop_max' - } - } - } - } - } - ] - }; - - var layergroupId; - step( - function createLayergroup() { - var next = this; - assert.response(server, - { - url: '/api/v1/map', - method: 'POST', - headers: { - host: 'localhost', - 'Content-Type': 'application/json' - }, - data: JSON.stringify(layergroup) - }, - { - status: 200, - headers: { - 'Content-Type': 'application/json; charset=utf-8' - } - }, - function(res, err) { - if (err) { - return next(err); - } - return next(null, JSON.parse(res.body).layergroupid); - } - ); - }, - function getHistogram(err, _layergroupId) { - assert.ifError(err); - - var next = this; - layergroupId = _layergroupId; - - assert.response(server, - { - url: '/api/v1/map/' + layergroupId + '/0/widget/pop_max', - method: 'GET', - headers: { - host: 'localhost' - } - }, - { - status: 200, - headers: { - 'Content-Type': 'application/json; charset=utf-8' - } - }, - function(res, err) { - if (err) { - return next(err); - } - - var histogram = JSON.parse(res.body); - - assert.ok(histogram.length); - - next(null); - } - ); - }, - function finish(err) { - keysToDelete['map_cfg|' + LayergroupToken.parse(layergroupId).token] = 0; - keysToDelete['user:localhost:mapviews:global'] = 5; - done(err); - } - ); - }); - -}); diff --git a/test/acceptance/lists.js b/test/acceptance/widgets.js similarity index 58% rename from test/acceptance/lists.js rename to test/acceptance/widgets.js index ab94b79e..7014ec67 100644 --- a/test/acceptance/lists.js +++ b/test/acceptance/widgets.js @@ -10,7 +10,7 @@ var server = new CartodbWindshaft(serverOptions); server.setMaxListeners(0); -describe('lists', function() { +describe('widgets', function() { var keysToDelete; @@ -128,4 +128,97 @@ describe('lists', function() { ); }); + it("should expose layer histogram", function(done) { + + var layergroup = { + version: '1.5.0', + layers: [ + { + type: 'mapnik', + options: { + sql: 'select * from populated_places_simple_reduced', + cartocss: '#layer { marker-fill: red; marker-width: 32; marker-allow-overlap: true; }', + cartocss_version: '2.3.0', + widgets: { + pop_max: { + type: 'histogram', + options: { + column: 'pop_max' + } + } + } + } + } + ] + }; + + var layergroupId; + step( + function createLayergroup() { + var next = this; + assert.response(server, + { + url: '/api/v1/map', + method: 'POST', + headers: { + host: 'localhost', + 'Content-Type': 'application/json' + }, + data: JSON.stringify(layergroup) + }, + { + status: 200, + headers: { + 'Content-Type': 'application/json; charset=utf-8' + } + }, + function(res, err) { + if (err) { + return next(err); + } + return next(null, JSON.parse(res.body).layergroupid); + } + ); + }, + function getHistogram(err, _layergroupId) { + assert.ifError(err); + + var next = this; + layergroupId = _layergroupId; + + assert.response(server, + { + url: '/api/v1/map/' + layergroupId + '/0/widget/pop_max', + method: 'GET', + headers: { + host: 'localhost' + } + }, + { + status: 200, + headers: { + 'Content-Type': 'application/json; charset=utf-8' + } + }, + function(res, err) { + if (err) { + return next(err); + } + + var histogram = JSON.parse(res.body); + + assert.ok(histogram.length); + + next(null); + } + ); + }, + function finish(err) { + keysToDelete['map_cfg|' + LayergroupToken.parse(layergroupId).token] = 0; + keysToDelete['user:localhost:mapviews:global'] = 5; + done(err); + } + ); + }); + }); From 473b20596aec390fff77dcd86feaaa0b34abd432 Mon Sep 17 00:00:00 2001 From: Raul Ochoa Date: Tue, 27 Oct 2015 13:06:15 +0100 Subject: [PATCH 13/40] Adds helper function to retrieve widgets --- test/acceptance/widgets.js | 258 ++++++++++++++++--------------------- 1 file changed, 110 insertions(+), 148 deletions(-) diff --git a/test/acceptance/widgets.js b/test/acceptance/widgets.js index 7014ec67..d2d6652a 100644 --- a/test/acceptance/widgets.js +++ b/test/acceptance/widgets.js @@ -1,5 +1,6 @@ -var assert = require('../support/assert'); -var step = require('step'); +var assert = require('../support/assert'); +var step = require('step'); +var qs = require('querystring'); var helper = require(__dirname + '/../support/test_helper'); var LayergroupToken = require('../../lib/cartodb/models/layergroup_token'); @@ -22,6 +23,89 @@ describe('widgets', function() { helper.deleteRedisKeys(keysToDelete, done); }); + function getWidget(mapConfig, widgetName, filters, callback) { + if (!callback) { + callback = filters; + filters = null; + } + + var url = '/api/v1/map'; + if (filters) { + url += '?' + qs.stringify({filters: JSON.stringify(filters)}); + } + + var layergroupId; + step( + function createLayergroup() { + var next = this; + assert.response(server, + { + url: url, + method: 'POST', + headers: { + host: 'localhost', + 'Content-Type': 'application/json' + }, + data: JSON.stringify(mapConfig) + }, + { + status: 200, + headers: { + 'Content-Type': 'application/json; charset=utf-8' + } + }, + function(res, err) { + if (err) { + return next(err); + } + var parsedBody = JSON.parse(res.body); + var expectedWidgetURLS = { + "http": "http://localhost.localhost.lan:8888" + + "/api/v1/map/" + parsedBody.layergroupid + "/0/widget/" + widgetName + }; + assert.ok(parsedBody.metadata.layers[0].widgets[widgetName]); + assert.equal(parsedBody.metadata.layers[0].widgets[widgetName].url.http, expectedWidgetURLS.http); + return next(null, parsedBody.layergroupid); + } + ); + }, + function getWidgetResult(err, _layergroupId) { + assert.ifError(err); + + var next = this; + layergroupId = _layergroupId; + + assert.response(server, + { + url: '/api/v1/map/' + layergroupId + '/0/widget/' + widgetName, + method: 'GET', + headers: { + host: 'localhost' + } + }, + { + status: 200, + headers: { + 'Content-Type': 'application/json; charset=utf-8' + } + }, + function(res, err) { + if (err) { + return next(err); + } + + next(null, res); + } + ); + }, + function finish(err, res) { + keysToDelete['map_cfg|' + LayergroupToken.parse(layergroupId).token] = 0; + keysToDelete['user:localhost:mapviews:global'] = 5; + return callback(err, res); + } + ); + } + it("should expose layer list", function(done) { @@ -47,89 +131,25 @@ describe('widgets', function() { ] }; - var layergroupId; - step( - function createLayergroup() { - var next = this; - assert.response(server, - { - url: '/api/v1/map', - method: 'POST', - headers: { - host: 'localhost', - 'Content-Type': 'application/json' - }, - data: JSON.stringify(layergroup) - }, - { - status: 200, - headers: { - 'Content-Type': 'application/json; charset=utf-8' - } - }, - function(res, err) { - if (err) { - return next(err); - } - var parsedBody = JSON.parse(res.body); - var expectedWidgetURLS = { - "http": "http://localhost.localhost.lan:8888" + - "/api/v1/map/adfb1f912ddb9a5af5e9ef0b2229ed3b:1234567890123/0/widget/names" - }; - assert.ok(parsedBody.metadata.layers[0].widgets.names); - assert.equal(parsedBody.metadata.layers[0].widgets.names.url.http, expectedWidgetURLS.http); - return next(null, parsedBody.layergroupid); - } - ); - }, - function getList(err, _layergroupId) { - assert.ifError(err); - - var next = this; - layergroupId = _layergroupId; - - assert.response(server, - { - url: '/api/v1/map/' + layergroupId + '/0/widget/names', - method: 'GET', - headers: { - host: 'localhost' - } - }, - { - status: 200, - headers: { - 'Content-Type': 'application/json; charset=utf-8' - } - }, - function(res, err) { - if (err) { - return next(err); - } - - var expectedList = [ - {name:"Hawai"}, - {name:"El Estocolmo"}, - {name:"El Rey del Tallarín"}, - {name:"El Lacón"}, - {name:"El Pico"} - ]; - assert.deepEqual(JSON.parse(res.body), expectedList); - - next(null); - } - ); - }, - function finish(err) { - keysToDelete['map_cfg|' + LayergroupToken.parse(layergroupId).token] = 0; - keysToDelete['user:localhost:mapviews:global'] = 5; - done(err); + getWidget(layergroup, 'names', function(err, res) { + if (err) { + return done(err); } - ); + + var expectedList = [ + {name:"Hawai"}, + {name:"El Estocolmo"}, + {name:"El Rey del Tallarín"}, + {name:"El Lacón"}, + {name:"El Pico"} + ]; + assert.deepEqual(JSON.parse(res.body), expectedList); + + done(); + }); }); it("should expose layer histogram", function(done) { - var layergroup = { version: '1.5.0', layers: [ @@ -151,74 +171,16 @@ describe('widgets', function() { } ] }; - - var layergroupId; - step( - function createLayergroup() { - var next = this; - assert.response(server, - { - url: '/api/v1/map', - method: 'POST', - headers: { - host: 'localhost', - 'Content-Type': 'application/json' - }, - data: JSON.stringify(layergroup) - }, - { - status: 200, - headers: { - 'Content-Type': 'application/json; charset=utf-8' - } - }, - function(res, err) { - if (err) { - return next(err); - } - return next(null, JSON.parse(res.body).layergroupid); - } - ); - }, - function getHistogram(err, _layergroupId) { - assert.ifError(err); - - var next = this; - layergroupId = _layergroupId; - - assert.response(server, - { - url: '/api/v1/map/' + layergroupId + '/0/widget/pop_max', - method: 'GET', - headers: { - host: 'localhost' - } - }, - { - status: 200, - headers: { - 'Content-Type': 'application/json; charset=utf-8' - } - }, - function(res, err) { - if (err) { - return next(err); - } - - var histogram = JSON.parse(res.body); - - assert.ok(histogram.length); - - next(null); - } - ); - }, - function finish(err) { - keysToDelete['map_cfg|' + LayergroupToken.parse(layergroupId).token] = 0; - keysToDelete['user:localhost:mapviews:global'] = 5; - done(err); + getWidget(layergroup, 'pop_max', function(err, res) { + if (err) { + return done(err); } - ); + + var histogram = JSON.parse(res.body); + assert.ok(histogram.length); + + done(); + }); }); }); From 0285f015e2f5bceb179a036af2c200fe50fbc01e Mon Sep 17 00:00:00 2001 From: Raul Ochoa Date: Tue, 27 Oct 2015 13:18:53 +0100 Subject: [PATCH 14/40] Pass filters within params --- lib/cartodb/controllers/base.js | 1 + test/acceptance/widgets.js | 58 +++++++++++++++++++++++++++++++++ 2 files changed, 59 insertions(+) diff --git a/lib/cartodb/controllers/base.js b/lib/cartodb/controllers/base.js index 24c06875..2f67ecd2 100644 --- a/lib/cartodb/controllers/base.js +++ b/lib/cartodb/controllers/base.js @@ -10,6 +10,7 @@ var lzmaWorker = new LZMA(); // Whitelist query parameters and attach format var REQUEST_QUERY_PARAMS_WHITELIST = [ 'config', + 'filters', 'map_key', 'api_key', 'auth_token', diff --git a/test/acceptance/widgets.js b/test/acceptance/widgets.js index d2d6652a..7b74e4f6 100644 --- a/test/acceptance/widgets.js +++ b/test/acceptance/widgets.js @@ -183,4 +183,62 @@ describe('widgets', function() { }); }); + describe('filters', function() { + var layergroup = { + version: '1.5.0', + layers: [ + { + type: 'mapnik', + options: { + sql: 'select * from populated_places_simple_reduced', + cartocss: '#layer { marker-fill: red; marker-width: 32; marker-allow-overlap: true; }', + cartocss_version: '2.3.0', + widgets: { + country_places_count: { + type: 'aggregation', + options: { + column: 'adm0_a3', + aggregation: 'count' + } + } + } + } + } + ] + }; + + it("should expose an aggregation", function(done) { + getWidget(layergroup, 'country_places_count', function(err, res) { + if (err) { + return done(err); + } + + var aggregation = JSON.parse(res.body); + assert.equal(aggregation.length, 223); + assert.deepEqual(aggregation[0], { count: 769, adm0_a3: 'USA' }); + + done(); + }); + }); + + it("should expose a filtered aggregation", function(done) { + var filters = { + layers: [ + {country_places_count: {accept: ['CAN']}} + ] + }; + getWidget(layergroup, 'country_places_count', filters, function(err, res) { + if (err) { + return done(err); + } + + var aggregation = JSON.parse(res.body); + assert.equal(aggregation.length, 1); + assert.deepEqual(aggregation[0], { count: 256, adm0_a3: 'CAN' }); + + done(); + }); + }); + }); + }); From af0812e9909557713fa4385b64c70619f488ac38 Mon Sep 17 00:00:00 2001 From: Raul Ochoa Date: Tue, 27 Oct 2015 19:08:46 +0100 Subject: [PATCH 15/40] Fix jshint --- test/acceptance/widgets.js | 151 ++++++++++++++++++++++++++----------- 1 file changed, 108 insertions(+), 43 deletions(-) diff --git a/test/acceptance/widgets.js b/test/acceptance/widgets.js index 7b74e4f6..9ee0eb3b 100644 --- a/test/acceptance/widgets.js +++ b/test/acceptance/widgets.js @@ -64,7 +64,10 @@ describe('widgets', function() { "/api/v1/map/" + parsedBody.layergroupid + "/0/widget/" + widgetName }; assert.ok(parsedBody.metadata.layers[0].widgets[widgetName]); - assert.equal(parsedBody.metadata.layers[0].widgets[widgetName].url.http, expectedWidgetURLS.http); + assert.equal( + parsedBody.metadata.layers[0].widgets[widgetName].url.http, + expectedWidgetURLS.http + ); return next(null, parsedBody.layergroupid); } ); @@ -109,7 +112,7 @@ describe('widgets', function() { it("should expose layer list", function(done) { - var layergroup = { + var listWidgetMapConfig = { version: '1.5.0', layers: [ { @@ -131,7 +134,7 @@ describe('widgets', function() { ] }; - getWidget(layergroup, 'names', function(err, res) { + getWidget(listWidgetMapConfig, 'names', function(err, res) { if (err) { return done(err); } @@ -150,7 +153,7 @@ describe('widgets', function() { }); it("should expose layer histogram", function(done) { - var layergroup = { + var histogramMapConfig = { version: '1.5.0', layers: [ { @@ -171,7 +174,7 @@ describe('widgets', function() { } ] }; - getWidget(layergroup, 'pop_max', function(err, res) { + getWidget(histogramMapConfig, 'pop_max', function(err, res) { if (err) { return done(err); } @@ -184,59 +187,121 @@ describe('widgets', function() { }); describe('filters', function() { - var layergroup = { - version: '1.5.0', - layers: [ - { - type: 'mapnik', - options: { - sql: 'select * from populated_places_simple_reduced', - cartocss: '#layer { marker-fill: red; marker-width: 32; marker-allow-overlap: true; }', - cartocss_version: '2.3.0', - widgets: { - country_places_count: { - type: 'aggregation', - options: { - column: 'adm0_a3', - aggregation: 'count' + + describe('category', function() { + var aggregationMapConfig = { + version: '1.5.0', + layers: [ + { + type: 'mapnik', + options: { + sql: 'select * from populated_places_simple_reduced', + cartocss: '#layer { marker-fill: red; marker-width: 32; marker-allow-overlap: true; }', + cartocss_version: '2.3.0', + widgets: { + country_places_count: { + type: 'aggregation', + options: { + column: 'adm0_a3', + aggregation: 'count' + } } } } } - } - ] - }; + ] + }; - it("should expose an aggregation", function(done) { - getWidget(layergroup, 'country_places_count', function(err, res) { - if (err) { - return done(err); - } + it("should expose an aggregation", function(done) { + getWidget(aggregationMapConfig, 'country_places_count', function(err, res) { + if (err) { + return done(err); + } - var aggregation = JSON.parse(res.body); - assert.equal(aggregation.length, 223); - assert.deepEqual(aggregation[0], { count: 769, adm0_a3: 'USA' }); + var aggregation = JSON.parse(res.body); + assert.equal(aggregation.length, 223); + assert.deepEqual(aggregation[0], { count: 769, adm0_a3: 'USA' }); - done(); + done(); + }); + }); + + it("should expose a filtered aggregation", function(done) { + var filters = { + layers: [ + {country_places_count: {accept: ['CAN']}} + ] + }; + getWidget(aggregationMapConfig, 'country_places_count', filters, function(err, res) { + if (err) { + return done(err); + } + + var aggregation = JSON.parse(res.body); + assert.equal(aggregation.length, 1); + assert.deepEqual(aggregation[0], { count: 256, adm0_a3: 'CAN' }); + + done(); + }); }); }); - it("should expose a filtered aggregation", function(done) { - var filters = { + describe('range', function() { + var histogramMapConfig = { + version: '1.5.0', layers: [ - {country_places_count: {accept: ['CAN']}} + { + type: 'mapnik', + options: { + sql: 'select * from populated_places_simple_reduced', + cartocss: '#layer { marker-fill: red; marker-width: 32; marker-allow-overlap: true; }', + cartocss_version: '2.3.0', + widgets: { + country_places_histogram: { + type: 'histogram', + options: { + column: 'pop_max' + } + } + } + } + } ] }; - getWidget(layergroup, 'country_places_count', filters, function(err, res) { - if (err) { - return done(err); - } - var aggregation = JSON.parse(res.body); - assert.equal(aggregation.length, 1); - assert.deepEqual(aggregation[0], { count: 256, adm0_a3: 'CAN' }); + it("should expose an aggregation", function(done) { + getWidget(histogramMapConfig, 'country_places_histogram', function(err, res) { + if (err) { + return done(err); + } - done(); + var histogram = JSON.parse(res.body); + // notice min value + assert.deepEqual(histogram[0], { bucket: 0, buckets: 10, min: 0, max: 3917000, freq: 7229 }); + + done(); + }); + }); + + it("should expose a filtered aggregation", function(done) { + var filters = { + layers: [ + { + country_places_histogram: { min: 4000000 } + } + ] + }; + getWidget(histogramMapConfig, 'country_places_histogram', filters, function(err, res) { + if (err) { + return done(err); + } + + var histogram = JSON.parse(res.body); + // notice min value + assert.deepEqual(histogram[0], { bucket: 0, buckets: 10, min: 4009000, max: 7297054, freq: 50 }); + + done(); + }); }); }); }); From 36369068e187b4670c60bd26723e8ed49c44664d Mon Sep 17 00:00:00 2001 From: Raul Ochoa Date: Tue, 27 Oct 2015 19:11:29 +0100 Subject: [PATCH 16/40] Use match instead of full url --- test/acceptance/widgets.js | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) diff --git a/test/acceptance/widgets.js b/test/acceptance/widgets.js index 9ee0eb3b..653ef7c2 100644 --- a/test/acceptance/widgets.js +++ b/test/acceptance/widgets.js @@ -60,13 +60,11 @@ describe('widgets', function() { } var parsedBody = JSON.parse(res.body); var expectedWidgetURLS = { - "http": "http://localhost.localhost.lan:8888" + - "/api/v1/map/" + parsedBody.layergroupid + "/0/widget/" + widgetName + http: "/api/v1/map/" + parsedBody.layergroupid + "/0/widget/" + widgetName }; assert.ok(parsedBody.metadata.layers[0].widgets[widgetName]); - assert.equal( - parsedBody.metadata.layers[0].widgets[widgetName].url.http, - expectedWidgetURLS.http + assert.ok( + parsedBody.metadata.layers[0].widgets[widgetName].url.http.match(expectedWidgetURLS.http) ); return next(null, parsedBody.layergroupid); } From cf2774c852fafc54989076f6218a95ce42074214 Mon Sep 17 00:00:00 2001 From: Raul Ochoa Date: Wed, 28 Oct 2015 12:06:06 +0100 Subject: [PATCH 17/40] Fix test description --- test/acceptance/widgets.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/test/acceptance/widgets.js b/test/acceptance/widgets.js index 653ef7c2..3dfb252e 100644 --- a/test/acceptance/widgets.js +++ b/test/acceptance/widgets.js @@ -281,7 +281,7 @@ describe('widgets', function() { }); }); - it("should expose a filtered aggregation", function(done) { + it("should expose a filtered histogram", function(done) { var filters = { layers: [ { From e5afdb1e047bed9b1505b1fe3fbe8cb5d03037c4 Mon Sep 17 00:00:00 2001 From: Raul Ochoa Date: Wed, 28 Oct 2015 12:21:43 +0100 Subject: [PATCH 18/40] Adds test combining two widgets + filters --- test/acceptance/widgets.js | 59 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 59 insertions(+) diff --git a/test/acceptance/widgets.js b/test/acceptance/widgets.js index 3dfb252e..a2ce376e 100644 --- a/test/acceptance/widgets.js +++ b/test/acceptance/widgets.js @@ -302,6 +302,65 @@ describe('widgets', function() { }); }); }); + + describe('combine widget filters', function() { + var combinedWidgetsMapConfig = { + version: '1.5.0', + layers: [ + { + type: 'mapnik', + options: { + sql: 'select * from populated_places_simple_reduced', + cartocss: '#layer { marker-fill: red; marker-width: 32; marker-allow-overlap: true; }', + cartocss_version: '2.3.0', + widgets: { + country_places_count: { + type: 'aggregation', + options: { + column: 'adm0_a3', + aggregation: 'count' + } + }, + country_places_histogram: { + type: 'histogram', + options: { + column: 'pop_max' + } + } + } + } + } + ] + }; + + it("should expose a filtered aggregation", function(done) { + var filters = { + layers: [ + { + country_places_count: { reject: ['CHN'] }, + country_places_histogram: { min: 7000000 } + } + ] + }; + getWidget(combinedWidgetsMapConfig, 'country_places_count', filters, function(err, res) { + if (err) { + return done(err); + } + + var aggregation = JSON.parse(res.body); + + // first one would be CHN if reject filter wasn't applied + assert.deepEqual(aggregation[0], { count: 4, adm0_a3: 'IND' }); + + // confirm 'CHN' was filtered out (reject) + assert.equal(aggregation.reduce(function(sum, row) { + return sum + (row.adm0_a3 === 'CHN' ? 1 : 0); + }, 0), 0); + + done(); + }); + }); + }); }); }); From 8e568d0f20de43ede0aa30d485c594aec3ee4795 Mon Sep 17 00:00:00 2001 From: Raul Ochoa Date: Thu, 29 Oct 2015 13:19:49 +0100 Subject: [PATCH 19/40] Adapt tests to new widgets format --- test/acceptance/widgets.js | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/test/acceptance/widgets.js b/test/acceptance/widgets.js index a2ce376e..939ae001 100644 --- a/test/acceptance/widgets.js +++ b/test/acceptance/widgets.js @@ -144,7 +144,7 @@ describe('widgets', function() { {name:"El Lacón"}, {name:"El Pico"} ]; - assert.deepEqual(JSON.parse(res.body), expectedList); + assert.deepEqual(JSON.parse(res.body).rows, expectedList); done(); }); @@ -178,7 +178,7 @@ describe('widgets', function() { } var histogram = JSON.parse(res.body); - assert.ok(histogram.length); + assert.ok(histogram.bins.length); done(); }); @@ -217,8 +217,8 @@ describe('widgets', function() { } var aggregation = JSON.parse(res.body); - assert.equal(aggregation.length, 223); - assert.deepEqual(aggregation[0], { count: 769, adm0_a3: 'USA' }); + assert.equal(aggregation.categories.length, 223); + assert.deepEqual(aggregation.categories[0], { count: 769, adm0_a3: 'USA' }); done(); }); @@ -236,8 +236,8 @@ describe('widgets', function() { } var aggregation = JSON.parse(res.body); - assert.equal(aggregation.length, 1); - assert.deepEqual(aggregation[0], { count: 256, adm0_a3: 'CAN' }); + assert.equal(aggregation.categories.length, 1); + assert.deepEqual(aggregation.categories[0], { count: 256, adm0_a3: 'CAN' }); done(); }); @@ -275,7 +275,7 @@ describe('widgets', function() { var histogram = JSON.parse(res.body); // notice min value - assert.deepEqual(histogram[0], { bucket: 0, buckets: 10, min: 0, max: 3917000, freq: 7229 }); + assert.deepEqual(histogram.bins[0], { bin: 0, min: 0, max: 3917000, freq: 7229 }); done(); }); @@ -296,7 +296,7 @@ describe('widgets', function() { var histogram = JSON.parse(res.body); // notice min value - assert.deepEqual(histogram[0], { bucket: 0, buckets: 10, min: 4009000, max: 7297054, freq: 50 }); + assert.deepEqual(histogram.bins[0], { bin: 0, min: 4009000, max: 7297054, freq: 50 }); done(); }); @@ -350,10 +350,10 @@ describe('widgets', function() { var aggregation = JSON.parse(res.body); // first one would be CHN if reject filter wasn't applied - assert.deepEqual(aggregation[0], { count: 4, adm0_a3: 'IND' }); + assert.deepEqual(aggregation.categories[0], { count: 4, adm0_a3: 'IND' }); // confirm 'CHN' was filtered out (reject) - assert.equal(aggregation.reduce(function(sum, row) { + assert.equal(aggregation.categories.reduce(function(sum, row) { return sum + (row.adm0_a3 === 'CHN' ? 1 : 0); }, 0), 0); From 8a81828a3d0c50770fa54d6d70cb7d76863208e2 Mon Sep 17 00:00:00 2001 From: Raul Ochoa Date: Thu, 29 Oct 2015 16:25:56 +0100 Subject: [PATCH 20/40] Enable bbox query string param --- lib/cartodb/controllers/base.js | 1 + test/acceptance/widgets.js | 91 +++++++++++++++++++++++---------- 2 files changed, 66 insertions(+), 26 deletions(-) diff --git a/lib/cartodb/controllers/base.js b/lib/cartodb/controllers/base.js index 2f67ecd2..3c968711 100644 --- a/lib/cartodb/controllers/base.js +++ b/lib/cartodb/controllers/base.js @@ -11,6 +11,7 @@ var lzmaWorker = new LZMA(); var REQUEST_QUERY_PARAMS_WHITELIST = [ 'config', 'filters', + 'bbox', 'map_key', 'api_key', 'auth_token', diff --git a/test/acceptance/widgets.js b/test/acceptance/widgets.js index 939ae001..2ad3417e 100644 --- a/test/acceptance/widgets.js +++ b/test/acceptance/widgets.js @@ -23,15 +23,15 @@ describe('widgets', function() { helper.deleteRedisKeys(keysToDelete, done); }); - function getWidget(mapConfig, widgetName, filters, callback) { + function getWidget(mapConfig, widgetName, params, callback) { if (!callback) { - callback = filters; - filters = null; + callback = params; + params = null; } var url = '/api/v1/map'; - if (filters) { - url += '?' + qs.stringify({filters: JSON.stringify(filters)}); + if (params && params.filters) { + url += '?' + qs.stringify({ filters: JSON.stringify(params.filters) }); } var layergroupId; @@ -76,9 +76,13 @@ describe('widgets', function() { var next = this; layergroupId = _layergroupId; + var url = '/api/v1/map/' + layergroupId + '/0/widget/' + widgetName; + if (params && params.bbox) { + url += '?' + qs.stringify({bbox: params.bbox}); + } assert.response(server, { - url: '/api/v1/map/' + layergroupId + '/0/widget/' + widgetName, + url: url, method: 'GET', headers: { host: 'localhost' @@ -225,12 +229,14 @@ describe('widgets', function() { }); it("should expose a filtered aggregation", function(done) { - var filters = { - layers: [ - {country_places_count: {accept: ['CAN']}} - ] + var params = { + filters: { + layers: [ + {country_places_count: {accept: ['CAN']}} + ] + } }; - getWidget(aggregationMapConfig, 'country_places_count', filters, function(err, res) { + getWidget(aggregationMapConfig, 'country_places_count', params, function(err, res) { if (err) { return done(err); } @@ -282,14 +288,16 @@ describe('widgets', function() { }); it("should expose a filtered histogram", function(done) { - var filters = { - layers: [ - { - country_places_histogram: { min: 4000000 } - } - ] + var params = { + filters: { + layers: [ + { + country_places_histogram: { min: 4000000 } + } + ] + } }; - getWidget(histogramMapConfig, 'country_places_histogram', filters, function(err, res) { + getWidget(histogramMapConfig, 'country_places_histogram', params, function(err, res) { if (err) { return done(err); } @@ -334,15 +342,46 @@ describe('widgets', function() { }; it("should expose a filtered aggregation", function(done) { - var filters = { - layers: [ - { - country_places_count: { reject: ['CHN'] }, - country_places_histogram: { min: 7000000 } - } - ] + var params = { + filters: { + layers: [ + { + country_places_count: { reject: ['CHN'] } + } + ] + } }; - getWidget(combinedWidgetsMapConfig, 'country_places_count', filters, function(err, res) { + getWidget(combinedWidgetsMapConfig, 'country_places_count', params, function(err, res) { + if (err) { + return done(err); + } + + var aggregation = JSON.parse(res.body); + + // first one would be CHN if reject filter wasn't applied + assert.deepEqual(aggregation.categories[0], {"count":769,"adm0_a3":"USA"}); + + // confirm 'CHN' was filtered out (reject) + assert.equal(aggregation.categories.reduce(function(sum, row) { + return sum + (row.adm0_a3 === 'CHN' ? 1 : 0); + }, 0), 0); + + done(); + }); + }); + + it("should expose a filtered aggregation", function(done) { + var params = { + filters: { + layers: [ + { + country_places_count: { reject: ['CHN'] }, + country_places_histogram: { min: 7000000 } + } + ] + } + }; + getWidget(combinedWidgetsMapConfig, 'country_places_count', params, function(err, res) { if (err) { return done(err); } From 2c4cb6d42e4025ea11ec524a7900a76add4e29e8 Mon Sep 17 00:00:00 2001 From: Raul Ochoa Date: Thu, 29 Oct 2015 17:18:14 +0100 Subject: [PATCH 21/40] Adds some tests for per widget bbox filters --- test/acceptance/widgets.js | 61 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 61 insertions(+) diff --git a/test/acceptance/widgets.js b/test/acceptance/widgets.js index 2ad3417e..1fe3ae20 100644 --- a/test/acceptance/widgets.js +++ b/test/acceptance/widgets.js @@ -399,6 +399,67 @@ describe('widgets', function() { done(); }); }); + + it("should allow to filter by bounding box a filtered aggregation", function(done) { + var params = { + filters: { + layers: [ + { + country_places_histogram: { min: 50000 } + } + ] + }, + bbox: '-20,0,45,60' + }; + getWidget(combinedWidgetsMapConfig, 'country_places_count', params, function(err, res) { + if (err) { + return done(err); + } + + var aggregation = JSON.parse(res.body); + + // first one would be CHN if reject filter wasn't applied + assert.deepEqual(aggregation.categories[0], {"count":96,"adm0_a3":"RUS"}); + + // confirm 'CHN' was filtered out (reject) + assert.equal(aggregation.categories.reduce(function(sum, row) { + return sum + (row.adm0_a3 === 'CHN' ? 1 : 0); + }, 0), 0); + + done(); + }); + }); + + it("should allow to filter by bounding box a filtered aggregation, with reject", function(done) { + var params = { + filters: { + layers: [ + { + country_places_count: { reject: ['RUS'] }, + country_places_histogram: { min: 50000 } + } + ] + }, + bbox: '-20,0,45,60' + }; + getWidget(combinedWidgetsMapConfig, 'country_places_count', params, function(err, res) { + if (err) { + return done(err); + } + + var aggregation = JSON.parse(res.body); + + // first one would be CHN if reject filter wasn't applied + assert.deepEqual(aggregation.categories[0], {"count":77,"adm0_a3":"TUR"}); + + // confirm 'CHN' was filtered out (reject) + assert.equal(aggregation.categories.reduce(function(sum, row) { + return sum + (row.adm0_a3 === 'CHN' ? 1 : 0); + }, 0), 0); + + done(); + }); + }); }); }); From 7d230cc15dfb232b43c6f46e55ab6233f00621d7 Mon Sep 17 00:00:00 2001 From: Raul Ochoa Date: Wed, 4 Nov 2015 17:21:33 +0100 Subject: [PATCH 22/40] Widgets returning two results --- lib/cartodb/controllers/base.js | 11 +++++---- test/acceptance/widgets.js | 42 ++++++++++++++++++++------------- 2 files changed, 33 insertions(+), 20 deletions(-) diff --git a/lib/cartodb/controllers/base.js b/lib/cartodb/controllers/base.js index 3c968711..d3b84513 100644 --- a/lib/cartodb/controllers/base.js +++ b/lib/cartodb/controllers/base.js @@ -10,12 +10,15 @@ var lzmaWorker = new LZMA(); // Whitelist query parameters and attach format var REQUEST_QUERY_PARAMS_WHITELIST = [ 'config', - 'filters', - 'bbox', 'map_key', 'api_key', 'auth_token', - 'callback' + 'callback', + // widgets & filters + 'filters', + 'bbox', + 'start', + 'end' ]; function BaseController(authApi, pgConnection) { @@ -193,7 +196,7 @@ BaseController.prototype.sendError = function(req, res, err, label) { var statusCode = findStatusCode(err); - debug('[%s ERROR] -- %d: %s', label, statusCode, err); + debug('[%s ERROR] -- %d: %s, %s', label, statusCode, err, err.stack); // If a callback was requested, force status to 200 if (req.query && req.query.callback) { diff --git a/test/acceptance/widgets.js b/test/acceptance/widgets.js index 1fe3ae20..29ad1137 100644 --- a/test/acceptance/widgets.js +++ b/test/acceptance/widgets.js @@ -148,7 +148,7 @@ describe('widgets', function() { {name:"El Lacón"}, {name:"El Pico"} ]; - assert.deepEqual(JSON.parse(res.body).rows, expectedList); + assert.deepEqual(JSON.parse(res.body).ownFilterOn.rows, expectedList); done(); }); @@ -182,7 +182,7 @@ describe('widgets', function() { } var histogram = JSON.parse(res.body); - assert.ok(histogram.bins.length); + assert.ok(histogram.ownFilterOn.bins.length); done(); }); @@ -221,8 +221,8 @@ describe('widgets', function() { } var aggregation = JSON.parse(res.body); - assert.equal(aggregation.categories.length, 223); - assert.deepEqual(aggregation.categories[0], { count: 769, adm0_a3: 'USA' }); + assert.equal(aggregation.ownFilterOn.categories.length, 223); + assert.deepEqual(aggregation.ownFilterOn.categories[0], { count: 769, adm0_a3: 'USA' }); done(); }); @@ -242,8 +242,8 @@ describe('widgets', function() { } var aggregation = JSON.parse(res.body); - assert.equal(aggregation.categories.length, 1); - assert.deepEqual(aggregation.categories[0], { count: 256, adm0_a3: 'CAN' }); + assert.equal(aggregation.ownFilterOn.categories.length, 1); + assert.deepEqual(aggregation.ownFilterOn.categories[0], { count: 256, adm0_a3: 'CAN' }); done(); }); @@ -281,7 +281,10 @@ describe('widgets', function() { var histogram = JSON.parse(res.body); // notice min value - assert.deepEqual(histogram.bins[0], { bin: 0, min: 0, max: 3917000, freq: 7229 }); + assert.deepEqual( + histogram.ownFilterOn.bins[0], + { bin:0, start:0, end:3567600, freq:7229, min:0, max:3917000 } + ); done(); }); @@ -304,7 +307,14 @@ describe('widgets', function() { var histogram = JSON.parse(res.body); // notice min value - assert.deepEqual(histogram.bins[0], { bin: 0, min: 4009000, max: 7297054, freq: 50 }); + assert.deepEqual(histogram.ownFilterOn.bins[0], { + bin: 0, + start: 4009000, + end: 7175700, + freq: 50, + min: 4009000, + max: 7297054 + }); done(); }); @@ -359,10 +369,10 @@ describe('widgets', function() { var aggregation = JSON.parse(res.body); // first one would be CHN if reject filter wasn't applied - assert.deepEqual(aggregation.categories[0], {"count":769,"adm0_a3":"USA"}); + assert.deepEqual(aggregation.ownFilterOn.categories[0], {"count":769,"adm0_a3":"USA"}); // confirm 'CHN' was filtered out (reject) - assert.equal(aggregation.categories.reduce(function(sum, row) { + assert.equal(aggregation.ownFilterOn.categories.reduce(function(sum, row) { return sum + (row.adm0_a3 === 'CHN' ? 1 : 0); }, 0), 0); @@ -389,10 +399,10 @@ describe('widgets', function() { var aggregation = JSON.parse(res.body); // first one would be CHN if reject filter wasn't applied - assert.deepEqual(aggregation.categories[0], { count: 4, adm0_a3: 'IND' }); + assert.deepEqual(aggregation.ownFilterOn.categories[0], { count: 4, adm0_a3: 'IND' }); // confirm 'CHN' was filtered out (reject) - assert.equal(aggregation.categories.reduce(function(sum, row) { + assert.equal(aggregation.ownFilterOn.categories.reduce(function(sum, row) { return sum + (row.adm0_a3 === 'CHN' ? 1 : 0); }, 0), 0); @@ -419,10 +429,10 @@ describe('widgets', function() { var aggregation = JSON.parse(res.body); // first one would be CHN if reject filter wasn't applied - assert.deepEqual(aggregation.categories[0], {"count":96,"adm0_a3":"RUS"}); + assert.deepEqual(aggregation.ownFilterOn.categories[0], {"count":96,"adm0_a3":"RUS"}); // confirm 'CHN' was filtered out (reject) - assert.equal(aggregation.categories.reduce(function(sum, row) { + assert.equal(aggregation.ownFilterOn.categories.reduce(function(sum, row) { return sum + (row.adm0_a3 === 'CHN' ? 1 : 0); }, 0), 0); @@ -450,10 +460,10 @@ describe('widgets', function() { var aggregation = JSON.parse(res.body); // first one would be CHN if reject filter wasn't applied - assert.deepEqual(aggregation.categories[0], {"count":77,"adm0_a3":"TUR"}); + assert.deepEqual(aggregation.ownFilterOn.categories[0], {"count":77,"adm0_a3":"TUR"}); // confirm 'CHN' was filtered out (reject) - assert.equal(aggregation.categories.reduce(function(sum, row) { + assert.equal(aggregation.ownFilterOn.categories.reduce(function(sum, row) { return sum + (row.adm0_a3 === 'CHN' ? 1 : 0); }, 0), 0); From a84dd7cd29987fb500c13164d8dd34981b863918 Mon Sep 17 00:00:00 2001 From: Raul Ochoa Date: Thu, 12 Nov 2015 19:45:49 +0100 Subject: [PATCH 23/40] Add more url params --- lib/cartodb/controllers/base.js | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/lib/cartodb/controllers/base.js b/lib/cartodb/controllers/base.js index d3b84513..88a22c45 100644 --- a/lib/cartodb/controllers/base.js +++ b/lib/cartodb/controllers/base.js @@ -15,10 +15,12 @@ var REQUEST_QUERY_PARAMS_WHITELIST = [ 'auth_token', 'callback', // widgets & filters - 'filters', - 'bbox', - 'start', - 'end' + 'filters', // json + 'own_filter', // 0, 1 + 'bbox', // w,s,e,n + 'bins', // number + 'start', // number + 'end' // number ]; function BaseController(authApi, pgConnection) { From 4c851a0d091ef2e76acaaececbe0abccc9a1f416 Mon Sep 17 00:00:00 2001 From: Raul Ochoa Date: Fri, 13 Nov 2015 10:35:30 +0100 Subject: [PATCH 24/40] Remove npm-shrinkwrap.json to ease development --- npm-shrinkwrap.json | 3124 ------------------------------------------- 1 file changed, 3124 deletions(-) delete mode 100644 npm-shrinkwrap.json diff --git a/npm-shrinkwrap.json b/npm-shrinkwrap.json deleted file mode 100644 index c42f0b6c..00000000 --- a/npm-shrinkwrap.json +++ /dev/null @@ -1,3124 +0,0 @@ -{ - "name": "windshaft-cartodb", - "version": "2.19.1", - "dependencies": { - "body-parser": { - "version": "1.14.1", - "from": "body-parser@~1.14.0", - "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.14.1.tgz", - "dependencies": { - "bytes": { - "version": "2.1.0", - "from": "bytes@2.1.0", - "resolved": "https://registry.npmjs.org/bytes/-/bytes-2.1.0.tgz" - }, - "content-type": { - "version": "1.0.1", - "from": "content-type@~1.0.1", - "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.1.tgz" - }, - "depd": { - "version": "1.1.0", - "from": "depd@~1.1.0", - "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.0.tgz" - }, - "http-errors": { - "version": "1.3.1", - "from": "http-errors@~1.3.1", - "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.3.1.tgz", - "dependencies": { - "inherits": { - "version": "2.0.1", - "from": "inherits@~2.0.1", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.1.tgz" - }, - "statuses": { - "version": "1.2.1", - "from": "statuses@1", - "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.2.1.tgz" - } - } - }, - "iconv-lite": { - "version": "0.4.12", - "from": "iconv-lite@0.4.12", - "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.12.tgz" - }, - "on-finished": { - "version": "2.3.0", - "from": "on-finished@~2.3.0", - "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.3.0.tgz", - "dependencies": { - "ee-first": { - "version": "1.1.1", - "from": "ee-first@1.1.1", - "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz" - } - } - }, - "qs": { - "version": "5.1.0", - "from": "qs@5.1.0", - "resolved": "https://registry.npmjs.org/qs/-/qs-5.1.0.tgz" - }, - "raw-body": { - "version": "2.1.4", - "from": "raw-body@~2.1.4", - "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.1.4.tgz", - "dependencies": { - "unpipe": { - "version": "1.0.0", - "from": "unpipe@1.0.0", - "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz" - } - } - }, - "type-is": { - "version": "1.6.9", - "from": "type-is@~1.6.6", - "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.9.tgz", - "dependencies": { - "media-typer": { - "version": "0.3.0", - "from": "media-typer@0.3.0", - "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz" - }, - "mime-types": { - "version": "2.1.7", - "from": "mime-types@~2.1.7", - "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.7.tgz", - "dependencies": { - "mime-db": { - "version": "1.19.0", - "from": "mime-db@~1.19.0", - "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.19.0.tgz" - } - } - } - } - } - } - }, - "cartodb-psql": { - "version": "0.4.0", - "from": "cartodb-psql@~0.4.0", - "resolved": "https://registry.npmjs.org/cartodb-psql/-/cartodb-psql-0.4.0.tgz", - "dependencies": { - "pg": { - "version": "2.6.2-cdb1", - "from": "pg@git://github.com/CartoDB/node-postgres.git#2.6.2-cdb1", - "resolved": "git://github.com/CartoDB/node-postgres.git#836a2dc3131e873fc4ba20cd16e7fb69a7dca98a", - "dependencies": { - "generic-pool": { - "version": "2.0.3", - "from": "generic-pool@2.0.3", - "resolved": "https://registry.npmjs.org/generic-pool/-/generic-pool-2.0.3.tgz" - }, - "buffer-writer": { - "version": "1.0.0", - "from": "buffer-writer@1.0.0", - "resolved": "https://registry.npmjs.org/buffer-writer/-/buffer-writer-1.0.0.tgz" - } - } - } - } - }, - "cartodb-redis": { - "version": "0.13.0", - "from": "cartodb-redis@~0.13.0", - "dependencies": { - "redis-mpool": { - "version": "0.1.0", - "from": "redis-mpool@git://github.com/CartoDB/node-redis-mpool.git#0.1.0", - "resolved": "git://github.com/CartoDB/node-redis-mpool.git#47510b8d4525ee24aa2e5328976372274a1d144e", - "dependencies": { - "generic-pool": { - "version": "2.1.1", - "from": "generic-pool@~2.1.1", - "resolved": "https://registry.npmjs.org/generic-pool/-/generic-pool-2.1.1.tgz" - }, - "redis": { - "version": "0.12.1", - "from": "redis@~0.12.1", - "resolved": "https://registry.npmjs.org/redis/-/redis-0.12.1.tgz" - }, - "hiredis": { - "version": "0.1.17", - "from": "hiredis@~0.1.17", - "resolved": "https://registry.npmjs.org/hiredis/-/hiredis-0.1.17.tgz", - "dependencies": { - "bindings": { - "version": "1.2.1", - "from": "bindings@*", - "resolved": "https://registry.npmjs.org/bindings/-/bindings-1.2.1.tgz" - }, - "nan": { - "version": "1.1.2", - "from": "nan@~1.1.0", - "resolved": "https://registry.npmjs.org/nan/-/nan-1.1.2.tgz" - } - } - } - } - } - } - }, - "debug": { - "version": "2.2.0", - "from": "debug@~2.2.0", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.2.0.tgz", - "dependencies": { - "ms": { - "version": "0.7.1", - "from": "ms@0.7.1", - "resolved": "https://registry.npmjs.org/ms/-/ms-0.7.1.tgz" - } - } - }, - "dot": { - "version": "1.0.3", - "from": "dot@~1.0.2", - "resolved": "https://registry.npmjs.org/dot/-/dot-1.0.3.tgz" - }, - "express": { - "version": "4.13.3", - "from": "express@~4.13.3", - "resolved": "https://registry.npmjs.org/express/-/express-4.13.3.tgz", - "dependencies": { - "accepts": { - "version": "1.2.13", - "from": "accepts@~1.2.12", - "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.2.13.tgz", - "dependencies": { - "mime-types": { - "version": "2.1.7", - "from": "mime-types@~2.1.7", - "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.7.tgz", - "dependencies": { - "mime-db": { - "version": "1.19.0", - "from": "mime-db@~1.19.0", - "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.19.0.tgz" - } - } - }, - "negotiator": { - "version": "0.5.3", - "from": "negotiator@0.5.3", - "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.5.3.tgz" - } - } - }, - "array-flatten": { - "version": "1.1.1", - "from": "array-flatten@1.1.1", - "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz" - }, - "content-disposition": { - "version": "0.5.0", - "from": "content-disposition@0.5.0", - "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.0.tgz" - }, - "content-type": { - "version": "1.0.1", - "from": "content-type@~1.0.1", - "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.1.tgz" - }, - "cookie": { - "version": "0.1.3", - "from": "cookie@0.1.3", - "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.1.3.tgz" - }, - "cookie-signature": { - "version": "1.0.6", - "from": "cookie-signature@1.0.6", - "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz" - }, - "depd": { - "version": "1.0.1", - "from": "depd@~1.0.1", - "resolved": "https://registry.npmjs.org/depd/-/depd-1.0.1.tgz" - }, - "escape-html": { - "version": "1.0.2", - "from": "escape-html@1.0.2", - "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.2.tgz" - }, - "etag": { - "version": "1.7.0", - "from": "etag@~1.7.0", - "resolved": "https://registry.npmjs.org/etag/-/etag-1.7.0.tgz" - }, - "finalhandler": { - "version": "0.4.0", - "from": "finalhandler@0.4.0", - "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-0.4.0.tgz", - "dependencies": { - "unpipe": { - "version": "1.0.0", - "from": "unpipe@~1.0.0", - "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz" - } - } - }, - "fresh": { - "version": "0.3.0", - "from": "fresh@0.3.0", - "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.3.0.tgz" - }, - "merge-descriptors": { - "version": "1.0.0", - "from": "merge-descriptors@1.0.0", - "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.0.tgz" - }, - "methods": { - "version": "1.1.1", - "from": "methods@~1.1.1", - "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.1.tgz" - }, - "on-finished": { - "version": "2.3.0", - "from": "on-finished@~2.3.0", - "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.3.0.tgz", - "dependencies": { - "ee-first": { - "version": "1.1.1", - "from": "ee-first@1.1.1", - "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz" - } - } - }, - "parseurl": { - "version": "1.3.0", - "from": "parseurl@~1.3.0", - "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.0.tgz" - }, - "path-to-regexp": { - "version": "0.1.7", - "from": "path-to-regexp@0.1.7", - "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz" - }, - "proxy-addr": { - "version": "1.0.8", - "from": "proxy-addr@~1.0.8", - "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-1.0.8.tgz", - "dependencies": { - "forwarded": { - "version": "0.1.0", - "from": "forwarded@~0.1.0", - "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.1.0.tgz" - }, - "ipaddr.js": { - "version": "1.0.1", - "from": "ipaddr.js@1.0.1", - "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.0.1.tgz" - } - } - }, - "qs": { - "version": "4.0.0", - "from": "qs@4.0.0", - "resolved": "https://registry.npmjs.org/qs/-/qs-4.0.0.tgz" - }, - "range-parser": { - "version": "1.0.3", - "from": "range-parser@~1.0.2", - "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.0.3.tgz" - }, - "send": { - "version": "0.13.0", - "from": "send@0.13.0", - "resolved": "https://registry.npmjs.org/send/-/send-0.13.0.tgz", - "dependencies": { - "destroy": { - "version": "1.0.3", - "from": "destroy@1.0.3", - "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.0.3.tgz" - }, - "http-errors": { - "version": "1.3.1", - "from": "http-errors@~1.3.1", - "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.3.1.tgz", - "dependencies": { - "inherits": { - "version": "2.0.1", - "from": "inherits@2", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.1.tgz" - } - } - }, - "mime": { - "version": "1.3.4", - "from": "mime@1.3.4", - "resolved": "https://registry.npmjs.org/mime/-/mime-1.3.4.tgz" - }, - "ms": { - "version": "0.7.1", - "from": "ms@0.7.1", - "resolved": "https://registry.npmjs.org/ms/-/ms-0.7.1.tgz" - }, - "statuses": { - "version": "1.2.1", - "from": "statuses@~1.2.1", - "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.2.1.tgz" - } - } - }, - "serve-static": { - "version": "1.10.0", - "from": "serve-static@~1.10.0", - "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.10.0.tgz" - }, - "type-is": { - "version": "1.6.9", - "from": "type-is@~1.6.6", - "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.9.tgz", - "dependencies": { - "media-typer": { - "version": "0.3.0", - "from": "media-typer@0.3.0", - "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz" - }, - "mime-types": { - "version": "2.1.7", - "from": "mime-types@~2.1.7", - "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.7.tgz", - "dependencies": { - "mime-db": { - "version": "1.19.0", - "from": "mime-db@~1.19.0", - "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.19.0.tgz" - } - } - } - } - }, - "utils-merge": { - "version": "1.0.0", - "from": "utils-merge@1.0.0", - "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.0.tgz" - }, - "vary": { - "version": "1.0.1", - "from": "vary@~1.0.1", - "resolved": "https://registry.npmjs.org/vary/-/vary-1.0.1.tgz" - } - } - }, - "fastly-purge": { - "version": "1.0.1", - "from": "fastly-purge@~1.0.1" - }, - "log4js": { - "version": "0.6.25", - "from": "https://github.com/CartoDB/log4js-node/tarball/cdb", - "resolved": "https://github.com/CartoDB/log4js-node/tarball/cdb", - "dependencies": { - "async": { - "version": "0.2.10", - "from": "async@~0.2.0", - "resolved": "https://registry.npmjs.org/async/-/async-0.2.10.tgz" - }, - "readable-stream": { - "version": "1.0.33", - "from": "readable-stream@~1.0.2", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.0.33.tgz", - "dependencies": { - "core-util-is": { - "version": "1.0.1", - "from": "core-util-is@~1.0.0", - "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.1.tgz" - }, - "isarray": { - "version": "0.0.1", - "from": "isarray@0.0.1", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz" - }, - "string_decoder": { - "version": "0.10.31", - "from": "string_decoder@~0.10.x", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz" - }, - "inherits": { - "version": "2.0.1", - "from": "inherits@~2.0.1", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.1.tgz" - } - } - }, - "semver": { - "version": "4.3.6", - "from": "semver@~4.3.3", - "resolved": "https://registry.npmjs.org/semver/-/semver-4.3.6.tgz" - }, - "underscore": { - "version": "1.8.2", - "from": "underscore@1.8.2", - "resolved": "https://registry.npmjs.org/underscore/-/underscore-1.8.2.tgz" - } - } - }, - "lru-cache": { - "version": "2.6.5", - "from": "lru-cache@2.6.5", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-2.6.5.tgz" - }, - "lzma": { - "version": "1.3.7", - "from": "lzma@~1.3.7", - "resolved": "https://registry.npmjs.org/lzma/-/lzma-1.3.7.tgz" - }, - "node-statsd": { - "version": "0.0.7", - "from": "node-statsd@~0.0.7", - "resolved": "https://registry.npmjs.org/node-statsd/-/node-statsd-0.0.7.tgz" - }, - "queue-async": { - "version": "1.0.7", - "from": "queue-async@~1.0.7", - "resolved": "https://registry.npmjs.org/queue-async/-/queue-async-1.0.7.tgz" - }, - "redis-mpool": { - "version": "0.4.0", - "from": "redis-mpool@~0.4.0", - "dependencies": { - "generic-pool": { - "version": "2.1.1", - "from": "generic-pool@~2.1.1", - "resolved": "https://registry.npmjs.org/generic-pool/-/generic-pool-2.1.1.tgz" - }, - "redis": { - "version": "0.12.1", - "from": "redis@~0.12.1", - "resolved": "https://registry.npmjs.org/redis/-/redis-0.12.1.tgz" - }, - "hiredis": { - "version": "0.1.17", - "from": "hiredis@~0.1.17", - "resolved": "https://registry.npmjs.org/hiredis/-/hiredis-0.1.17.tgz", - "dependencies": { - "bindings": { - "version": "1.2.1", - "from": "bindings@*", - "resolved": "https://registry.npmjs.org/bindings/-/bindings-1.2.1.tgz" - }, - "nan": { - "version": "1.1.2", - "from": "nan@~1.1.0", - "resolved": "https://registry.npmjs.org/nan/-/nan-1.1.2.tgz" - } - } - } - } - }, - "request": { - "version": "2.62.0", - "from": "request@~2.62.0", - "resolved": "https://registry.npmjs.org/request/-/request-2.62.0.tgz", - "dependencies": { - "bl": { - "version": "1.0.0", - "from": "bl@~1.0.0", - "resolved": "https://registry.npmjs.org/bl/-/bl-1.0.0.tgz", - "dependencies": { - "readable-stream": { - "version": "2.0.4", - "from": "readable-stream@~2.0.0", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.0.4.tgz", - "dependencies": { - "core-util-is": { - "version": "1.0.1", - "from": "core-util-is@~1.0.0", - "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.1.tgz" - }, - "inherits": { - "version": "2.0.1", - "from": "inherits@~2.0.1", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.1.tgz" - }, - "isarray": { - "version": "0.0.1", - "from": "isarray@0.0.1", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz" - }, - "process-nextick-args": { - "version": "1.0.3", - "from": "process-nextick-args@~1.0.0", - "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-1.0.3.tgz" - }, - "string_decoder": { - "version": "0.10.31", - "from": "string_decoder@~0.10.x", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz" - }, - "util-deprecate": { - "version": "1.0.2", - "from": "util-deprecate@~1.0.1", - "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz" - } - } - } - } - }, - "caseless": { - "version": "0.11.0", - "from": "caseless@~0.11.0", - "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.11.0.tgz" - }, - "extend": { - "version": "3.0.0", - "from": "extend@~3.0.0", - "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.0.tgz" - }, - "forever-agent": { - "version": "0.6.1", - "from": "forever-agent@~0.6.0", - "resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz" - }, - "form-data": { - "version": "1.0.0-rc3", - "from": "form-data@~1.0.0-rc1", - "resolved": "https://registry.npmjs.org/form-data/-/form-data-1.0.0-rc3.tgz", - "dependencies": { - "async": { - "version": "1.5.0", - "from": "async@^1.4.0", - "resolved": "https://registry.npmjs.org/async/-/async-1.5.0.tgz" - } - } - }, - "json-stringify-safe": { - "version": "5.0.1", - "from": "json-stringify-safe@~5.0.0", - "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz" - }, - "mime-types": { - "version": "2.1.7", - "from": "mime-types@~2.1.7", - "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.7.tgz", - "dependencies": { - "mime-db": { - "version": "1.19.0", - "from": "mime-db@~1.19.0", - "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.19.0.tgz" - } - } - }, - "node-uuid": { - "version": "1.4.4", - "from": "node-uuid@~1.4.0", - "resolved": "https://registry.npmjs.org/node-uuid/-/node-uuid-1.4.4.tgz" - }, - "qs": { - "version": "5.1.0", - "from": "qs@~5.1.0", - "resolved": "https://registry.npmjs.org/qs/-/qs-5.1.0.tgz" - }, - "tunnel-agent": { - "version": "0.4.1", - "from": "tunnel-agent@~0.4.0", - "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.4.1.tgz" - }, - "tough-cookie": { - "version": "2.2.0", - "from": "tough-cookie@>=0.12.0", - "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.2.0.tgz" - }, - "http-signature": { - "version": "0.11.0", - "from": "http-signature@~0.11.0", - "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-0.11.0.tgz", - "dependencies": { - "assert-plus": { - "version": "0.1.5", - "from": "assert-plus@^0.1.5", - "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-0.1.5.tgz" - }, - "asn1": { - "version": "0.1.11", - "from": "asn1@0.1.11", - "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.1.11.tgz" - }, - "ctype": { - "version": "0.5.3", - "from": "ctype@0.5.3", - "resolved": "https://registry.npmjs.org/ctype/-/ctype-0.5.3.tgz" - } - } - }, - "oauth-sign": { - "version": "0.8.0", - "from": "oauth-sign@~0.8.0", - "resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.8.0.tgz" - }, - "hawk": { - "version": "3.1.1", - "from": "hawk@~3.1.0", - "resolved": "https://registry.npmjs.org/hawk/-/hawk-3.1.1.tgz", - "dependencies": { - "hoek": { - "version": "2.16.3", - "from": "hoek@2.x.x", - "resolved": "https://registry.npmjs.org/hoek/-/hoek-2.16.3.tgz" - }, - "boom": { - "version": "2.10.1", - "from": "boom@^2.8.x", - "resolved": "https://registry.npmjs.org/boom/-/boom-2.10.1.tgz" - }, - "cryptiles": { - "version": "2.0.5", - "from": "cryptiles@2.x.x", - "resolved": "https://registry.npmjs.org/cryptiles/-/cryptiles-2.0.5.tgz" - }, - "sntp": { - "version": "1.0.9", - "from": "sntp@1.x.x", - "resolved": "https://registry.npmjs.org/sntp/-/sntp-1.0.9.tgz" - } - } - }, - "aws-sign2": { - "version": "0.5.0", - "from": "aws-sign2@~0.5.0", - "resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.5.0.tgz" - }, - "stringstream": { - "version": "0.0.5", - "from": "stringstream@~0.0.4", - "resolved": "https://registry.npmjs.org/stringstream/-/stringstream-0.0.5.tgz" - }, - "combined-stream": { - "version": "1.0.5", - "from": "combined-stream@~1.0.1", - "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.5.tgz", - "dependencies": { - "delayed-stream": { - "version": "1.0.0", - "from": "delayed-stream@~1.0.0", - "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz" - } - } - }, - "isstream": { - "version": "0.1.2", - "from": "isstream@~0.1.1", - "resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz" - }, - "har-validator": { - "version": "1.8.0", - "from": "har-validator@^1.6.1", - "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-1.8.0.tgz", - "dependencies": { - "bluebird": { - "version": "2.10.2", - "from": "bluebird@^2.9.30", - "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-2.10.2.tgz" - }, - "chalk": { - "version": "1.1.1", - "from": "chalk@^1.0.0", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.1.tgz", - "dependencies": { - "ansi-styles": { - "version": "2.1.0", - "from": "ansi-styles@^2.1.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.1.0.tgz" - }, - "escape-string-regexp": { - "version": "1.0.3", - "from": "escape-string-regexp@^1.0.2", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.3.tgz" - }, - "has-ansi": { - "version": "2.0.0", - "from": "has-ansi@^2.0.0", - "resolved": "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz", - "dependencies": { - "ansi-regex": { - "version": "2.0.0", - "from": "ansi-regex@^2.0.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.0.0.tgz" - } - } - }, - "strip-ansi": { - "version": "3.0.0", - "from": "strip-ansi@^3.0.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.0.tgz", - "dependencies": { - "ansi-regex": { - "version": "2.0.0", - "from": "ansi-regex@^2.0.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.0.0.tgz" - } - } - }, - "supports-color": { - "version": "2.0.0", - "from": "supports-color@^2.0.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz" - } - } - }, - "commander": { - "version": "2.9.0", - "from": "commander@^2.8.1", - "resolved": "https://registry.npmjs.org/commander/-/commander-2.9.0.tgz", - "dependencies": { - "graceful-readlink": { - "version": "1.0.1", - "from": "graceful-readlink@>= 1.0.0", - "resolved": "https://registry.npmjs.org/graceful-readlink/-/graceful-readlink-1.0.1.tgz" - } - } - }, - "is-my-json-valid": { - "version": "2.12.3", - "from": "is-my-json-valid@^2.12.0", - "resolved": "https://registry.npmjs.org/is-my-json-valid/-/is-my-json-valid-2.12.3.tgz", - "dependencies": { - "generate-function": { - "version": "2.0.0", - "from": "generate-function@^2.0.0", - "resolved": "https://registry.npmjs.org/generate-function/-/generate-function-2.0.0.tgz" - }, - "generate-object-property": { - "version": "1.2.0", - "from": "generate-object-property@^1.1.0", - "resolved": "https://registry.npmjs.org/generate-object-property/-/generate-object-property-1.2.0.tgz", - "dependencies": { - "is-property": { - "version": "1.0.2", - "from": "is-property@^1.0.0", - "resolved": "https://registry.npmjs.org/is-property/-/is-property-1.0.2.tgz" - } - } - }, - "jsonpointer": { - "version": "2.0.0", - "from": "jsonpointer@2.0.0", - "resolved": "https://registry.npmjs.org/jsonpointer/-/jsonpointer-2.0.0.tgz" - }, - "xtend": { - "version": "4.0.1", - "from": "xtend@^4.0.0", - "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.1.tgz" - } - } - } - } - } - } - }, - "step": { - "version": "0.0.6", - "from": "step@~0.0.6", - "resolved": "https://registry.npmjs.org/step/-/step-0.0.6.tgz" - }, - "step-profiler": { - "version": "0.2.1", - "from": "step-profiler@~0.2.1", - "resolved": "https://registry.npmjs.org/step-profiler/-/step-profiler-0.2.1.tgz" - }, - "underscore": { - "version": "1.6.0", - "from": "underscore@~1.6.0", - "resolved": "https://registry.npmjs.org/underscore/-/underscore-1.6.0.tgz" - }, - "windshaft": { - "version": "1.5.1", - "from": "https://github.com/CartoDB/Windshaft/tarball/mapconfig-extension", - "resolved": "https://github.com/CartoDB/Windshaft/tarball/mapconfig-extension", - "dependencies": { - "mapnik": { - "version": "1.4.15-cdb5", - "from": "https://github.com/CartoDB/node-mapnik/tarball/1.4.15-cdb5", - "resolved": "https://github.com/CartoDB/node-mapnik/tarball/1.4.15-cdb5", - "dependencies": { - "nan": { - "version": "1.2.0", - "from": "nan@~1.2.0", - "resolved": "https://registry.npmjs.org/nan/-/nan-1.2.0.tgz" - }, - "mapnik-vector-tile": { - "version": "0.5.5", - "from": "mapnik-vector-tile@0.5.5", - "resolved": "https://registry.npmjs.org/mapnik-vector-tile/-/mapnik-vector-tile-0.5.5.tgz" - }, - "node-pre-gyp": { - "version": "0.5.25", - "from": "node-pre-gyp@0.5.25", - "resolved": "https://registry.npmjs.org/node-pre-gyp/-/node-pre-gyp-0.5.25.tgz", - "dependencies": { - "nopt": { - "version": "3.0.1", - "from": "nopt@~3.0.1", - "resolved": "https://registry.npmjs.org/nopt/-/nopt-3.0.1.tgz", - "dependencies": { - "abbrev": { - "version": "1.0.5", - "from": "abbrev@1", - "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.0.5.tgz" - } - } - }, - "npmlog": { - "version": "0.1.1", - "from": "npmlog@~0.1.1", - "resolved": "https://registry.npmjs.org/npmlog/-/npmlog-0.1.1.tgz", - "dependencies": { - "ansi": { - "version": "0.3.0", - "from": "ansi@~0.3.0", - "resolved": "https://registry.npmjs.org/ansi/-/ansi-0.3.0.tgz" - } - } - }, - "request": { - "version": "2.40.0", - "from": "request@2.x", - "resolved": "https://registry.npmjs.org/request/-/request-2.40.0.tgz", - "dependencies": { - "qs": { - "version": "1.0.2", - "from": "qs@~1.0.0", - "resolved": "https://registry.npmjs.org/qs/-/qs-1.0.2.tgz" - }, - "json-stringify-safe": { - "version": "5.0.0", - "from": "json-stringify-safe@~5.0.0", - "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.0.tgz" - }, - "mime-types": { - "version": "1.0.2", - "from": "mime-types@~1.0.1", - "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-1.0.2.tgz" - }, - "forever-agent": { - "version": "0.5.2", - "from": "forever-agent@~0.5.0", - "resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.5.2.tgz" - }, - "node-uuid": { - "version": "1.4.1", - "from": "node-uuid@~1.4.0", - "resolved": "https://registry.npmjs.org/node-uuid/-/node-uuid-1.4.1.tgz" - }, - "tough-cookie": { - "version": "0.12.1", - "from": "tough-cookie@>=0.12.0", - "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-0.12.1.tgz", - "dependencies": { - "punycode": { - "version": "1.3.1", - "from": "punycode@>=0.2.0", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.3.1.tgz" - } - } - }, - "form-data": { - "version": "0.1.4", - "from": "form-data@~0.1.0", - "resolved": "https://registry.npmjs.org/form-data/-/form-data-0.1.4.tgz", - "dependencies": { - "combined-stream": { - "version": "0.0.5", - "from": "combined-stream@~0.0.4", - "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-0.0.5.tgz", - "dependencies": { - "delayed-stream": { - "version": "0.0.5", - "from": "delayed-stream@0.0.5", - "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-0.0.5.tgz" - } - } - }, - "mime": { - "version": "1.2.11", - "from": "mime@~1.2.11", - "resolved": "https://registry.npmjs.org/mime/-/mime-1.2.11.tgz" - }, - "async": { - "version": "0.9.0", - "from": "async@~0.9.0", - "resolved": "https://registry.npmjs.org/async/-/async-0.9.0.tgz" - } - } - }, - "tunnel-agent": { - "version": "0.4.0", - "from": "tunnel-agent@~0.4.0", - "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.4.0.tgz" - }, - "http-signature": { - "version": "0.10.0", - "from": "http-signature@~0.10.0", - "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-0.10.0.tgz", - "dependencies": { - "assert-plus": { - "version": "0.1.2", - "from": "assert-plus@0.1.2", - "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-0.1.2.tgz" - }, - "asn1": { - "version": "0.1.11", - "from": "asn1@0.1.11", - "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.1.11.tgz" - }, - "ctype": { - "version": "0.5.2", - "from": "ctype@0.5.2", - "resolved": "https://registry.npmjs.org/ctype/-/ctype-0.5.2.tgz" - } - } - }, - "oauth-sign": { - "version": "0.3.0", - "from": "oauth-sign@~0.3.0", - "resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.3.0.tgz" - }, - "hawk": { - "version": "1.1.1", - "from": "hawk@1.1.1", - "resolved": "https://registry.npmjs.org/hawk/-/hawk-1.1.1.tgz", - "dependencies": { - "hoek": { - "version": "0.9.1", - "from": "hoek@0.9.x", - "resolved": "https://registry.npmjs.org/hoek/-/hoek-0.9.1.tgz" - }, - "boom": { - "version": "0.4.2", - "from": "boom@0.4.x", - "resolved": "https://registry.npmjs.org/boom/-/boom-0.4.2.tgz" - }, - "cryptiles": { - "version": "0.2.2", - "from": "cryptiles@0.2.x", - "resolved": "https://registry.npmjs.org/cryptiles/-/cryptiles-0.2.2.tgz" - }, - "sntp": { - "version": "0.2.4", - "from": "sntp@0.2.x", - "resolved": "https://registry.npmjs.org/sntp/-/sntp-0.2.4.tgz" - } - } - }, - "aws-sign2": { - "version": "0.5.0", - "from": "aws-sign2@~0.5.0", - "resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.5.0.tgz" - }, - "stringstream": { - "version": "0.0.4", - "from": "stringstream@~0.0.4", - "resolved": "https://registry.npmjs.org/stringstream/-/stringstream-0.0.4.tgz" - } - } - }, - "semver": { - "version": "3.0.1", - "from": "semver@~3.0.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-3.0.1.tgz" - }, - "tar": { - "version": "1.0.1", - "from": "tar@~1.0.0", - "resolved": "https://registry.npmjs.org/tar/-/tar-1.0.1.tgz", - "dependencies": { - "block-stream": { - "version": "0.0.7", - "from": "block-stream@*", - "resolved": "https://registry.npmjs.org/block-stream/-/block-stream-0.0.7.tgz" - }, - "fstream": { - "version": "1.0.2", - "from": "fstream@^1.0.2", - "resolved": "https://registry.npmjs.org/fstream/-/fstream-1.0.2.tgz", - "dependencies": { - "graceful-fs": { - "version": "3.0.2", - "from": "graceful-fs@3", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-3.0.2.tgz" - } - } - }, - "inherits": { - "version": "2.0.1", - "from": "inherits@2", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.1.tgz" - } - } - }, - "tar-pack": { - "version": "2.0.0", - "from": "tar-pack@~2.0.0", - "resolved": "https://registry.npmjs.org/tar-pack/-/tar-pack-2.0.0.tgz", - "dependencies": { - "uid-number": { - "version": "0.0.3", - "from": "uid-number@0.0.3", - "resolved": "https://registry.npmjs.org/uid-number/-/uid-number-0.0.3.tgz" - }, - "once": { - "version": "1.1.1", - "from": "once@~1.1.1", - "resolved": "https://registry.npmjs.org/once/-/once-1.1.1.tgz" - }, - "debug": { - "version": "0.7.4", - "from": "debug@~0.7.2", - "resolved": "https://registry.npmjs.org/debug/-/debug-0.7.4.tgz" - }, - "fstream": { - "version": "0.1.31", - "from": "fstream@~0.1.22", - "resolved": "https://registry.npmjs.org/fstream/-/fstream-0.1.31.tgz", - "dependencies": { - "graceful-fs": { - "version": "3.0.2", - "from": "graceful-fs@~3.0.2", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-3.0.2.tgz" - }, - "inherits": { - "version": "2.0.1", - "from": "inherits@2", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.1.tgz" - } - } - }, - "tar": { - "version": "0.1.20", - "from": "tar@~0.1.17", - "resolved": "https://registry.npmjs.org/tar/-/tar-0.1.20.tgz", - "dependencies": { - "block-stream": { - "version": "0.0.7", - "from": "block-stream@*", - "resolved": "https://registry.npmjs.org/block-stream/-/block-stream-0.0.7.tgz" - }, - "inherits": { - "version": "2.0.1", - "from": "inherits@2", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.1.tgz" - } - } - }, - "fstream-ignore": { - "version": "0.0.7", - "from": "fstream-ignore@0.0.7", - "resolved": "https://registry.npmjs.org/fstream-ignore/-/fstream-ignore-0.0.7.tgz", - "dependencies": { - "minimatch": { - "version": "0.2.14", - "from": "minimatch@~0.2.0", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-0.2.14.tgz", - "dependencies": { - "lru-cache": { - "version": "2.5.0", - "from": "lru-cache@2", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-2.5.0.tgz" - }, - "sigmund": { - "version": "1.0.0", - "from": "sigmund@~1.0.0", - "resolved": "https://registry.npmjs.org/sigmund/-/sigmund-1.0.0.tgz" - } - } - }, - "inherits": { - "version": "2.0.1", - "from": "inherits@2", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.1.tgz" - } - } - }, - "readable-stream": { - "version": "1.0.31", - "from": "readable-stream@~1.0.2", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.0.31.tgz", - "dependencies": { - "core-util-is": { - "version": "1.0.1", - "from": "core-util-is@~1.0.0", - "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.1.tgz" - }, - "isarray": { - "version": "0.0.1", - "from": "isarray@0.0.1", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz" - }, - "string_decoder": { - "version": "0.10.31", - "from": "string_decoder@~0.10.x", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz" - }, - "inherits": { - "version": "2.0.1", - "from": "inherits@~2.0.1", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.1.tgz" - } - } - }, - "graceful-fs": { - "version": "1.2.3", - "from": "graceful-fs@1.2", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-1.2.3.tgz" - } - } - }, - "mkdirp": { - "version": "0.5.0", - "from": "mkdirp@~0.5.0", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.0.tgz", - "dependencies": { - "minimist": { - "version": "0.0.8", - "from": "minimist@0.0.8", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz" - } - } - }, - "rc": { - "version": "0.5.1", - "from": "rc@~0.5.0", - "resolved": "https://registry.npmjs.org/rc/-/rc-0.5.1.tgz", - "dependencies": { - "minimist": { - "version": "0.0.10", - "from": "minimist@~0.0.7", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.10.tgz" - }, - "deep-extend": { - "version": "0.2.11", - "from": "deep-extend@~0.2.5", - "resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.2.11.tgz" - }, - "strip-json-comments": { - "version": "0.1.3", - "from": "strip-json-comments@0.1.x", - "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-0.1.3.tgz" - }, - "ini": { - "version": "1.1.0", - "from": "ini@~1.1.0", - "resolved": "https://registry.npmjs.org/ini/-/ini-1.1.0.tgz" - } - } - }, - "rimraf": { - "version": "2.2.8", - "from": "rimraf@~2.2.8", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.2.8.tgz" - } - } - } - } - }, - "grainstore": { - "version": "1.1.0", - "from": "grainstore@~1.1.0", - "dependencies": { - "carto": { - "version": "0.9.5-cdb2", - "from": "https://github.com/CartoDB/carto/tarball/0.9.5-cdb2", - "resolved": "https://github.com/CartoDB/carto/tarball/0.9.5-cdb2", - "dependencies": { - "underscore": { - "version": "1.4.4", - "from": "underscore@~1.4.3", - "resolved": "https://registry.npmjs.org/underscore/-/underscore-1.4.4.tgz" - }, - "mapnik-reference": { - "version": "5.0.9", - "from": "mapnik-reference@~5.0.7", - "resolved": "https://registry.npmjs.org/mapnik-reference/-/mapnik-reference-5.0.9.tgz" - }, - "xml2js": { - "version": "0.2.8", - "from": "xml2js@~0.2.4", - "resolved": "https://registry.npmjs.org/xml2js/-/xml2js-0.2.8.tgz", - "dependencies": { - "sax": { - "version": "0.5.8", - "from": "sax@0.5.x", - "resolved": "https://registry.npmjs.org/sax/-/sax-0.5.8.tgz" - } - } - }, - "optimist": { - "version": "0.6.1", - "from": "optimist@~0.6.0", - "resolved": "https://registry.npmjs.org/optimist/-/optimist-0.6.1.tgz", - "dependencies": { - "wordwrap": { - "version": "0.0.3", - "from": "wordwrap@~0.0.2", - "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-0.0.3.tgz" - }, - "minimist": { - "version": "0.0.10", - "from": "minimist@~0.0.1", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.10.tgz" - } - } - } - } - }, - "millstone": { - "version": "0.6.14", - "from": "millstone@0.6.14", - "resolved": "https://registry.npmjs.org/millstone/-/millstone-0.6.14.tgz", - "dependencies": { - "generic-pool": { - "version": "2.0.4", - "from": "generic-pool@~2.0.3", - "resolved": "https://registry.npmjs.org/generic-pool/-/generic-pool-2.0.4.tgz" - }, - "request": { - "version": "2.34.0", - "from": "request@~2.34.0", - "resolved": "https://registry.npmjs.org/request/-/request-2.34.0.tgz", - "dependencies": { - "qs": { - "version": "0.6.6", - "from": "qs@~0.6.0", - "resolved": "https://registry.npmjs.org/qs/-/qs-0.6.6.tgz" - }, - "json-stringify-safe": { - "version": "5.0.1", - "from": "json-stringify-safe@~5.0.0", - "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz" - }, - "forever-agent": { - "version": "0.5.2", - "from": "forever-agent@~0.5.0", - "resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.5.2.tgz" - }, - "node-uuid": { - "version": "1.4.4", - "from": "node-uuid@~1.4.0", - "resolved": "https://registry.npmjs.org/node-uuid/-/node-uuid-1.4.4.tgz" - }, - "tough-cookie": { - "version": "2.2.0", - "from": "tough-cookie@>=0.12.0", - "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.2.0.tgz" - }, - "form-data": { - "version": "0.1.4", - "from": "form-data@~0.1.0", - "resolved": "https://registry.npmjs.org/form-data/-/form-data-0.1.4.tgz", - "dependencies": { - "combined-stream": { - "version": "0.0.7", - "from": "combined-stream@~0.0.4", - "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-0.0.7.tgz", - "dependencies": { - "delayed-stream": { - "version": "0.0.5", - "from": "delayed-stream@0.0.5", - "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-0.0.5.tgz" - } - } - }, - "async": { - "version": "0.9.2", - "from": "async@~0.9.0", - "resolved": "https://registry.npmjs.org/async/-/async-0.9.2.tgz" - } - } - }, - "tunnel-agent": { - "version": "0.3.0", - "from": "tunnel-agent@~0.3.0", - "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.3.0.tgz" - }, - "http-signature": { - "version": "0.10.1", - "from": "http-signature@~0.10.0", - "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-0.10.1.tgz", - "dependencies": { - "assert-plus": { - "version": "0.1.5", - "from": "assert-plus@^0.1.5", - "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-0.1.5.tgz" - }, - "asn1": { - "version": "0.1.11", - "from": "asn1@0.1.11", - "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.1.11.tgz" - }, - "ctype": { - "version": "0.5.3", - "from": "ctype@0.5.3", - "resolved": "https://registry.npmjs.org/ctype/-/ctype-0.5.3.tgz" - } - } - }, - "oauth-sign": { - "version": "0.3.0", - "from": "oauth-sign@~0.3.0", - "resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.3.0.tgz" - }, - "hawk": { - "version": "1.0.0", - "from": "hawk@~1.0.0", - "resolved": "https://registry.npmjs.org/hawk/-/hawk-1.0.0.tgz", - "dependencies": { - "hoek": { - "version": "0.9.1", - "from": "hoek@0.9.x", - "resolved": "https://registry.npmjs.org/hoek/-/hoek-0.9.1.tgz" - }, - "boom": { - "version": "0.4.2", - "from": "boom@0.4.x", - "resolved": "https://registry.npmjs.org/boom/-/boom-0.4.2.tgz" - }, - "cryptiles": { - "version": "0.2.2", - "from": "cryptiles@0.2.x", - "resolved": "https://registry.npmjs.org/cryptiles/-/cryptiles-0.2.2.tgz" - }, - "sntp": { - "version": "0.2.4", - "from": "sntp@0.2.x", - "resolved": "https://registry.npmjs.org/sntp/-/sntp-0.2.4.tgz" - } - } - }, - "aws-sign2": { - "version": "0.5.0", - "from": "aws-sign2@~0.5.0", - "resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.5.0.tgz" - } - } - }, - "srs": { - "version": "0.4.9", - "from": "srs@~0.4.1", - "resolved": "https://registry.npmjs.org/srs/-/srs-0.4.9.tgz", - "dependencies": { - "nan": { - "version": "1.8.4", - "from": "nan@~1.8.4", - "resolved": "https://registry.npmjs.org/nan/-/nan-1.8.4.tgz" - }, - "node-pre-gyp": { - "version": "0.6.9", - "from": "node-pre-gyp@>=0.6.7 <0.7.0", - "dependencies": { - "nopt": { - "version": "3.0.3", - "from": "nopt@~3.0.1", - "resolved": "https://registry.npmjs.org/nopt/-/nopt-3.0.3.tgz", - "dependencies": { - "abbrev": { - "version": "1.0.7", - "from": "abbrev@1", - "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.0.7.tgz" - } - } - }, - "npmlog": { - "version": "1.2.1", - "from": "npmlog@~1.2.0", - "resolved": "https://registry.npmjs.org/npmlog/-/npmlog-1.2.1.tgz", - "dependencies": { - "ansi": { - "version": "0.3.0", - "from": "ansi@~0.3.0", - "resolved": "https://registry.npmjs.org/ansi/-/ansi-0.3.0.tgz" - }, - "are-we-there-yet": { - "version": "1.0.4", - "from": "are-we-there-yet@~1.0.0", - "resolved": "https://registry.npmjs.org/are-we-there-yet/-/are-we-there-yet-1.0.4.tgz", - "dependencies": { - "delegates": { - "version": "0.1.0", - "from": "delegates@^0.1.0", - "resolved": "https://registry.npmjs.org/delegates/-/delegates-0.1.0.tgz" - }, - "readable-stream": { - "version": "1.1.13", - "from": "readable-stream@^1.1.13", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.1.13.tgz", - "dependencies": { - "core-util-is": { - "version": "1.0.1", - "from": "core-util-is@~1.0.0", - "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.1.tgz" - }, - "isarray": { - "version": "0.0.1", - "from": "isarray@0.0.1", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz" - }, - "string_decoder": { - "version": "0.10.31", - "from": "string_decoder@~0.10.x", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz" - }, - "inherits": { - "version": "2.0.1", - "from": "inherits@~2.0.1", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.1.tgz" - } - } - } - } - }, - "gauge": { - "version": "1.2.2", - "from": "gauge@~1.2.0", - "resolved": "https://registry.npmjs.org/gauge/-/gauge-1.2.2.tgz", - "dependencies": { - "has-unicode": { - "version": "1.0.0", - "from": "has-unicode@^1.0.0", - "resolved": "https://registry.npmjs.org/has-unicode/-/has-unicode-1.0.0.tgz" - }, - "lodash.pad": { - "version": "3.1.1", - "from": "lodash.pad@^3.0.0", - "resolved": "https://registry.npmjs.org/lodash.pad/-/lodash.pad-3.1.1.tgz", - "dependencies": { - "lodash._basetostring": { - "version": "3.0.1", - "from": "lodash._basetostring@^3.0.0", - "resolved": "https://registry.npmjs.org/lodash._basetostring/-/lodash._basetostring-3.0.1.tgz" - }, - "lodash._createpadding": { - "version": "3.6.1", - "from": "lodash._createpadding@^3.0.0", - "resolved": "https://registry.npmjs.org/lodash._createpadding/-/lodash._createpadding-3.6.1.tgz", - "dependencies": { - "lodash.repeat": { - "version": "3.0.1", - "from": "lodash.repeat@^3.0.0", - "resolved": "https://registry.npmjs.org/lodash.repeat/-/lodash.repeat-3.0.1.tgz" - } - } - } - } - }, - "lodash.padleft": { - "version": "3.1.1", - "from": "lodash.padleft@^3.0.0", - "resolved": "https://registry.npmjs.org/lodash.padleft/-/lodash.padleft-3.1.1.tgz", - "dependencies": { - "lodash._basetostring": { - "version": "3.0.1", - "from": "lodash._basetostring@^3.0.0", - "resolved": "https://registry.npmjs.org/lodash._basetostring/-/lodash._basetostring-3.0.1.tgz" - }, - "lodash._createpadding": { - "version": "3.6.1", - "from": "lodash._createpadding@^3.0.0", - "resolved": "https://registry.npmjs.org/lodash._createpadding/-/lodash._createpadding-3.6.1.tgz", - "dependencies": { - "lodash.repeat": { - "version": "3.0.1", - "from": "lodash.repeat@^3.0.0", - "resolved": "https://registry.npmjs.org/lodash.repeat/-/lodash.repeat-3.0.1.tgz" - } - } - } - } - }, - "lodash.padright": { - "version": "3.1.1", - "from": "lodash.padright@^3.0.0", - "resolved": "https://registry.npmjs.org/lodash.padright/-/lodash.padright-3.1.1.tgz", - "dependencies": { - "lodash._basetostring": { - "version": "3.0.1", - "from": "lodash._basetostring@^3.0.0", - "resolved": "https://registry.npmjs.org/lodash._basetostring/-/lodash._basetostring-3.0.1.tgz" - }, - "lodash._createpadding": { - "version": "3.6.1", - "from": "lodash._createpadding@^3.0.0", - "resolved": "https://registry.npmjs.org/lodash._createpadding/-/lodash._createpadding-3.6.1.tgz", - "dependencies": { - "lodash.repeat": { - "version": "3.0.1", - "from": "lodash.repeat@^3.0.0", - "resolved": "https://registry.npmjs.org/lodash.repeat/-/lodash.repeat-3.0.1.tgz" - } - } - } - } - } - } - } - } - }, - "request": { - "version": "2.60.0", - "from": "request@2.x", - "resolved": "https://registry.npmjs.org/request/-/request-2.60.0.tgz", - "dependencies": { - "bl": { - "version": "1.0.0", - "from": "bl@~1.0.0", - "resolved": "https://registry.npmjs.org/bl/-/bl-1.0.0.tgz", - "dependencies": { - "readable-stream": { - "version": "2.0.2", - "from": "readable-stream@~2.0.0", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.0.2.tgz", - "dependencies": { - "core-util-is": { - "version": "1.0.1", - "from": "core-util-is@~1.0.0", - "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.1.tgz" - }, - "inherits": { - "version": "2.0.1", - "from": "inherits@2", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.1.tgz" - }, - "isarray": { - "version": "0.0.1", - "from": "isarray@0.0.1", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz" - }, - "process-nextick-args": { - "version": "1.0.2", - "from": "process-nextick-args@~1.0.0", - "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-1.0.2.tgz" - }, - "string_decoder": { - "version": "0.10.31", - "from": "string_decoder@~0.10.x", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz" - }, - "util-deprecate": { - "version": "1.0.1", - "from": "util-deprecate@~1.0.1", - "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.1.tgz" - } - } - } - } - }, - "caseless": { - "version": "0.11.0", - "from": "caseless@~0.11.0", - "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.11.0.tgz" - }, - "extend": { - "version": "3.0.0", - "from": "extend@~3.0.0", - "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.0.tgz" - }, - "forever-agent": { - "version": "0.6.1", - "from": "forever-agent@~0.6.0", - "resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz" - }, - "form-data": { - "version": "1.0.0-rc2", - "from": "form-data@~1.0.0-rc1", - "resolved": "https://registry.npmjs.org/form-data/-/form-data-1.0.0-rc2.tgz", - "dependencies": { - "async": { - "version": "1.4.0", - "from": "async@^1.2.1", - "resolved": "https://registry.npmjs.org/async/-/async-1.4.0.tgz" - } - } - }, - "json-stringify-safe": { - "version": "5.0.1", - "from": "json-stringify-safe@~5.0.0", - "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz" - }, - "mime-types": { - "version": "2.1.3", - "from": "mime-types@~2.1.2", - "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.3.tgz", - "dependencies": { - "mime-db": { - "version": "1.15.0", - "from": "mime-db@~1.15.0", - "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.15.0.tgz" - } - } - }, - "node-uuid": { - "version": "1.4.3", - "from": "node-uuid@~1.4.0", - "resolved": "https://registry.npmjs.org/node-uuid/-/node-uuid-1.4.3.tgz" - }, - "qs": { - "version": "4.0.0", - "from": "qs@~4.0.0", - "resolved": "https://registry.npmjs.org/qs/-/qs-4.0.0.tgz" - }, - "tunnel-agent": { - "version": "0.4.1", - "from": "tunnel-agent@~0.4.0", - "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.4.1.tgz" - }, - "tough-cookie": { - "version": "2.0.0", - "from": "tough-cookie@>=0.12.0", - "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.0.0.tgz" - }, - "http-signature": { - "version": "0.11.0", - "from": "http-signature@~0.11.0", - "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-0.11.0.tgz", - "dependencies": { - "assert-plus": { - "version": "0.1.5", - "from": "assert-plus@^0.1.5", - "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-0.1.5.tgz" - }, - "asn1": { - "version": "0.1.11", - "from": "asn1@0.1.11", - "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.1.11.tgz" - }, - "ctype": { - "version": "0.5.3", - "from": "ctype@0.5.3", - "resolved": "https://registry.npmjs.org/ctype/-/ctype-0.5.3.tgz" - } - } - }, - "oauth-sign": { - "version": "0.8.0", - "from": "oauth-sign@~0.8.0", - "resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.8.0.tgz" - }, - "hawk": { - "version": "3.1.0", - "from": "hawk@~3.1.0", - "resolved": "https://registry.npmjs.org/hawk/-/hawk-3.1.0.tgz", - "dependencies": { - "hoek": { - "version": "2.14.0", - "from": "hoek@2.x.x", - "resolved": "https://registry.npmjs.org/hoek/-/hoek-2.14.0.tgz" - }, - "boom": { - "version": "2.8.0", - "from": "boom@^2.8.x", - "resolved": "https://registry.npmjs.org/boom/-/boom-2.8.0.tgz" - }, - "cryptiles": { - "version": "2.0.4", - "from": "cryptiles@2.x.x", - "resolved": "https://registry.npmjs.org/cryptiles/-/cryptiles-2.0.4.tgz" - }, - "sntp": { - "version": "1.0.9", - "from": "sntp@1.x.x", - "resolved": "https://registry.npmjs.org/sntp/-/sntp-1.0.9.tgz" - } - } - }, - "aws-sign2": { - "version": "0.5.0", - "from": "aws-sign2@~0.5.0", - "resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.5.0.tgz" - }, - "stringstream": { - "version": "0.0.4", - "from": "stringstream@~0.0.4", - "resolved": "https://registry.npmjs.org/stringstream/-/stringstream-0.0.4.tgz" - }, - "combined-stream": { - "version": "1.0.5", - "from": "combined-stream@~1.0.1", - "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.5.tgz", - "dependencies": { - "delayed-stream": { - "version": "1.0.0", - "from": "delayed-stream@~1.0.0", - "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz" - } - } - }, - "isstream": { - "version": "0.1.2", - "from": "isstream@~0.1.1", - "resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz" - }, - "har-validator": { - "version": "1.8.0", - "from": "har-validator@^1.6.1", - "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-1.8.0.tgz", - "dependencies": { - "bluebird": { - "version": "2.9.34", - "from": "bluebird@^2.9.30", - "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-2.9.34.tgz" - }, - "chalk": { - "version": "1.1.0", - "from": "chalk@^1.0.0", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.0.tgz", - "dependencies": { - "ansi-styles": { - "version": "2.1.0", - "from": "ansi-styles@^2.1.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.1.0.tgz" - }, - "escape-string-regexp": { - "version": "1.0.3", - "from": "escape-string-regexp@^1.0.2", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.3.tgz" - }, - "has-ansi": { - "version": "2.0.0", - "from": "has-ansi@^2.0.0", - "resolved": "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz", - "dependencies": { - "ansi-regex": { - "version": "2.0.0", - "from": "ansi-regex@^2.0.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.0.0.tgz" - } - } - }, - "strip-ansi": { - "version": "3.0.0", - "from": "strip-ansi@^3.0.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.0.tgz", - "dependencies": { - "ansi-regex": { - "version": "2.0.0", - "from": "ansi-regex@^2.0.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.0.0.tgz" - } - } - }, - "supports-color": { - "version": "2.0.0", - "from": "supports-color@^2.0.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz" - } - } - }, - "commander": { - "version": "2.8.1", - "from": "commander@^2.8.1", - "resolved": "https://registry.npmjs.org/commander/-/commander-2.8.1.tgz", - "dependencies": { - "graceful-readlink": { - "version": "1.0.1", - "from": "graceful-readlink@>= 1.0.0", - "resolved": "https://registry.npmjs.org/graceful-readlink/-/graceful-readlink-1.0.1.tgz" - } - } - }, - "is-my-json-valid": { - "version": "2.12.1", - "from": "is-my-json-valid@^2.12.0", - "resolved": "https://registry.npmjs.org/is-my-json-valid/-/is-my-json-valid-2.12.1.tgz", - "dependencies": { - "generate-function": { - "version": "2.0.0", - "from": "generate-function@^2.0.0", - "resolved": "https://registry.npmjs.org/generate-function/-/generate-function-2.0.0.tgz" - }, - "generate-object-property": { - "version": "1.2.0", - "from": "generate-object-property@^1.1.0", - "resolved": "https://registry.npmjs.org/generate-object-property/-/generate-object-property-1.2.0.tgz", - "dependencies": { - "is-property": { - "version": "1.0.2", - "from": "is-property@^1.0.0", - "resolved": "https://registry.npmjs.org/is-property/-/is-property-1.0.2.tgz" - } - } - }, - "jsonpointer": { - "version": "1.1.0", - "from": "jsonpointer@^1.1.0", - "resolved": "https://registry.npmjs.org/jsonpointer/-/jsonpointer-1.1.0.tgz" - }, - "xtend": { - "version": "4.0.0", - "from": "xtend@^4.0.0", - "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.0.tgz" - } - } - } - } - } - } - }, - "semver": { - "version": "5.0.1", - "from": "semver@~5.0.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.0.1.tgz" - }, - "tar": { - "version": "2.1.1", - "from": "tar@~2.1.0", - "resolved": "https://registry.npmjs.org/tar/-/tar-2.1.1.tgz", - "dependencies": { - "block-stream": { - "version": "0.0.8", - "from": "block-stream@*", - "resolved": "https://registry.npmjs.org/block-stream/-/block-stream-0.0.8.tgz" - }, - "fstream": { - "version": "1.0.7", - "from": "fstream@^1.0.2", - "resolved": "https://registry.npmjs.org/fstream/-/fstream-1.0.7.tgz", - "dependencies": { - "graceful-fs": { - "version": "3.0.8", - "from": "graceful-fs@3", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-3.0.8.tgz" - } - } - }, - "inherits": { - "version": "2.0.1", - "from": "inherits@2", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.1.tgz" - } - } - }, - "tar-pack": { - "version": "2.0.0", - "from": "tar-pack@~2.0.0", - "resolved": "https://registry.npmjs.org/tar-pack/-/tar-pack-2.0.0.tgz", - "dependencies": { - "uid-number": { - "version": "0.0.3", - "from": "uid-number@0.0.3", - "resolved": "https://registry.npmjs.org/uid-number/-/uid-number-0.0.3.tgz" - }, - "once": { - "version": "1.1.1", - "from": "once@~1.1.1", - "resolved": "https://registry.npmjs.org/once/-/once-1.1.1.tgz" - }, - "debug": { - "version": "0.7.4", - "from": "debug@~0.7.2", - "resolved": "https://registry.npmjs.org/debug/-/debug-0.7.4.tgz" - }, - "rimraf": { - "version": "2.2.8", - "from": "rimraf@~2.2.0", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.2.8.tgz" - }, - "fstream": { - "version": "0.1.31", - "from": "fstream@~0.1.22", - "resolved": "https://registry.npmjs.org/fstream/-/fstream-0.1.31.tgz", - "dependencies": { - "graceful-fs": { - "version": "3.0.8", - "from": "graceful-fs@~3.0.2", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-3.0.8.tgz" - }, - "inherits": { - "version": "2.0.1", - "from": "inherits@~2.0.0", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.1.tgz" - } - } - }, - "tar": { - "version": "0.1.20", - "from": "tar@~0.1.17", - "resolved": "https://registry.npmjs.org/tar/-/tar-0.1.20.tgz", - "dependencies": { - "block-stream": { - "version": "0.0.8", - "from": "block-stream@*", - "resolved": "https://registry.npmjs.org/block-stream/-/block-stream-0.0.8.tgz" - }, - "inherits": { - "version": "2.0.1", - "from": "inherits@2", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.1.tgz" - } - } - }, - "fstream-ignore": { - "version": "0.0.7", - "from": "fstream-ignore@0.0.7", - "resolved": "https://registry.npmjs.org/fstream-ignore/-/fstream-ignore-0.0.7.tgz", - "dependencies": { - "minimatch": { - "version": "0.2.14", - "from": "minimatch@~0.2.0", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-0.2.14.tgz", - "dependencies": { - "lru-cache": { - "version": "2.6.5", - "from": "lru-cache@2", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-2.6.5.tgz" - }, - "sigmund": { - "version": "1.0.1", - "from": "sigmund@~1.0.0", - "resolved": "https://registry.npmjs.org/sigmund/-/sigmund-1.0.1.tgz" - } - } - }, - "inherits": { - "version": "2.0.1", - "from": "inherits@~2.0.1", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.1.tgz" - } - } - }, - "readable-stream": { - "version": "1.0.33", - "from": "readable-stream@~1.0.2", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.0.33.tgz", - "dependencies": { - "core-util-is": { - "version": "1.0.1", - "from": "core-util-is@~1.0.0", - "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.1.tgz" - }, - "isarray": { - "version": "0.0.1", - "from": "isarray@0.0.1", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz" - }, - "string_decoder": { - "version": "0.10.31", - "from": "string_decoder@~0.10.x", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz" - }, - "inherits": { - "version": "2.0.1", - "from": "inherits@~2.0.1", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.1.tgz" - } - } - }, - "graceful-fs": { - "version": "1.2.3", - "from": "graceful-fs@1.2", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-1.2.3.tgz" - } - } - }, - "mkdirp": { - "version": "0.5.1", - "from": "mkdirp@~0.5.0", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz", - "dependencies": { - "minimist": { - "version": "0.0.8", - "from": "minimist@0.0.8", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz" - } - } - }, - "rc": { - "version": "1.1.0", - "from": "rc@~1.1.0", - "resolved": "https://registry.npmjs.org/rc/-/rc-1.1.0.tgz", - "dependencies": { - "minimist": { - "version": "1.1.2", - "from": "minimist@^1.1.2", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.1.2.tgz" - }, - "deep-extend": { - "version": "0.2.11", - "from": "deep-extend@~0.2.5", - "resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.2.11.tgz" - }, - "strip-json-comments": { - "version": "0.1.3", - "from": "strip-json-comments@0.1.x", - "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-0.1.3.tgz" - }, - "ini": { - "version": "1.3.4", - "from": "ini@~1.3.0", - "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.4.tgz" - } - } - }, - "rimraf": { - "version": "2.4.2", - "from": "rimraf@~2.4.0", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.4.2.tgz", - "dependencies": { - "glob": { - "version": "5.0.14", - "from": "glob@^5.0.14", - "resolved": "https://registry.npmjs.org/glob/-/glob-5.0.14.tgz", - "dependencies": { - "inflight": { - "version": "1.0.4", - "from": "inflight@^1.0.4", - "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.4.tgz", - "dependencies": { - "wrappy": { - "version": "1.0.1", - "from": "wrappy@1", - "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.1.tgz" - } - } - }, - "inherits": { - "version": "2.0.1", - "from": "inherits@~2.0.1", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.1.tgz" - }, - "minimatch": { - "version": "2.0.10", - "from": "minimatch@2.0.x", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-2.0.10.tgz", - "dependencies": { - "brace-expansion": { - "version": "1.1.0", - "from": "brace-expansion@^1.0.0", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.0.tgz", - "dependencies": { - "balanced-match": { - "version": "0.2.0", - "from": "balanced-match@^0.2.0", - "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-0.2.0.tgz" - }, - "concat-map": { - "version": "0.0.1", - "from": "concat-map@0.0.1", - "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz" - } - } - } - } - }, - "once": { - "version": "1.3.2", - "from": "once@^1.3.0", - "resolved": "https://registry.npmjs.org/once/-/once-1.3.2.tgz", - "dependencies": { - "wrappy": { - "version": "1.0.1", - "from": "wrappy@1", - "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.1.tgz" - } - } - }, - "path-is-absolute": { - "version": "1.0.0", - "from": "path-is-absolute@^1.0.0", - "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.0.tgz" - } - } - } - } - } - } - } - } - }, - "zipfile": { - "version": "0.5.7", - "from": "zipfile@~0.5.2", - "resolved": "https://registry.npmjs.org/zipfile/-/zipfile-0.5.7.tgz", - "dependencies": { - "nan": { - "version": "1.5.3", - "from": "nan@~1.5.1", - "resolved": "https://registry.npmjs.org/nan/-/nan-1.5.3.tgz" - }, - "node-pre-gyp": { - "version": "0.6.2", - "from": "node-pre-gyp@>=0.6.2 <0.7.0", - "resolved": "https://registry.npmjs.org/node-pre-gyp/-/node-pre-gyp-0.6.2.tgz", - "dependencies": { - "nopt": { - "version": "3.0.1", - "from": "nopt@~3.0.1", - "resolved": "https://registry.npmjs.org/nopt/-/nopt-3.0.1.tgz", - "dependencies": { - "abbrev": { - "version": "1.0.5", - "from": "abbrev@1", - "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.0.5.tgz" - } - } - }, - "npmlog": { - "version": "0.1.1", - "from": "npmlog@~0.1.1", - "resolved": "https://registry.npmjs.org/npmlog/-/npmlog-0.1.1.tgz", - "dependencies": { - "ansi": { - "version": "0.3.0", - "from": "ansi@~0.3.0", - "resolved": "https://registry.npmjs.org/ansi/-/ansi-0.3.0.tgz" - } - } - }, - "request": { - "version": "2.51.0", - "from": "request@2.x", - "resolved": "https://registry.npmjs.org/request/-/request-2.51.0.tgz", - "dependencies": { - "bl": { - "version": "0.9.3", - "from": "bl@~0.9.0", - "resolved": "https://registry.npmjs.org/bl/-/bl-0.9.3.tgz", - "dependencies": { - "readable-stream": { - "version": "1.0.33", - "from": "readable-stream@~1.0.26", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.0.33.tgz", - "dependencies": { - "core-util-is": { - "version": "1.0.1", - "from": "core-util-is@~1.0.0", - "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.1.tgz" - }, - "isarray": { - "version": "0.0.1", - "from": "isarray@0.0.1", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz" - }, - "string_decoder": { - "version": "0.10.31", - "from": "string_decoder@~0.10.x", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz" - }, - "inherits": { - "version": "2.0.1", - "from": "inherits@~2.0.1", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.1.tgz" - } - } - } - } - }, - "caseless": { - "version": "0.8.0", - "from": "caseless@~0.8.0", - "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.8.0.tgz" - }, - "forever-agent": { - "version": "0.5.2", - "from": "forever-agent@~0.5.0", - "resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.5.2.tgz" - }, - "form-data": { - "version": "0.2.0", - "from": "form-data@~0.2.0", - "resolved": "https://registry.npmjs.org/form-data/-/form-data-0.2.0.tgz", - "dependencies": { - "async": { - "version": "0.9.0", - "from": "async@~0.9.0", - "resolved": "https://registry.npmjs.org/async/-/async-0.9.0.tgz" - }, - "mime-types": { - "version": "2.0.7", - "from": "mime-types@~2.0.3", - "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.0.7.tgz", - "dependencies": { - "mime-db": { - "version": "1.5.0", - "from": "mime-db@~1.5.0", - "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.5.0.tgz" - } - } - } - } - }, - "json-stringify-safe": { - "version": "5.0.0", - "from": "json-stringify-safe@~5.0.0", - "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.0.tgz" - }, - "mime-types": { - "version": "1.0.2", - "from": "mime-types@~1.0.1", - "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-1.0.2.tgz" - }, - "node-uuid": { - "version": "1.4.2", - "from": "node-uuid@~1.4.0", - "resolved": "https://registry.npmjs.org/node-uuid/-/node-uuid-1.4.2.tgz" - }, - "qs": { - "version": "2.3.3", - "from": "qs@~2.3.1", - "resolved": "https://registry.npmjs.org/qs/-/qs-2.3.3.tgz" - }, - "tunnel-agent": { - "version": "0.4.0", - "from": "tunnel-agent@~0.4.0", - "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.4.0.tgz" - }, - "tough-cookie": { - "version": "0.12.1", - "from": "tough-cookie@>=0.12.0", - "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-0.12.1.tgz", - "dependencies": { - "punycode": { - "version": "1.3.2", - "from": "punycode@>=0.2.0", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.3.2.tgz" - } - } - }, - "http-signature": { - "version": "0.10.1", - "from": "http-signature@~0.10.0", - "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-0.10.1.tgz", - "dependencies": { - "assert-plus": { - "version": "0.1.5", - "from": "assert-plus@^0.1.5", - "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-0.1.5.tgz" - }, - "asn1": { - "version": "0.1.11", - "from": "asn1@0.1.11", - "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.1.11.tgz" - }, - "ctype": { - "version": "0.5.3", - "from": "ctype@0.5.3", - "resolved": "https://registry.npmjs.org/ctype/-/ctype-0.5.3.tgz" - } - } - }, - "oauth-sign": { - "version": "0.5.0", - "from": "oauth-sign@~0.5.0", - "resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.5.0.tgz" - }, - "hawk": { - "version": "1.1.1", - "from": "hawk@1.1.1", - "resolved": "https://registry.npmjs.org/hawk/-/hawk-1.1.1.tgz", - "dependencies": { - "hoek": { - "version": "0.9.1", - "from": "hoek@0.9.x", - "resolved": "https://registry.npmjs.org/hoek/-/hoek-0.9.1.tgz" - }, - "boom": { - "version": "0.4.2", - "from": "boom@0.4.x", - "resolved": "https://registry.npmjs.org/boom/-/boom-0.4.2.tgz" - }, - "cryptiles": { - "version": "0.2.2", - "from": "cryptiles@0.2.x", - "resolved": "https://registry.npmjs.org/cryptiles/-/cryptiles-0.2.2.tgz" - }, - "sntp": { - "version": "0.2.4", - "from": "sntp@0.2.x", - "resolved": "https://registry.npmjs.org/sntp/-/sntp-0.2.4.tgz" - } - } - }, - "aws-sign2": { - "version": "0.5.0", - "from": "aws-sign2@~0.5.0", - "resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.5.0.tgz" - }, - "stringstream": { - "version": "0.0.4", - "from": "stringstream@~0.0.4", - "resolved": "https://registry.npmjs.org/stringstream/-/stringstream-0.0.4.tgz" - }, - "combined-stream": { - "version": "0.0.7", - "from": "combined-stream@~0.0.5", - "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-0.0.7.tgz", - "dependencies": { - "delayed-stream": { - "version": "0.0.5", - "from": "delayed-stream@0.0.5", - "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-0.0.5.tgz" - } - } - } - } - }, - "semver": { - "version": "4.2.0", - "from": "semver@~4.2.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-4.2.0.tgz" - }, - "tar": { - "version": "1.0.3", - "from": "tar@~1.0.2", - "resolved": "https://registry.npmjs.org/tar/-/tar-1.0.3.tgz", - "dependencies": { - "block-stream": { - "version": "0.0.7", - "from": "block-stream@*", - "resolved": "https://registry.npmjs.org/block-stream/-/block-stream-0.0.7.tgz" - }, - "fstream": { - "version": "1.0.3", - "from": "fstream@^1.0.2", - "resolved": "https://registry.npmjs.org/fstream/-/fstream-1.0.3.tgz", - "dependencies": { - "graceful-fs": { - "version": "3.0.5", - "from": "graceful-fs@3", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-3.0.5.tgz" - } - } - }, - "inherits": { - "version": "2.0.1", - "from": "inherits@2", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.1.tgz" - } - } - }, - "tar-pack": { - "version": "2.0.0", - "from": "tar-pack@~2.0.0", - "resolved": "https://registry.npmjs.org/tar-pack/-/tar-pack-2.0.0.tgz", - "dependencies": { - "uid-number": { - "version": "0.0.3", - "from": "uid-number@0.0.3", - "resolved": "https://registry.npmjs.org/uid-number/-/uid-number-0.0.3.tgz" - }, - "once": { - "version": "1.1.1", - "from": "once@~1.1.1", - "resolved": "https://registry.npmjs.org/once/-/once-1.1.1.tgz" - }, - "debug": { - "version": "0.7.4", - "from": "debug@~0.7.2", - "resolved": "https://registry.npmjs.org/debug/-/debug-0.7.4.tgz" - }, - "fstream": { - "version": "0.1.31", - "from": "fstream@~0.1.22", - "resolved": "https://registry.npmjs.org/fstream/-/fstream-0.1.31.tgz", - "dependencies": { - "graceful-fs": { - "version": "3.0.5", - "from": "graceful-fs@3", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-3.0.5.tgz" - }, - "inherits": { - "version": "2.0.1", - "from": "inherits@~2.0.0", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.1.tgz" - } - } - }, - "tar": { - "version": "0.1.20", - "from": "tar@~0.1.17", - "resolved": "https://registry.npmjs.org/tar/-/tar-0.1.20.tgz", - "dependencies": { - "block-stream": { - "version": "0.0.7", - "from": "block-stream@*", - "resolved": "https://registry.npmjs.org/block-stream/-/block-stream-0.0.7.tgz" - }, - "inherits": { - "version": "2.0.1", - "from": "inherits@2", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.1.tgz" - } - } - }, - "fstream-ignore": { - "version": "0.0.7", - "from": "fstream-ignore@0.0.7", - "resolved": "https://registry.npmjs.org/fstream-ignore/-/fstream-ignore-0.0.7.tgz", - "dependencies": { - "minimatch": { - "version": "0.2.14", - "from": "minimatch@~0.2.0", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-0.2.14.tgz", - "dependencies": { - "lru-cache": { - "version": "2.5.0", - "from": "lru-cache@2", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-2.5.0.tgz" - }, - "sigmund": { - "version": "1.0.0", - "from": "sigmund@~1.0.0", - "resolved": "https://registry.npmjs.org/sigmund/-/sigmund-1.0.0.tgz" - } - } - }, - "inherits": { - "version": "2.0.1", - "from": "inherits@2", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.1.tgz" - } - } - }, - "readable-stream": { - "version": "1.0.33", - "from": "readable-stream@~1.0.2", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.0.33.tgz", - "dependencies": { - "core-util-is": { - "version": "1.0.1", - "from": "core-util-is@~1.0.0", - "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.1.tgz" - }, - "isarray": { - "version": "0.0.1", - "from": "isarray@0.0.1", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz" - }, - "string_decoder": { - "version": "0.10.31", - "from": "string_decoder@~0.10.x", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz" - }, - "inherits": { - "version": "2.0.1", - "from": "inherits@~2.0.0", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.1.tgz" - } - } - }, - "graceful-fs": { - "version": "1.2.3", - "from": "graceful-fs@1.2", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-1.2.3.tgz" - } - } - }, - "mkdirp": { - "version": "0.5.0", - "from": "mkdirp@~0.5.0", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.0.tgz", - "dependencies": { - "minimist": { - "version": "0.0.8", - "from": "minimist@0.0.8", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz" - } - } - }, - "rc": { - "version": "0.5.5", - "from": "rc@~0.5.1", - "resolved": "https://registry.npmjs.org/rc/-/rc-0.5.5.tgz", - "dependencies": { - "minimist": { - "version": "0.0.10", - "from": "minimist@~0.0.7", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.10.tgz" - }, - "deep-extend": { - "version": "0.2.11", - "from": "deep-extend@~0.2.5", - "resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.2.11.tgz" - }, - "strip-json-comments": { - "version": "0.1.3", - "from": "strip-json-comments@0.1.x", - "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-0.1.3.tgz" - }, - "ini": { - "version": "1.3.2", - "from": "ini@~1.3.0", - "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.2.tgz" - } - } - }, - "rimraf": { - "version": "2.2.8", - "from": "rimraf@~2.2.8", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.2.8.tgz" - } - } - } - } - }, - "sqlite3": { - "version": "2.2.7", - "from": "sqlite3@2.x", - "resolved": "https://registry.npmjs.org/sqlite3/-/sqlite3-2.2.7.tgz", - "dependencies": { - "nan": { - "version": "1.1.2", - "from": "nan@1.1.2", - "resolved": "https://registry.npmjs.org/nan/-/nan-1.1.2.tgz" - }, - "node-pre-gyp": { - "version": "0.5.22", - "from": "node-pre-gyp@0.5.22", - "resolved": "https://registry.npmjs.org/node-pre-gyp/-/node-pre-gyp-0.5.22.tgz", - "dependencies": { - "nopt": { - "version": "3.0.1", - "from": "nopt@~3.0.1", - "resolved": "https://registry.npmjs.org/nopt/-/nopt-3.0.1.tgz", - "dependencies": { - "abbrev": { - "version": "1.0.5", - "from": "abbrev@1", - "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.0.5.tgz" - } - } - }, - "npmlog": { - "version": "0.1.1", - "from": "npmlog@~0.1.1", - "resolved": "https://registry.npmjs.org/npmlog/-/npmlog-0.1.1.tgz", - "dependencies": { - "ansi": { - "version": "0.3.0", - "from": "ansi@~0.3.0", - "resolved": "https://registry.npmjs.org/ansi/-/ansi-0.3.0.tgz" - } - } - }, - "request": { - "version": "2.39.0", - "from": "request@2.x", - "resolved": "https://registry.npmjs.org/request/-/request-2.39.0.tgz", - "dependencies": { - "qs": { - "version": "0.6.6", - "from": "qs@~0.6.0", - "resolved": "https://registry.npmjs.org/qs/-/qs-0.6.6.tgz" - }, - "json-stringify-safe": { - "version": "5.0.0", - "from": "json-stringify-safe@~5.0.0", - "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.0.tgz" - }, - "mime-types": { - "version": "1.0.2", - "from": "mime-types@~1.0.1", - "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-1.0.2.tgz" - }, - "forever-agent": { - "version": "0.5.2", - "from": "forever-agent@~0.5.0", - "resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.5.2.tgz" - }, - "node-uuid": { - "version": "1.4.1", - "from": "node-uuid@~1.4.0", - "resolved": "https://registry.npmjs.org/node-uuid/-/node-uuid-1.4.1.tgz" - }, - "tough-cookie": { - "version": "0.12.1", - "from": "tough-cookie@>=0.12.0", - "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-0.12.1.tgz", - "dependencies": { - "punycode": { - "version": "1.3.0", - "from": "punycode@>=0.2.0", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.3.0.tgz" - } - } - }, - "form-data": { - "version": "0.1.4", - "from": "form-data@~0.1.0", - "resolved": "https://registry.npmjs.org/form-data/-/form-data-0.1.4.tgz", - "dependencies": { - "combined-stream": { - "version": "0.0.5", - "from": "combined-stream@~0.0.4", - "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-0.0.5.tgz", - "dependencies": { - "delayed-stream": { - "version": "0.0.5", - "from": "delayed-stream@0.0.5", - "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-0.0.5.tgz" - } - } - }, - "mime": { - "version": "1.2.11", - "from": "mime@~1.2.11", - "resolved": "https://registry.npmjs.org/mime/-/mime-1.2.11.tgz" - }, - "async": { - "version": "0.9.0", - "from": "async@~0.9.0", - "resolved": "https://registry.npmjs.org/async/-/async-0.9.0.tgz" - } - } - }, - "tunnel-agent": { - "version": "0.4.0", - "from": "tunnel-agent@~0.4.0", - "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.4.0.tgz" - }, - "http-signature": { - "version": "0.10.0", - "from": "http-signature@~0.10.0", - "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-0.10.0.tgz", - "dependencies": { - "assert-plus": { - "version": "0.1.2", - "from": "assert-plus@0.1.2", - "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-0.1.2.tgz" - }, - "asn1": { - "version": "0.1.11", - "from": "asn1@0.1.11", - "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.1.11.tgz" - }, - "ctype": { - "version": "0.5.2", - "from": "ctype@0.5.2", - "resolved": "https://registry.npmjs.org/ctype/-/ctype-0.5.2.tgz" - } - } - }, - "oauth-sign": { - "version": "0.3.0", - "from": "oauth-sign@~0.3.0", - "resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.3.0.tgz" - }, - "hawk": { - "version": "1.1.1", - "from": "hawk@1.1.1", - "resolved": "https://registry.npmjs.org/hawk/-/hawk-1.1.1.tgz", - "dependencies": { - "hoek": { - "version": "0.9.1", - "from": "hoek@0.9.x", - "resolved": "https://registry.npmjs.org/hoek/-/hoek-0.9.1.tgz" - }, - "boom": { - "version": "0.4.2", - "from": "boom@0.4.x", - "resolved": "https://registry.npmjs.org/boom/-/boom-0.4.2.tgz" - }, - "cryptiles": { - "version": "0.2.2", - "from": "cryptiles@0.2.x", - "resolved": "https://registry.npmjs.org/cryptiles/-/cryptiles-0.2.2.tgz" - }, - "sntp": { - "version": "0.2.4", - "from": "sntp@0.2.x", - "resolved": "https://registry.npmjs.org/sntp/-/sntp-0.2.4.tgz" - } - } - }, - "aws-sign2": { - "version": "0.5.0", - "from": "aws-sign2@~0.5.0", - "resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.5.0.tgz" - }, - "stringstream": { - "version": "0.0.4", - "from": "stringstream@~0.0.4", - "resolved": "https://registry.npmjs.org/stringstream/-/stringstream-0.0.4.tgz" - } - } - }, - "semver": { - "version": "3.0.1", - "from": "semver@~3.0.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-3.0.1.tgz" - }, - "tar": { - "version": "1.0.0", - "from": "tar@~1.0.0", - "resolved": "https://registry.npmjs.org/tar/-/tar-1.0.0.tgz", - "dependencies": { - "block-stream": { - "version": "0.0.7", - "from": "block-stream@*", - "resolved": "https://registry.npmjs.org/block-stream/-/block-stream-0.0.7.tgz" - }, - "fstream": { - "version": "1.0.1", - "from": "fstream@^1.0.0", - "resolved": "https://registry.npmjs.org/fstream/-/fstream-1.0.1.tgz", - "dependencies": { - "graceful-fs": { - "version": "3.0.2", - "from": "graceful-fs@3", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-3.0.2.tgz" - } - } - }, - "inherits": { - "version": "2.0.1", - "from": "inherits@~2.0.1", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.1.tgz" - } - } - }, - "tar-pack": { - "version": "2.0.0", - "from": "tar-pack@~2.0.0", - "resolved": "https://registry.npmjs.org/tar-pack/-/tar-pack-2.0.0.tgz", - "dependencies": { - "uid-number": { - "version": "0.0.3", - "from": "uid-number@0.0.3", - "resolved": "https://registry.npmjs.org/uid-number/-/uid-number-0.0.3.tgz" - }, - "once": { - "version": "1.1.1", - "from": "once@~1.1.1", - "resolved": "https://registry.npmjs.org/once/-/once-1.1.1.tgz" - }, - "debug": { - "version": "0.7.4", - "from": "debug@~0.7.2", - "resolved": "https://registry.npmjs.org/debug/-/debug-0.7.4.tgz" - }, - "fstream": { - "version": "0.1.31", - "from": "fstream@~0.1.22", - "resolved": "https://registry.npmjs.org/fstream/-/fstream-0.1.31.tgz", - "dependencies": { - "graceful-fs": { - "version": "3.0.2", - "from": "graceful-fs@3", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-3.0.2.tgz" - }, - "inherits": { - "version": "2.0.1", - "from": "inherits@2", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.1.tgz" - } - } - }, - "tar": { - "version": "0.1.20", - "from": "tar@~0.1.17", - "resolved": "https://registry.npmjs.org/tar/-/tar-0.1.20.tgz", - "dependencies": { - "block-stream": { - "version": "0.0.7", - "from": "block-stream@*", - "resolved": "https://registry.npmjs.org/block-stream/-/block-stream-0.0.7.tgz" - }, - "inherits": { - "version": "2.0.1", - "from": "inherits@2", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.1.tgz" - } - } - }, - "fstream-ignore": { - "version": "0.0.7", - "from": "fstream-ignore@0.0.7", - "resolved": "https://registry.npmjs.org/fstream-ignore/-/fstream-ignore-0.0.7.tgz", - "dependencies": { - "minimatch": { - "version": "0.2.14", - "from": "minimatch@~0.2.0", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-0.2.14.tgz", - "dependencies": { - "lru-cache": { - "version": "2.5.0", - "from": "lru-cache@2", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-2.5.0.tgz" - }, - "sigmund": { - "version": "1.0.0", - "from": "sigmund@~1.0.0", - "resolved": "https://registry.npmjs.org/sigmund/-/sigmund-1.0.0.tgz" - } - } - }, - "inherits": { - "version": "2.0.1", - "from": "inherits@2", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.1.tgz" - } - } - }, - "readable-stream": { - "version": "1.0.27-1", - "from": "readable-stream@~1.0.2", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.0.27-1.tgz", - "dependencies": { - "core-util-is": { - "version": "1.0.1", - "from": "core-util-is@~1.0.0", - "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.1.tgz" - }, - "isarray": { - "version": "0.0.1", - "from": "isarray@0.0.1", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz" - }, - "string_decoder": { - "version": "0.10.25-1", - "from": "string_decoder@~0.10.x", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.25-1.tgz" - }, - "inherits": { - "version": "2.0.1", - "from": "inherits@2", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.1.tgz" - } - } - }, - "graceful-fs": { - "version": "1.2.3", - "from": "graceful-fs@1.2", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-1.2.3.tgz" - } - } - }, - "mkdirp": { - "version": "0.5.0", - "from": "mkdirp@~0.5.0", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.0.tgz", - "dependencies": { - "minimist": { - "version": "0.0.8", - "from": "minimist@0.0.8", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz" - } - } - }, - "rc": { - "version": "0.5.0", - "from": "rc@~0.5.0", - "resolved": "https://registry.npmjs.org/rc/-/rc-0.5.0.tgz", - "dependencies": { - "minimist": { - "version": "0.0.10", - "from": "minimist@~0.0.7", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.10.tgz" - }, - "deep-extend": { - "version": "0.2.11", - "from": "deep-extend@~0.2.5", - "resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.2.11.tgz" - }, - "strip-json-comments": { - "version": "0.1.3", - "from": "strip-json-comments@0.1.x", - "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-0.1.3.tgz" - }, - "ini": { - "version": "1.1.0", - "from": "ini@~1.1.0", - "resolved": "https://registry.npmjs.org/ini/-/ini-1.1.0.tgz" - } - } - }, - "rimraf": { - "version": "2.2.8", - "from": "rimraf@~2.2.8", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.2.8.tgz" - } - } - }, - "set-immediate": { - "version": "0.1.1", - "from": "set-immediate@0.1.1", - "resolved": "https://registry.npmjs.org/set-immediate/-/set-immediate-0.1.1.tgz" - } - } - }, - "mime": { - "version": "1.2.11", - "from": "mime@~1.2.9", - "resolved": "https://registry.npmjs.org/mime/-/mime-1.2.11.tgz" - }, - "mkdirp": { - "version": "0.3.5", - "from": "mkdirp@~0.3.3", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.3.5.tgz" - }, - "optimist": { - "version": "0.6.1", - "from": "optimist@~0.6.0", - "resolved": "https://registry.npmjs.org/optimist/-/optimist-0.6.1.tgz", - "dependencies": { - "wordwrap": { - "version": "0.0.3", - "from": "wordwrap@~0.0.2", - "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-0.0.3.tgz" - }, - "minimist": { - "version": "0.0.10", - "from": "minimist@~0.0.1", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.10.tgz" - } - } - } - } - } - } - }, - "tilelive": { - "version": "4.5.3", - "from": "tilelive@~4.5.3", - "resolved": "https://registry.npmjs.org/tilelive/-/tilelive-4.5.3.tgz", - "dependencies": { - "optimist": { - "version": "0.6.1", - "from": "optimist@~0.6.0", - "resolved": "https://registry.npmjs.org/optimist/-/optimist-0.6.1.tgz", - "dependencies": { - "wordwrap": { - "version": "0.0.3", - "from": "wordwrap@~0.0.2", - "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-0.0.3.tgz" - }, - "minimist": { - "version": "0.0.10", - "from": "minimist@~0.0.1", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.10.tgz" - } - } - } - } - }, - "tilelive-mapnik": { - "version": "0.6.15-cdb3", - "from": "https://github.com/CartoDB/tilelive-mapnik/tarball/0.6.15-cdb3", - "resolved": "https://github.com/CartoDB/tilelive-mapnik/tarball/0.6.15-cdb3", - "dependencies": { - "generic-pool": { - "version": "2.1.1", - "from": "generic-pool@~2.1.1", - "resolved": "https://registry.npmjs.org/generic-pool/-/generic-pool-2.1.1.tgz" - }, - "mime": { - "version": "1.2.11", - "from": "mime@~1.2.9", - "resolved": "https://registry.npmjs.org/mime/-/mime-1.2.11.tgz" - } - } - }, - "tilelive-bridge": { - "version": "1.3.0-cdb3", - "from": "https://github.com/CartoDB/tilelive-bridge/tarball/1.3.0-cdb3", - "resolved": "https://github.com/CartoDB/tilelive-bridge/tarball/1.3.0-cdb3", - "dependencies": { - "mapnik-pool": { - "version": "0.1.1-cdb3", - "from": "https://github.com/CartoDB/mapnik-pool/tarball/0.1.1-cdb3", - "resolved": "https://github.com/CartoDB/mapnik-pool/tarball/0.1.1-cdb3", - "dependencies": { - "generic-pool": { - "version": "2.1.1", - "from": "generic-pool@~2.1.1", - "resolved": "https://registry.npmjs.org/generic-pool/-/generic-pool-2.1.1.tgz" - }, - "xtend": { - "version": "3.0.0", - "from": "xtend@~3.0.0", - "resolved": "https://registry.npmjs.org/xtend/-/xtend-3.0.0.tgz" - } - } - } - } - }, - "canvas": { - "version": "1.2.7-cdb1", - "from": "https://github.com/CartoDB/node-canvas/tarball/1.2.7-cdb1", - "resolved": "https://github.com/CartoDB/node-canvas/tarball/1.2.7-cdb1", - "dependencies": { - "nan": { - "version": "1.9.0", - "from": "nan@^1.8.4", - "resolved": "https://registry.npmjs.org/nan/-/nan-1.9.0.tgz" - } - } - }, - "semver": { - "version": "5.0.3", - "from": "semver@~5.0.3", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.0.3.tgz" - }, - "carto": { - "version": "0.15.1-cdb1", - "from": "https://github.com/CartoDB/carto/tarball/0.15.1-cdb1", - "resolved": "https://github.com/CartoDB/carto/tarball/0.15.1-cdb1", - "dependencies": { - "mapnik-reference": { - "version": "6.0.5", - "from": "mapnik-reference@~6.0.2", - "resolved": "https://registry.npmjs.org/mapnik-reference/-/mapnik-reference-6.0.5.tgz" - }, - "optimist": { - "version": "0.6.1", - "from": "optimist@~0.6.0", - "resolved": "https://registry.npmjs.org/optimist/-/optimist-0.6.1.tgz", - "dependencies": { - "wordwrap": { - "version": "0.0.3", - "from": "wordwrap@~0.0.2", - "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-0.0.3.tgz" - }, - "minimist": { - "version": "0.0.10", - "from": "minimist@~0.0.1", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.10.tgz" - } - } - } - } - }, - "cartodb-psql": { - "version": "0.6.1", - "from": "cartodb-psql@~0.6.1", - "dependencies": { - "pg": { - "version": "2.6.2-cdb3", - "from": "pg@git://github.com/CartoDB/node-postgres.git#2.6.2-cdb3", - "resolved": "git://github.com/CartoDB/node-postgres.git#069c5296d1a093077feff21719641bb9e71fc50e", - "dependencies": { - "generic-pool": { - "version": "2.0.3", - "from": "generic-pool@2.0.3", - "resolved": "https://registry.npmjs.org/generic-pool/-/generic-pool-2.0.3.tgz" - }, - "buffer-writer": { - "version": "1.0.0", - "from": "buffer-writer@1.0.0", - "resolved": "https://registry.npmjs.org/buffer-writer/-/buffer-writer-1.0.0.tgz" - } - } - } - } - }, - "torque.js": { - "version": "2.11.4", - "from": "torque.js@~2.11.0" - }, - "abaculus": { - "version": "1.1.0-cdb3", - "from": "https://github.com/CartoDB/abaculus/tarball/1.1.0-cdb3", - "resolved": "https://github.com/CartoDB/abaculus/tarball/1.1.0-cdb3" - }, - "sphericalmercator": { - "version": "1.0.3", - "from": "sphericalmercator@1.0.3", - "resolved": "https://registry.npmjs.org/sphericalmercator/-/sphericalmercator-1.0.3.tgz" - } - } - } - } -} From e2543792449390bc83b86dac9d063bc14f18d823 Mon Sep 17 00:00:00 2001 From: Raul Ochoa Date: Fri, 13 Nov 2015 10:35:52 +0100 Subject: [PATCH 25/40] Use windshaft's histogram branch --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index f5a462a6..995d319a 100644 --- a/package.json +++ b/package.json @@ -29,7 +29,7 @@ "node-statsd": "~0.0.7", "underscore" : "~1.6.0", "dot": "~1.0.2", - "windshaft": "https://github.com/CartoDB/Windshaft/tarball/mapconfig-extension", + "windshaft": "https://github.com/CartoDB/Windshaft/tarball/mapconfig-extension-histogram", "step": "~0.0.6", "queue-async": "~1.0.7", "request": "~2.62.0", From 9264f4a668324388712abcbdde06cb72810f68dd Mon Sep 17 00:00:00 2001 From: Raul Ochoa Date: Mon, 16 Nov 2015 12:13:54 +0100 Subject: [PATCH 26/40] Re-adds npm-shrinkwrap.json --- npm-shrinkwrap.json | 3124 +++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 3124 insertions(+) create mode 100644 npm-shrinkwrap.json diff --git a/npm-shrinkwrap.json b/npm-shrinkwrap.json new file mode 100644 index 00000000..f9549fa5 --- /dev/null +++ b/npm-shrinkwrap.json @@ -0,0 +1,3124 @@ +{ + "name": "windshaft-cartodb", + "version": "2.19.1", + "dependencies": { + "body-parser": { + "version": "1.14.1", + "from": "body-parser@~1.14.0", + "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.14.1.tgz", + "dependencies": { + "bytes": { + "version": "2.1.0", + "from": "bytes@2.1.0", + "resolved": "https://registry.npmjs.org/bytes/-/bytes-2.1.0.tgz" + }, + "content-type": { + "version": "1.0.1", + "from": "content-type@~1.0.1", + "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.1.tgz" + }, + "depd": { + "version": "1.1.0", + "from": "depd@~1.1.0", + "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.0.tgz" + }, + "http-errors": { + "version": "1.3.1", + "from": "http-errors@~1.3.1", + "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.3.1.tgz", + "dependencies": { + "inherits": { + "version": "2.0.1", + "from": "inherits@~2.0.1", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.1.tgz" + }, + "statuses": { + "version": "1.2.1", + "from": "statuses@1", + "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.2.1.tgz" + } + } + }, + "iconv-lite": { + "version": "0.4.12", + "from": "iconv-lite@0.4.12", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.12.tgz" + }, + "on-finished": { + "version": "2.3.0", + "from": "on-finished@~2.3.0", + "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.3.0.tgz", + "dependencies": { + "ee-first": { + "version": "1.1.1", + "from": "ee-first@1.1.1", + "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz" + } + } + }, + "qs": { + "version": "5.1.0", + "from": "qs@5.1.0", + "resolved": "https://registry.npmjs.org/qs/-/qs-5.1.0.tgz" + }, + "raw-body": { + "version": "2.1.4", + "from": "raw-body@~2.1.4", + "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.1.4.tgz", + "dependencies": { + "unpipe": { + "version": "1.0.0", + "from": "unpipe@1.0.0", + "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz" + } + } + }, + "type-is": { + "version": "1.6.9", + "from": "type-is@~1.6.9", + "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.9.tgz", + "dependencies": { + "media-typer": { + "version": "0.3.0", + "from": "media-typer@0.3.0", + "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz" + }, + "mime-types": { + "version": "2.1.7", + "from": "mime-types@~2.1.7", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.7.tgz", + "dependencies": { + "mime-db": { + "version": "1.19.0", + "from": "mime-db@~1.19.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.19.0.tgz" + } + } + } + } + } + } + }, + "cartodb-psql": { + "version": "0.4.0", + "from": "cartodb-psql@~0.4.0", + "resolved": "https://registry.npmjs.org/cartodb-psql/-/cartodb-psql-0.4.0.tgz", + "dependencies": { + "pg": { + "version": "2.6.2-cdb1", + "from": "pg@git://github.com/CartoDB/node-postgres.git#2.6.2-cdb1", + "resolved": "git://github.com/CartoDB/node-postgres.git#836a2dc3131e873fc4ba20cd16e7fb69a7dca98a", + "dependencies": { + "generic-pool": { + "version": "2.0.3", + "from": "generic-pool@2.0.3", + "resolved": "https://registry.npmjs.org/generic-pool/-/generic-pool-2.0.3.tgz" + }, + "buffer-writer": { + "version": "1.0.0", + "from": "buffer-writer@1.0.0", + "resolved": "https://registry.npmjs.org/buffer-writer/-/buffer-writer-1.0.0.tgz" + } + } + } + } + }, + "cartodb-redis": { + "version": "0.13.0", + "from": "cartodb-redis@~0.13.0", + "dependencies": { + "redis-mpool": { + "version": "0.1.0", + "from": "redis-mpool@git://github.com/CartoDB/node-redis-mpool.git#0.1.0", + "resolved": "git://github.com/CartoDB/node-redis-mpool.git#47510b8d4525ee24aa2e5328976372274a1d144e", + "dependencies": { + "generic-pool": { + "version": "2.1.1", + "from": "generic-pool@~2.1.1", + "resolved": "https://registry.npmjs.org/generic-pool/-/generic-pool-2.1.1.tgz" + }, + "redis": { + "version": "0.12.1", + "from": "redis@~0.12.1", + "resolved": "https://registry.npmjs.org/redis/-/redis-0.12.1.tgz" + }, + "hiredis": { + "version": "0.1.17", + "from": "hiredis@~0.1.17", + "resolved": "https://registry.npmjs.org/hiredis/-/hiredis-0.1.17.tgz", + "dependencies": { + "bindings": { + "version": "1.2.1", + "from": "bindings@*", + "resolved": "https://registry.npmjs.org/bindings/-/bindings-1.2.1.tgz" + }, + "nan": { + "version": "1.1.2", + "from": "nan@~1.1.0", + "resolved": "https://registry.npmjs.org/nan/-/nan-1.1.2.tgz" + } + } + } + } + } + } + }, + "debug": { + "version": "2.2.0", + "from": "debug@~2.2.0", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.2.0.tgz", + "dependencies": { + "ms": { + "version": "0.7.1", + "from": "ms@0.7.1", + "resolved": "https://registry.npmjs.org/ms/-/ms-0.7.1.tgz" + } + } + }, + "dot": { + "version": "1.0.3", + "from": "dot@~1.0.2", + "resolved": "https://registry.npmjs.org/dot/-/dot-1.0.3.tgz" + }, + "express": { + "version": "4.13.3", + "from": "express@~4.13.3", + "resolved": "https://registry.npmjs.org/express/-/express-4.13.3.tgz", + "dependencies": { + "accepts": { + "version": "1.2.13", + "from": "accepts@~1.2.12", + "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.2.13.tgz", + "dependencies": { + "mime-types": { + "version": "2.1.7", + "from": "mime-types@~2.1.7", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.7.tgz", + "dependencies": { + "mime-db": { + "version": "1.19.0", + "from": "mime-db@~1.19.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.19.0.tgz" + } + } + }, + "negotiator": { + "version": "0.5.3", + "from": "negotiator@0.5.3", + "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.5.3.tgz" + } + } + }, + "array-flatten": { + "version": "1.1.1", + "from": "array-flatten@1.1.1", + "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz" + }, + "content-disposition": { + "version": "0.5.0", + "from": "content-disposition@0.5.0", + "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.0.tgz" + }, + "content-type": { + "version": "1.0.1", + "from": "content-type@~1.0.1", + "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.1.tgz" + }, + "cookie": { + "version": "0.1.3", + "from": "cookie@0.1.3", + "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.1.3.tgz" + }, + "cookie-signature": { + "version": "1.0.6", + "from": "cookie-signature@1.0.6", + "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz" + }, + "depd": { + "version": "1.0.1", + "from": "depd@~1.0.1", + "resolved": "https://registry.npmjs.org/depd/-/depd-1.0.1.tgz" + }, + "escape-html": { + "version": "1.0.2", + "from": "escape-html@1.0.2", + "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.2.tgz" + }, + "etag": { + "version": "1.7.0", + "from": "etag@~1.7.0", + "resolved": "https://registry.npmjs.org/etag/-/etag-1.7.0.tgz" + }, + "finalhandler": { + "version": "0.4.0", + "from": "finalhandler@0.4.0", + "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-0.4.0.tgz", + "dependencies": { + "unpipe": { + "version": "1.0.0", + "from": "unpipe@~1.0.0", + "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz" + } + } + }, + "fresh": { + "version": "0.3.0", + "from": "fresh@0.3.0", + "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.3.0.tgz" + }, + "merge-descriptors": { + "version": "1.0.0", + "from": "merge-descriptors@1.0.0", + "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.0.tgz" + }, + "methods": { + "version": "1.1.1", + "from": "methods@~1.1.1", + "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.1.tgz" + }, + "on-finished": { + "version": "2.3.0", + "from": "on-finished@~2.3.0", + "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.3.0.tgz", + "dependencies": { + "ee-first": { + "version": "1.1.1", + "from": "ee-first@1.1.1", + "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz" + } + } + }, + "parseurl": { + "version": "1.3.0", + "from": "parseurl@~1.3.0", + "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.0.tgz" + }, + "path-to-regexp": { + "version": "0.1.7", + "from": "path-to-regexp@0.1.7", + "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz" + }, + "proxy-addr": { + "version": "1.0.8", + "from": "proxy-addr@~1.0.8", + "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-1.0.8.tgz", + "dependencies": { + "forwarded": { + "version": "0.1.0", + "from": "forwarded@~0.1.0", + "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.1.0.tgz" + }, + "ipaddr.js": { + "version": "1.0.1", + "from": "ipaddr.js@1.0.1", + "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.0.1.tgz" + } + } + }, + "qs": { + "version": "4.0.0", + "from": "qs@4.0.0", + "resolved": "https://registry.npmjs.org/qs/-/qs-4.0.0.tgz" + }, + "range-parser": { + "version": "1.0.3", + "from": "range-parser@~1.0.2", + "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.0.3.tgz" + }, + "send": { + "version": "0.13.0", + "from": "send@0.13.0", + "resolved": "https://registry.npmjs.org/send/-/send-0.13.0.tgz", + "dependencies": { + "destroy": { + "version": "1.0.3", + "from": "destroy@1.0.3", + "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.0.3.tgz" + }, + "http-errors": { + "version": "1.3.1", + "from": "http-errors@~1.3.1", + "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.3.1.tgz", + "dependencies": { + "inherits": { + "version": "2.0.1", + "from": "inherits@~2.0.1", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.1.tgz" + } + } + }, + "mime": { + "version": "1.3.4", + "from": "mime@1.3.4", + "resolved": "https://registry.npmjs.org/mime/-/mime-1.3.4.tgz" + }, + "ms": { + "version": "0.7.1", + "from": "ms@0.7.1", + "resolved": "https://registry.npmjs.org/ms/-/ms-0.7.1.tgz" + }, + "statuses": { + "version": "1.2.1", + "from": "statuses@~1.2.1", + "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.2.1.tgz" + } + } + }, + "serve-static": { + "version": "1.10.0", + "from": "serve-static@~1.10.0", + "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.10.0.tgz" + }, + "type-is": { + "version": "1.6.9", + "from": "type-is@~1.6.6", + "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.9.tgz", + "dependencies": { + "media-typer": { + "version": "0.3.0", + "from": "media-typer@0.3.0", + "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz" + }, + "mime-types": { + "version": "2.1.7", + "from": "mime-types@~2.1.7", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.7.tgz", + "dependencies": { + "mime-db": { + "version": "1.19.0", + "from": "mime-db@~1.19.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.19.0.tgz" + } + } + } + } + }, + "utils-merge": { + "version": "1.0.0", + "from": "utils-merge@1.0.0", + "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.0.tgz" + }, + "vary": { + "version": "1.0.1", + "from": "vary@~1.0.1", + "resolved": "https://registry.npmjs.org/vary/-/vary-1.0.1.tgz" + } + } + }, + "fastly-purge": { + "version": "1.0.1", + "from": "fastly-purge@~1.0.1" + }, + "log4js": { + "version": "0.6.25", + "from": "https://github.com/CartoDB/log4js-node/tarball/cdb", + "resolved": "https://github.com/CartoDB/log4js-node/tarball/cdb", + "dependencies": { + "async": { + "version": "0.2.10", + "from": "async@~0.2.0", + "resolved": "https://registry.npmjs.org/async/-/async-0.2.10.tgz" + }, + "readable-stream": { + "version": "1.0.33", + "from": "readable-stream@~1.0.2", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.0.33.tgz", + "dependencies": { + "core-util-is": { + "version": "1.0.1", + "from": "core-util-is@~1.0.0", + "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.1.tgz" + }, + "isarray": { + "version": "0.0.1", + "from": "isarray@0.0.1", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz" + }, + "string_decoder": { + "version": "0.10.31", + "from": "string_decoder@~0.10.x", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz" + }, + "inherits": { + "version": "2.0.1", + "from": "inherits@~2.0.1", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.1.tgz" + } + } + }, + "semver": { + "version": "4.3.6", + "from": "semver@~4.3.3", + "resolved": "https://registry.npmjs.org/semver/-/semver-4.3.6.tgz" + }, + "underscore": { + "version": "1.8.2", + "from": "underscore@1.8.2", + "resolved": "https://registry.npmjs.org/underscore/-/underscore-1.8.2.tgz" + } + } + }, + "lru-cache": { + "version": "2.6.5", + "from": "lru-cache@2.6.5", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-2.6.5.tgz" + }, + "lzma": { + "version": "1.3.7", + "from": "lzma@~1.3.7", + "resolved": "https://registry.npmjs.org/lzma/-/lzma-1.3.7.tgz" + }, + "node-statsd": { + "version": "0.0.7", + "from": "node-statsd@~0.0.7", + "resolved": "https://registry.npmjs.org/node-statsd/-/node-statsd-0.0.7.tgz" + }, + "queue-async": { + "version": "1.0.7", + "from": "queue-async@~1.0.7", + "resolved": "https://registry.npmjs.org/queue-async/-/queue-async-1.0.7.tgz" + }, + "redis-mpool": { + "version": "0.4.0", + "from": "redis-mpool@~0.4.0", + "dependencies": { + "generic-pool": { + "version": "2.1.1", + "from": "generic-pool@~2.1.1", + "resolved": "https://registry.npmjs.org/generic-pool/-/generic-pool-2.1.1.tgz" + }, + "redis": { + "version": "0.12.1", + "from": "redis@~0.12.1", + "resolved": "https://registry.npmjs.org/redis/-/redis-0.12.1.tgz" + }, + "hiredis": { + "version": "0.1.17", + "from": "hiredis@~0.1.17", + "resolved": "https://registry.npmjs.org/hiredis/-/hiredis-0.1.17.tgz", + "dependencies": { + "bindings": { + "version": "1.2.1", + "from": "bindings@*", + "resolved": "https://registry.npmjs.org/bindings/-/bindings-1.2.1.tgz" + }, + "nan": { + "version": "1.1.2", + "from": "nan@~1.1.0", + "resolved": "https://registry.npmjs.org/nan/-/nan-1.1.2.tgz" + } + } + } + } + }, + "request": { + "version": "2.62.0", + "from": "request@~2.62.0", + "resolved": "https://registry.npmjs.org/request/-/request-2.62.0.tgz", + "dependencies": { + "bl": { + "version": "1.0.0", + "from": "bl@~1.0.0", + "resolved": "https://registry.npmjs.org/bl/-/bl-1.0.0.tgz", + "dependencies": { + "readable-stream": { + "version": "2.0.4", + "from": "readable-stream@~2.0.0", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.0.4.tgz", + "dependencies": { + "core-util-is": { + "version": "1.0.1", + "from": "core-util-is@~1.0.0", + "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.1.tgz" + }, + "inherits": { + "version": "2.0.1", + "from": "inherits@~2.0.1", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.1.tgz" + }, + "isarray": { + "version": "0.0.1", + "from": "isarray@0.0.1", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz" + }, + "process-nextick-args": { + "version": "1.0.3", + "from": "process-nextick-args@~1.0.0", + "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-1.0.3.tgz" + }, + "string_decoder": { + "version": "0.10.31", + "from": "string_decoder@~0.10.x", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz" + }, + "util-deprecate": { + "version": "1.0.2", + "from": "util-deprecate@~1.0.1", + "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz" + } + } + } + } + }, + "caseless": { + "version": "0.11.0", + "from": "caseless@~0.11.0", + "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.11.0.tgz" + }, + "extend": { + "version": "3.0.0", + "from": "extend@~3.0.0", + "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.0.tgz" + }, + "forever-agent": { + "version": "0.6.1", + "from": "forever-agent@~0.6.0", + "resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz" + }, + "form-data": { + "version": "1.0.0-rc3", + "from": "form-data@~1.0.0-rc1", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-1.0.0-rc3.tgz", + "dependencies": { + "async": { + "version": "1.5.0", + "from": "async@^1.4.0", + "resolved": "https://registry.npmjs.org/async/-/async-1.5.0.tgz" + } + } + }, + "json-stringify-safe": { + "version": "5.0.1", + "from": "json-stringify-safe@~5.0.0", + "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz" + }, + "mime-types": { + "version": "2.1.7", + "from": "mime-types@~2.1.6", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.7.tgz", + "dependencies": { + "mime-db": { + "version": "1.19.0", + "from": "mime-db@~1.19.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.19.0.tgz" + } + } + }, + "node-uuid": { + "version": "1.4.7", + "from": "node-uuid@~1.4.0", + "resolved": "https://registry.npmjs.org/node-uuid/-/node-uuid-1.4.7.tgz" + }, + "qs": { + "version": "5.1.0", + "from": "qs@~5.1.0", + "resolved": "https://registry.npmjs.org/qs/-/qs-5.1.0.tgz" + }, + "tunnel-agent": { + "version": "0.4.1", + "from": "tunnel-agent@~0.4.0", + "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.4.1.tgz" + }, + "tough-cookie": { + "version": "2.2.1", + "from": "tough-cookie@>=0.12.0", + "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.2.1.tgz" + }, + "http-signature": { + "version": "0.11.0", + "from": "http-signature@~0.11.0", + "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-0.11.0.tgz", + "dependencies": { + "assert-plus": { + "version": "0.1.5", + "from": "assert-plus@^0.1.5", + "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-0.1.5.tgz" + }, + "asn1": { + "version": "0.1.11", + "from": "asn1@0.1.11", + "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.1.11.tgz" + }, + "ctype": { + "version": "0.5.3", + "from": "ctype@0.5.3", + "resolved": "https://registry.npmjs.org/ctype/-/ctype-0.5.3.tgz" + } + } + }, + "oauth-sign": { + "version": "0.8.0", + "from": "oauth-sign@~0.8.0", + "resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.8.0.tgz" + }, + "hawk": { + "version": "3.1.1", + "from": "hawk@~3.1.0", + "resolved": "https://registry.npmjs.org/hawk/-/hawk-3.1.1.tgz", + "dependencies": { + "hoek": { + "version": "2.16.3", + "from": "hoek@2.x.x", + "resolved": "https://registry.npmjs.org/hoek/-/hoek-2.16.3.tgz" + }, + "boom": { + "version": "2.10.1", + "from": "boom@^2.8.x", + "resolved": "https://registry.npmjs.org/boom/-/boom-2.10.1.tgz" + }, + "cryptiles": { + "version": "2.0.5", + "from": "cryptiles@2.x.x", + "resolved": "https://registry.npmjs.org/cryptiles/-/cryptiles-2.0.5.tgz" + }, + "sntp": { + "version": "1.0.9", + "from": "sntp@1.x.x", + "resolved": "https://registry.npmjs.org/sntp/-/sntp-1.0.9.tgz" + } + } + }, + "aws-sign2": { + "version": "0.5.0", + "from": "aws-sign2@~0.5.0", + "resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.5.0.tgz" + }, + "stringstream": { + "version": "0.0.5", + "from": "stringstream@~0.0.4", + "resolved": "https://registry.npmjs.org/stringstream/-/stringstream-0.0.5.tgz" + }, + "combined-stream": { + "version": "1.0.5", + "from": "combined-stream@~1.0.1", + "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.5.tgz", + "dependencies": { + "delayed-stream": { + "version": "1.0.0", + "from": "delayed-stream@~1.0.0", + "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz" + } + } + }, + "isstream": { + "version": "0.1.2", + "from": "isstream@~0.1.1", + "resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz" + }, + "har-validator": { + "version": "1.8.0", + "from": "har-validator@^1.6.1", + "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-1.8.0.tgz", + "dependencies": { + "bluebird": { + "version": "2.10.2", + "from": "bluebird@^2.9.30", + "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-2.10.2.tgz" + }, + "chalk": { + "version": "1.1.1", + "from": "chalk@^1.0.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.1.tgz", + "dependencies": { + "ansi-styles": { + "version": "2.1.0", + "from": "ansi-styles@^2.1.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.1.0.tgz" + }, + "escape-string-regexp": { + "version": "1.0.3", + "from": "escape-string-regexp@^1.0.2", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.3.tgz" + }, + "has-ansi": { + "version": "2.0.0", + "from": "has-ansi@^2.0.0", + "resolved": "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz", + "dependencies": { + "ansi-regex": { + "version": "2.0.0", + "from": "ansi-regex@^2.0.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.0.0.tgz" + } + } + }, + "strip-ansi": { + "version": "3.0.0", + "from": "strip-ansi@^3.0.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.0.tgz", + "dependencies": { + "ansi-regex": { + "version": "2.0.0", + "from": "ansi-regex@^2.0.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.0.0.tgz" + } + } + }, + "supports-color": { + "version": "2.0.0", + "from": "supports-color@^2.0.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz" + } + } + }, + "commander": { + "version": "2.9.0", + "from": "commander@^2.8.1", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.9.0.tgz", + "dependencies": { + "graceful-readlink": { + "version": "1.0.1", + "from": "graceful-readlink@>= 1.0.0", + "resolved": "https://registry.npmjs.org/graceful-readlink/-/graceful-readlink-1.0.1.tgz" + } + } + }, + "is-my-json-valid": { + "version": "2.12.3", + "from": "is-my-json-valid@^2.12.0", + "resolved": "https://registry.npmjs.org/is-my-json-valid/-/is-my-json-valid-2.12.3.tgz", + "dependencies": { + "generate-function": { + "version": "2.0.0", + "from": "generate-function@^2.0.0", + "resolved": "https://registry.npmjs.org/generate-function/-/generate-function-2.0.0.tgz" + }, + "generate-object-property": { + "version": "1.2.0", + "from": "generate-object-property@^1.1.0", + "resolved": "https://registry.npmjs.org/generate-object-property/-/generate-object-property-1.2.0.tgz", + "dependencies": { + "is-property": { + "version": "1.0.2", + "from": "is-property@^1.0.0", + "resolved": "https://registry.npmjs.org/is-property/-/is-property-1.0.2.tgz" + } + } + }, + "jsonpointer": { + "version": "2.0.0", + "from": "jsonpointer@2.0.0", + "resolved": "https://registry.npmjs.org/jsonpointer/-/jsonpointer-2.0.0.tgz" + }, + "xtend": { + "version": "4.0.1", + "from": "xtend@^4.0.0", + "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.1.tgz" + } + } + } + } + } + } + }, + "step": { + "version": "0.0.6", + "from": "step@~0.0.6", + "resolved": "https://registry.npmjs.org/step/-/step-0.0.6.tgz" + }, + "step-profiler": { + "version": "0.2.1", + "from": "step-profiler@~0.2.1", + "resolved": "https://registry.npmjs.org/step-profiler/-/step-profiler-0.2.1.tgz" + }, + "underscore": { + "version": "1.6.0", + "from": "underscore@~1.6.0", + "resolved": "https://registry.npmjs.org/underscore/-/underscore-1.6.0.tgz" + }, + "windshaft": { + "version": "1.5.1", + "from": "https://github.com/CartoDB/Windshaft/tarball/mapconfig-extension-histogram", + "resolved": "https://github.com/CartoDB/Windshaft/tarball/mapconfig-extension-histogram", + "dependencies": { + "mapnik": { + "version": "1.4.15-cdb5", + "from": "https://github.com/CartoDB/node-mapnik/tarball/1.4.15-cdb5", + "resolved": "https://github.com/CartoDB/node-mapnik/tarball/1.4.15-cdb5", + "dependencies": { + "nan": { + "version": "1.2.0", + "from": "nan@~1.2.0", + "resolved": "https://registry.npmjs.org/nan/-/nan-1.2.0.tgz" + }, + "mapnik-vector-tile": { + "version": "0.5.5", + "from": "mapnik-vector-tile@0.5.5", + "resolved": "https://registry.npmjs.org/mapnik-vector-tile/-/mapnik-vector-tile-0.5.5.tgz" + }, + "node-pre-gyp": { + "version": "0.5.25", + "from": "node-pre-gyp@0.5.25", + "resolved": "https://registry.npmjs.org/node-pre-gyp/-/node-pre-gyp-0.5.25.tgz", + "dependencies": { + "nopt": { + "version": "3.0.1", + "from": "nopt@~3.0.1", + "resolved": "https://registry.npmjs.org/nopt/-/nopt-3.0.1.tgz", + "dependencies": { + "abbrev": { + "version": "1.0.5", + "from": "abbrev@1", + "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.0.5.tgz" + } + } + }, + "npmlog": { + "version": "0.1.1", + "from": "npmlog@~0.1.1", + "resolved": "https://registry.npmjs.org/npmlog/-/npmlog-0.1.1.tgz", + "dependencies": { + "ansi": { + "version": "0.3.0", + "from": "ansi@~0.3.0", + "resolved": "https://registry.npmjs.org/ansi/-/ansi-0.3.0.tgz" + } + } + }, + "request": { + "version": "2.40.0", + "from": "request@2.x", + "resolved": "https://registry.npmjs.org/request/-/request-2.40.0.tgz", + "dependencies": { + "qs": { + "version": "1.0.2", + "from": "qs@~1.0.0", + "resolved": "https://registry.npmjs.org/qs/-/qs-1.0.2.tgz" + }, + "json-stringify-safe": { + "version": "5.0.0", + "from": "json-stringify-safe@~5.0.0", + "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.0.tgz" + }, + "mime-types": { + "version": "1.0.2", + "from": "mime-types@~1.0.1", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-1.0.2.tgz" + }, + "forever-agent": { + "version": "0.5.2", + "from": "forever-agent@~0.5.0", + "resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.5.2.tgz" + }, + "node-uuid": { + "version": "1.4.1", + "from": "node-uuid@~1.4.0", + "resolved": "https://registry.npmjs.org/node-uuid/-/node-uuid-1.4.1.tgz" + }, + "tough-cookie": { + "version": "0.12.1", + "from": "tough-cookie@>=0.12.0", + "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-0.12.1.tgz", + "dependencies": { + "punycode": { + "version": "1.3.1", + "from": "punycode@>=0.2.0", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.3.1.tgz" + } + } + }, + "form-data": { + "version": "0.1.4", + "from": "form-data@~0.1.0", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-0.1.4.tgz", + "dependencies": { + "combined-stream": { + "version": "0.0.5", + "from": "combined-stream@~0.0.4", + "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-0.0.5.tgz", + "dependencies": { + "delayed-stream": { + "version": "0.0.5", + "from": "delayed-stream@0.0.5", + "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-0.0.5.tgz" + } + } + }, + "mime": { + "version": "1.2.11", + "from": "mime@~1.2.11", + "resolved": "https://registry.npmjs.org/mime/-/mime-1.2.11.tgz" + }, + "async": { + "version": "0.9.0", + "from": "async@~0.9.0", + "resolved": "https://registry.npmjs.org/async/-/async-0.9.0.tgz" + } + } + }, + "tunnel-agent": { + "version": "0.4.0", + "from": "tunnel-agent@~0.4.0", + "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.4.0.tgz" + }, + "http-signature": { + "version": "0.10.0", + "from": "http-signature@~0.10.0", + "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-0.10.0.tgz", + "dependencies": { + "assert-plus": { + "version": "0.1.2", + "from": "assert-plus@0.1.2", + "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-0.1.2.tgz" + }, + "asn1": { + "version": "0.1.11", + "from": "asn1@0.1.11", + "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.1.11.tgz" + }, + "ctype": { + "version": "0.5.2", + "from": "ctype@0.5.2", + "resolved": "https://registry.npmjs.org/ctype/-/ctype-0.5.2.tgz" + } + } + }, + "oauth-sign": { + "version": "0.3.0", + "from": "oauth-sign@~0.3.0", + "resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.3.0.tgz" + }, + "hawk": { + "version": "1.1.1", + "from": "hawk@1.1.1", + "resolved": "https://registry.npmjs.org/hawk/-/hawk-1.1.1.tgz", + "dependencies": { + "hoek": { + "version": "0.9.1", + "from": "hoek@0.9.x", + "resolved": "https://registry.npmjs.org/hoek/-/hoek-0.9.1.tgz" + }, + "boom": { + "version": "0.4.2", + "from": "boom@0.4.x", + "resolved": "https://registry.npmjs.org/boom/-/boom-0.4.2.tgz" + }, + "cryptiles": { + "version": "0.2.2", + "from": "cryptiles@0.2.x", + "resolved": "https://registry.npmjs.org/cryptiles/-/cryptiles-0.2.2.tgz" + }, + "sntp": { + "version": "0.2.4", + "from": "sntp@0.2.x", + "resolved": "https://registry.npmjs.org/sntp/-/sntp-0.2.4.tgz" + } + } + }, + "aws-sign2": { + "version": "0.5.0", + "from": "aws-sign2@~0.5.0", + "resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.5.0.tgz" + }, + "stringstream": { + "version": "0.0.4", + "from": "stringstream@~0.0.4", + "resolved": "https://registry.npmjs.org/stringstream/-/stringstream-0.0.4.tgz" + } + } + }, + "semver": { + "version": "3.0.1", + "from": "semver@~3.0.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-3.0.1.tgz" + }, + "tar": { + "version": "1.0.1", + "from": "tar@~1.0.0", + "resolved": "https://registry.npmjs.org/tar/-/tar-1.0.1.tgz", + "dependencies": { + "block-stream": { + "version": "0.0.7", + "from": "block-stream@*", + "resolved": "https://registry.npmjs.org/block-stream/-/block-stream-0.0.7.tgz" + }, + "fstream": { + "version": "1.0.2", + "from": "fstream@^1.0.2", + "resolved": "https://registry.npmjs.org/fstream/-/fstream-1.0.2.tgz", + "dependencies": { + "graceful-fs": { + "version": "3.0.2", + "from": "graceful-fs@3", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-3.0.2.tgz" + } + } + }, + "inherits": { + "version": "2.0.1", + "from": "inherits@2", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.1.tgz" + } + } + }, + "tar-pack": { + "version": "2.0.0", + "from": "tar-pack@~2.0.0", + "resolved": "https://registry.npmjs.org/tar-pack/-/tar-pack-2.0.0.tgz", + "dependencies": { + "uid-number": { + "version": "0.0.3", + "from": "uid-number@0.0.3", + "resolved": "https://registry.npmjs.org/uid-number/-/uid-number-0.0.3.tgz" + }, + "once": { + "version": "1.1.1", + "from": "once@~1.1.1", + "resolved": "https://registry.npmjs.org/once/-/once-1.1.1.tgz" + }, + "debug": { + "version": "0.7.4", + "from": "debug@~0.7.2", + "resolved": "https://registry.npmjs.org/debug/-/debug-0.7.4.tgz" + }, + "fstream": { + "version": "0.1.31", + "from": "fstream@~0.1.22", + "resolved": "https://registry.npmjs.org/fstream/-/fstream-0.1.31.tgz", + "dependencies": { + "graceful-fs": { + "version": "3.0.2", + "from": "graceful-fs@~3.0.2", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-3.0.2.tgz" + }, + "inherits": { + "version": "2.0.1", + "from": "inherits@2", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.1.tgz" + } + } + }, + "tar": { + "version": "0.1.20", + "from": "tar@~0.1.17", + "resolved": "https://registry.npmjs.org/tar/-/tar-0.1.20.tgz", + "dependencies": { + "block-stream": { + "version": "0.0.7", + "from": "block-stream@*", + "resolved": "https://registry.npmjs.org/block-stream/-/block-stream-0.0.7.tgz" + }, + "inherits": { + "version": "2.0.1", + "from": "inherits@2", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.1.tgz" + } + } + }, + "fstream-ignore": { + "version": "0.0.7", + "from": "fstream-ignore@0.0.7", + "resolved": "https://registry.npmjs.org/fstream-ignore/-/fstream-ignore-0.0.7.tgz", + "dependencies": { + "minimatch": { + "version": "0.2.14", + "from": "minimatch@~0.2.0", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-0.2.14.tgz", + "dependencies": { + "lru-cache": { + "version": "2.5.0", + "from": "lru-cache@2", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-2.5.0.tgz" + }, + "sigmund": { + "version": "1.0.0", + "from": "sigmund@~1.0.0", + "resolved": "https://registry.npmjs.org/sigmund/-/sigmund-1.0.0.tgz" + } + } + }, + "inherits": { + "version": "2.0.1", + "from": "inherits@2", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.1.tgz" + } + } + }, + "readable-stream": { + "version": "1.0.31", + "from": "readable-stream@~1.0.2", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.0.31.tgz", + "dependencies": { + "core-util-is": { + "version": "1.0.1", + "from": "core-util-is@~1.0.0", + "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.1.tgz" + }, + "isarray": { + "version": "0.0.1", + "from": "isarray@0.0.1", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz" + }, + "string_decoder": { + "version": "0.10.31", + "from": "string_decoder@~0.10.x", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz" + }, + "inherits": { + "version": "2.0.1", + "from": "inherits@~2.0.1", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.1.tgz" + } + } + }, + "graceful-fs": { + "version": "1.2.3", + "from": "graceful-fs@1.2", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-1.2.3.tgz" + } + } + }, + "mkdirp": { + "version": "0.5.0", + "from": "mkdirp@~0.5.0", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.0.tgz", + "dependencies": { + "minimist": { + "version": "0.0.8", + "from": "minimist@0.0.8", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz" + } + } + }, + "rc": { + "version": "0.5.1", + "from": "rc@~0.5.0", + "resolved": "https://registry.npmjs.org/rc/-/rc-0.5.1.tgz", + "dependencies": { + "minimist": { + "version": "0.0.10", + "from": "minimist@~0.0.7", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.10.tgz" + }, + "deep-extend": { + "version": "0.2.11", + "from": "deep-extend@~0.2.5", + "resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.2.11.tgz" + }, + "strip-json-comments": { + "version": "0.1.3", + "from": "strip-json-comments@0.1.x", + "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-0.1.3.tgz" + }, + "ini": { + "version": "1.1.0", + "from": "ini@~1.1.0", + "resolved": "https://registry.npmjs.org/ini/-/ini-1.1.0.tgz" + } + } + }, + "rimraf": { + "version": "2.2.8", + "from": "rimraf@~2.2.8", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.2.8.tgz" + } + } + } + } + }, + "grainstore": { + "version": "1.1.0", + "from": "grainstore@~1.1.0", + "dependencies": { + "carto": { + "version": "0.9.5-cdb2", + "from": "https://github.com/CartoDB/carto/tarball/0.9.5-cdb2", + "resolved": "https://github.com/CartoDB/carto/tarball/0.9.5-cdb2", + "dependencies": { + "underscore": { + "version": "1.4.4", + "from": "underscore@~1.4.3", + "resolved": "https://registry.npmjs.org/underscore/-/underscore-1.4.4.tgz" + }, + "mapnik-reference": { + "version": "5.0.9", + "from": "mapnik-reference@~5.0.7", + "resolved": "https://registry.npmjs.org/mapnik-reference/-/mapnik-reference-5.0.9.tgz" + }, + "xml2js": { + "version": "0.2.8", + "from": "xml2js@~0.2.4", + "resolved": "https://registry.npmjs.org/xml2js/-/xml2js-0.2.8.tgz", + "dependencies": { + "sax": { + "version": "0.5.8", + "from": "sax@0.5.x", + "resolved": "https://registry.npmjs.org/sax/-/sax-0.5.8.tgz" + } + } + }, + "optimist": { + "version": "0.6.1", + "from": "optimist@~0.6.0", + "resolved": "https://registry.npmjs.org/optimist/-/optimist-0.6.1.tgz", + "dependencies": { + "wordwrap": { + "version": "0.0.3", + "from": "wordwrap@~0.0.2", + "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-0.0.3.tgz" + }, + "minimist": { + "version": "0.0.10", + "from": "minimist@~0.0.1", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.10.tgz" + } + } + } + } + }, + "millstone": { + "version": "0.6.14", + "from": "millstone@0.6.14", + "resolved": "https://registry.npmjs.org/millstone/-/millstone-0.6.14.tgz", + "dependencies": { + "generic-pool": { + "version": "2.0.4", + "from": "generic-pool@~2.0.3", + "resolved": "https://registry.npmjs.org/generic-pool/-/generic-pool-2.0.4.tgz" + }, + "request": { + "version": "2.34.0", + "from": "request@~2.34.0", + "resolved": "https://registry.npmjs.org/request/-/request-2.34.0.tgz", + "dependencies": { + "qs": { + "version": "0.6.6", + "from": "qs@~0.6.0", + "resolved": "https://registry.npmjs.org/qs/-/qs-0.6.6.tgz" + }, + "json-stringify-safe": { + "version": "5.0.1", + "from": "json-stringify-safe@~5.0.0", + "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz" + }, + "forever-agent": { + "version": "0.5.2", + "from": "forever-agent@~0.5.0", + "resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.5.2.tgz" + }, + "node-uuid": { + "version": "1.4.7", + "from": "node-uuid@~1.4.0", + "resolved": "https://registry.npmjs.org/node-uuid/-/node-uuid-1.4.7.tgz" + }, + "tough-cookie": { + "version": "2.2.1", + "from": "tough-cookie@>=0.12.0", + "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.2.1.tgz" + }, + "form-data": { + "version": "0.1.4", + "from": "form-data@~0.1.0", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-0.1.4.tgz", + "dependencies": { + "combined-stream": { + "version": "0.0.7", + "from": "combined-stream@~0.0.4", + "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-0.0.7.tgz", + "dependencies": { + "delayed-stream": { + "version": "0.0.5", + "from": "delayed-stream@0.0.5", + "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-0.0.5.tgz" + } + } + }, + "async": { + "version": "0.9.2", + "from": "async@~0.9.0", + "resolved": "https://registry.npmjs.org/async/-/async-0.9.2.tgz" + } + } + }, + "tunnel-agent": { + "version": "0.3.0", + "from": "tunnel-agent@~0.3.0", + "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.3.0.tgz" + }, + "http-signature": { + "version": "0.10.1", + "from": "http-signature@~0.10.0", + "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-0.10.1.tgz", + "dependencies": { + "assert-plus": { + "version": "0.1.5", + "from": "assert-plus@^0.1.5", + "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-0.1.5.tgz" + }, + "asn1": { + "version": "0.1.11", + "from": "asn1@0.1.11", + "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.1.11.tgz" + }, + "ctype": { + "version": "0.5.3", + "from": "ctype@0.5.3", + "resolved": "https://registry.npmjs.org/ctype/-/ctype-0.5.3.tgz" + } + } + }, + "oauth-sign": { + "version": "0.3.0", + "from": "oauth-sign@~0.3.0", + "resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.3.0.tgz" + }, + "hawk": { + "version": "1.0.0", + "from": "hawk@~1.0.0", + "resolved": "https://registry.npmjs.org/hawk/-/hawk-1.0.0.tgz", + "dependencies": { + "hoek": { + "version": "0.9.1", + "from": "hoek@0.9.x", + "resolved": "https://registry.npmjs.org/hoek/-/hoek-0.9.1.tgz" + }, + "boom": { + "version": "0.4.2", + "from": "boom@0.4.x", + "resolved": "https://registry.npmjs.org/boom/-/boom-0.4.2.tgz" + }, + "cryptiles": { + "version": "0.2.2", + "from": "cryptiles@0.2.x", + "resolved": "https://registry.npmjs.org/cryptiles/-/cryptiles-0.2.2.tgz" + }, + "sntp": { + "version": "0.2.4", + "from": "sntp@0.2.x", + "resolved": "https://registry.npmjs.org/sntp/-/sntp-0.2.4.tgz" + } + } + }, + "aws-sign2": { + "version": "0.5.0", + "from": "aws-sign2@~0.5.0", + "resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.5.0.tgz" + } + } + }, + "srs": { + "version": "0.4.9", + "from": "srs@~0.4.1", + "resolved": "https://registry.npmjs.org/srs/-/srs-0.4.9.tgz", + "dependencies": { + "nan": { + "version": "1.8.4", + "from": "nan@~1.8.4", + "resolved": "https://registry.npmjs.org/nan/-/nan-1.8.4.tgz" + }, + "node-pre-gyp": { + "version": "0.6.9", + "from": "node-pre-gyp@>=0.6.7 <0.7.0", + "dependencies": { + "nopt": { + "version": "3.0.3", + "from": "nopt@~3.0.1", + "resolved": "https://registry.npmjs.org/nopt/-/nopt-3.0.3.tgz", + "dependencies": { + "abbrev": { + "version": "1.0.7", + "from": "abbrev@1", + "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.0.7.tgz" + } + } + }, + "npmlog": { + "version": "1.2.1", + "from": "npmlog@~1.2.0", + "resolved": "https://registry.npmjs.org/npmlog/-/npmlog-1.2.1.tgz", + "dependencies": { + "ansi": { + "version": "0.3.0", + "from": "ansi@~0.3.0", + "resolved": "https://registry.npmjs.org/ansi/-/ansi-0.3.0.tgz" + }, + "are-we-there-yet": { + "version": "1.0.4", + "from": "are-we-there-yet@~1.0.0", + "resolved": "https://registry.npmjs.org/are-we-there-yet/-/are-we-there-yet-1.0.4.tgz", + "dependencies": { + "delegates": { + "version": "0.1.0", + "from": "delegates@^0.1.0", + "resolved": "https://registry.npmjs.org/delegates/-/delegates-0.1.0.tgz" + }, + "readable-stream": { + "version": "1.1.13", + "from": "readable-stream@^1.1.13", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.1.13.tgz", + "dependencies": { + "core-util-is": { + "version": "1.0.1", + "from": "core-util-is@~1.0.0", + "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.1.tgz" + }, + "isarray": { + "version": "0.0.1", + "from": "isarray@0.0.1", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz" + }, + "string_decoder": { + "version": "0.10.31", + "from": "string_decoder@~0.10.x", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz" + }, + "inherits": { + "version": "2.0.1", + "from": "inherits@~2.0.1", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.1.tgz" + } + } + } + } + }, + "gauge": { + "version": "1.2.2", + "from": "gauge@~1.2.0", + "resolved": "https://registry.npmjs.org/gauge/-/gauge-1.2.2.tgz", + "dependencies": { + "has-unicode": { + "version": "1.0.0", + "from": "has-unicode@^1.0.0", + "resolved": "https://registry.npmjs.org/has-unicode/-/has-unicode-1.0.0.tgz" + }, + "lodash.pad": { + "version": "3.1.1", + "from": "lodash.pad@^3.0.0", + "resolved": "https://registry.npmjs.org/lodash.pad/-/lodash.pad-3.1.1.tgz", + "dependencies": { + "lodash._basetostring": { + "version": "3.0.1", + "from": "lodash._basetostring@^3.0.0", + "resolved": "https://registry.npmjs.org/lodash._basetostring/-/lodash._basetostring-3.0.1.tgz" + }, + "lodash._createpadding": { + "version": "3.6.1", + "from": "lodash._createpadding@^3.0.0", + "resolved": "https://registry.npmjs.org/lodash._createpadding/-/lodash._createpadding-3.6.1.tgz", + "dependencies": { + "lodash.repeat": { + "version": "3.0.1", + "from": "lodash.repeat@^3.0.0", + "resolved": "https://registry.npmjs.org/lodash.repeat/-/lodash.repeat-3.0.1.tgz" + } + } + } + } + }, + "lodash.padleft": { + "version": "3.1.1", + "from": "lodash.padleft@^3.0.0", + "resolved": "https://registry.npmjs.org/lodash.padleft/-/lodash.padleft-3.1.1.tgz", + "dependencies": { + "lodash._basetostring": { + "version": "3.0.1", + "from": "lodash._basetostring@^3.0.0", + "resolved": "https://registry.npmjs.org/lodash._basetostring/-/lodash._basetostring-3.0.1.tgz" + }, + "lodash._createpadding": { + "version": "3.6.1", + "from": "lodash._createpadding@^3.0.0", + "resolved": "https://registry.npmjs.org/lodash._createpadding/-/lodash._createpadding-3.6.1.tgz", + "dependencies": { + "lodash.repeat": { + "version": "3.0.1", + "from": "lodash.repeat@^3.0.0", + "resolved": "https://registry.npmjs.org/lodash.repeat/-/lodash.repeat-3.0.1.tgz" + } + } + } + } + }, + "lodash.padright": { + "version": "3.1.1", + "from": "lodash.padright@^3.0.0", + "resolved": "https://registry.npmjs.org/lodash.padright/-/lodash.padright-3.1.1.tgz", + "dependencies": { + "lodash._basetostring": { + "version": "3.0.1", + "from": "lodash._basetostring@^3.0.0", + "resolved": "https://registry.npmjs.org/lodash._basetostring/-/lodash._basetostring-3.0.1.tgz" + }, + "lodash._createpadding": { + "version": "3.6.1", + "from": "lodash._createpadding@^3.0.0", + "resolved": "https://registry.npmjs.org/lodash._createpadding/-/lodash._createpadding-3.6.1.tgz", + "dependencies": { + "lodash.repeat": { + "version": "3.0.1", + "from": "lodash.repeat@^3.0.0", + "resolved": "https://registry.npmjs.org/lodash.repeat/-/lodash.repeat-3.0.1.tgz" + } + } + } + } + } + } + } + } + }, + "request": { + "version": "2.60.0", + "from": "request@2.x", + "resolved": "https://registry.npmjs.org/request/-/request-2.60.0.tgz", + "dependencies": { + "bl": { + "version": "1.0.0", + "from": "bl@~1.0.0", + "resolved": "https://registry.npmjs.org/bl/-/bl-1.0.0.tgz", + "dependencies": { + "readable-stream": { + "version": "2.0.2", + "from": "readable-stream@~2.0.0", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.0.2.tgz", + "dependencies": { + "core-util-is": { + "version": "1.0.1", + "from": "core-util-is@~1.0.0", + "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.1.tgz" + }, + "inherits": { + "version": "2.0.1", + "from": "inherits@2", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.1.tgz" + }, + "isarray": { + "version": "0.0.1", + "from": "isarray@0.0.1", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz" + }, + "process-nextick-args": { + "version": "1.0.2", + "from": "process-nextick-args@~1.0.0", + "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-1.0.2.tgz" + }, + "string_decoder": { + "version": "0.10.31", + "from": "string_decoder@~0.10.x", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz" + }, + "util-deprecate": { + "version": "1.0.1", + "from": "util-deprecate@~1.0.1", + "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.1.tgz" + } + } + } + } + }, + "caseless": { + "version": "0.11.0", + "from": "caseless@~0.11.0", + "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.11.0.tgz" + }, + "extend": { + "version": "3.0.0", + "from": "extend@~3.0.0", + "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.0.tgz" + }, + "forever-agent": { + "version": "0.6.1", + "from": "forever-agent@~0.6.0", + "resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz" + }, + "form-data": { + "version": "1.0.0-rc2", + "from": "form-data@~1.0.0-rc1", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-1.0.0-rc2.tgz", + "dependencies": { + "async": { + "version": "1.4.0", + "from": "async@^1.2.1", + "resolved": "https://registry.npmjs.org/async/-/async-1.4.0.tgz" + } + } + }, + "json-stringify-safe": { + "version": "5.0.1", + "from": "json-stringify-safe@~5.0.0", + "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz" + }, + "mime-types": { + "version": "2.1.3", + "from": "mime-types@~2.1.2", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.3.tgz", + "dependencies": { + "mime-db": { + "version": "1.15.0", + "from": "mime-db@~1.15.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.15.0.tgz" + } + } + }, + "node-uuid": { + "version": "1.4.3", + "from": "node-uuid@~1.4.0", + "resolved": "https://registry.npmjs.org/node-uuid/-/node-uuid-1.4.3.tgz" + }, + "qs": { + "version": "4.0.0", + "from": "qs@~4.0.0", + "resolved": "https://registry.npmjs.org/qs/-/qs-4.0.0.tgz" + }, + "tunnel-agent": { + "version": "0.4.1", + "from": "tunnel-agent@~0.4.0", + "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.4.1.tgz" + }, + "tough-cookie": { + "version": "2.0.0", + "from": "tough-cookie@>=0.12.0", + "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.0.0.tgz" + }, + "http-signature": { + "version": "0.11.0", + "from": "http-signature@~0.11.0", + "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-0.11.0.tgz", + "dependencies": { + "assert-plus": { + "version": "0.1.5", + "from": "assert-plus@^0.1.5", + "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-0.1.5.tgz" + }, + "asn1": { + "version": "0.1.11", + "from": "asn1@0.1.11", + "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.1.11.tgz" + }, + "ctype": { + "version": "0.5.3", + "from": "ctype@0.5.3", + "resolved": "https://registry.npmjs.org/ctype/-/ctype-0.5.3.tgz" + } + } + }, + "oauth-sign": { + "version": "0.8.0", + "from": "oauth-sign@~0.8.0", + "resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.8.0.tgz" + }, + "hawk": { + "version": "3.1.0", + "from": "hawk@~3.1.0", + "resolved": "https://registry.npmjs.org/hawk/-/hawk-3.1.0.tgz", + "dependencies": { + "hoek": { + "version": "2.14.0", + "from": "hoek@2.x.x", + "resolved": "https://registry.npmjs.org/hoek/-/hoek-2.14.0.tgz" + }, + "boom": { + "version": "2.8.0", + "from": "boom@^2.8.x", + "resolved": "https://registry.npmjs.org/boom/-/boom-2.8.0.tgz" + }, + "cryptiles": { + "version": "2.0.4", + "from": "cryptiles@2.x.x", + "resolved": "https://registry.npmjs.org/cryptiles/-/cryptiles-2.0.4.tgz" + }, + "sntp": { + "version": "1.0.9", + "from": "sntp@1.x.x", + "resolved": "https://registry.npmjs.org/sntp/-/sntp-1.0.9.tgz" + } + } + }, + "aws-sign2": { + "version": "0.5.0", + "from": "aws-sign2@~0.5.0", + "resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.5.0.tgz" + }, + "stringstream": { + "version": "0.0.4", + "from": "stringstream@~0.0.4", + "resolved": "https://registry.npmjs.org/stringstream/-/stringstream-0.0.4.tgz" + }, + "combined-stream": { + "version": "1.0.5", + "from": "combined-stream@~1.0.1", + "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.5.tgz", + "dependencies": { + "delayed-stream": { + "version": "1.0.0", + "from": "delayed-stream@~1.0.0", + "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz" + } + } + }, + "isstream": { + "version": "0.1.2", + "from": "isstream@~0.1.1", + "resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz" + }, + "har-validator": { + "version": "1.8.0", + "from": "har-validator@^1.6.1", + "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-1.8.0.tgz", + "dependencies": { + "bluebird": { + "version": "2.9.34", + "from": "bluebird@^2.9.30", + "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-2.9.34.tgz" + }, + "chalk": { + "version": "1.1.0", + "from": "chalk@^1.0.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.0.tgz", + "dependencies": { + "ansi-styles": { + "version": "2.1.0", + "from": "ansi-styles@^2.1.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.1.0.tgz" + }, + "escape-string-regexp": { + "version": "1.0.3", + "from": "escape-string-regexp@^1.0.2", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.3.tgz" + }, + "has-ansi": { + "version": "2.0.0", + "from": "has-ansi@^2.0.0", + "resolved": "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz", + "dependencies": { + "ansi-regex": { + "version": "2.0.0", + "from": "ansi-regex@^2.0.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.0.0.tgz" + } + } + }, + "strip-ansi": { + "version": "3.0.0", + "from": "strip-ansi@^3.0.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.0.tgz", + "dependencies": { + "ansi-regex": { + "version": "2.0.0", + "from": "ansi-regex@^2.0.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.0.0.tgz" + } + } + }, + "supports-color": { + "version": "2.0.0", + "from": "supports-color@^2.0.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz" + } + } + }, + "commander": { + "version": "2.8.1", + "from": "commander@^2.8.1", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.8.1.tgz", + "dependencies": { + "graceful-readlink": { + "version": "1.0.1", + "from": "graceful-readlink@>= 1.0.0", + "resolved": "https://registry.npmjs.org/graceful-readlink/-/graceful-readlink-1.0.1.tgz" + } + } + }, + "is-my-json-valid": { + "version": "2.12.1", + "from": "is-my-json-valid@^2.12.0", + "resolved": "https://registry.npmjs.org/is-my-json-valid/-/is-my-json-valid-2.12.1.tgz", + "dependencies": { + "generate-function": { + "version": "2.0.0", + "from": "generate-function@^2.0.0", + "resolved": "https://registry.npmjs.org/generate-function/-/generate-function-2.0.0.tgz" + }, + "generate-object-property": { + "version": "1.2.0", + "from": "generate-object-property@^1.1.0", + "resolved": "https://registry.npmjs.org/generate-object-property/-/generate-object-property-1.2.0.tgz", + "dependencies": { + "is-property": { + "version": "1.0.2", + "from": "is-property@^1.0.0", + "resolved": "https://registry.npmjs.org/is-property/-/is-property-1.0.2.tgz" + } + } + }, + "jsonpointer": { + "version": "1.1.0", + "from": "jsonpointer@^1.1.0", + "resolved": "https://registry.npmjs.org/jsonpointer/-/jsonpointer-1.1.0.tgz" + }, + "xtend": { + "version": "4.0.0", + "from": "xtend@^4.0.0", + "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.0.tgz" + } + } + } + } + } + } + }, + "semver": { + "version": "5.0.1", + "from": "semver@~5.0.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.0.1.tgz" + }, + "tar": { + "version": "2.1.1", + "from": "tar@~2.1.0", + "resolved": "https://registry.npmjs.org/tar/-/tar-2.1.1.tgz", + "dependencies": { + "block-stream": { + "version": "0.0.8", + "from": "block-stream@*", + "resolved": "https://registry.npmjs.org/block-stream/-/block-stream-0.0.8.tgz" + }, + "fstream": { + "version": "1.0.7", + "from": "fstream@^1.0.2", + "resolved": "https://registry.npmjs.org/fstream/-/fstream-1.0.7.tgz", + "dependencies": { + "graceful-fs": { + "version": "3.0.8", + "from": "graceful-fs@3", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-3.0.8.tgz" + } + } + }, + "inherits": { + "version": "2.0.1", + "from": "inherits@2", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.1.tgz" + } + } + }, + "tar-pack": { + "version": "2.0.0", + "from": "tar-pack@~2.0.0", + "resolved": "https://registry.npmjs.org/tar-pack/-/tar-pack-2.0.0.tgz", + "dependencies": { + "uid-number": { + "version": "0.0.3", + "from": "uid-number@0.0.3", + "resolved": "https://registry.npmjs.org/uid-number/-/uid-number-0.0.3.tgz" + }, + "once": { + "version": "1.1.1", + "from": "once@~1.1.1", + "resolved": "https://registry.npmjs.org/once/-/once-1.1.1.tgz" + }, + "debug": { + "version": "0.7.4", + "from": "debug@~0.7.2", + "resolved": "https://registry.npmjs.org/debug/-/debug-0.7.4.tgz" + }, + "rimraf": { + "version": "2.2.8", + "from": "rimraf@~2.2.0", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.2.8.tgz" + }, + "fstream": { + "version": "0.1.31", + "from": "fstream@~0.1.22", + "resolved": "https://registry.npmjs.org/fstream/-/fstream-0.1.31.tgz", + "dependencies": { + "graceful-fs": { + "version": "3.0.8", + "from": "graceful-fs@~3.0.2", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-3.0.8.tgz" + }, + "inherits": { + "version": "2.0.1", + "from": "inherits@~2.0.0", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.1.tgz" + } + } + }, + "tar": { + "version": "0.1.20", + "from": "tar@~0.1.17", + "resolved": "https://registry.npmjs.org/tar/-/tar-0.1.20.tgz", + "dependencies": { + "block-stream": { + "version": "0.0.8", + "from": "block-stream@*", + "resolved": "https://registry.npmjs.org/block-stream/-/block-stream-0.0.8.tgz" + }, + "inherits": { + "version": "2.0.1", + "from": "inherits@2", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.1.tgz" + } + } + }, + "fstream-ignore": { + "version": "0.0.7", + "from": "fstream-ignore@0.0.7", + "resolved": "https://registry.npmjs.org/fstream-ignore/-/fstream-ignore-0.0.7.tgz", + "dependencies": { + "minimatch": { + "version": "0.2.14", + "from": "minimatch@~0.2.0", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-0.2.14.tgz", + "dependencies": { + "lru-cache": { + "version": "2.6.5", + "from": "lru-cache@2", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-2.6.5.tgz" + }, + "sigmund": { + "version": "1.0.1", + "from": "sigmund@~1.0.0", + "resolved": "https://registry.npmjs.org/sigmund/-/sigmund-1.0.1.tgz" + } + } + }, + "inherits": { + "version": "2.0.1", + "from": "inherits@~2.0.1", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.1.tgz" + } + } + }, + "readable-stream": { + "version": "1.0.33", + "from": "readable-stream@~1.0.2", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.0.33.tgz", + "dependencies": { + "core-util-is": { + "version": "1.0.1", + "from": "core-util-is@~1.0.0", + "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.1.tgz" + }, + "isarray": { + "version": "0.0.1", + "from": "isarray@0.0.1", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz" + }, + "string_decoder": { + "version": "0.10.31", + "from": "string_decoder@~0.10.x", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz" + }, + "inherits": { + "version": "2.0.1", + "from": "inherits@~2.0.1", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.1.tgz" + } + } + }, + "graceful-fs": { + "version": "1.2.3", + "from": "graceful-fs@1.2", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-1.2.3.tgz" + } + } + }, + "mkdirp": { + "version": "0.5.1", + "from": "mkdirp@~0.5.0", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz", + "dependencies": { + "minimist": { + "version": "0.0.8", + "from": "minimist@0.0.8", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz" + } + } + }, + "rc": { + "version": "1.1.0", + "from": "rc@~1.1.0", + "resolved": "https://registry.npmjs.org/rc/-/rc-1.1.0.tgz", + "dependencies": { + "minimist": { + "version": "1.1.2", + "from": "minimist@^1.1.2", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.1.2.tgz" + }, + "deep-extend": { + "version": "0.2.11", + "from": "deep-extend@~0.2.5", + "resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.2.11.tgz" + }, + "strip-json-comments": { + "version": "0.1.3", + "from": "strip-json-comments@0.1.x", + "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-0.1.3.tgz" + }, + "ini": { + "version": "1.3.4", + "from": "ini@~1.3.0", + "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.4.tgz" + } + } + }, + "rimraf": { + "version": "2.4.2", + "from": "rimraf@~2.4.0", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.4.2.tgz", + "dependencies": { + "glob": { + "version": "5.0.14", + "from": "glob@^5.0.14", + "resolved": "https://registry.npmjs.org/glob/-/glob-5.0.14.tgz", + "dependencies": { + "inflight": { + "version": "1.0.4", + "from": "inflight@^1.0.4", + "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.4.tgz", + "dependencies": { + "wrappy": { + "version": "1.0.1", + "from": "wrappy@1", + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.1.tgz" + } + } + }, + "inherits": { + "version": "2.0.1", + "from": "inherits@~2.0.1", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.1.tgz" + }, + "minimatch": { + "version": "2.0.10", + "from": "minimatch@2.0.x", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-2.0.10.tgz", + "dependencies": { + "brace-expansion": { + "version": "1.1.0", + "from": "brace-expansion@^1.0.0", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.0.tgz", + "dependencies": { + "balanced-match": { + "version": "0.2.0", + "from": "balanced-match@^0.2.0", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-0.2.0.tgz" + }, + "concat-map": { + "version": "0.0.1", + "from": "concat-map@0.0.1", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz" + } + } + } + } + }, + "once": { + "version": "1.3.2", + "from": "once@^1.3.0", + "resolved": "https://registry.npmjs.org/once/-/once-1.3.2.tgz", + "dependencies": { + "wrappy": { + "version": "1.0.1", + "from": "wrappy@1", + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.1.tgz" + } + } + }, + "path-is-absolute": { + "version": "1.0.0", + "from": "path-is-absolute@^1.0.0", + "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.0.tgz" + } + } + } + } + } + } + } + } + }, + "zipfile": { + "version": "0.5.7", + "from": "zipfile@~0.5.2", + "resolved": "https://registry.npmjs.org/zipfile/-/zipfile-0.5.7.tgz", + "dependencies": { + "nan": { + "version": "1.5.3", + "from": "nan@~1.5.1", + "resolved": "https://registry.npmjs.org/nan/-/nan-1.5.3.tgz" + }, + "node-pre-gyp": { + "version": "0.6.2", + "from": "node-pre-gyp@>=0.6.2 <0.7.0", + "resolved": "https://registry.npmjs.org/node-pre-gyp/-/node-pre-gyp-0.6.2.tgz", + "dependencies": { + "nopt": { + "version": "3.0.1", + "from": "nopt@~3.0.1", + "resolved": "https://registry.npmjs.org/nopt/-/nopt-3.0.1.tgz", + "dependencies": { + "abbrev": { + "version": "1.0.5", + "from": "abbrev@1", + "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.0.5.tgz" + } + } + }, + "npmlog": { + "version": "0.1.1", + "from": "npmlog@~0.1.1", + "resolved": "https://registry.npmjs.org/npmlog/-/npmlog-0.1.1.tgz", + "dependencies": { + "ansi": { + "version": "0.3.0", + "from": "ansi@~0.3.0", + "resolved": "https://registry.npmjs.org/ansi/-/ansi-0.3.0.tgz" + } + } + }, + "request": { + "version": "2.51.0", + "from": "request@2.x", + "resolved": "https://registry.npmjs.org/request/-/request-2.51.0.tgz", + "dependencies": { + "bl": { + "version": "0.9.3", + "from": "bl@~0.9.0", + "resolved": "https://registry.npmjs.org/bl/-/bl-0.9.3.tgz", + "dependencies": { + "readable-stream": { + "version": "1.0.33", + "from": "readable-stream@~1.0.26", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.0.33.tgz", + "dependencies": { + "core-util-is": { + "version": "1.0.1", + "from": "core-util-is@~1.0.0", + "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.1.tgz" + }, + "isarray": { + "version": "0.0.1", + "from": "isarray@0.0.1", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz" + }, + "string_decoder": { + "version": "0.10.31", + "from": "string_decoder@~0.10.x", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz" + }, + "inherits": { + "version": "2.0.1", + "from": "inherits@~2.0.1", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.1.tgz" + } + } + } + } + }, + "caseless": { + "version": "0.8.0", + "from": "caseless@~0.8.0", + "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.8.0.tgz" + }, + "forever-agent": { + "version": "0.5.2", + "from": "forever-agent@~0.5.0", + "resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.5.2.tgz" + }, + "form-data": { + "version": "0.2.0", + "from": "form-data@~0.2.0", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-0.2.0.tgz", + "dependencies": { + "async": { + "version": "0.9.0", + "from": "async@~0.9.0", + "resolved": "https://registry.npmjs.org/async/-/async-0.9.0.tgz" + }, + "mime-types": { + "version": "2.0.7", + "from": "mime-types@~2.0.3", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.0.7.tgz", + "dependencies": { + "mime-db": { + "version": "1.5.0", + "from": "mime-db@~1.5.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.5.0.tgz" + } + } + } + } + }, + "json-stringify-safe": { + "version": "5.0.0", + "from": "json-stringify-safe@~5.0.0", + "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.0.tgz" + }, + "mime-types": { + "version": "1.0.2", + "from": "mime-types@~1.0.1", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-1.0.2.tgz" + }, + "node-uuid": { + "version": "1.4.2", + "from": "node-uuid@~1.4.0", + "resolved": "https://registry.npmjs.org/node-uuid/-/node-uuid-1.4.2.tgz" + }, + "qs": { + "version": "2.3.3", + "from": "qs@~2.3.1", + "resolved": "https://registry.npmjs.org/qs/-/qs-2.3.3.tgz" + }, + "tunnel-agent": { + "version": "0.4.0", + "from": "tunnel-agent@~0.4.0", + "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.4.0.tgz" + }, + "tough-cookie": { + "version": "0.12.1", + "from": "tough-cookie@>=0.12.0", + "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-0.12.1.tgz", + "dependencies": { + "punycode": { + "version": "1.3.2", + "from": "punycode@>=0.2.0", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.3.2.tgz" + } + } + }, + "http-signature": { + "version": "0.10.1", + "from": "http-signature@~0.10.0", + "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-0.10.1.tgz", + "dependencies": { + "assert-plus": { + "version": "0.1.5", + "from": "assert-plus@^0.1.5", + "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-0.1.5.tgz" + }, + "asn1": { + "version": "0.1.11", + "from": "asn1@0.1.11", + "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.1.11.tgz" + }, + "ctype": { + "version": "0.5.3", + "from": "ctype@0.5.3", + "resolved": "https://registry.npmjs.org/ctype/-/ctype-0.5.3.tgz" + } + } + }, + "oauth-sign": { + "version": "0.5.0", + "from": "oauth-sign@~0.5.0", + "resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.5.0.tgz" + }, + "hawk": { + "version": "1.1.1", + "from": "hawk@1.1.1", + "resolved": "https://registry.npmjs.org/hawk/-/hawk-1.1.1.tgz", + "dependencies": { + "hoek": { + "version": "0.9.1", + "from": "hoek@0.9.x", + "resolved": "https://registry.npmjs.org/hoek/-/hoek-0.9.1.tgz" + }, + "boom": { + "version": "0.4.2", + "from": "boom@0.4.x", + "resolved": "https://registry.npmjs.org/boom/-/boom-0.4.2.tgz" + }, + "cryptiles": { + "version": "0.2.2", + "from": "cryptiles@0.2.x", + "resolved": "https://registry.npmjs.org/cryptiles/-/cryptiles-0.2.2.tgz" + }, + "sntp": { + "version": "0.2.4", + "from": "sntp@0.2.x", + "resolved": "https://registry.npmjs.org/sntp/-/sntp-0.2.4.tgz" + } + } + }, + "aws-sign2": { + "version": "0.5.0", + "from": "aws-sign2@~0.5.0", + "resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.5.0.tgz" + }, + "stringstream": { + "version": "0.0.4", + "from": "stringstream@~0.0.4", + "resolved": "https://registry.npmjs.org/stringstream/-/stringstream-0.0.4.tgz" + }, + "combined-stream": { + "version": "0.0.7", + "from": "combined-stream@~0.0.5", + "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-0.0.7.tgz", + "dependencies": { + "delayed-stream": { + "version": "0.0.5", + "from": "delayed-stream@0.0.5", + "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-0.0.5.tgz" + } + } + } + } + }, + "semver": { + "version": "4.2.0", + "from": "semver@~4.2.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-4.2.0.tgz" + }, + "tar": { + "version": "1.0.3", + "from": "tar@~1.0.2", + "resolved": "https://registry.npmjs.org/tar/-/tar-1.0.3.tgz", + "dependencies": { + "block-stream": { + "version": "0.0.7", + "from": "block-stream@*", + "resolved": "https://registry.npmjs.org/block-stream/-/block-stream-0.0.7.tgz" + }, + "fstream": { + "version": "1.0.3", + "from": "fstream@^1.0.2", + "resolved": "https://registry.npmjs.org/fstream/-/fstream-1.0.3.tgz", + "dependencies": { + "graceful-fs": { + "version": "3.0.5", + "from": "graceful-fs@3", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-3.0.5.tgz" + } + } + }, + "inherits": { + "version": "2.0.1", + "from": "inherits@2", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.1.tgz" + } + } + }, + "tar-pack": { + "version": "2.0.0", + "from": "tar-pack@~2.0.0", + "resolved": "https://registry.npmjs.org/tar-pack/-/tar-pack-2.0.0.tgz", + "dependencies": { + "uid-number": { + "version": "0.0.3", + "from": "uid-number@0.0.3", + "resolved": "https://registry.npmjs.org/uid-number/-/uid-number-0.0.3.tgz" + }, + "once": { + "version": "1.1.1", + "from": "once@~1.1.1", + "resolved": "https://registry.npmjs.org/once/-/once-1.1.1.tgz" + }, + "debug": { + "version": "0.7.4", + "from": "debug@~0.7.2", + "resolved": "https://registry.npmjs.org/debug/-/debug-0.7.4.tgz" + }, + "fstream": { + "version": "0.1.31", + "from": "fstream@~0.1.22", + "resolved": "https://registry.npmjs.org/fstream/-/fstream-0.1.31.tgz", + "dependencies": { + "graceful-fs": { + "version": "3.0.5", + "from": "graceful-fs@3", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-3.0.5.tgz" + }, + "inherits": { + "version": "2.0.1", + "from": "inherits@~2.0.0", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.1.tgz" + } + } + }, + "tar": { + "version": "0.1.20", + "from": "tar@~0.1.17", + "resolved": "https://registry.npmjs.org/tar/-/tar-0.1.20.tgz", + "dependencies": { + "block-stream": { + "version": "0.0.7", + "from": "block-stream@*", + "resolved": "https://registry.npmjs.org/block-stream/-/block-stream-0.0.7.tgz" + }, + "inherits": { + "version": "2.0.1", + "from": "inherits@2", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.1.tgz" + } + } + }, + "fstream-ignore": { + "version": "0.0.7", + "from": "fstream-ignore@0.0.7", + "resolved": "https://registry.npmjs.org/fstream-ignore/-/fstream-ignore-0.0.7.tgz", + "dependencies": { + "minimatch": { + "version": "0.2.14", + "from": "minimatch@~0.2.0", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-0.2.14.tgz", + "dependencies": { + "lru-cache": { + "version": "2.5.0", + "from": "lru-cache@2", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-2.5.0.tgz" + }, + "sigmund": { + "version": "1.0.0", + "from": "sigmund@~1.0.0", + "resolved": "https://registry.npmjs.org/sigmund/-/sigmund-1.0.0.tgz" + } + } + }, + "inherits": { + "version": "2.0.1", + "from": "inherits@2", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.1.tgz" + } + } + }, + "readable-stream": { + "version": "1.0.33", + "from": "readable-stream@~1.0.2", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.0.33.tgz", + "dependencies": { + "core-util-is": { + "version": "1.0.1", + "from": "core-util-is@~1.0.0", + "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.1.tgz" + }, + "isarray": { + "version": "0.0.1", + "from": "isarray@0.0.1", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz" + }, + "string_decoder": { + "version": "0.10.31", + "from": "string_decoder@~0.10.x", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz" + }, + "inherits": { + "version": "2.0.1", + "from": "inherits@~2.0.0", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.1.tgz" + } + } + }, + "graceful-fs": { + "version": "1.2.3", + "from": "graceful-fs@1.2", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-1.2.3.tgz" + } + } + }, + "mkdirp": { + "version": "0.5.0", + "from": "mkdirp@~0.5.0", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.0.tgz", + "dependencies": { + "minimist": { + "version": "0.0.8", + "from": "minimist@0.0.8", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz" + } + } + }, + "rc": { + "version": "0.5.5", + "from": "rc@~0.5.1", + "resolved": "https://registry.npmjs.org/rc/-/rc-0.5.5.tgz", + "dependencies": { + "minimist": { + "version": "0.0.10", + "from": "minimist@~0.0.7", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.10.tgz" + }, + "deep-extend": { + "version": "0.2.11", + "from": "deep-extend@~0.2.5", + "resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.2.11.tgz" + }, + "strip-json-comments": { + "version": "0.1.3", + "from": "strip-json-comments@0.1.x", + "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-0.1.3.tgz" + }, + "ini": { + "version": "1.3.2", + "from": "ini@~1.3.0", + "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.2.tgz" + } + } + }, + "rimraf": { + "version": "2.2.8", + "from": "rimraf@~2.2.8", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.2.8.tgz" + } + } + } + } + }, + "sqlite3": { + "version": "2.2.7", + "from": "sqlite3@2.x", + "resolved": "https://registry.npmjs.org/sqlite3/-/sqlite3-2.2.7.tgz", + "dependencies": { + "nan": { + "version": "1.1.2", + "from": "nan@1.1.2", + "resolved": "https://registry.npmjs.org/nan/-/nan-1.1.2.tgz" + }, + "node-pre-gyp": { + "version": "0.5.22", + "from": "node-pre-gyp@0.5.22", + "resolved": "https://registry.npmjs.org/node-pre-gyp/-/node-pre-gyp-0.5.22.tgz", + "dependencies": { + "nopt": { + "version": "3.0.1", + "from": "nopt@~3.0.1", + "resolved": "https://registry.npmjs.org/nopt/-/nopt-3.0.1.tgz", + "dependencies": { + "abbrev": { + "version": "1.0.5", + "from": "abbrev@1", + "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.0.5.tgz" + } + } + }, + "npmlog": { + "version": "0.1.1", + "from": "npmlog@~0.1.1", + "resolved": "https://registry.npmjs.org/npmlog/-/npmlog-0.1.1.tgz", + "dependencies": { + "ansi": { + "version": "0.3.0", + "from": "ansi@~0.3.0", + "resolved": "https://registry.npmjs.org/ansi/-/ansi-0.3.0.tgz" + } + } + }, + "request": { + "version": "2.39.0", + "from": "request@2.x", + "resolved": "https://registry.npmjs.org/request/-/request-2.39.0.tgz", + "dependencies": { + "qs": { + "version": "0.6.6", + "from": "qs@~0.6.0", + "resolved": "https://registry.npmjs.org/qs/-/qs-0.6.6.tgz" + }, + "json-stringify-safe": { + "version": "5.0.0", + "from": "json-stringify-safe@~5.0.0", + "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.0.tgz" + }, + "mime-types": { + "version": "1.0.2", + "from": "mime-types@~1.0.1", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-1.0.2.tgz" + }, + "forever-agent": { + "version": "0.5.2", + "from": "forever-agent@~0.5.0", + "resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.5.2.tgz" + }, + "node-uuid": { + "version": "1.4.1", + "from": "node-uuid@~1.4.0", + "resolved": "https://registry.npmjs.org/node-uuid/-/node-uuid-1.4.1.tgz" + }, + "tough-cookie": { + "version": "0.12.1", + "from": "tough-cookie@>=0.12.0", + "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-0.12.1.tgz", + "dependencies": { + "punycode": { + "version": "1.3.0", + "from": "punycode@>=0.2.0", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.3.0.tgz" + } + } + }, + "form-data": { + "version": "0.1.4", + "from": "form-data@~0.1.0", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-0.1.4.tgz", + "dependencies": { + "combined-stream": { + "version": "0.0.5", + "from": "combined-stream@~0.0.4", + "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-0.0.5.tgz", + "dependencies": { + "delayed-stream": { + "version": "0.0.5", + "from": "delayed-stream@0.0.5", + "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-0.0.5.tgz" + } + } + }, + "mime": { + "version": "1.2.11", + "from": "mime@~1.2.11", + "resolved": "https://registry.npmjs.org/mime/-/mime-1.2.11.tgz" + }, + "async": { + "version": "0.9.0", + "from": "async@~0.9.0", + "resolved": "https://registry.npmjs.org/async/-/async-0.9.0.tgz" + } + } + }, + "tunnel-agent": { + "version": "0.4.0", + "from": "tunnel-agent@~0.4.0", + "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.4.0.tgz" + }, + "http-signature": { + "version": "0.10.0", + "from": "http-signature@~0.10.0", + "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-0.10.0.tgz", + "dependencies": { + "assert-plus": { + "version": "0.1.2", + "from": "assert-plus@0.1.2", + "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-0.1.2.tgz" + }, + "asn1": { + "version": "0.1.11", + "from": "asn1@0.1.11", + "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.1.11.tgz" + }, + "ctype": { + "version": "0.5.2", + "from": "ctype@0.5.2", + "resolved": "https://registry.npmjs.org/ctype/-/ctype-0.5.2.tgz" + } + } + }, + "oauth-sign": { + "version": "0.3.0", + "from": "oauth-sign@~0.3.0", + "resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.3.0.tgz" + }, + "hawk": { + "version": "1.1.1", + "from": "hawk@1.1.1", + "resolved": "https://registry.npmjs.org/hawk/-/hawk-1.1.1.tgz", + "dependencies": { + "hoek": { + "version": "0.9.1", + "from": "hoek@0.9.x", + "resolved": "https://registry.npmjs.org/hoek/-/hoek-0.9.1.tgz" + }, + "boom": { + "version": "0.4.2", + "from": "boom@0.4.x", + "resolved": "https://registry.npmjs.org/boom/-/boom-0.4.2.tgz" + }, + "cryptiles": { + "version": "0.2.2", + "from": "cryptiles@0.2.x", + "resolved": "https://registry.npmjs.org/cryptiles/-/cryptiles-0.2.2.tgz" + }, + "sntp": { + "version": "0.2.4", + "from": "sntp@0.2.x", + "resolved": "https://registry.npmjs.org/sntp/-/sntp-0.2.4.tgz" + } + } + }, + "aws-sign2": { + "version": "0.5.0", + "from": "aws-sign2@~0.5.0", + "resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.5.0.tgz" + }, + "stringstream": { + "version": "0.0.4", + "from": "stringstream@~0.0.4", + "resolved": "https://registry.npmjs.org/stringstream/-/stringstream-0.0.4.tgz" + } + } + }, + "semver": { + "version": "3.0.1", + "from": "semver@~3.0.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-3.0.1.tgz" + }, + "tar": { + "version": "1.0.0", + "from": "tar@~1.0.0", + "resolved": "https://registry.npmjs.org/tar/-/tar-1.0.0.tgz", + "dependencies": { + "block-stream": { + "version": "0.0.7", + "from": "block-stream@*", + "resolved": "https://registry.npmjs.org/block-stream/-/block-stream-0.0.7.tgz" + }, + "fstream": { + "version": "1.0.1", + "from": "fstream@^1.0.0", + "resolved": "https://registry.npmjs.org/fstream/-/fstream-1.0.1.tgz", + "dependencies": { + "graceful-fs": { + "version": "3.0.2", + "from": "graceful-fs@3", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-3.0.2.tgz" + } + } + }, + "inherits": { + "version": "2.0.1", + "from": "inherits@~2.0.1", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.1.tgz" + } + } + }, + "tar-pack": { + "version": "2.0.0", + "from": "tar-pack@~2.0.0", + "resolved": "https://registry.npmjs.org/tar-pack/-/tar-pack-2.0.0.tgz", + "dependencies": { + "uid-number": { + "version": "0.0.3", + "from": "uid-number@0.0.3", + "resolved": "https://registry.npmjs.org/uid-number/-/uid-number-0.0.3.tgz" + }, + "once": { + "version": "1.1.1", + "from": "once@~1.1.1", + "resolved": "https://registry.npmjs.org/once/-/once-1.1.1.tgz" + }, + "debug": { + "version": "0.7.4", + "from": "debug@~0.7.2", + "resolved": "https://registry.npmjs.org/debug/-/debug-0.7.4.tgz" + }, + "fstream": { + "version": "0.1.31", + "from": "fstream@~0.1.22", + "resolved": "https://registry.npmjs.org/fstream/-/fstream-0.1.31.tgz", + "dependencies": { + "graceful-fs": { + "version": "3.0.2", + "from": "graceful-fs@3", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-3.0.2.tgz" + }, + "inherits": { + "version": "2.0.1", + "from": "inherits@2", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.1.tgz" + } + } + }, + "tar": { + "version": "0.1.20", + "from": "tar@~0.1.17", + "resolved": "https://registry.npmjs.org/tar/-/tar-0.1.20.tgz", + "dependencies": { + "block-stream": { + "version": "0.0.7", + "from": "block-stream@*", + "resolved": "https://registry.npmjs.org/block-stream/-/block-stream-0.0.7.tgz" + }, + "inherits": { + "version": "2.0.1", + "from": "inherits@2", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.1.tgz" + } + } + }, + "fstream-ignore": { + "version": "0.0.7", + "from": "fstream-ignore@0.0.7", + "resolved": "https://registry.npmjs.org/fstream-ignore/-/fstream-ignore-0.0.7.tgz", + "dependencies": { + "minimatch": { + "version": "0.2.14", + "from": "minimatch@~0.2.0", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-0.2.14.tgz", + "dependencies": { + "lru-cache": { + "version": "2.5.0", + "from": "lru-cache@2", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-2.5.0.tgz" + }, + "sigmund": { + "version": "1.0.0", + "from": "sigmund@~1.0.0", + "resolved": "https://registry.npmjs.org/sigmund/-/sigmund-1.0.0.tgz" + } + } + }, + "inherits": { + "version": "2.0.1", + "from": "inherits@2", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.1.tgz" + } + } + }, + "readable-stream": { + "version": "1.0.27-1", + "from": "readable-stream@~1.0.2", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.0.27-1.tgz", + "dependencies": { + "core-util-is": { + "version": "1.0.1", + "from": "core-util-is@~1.0.0", + "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.1.tgz" + }, + "isarray": { + "version": "0.0.1", + "from": "isarray@0.0.1", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz" + }, + "string_decoder": { + "version": "0.10.25-1", + "from": "string_decoder@~0.10.x", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.25-1.tgz" + }, + "inherits": { + "version": "2.0.1", + "from": "inherits@2", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.1.tgz" + } + } + }, + "graceful-fs": { + "version": "1.2.3", + "from": "graceful-fs@1.2", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-1.2.3.tgz" + } + } + }, + "mkdirp": { + "version": "0.5.0", + "from": "mkdirp@~0.5.0", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.0.tgz", + "dependencies": { + "minimist": { + "version": "0.0.8", + "from": "minimist@0.0.8", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz" + } + } + }, + "rc": { + "version": "0.5.0", + "from": "rc@~0.5.0", + "resolved": "https://registry.npmjs.org/rc/-/rc-0.5.0.tgz", + "dependencies": { + "minimist": { + "version": "0.0.10", + "from": "minimist@~0.0.7", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.10.tgz" + }, + "deep-extend": { + "version": "0.2.11", + "from": "deep-extend@~0.2.5", + "resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.2.11.tgz" + }, + "strip-json-comments": { + "version": "0.1.3", + "from": "strip-json-comments@0.1.x", + "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-0.1.3.tgz" + }, + "ini": { + "version": "1.1.0", + "from": "ini@~1.1.0", + "resolved": "https://registry.npmjs.org/ini/-/ini-1.1.0.tgz" + } + } + }, + "rimraf": { + "version": "2.2.8", + "from": "rimraf@~2.2.8", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.2.8.tgz" + } + } + }, + "set-immediate": { + "version": "0.1.1", + "from": "set-immediate@0.1.1", + "resolved": "https://registry.npmjs.org/set-immediate/-/set-immediate-0.1.1.tgz" + } + } + }, + "mime": { + "version": "1.2.11", + "from": "mime@~1.2.9", + "resolved": "https://registry.npmjs.org/mime/-/mime-1.2.11.tgz" + }, + "mkdirp": { + "version": "0.3.5", + "from": "mkdirp@~0.3.3", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.3.5.tgz" + }, + "optimist": { + "version": "0.6.1", + "from": "optimist@~0.6.0", + "resolved": "https://registry.npmjs.org/optimist/-/optimist-0.6.1.tgz", + "dependencies": { + "wordwrap": { + "version": "0.0.3", + "from": "wordwrap@~0.0.2", + "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-0.0.3.tgz" + }, + "minimist": { + "version": "0.0.10", + "from": "minimist@~0.0.1", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.10.tgz" + } + } + } + } + } + } + }, + "tilelive": { + "version": "4.5.3", + "from": "tilelive@~4.5.3", + "resolved": "https://registry.npmjs.org/tilelive/-/tilelive-4.5.3.tgz", + "dependencies": { + "optimist": { + "version": "0.6.1", + "from": "optimist@~0.6.0", + "resolved": "https://registry.npmjs.org/optimist/-/optimist-0.6.1.tgz", + "dependencies": { + "wordwrap": { + "version": "0.0.3", + "from": "wordwrap@~0.0.2", + "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-0.0.3.tgz" + }, + "minimist": { + "version": "0.0.10", + "from": "minimist@~0.0.1", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.10.tgz" + } + } + } + } + }, + "tilelive-mapnik": { + "version": "0.6.15-cdb3", + "from": "https://github.com/CartoDB/tilelive-mapnik/tarball/0.6.15-cdb3", + "resolved": "https://github.com/CartoDB/tilelive-mapnik/tarball/0.6.15-cdb3", + "dependencies": { + "generic-pool": { + "version": "2.1.1", + "from": "generic-pool@~2.1.1", + "resolved": "https://registry.npmjs.org/generic-pool/-/generic-pool-2.1.1.tgz" + }, + "mime": { + "version": "1.2.11", + "from": "mime@~1.2.9", + "resolved": "https://registry.npmjs.org/mime/-/mime-1.2.11.tgz" + } + } + }, + "tilelive-bridge": { + "version": "1.3.0-cdb3", + "from": "https://github.com/CartoDB/tilelive-bridge/tarball/1.3.0-cdb3", + "resolved": "https://github.com/CartoDB/tilelive-bridge/tarball/1.3.0-cdb3", + "dependencies": { + "mapnik-pool": { + "version": "0.1.1-cdb3", + "from": "https://github.com/CartoDB/mapnik-pool/tarball/0.1.1-cdb3", + "resolved": "https://github.com/CartoDB/mapnik-pool/tarball/0.1.1-cdb3", + "dependencies": { + "generic-pool": { + "version": "2.1.1", + "from": "generic-pool@~2.1.1", + "resolved": "https://registry.npmjs.org/generic-pool/-/generic-pool-2.1.1.tgz" + }, + "xtend": { + "version": "3.0.0", + "from": "xtend@~3.0.0", + "resolved": "https://registry.npmjs.org/xtend/-/xtend-3.0.0.tgz" + } + } + } + } + }, + "canvas": { + "version": "1.2.7-cdb1", + "from": "https://github.com/CartoDB/node-canvas/tarball/1.2.7-cdb1", + "resolved": "https://github.com/CartoDB/node-canvas/tarball/1.2.7-cdb1", + "dependencies": { + "nan": { + "version": "1.9.0", + "from": "nan@^1.8.4", + "resolved": "https://registry.npmjs.org/nan/-/nan-1.9.0.tgz" + } + } + }, + "semver": { + "version": "5.0.3", + "from": "semver@~5.0.3", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.0.3.tgz" + }, + "carto": { + "version": "0.15.1-cdb1", + "from": "https://github.com/CartoDB/carto/tarball/0.15.1-cdb1", + "resolved": "https://github.com/CartoDB/carto/tarball/0.15.1-cdb1", + "dependencies": { + "mapnik-reference": { + "version": "6.0.5", + "from": "mapnik-reference@~6.0.2", + "resolved": "https://registry.npmjs.org/mapnik-reference/-/mapnik-reference-6.0.5.tgz" + }, + "optimist": { + "version": "0.6.1", + "from": "optimist@~0.6.0", + "resolved": "https://registry.npmjs.org/optimist/-/optimist-0.6.1.tgz", + "dependencies": { + "wordwrap": { + "version": "0.0.3", + "from": "wordwrap@~0.0.2", + "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-0.0.3.tgz" + }, + "minimist": { + "version": "0.0.10", + "from": "minimist@~0.0.1", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.10.tgz" + } + } + } + } + }, + "cartodb-psql": { + "version": "0.6.1", + "from": "cartodb-psql@~0.6.1", + "dependencies": { + "pg": { + "version": "2.6.2-cdb3", + "from": "pg@git://github.com/CartoDB/node-postgres.git#2.6.2-cdb3", + "resolved": "git://github.com/CartoDB/node-postgres.git#069c5296d1a093077feff21719641bb9e71fc50e", + "dependencies": { + "generic-pool": { + "version": "2.0.3", + "from": "generic-pool@2.0.3", + "resolved": "https://registry.npmjs.org/generic-pool/-/generic-pool-2.0.3.tgz" + }, + "buffer-writer": { + "version": "1.0.0", + "from": "buffer-writer@1.0.0", + "resolved": "https://registry.npmjs.org/buffer-writer/-/buffer-writer-1.0.0.tgz" + } + } + } + } + }, + "torque.js": { + "version": "2.11.4", + "from": "torque.js@~2.11.0" + }, + "abaculus": { + "version": "1.1.0-cdb3", + "from": "https://github.com/CartoDB/abaculus/tarball/1.1.0-cdb3", + "resolved": "https://github.com/CartoDB/abaculus/tarball/1.1.0-cdb3" + }, + "sphericalmercator": { + "version": "1.0.3", + "from": "sphericalmercator@1.0.3", + "resolved": "https://registry.npmjs.org/sphericalmercator/-/sphericalmercator-1.0.3.tgz" + } + } + } + } +} From 37ff13493ca4a896065be8ce29682b3adc5a60db Mon Sep 17 00:00:00 2001 From: Raul Ochoa Date: Mon, 16 Nov 2015 12:23:05 +0100 Subject: [PATCH 27/40] Use mapconfig-extension from windshaft --- npm-shrinkwrap.json | 6 +++--- package.json | 2 +- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/npm-shrinkwrap.json b/npm-shrinkwrap.json index f9549fa5..c020ce4e 100644 --- a/npm-shrinkwrap.json +++ b/npm-shrinkwrap.json @@ -533,7 +533,7 @@ }, "inherits": { "version": "2.0.1", - "from": "inherits@~2.0.1", + "from": "inherits@2", "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.1.tgz" }, "isarray": { @@ -828,8 +828,8 @@ }, "windshaft": { "version": "1.5.1", - "from": "https://github.com/CartoDB/Windshaft/tarball/mapconfig-extension-histogram", - "resolved": "https://github.com/CartoDB/Windshaft/tarball/mapconfig-extension-histogram", + "from": "https://github.com/CartoDB/Windshaft/tarball/mapconfig-extension", + "resolved": "https://github.com/CartoDB/Windshaft/tarball/mapconfig-extension", "dependencies": { "mapnik": { "version": "1.4.15-cdb5", diff --git a/package.json b/package.json index 995d319a..f5a462a6 100644 --- a/package.json +++ b/package.json @@ -29,7 +29,7 @@ "node-statsd": "~0.0.7", "underscore" : "~1.6.0", "dot": "~1.0.2", - "windshaft": "https://github.com/CartoDB/Windshaft/tarball/mapconfig-extension-histogram", + "windshaft": "https://github.com/CartoDB/Windshaft/tarball/mapconfig-extension", "step": "~0.0.6", "queue-async": "~1.0.7", "request": "~2.62.0", From d9614cc1c558a3c0599b94a8f8de327ef6c8268e Mon Sep 17 00:00:00 2001 From: Raul Ochoa Date: Mon, 16 Nov 2015 13:15:01 +0100 Subject: [PATCH 28/40] Add search endpoint --- lib/cartodb/controllers/base.js | 4 +++- lib/cartodb/controllers/layergroup.js | 32 +++++++++++++++++++++++++++ 2 files changed, 35 insertions(+), 1 deletion(-) diff --git a/lib/cartodb/controllers/base.js b/lib/cartodb/controllers/base.js index 88a22c45..5a44500b 100644 --- a/lib/cartodb/controllers/base.js +++ b/lib/cartodb/controllers/base.js @@ -20,7 +20,9 @@ var REQUEST_QUERY_PARAMS_WHITELIST = [ 'bbox', // w,s,e,n 'bins', // number 'start', // number - 'end' // number + 'end', // number + // widgets search + 'q' ]; function BaseController(authApi, pgConnection) { diff --git a/lib/cartodb/controllers/layergroup.js b/lib/cartodb/controllers/layergroup.js index d5b1e05c..e1d56fb2 100644 --- a/lib/cartodb/controllers/layergroup.js +++ b/lib/cartodb/controllers/layergroup.js @@ -72,6 +72,10 @@ LayergroupController.prototype.register = function(app) { app.get(app.base_url_mapconfig + '/:token/:layer/widget/:widgetName', cors(), userMiddleware, this.widget.bind(this)); + + app.get(app.base_url_mapconfig + + '/:token/:layer/widget/:widgetName/search', cors(), userMiddleware, + this.widgetSearch.bind(this)); }; LayergroupController.prototype.widget = function(req, res) { @@ -102,6 +106,34 @@ LayergroupController.prototype.widget = function(req, res) { }; +LayergroupController.prototype.widgetSearch = function(req, res) { + var self = this; + + step( + function setupParams() { + self.req2params(req, this); + }, + function retrieveList(err) { + assert.ifError(err); + + var mapConfigProvider = new MapStoreMapConfigProvider( + self.mapStore, req.context.user, self.userLimitsApi, req.params + ); + self.widgetBackend.search(mapConfigProvider, req.params, this); + }, + function finish(err, tile, stats) { + req.profiler.add(stats || {}); + + if (err) { + self.sendError(req, res, err, 'GET WIDGET'); + } else { + self.sendResponse(req, res, tile, 200); + } + } + ); + +}; + LayergroupController.prototype.attributes = function(req, res) { var self = this; From 1de4753daa8d851a4b46d630c2cb8b76c160d0be Mon Sep 17 00:00:00 2001 From: Raul Ochoa Date: Mon, 16 Nov 2015 18:34:36 +0100 Subject: [PATCH 29/40] fix tests --- test/acceptance/widgets.js | 54 ++++++++++++++++++++------------------ 1 file changed, 29 insertions(+), 25 deletions(-) diff --git a/test/acceptance/widgets.js b/test/acceptance/widgets.js index 29ad1137..6c67bad5 100644 --- a/test/acceptance/widgets.js +++ b/test/acceptance/widgets.js @@ -76,10 +76,14 @@ describe('widgets', function() { var next = this; layergroupId = _layergroupId; - var url = '/api/v1/map/' + layergroupId + '/0/widget/' + widgetName; + var urlParams = { + own_filter: 1 + }; if (params && params.bbox) { - url += '?' + qs.stringify({bbox: params.bbox}); + urlParams.bbox = params.bbox; } + url = '/api/v1/map/' + layergroupId + '/0/widget/' + widgetName + '?' + qs.stringify(urlParams); + assert.response(server, { url: url, @@ -148,7 +152,7 @@ describe('widgets', function() { {name:"El Lacón"}, {name:"El Pico"} ]; - assert.deepEqual(JSON.parse(res.body).ownFilterOn.rows, expectedList); + assert.deepEqual(JSON.parse(res.body).rows, expectedList); done(); }); @@ -182,7 +186,7 @@ describe('widgets', function() { } var histogram = JSON.parse(res.body); - assert.ok(histogram.ownFilterOn.bins.length); + assert.ok(histogram.bins.length); done(); }); @@ -221,8 +225,8 @@ describe('widgets', function() { } var aggregation = JSON.parse(res.body); - assert.equal(aggregation.ownFilterOn.categories.length, 223); - assert.deepEqual(aggregation.ownFilterOn.categories[0], { count: 769, adm0_a3: 'USA' }); + assert.equal(aggregation.categories.length, 12); + assert.deepEqual(aggregation.categories[0], { value: 769, category: 'USA', agg: false }); done(); }); @@ -242,8 +246,8 @@ describe('widgets', function() { } var aggregation = JSON.parse(res.body); - assert.equal(aggregation.ownFilterOn.categories.length, 1); - assert.deepEqual(aggregation.ownFilterOn.categories[0], { count: 256, adm0_a3: 'CAN' }); + assert.equal(aggregation.categories.length, 1); + assert.deepEqual(aggregation.categories[0], { value: 256, category: 'CAN', agg: false }); done(); }); @@ -282,7 +286,7 @@ describe('widgets', function() { var histogram = JSON.parse(res.body); // notice min value assert.deepEqual( - histogram.ownFilterOn.bins[0], + histogram.bins[0], { bin:0, start:0, end:3567600, freq:7229, min:0, max:3917000 } ); @@ -307,13 +311,13 @@ describe('widgets', function() { var histogram = JSON.parse(res.body); // notice min value - assert.deepEqual(histogram.ownFilterOn.bins[0], { + assert.deepEqual(histogram.bins[0], { bin: 0, start: 4009000, - end: 7175700, - freq: 50, + end: 11925750, + freq: 75, min: 4009000, - max: 7297054 + max: 13485000 }); done(); @@ -369,11 +373,11 @@ describe('widgets', function() { var aggregation = JSON.parse(res.body); // first one would be CHN if reject filter wasn't applied - assert.deepEqual(aggregation.ownFilterOn.categories[0], {"count":769,"adm0_a3":"USA"}); + assert.deepEqual(aggregation.categories[0], { value: 769, category: "USA", agg: false }); // confirm 'CHN' was filtered out (reject) - assert.equal(aggregation.ownFilterOn.categories.reduce(function(sum, row) { - return sum + (row.adm0_a3 === 'CHN' ? 1 : 0); + assert.equal(aggregation.categories.reduce(function(sum, row) { + return sum + (row.category === 'CHN' ? 1 : 0); }, 0), 0); done(); @@ -399,11 +403,11 @@ describe('widgets', function() { var aggregation = JSON.parse(res.body); // first one would be CHN if reject filter wasn't applied - assert.deepEqual(aggregation.ownFilterOn.categories[0], { count: 4, adm0_a3: 'IND' }); + assert.deepEqual(aggregation.categories[0], { value: 4, category: 'IND', agg: false }); // confirm 'CHN' was filtered out (reject) - assert.equal(aggregation.ownFilterOn.categories.reduce(function(sum, row) { - return sum + (row.adm0_a3 === 'CHN' ? 1 : 0); + assert.equal(aggregation.categories.reduce(function(sum, row) { + return sum + (row.category === 'CHN' ? 1 : 0); }, 0), 0); done(); @@ -429,11 +433,11 @@ describe('widgets', function() { var aggregation = JSON.parse(res.body); // first one would be CHN if reject filter wasn't applied - assert.deepEqual(aggregation.ownFilterOn.categories[0], {"count":96,"adm0_a3":"RUS"}); + assert.deepEqual(aggregation.categories[0], { value: 96, category: "RUS", agg: false }); // confirm 'CHN' was filtered out (reject) - assert.equal(aggregation.ownFilterOn.categories.reduce(function(sum, row) { - return sum + (row.adm0_a3 === 'CHN' ? 1 : 0); + assert.equal(aggregation.categories.reduce(function(sum, row) { + return sum + (row.category === 'CHN' ? 1 : 0); }, 0), 0); done(); @@ -460,11 +464,11 @@ describe('widgets', function() { var aggregation = JSON.parse(res.body); // first one would be CHN if reject filter wasn't applied - assert.deepEqual(aggregation.ownFilterOn.categories[0], {"count":77,"adm0_a3":"TUR"}); + assert.deepEqual(aggregation.categories[0], { value: 77, category: "TUR", agg: false }); // confirm 'CHN' was filtered out (reject) - assert.equal(aggregation.ownFilterOn.categories.reduce(function(sum, row) { - return sum + (row.adm0_a3 === 'CHN' ? 1 : 0); + assert.equal(aggregation.categories.reduce(function(sum, row) { + return sum + (row.category === 'CHN' ? 1 : 0); }, 0), 0); done(); From 0a38549c5523ffdb354dafc40b3ced5cd94da68f Mon Sep 17 00:00:00 2001 From: Raul Ochoa Date: Mon, 23 Nov 2015 11:00:55 +0100 Subject: [PATCH 30/40] Regenerate npm-shrinkwrap.json --- npm-shrinkwrap.json | 56 ++++++++++++++++++++++----------------------- 1 file changed, 28 insertions(+), 28 deletions(-) diff --git a/npm-shrinkwrap.json b/npm-shrinkwrap.json index c020ce4e..f8eaf683 100644 --- a/npm-shrinkwrap.json +++ b/npm-shrinkwrap.json @@ -58,7 +58,7 @@ }, "qs": { "version": "5.1.0", - "from": "qs@5.1.0", + "from": "qs@~5.1.0", "resolved": "https://registry.npmjs.org/qs/-/qs-5.1.0.tgz" }, "raw-body": { @@ -68,14 +68,14 @@ "dependencies": { "unpipe": { "version": "1.0.0", - "from": "unpipe@1.0.0", + "from": "unpipe@~1.0.0", "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz" } } }, "type-is": { "version": "1.6.9", - "from": "type-is@~1.6.9", + "from": "type-is@~1.6.6", "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.9.tgz", "dependencies": { "media-typer": { @@ -359,7 +359,7 @@ }, "statuses": { "version": "1.2.1", - "from": "statuses@~1.2.1", + "from": "statuses@1", "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.2.1.tgz" } } @@ -425,9 +425,9 @@ "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.0.33.tgz", "dependencies": { "core-util-is": { - "version": "1.0.1", + "version": "1.0.2", "from": "core-util-is@~1.0.0", - "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.1.tgz" + "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz" }, "isarray": { "version": "0.0.1", @@ -527,9 +527,9 @@ "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.0.4.tgz", "dependencies": { "core-util-is": { - "version": "1.0.1", + "version": "1.0.2", "from": "core-util-is@~1.0.0", - "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.1.tgz" + "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz" }, "inherits": { "version": "2.0.1", @@ -594,7 +594,7 @@ }, "mime-types": { "version": "2.1.7", - "from": "mime-types@~2.1.6", + "from": "mime-types@~2.1.7", "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.7.tgz", "dependencies": { "mime-db": { @@ -652,9 +652,9 @@ "resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.8.0.tgz" }, "hawk": { - "version": "3.1.1", + "version": "3.1.2", "from": "hawk@~3.1.0", - "resolved": "https://registry.npmjs.org/hawk/-/hawk-3.1.1.tgz", + "resolved": "https://registry.npmjs.org/hawk/-/hawk-3.1.2.tgz", "dependencies": { "hoek": { "version": "2.16.3", @@ -663,7 +663,7 @@ }, "boom": { "version": "2.10.1", - "from": "boom@^2.8.x", + "from": "boom@2.x.x", "resolved": "https://registry.npmjs.org/boom/-/boom-2.10.1.tgz" }, "cryptiles": { @@ -827,14 +827,14 @@ "resolved": "https://registry.npmjs.org/underscore/-/underscore-1.6.0.tgz" }, "windshaft": { - "version": "1.5.1", + "version": "1.6.1", "from": "https://github.com/CartoDB/Windshaft/tarball/mapconfig-extension", "resolved": "https://github.com/CartoDB/Windshaft/tarball/mapconfig-extension", "dependencies": { "mapnik": { - "version": "1.4.15-cdb5", - "from": "https://github.com/CartoDB/node-mapnik/tarball/1.4.15-cdb5", - "resolved": "https://github.com/CartoDB/node-mapnik/tarball/1.4.15-cdb5", + "version": "1.4.15-cdb6", + "from": "https://github.com/CartoDB/node-mapnik/tarball/1.4.15-cdb6", + "resolved": "https://github.com/CartoDB/node-mapnik/tarball/1.4.15-cdb6", "dependencies": { "nan": { "version": "1.2.0", @@ -2995,9 +2995,9 @@ } }, "tilelive-mapnik": { - "version": "0.6.15-cdb3", - "from": "https://github.com/CartoDB/tilelive-mapnik/tarball/0.6.15-cdb3", - "resolved": "https://github.com/CartoDB/tilelive-mapnik/tarball/0.6.15-cdb3", + "version": "0.6.15-cdb5", + "from": "https://github.com/CartoDB/tilelive-mapnik/tarball/0.6.15-cdb5", + "resolved": "https://github.com/CartoDB/tilelive-mapnik/tarball/0.6.15-cdb5", "dependencies": { "generic-pool": { "version": "2.1.1", @@ -3012,14 +3012,14 @@ } }, "tilelive-bridge": { - "version": "1.3.0-cdb3", - "from": "https://github.com/CartoDB/tilelive-bridge/tarball/1.3.0-cdb3", - "resolved": "https://github.com/CartoDB/tilelive-bridge/tarball/1.3.0-cdb3", + "version": "1.3.0-cdb4", + "from": "https://github.com/CartoDB/tilelive-bridge/tarball/1.3.0-cdb4", + "resolved": "https://github.com/CartoDB/tilelive-bridge/tarball/1.3.0-cdb4", "dependencies": { "mapnik-pool": { - "version": "0.1.1-cdb3", - "from": "https://github.com/CartoDB/mapnik-pool/tarball/0.1.1-cdb3", - "resolved": "https://github.com/CartoDB/mapnik-pool/tarball/0.1.1-cdb3", + "version": "0.1.1-cdb4", + "from": "https://github.com/CartoDB/mapnik-pool/tarball/0.1.1-cdb4", + "resolved": "https://github.com/CartoDB/mapnik-pool/tarball/0.1.1-cdb4", "dependencies": { "generic-pool": { "version": "2.1.1", @@ -3109,9 +3109,9 @@ "from": "torque.js@~2.11.0" }, "abaculus": { - "version": "1.1.0-cdb3", - "from": "https://github.com/CartoDB/abaculus/tarball/1.1.0-cdb3", - "resolved": "https://github.com/CartoDB/abaculus/tarball/1.1.0-cdb3" + "version": "1.1.0-cdb4", + "from": "https://github.com/CartoDB/abaculus/tarball/1.1.0-cdb4", + "resolved": "https://github.com/CartoDB/abaculus/tarball/1.1.0-cdb4" }, "sphericalmercator": { "version": "1.0.3", From 7d2f543284098b505193a1d38bed865cf0088e85 Mon Sep 17 00:00:00 2001 From: Raul Ochoa Date: Wed, 2 Dec 2015 18:50:11 +0100 Subject: [PATCH 31/40] Allow column_type query string param --- lib/cartodb/controllers/base.js | 1 + 1 file changed, 1 insertion(+) diff --git a/lib/cartodb/controllers/base.js b/lib/cartodb/controllers/base.js index 5a44500b..ac3ac11c 100644 --- a/lib/cartodb/controllers/base.js +++ b/lib/cartodb/controllers/base.js @@ -21,6 +21,7 @@ var REQUEST_QUERY_PARAMS_WHITELIST = [ 'bins', // number 'start', // number 'end', // number + 'column_type', // string // widgets search 'q' ]; From 62b1df970ac8aae470969f964724e97b47cef56a Mon Sep 17 00:00:00 2001 From: Raul Ochoa Date: Thu, 14 Jan 2016 18:16:12 +0100 Subject: [PATCH 32/40] fix json --- docs/MultiLayer-API.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/MultiLayer-API.md b/docs/MultiLayer-API.md index 793a60a9..06e7ce39 100644 --- a/docs/MultiLayer-API.md +++ b/docs/MultiLayer-API.md @@ -17,8 +17,8 @@ Windshaft-CartoDB adds the following attributes in the response object ```json { - http: 'http://cdn_url.com/' - https: 'https://secure.cdn_url.com/' + "http": "http://cdn_url.com/" + "https": "https://secure.cdn_url.com/" } ``` From 45acdd9f39b8fb4aced43dda1e8a1e1c1cf85da1 Mon Sep 17 00:00:00 2001 From: Raul Ochoa Date: Thu, 14 Jan 2016 18:16:31 +0100 Subject: [PATCH 33/40] fix json, 2nd attempt --- docs/MultiLayer-API.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/MultiLayer-API.md b/docs/MultiLayer-API.md index 06e7ce39..febf709b 100644 --- a/docs/MultiLayer-API.md +++ b/docs/MultiLayer-API.md @@ -17,7 +17,7 @@ Windshaft-CartoDB adds the following attributes in the response object ```json { - "http": "http://cdn_url.com/" + "http": "http://cdn_url.com/", "https": "https://secure.cdn_url.com/" } ``` From 5eeaa0272cc56c0b5852055cef2eeaeceb3a0aa7 Mon Sep 17 00:00:00 2001 From: Raul Ochoa Date: Fri, 15 Jan 2016 16:01:01 +0100 Subject: [PATCH 34/40] Use master branch from windshaft and regenerate npm-shrinkwrap.json --- npm-shrinkwrap.json | 918 +++++++++++++++++++++++++++++++------------- package.json | 2 +- 2 files changed, 642 insertions(+), 278 deletions(-) diff --git a/npm-shrinkwrap.json b/npm-shrinkwrap.json index 2cd8eeca..6756417c 100644 --- a/npm-shrinkwrap.json +++ b/npm-shrinkwrap.json @@ -3,14 +3,14 @@ "version": "2.19.2", "dependencies": { "body-parser": { - "version": "1.14.1", + "version": "1.14.2", "from": "body-parser@~1.14.0", - "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.14.1.tgz", + "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.14.2.tgz", "dependencies": { "bytes": { - "version": "2.1.0", - "from": "bytes@2.1.0", - "resolved": "https://registry.npmjs.org/bytes/-/bytes-2.1.0.tgz" + "version": "2.2.0", + "from": "bytes@2.2.0", + "resolved": "https://registry.npmjs.org/bytes/-/bytes-2.2.0.tgz" }, "content-type": { "version": "1.0.1", @@ -40,9 +40,9 @@ } }, "iconv-lite": { - "version": "0.4.12", - "from": "iconv-lite@0.4.12", - "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.12.tgz" + "version": "0.4.13", + "from": "iconv-lite@0.4.13", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.13.tgz" }, "on-finished": { "version": "2.3.0", @@ -57,14 +57,14 @@ } }, "qs": { - "version": "5.1.0", - "from": "qs@5.1.0", - "resolved": "https://registry.npmjs.org/qs/-/qs-5.1.0.tgz" + "version": "5.2.0", + "from": "qs@5.2.0", + "resolved": "https://registry.npmjs.org/qs/-/qs-5.2.0.tgz" }, "raw-body": { - "version": "2.1.4", - "from": "raw-body@~2.1.4", - "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.1.4.tgz", + "version": "2.1.5", + "from": "raw-body@~2.1.5", + "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.1.5.tgz", "dependencies": { "unpipe": { "version": "1.0.0", @@ -74,9 +74,9 @@ } }, "type-is": { - "version": "1.6.9", - "from": "type-is@~1.6.9", - "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.9.tgz", + "version": "1.6.10", + "from": "type-is@~1.6.10", + "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.10.tgz", "dependencies": { "media-typer": { "version": "0.3.0", @@ -84,14 +84,14 @@ "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz" }, "mime-types": { - "version": "2.1.7", - "from": "mime-types@~2.1.7", - "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.7.tgz", + "version": "2.1.9", + "from": "mime-types@~2.1.8", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.9.tgz", "dependencies": { "mime-db": { - "version": "1.19.0", - "from": "mime-db@~1.19.0", - "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.19.0.tgz" + "version": "1.21.0", + "from": "mime-db@~1.21.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.21.0.tgz" } } } @@ -191,14 +191,14 @@ "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.2.13.tgz", "dependencies": { "mime-types": { - "version": "2.1.7", - "from": "mime-types@~2.1.6", - "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.7.tgz", + "version": "2.1.9", + "from": "mime-types@~2.1.8", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.9.tgz", "dependencies": { "mime-db": { - "version": "1.19.0", - "from": "mime-db@~1.19.0", - "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.19.0.tgz" + "version": "1.21.0", + "from": "mime-db@~1.21.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.21.0.tgz" } } }, @@ -299,9 +299,9 @@ "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz" }, "proxy-addr": { - "version": "1.0.8", + "version": "1.0.10", "from": "proxy-addr@~1.0.8", - "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-1.0.8.tgz", + "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-1.0.10.tgz", "dependencies": { "forwarded": { "version": "0.1.0", @@ -309,9 +309,9 @@ "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.1.0.tgz" }, "ipaddr.js": { - "version": "1.0.1", - "from": "ipaddr.js@1.0.1", - "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.0.1.tgz" + "version": "1.0.5", + "from": "ipaddr.js@1.0.5", + "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.0.5.tgz" } } }, @@ -370,9 +370,9 @@ "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.10.0.tgz" }, "type-is": { - "version": "1.6.9", + "version": "1.6.10", "from": "type-is@~1.6.6", - "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.9.tgz", + "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.10.tgz", "dependencies": { "media-typer": { "version": "0.3.0", @@ -380,14 +380,14 @@ "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz" }, "mime-types": { - "version": "2.1.7", - "from": "mime-types@~2.1.6", - "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.7.tgz", + "version": "2.1.9", + "from": "mime-types@~2.1.8", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.9.tgz", "dependencies": { "mime-db": { - "version": "1.19.0", - "from": "mime-db@~1.19.0", - "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.19.0.tgz" + "version": "1.21.0", + "from": "mime-db@~1.21.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.21.0.tgz" } } } @@ -522,9 +522,9 @@ "resolved": "https://registry.npmjs.org/bl/-/bl-1.0.0.tgz", "dependencies": { "readable-stream": { - "version": "2.0.4", + "version": "2.0.5", "from": "readable-stream@~2.0.0", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.0.4.tgz", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.0.5.tgz", "dependencies": { "core-util-is": { "version": "1.0.2", @@ -533,7 +533,7 @@ }, "inherits": { "version": "2.0.1", - "from": "inherits@2", + "from": "inherits@~2.0.1", "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.1.tgz" }, "isarray": { @@ -542,9 +542,9 @@ "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz" }, "process-nextick-args": { - "version": "1.0.3", - "from": "process-nextick-args@~1.0.0", - "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-1.0.3.tgz" + "version": "1.0.6", + "from": "process-nextick-args@~1.0.6", + "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-1.0.6.tgz" }, "string_decoder": { "version": "0.10.31", @@ -581,9 +581,9 @@ "resolved": "https://registry.npmjs.org/form-data/-/form-data-1.0.0-rc3.tgz", "dependencies": { "async": { - "version": "1.5.0", + "version": "1.5.2", "from": "async@^1.4.0", - "resolved": "https://registry.npmjs.org/async/-/async-1.5.0.tgz" + "resolved": "https://registry.npmjs.org/async/-/async-1.5.2.tgz" } } }, @@ -593,14 +593,14 @@ "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz" }, "mime-types": { - "version": "2.1.7", + "version": "2.1.9", "from": "mime-types@~2.1.2", - "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.7.tgz", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.9.tgz", "dependencies": { "mime-db": { - "version": "1.19.0", - "from": "mime-db@~1.19.0", - "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.19.0.tgz" + "version": "1.21.0", + "from": "mime-db@~1.21.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.21.0.tgz" } } }, @@ -615,9 +615,9 @@ "resolved": "https://registry.npmjs.org/qs/-/qs-5.1.0.tgz" }, "tunnel-agent": { - "version": "0.4.1", + "version": "0.4.2", "from": "tunnel-agent@~0.4.0", - "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.4.1.tgz" + "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.4.2.tgz" }, "tough-cookie": { "version": "2.2.1", @@ -726,9 +726,9 @@ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.1.0.tgz" }, "escape-string-regexp": { - "version": "1.0.3", + "version": "1.0.4", "from": "escape-string-regexp@^1.0.2", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.3.tgz" + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.4.tgz" }, "has-ansi": { "version": "2.0.0", @@ -828,8 +828,8 @@ }, "windshaft": { "version": "1.6.2", - "from": "https://github.com/CartoDB/Windshaft/tarball/mapconfig-extension", - "resolved": "https://github.com/CartoDB/Windshaft/tarball/mapconfig-extension", + "from": "https://github.com/CartoDB/Windshaft/tarball/master", + "resolved": "https://github.com/CartoDB/Windshaft/tarball/master", "dependencies": { "mapnik": { "version": "1.4.15-cdb6", @@ -2129,63 +2129,60 @@ } }, "zipfile": { - "version": "0.5.7", + "version": "0.5.9", "from": "zipfile@~0.5.2", - "resolved": "https://registry.npmjs.org/zipfile/-/zipfile-0.5.7.tgz", + "resolved": "https://registry.npmjs.org/zipfile/-/zipfile-0.5.9.tgz", "dependencies": { "nan": { - "version": "1.5.3", - "from": "nan@~1.5.1", - "resolved": "https://registry.npmjs.org/nan/-/nan-1.5.3.tgz" + "version": "2.1.0", + "from": "nan@~2.1.0", + "resolved": "https://registry.npmjs.org/nan/-/nan-2.1.0.tgz" }, "node-pre-gyp": { - "version": "0.6.2", - "from": "node-pre-gyp@>=0.6.2 <0.7.0", - "resolved": "https://registry.npmjs.org/node-pre-gyp/-/node-pre-gyp-0.6.2.tgz", + "version": "0.6.17", + "from": "node-pre-gyp@~0.6.17", "dependencies": { "nopt": { - "version": "3.0.1", + "version": "3.0.6", "from": "nopt@~3.0.1", - "resolved": "https://registry.npmjs.org/nopt/-/nopt-3.0.1.tgz", + "resolved": "https://registry.npmjs.org/nopt/-/nopt-3.0.6.tgz", "dependencies": { "abbrev": { - "version": "1.0.5", + "version": "1.0.7", "from": "abbrev@1", - "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.0.5.tgz" + "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.0.7.tgz" } } }, "npmlog": { - "version": "0.1.1", - "from": "npmlog@~0.1.1", - "resolved": "https://registry.npmjs.org/npmlog/-/npmlog-0.1.1.tgz", + "version": "2.0.0", + "from": "npmlog@~2.0.0", + "resolved": "https://registry.npmjs.org/npmlog/-/npmlog-2.0.0.tgz", "dependencies": { "ansi": { "version": "0.3.0", "from": "ansi@~0.3.0", "resolved": "https://registry.npmjs.org/ansi/-/ansi-0.3.0.tgz" - } - } - }, - "request": { - "version": "2.51.0", - "from": "request@2.x", - "resolved": "https://registry.npmjs.org/request/-/request-2.51.0.tgz", - "dependencies": { - "bl": { - "version": "0.9.3", - "from": "bl@~0.9.0", - "resolved": "https://registry.npmjs.org/bl/-/bl-0.9.3.tgz", + }, + "are-we-there-yet": { + "version": "1.0.4", + "from": "are-we-there-yet@~1.0.0", + "resolved": "https://registry.npmjs.org/are-we-there-yet/-/are-we-there-yet-1.0.4.tgz", "dependencies": { + "delegates": { + "version": "0.1.0", + "from": "delegates@^0.1.0", + "resolved": "https://registry.npmjs.org/delegates/-/delegates-0.1.0.tgz" + }, "readable-stream": { - "version": "1.0.33", - "from": "readable-stream@~1.0.26", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.0.33.tgz", + "version": "1.1.13", + "from": "readable-stream@^1.1.13", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.1.13.tgz", "dependencies": { "core-util-is": { - "version": "1.0.1", + "version": "1.0.2", "from": "core-util-is@~1.0.0", - "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.1.tgz" + "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz" }, "isarray": { "version": "0.0.1", @@ -2206,179 +2203,489 @@ } } }, - "caseless": { - "version": "0.8.0", - "from": "caseless@~0.8.0", - "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.8.0.tgz" - }, - "forever-agent": { - "version": "0.5.2", - "from": "forever-agent@~0.5.0", - "resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.5.2.tgz" - }, - "form-data": { - "version": "0.2.0", - "from": "form-data@~0.2.0", - "resolved": "https://registry.npmjs.org/form-data/-/form-data-0.2.0.tgz", + "gauge": { + "version": "1.2.2", + "from": "gauge@~1.2.0", + "resolved": "https://registry.npmjs.org/gauge/-/gauge-1.2.2.tgz", "dependencies": { - "async": { - "version": "0.9.0", - "from": "async@~0.9.0", - "resolved": "https://registry.npmjs.org/async/-/async-0.9.0.tgz" + "has-unicode": { + "version": "1.0.1", + "from": "has-unicode@^1.0.0", + "resolved": "https://registry.npmjs.org/has-unicode/-/has-unicode-1.0.1.tgz" }, - "mime-types": { - "version": "2.0.7", - "from": "mime-types@~2.0.3", - "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.0.7.tgz", + "lodash.pad": { + "version": "3.1.1", + "from": "lodash.pad@^3.0.0", + "resolved": "https://registry.npmjs.org/lodash.pad/-/lodash.pad-3.1.1.tgz", "dependencies": { - "mime-db": { - "version": "1.5.0", - "from": "mime-db@~1.5.0", - "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.5.0.tgz" + "lodash._basetostring": { + "version": "3.0.1", + "from": "lodash._basetostring@^3.0.0", + "resolved": "https://registry.npmjs.org/lodash._basetostring/-/lodash._basetostring-3.0.1.tgz" + }, + "lodash._createpadding": { + "version": "3.6.1", + "from": "lodash._createpadding@^3.0.0", + "resolved": "https://registry.npmjs.org/lodash._createpadding/-/lodash._createpadding-3.6.1.tgz", + "dependencies": { + "lodash.repeat": { + "version": "3.0.1", + "from": "lodash.repeat@^3.0.0", + "resolved": "https://registry.npmjs.org/lodash.repeat/-/lodash.repeat-3.0.1.tgz" + } + } + } + } + }, + "lodash.padleft": { + "version": "3.1.1", + "from": "lodash.padleft@^3.0.0", + "resolved": "https://registry.npmjs.org/lodash.padleft/-/lodash.padleft-3.1.1.tgz", + "dependencies": { + "lodash._basetostring": { + "version": "3.0.1", + "from": "lodash._basetostring@^3.0.0", + "resolved": "https://registry.npmjs.org/lodash._basetostring/-/lodash._basetostring-3.0.1.tgz" + }, + "lodash._createpadding": { + "version": "3.6.1", + "from": "lodash._createpadding@^3.0.0", + "resolved": "https://registry.npmjs.org/lodash._createpadding/-/lodash._createpadding-3.6.1.tgz", + "dependencies": { + "lodash.repeat": { + "version": "3.0.1", + "from": "lodash.repeat@^3.0.0", + "resolved": "https://registry.npmjs.org/lodash.repeat/-/lodash.repeat-3.0.1.tgz" + } + } + } + } + }, + "lodash.padright": { + "version": "3.1.1", + "from": "lodash.padright@^3.0.0", + "resolved": "https://registry.npmjs.org/lodash.padright/-/lodash.padright-3.1.1.tgz", + "dependencies": { + "lodash._basetostring": { + "version": "3.0.1", + "from": "lodash._basetostring@^3.0.0", + "resolved": "https://registry.npmjs.org/lodash._basetostring/-/lodash._basetostring-3.0.1.tgz" + }, + "lodash._createpadding": { + "version": "3.6.1", + "from": "lodash._createpadding@^3.0.0", + "resolved": "https://registry.npmjs.org/lodash._createpadding/-/lodash._createpadding-3.6.1.tgz", + "dependencies": { + "lodash.repeat": { + "version": "3.0.1", + "from": "lodash.repeat@^3.0.0", + "resolved": "https://registry.npmjs.org/lodash.repeat/-/lodash.repeat-3.0.1.tgz" + } + } + } + } + } + } + } + } + }, + "request": { + "version": "2.67.0", + "from": "request@2.x", + "resolved": "https://registry.npmjs.org/request/-/request-2.67.0.tgz", + "dependencies": { + "bl": { + "version": "1.0.0", + "from": "bl@~1.0.0", + "resolved": "https://registry.npmjs.org/bl/-/bl-1.0.0.tgz", + "dependencies": { + "readable-stream": { + "version": "2.0.4", + "from": "readable-stream@~2.0.0", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.0.4.tgz", + "dependencies": { + "core-util-is": { + "version": "1.0.2", + "from": "core-util-is@~1.0.0", + "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz" + }, + "inherits": { + "version": "2.0.1", + "from": "inherits@~2.0.1", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.1.tgz" + }, + "isarray": { + "version": "0.0.1", + "from": "isarray@0.0.1", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz" + }, + "process-nextick-args": { + "version": "1.0.3", + "from": "process-nextick-args@~1.0.0", + "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-1.0.3.tgz" + }, + "string_decoder": { + "version": "0.10.31", + "from": "string_decoder@~0.10.x", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz" + }, + "util-deprecate": { + "version": "1.0.2", + "from": "util-deprecate@~1.0.1", + "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz" } } } } }, - "json-stringify-safe": { - "version": "5.0.0", - "from": "json-stringify-safe@~5.0.0", - "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.0.tgz" + "caseless": { + "version": "0.11.0", + "from": "caseless@~0.11.0", + "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.11.0.tgz" }, - "mime-types": { - "version": "1.0.2", - "from": "mime-types@~1.0.1", - "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-1.0.2.tgz" + "extend": { + "version": "3.0.0", + "from": "extend@~3.0.0", + "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.0.tgz" }, - "node-uuid": { - "version": "1.4.2", - "from": "node-uuid@~1.4.0", - "resolved": "https://registry.npmjs.org/node-uuid/-/node-uuid-1.4.2.tgz" + "forever-agent": { + "version": "0.6.1", + "from": "forever-agent@~0.6.1", + "resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz" }, - "qs": { - "version": "2.3.3", - "from": "qs@~2.3.1", - "resolved": "https://registry.npmjs.org/qs/-/qs-2.3.3.tgz" - }, - "tunnel-agent": { - "version": "0.4.0", - "from": "tunnel-agent@~0.4.0", - "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.4.0.tgz" - }, - "tough-cookie": { - "version": "0.12.1", - "from": "tough-cookie@>=0.12.0", - "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-0.12.1.tgz", + "form-data": { + "version": "1.0.0-rc3", + "from": "form-data@~1.0.0-rc3", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-1.0.0-rc3.tgz", "dependencies": { - "punycode": { - "version": "1.3.2", - "from": "punycode@>=0.2.0", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.3.2.tgz" + "async": { + "version": "1.5.0", + "from": "async@^1.4.0", + "resolved": "https://registry.npmjs.org/async/-/async-1.5.0.tgz" } } }, + "json-stringify-safe": { + "version": "5.0.1", + "from": "json-stringify-safe@~5.0.1", + "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz" + }, + "mime-types": { + "version": "2.1.7", + "from": "mime-types@~2.1.7", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.7.tgz", + "dependencies": { + "mime-db": { + "version": "1.19.0", + "from": "mime-db@~1.19.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.19.0.tgz" + } + } + }, + "node-uuid": { + "version": "1.4.7", + "from": "node-uuid@~1.4.7", + "resolved": "https://registry.npmjs.org/node-uuid/-/node-uuid-1.4.7.tgz" + }, + "qs": { + "version": "5.2.0", + "from": "qs@~5.2.0", + "resolved": "https://registry.npmjs.org/qs/-/qs-5.2.0.tgz" + }, + "tunnel-agent": { + "version": "0.4.1", + "from": "tunnel-agent@~0.4.1", + "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.4.1.tgz" + }, + "tough-cookie": { + "version": "2.2.1", + "from": "tough-cookie@~2.2.0", + "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.2.1.tgz" + }, "http-signature": { - "version": "0.10.1", - "from": "http-signature@~0.10.0", - "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-0.10.1.tgz", + "version": "1.1.0", + "from": "http-signature@~1.1.0", + "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.1.0.tgz", "dependencies": { "assert-plus": { "version": "0.1.5", "from": "assert-plus@^0.1.5", "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-0.1.5.tgz" }, - "asn1": { - "version": "0.1.11", - "from": "asn1@0.1.11", - "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.1.11.tgz" + "jsprim": { + "version": "1.2.2", + "from": "jsprim@^1.2.2", + "resolved": "https://registry.npmjs.org/jsprim/-/jsprim-1.2.2.tgz", + "dependencies": { + "extsprintf": { + "version": "1.0.2", + "from": "extsprintf@1.0.2", + "resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.0.2.tgz" + }, + "json-schema": { + "version": "0.2.2", + "from": "json-schema@0.2.2", + "resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.2.2.tgz" + }, + "verror": { + "version": "1.3.6", + "from": "verror@1.3.6", + "resolved": "https://registry.npmjs.org/verror/-/verror-1.3.6.tgz" + } + } }, - "ctype": { - "version": "0.5.3", - "from": "ctype@0.5.3", - "resolved": "https://registry.npmjs.org/ctype/-/ctype-0.5.3.tgz" + "sshpk": { + "version": "1.7.0", + "from": "sshpk@^1.7.0", + "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.7.0.tgz", + "dependencies": { + "asn1": { + "version": "0.2.3", + "from": "asn1@>=0.2.3 <0.3.0", + "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.3.tgz" + }, + "assert-plus": { + "version": "0.2.0", + "from": "assert-plus@>=0.2.0 <0.3.0", + "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-0.2.0.tgz" + }, + "dashdash": { + "version": "1.10.1", + "from": "dashdash@>=1.10.1 <2.0.0", + "resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.10.1.tgz", + "dependencies": { + "assert-plus": { + "version": "0.1.5", + "from": "assert-plus@0.1.x", + "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-0.1.5.tgz" + } + } + }, + "jsbn": { + "version": "0.1.0", + "from": "jsbn@>=0.1.0 <0.2.0", + "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.0.tgz" + }, + "tweetnacl": { + "version": "0.13.2", + "from": "tweetnacl@>=0.13.0 <1.0.0", + "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.13.2.tgz" + }, + "jodid25519": { + "version": "1.0.2", + "from": "jodid25519@>=1.0.0 <2.0.0", + "resolved": "https://registry.npmjs.org/jodid25519/-/jodid25519-1.0.2.tgz" + }, + "ecc-jsbn": { + "version": "0.1.1", + "from": "ecc-jsbn@>=0.0.1 <1.0.0", + "resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.1.tgz" + } + } } } }, "oauth-sign": { - "version": "0.5.0", - "from": "oauth-sign@~0.5.0", - "resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.5.0.tgz" + "version": "0.8.0", + "from": "oauth-sign@~0.8.0", + "resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.8.0.tgz" }, "hawk": { - "version": "1.1.1", - "from": "hawk@1.1.1", - "resolved": "https://registry.npmjs.org/hawk/-/hawk-1.1.1.tgz", + "version": "3.1.2", + "from": "hawk@~3.1.0", + "resolved": "https://registry.npmjs.org/hawk/-/hawk-3.1.2.tgz", "dependencies": { "hoek": { - "version": "0.9.1", - "from": "hoek@0.9.x", - "resolved": "https://registry.npmjs.org/hoek/-/hoek-0.9.1.tgz" + "version": "2.16.3", + "from": "hoek@2.x.x", + "resolved": "https://registry.npmjs.org/hoek/-/hoek-2.16.3.tgz" }, "boom": { - "version": "0.4.2", - "from": "boom@0.4.x", - "resolved": "https://registry.npmjs.org/boom/-/boom-0.4.2.tgz" + "version": "2.10.1", + "from": "boom@2.x.x", + "resolved": "https://registry.npmjs.org/boom/-/boom-2.10.1.tgz" }, "cryptiles": { - "version": "0.2.2", - "from": "cryptiles@0.2.x", - "resolved": "https://registry.npmjs.org/cryptiles/-/cryptiles-0.2.2.tgz" + "version": "2.0.5", + "from": "cryptiles@2.x.x", + "resolved": "https://registry.npmjs.org/cryptiles/-/cryptiles-2.0.5.tgz" }, "sntp": { - "version": "0.2.4", - "from": "sntp@0.2.x", - "resolved": "https://registry.npmjs.org/sntp/-/sntp-0.2.4.tgz" + "version": "1.0.9", + "from": "sntp@1.x.x", + "resolved": "https://registry.npmjs.org/sntp/-/sntp-1.0.9.tgz" } } }, "aws-sign2": { - "version": "0.5.0", - "from": "aws-sign2@~0.5.0", - "resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.5.0.tgz" + "version": "0.6.0", + "from": "aws-sign2@~0.6.0", + "resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.6.0.tgz" }, "stringstream": { - "version": "0.0.4", + "version": "0.0.5", "from": "stringstream@~0.0.4", - "resolved": "https://registry.npmjs.org/stringstream/-/stringstream-0.0.4.tgz" + "resolved": "https://registry.npmjs.org/stringstream/-/stringstream-0.0.5.tgz" }, "combined-stream": { - "version": "0.0.7", - "from": "combined-stream@~0.0.5", - "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-0.0.7.tgz", + "version": "1.0.5", + "from": "combined-stream@~1.0.5", + "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.5.tgz", "dependencies": { "delayed-stream": { - "version": "0.0.5", - "from": "delayed-stream@0.0.5", - "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-0.0.5.tgz" + "version": "1.0.0", + "from": "delayed-stream@~1.0.0", + "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz" + } + } + }, + "isstream": { + "version": "0.1.2", + "from": "isstream@~0.1.2", + "resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz" + }, + "is-typedarray": { + "version": "1.0.0", + "from": "is-typedarray@~1.0.0", + "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz" + }, + "har-validator": { + "version": "2.0.3", + "from": "har-validator@~2.0.2", + "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-2.0.3.tgz", + "dependencies": { + "chalk": { + "version": "1.1.1", + "from": "chalk@^1.1.1", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.1.tgz", + "dependencies": { + "ansi-styles": { + "version": "2.1.0", + "from": "ansi-styles@^2.1.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.1.0.tgz" + }, + "escape-string-regexp": { + "version": "1.0.3", + "from": "escape-string-regexp@^1.0.2", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.3.tgz" + }, + "has-ansi": { + "version": "2.0.0", + "from": "has-ansi@^2.0.0", + "resolved": "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz", + "dependencies": { + "ansi-regex": { + "version": "2.0.0", + "from": "ansi-regex@^2.0.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.0.0.tgz" + } + } + }, + "strip-ansi": { + "version": "3.0.0", + "from": "strip-ansi@^3.0.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.0.tgz", + "dependencies": { + "ansi-regex": { + "version": "2.0.0", + "from": "ansi-regex@^2.0.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.0.0.tgz" + } + } + }, + "supports-color": { + "version": "2.0.0", + "from": "supports-color@^2.0.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz" + } + } + }, + "commander": { + "version": "2.9.0", + "from": "commander@^2.9.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.9.0.tgz", + "dependencies": { + "graceful-readlink": { + "version": "1.0.1", + "from": "graceful-readlink@>= 1.0.0", + "resolved": "https://registry.npmjs.org/graceful-readlink/-/graceful-readlink-1.0.1.tgz" + } + } + }, + "is-my-json-valid": { + "version": "2.12.3", + "from": "is-my-json-valid@^2.12.3", + "resolved": "https://registry.npmjs.org/is-my-json-valid/-/is-my-json-valid-2.12.3.tgz", + "dependencies": { + "generate-function": { + "version": "2.0.0", + "from": "generate-function@^2.0.0", + "resolved": "https://registry.npmjs.org/generate-function/-/generate-function-2.0.0.tgz" + }, + "generate-object-property": { + "version": "1.2.0", + "from": "generate-object-property@^1.1.0", + "resolved": "https://registry.npmjs.org/generate-object-property/-/generate-object-property-1.2.0.tgz", + "dependencies": { + "is-property": { + "version": "1.0.2", + "from": "is-property@^1.0.0", + "resolved": "https://registry.npmjs.org/is-property/-/is-property-1.0.2.tgz" + } + } + }, + "jsonpointer": { + "version": "2.0.0", + "from": "jsonpointer@2.0.0", + "resolved": "https://registry.npmjs.org/jsonpointer/-/jsonpointer-2.0.0.tgz" + }, + "xtend": { + "version": "4.0.1", + "from": "xtend@^4.0.0", + "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.1.tgz" + } + } + }, + "pinkie-promise": { + "version": "2.0.0", + "from": "pinkie-promise@^2.0.0", + "resolved": "https://registry.npmjs.org/pinkie-promise/-/pinkie-promise-2.0.0.tgz", + "dependencies": { + "pinkie": { + "version": "2.0.1", + "from": "pinkie@^2.0.0", + "resolved": "https://registry.npmjs.org/pinkie/-/pinkie-2.0.1.tgz" + } + } } } } } }, "semver": { - "version": "4.2.0", - "from": "semver@~4.2.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-4.2.0.tgz" + "version": "5.1.0", + "from": "semver@~5.1.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.1.0.tgz" }, "tar": { - "version": "1.0.3", - "from": "tar@~1.0.2", - "resolved": "https://registry.npmjs.org/tar/-/tar-1.0.3.tgz", + "version": "2.2.1", + "from": "tar@~2.2.0", + "resolved": "https://registry.npmjs.org/tar/-/tar-2.2.1.tgz", "dependencies": { "block-stream": { - "version": "0.0.7", + "version": "0.0.8", "from": "block-stream@*", - "resolved": "https://registry.npmjs.org/block-stream/-/block-stream-0.0.7.tgz" + "resolved": "https://registry.npmjs.org/block-stream/-/block-stream-0.0.8.tgz" }, "fstream": { - "version": "1.0.3", + "version": "1.0.8", "from": "fstream@^1.0.2", - "resolved": "https://registry.npmjs.org/fstream/-/fstream-1.0.3.tgz", + "resolved": "https://registry.npmjs.org/fstream/-/fstream-1.0.8.tgz", "dependencies": { "graceful-fs": { - "version": "3.0.5", - "from": "graceful-fs@3", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-3.0.5.tgz" + "version": "4.1.2", + "from": "graceful-fs@^4.1.2", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.2.tgz" } } }, @@ -2390,10 +2697,15 @@ } }, "tar-pack": { - "version": "2.0.0", - "from": "tar-pack@~2.0.0", - "resolved": "https://registry.npmjs.org/tar-pack/-/tar-pack-2.0.0.tgz", + "version": "3.1.0", + "from": "tar-pack@~3.1.0", + "resolved": "https://registry.npmjs.org/tar-pack/-/tar-pack-3.1.0.tgz", "dependencies": { + "graceful-fs": { + "version": "4.1.2", + "from": "graceful-fs@4.1", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.2.tgz" + }, "uid-number": { "version": "0.0.3", "from": "uid-number@0.0.3", @@ -2409,16 +2721,16 @@ "from": "debug@~0.7.2", "resolved": "https://registry.npmjs.org/debug/-/debug-0.7.4.tgz" }, + "rimraf": { + "version": "2.2.8", + "from": "rimraf@~2.2.0", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.2.8.tgz" + }, "fstream": { - "version": "0.1.31", - "from": "fstream@~0.1.22", - "resolved": "https://registry.npmjs.org/fstream/-/fstream-0.1.31.tgz", + "version": "1.0.8", + "from": "fstream@^1.0.2", + "resolved": "https://registry.npmjs.org/fstream/-/fstream-1.0.8.tgz", "dependencies": { - "graceful-fs": { - "version": "3.0.5", - "from": "graceful-fs@3", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-3.0.5.tgz" - }, "inherits": { "version": "2.0.1", "from": "inherits@~2.0.0", @@ -2426,49 +2738,39 @@ } } }, - "tar": { - "version": "0.1.20", - "from": "tar@~0.1.17", - "resolved": "https://registry.npmjs.org/tar/-/tar-0.1.20.tgz", + "fstream-ignore": { + "version": "1.0.3", + "from": "fstream-ignore@~1.0.3", + "resolved": "https://registry.npmjs.org/fstream-ignore/-/fstream-ignore-1.0.3.tgz", "dependencies": { - "block-stream": { - "version": "0.0.7", - "from": "block-stream@*", - "resolved": "https://registry.npmjs.org/block-stream/-/block-stream-0.0.7.tgz" - }, "inherits": { "version": "2.0.1", "from": "inherits@2", "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.1.tgz" - } - } - }, - "fstream-ignore": { - "version": "0.0.7", - "from": "fstream-ignore@0.0.7", - "resolved": "https://registry.npmjs.org/fstream-ignore/-/fstream-ignore-0.0.7.tgz", - "dependencies": { + }, "minimatch": { - "version": "0.2.14", - "from": "minimatch@~0.2.0", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-0.2.14.tgz", + "version": "3.0.0", + "from": "minimatch@^3.0.0", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.0.tgz", "dependencies": { - "lru-cache": { - "version": "2.5.0", - "from": "lru-cache@2", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-2.5.0.tgz" - }, - "sigmund": { - "version": "1.0.0", - "from": "sigmund@~1.0.0", - "resolved": "https://registry.npmjs.org/sigmund/-/sigmund-1.0.0.tgz" + "brace-expansion": { + "version": "1.1.1", + "from": "brace-expansion@^1.0.0", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.1.tgz", + "dependencies": { + "balanced-match": { + "version": "0.2.1", + "from": "balanced-match@^0.2.0", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-0.2.1.tgz" + }, + "concat-map": { + "version": "0.0.1", + "from": "concat-map@0.0.1", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz" + } + } } } - }, - "inherits": { - "version": "2.0.1", - "from": "inherits@2", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.1.tgz" } } }, @@ -2478,9 +2780,9 @@ "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.0.33.tgz", "dependencies": { "core-util-is": { - "version": "1.0.1", + "version": "1.0.2", "from": "core-util-is@~1.0.0", - "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.1.tgz" + "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz" }, "isarray": { "version": "0.0.1", @@ -2498,18 +2800,13 @@ "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.1.tgz" } } - }, - "graceful-fs": { - "version": "1.2.3", - "from": "graceful-fs@1.2", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-1.2.3.tgz" } } }, "mkdirp": { - "version": "0.5.0", + "version": "0.5.1", "from": "mkdirp@~0.5.0", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.0.tgz", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz", "dependencies": { "minimist": { "version": "0.0.8", @@ -2519,36 +2816,103 @@ } }, "rc": { - "version": "0.5.5", - "from": "rc@~0.5.1", - "resolved": "https://registry.npmjs.org/rc/-/rc-0.5.5.tgz", + "version": "1.1.5", + "from": "rc@~1.1.0", + "resolved": "https://registry.npmjs.org/rc/-/rc-1.1.5.tgz", "dependencies": { - "minimist": { - "version": "0.0.10", - "from": "minimist@~0.0.7", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.10.tgz" - }, "deep-extend": { - "version": "0.2.11", - "from": "deep-extend@~0.2.5", - "resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.2.11.tgz" - }, - "strip-json-comments": { - "version": "0.1.3", - "from": "strip-json-comments@0.1.x", - "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-0.1.3.tgz" + "version": "0.4.0", + "from": "deep-extend@~0.4.0", + "resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.4.0.tgz" }, "ini": { - "version": "1.3.2", + "version": "1.3.4", "from": "ini@~1.3.0", - "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.2.tgz" + "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.4.tgz" + }, + "minimist": { + "version": "1.2.0", + "from": "minimist@^1.2.0", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz" + }, + "strip-json-comments": { + "version": "1.0.4", + "from": "strip-json-comments@~1.0.4", + "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-1.0.4.tgz" } } }, "rimraf": { - "version": "2.2.8", - "from": "rimraf@~2.2.8", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.2.8.tgz" + "version": "2.4.4", + "from": "rimraf@~2.4.0", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.4.4.tgz", + "dependencies": { + "glob": { + "version": "5.0.15", + "from": "glob@^5.0.14", + "resolved": "https://registry.npmjs.org/glob/-/glob-5.0.15.tgz", + "dependencies": { + "inflight": { + "version": "1.0.4", + "from": "inflight@^1.0.4", + "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.4.tgz", + "dependencies": { + "wrappy": { + "version": "1.0.1", + "from": "wrappy@1", + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.1.tgz" + } + } + }, + "inherits": { + "version": "2.0.1", + "from": "inherits@2", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.1.tgz" + }, + "minimatch": { + "version": "3.0.0", + "from": "minimatch@2 || 3", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.0.tgz", + "dependencies": { + "brace-expansion": { + "version": "1.1.1", + "from": "brace-expansion@^1.0.0", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.1.tgz", + "dependencies": { + "balanced-match": { + "version": "0.2.1", + "from": "balanced-match@^0.2.0", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-0.2.1.tgz" + }, + "concat-map": { + "version": "0.0.1", + "from": "concat-map@0.0.1", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz" + } + } + } + } + }, + "once": { + "version": "1.3.3", + "from": "once@^1.3.0", + "resolved": "https://registry.npmjs.org/once/-/once-1.3.3.tgz", + "dependencies": { + "wrappy": { + "version": "1.0.1", + "from": "wrappy@1", + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.1.tgz" + } + } + }, + "path-is-absolute": { + "version": "1.0.0", + "from": "path-is-absolute@^1.0.0", + "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.0.tgz" + } + } + } + } } } } diff --git a/package.json b/package.json index 0dda7dcd..7f539bef 100644 --- a/package.json +++ b/package.json @@ -29,7 +29,7 @@ "node-statsd": "~0.0.7", "underscore" : "~1.6.0", "dot": "~1.0.2", - "windshaft": "https://github.com/CartoDB/Windshaft/tarball/mapconfig-extension", + "windshaft": "https://github.com/CartoDB/Windshaft/tarball/master", "step": "~0.0.6", "queue-async": "~1.0.7", "request": "~2.62.0", From 1eb69ae3d1f3b3efe1ff1a43b99dc25b1712e04d Mon Sep 17 00:00:00 2001 From: Raul Ochoa Date: Fri, 15 Jan 2016 16:02:02 +0100 Subject: [PATCH 35/40] Remove make target to update windshaft --- Makefile | 4 ---- 1 file changed, 4 deletions(-) diff --git a/Makefile b/Makefile index 7a424cc7..98454b25 100644 --- a/Makefile +++ b/Makefile @@ -9,10 +9,6 @@ all: clean: rm -rf node_modules/* -update-windshaft: - rm -rf node_modules/windshaft - npm install windshaft - distclean: clean rm config.status* From 3afb7a0eb3961c6032b762119234ffc007bdbc33 Mon Sep 17 00:00:00 2001 From: Raul Ochoa Date: Fri, 15 Jan 2016 17:02:09 +0100 Subject: [PATCH 36/40] Adds some notes about unsupported endpoints --- lib/cartodb/controllers/layergroup.js | 2 ++ lib/cartodb/controllers/map.js | 3 +-- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/lib/cartodb/controllers/layergroup.js b/lib/cartodb/controllers/layergroup.js index e1d56fb2..0a7e7698 100644 --- a/lib/cartodb/controllers/layergroup.js +++ b/lib/cartodb/controllers/layergroup.js @@ -69,6 +69,8 @@ LayergroupController.prototype.register = function(app) { '/static/bbox/:token/:west,:south,:east,:north/:width/:height.:format', cors(), userMiddleware, this.bbox.bind(this)); + // Undocumented/non-supported API endpoint methods. + // Use at your own peril. app.get(app.base_url_mapconfig + '/:token/:layer/widget/:widgetName', cors(), userMiddleware, this.widget.bind(this)); diff --git a/lib/cartodb/controllers/map.js b/lib/cartodb/controllers/map.js index 117bb62d..9fad27f6 100644 --- a/lib/cartodb/controllers/map.js +++ b/lib/cartodb/controllers/map.js @@ -306,6 +306,7 @@ MapController.prototype.afterLayergroupCreate = function(req, res, mapconfig, la layergroup.layergroupid = layergroup.layergroupid + ':' + result.lastUpdatedTime; layergroup.last_updated = new Date(result.lastUpdatedTime).toISOString(); + // TODO this should take into account several URL patterns addWidgetsUrl(username, layergroup); if (req.method === 'GET') { @@ -329,8 +330,6 @@ MapController.prototype.afterLayergroupCreate = function(req, res, mapconfig, la function addWidgetsUrl(username, layergroup) { -// global.environment.serverMetadata - if (layergroup.metadata && Array.isArray(layergroup.metadata.layers)) { layergroup.metadata.layers = layergroup.metadata.layers.map(function(layer, layerIndex) { if (layer.widgets) { From e00661aa34447c746df0ba3f4d53e9991289255e Mon Sep 17 00:00:00 2001 From: Raul Ochoa Date: Fri, 15 Jan 2016 17:17:20 +0100 Subject: [PATCH 37/40] Remove substitution tokens in attributes service test --- .../ported/multilayer_error_cases.js | 40 ------------------- 1 file changed, 40 deletions(-) diff --git a/test/acceptance/ported/multilayer_error_cases.js b/test/acceptance/ported/multilayer_error_cases.js index 2434900d..11c11e63 100644 --- a/test/acceptance/ported/multilayer_error_cases.js +++ b/test/acceptance/ported/multilayer_error_cases.js @@ -64,46 +64,6 @@ describe('multilayer error cases', function() { }); }); - // See https://github.com/CartoDB/Windshaft/issues/154 - it("mapnik tokens cannot be used with attributes service", function(done) { - var layergroup = { - version: '1.1.0', - layers: [ - { options: { - sql: 'select cartodb_id, 1 as n, the_geom, !bbox! as b from test_table limit 1', - cartocss: '#layer { marker-fill:red }', - cartocss_version: '2.0.1', - attributes: { id:'cartodb_id', columns:['n'] }, - geom_column: 'the_geom' - } } - ] - }; - step( - function do_post() - { - var next = this; - assert.response(server, { - url: '/database/windshaft_test/layergroup', - method: 'POST', - headers: {'Content-Type': 'application/json; charset=utf-8' }, - data: JSON.stringify(layergroup) - }, {}, function(res, err) { next(err, res); }); - }, - function do_check(err, res) { - assert.equal(res.statusCode, 400, res.body); - var parsed = JSON.parse(res.body); - assert.ok(parsed.errors); - assert.equal(parsed.errors.length, 1); - var msg = parsed.errors[0]; - assert.ok(msg.match(/Attribute service cannot be activated/), msg); - return null; - }, - function finish(err) { - done(err); - } - ); - }); - it("layergroup with no cartocss_version", function(done) { var layergroup = { version: '1.0.0', From d3f5b03f13ebb9cae31b853a10c70c9431aebe14 Mon Sep 17 00:00:00 2001 From: Raul Ochoa Date: Fri, 15 Jan 2016 17:25:09 +0100 Subject: [PATCH 38/40] Validate current torque metadata keys --- test/acceptance/ported/torque.js | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/test/acceptance/ported/torque.js b/test/acceptance/ported/torque.js index 3d2d9d5a..2784a825 100644 --- a/test/acceptance/ported/torque.js +++ b/test/acceptance/ported/torque.js @@ -216,8 +216,10 @@ describe('torque', function() { assert.ok(tm0, 'No layer 0 in "torque" in metadata:' + JSON.stringify(tm)); var expectedTorqueMetadata = {"start":0,"end":86400000,"data_steps":2,"column_type":"date"}; - assert.deepEqual(tm0, expectedTorqueMetadata); - assert.deepEqual(meta.layers[0].meta, expectedTorqueMetadata); + Object.keys(expectedTorqueMetadata).forEach(function(k) { + assert.equal(tm0[k], expectedTorqueMetadata[k]); + assert.equal(meta.layers[0].meta[k], expectedTorqueMetadata[k]); + }); return null; }, function do_get_tile(err) From 30e479094fffd5025f591892b69bd4f43e2a74fd Mon Sep 17 00:00:00 2001 From: Raul Ochoa Date: Mon, 18 Jan 2016 14:08:01 +0100 Subject: [PATCH 39/40] Fix tests for windshaft master --- test/acceptance/widgets.js | 23 +++++++++++------------ 1 file changed, 11 insertions(+), 12 deletions(-) diff --git a/test/acceptance/widgets.js b/test/acceptance/widgets.js index 6c67bad5..2f4483f5 100644 --- a/test/acceptance/widgets.js +++ b/test/acceptance/widgets.js @@ -26,7 +26,7 @@ describe('widgets', function() { function getWidget(mapConfig, widgetName, params, callback) { if (!callback) { callback = params; - params = null; + params = {}; } var url = '/api/v1/map'; @@ -77,7 +77,7 @@ describe('widgets', function() { layergroupId = _layergroupId; var urlParams = { - own_filter: 1 + own_filter: params.hasOwnProperty('own_filter') ? params.own_filter : 1 }; if (params && params.bbox) { urlParams.bbox = params.bbox; @@ -219,13 +219,13 @@ describe('widgets', function() { }; it("should expose an aggregation", function(done) { - getWidget(aggregationMapConfig, 'country_places_count', function(err, res) { + getWidget(aggregationMapConfig, 'country_places_count', { own_filter: 0 }, function(err, res) { if (err) { return done(err); } var aggregation = JSON.parse(res.body); - assert.equal(aggregation.categories.length, 12); + assert.equal(aggregation.categories.length, 6); assert.deepEqual(aggregation.categories[0], { value: 769, category: 'USA', agg: false }); done(); @@ -277,8 +277,8 @@ describe('widgets', function() { ] }; - it("should expose an aggregation", function(done) { - getWidget(histogramMapConfig, 'country_places_histogram', function(err, res) { + it("should expose an histogram", function(done) { + getWidget(histogramMapConfig, 'country_places_histogram', { own_filter: 0 }, function(err, res) { if (err) { return done(err); } @@ -287,7 +287,7 @@ describe('widgets', function() { // notice min value assert.deepEqual( histogram.bins[0], - { bin:0, start:0, end:3567600, freq:7229, min:0, max:3917000 } + { bin: 0, freq: 6497, min: 0, max: 742572, avg: 113511.16823149147 } ); done(); @@ -313,11 +313,10 @@ describe('widgets', function() { // notice min value assert.deepEqual(histogram.bins[0], { bin: 0, - start: 4009000, - end: 11925750, - freq: 75, - min: 4009000, - max: 13485000 + freq: 62, + min: 4000000, + max: 9276403, + avg: 5815009.596774193 }); done(); From b5b881e66214ac2342cb023b8c1e538cb9c8c518 Mon Sep 17 00:00:00 2001 From: Raul Ochoa Date: Mon, 18 Jan 2016 14:23:45 +0100 Subject: [PATCH 40/40] Regenerate npm-shrinkwrap.json --- npm-shrinkwrap.json | 983 +++++++++++++++++++++++++++++++------------- 1 file changed, 699 insertions(+), 284 deletions(-) diff --git a/npm-shrinkwrap.json b/npm-shrinkwrap.json index a28c0269..94d2ec34 100644 --- a/npm-shrinkwrap.json +++ b/npm-shrinkwrap.json @@ -3,14 +3,14 @@ "version": "2.19.2", "dependencies": { "body-parser": { - "version": "1.14.1", + "version": "1.14.2", "from": "body-parser@~1.14.0", - "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.14.1.tgz", + "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.14.2.tgz", "dependencies": { "bytes": { - "version": "2.1.0", - "from": "bytes@2.1.0", - "resolved": "https://registry.npmjs.org/bytes/-/bytes-2.1.0.tgz" + "version": "2.2.0", + "from": "bytes@2.2.0", + "resolved": "https://registry.npmjs.org/bytes/-/bytes-2.2.0.tgz" }, "content-type": { "version": "1.0.1", @@ -40,9 +40,9 @@ } }, "iconv-lite": { - "version": "0.4.12", - "from": "iconv-lite@0.4.12", - "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.12.tgz" + "version": "0.4.13", + "from": "iconv-lite@0.4.13", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.13.tgz" }, "on-finished": { "version": "2.3.0", @@ -57,14 +57,14 @@ } }, "qs": { - "version": "5.1.0", - "from": "qs@5.1.0", - "resolved": "https://registry.npmjs.org/qs/-/qs-5.1.0.tgz" + "version": "5.2.0", + "from": "qs@5.2.0", + "resolved": "https://registry.npmjs.org/qs/-/qs-5.2.0.tgz" }, "raw-body": { - "version": "2.1.4", - "from": "raw-body@~2.1.4", - "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.1.4.tgz", + "version": "2.1.5", + "from": "raw-body@~2.1.5", + "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.1.5.tgz", "dependencies": { "unpipe": { "version": "1.0.0", @@ -74,9 +74,9 @@ } }, "type-is": { - "version": "1.6.9", - "from": "type-is@~1.6.9", - "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.9.tgz", + "version": "1.6.10", + "from": "type-is@~1.6.6", + "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.10.tgz", "dependencies": { "media-typer": { "version": "0.3.0", @@ -84,14 +84,14 @@ "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz" }, "mime-types": { - "version": "2.1.7", - "from": "mime-types@~2.1.7", - "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.7.tgz", + "version": "2.1.9", + "from": "mime-types@~2.1.8", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.9.tgz", "dependencies": { "mime-db": { - "version": "1.19.0", - "from": "mime-db@~1.19.0", - "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.19.0.tgz" + "version": "1.21.0", + "from": "mime-db@~1.21.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.21.0.tgz" } } } @@ -191,14 +191,14 @@ "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.2.13.tgz", "dependencies": { "mime-types": { - "version": "2.1.7", - "from": "mime-types@~2.1.7", - "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.7.tgz", + "version": "2.1.9", + "from": "mime-types@~2.1.6", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.9.tgz", "dependencies": { "mime-db": { - "version": "1.19.0", - "from": "mime-db@~1.19.0", - "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.19.0.tgz" + "version": "1.21.0", + "from": "mime-db@~1.21.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.21.0.tgz" } } }, @@ -272,9 +272,9 @@ "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.0.tgz" }, "methods": { - "version": "1.1.1", + "version": "1.1.2", "from": "methods@~1.1.1", - "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.1.tgz" + "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz" }, "on-finished": { "version": "2.3.0", @@ -289,9 +289,9 @@ } }, "parseurl": { - "version": "1.3.0", + "version": "1.3.1", "from": "parseurl@~1.3.0", - "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.0.tgz" + "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.1.tgz" }, "path-to-regexp": { "version": "0.1.7", @@ -299,9 +299,9 @@ "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz" }, "proxy-addr": { - "version": "1.0.8", + "version": "1.0.10", "from": "proxy-addr@~1.0.8", - "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-1.0.8.tgz", + "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-1.0.10.tgz", "dependencies": { "forwarded": { "version": "0.1.0", @@ -309,9 +309,9 @@ "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.1.0.tgz" }, "ipaddr.js": { - "version": "1.0.1", - "from": "ipaddr.js@1.0.1", - "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.0.1.tgz" + "version": "1.0.5", + "from": "ipaddr.js@1.0.5", + "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.0.5.tgz" } } }, @@ -365,14 +365,65 @@ } }, "serve-static": { - "version": "1.10.0", + "version": "1.10.1", "from": "serve-static@~1.10.0", - "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.10.0.tgz" + "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.10.1.tgz", + "dependencies": { + "escape-html": { + "version": "1.0.3", + "from": "escape-html@~1.0.3", + "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz" + }, + "send": { + "version": "0.13.1", + "from": "send@0.13.1", + "resolved": "https://registry.npmjs.org/send/-/send-0.13.1.tgz", + "dependencies": { + "depd": { + "version": "1.1.0", + "from": "depd@~1.1.0", + "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.0.tgz" + }, + "destroy": { + "version": "1.0.4", + "from": "destroy@~1.0.4", + "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.0.4.tgz" + }, + "http-errors": { + "version": "1.3.1", + "from": "http-errors@~1.3.1", + "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.3.1.tgz", + "dependencies": { + "inherits": { + "version": "2.0.1", + "from": "inherits@~2.0.1", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.1.tgz" + } + } + }, + "mime": { + "version": "1.3.4", + "from": "mime@1.3.4", + "resolved": "https://registry.npmjs.org/mime/-/mime-1.3.4.tgz" + }, + "ms": { + "version": "0.7.1", + "from": "ms@0.7.1", + "resolved": "https://registry.npmjs.org/ms/-/ms-0.7.1.tgz" + }, + "statuses": { + "version": "1.2.1", + "from": "statuses@~1.2.1", + "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.2.1.tgz" + } + } + } + } }, "type-is": { - "version": "1.6.9", + "version": "1.6.10", "from": "type-is@~1.6.6", - "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.9.tgz", + "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.10.tgz", "dependencies": { "media-typer": { "version": "0.3.0", @@ -380,14 +431,14 @@ "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz" }, "mime-types": { - "version": "2.1.7", - "from": "mime-types@~2.1.7", - "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.7.tgz", + "version": "2.1.9", + "from": "mime-types@~2.1.6", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.9.tgz", "dependencies": { "mime-db": { - "version": "1.19.0", - "from": "mime-db@~1.19.0", - "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.19.0.tgz" + "version": "1.21.0", + "from": "mime-db@~1.21.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.21.0.tgz" } } } @@ -522,9 +573,9 @@ "resolved": "https://registry.npmjs.org/bl/-/bl-1.0.0.tgz", "dependencies": { "readable-stream": { - "version": "2.0.4", + "version": "2.0.5", "from": "readable-stream@~2.0.0", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.0.4.tgz", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.0.5.tgz", "dependencies": { "core-util-is": { "version": "1.0.2", @@ -542,9 +593,9 @@ "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz" }, "process-nextick-args": { - "version": "1.0.3", - "from": "process-nextick-args@~1.0.0", - "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-1.0.3.tgz" + "version": "1.0.6", + "from": "process-nextick-args@~1.0.6", + "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-1.0.6.tgz" }, "string_decoder": { "version": "0.10.31", @@ -581,9 +632,9 @@ "resolved": "https://registry.npmjs.org/form-data/-/form-data-1.0.0-rc3.tgz", "dependencies": { "async": { - "version": "1.5.0", - "from": "async@^1.4.0", - "resolved": "https://registry.npmjs.org/async/-/async-1.5.0.tgz" + "version": "1.5.2", + "from": "async@1.x", + "resolved": "https://registry.npmjs.org/async/-/async-1.5.2.tgz" } } }, @@ -593,14 +644,14 @@ "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz" }, "mime-types": { - "version": "2.1.7", - "from": "mime-types@~2.1.2", - "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.7.tgz", + "version": "2.1.9", + "from": "mime-types@~2.1.8", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.9.tgz", "dependencies": { "mime-db": { - "version": "1.19.0", - "from": "mime-db@~1.19.0", - "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.19.0.tgz" + "version": "1.21.0", + "from": "mime-db@~1.21.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.21.0.tgz" } } }, @@ -615,9 +666,9 @@ "resolved": "https://registry.npmjs.org/qs/-/qs-5.1.0.tgz" }, "tunnel-agent": { - "version": "0.4.1", + "version": "0.4.2", "from": "tunnel-agent@~0.4.0", - "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.4.1.tgz" + "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.4.2.tgz" }, "tough-cookie": { "version": "2.2.1", @@ -726,9 +777,9 @@ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.1.0.tgz" }, "escape-string-regexp": { - "version": "1.0.3", + "version": "1.0.4", "from": "escape-string-regexp@^1.0.2", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.3.tgz" + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.4.tgz" }, "has-ansi": { "version": "2.0.0", @@ -774,9 +825,9 @@ } }, "is-my-json-valid": { - "version": "2.12.3", + "version": "2.12.4", "from": "is-my-json-valid@^2.12.0", - "resolved": "https://registry.npmjs.org/is-my-json-valid/-/is-my-json-valid-2.12.3.tgz", + "resolved": "https://registry.npmjs.org/is-my-json-valid/-/is-my-json-valid-2.12.4.tgz", "dependencies": { "generate-function": { "version": "2.0.0", @@ -2129,63 +2180,60 @@ } }, "zipfile": { - "version": "0.5.7", + "version": "0.5.9", "from": "zipfile@~0.5.2", - "resolved": "https://registry.npmjs.org/zipfile/-/zipfile-0.5.7.tgz", + "resolved": "https://registry.npmjs.org/zipfile/-/zipfile-0.5.9.tgz", "dependencies": { "nan": { - "version": "1.5.3", - "from": "nan@~1.5.1", - "resolved": "https://registry.npmjs.org/nan/-/nan-1.5.3.tgz" + "version": "2.1.0", + "from": "nan@~2.1.0", + "resolved": "https://registry.npmjs.org/nan/-/nan-2.1.0.tgz" }, "node-pre-gyp": { - "version": "0.6.2", - "from": "node-pre-gyp@>=0.6.2 <0.7.0", - "resolved": "https://registry.npmjs.org/node-pre-gyp/-/node-pre-gyp-0.6.2.tgz", + "version": "0.6.17", + "from": "node-pre-gyp@~0.6.17", "dependencies": { "nopt": { - "version": "3.0.1", + "version": "3.0.6", "from": "nopt@~3.0.1", - "resolved": "https://registry.npmjs.org/nopt/-/nopt-3.0.1.tgz", + "resolved": "https://registry.npmjs.org/nopt/-/nopt-3.0.6.tgz", "dependencies": { "abbrev": { - "version": "1.0.5", + "version": "1.0.7", "from": "abbrev@1", - "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.0.5.tgz" + "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.0.7.tgz" } } }, "npmlog": { - "version": "0.1.1", - "from": "npmlog@~0.1.1", - "resolved": "https://registry.npmjs.org/npmlog/-/npmlog-0.1.1.tgz", + "version": "2.0.0", + "from": "npmlog@~2.0.0", + "resolved": "https://registry.npmjs.org/npmlog/-/npmlog-2.0.0.tgz", "dependencies": { "ansi": { "version": "0.3.0", "from": "ansi@~0.3.0", "resolved": "https://registry.npmjs.org/ansi/-/ansi-0.3.0.tgz" - } - } - }, - "request": { - "version": "2.51.0", - "from": "request@2.x", - "resolved": "https://registry.npmjs.org/request/-/request-2.51.0.tgz", - "dependencies": { - "bl": { - "version": "0.9.3", - "from": "bl@~0.9.0", - "resolved": "https://registry.npmjs.org/bl/-/bl-0.9.3.tgz", + }, + "are-we-there-yet": { + "version": "1.0.4", + "from": "are-we-there-yet@~1.0.0", + "resolved": "https://registry.npmjs.org/are-we-there-yet/-/are-we-there-yet-1.0.4.tgz", "dependencies": { + "delegates": { + "version": "0.1.0", + "from": "delegates@^0.1.0", + "resolved": "https://registry.npmjs.org/delegates/-/delegates-0.1.0.tgz" + }, "readable-stream": { - "version": "1.0.33", - "from": "readable-stream@~1.0.26", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.0.33.tgz", + "version": "1.1.13", + "from": "readable-stream@^1.1.13", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.1.13.tgz", "dependencies": { "core-util-is": { - "version": "1.0.1", + "version": "1.0.2", "from": "core-util-is@~1.0.0", - "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.1.tgz" + "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz" }, "isarray": { "version": "0.0.1", @@ -2206,179 +2254,489 @@ } } }, - "caseless": { - "version": "0.8.0", - "from": "caseless@~0.8.0", - "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.8.0.tgz" - }, - "forever-agent": { - "version": "0.5.2", - "from": "forever-agent@~0.5.0", - "resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.5.2.tgz" - }, - "form-data": { - "version": "0.2.0", - "from": "form-data@~0.2.0", - "resolved": "https://registry.npmjs.org/form-data/-/form-data-0.2.0.tgz", + "gauge": { + "version": "1.2.2", + "from": "gauge@~1.2.0", + "resolved": "https://registry.npmjs.org/gauge/-/gauge-1.2.2.tgz", "dependencies": { - "async": { - "version": "0.9.0", - "from": "async@~0.9.0", - "resolved": "https://registry.npmjs.org/async/-/async-0.9.0.tgz" + "has-unicode": { + "version": "1.0.1", + "from": "has-unicode@^1.0.0", + "resolved": "https://registry.npmjs.org/has-unicode/-/has-unicode-1.0.1.tgz" }, - "mime-types": { - "version": "2.0.7", - "from": "mime-types@~2.0.3", - "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.0.7.tgz", + "lodash.pad": { + "version": "3.1.1", + "from": "lodash.pad@^3.0.0", + "resolved": "https://registry.npmjs.org/lodash.pad/-/lodash.pad-3.1.1.tgz", "dependencies": { - "mime-db": { - "version": "1.5.0", - "from": "mime-db@~1.5.0", - "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.5.0.tgz" + "lodash._basetostring": { + "version": "3.0.1", + "from": "lodash._basetostring@^3.0.0", + "resolved": "https://registry.npmjs.org/lodash._basetostring/-/lodash._basetostring-3.0.1.tgz" + }, + "lodash._createpadding": { + "version": "3.6.1", + "from": "lodash._createpadding@^3.0.0", + "resolved": "https://registry.npmjs.org/lodash._createpadding/-/lodash._createpadding-3.6.1.tgz", + "dependencies": { + "lodash.repeat": { + "version": "3.0.1", + "from": "lodash.repeat@^3.0.0", + "resolved": "https://registry.npmjs.org/lodash.repeat/-/lodash.repeat-3.0.1.tgz" + } + } + } + } + }, + "lodash.padleft": { + "version": "3.1.1", + "from": "lodash.padleft@^3.0.0", + "resolved": "https://registry.npmjs.org/lodash.padleft/-/lodash.padleft-3.1.1.tgz", + "dependencies": { + "lodash._basetostring": { + "version": "3.0.1", + "from": "lodash._basetostring@^3.0.0", + "resolved": "https://registry.npmjs.org/lodash._basetostring/-/lodash._basetostring-3.0.1.tgz" + }, + "lodash._createpadding": { + "version": "3.6.1", + "from": "lodash._createpadding@^3.0.0", + "resolved": "https://registry.npmjs.org/lodash._createpadding/-/lodash._createpadding-3.6.1.tgz", + "dependencies": { + "lodash.repeat": { + "version": "3.0.1", + "from": "lodash.repeat@^3.0.0", + "resolved": "https://registry.npmjs.org/lodash.repeat/-/lodash.repeat-3.0.1.tgz" + } + } + } + } + }, + "lodash.padright": { + "version": "3.1.1", + "from": "lodash.padright@^3.0.0", + "resolved": "https://registry.npmjs.org/lodash.padright/-/lodash.padright-3.1.1.tgz", + "dependencies": { + "lodash._basetostring": { + "version": "3.0.1", + "from": "lodash._basetostring@^3.0.0", + "resolved": "https://registry.npmjs.org/lodash._basetostring/-/lodash._basetostring-3.0.1.tgz" + }, + "lodash._createpadding": { + "version": "3.6.1", + "from": "lodash._createpadding@^3.0.0", + "resolved": "https://registry.npmjs.org/lodash._createpadding/-/lodash._createpadding-3.6.1.tgz", + "dependencies": { + "lodash.repeat": { + "version": "3.0.1", + "from": "lodash.repeat@^3.0.0", + "resolved": "https://registry.npmjs.org/lodash.repeat/-/lodash.repeat-3.0.1.tgz" + } + } + } + } + } + } + } + } + }, + "request": { + "version": "2.67.0", + "from": "request@2.x", + "resolved": "https://registry.npmjs.org/request/-/request-2.67.0.tgz", + "dependencies": { + "bl": { + "version": "1.0.0", + "from": "bl@~1.0.0", + "resolved": "https://registry.npmjs.org/bl/-/bl-1.0.0.tgz", + "dependencies": { + "readable-stream": { + "version": "2.0.4", + "from": "readable-stream@~2.0.0", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.0.4.tgz", + "dependencies": { + "core-util-is": { + "version": "1.0.2", + "from": "core-util-is@~1.0.0", + "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz" + }, + "inherits": { + "version": "2.0.1", + "from": "inherits@~2.0.1", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.1.tgz" + }, + "isarray": { + "version": "0.0.1", + "from": "isarray@0.0.1", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz" + }, + "process-nextick-args": { + "version": "1.0.3", + "from": "process-nextick-args@~1.0.0", + "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-1.0.3.tgz" + }, + "string_decoder": { + "version": "0.10.31", + "from": "string_decoder@~0.10.x", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz" + }, + "util-deprecate": { + "version": "1.0.2", + "from": "util-deprecate@~1.0.1", + "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz" } } } } }, - "json-stringify-safe": { - "version": "5.0.0", - "from": "json-stringify-safe@~5.0.0", - "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.0.tgz" + "caseless": { + "version": "0.11.0", + "from": "caseless@~0.11.0", + "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.11.0.tgz" }, - "mime-types": { - "version": "1.0.2", - "from": "mime-types@~1.0.1", - "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-1.0.2.tgz" + "extend": { + "version": "3.0.0", + "from": "extend@~3.0.0", + "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.0.tgz" }, - "node-uuid": { - "version": "1.4.2", - "from": "node-uuid@~1.4.0", - "resolved": "https://registry.npmjs.org/node-uuid/-/node-uuid-1.4.2.tgz" + "forever-agent": { + "version": "0.6.1", + "from": "forever-agent@~0.6.1", + "resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz" }, - "qs": { - "version": "2.3.3", - "from": "qs@~2.3.1", - "resolved": "https://registry.npmjs.org/qs/-/qs-2.3.3.tgz" - }, - "tunnel-agent": { - "version": "0.4.0", - "from": "tunnel-agent@~0.4.0", - "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.4.0.tgz" - }, - "tough-cookie": { - "version": "0.12.1", - "from": "tough-cookie@>=0.12.0", - "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-0.12.1.tgz", + "form-data": { + "version": "1.0.0-rc3", + "from": "form-data@~1.0.0-rc3", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-1.0.0-rc3.tgz", "dependencies": { - "punycode": { - "version": "1.3.2", - "from": "punycode@>=0.2.0", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.3.2.tgz" + "async": { + "version": "1.5.0", + "from": "async@^1.4.0", + "resolved": "https://registry.npmjs.org/async/-/async-1.5.0.tgz" } } }, + "json-stringify-safe": { + "version": "5.0.1", + "from": "json-stringify-safe@~5.0.1", + "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz" + }, + "mime-types": { + "version": "2.1.7", + "from": "mime-types@~2.1.7", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.7.tgz", + "dependencies": { + "mime-db": { + "version": "1.19.0", + "from": "mime-db@~1.19.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.19.0.tgz" + } + } + }, + "node-uuid": { + "version": "1.4.7", + "from": "node-uuid@~1.4.7", + "resolved": "https://registry.npmjs.org/node-uuid/-/node-uuid-1.4.7.tgz" + }, + "qs": { + "version": "5.2.0", + "from": "qs@~5.2.0", + "resolved": "https://registry.npmjs.org/qs/-/qs-5.2.0.tgz" + }, + "tunnel-agent": { + "version": "0.4.1", + "from": "tunnel-agent@~0.4.1", + "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.4.1.tgz" + }, + "tough-cookie": { + "version": "2.2.1", + "from": "tough-cookie@~2.2.0", + "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.2.1.tgz" + }, "http-signature": { - "version": "0.10.1", - "from": "http-signature@~0.10.0", - "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-0.10.1.tgz", + "version": "1.1.0", + "from": "http-signature@~1.1.0", + "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.1.0.tgz", "dependencies": { "assert-plus": { "version": "0.1.5", "from": "assert-plus@^0.1.5", "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-0.1.5.tgz" }, - "asn1": { - "version": "0.1.11", - "from": "asn1@0.1.11", - "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.1.11.tgz" + "jsprim": { + "version": "1.2.2", + "from": "jsprim@^1.2.2", + "resolved": "https://registry.npmjs.org/jsprim/-/jsprim-1.2.2.tgz", + "dependencies": { + "extsprintf": { + "version": "1.0.2", + "from": "extsprintf@1.0.2", + "resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.0.2.tgz" + }, + "json-schema": { + "version": "0.2.2", + "from": "json-schema@0.2.2", + "resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.2.2.tgz" + }, + "verror": { + "version": "1.3.6", + "from": "verror@1.3.6", + "resolved": "https://registry.npmjs.org/verror/-/verror-1.3.6.tgz" + } + } }, - "ctype": { - "version": "0.5.3", - "from": "ctype@0.5.3", - "resolved": "https://registry.npmjs.org/ctype/-/ctype-0.5.3.tgz" + "sshpk": { + "version": "1.7.0", + "from": "sshpk@^1.7.0", + "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.7.0.tgz", + "dependencies": { + "asn1": { + "version": "0.2.3", + "from": "asn1@>=0.2.3 <0.3.0", + "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.3.tgz" + }, + "assert-plus": { + "version": "0.2.0", + "from": "assert-plus@>=0.2.0 <0.3.0", + "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-0.2.0.tgz" + }, + "dashdash": { + "version": "1.10.1", + "from": "dashdash@>=1.10.1 <2.0.0", + "resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.10.1.tgz", + "dependencies": { + "assert-plus": { + "version": "0.1.5", + "from": "assert-plus@0.1.x", + "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-0.1.5.tgz" + } + } + }, + "jsbn": { + "version": "0.1.0", + "from": "jsbn@>=0.1.0 <0.2.0", + "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.0.tgz" + }, + "tweetnacl": { + "version": "0.13.2", + "from": "tweetnacl@>=0.13.0 <1.0.0", + "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.13.2.tgz" + }, + "jodid25519": { + "version": "1.0.2", + "from": "jodid25519@>=1.0.0 <2.0.0", + "resolved": "https://registry.npmjs.org/jodid25519/-/jodid25519-1.0.2.tgz" + }, + "ecc-jsbn": { + "version": "0.1.1", + "from": "ecc-jsbn@>=0.0.1 <1.0.0", + "resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.1.tgz" + } + } } } }, "oauth-sign": { - "version": "0.5.0", - "from": "oauth-sign@~0.5.0", - "resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.5.0.tgz" + "version": "0.8.0", + "from": "oauth-sign@~0.8.0", + "resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.8.0.tgz" }, "hawk": { - "version": "1.1.1", - "from": "hawk@1.1.1", - "resolved": "https://registry.npmjs.org/hawk/-/hawk-1.1.1.tgz", + "version": "3.1.2", + "from": "hawk@~3.1.0", + "resolved": "https://registry.npmjs.org/hawk/-/hawk-3.1.2.tgz", "dependencies": { "hoek": { - "version": "0.9.1", - "from": "hoek@0.9.x", - "resolved": "https://registry.npmjs.org/hoek/-/hoek-0.9.1.tgz" + "version": "2.16.3", + "from": "hoek@2.x.x", + "resolved": "https://registry.npmjs.org/hoek/-/hoek-2.16.3.tgz" }, "boom": { - "version": "0.4.2", - "from": "boom@0.4.x", - "resolved": "https://registry.npmjs.org/boom/-/boom-0.4.2.tgz" + "version": "2.10.1", + "from": "boom@2.x.x", + "resolved": "https://registry.npmjs.org/boom/-/boom-2.10.1.tgz" }, "cryptiles": { - "version": "0.2.2", - "from": "cryptiles@0.2.x", - "resolved": "https://registry.npmjs.org/cryptiles/-/cryptiles-0.2.2.tgz" + "version": "2.0.5", + "from": "cryptiles@2.x.x", + "resolved": "https://registry.npmjs.org/cryptiles/-/cryptiles-2.0.5.tgz" }, "sntp": { - "version": "0.2.4", - "from": "sntp@0.2.x", - "resolved": "https://registry.npmjs.org/sntp/-/sntp-0.2.4.tgz" + "version": "1.0.9", + "from": "sntp@1.x.x", + "resolved": "https://registry.npmjs.org/sntp/-/sntp-1.0.9.tgz" } } }, "aws-sign2": { - "version": "0.5.0", - "from": "aws-sign2@~0.5.0", - "resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.5.0.tgz" + "version": "0.6.0", + "from": "aws-sign2@~0.6.0", + "resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.6.0.tgz" }, "stringstream": { - "version": "0.0.4", + "version": "0.0.5", "from": "stringstream@~0.0.4", - "resolved": "https://registry.npmjs.org/stringstream/-/stringstream-0.0.4.tgz" + "resolved": "https://registry.npmjs.org/stringstream/-/stringstream-0.0.5.tgz" }, "combined-stream": { - "version": "0.0.7", - "from": "combined-stream@~0.0.5", - "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-0.0.7.tgz", + "version": "1.0.5", + "from": "combined-stream@~1.0.5", + "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.5.tgz", "dependencies": { "delayed-stream": { - "version": "0.0.5", - "from": "delayed-stream@0.0.5", - "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-0.0.5.tgz" + "version": "1.0.0", + "from": "delayed-stream@~1.0.0", + "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz" + } + } + }, + "isstream": { + "version": "0.1.2", + "from": "isstream@~0.1.2", + "resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz" + }, + "is-typedarray": { + "version": "1.0.0", + "from": "is-typedarray@~1.0.0", + "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz" + }, + "har-validator": { + "version": "2.0.3", + "from": "har-validator@~2.0.2", + "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-2.0.3.tgz", + "dependencies": { + "chalk": { + "version": "1.1.1", + "from": "chalk@^1.1.1", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.1.tgz", + "dependencies": { + "ansi-styles": { + "version": "2.1.0", + "from": "ansi-styles@^2.1.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.1.0.tgz" + }, + "escape-string-regexp": { + "version": "1.0.3", + "from": "escape-string-regexp@^1.0.2", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.3.tgz" + }, + "has-ansi": { + "version": "2.0.0", + "from": "has-ansi@^2.0.0", + "resolved": "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz", + "dependencies": { + "ansi-regex": { + "version": "2.0.0", + "from": "ansi-regex@^2.0.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.0.0.tgz" + } + } + }, + "strip-ansi": { + "version": "3.0.0", + "from": "strip-ansi@^3.0.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.0.tgz", + "dependencies": { + "ansi-regex": { + "version": "2.0.0", + "from": "ansi-regex@^2.0.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.0.0.tgz" + } + } + }, + "supports-color": { + "version": "2.0.0", + "from": "supports-color@^2.0.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz" + } + } + }, + "commander": { + "version": "2.9.0", + "from": "commander@^2.9.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.9.0.tgz", + "dependencies": { + "graceful-readlink": { + "version": "1.0.1", + "from": "graceful-readlink@>= 1.0.0", + "resolved": "https://registry.npmjs.org/graceful-readlink/-/graceful-readlink-1.0.1.tgz" + } + } + }, + "is-my-json-valid": { + "version": "2.12.3", + "from": "is-my-json-valid@^2.12.3", + "resolved": "https://registry.npmjs.org/is-my-json-valid/-/is-my-json-valid-2.12.3.tgz", + "dependencies": { + "generate-function": { + "version": "2.0.0", + "from": "generate-function@^2.0.0", + "resolved": "https://registry.npmjs.org/generate-function/-/generate-function-2.0.0.tgz" + }, + "generate-object-property": { + "version": "1.2.0", + "from": "generate-object-property@^1.1.0", + "resolved": "https://registry.npmjs.org/generate-object-property/-/generate-object-property-1.2.0.tgz", + "dependencies": { + "is-property": { + "version": "1.0.2", + "from": "is-property@^1.0.0", + "resolved": "https://registry.npmjs.org/is-property/-/is-property-1.0.2.tgz" + } + } + }, + "jsonpointer": { + "version": "2.0.0", + "from": "jsonpointer@2.0.0", + "resolved": "https://registry.npmjs.org/jsonpointer/-/jsonpointer-2.0.0.tgz" + }, + "xtend": { + "version": "4.0.1", + "from": "xtend@^4.0.0", + "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.1.tgz" + } + } + }, + "pinkie-promise": { + "version": "2.0.0", + "from": "pinkie-promise@^2.0.0", + "resolved": "https://registry.npmjs.org/pinkie-promise/-/pinkie-promise-2.0.0.tgz", + "dependencies": { + "pinkie": { + "version": "2.0.1", + "from": "pinkie@^2.0.0", + "resolved": "https://registry.npmjs.org/pinkie/-/pinkie-2.0.1.tgz" + } + } } } } } }, "semver": { - "version": "4.2.0", - "from": "semver@~4.2.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-4.2.0.tgz" + "version": "5.1.0", + "from": "semver@~5.1.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.1.0.tgz" }, "tar": { - "version": "1.0.3", - "from": "tar@~1.0.2", - "resolved": "https://registry.npmjs.org/tar/-/tar-1.0.3.tgz", + "version": "2.2.1", + "from": "tar@~2.2.0", + "resolved": "https://registry.npmjs.org/tar/-/tar-2.2.1.tgz", "dependencies": { "block-stream": { - "version": "0.0.7", + "version": "0.0.8", "from": "block-stream@*", - "resolved": "https://registry.npmjs.org/block-stream/-/block-stream-0.0.7.tgz" + "resolved": "https://registry.npmjs.org/block-stream/-/block-stream-0.0.8.tgz" }, "fstream": { - "version": "1.0.3", + "version": "1.0.8", "from": "fstream@^1.0.2", - "resolved": "https://registry.npmjs.org/fstream/-/fstream-1.0.3.tgz", + "resolved": "https://registry.npmjs.org/fstream/-/fstream-1.0.8.tgz", "dependencies": { "graceful-fs": { - "version": "3.0.5", - "from": "graceful-fs@3", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-3.0.5.tgz" + "version": "4.1.2", + "from": "graceful-fs@^4.1.2", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.2.tgz" } } }, @@ -2390,10 +2748,15 @@ } }, "tar-pack": { - "version": "2.0.0", - "from": "tar-pack@~2.0.0", - "resolved": "https://registry.npmjs.org/tar-pack/-/tar-pack-2.0.0.tgz", + "version": "3.1.0", + "from": "tar-pack@~3.1.0", + "resolved": "https://registry.npmjs.org/tar-pack/-/tar-pack-3.1.0.tgz", "dependencies": { + "graceful-fs": { + "version": "4.1.2", + "from": "graceful-fs@4.1", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.2.tgz" + }, "uid-number": { "version": "0.0.3", "from": "uid-number@0.0.3", @@ -2409,16 +2772,16 @@ "from": "debug@~0.7.2", "resolved": "https://registry.npmjs.org/debug/-/debug-0.7.4.tgz" }, + "rimraf": { + "version": "2.2.8", + "from": "rimraf@~2.2.0", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.2.8.tgz" + }, "fstream": { - "version": "0.1.31", - "from": "fstream@~0.1.22", - "resolved": "https://registry.npmjs.org/fstream/-/fstream-0.1.31.tgz", + "version": "1.0.8", + "from": "fstream@^1.0.2", + "resolved": "https://registry.npmjs.org/fstream/-/fstream-1.0.8.tgz", "dependencies": { - "graceful-fs": { - "version": "3.0.5", - "from": "graceful-fs@3", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-3.0.5.tgz" - }, "inherits": { "version": "2.0.1", "from": "inherits@~2.0.0", @@ -2426,49 +2789,39 @@ } } }, - "tar": { - "version": "0.1.20", - "from": "tar@~0.1.17", - "resolved": "https://registry.npmjs.org/tar/-/tar-0.1.20.tgz", + "fstream-ignore": { + "version": "1.0.3", + "from": "fstream-ignore@~1.0.3", + "resolved": "https://registry.npmjs.org/fstream-ignore/-/fstream-ignore-1.0.3.tgz", "dependencies": { - "block-stream": { - "version": "0.0.7", - "from": "block-stream@*", - "resolved": "https://registry.npmjs.org/block-stream/-/block-stream-0.0.7.tgz" - }, "inherits": { "version": "2.0.1", "from": "inherits@2", "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.1.tgz" - } - } - }, - "fstream-ignore": { - "version": "0.0.7", - "from": "fstream-ignore@0.0.7", - "resolved": "https://registry.npmjs.org/fstream-ignore/-/fstream-ignore-0.0.7.tgz", - "dependencies": { + }, "minimatch": { - "version": "0.2.14", - "from": "minimatch@~0.2.0", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-0.2.14.tgz", + "version": "3.0.0", + "from": "minimatch@^3.0.0", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.0.tgz", "dependencies": { - "lru-cache": { - "version": "2.5.0", - "from": "lru-cache@2", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-2.5.0.tgz" - }, - "sigmund": { - "version": "1.0.0", - "from": "sigmund@~1.0.0", - "resolved": "https://registry.npmjs.org/sigmund/-/sigmund-1.0.0.tgz" + "brace-expansion": { + "version": "1.1.1", + "from": "brace-expansion@^1.0.0", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.1.tgz", + "dependencies": { + "balanced-match": { + "version": "0.2.1", + "from": "balanced-match@^0.2.0", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-0.2.1.tgz" + }, + "concat-map": { + "version": "0.0.1", + "from": "concat-map@0.0.1", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz" + } + } } } - }, - "inherits": { - "version": "2.0.1", - "from": "inherits@2", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.1.tgz" } } }, @@ -2478,9 +2831,9 @@ "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.0.33.tgz", "dependencies": { "core-util-is": { - "version": "1.0.1", + "version": "1.0.2", "from": "core-util-is@~1.0.0", - "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.1.tgz" + "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz" }, "isarray": { "version": "0.0.1", @@ -2498,18 +2851,13 @@ "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.1.tgz" } } - }, - "graceful-fs": { - "version": "1.2.3", - "from": "graceful-fs@1.2", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-1.2.3.tgz" } } }, "mkdirp": { - "version": "0.5.0", + "version": "0.5.1", "from": "mkdirp@~0.5.0", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.0.tgz", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz", "dependencies": { "minimist": { "version": "0.0.8", @@ -2519,36 +2867,103 @@ } }, "rc": { - "version": "0.5.5", - "from": "rc@~0.5.1", - "resolved": "https://registry.npmjs.org/rc/-/rc-0.5.5.tgz", + "version": "1.1.5", + "from": "rc@~1.1.0", + "resolved": "https://registry.npmjs.org/rc/-/rc-1.1.5.tgz", "dependencies": { - "minimist": { - "version": "0.0.10", - "from": "minimist@~0.0.7", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.10.tgz" - }, "deep-extend": { - "version": "0.2.11", - "from": "deep-extend@~0.2.5", - "resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.2.11.tgz" - }, - "strip-json-comments": { - "version": "0.1.3", - "from": "strip-json-comments@0.1.x", - "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-0.1.3.tgz" + "version": "0.4.0", + "from": "deep-extend@~0.4.0", + "resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.4.0.tgz" }, "ini": { - "version": "1.3.2", + "version": "1.3.4", "from": "ini@~1.3.0", - "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.2.tgz" + "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.4.tgz" + }, + "minimist": { + "version": "1.2.0", + "from": "minimist@^1.2.0", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz" + }, + "strip-json-comments": { + "version": "1.0.4", + "from": "strip-json-comments@~1.0.4", + "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-1.0.4.tgz" } } }, "rimraf": { - "version": "2.2.8", - "from": "rimraf@~2.2.8", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.2.8.tgz" + "version": "2.4.4", + "from": "rimraf@~2.4.0", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.4.4.tgz", + "dependencies": { + "glob": { + "version": "5.0.15", + "from": "glob@^5.0.14", + "resolved": "https://registry.npmjs.org/glob/-/glob-5.0.15.tgz", + "dependencies": { + "inflight": { + "version": "1.0.4", + "from": "inflight@^1.0.4", + "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.4.tgz", + "dependencies": { + "wrappy": { + "version": "1.0.1", + "from": "wrappy@1", + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.1.tgz" + } + } + }, + "inherits": { + "version": "2.0.1", + "from": "inherits@2", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.1.tgz" + }, + "minimatch": { + "version": "3.0.0", + "from": "minimatch@2 || 3", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.0.tgz", + "dependencies": { + "brace-expansion": { + "version": "1.1.1", + "from": "brace-expansion@^1.0.0", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.1.tgz", + "dependencies": { + "balanced-match": { + "version": "0.2.1", + "from": "balanced-match@^0.2.0", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-0.2.1.tgz" + }, + "concat-map": { + "version": "0.0.1", + "from": "concat-map@0.0.1", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz" + } + } + } + } + }, + "once": { + "version": "1.3.3", + "from": "once@^1.3.0", + "resolved": "https://registry.npmjs.org/once/-/once-1.3.3.tgz", + "dependencies": { + "wrappy": { + "version": "1.0.1", + "from": "wrappy@1", + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.1.tgz" + } + } + }, + "path-is-absolute": { + "version": "1.0.0", + "from": "path-is-absolute@^1.0.0", + "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.0.tgz" + } + } + } + } } } }