From 4abadec9c473b18bfc41781ee03e7e64ab2e6858 Mon Sep 17 00:00:00 2001 From: Raul Ochoa Date: Fri, 13 May 2016 00:49:09 +0200 Subject: [PATCH 01/17] Use the more suitable getLayergroup to validate regression --- test/acceptance/turbo-cartocss/regressions.js | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/test/acceptance/turbo-cartocss/regressions.js b/test/acceptance/turbo-cartocss/regressions.js index c55009d5..b8dc439a 100644 --- a/test/acceptance/turbo-cartocss/regressions.js +++ b/test/acceptance/turbo-cartocss/regressions.js @@ -67,8 +67,12 @@ describe('turbo-carto regressions', function() { }); it('should accept // comments', function(done) { - this.testClient.getTile(0, 0, 0, function(err) { + this.testClient.getLayergroup(function(err, layergroup) { assert.ok(!err, err); + + assert.ok(layergroup.hasOwnProperty('layergroupid')); + assert.ok(!layergroup.hasOwnProperty('errors')); + done(); }); }); From 503636f9fba982c34a156f8d42986b653c38424a Mon Sep 17 00:00:00 2001 From: Raul Ochoa Date: Fri, 13 May 2016 12:08:48 +0200 Subject: [PATCH 02/17] Upgrade to turbo-carto 0.9.0 --- NEWS.md | 2 +- npm-shrinkwrap.json | 12 ++++++------ package.json | 2 +- 3 files changed, 8 insertions(+), 8 deletions(-) diff --git a/NEWS.md b/NEWS.md index 6f61c502..0f65992f 100644 --- a/NEWS.md +++ b/NEWS.md @@ -5,7 +5,7 @@ Released 2016-mm-dd Announcements: - - Upgrades turbo-carto to [0.8.0](https://github.com/CartoDB/turbo-carto/releases/tag/0.8.0) + - Upgrades turbo-carto to [0.9.0](https://github.com/CartoDB/turbo-carto/releases/tag/0.9.0) ## 2.41.1 diff --git a/npm-shrinkwrap.json b/npm-shrinkwrap.json index d0882518..6364b890 100644 --- a/npm-shrinkwrap.json +++ b/npm-shrinkwrap.json @@ -90,7 +90,7 @@ }, "mime-types": { "version": "2.1.11", - "from": "mime-types@>=2.1.10 <2.2.0", + "from": "mime-types@>=2.1.2 <2.2.0", "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.11.tgz", "dependencies": { "mime-db": { @@ -976,7 +976,7 @@ "dependencies": { "async": { "version": "1.5.2", - "from": "async@>=1.0.0 <2.0.0", + "from": "async@>=1.5.2 <2.0.0", "resolved": "https://registry.npmjs.org/async/-/async-1.5.2.tgz" } } @@ -988,7 +988,7 @@ }, "mime-types": { "version": "2.1.11", - "from": "mime-types@>=2.1.10 <2.2.0", + "from": "mime-types@>=2.1.2 <2.2.0", "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.11.tgz", "dependencies": { "mime-db": { @@ -1215,9 +1215,9 @@ "from": "step-profiler@>=0.3.0 <0.4.0" }, "turbo-carto": { - "version": "0.8.0", - "from": "turbo-carto@0.8.0", - "resolved": "https://registry.npmjs.org/turbo-carto/-/turbo-carto-0.8.0.tgz", + "version": "0.9.0", + "from": "turbo-carto@0.9.0", + "resolved": "https://registry.npmjs.org/turbo-carto/-/turbo-carto-0.9.0.tgz", "dependencies": { "colorbrewer": { "version": "1.0.0", diff --git a/package.json b/package.json index 0829613f..603776ab 100644 --- a/package.json +++ b/package.json @@ -37,7 +37,7 @@ "request": "~2.62.0", "step": "~0.0.6", "step-profiler": "~0.3.0", - "turbo-carto": "0.8.0", + "turbo-carto": "0.9.0", "underscore": "~1.6.0", "windshaft": "1.19.0" }, From 61765d20e1dc4c03260fc2155aed7d5eae060223 Mon Sep 17 00:00:00 2001 From: Raul Ochoa Date: Fri, 13 May 2016 12:10:05 +0200 Subject: [PATCH 03/17] Fail on turbo-carto specific errors This will try to fallback on postcss errors so it still targets carto parser in those cases. Closes #434 --- .../utils/style/turbo-carto-adapter.js | 14 ++- test/acceptance/turbo-cartocss/error-cases.js | 91 +++++++++++++++++++ 2 files changed, 101 insertions(+), 4 deletions(-) create mode 100644 test/acceptance/turbo-cartocss/error-cases.js diff --git a/lib/cartodb/utils/style/turbo-carto-adapter.js b/lib/cartodb/utils/style/turbo-carto-adapter.js index 1c197ac7..7475c44a 100644 --- a/lib/cartodb/utils/style/turbo-carto-adapter.js +++ b/lib/cartodb/utils/style/turbo-carto-adapter.js @@ -38,12 +38,18 @@ TurboCartoAdapter.prototype._parseCartoCss = function (username, layer, callback } this.turboCartoParser.process(username, layer.options.cartocss, layer.options.sql, function (err, cartocss) { - // Ignore turbo-carto errors and continue - if (!err && cartocss) { - layer.options.cartocss = cartocss; + // Only return turbo-carto errors + if (err && err.name === 'TurboCartoError') { + err = new Error('turbo-carto: ' + err.message); + err.http_status = 400; + return callback(err); } - callback(null, layer); + // Try to continue in the rest of the cases + if (cartocss) { + layer.options.cartocss = cartocss; + } + return callback(null, layer); }); }; diff --git a/test/acceptance/turbo-cartocss/error-cases.js b/test/acceptance/turbo-cartocss/error-cases.js new file mode 100644 index 00000000..877b3770 --- /dev/null +++ b/test/acceptance/turbo-cartocss/error-cases.js @@ -0,0 +1,91 @@ +require('../../support/test_helper'); + +var assert = require('../../support/assert'); +var TestClient = require('../../support/test-client'); + +function makeMapconfig(markerWidth, markerFill) { + return { + "version": "1.4.0", + "layers": [ + { + "type": 'mapnik', + "options": { + "cartocss_version": '2.3.0', + "sql": 'SELECT * FROM populated_places_simple_reduced', + "cartocss": createCartocss(markerWidth, markerFill) + } + } + ] + }; +} + +function createCartocss(markerWidth, markerFill) { + return [ + "#populated_places_simple_reduced {", + " marker-fill-opacity: 0.9;", + " marker-line-color: #FFF;", + " marker-line-width: 1;", + " marker-line-opacity: 1;", + " marker-placement: point;", + " marker-type: ellipse;", + " marker-allow-overlap: true;", + " marker-width: " + (markerWidth || '10') + ";", + " marker-fill: " + (markerFill || 'red') + ";", + "}" + ].join('\n'); +} + +var ERROR_RESPONSE = { + status: 400, + headers: { + 'Content-Type': 'application/json; charset=utf-8' + } +}; + +describe('turbo-carto error cases', function() { + afterEach(function (done) { + if (this.testClient) { + this.testClient.drain(done); + } + }); + + it('should return invalid number of ramp error', function(done) { + this.testClient = new TestClient(makeMapconfig('ramp([pop_max], (8,24,96), (8,24,96,128))')); + this.testClient.getLayergroup(ERROR_RESPONSE, function(err, layergroup) { + assert.ok(!err, err); + + assert.ok(layergroup.hasOwnProperty('errors')); + assert.equal(layergroup.errors.length, 1); + assert.ok(layergroup.errors[0].match(/invalid\sramp\slength/i)); + + done(); + }); + }); + + it('should return invalid column from datasource', function(done) { + this.testClient = new TestClient(makeMapconfig(null, 'ramp([wadus_column], (red, green, blue))')); + this.testClient.getLayergroup(ERROR_RESPONSE, function(err, layergroup) { + assert.ok(!err, err); + + assert.ok(layergroup.hasOwnProperty('errors')); + assert.equal(layergroup.errors.length, 1); + assert.ok(layergroup.errors[0].match(/datasource/)); + assert.ok(layergroup.errors[0].match(/wadus_column/)); + + done(); + }); + }); + + it('should fail by falling back to normal carto parser', function(done) { + this.testClient = new TestClient(makeMapconfig('ramp([price], (8,24,96), (8,24,96));//(red, green, blue))')); + this.testClient.getLayergroup(ERROR_RESPONSE, function(err, layergroup) { + assert.ok(!err, err); + + assert.ok(layergroup.hasOwnProperty('errors')); + assert.equal(layergroup.errors.length, 1); + assert.ok(layergroup.errors[0].match(/invalid\scode/i)); + + done(); + }); + }); +}); From f3957b4fcea95c1c3fe76ff99d064cbd79a1316f Mon Sep 17 00:00:00 2001 From: Raul Ochoa Date: Fri, 13 May 2016 12:42:18 +0200 Subject: [PATCH 04/17] Fix test expectations for turbo-carto errors --- test/acceptance/turbo-cartocss/error-cases.js | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/test/acceptance/turbo-cartocss/error-cases.js b/test/acceptance/turbo-cartocss/error-cases.js index 877b3770..f43a3636 100644 --- a/test/acceptance/turbo-cartocss/error-cases.js +++ b/test/acceptance/turbo-cartocss/error-cases.js @@ -56,6 +56,7 @@ describe('turbo-carto error cases', function() { assert.ok(layergroup.hasOwnProperty('errors')); assert.equal(layergroup.errors.length, 1); + assert.ok(layergroup.errors[0].match(/^turbo-carto/)); assert.ok(layergroup.errors[0].match(/invalid\sramp\slength/i)); done(); @@ -69,7 +70,8 @@ describe('turbo-carto error cases', function() { assert.ok(layergroup.hasOwnProperty('errors')); assert.equal(layergroup.errors.length, 1); - assert.ok(layergroup.errors[0].match(/datasource/)); + assert.ok(layergroup.errors[0].match(/^turbo-carto/)); + assert.ok(layergroup.errors[0].match(/unable\sto\scompute\sramp/i)); assert.ok(layergroup.errors[0].match(/wadus_column/)); done(); @@ -83,6 +85,7 @@ describe('turbo-carto error cases', function() { assert.ok(layergroup.hasOwnProperty('errors')); assert.equal(layergroup.errors.length, 1); + assert.ok(!layergroup.errors[0].match(/^turbo-carto/)); assert.ok(layergroup.errors[0].match(/invalid\scode/i)); done(); From 2e26e2e126a9a48b6ce293ebb74dbf86476ec326 Mon Sep 17 00:00:00 2001 From: Raul Ochoa Date: Fri, 13 May 2016 12:57:43 +0200 Subject: [PATCH 05/17] Use split strategy for head/tails turbo-carto quantification --- NEWS.md | 3 +++ lib/cartodb/utils/style/postgres-datasource.js | 6 +++++- 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/NEWS.md b/NEWS.md index 0f65992f..fc1e6334 100644 --- a/NEWS.md +++ b/NEWS.md @@ -4,6 +4,9 @@ Released 2016-mm-dd +Enhancements: + - Use split strategy for head/tails turbo-carto quantification + Announcements: - Upgrades turbo-carto to [0.9.0](https://github.com/CartoDB/turbo-carto/releases/tag/0.9.0) diff --git a/lib/cartodb/utils/style/postgres-datasource.js b/lib/cartodb/utils/style/postgres-datasource.js index fd6e02c1..5db35607 100644 --- a/lib/cartodb/utils/style/postgres-datasource.js +++ b/lib/cartodb/utils/style/postgres-datasource.js @@ -23,6 +23,10 @@ var methodTemplates = Object.keys(methods).reduce(function(methodTemplates, meth return methodTemplates; }, {}); +var method2strategy = { + headtails: 'split' +}; + function PostgresDatasource (pgQueryRunner, username, query) { this.pgQueryRunner = pgQueryRunner; this.username = username; @@ -48,7 +52,7 @@ PostgresDatasource.prototype.getRamp = function (column, buckets, method, callba return a - b; }); - return callback(null, ramp); + return callback(null, { ramp: ramp, strategy: method2strategy[methodName] }); }); }; From c12e5f7a27b598db500cefe2899db921708b106b Mon Sep 17 00:00:00 2001 From: Raul Ochoa Date: Fri, 13 May 2016 16:56:52 +0200 Subject: [PATCH 06/17] Fix named maps with analysis Named map provider was missing analysis backend dependency Fixes #450 --- lib/cartodb/cache/named_map_provider_cache.js | 6 +- lib/cartodb/server.js | 1 + test/acceptance/analysis/named-maps.js | 439 ++++++++++-------- ...d-map-buffer-layergroup-static-preview.png | Bin 0 -> 13684 bytes .../named-map-buffer-static-preview.png | Bin 0 -> 44790 bytes test/support/test-client.js | 38 ++ 6 files changed, 276 insertions(+), 208 deletions(-) create mode 100644 test/fixtures/analysis/named-map-buffer-layergroup-static-preview.png create mode 100644 test/fixtures/analysis/named-map-buffer-static-preview.png diff --git a/lib/cartodb/cache/named_map_provider_cache.js b/lib/cartodb/cache/named_map_provider_cache.js index a25850dc..9adb29b9 100644 --- a/lib/cartodb/cache/named_map_provider_cache.js +++ b/lib/cartodb/cache/named_map_provider_cache.js @@ -8,15 +8,15 @@ var queue = require('queue-async'); var LruCache = require("lru-cache"); -function NamedMapProviderCache(templateMaps, pgConnection, metadataBackend, userLimitsApi, overviewsAdapter, - turboCartoAdapter) { +function NamedMapProviderCache(templateMaps, pgConnection, metadataBackend, analysisBackend, userLimitsApi, + overviewsAdapter, turboCartoAdapter) { this.templateMaps = templateMaps; this.pgConnection = pgConnection; this.metadataBackend = metadataBackend; this.userLimitsApi = userLimitsApi; this.namedLayersAdapter = new MapConfigNamedLayersAdapter(templateMaps); - this.analysisMapConfigAdapter = new AnalysisMapConfigAdapter(); + this.analysisMapConfigAdapter = new AnalysisMapConfigAdapter(analysisBackend); this.overviewsAdapter = overviewsAdapter; this.turboCartoAdapter = turboCartoAdapter; diff --git a/lib/cartodb/server.js b/lib/cartodb/server.js index ed24f651..0f15e240 100644 --- a/lib/cartodb/server.js +++ b/lib/cartodb/server.js @@ -157,6 +157,7 @@ module.exports = function(serverOptions) { templateMaps, pgConnection, metadataBackend, + analysisBackend, userLimitsApi, overviewsAdapter, turboCartoAdapter diff --git a/test/acceptance/analysis/named-maps.js b/test/acceptance/analysis/named-maps.js index 13d84120..26341a0a 100644 --- a/test/acceptance/analysis/named-maps.js +++ b/test/acceptance/analysis/named-maps.js @@ -1,11 +1,11 @@ var assert = require('../../support/assert'); -var step = require('step'); var helper = require('../../support/test_helper'); var CartodbWindshaft = require('../../../lib/cartodb/server'); var serverOptions = require('../../../lib/cartodb/server_options'); var server = new CartodbWindshaft(serverOptions); +var TestClient = require('../../support/test-client'); var LayergroupToken = require('../../../lib/cartodb/models/layergroup_token'); @@ -16,230 +16,259 @@ describe('named-maps analysis', function() { var username = 'localhost'; var widgetsTemplateName = 'widgets-template'; - var layergroupid; - var layergroup; - var keysToDelete; - - beforeEach(function(done) { - keysToDelete = {}; - - var widgetsTemplate = { - version: '0.0.1', - name: widgetsTemplateName, - layergroup: { - version: '1.5.0', - layers: [ - { - "type": "cartodb", - "options": { - "source": { - "id": "HEAD" - }, - "cartocss": '#buffer { polygon-fill: red; }', - "cartocss_version": "2.3.0" - } - } - ], - dataviews: { - pop_max_histogram: { - source: { - id: 'HEAD' + var widgetsTemplate = { + version: '0.0.1', + name: widgetsTemplateName, + layergroup: { + version: '1.5.0', + layers: [ + { + "type": "cartodb", + "options": { + "source": { + "id": "HEAD" }, - type: 'histogram', - options: { - column: 'pop_max' - } + "cartocss": '#buffer { polygon-fill: red; }', + "cartocss_version": "2.3.0" } - }, - analyses: [ - { - "id": "HEAD", - "type": "buffer", - "params": { - "source": { - "id": "2570e105-7b37-40d2-bdf4-1af889598745", - "type": "source", - "params": { - "query": "select * from populated_places_simple_reduced" - } - }, - "radius": 50000 - } + } + ], + dataviews: { + pop_max_histogram: { + source: { + id: 'HEAD' + }, + type: 'histogram', + options: { + column: 'pop_max' } - ] - } - }; - - var template_params = {}; - - step( - function createTemplate() - { - var next = this; - assert.response( - server, - { - url: '/api/v1/map/named?api_key=1234', - method: 'POST', - headers: { - host: username, - 'Content-Type': 'application/json' + } + }, + analyses: [ + { + "id": "HEAD", + "type": "buffer", + "params": { + "source": { + "id": "2570e105-7b37-40d2-bdf4-1af889598745", + "type": "source", + "params": { + "query": "select * from populated_places_simple_reduced" + } }, - data: JSON.stringify(widgetsTemplate) - }, - { - status: 200 - }, - function(res, err) { - next(err, res); + "radius": 50000 } - ); - }, - function instantiateTemplate(err, res) { - assert.ifError(err); + } + ] + } + }; - assert.deepEqual(JSON.parse(res.body), { template_id: widgetsTemplateName }); - var next = this; - assert.response( - server, - { - url: '/api/v1/map/named/' + widgetsTemplateName, - method: 'POST', - headers: { - host: username, - 'Content-Type': 'application/json' - }, - data: JSON.stringify(template_params) - }, - { - status: 200 - }, - function(res) { - next(null, res); - } - ); - }, - function finish(err, res) { - assert.ifError(err); - - layergroup = JSON.parse(res.body); - assert.ok(layergroup.hasOwnProperty('layergroupid'), "Missing 'layergroupid' from: " + res.body); - layergroupid = layergroup.layergroupid; - - assert.ok( - Array.isArray(layergroup.metadata.analyses), - 'Missing "analyses" array metadata from: ' + res.body - ); - var analyses = layergroup.metadata.analyses; - assert.equal(analyses.length, 1, 'Invalid number of analyses in metadata'); - var nodes = analyses[0].nodes; - var nodesIds = Object.keys(nodes); - assert.deepEqual(nodesIds, ['2570e105-7b37-40d2-bdf4-1af889598745', 'HEAD']); - nodesIds.forEach(function(nodeId) { - var node = nodes[nodeId]; - assert.ok(node.hasOwnProperty('url'), 'Missing "url" attribute in node'); - assert.ok(node.hasOwnProperty('status'), 'Missing "status" attribute in node'); - assert.ok(!node.hasOwnProperty('query'), 'Unexpected "query" attribute in node'); - }); - - keysToDelete['map_cfg|' + LayergroupToken.parse(layergroup.layergroupid).token] = 0; - keysToDelete['user:localhost:mapviews:global'] = 5; - - return done(); - } - ); - - }); - - afterEach(function(done) { - step( - function deleteTemplate(err) { - assert.ifError(err); - var next = this; - assert.response( - server, - { - url: '/api/v1/map/named/' + widgetsTemplateName + '?api_key=1234', - method: 'DELETE', - headers: { - host: username - } - }, - { - status: 204 - }, - function(res, err) { - next(err, res); - } - ); - }, - function deleteRedisKeys(err) { - assert.ifError(err); - helper.deleteRedisKeys(keysToDelete, done); - } - ); - }); - - it('should be able to retrieve images from analysis', function(done) { + beforeEach(function createTemplate(done) { assert.response( server, { - url: '/api/v1/map/' + layergroupid + '/6/31/24.png', - method: 'GET', - encoding: 'binary', + url: '/api/v1/map/named?api_key=1234', + method: 'POST', + headers: { + host: username, + 'Content-Type': 'application/json' + }, + data: JSON.stringify(widgetsTemplate) + }, + { + status: 200 + }, + function(res, err) { + assert.deepEqual(JSON.parse(res.body), { template_id: widgetsTemplateName }); + return done(err); + } + ); + }); + + afterEach(function deleteTemplate(done) { + assert.response( + server, + { + url: '/api/v1/map/named/' + widgetsTemplateName + '?api_key=1234', + method: 'DELETE', headers: { host: username } }, { - status: 200, - headers: { - 'Content-Type': 'image/png' - } + status: 204 }, function(res, err) { - if (err) { - return done(err); - } + return done(err); + } + ); + }); - var fixturePath = './test/fixtures/analysis/named-map-buffer.png'; - assert.imageBufferIsSimilarToFile(res.body, fixturePath, IMAGE_TOLERANCE_PER_MIL, function(err) { + describe('layergroup', function() { + var layergroupid; + var layergroup; + var keysToDelete; + + beforeEach(function(done) { + keysToDelete = {}; + + assert.response( + server, + { + url: '/api/v1/map/named/' + widgetsTemplateName, + method: 'POST', + headers: { + host: username, + 'Content-Type': 'application/json' + }, + data: JSON.stringify({}) + }, + { + status: 200 + }, + function(res, err) { + assert.ifError(err); + + layergroup = JSON.parse(res.body); + assert.ok(layergroup.hasOwnProperty('layergroupid'), "Missing 'layergroupid' from: " + res.body); + layergroupid = layergroup.layergroupid; + + assert.ok( + Array.isArray(layergroup.metadata.analyses), + 'Missing "analyses" array metadata from: ' + res.body + ); + var analyses = layergroup.metadata.analyses; + assert.equal(analyses.length, 1, 'Invalid number of analyses in metadata'); + var nodes = analyses[0].nodes; + var nodesIds = Object.keys(nodes); + assert.deepEqual(nodesIds, ['2570e105-7b37-40d2-bdf4-1af889598745', 'HEAD']); + nodesIds.forEach(function(nodeId) { + var node = nodes[nodeId]; + assert.ok(node.hasOwnProperty('url'), 'Missing "url" attribute in node'); + assert.ok(node.hasOwnProperty('status'), 'Missing "status" attribute in node'); + assert.ok(!node.hasOwnProperty('query'), 'Unexpected "query" attribute in node'); + }); + + keysToDelete['map_cfg|' + LayergroupToken.parse(layergroup.layergroupid).token] = 0; + keysToDelete['user:localhost:mapviews:global'] = 5; + + return done(); + } + ); + + }); + + afterEach(function(done) { + helper.deleteRedisKeys(keysToDelete, done); + }); + + it('should be able to retrieve images from analysis', function(done) { + assert.response( + server, + { + url: '/api/v1/map/' + layergroupid + '/6/31/24.png', + method: 'GET', + encoding: 'binary', + headers: { + host: username + } + }, + { + status: 200, + headers: { + 'Content-Type': 'image/png' + } + }, + function(res, err) { + if (err) { + return done(err); + } + + var fixturePath = './test/fixtures/analysis/named-map-buffer.png'; + assert.imageBufferIsSimilarToFile(res.body, fixturePath, IMAGE_TOLERANCE_PER_MIL, function(err) { + assert.ok(!err, err); + done(); + }); + + } + ); + }); + + it('should be able to retrieve dataviews from analysis', function(done) { + assert.response( + server, + { + url: '/api/v1/map/' + layergroupid + '/dataview/pop_max_histogram', + method: 'GET', + headers: { + host: username + } + }, + { + status: 200, + headers: { + 'Content-Type': 'application/json; charset=utf-8' + } + }, + function(res, err) { + if (err) { + return done(err); + } + + var dataview = JSON.parse(res.body); + assert.equal(dataview.type, 'histogram'); + assert.equal(dataview.bins_start, 0); + + done(); + } + ); + }); + + it('should be able to retrieve static map preview via layergroup', function(done) { + assert.response( + server, + { + url: '/api/v1/map/static/center/' + layergroupid + '/4/42/-3/320/240.png', + method: 'GET', + encoding: 'binary', + headers: { + host: username + } + }, + { + status: 200, + headers: { + 'Content-Type': 'image/png' + } + }, + function(res, err) { + if (err) { + return done(err); + } + + var fixturePath = './test/fixtures/analysis/named-map-buffer-layergroup-static-preview.png'; + assert.imageBufferIsSimilarToFile(res.body, fixturePath, IMAGE_TOLERANCE_PER_MIL, function(err) { + assert.ok(!err, err); + done(); + }); + + } + ); + }); + + }); + + describe('auto-instantiation', function() { + it('should be able to retrieve static map preview via fixed url', function(done) { + TestClient.getStaticMap(widgetsTemplateName, function(err, image) { + assert.ok(!err, err); + var fixturePath = './test/fixtures/analysis/named-map-buffer-static-preview.png'; + assert.imageIsSimilarToFile(image, fixturePath, IMAGE_TOLERANCE_PER_MIL, function(err) { assert.ok(!err, err); done(); }); - - } - ); - }); - - it('should be able to retrieve dataviews from analysis', function(done) { - assert.response( - server, - { - url: '/api/v1/map/' + layergroupid + '/dataview/pop_max_histogram', - method: 'GET', - headers: { - host: username - } - }, - { - status: 200, - headers: { - 'Content-Type': 'application/json; charset=utf-8' - } - }, - function(res, err) { - if (err) { - return done(err); - } - - var dataview = JSON.parse(res.body); - assert.equal(dataview.type, 'histogram'); - assert.equal(dataview.bins_start, 0); - - done(); - } - ); + }); + }); }); }); diff --git a/test/fixtures/analysis/named-map-buffer-layergroup-static-preview.png b/test/fixtures/analysis/named-map-buffer-layergroup-static-preview.png new file mode 100644 index 0000000000000000000000000000000000000000..deb0b60c635d755ad38f71e5ad4eef1e0d163cf0 GIT binary patch literal 13684 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

cU_KNEY2Y}8utuq}3iqAI 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

Q4aEhb9-SL7dS>T6W1*+u>jjE5fF literal 0 HcmV?d00001 diff --git a/test/support/test-client.js b/test/support/test-client.js index 5ced9f98..a9ec5bee 100644 --- a/test/support/test-client.js +++ b/test/support/test-client.js @@ -471,3 +471,41 @@ TestClient.prototype.getNodeStatus = function(nodeName, callback) { TestClient.prototype.drain = function(callback) { helper.deleteRedisKeys(this.keysToDelete, callback); }; + +module.exports.getStaticMap = function getStaticMap(templateName, params, callback) { + if (!callback) { + callback = params; + params = null; + } + + var url = '/api/v1/map/static/named/' + templateName + '/640/480.png'; + + if (params !== null) { + url += '?' + qs.stringify(params); + } + + var requestOptions = { + url: url, + method: 'GET', + headers: { + host: 'localhost' + }, + encoding: 'binary' + }; + + var expectedResponse = { + status: 200, + headers: { + 'Content-Type': 'image/png' + } + }; + + // this could be removed once named maps are invalidated, otherwise you hits the cache + var server = new CartodbWindshaft(serverOptions); + + assert.response(server, requestOptions, expectedResponse, function (res, err) { + helper.deleteRedisKeys({'user:localhost:mapviews:global': 5}, function() { + return callback(err, mapnik.Image.fromBytes(new Buffer(res.body, 'binary'))); + }); + }); +}; From 1ac6ead4b2da40cf80206e68892270dab6ba675b Mon Sep 17 00:00:00 2001 From: Raul Ochoa Date: Mon, 16 May 2016 19:57:51 +0200 Subject: [PATCH 07/17] Update news --- NEWS.md | 3 +++ 1 file changed, 3 insertions(+) diff --git a/NEWS.md b/NEWS.md index fc1e6334..a8a5441c 100644 --- a/NEWS.md +++ b/NEWS.md @@ -4,6 +4,9 @@ Released 2016-mm-dd +Bug fixes: + - Fix named maps with analysis #453 + Enhancements: - Use split strategy for head/tails turbo-carto quantification From 9f18e2d27d1a38c25c52f5b754de962c2c89c471 Mon Sep 17 00:00:00 2001 From: Raul Ochoa Date: Mon, 16 May 2016 19:58:22 +0200 Subject: [PATCH 08/17] Release 2.42.0 --- NEWS.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/NEWS.md b/NEWS.md index a8a5441c..fa11244f 100644 --- a/NEWS.md +++ b/NEWS.md @@ -2,7 +2,7 @@ ## 2.42.0 -Released 2016-mm-dd +Released 2016-05-16 Bug fixes: - Fix named maps with analysis #453 From 5b96576227725d23eb561a5bc34ad87b00b39639 Mon Sep 17 00:00:00 2001 From: Raul Ochoa Date: Mon, 16 May 2016 20:08:39 +0200 Subject: [PATCH 09/17] Stubs next version --- NEWS.md | 5 +++++ npm-shrinkwrap.json | 2 +- package.json | 2 +- 3 files changed, 7 insertions(+), 2 deletions(-) diff --git a/NEWS.md b/NEWS.md index fa11244f..f2259e37 100644 --- a/NEWS.md +++ b/NEWS.md @@ -1,5 +1,10 @@ # Changelog +## 2.42.1 + +Released 2016-mm-dd + + ## 2.42.0 Released 2016-05-16 diff --git a/npm-shrinkwrap.json b/npm-shrinkwrap.json index 6364b890..e0d77056 100644 --- a/npm-shrinkwrap.json +++ b/npm-shrinkwrap.json @@ -1,6 +1,6 @@ { "name": "windshaft-cartodb", - "version": "2.42.0", + "version": "2.42.1", "dependencies": { "body-parser": { "version": "1.14.2", diff --git a/package.json b/package.json index 603776ab..1f50ece7 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { "private": true, "name": "windshaft-cartodb", - "version": "2.42.0", + "version": "2.42.1", "description": "A map tile server for CartoDB", "keywords": [ "cartodb" From 91f39abc6927a14f9af2e3f4cea1fff6583ce5f9 Mon Sep 17 00:00:00 2001 From: Raul Ochoa Date: Tue, 17 May 2016 14:54:44 +0200 Subject: [PATCH 10/17] Going red for #455 --- test/acceptance/turbo-cartocss/regressions.js | 114 +++++++++++------- test/support/prepare_db.sh | 2 +- 2 files changed, 71 insertions(+), 45 deletions(-) diff --git a/test/acceptance/turbo-cartocss/regressions.js b/test/acceptance/turbo-cartocss/regressions.js index b8dc439a..4f152da3 100644 --- a/test/acceptance/turbo-cartocss/regressions.js +++ b/test/acceptance/turbo-cartocss/regressions.js @@ -3,7 +3,7 @@ require('../../support/test_helper'); var assert = require('../../support/assert'); var TestClient = require('../../support/test-client'); -function makeMapconfig(cartocss) { +function makeMapconfig(sql, cartocss) { return { "version": "1.4.0", "layers": [ @@ -11,19 +11,7 @@ function makeMapconfig(cartocss) { "type": 'mapnik', "options": { "cartocss_version": '2.3.0', - "sql": [ - 'SELECT test_table.*, _prices.price FROM test_table JOIN (' + - ' SELECT 1 AS cartodb_id, 10.00 AS price', - ' UNION', - ' SELECT 2, 10.50', - ' UNION', - ' SELECT 3, 11.00', - ' UNION', - ' SELECT 4, 12.00', - ' UNION', - ' SELECT 5, 21.00', - ') _prices ON _prices.cartodb_id = test_table.cartodb_id' - ].join('\n'), + "sql": sql, "cartocss": cartocss } } @@ -33,40 +21,78 @@ function makeMapconfig(cartocss) { describe('turbo-carto regressions', function() { - var cartocss = [ - "/** simple visualization */", - "", - "Map {", - " buffer-size: 256;", - "}", - "", - "#county_points_with_population{", - " marker-fill-opacity: 0.1;", - " marker-line-color:#FFFFFF;//#CF1C90;", - " marker-line-width: 0;", - " marker-line-opacity: 0.3;", - " marker-placement: point;", - " marker-type: ellipse;", - " //marker-comp-op: overlay;", - " marker-width: [price];", - " [zoom=5]{marker-width: [price]*2;}", - " [zoom=6]{marker-width: [price]*4;}", - " marker-fill: #000000;", - " marker-allow-overlap: true;", - " ", - "", - "}" - ].join('\n'); - - beforeEach(function () { - this.testClient = new TestClient(makeMapconfig(cartocss)); - }); - afterEach(function (done) { - this.testClient.drain(done); + if (this.testClient) { + this.testClient.drain(done); + } }); it('should accept // comments', function(done) { + var cartocss = [ + "/** simple visualization */", + "", + "Map {", + " buffer-size: 256;", + "}", + "", + "#county_points_with_population{", + " marker-fill-opacity: 0.1;", + " marker-line-color:#FFFFFF;//#CF1C90;", + " marker-line-width: 0;", + " marker-line-opacity: 0.3;", + " marker-placement: point;", + " marker-type: ellipse;", + " //marker-comp-op: overlay;", + " marker-width: [cartodb_id];", + " [zoom=5]{marker-width: [cartodb_id]*2;}", + " [zoom=6]{marker-width: [cartodb_id]*4;}", + " marker-fill: #000000;", + " marker-allow-overlap: true;", + " ", + "", + "}" + ].join('\n'); + + this.testClient = new TestClient(makeMapconfig('SELECT * FROM populated_places_simple_reduced', cartocss)); + this.testClient.getLayergroup(function(err, layergroup) { + assert.ok(!err, err); + + assert.ok(layergroup.hasOwnProperty('layergroupid')); + assert.ok(!layergroup.hasOwnProperty('errors')); + + done(); + }); + }); + + it('should work with mapnik substitution tokens', function(done) { + var cartocss = [ + "#layer {", + " line-width: 2;", + " line-color: #3B3B58;", + " line-opacity: 1;", + " polygon-opacity: 0.7;", + " polygon-fill: ramp([points_count], (#E5F5F9,#99D8C9,#2CA25F))", + "}" + ].join('\n'); + + var sql = [ + 'WITH hgrid AS (', + ' SELECT CDB_HexagonGrid(', + ' ST_Expand(!bbox!, greatest(!pixel_width!,!pixel_height!) * 100),', + ' greatest(!pixel_width!,!pixel_height!) * 100', + ' ) as cell', + ')', + 'SELECT', + ' hgrid.cell as the_geom_webmercator,', + ' count(1) as points_count,', + ' count(1)/power(100 * CDB_XYZ_Resolution(CDB_ZoomFromScale(!scale_denominator!)), 2) as points_density,', + ' 1 as cartodb_id', + 'FROM hgrid, (SELECT * FROM populated_places_simple_reduced) i', + 'where ST_Intersects(i.the_geom_webmercator, hgrid.cell)', + 'GROUP BY hgrid.cell' + ].join('\n'); + + this.testClient = new TestClient(makeMapconfig(sql, cartocss)); this.testClient.getLayergroup(function(err, layergroup) { assert.ok(!err, err); diff --git a/test/support/prepare_db.sh b/test/support/prepare_db.sh index 928272fd..ceac7c78 100755 --- a/test/support/prepare_db.sh +++ b/test/support/prepare_db.sh @@ -83,7 +83,7 @@ if test x"$PREPARE_PGSQL" = xyes; then cat sql/_CDB_QueryStatements.sql | psql -v ON_ERROR_STOP=1 ${TEST_DB} || exit 1 - SQL_SCRIPTS='CDB_QueryTables CDB_CartodbfyTable CDB_TableMetadata CDB_ForeignTable CDB_UserTables CDB_ColumnNames CDB_ZoomFromScale CDB_Overviews CDB_QuantileBins CDB_JenksBins CDB_HeadsTailsBins CDB_EqualIntervalBins' + SQL_SCRIPTS='CDB_QueryTables CDB_CartodbfyTable CDB_TableMetadata CDB_ForeignTable CDB_UserTables CDB_ColumnNames CDB_ZoomFromScale CDB_Overviews CDB_QuantileBins CDB_JenksBins CDB_HeadsTailsBins CDB_EqualIntervalBins CDB_Hexagon CDB_XYZ' for i in ${SQL_SCRIPTS} do curl -L -s https://github.com/CartoDB/cartodb-postgresql/raw/master/scripts-available/$i.sql -o sql/$i.sql From 8fb35571fe02f7a45d72c77a97d01a933e2b67b0 Mon Sep 17 00:00:00 2001 From: Raul Ochoa Date: Tue, 17 May 2016 15:00:18 +0200 Subject: [PATCH 11/17] Adds support for mapnik substitution token at turbo-carto level Goes green and fixes #455 --- lib/cartodb/api/overviews_metadata_api.js | 22 +++++++------------ .../utils/style/turbo-carto-adapter.js | 10 ++++++++- lib/cartodb/utils/substitution-tokens.js | 19 ++++++++++++++++ 3 files changed, 36 insertions(+), 15 deletions(-) create mode 100644 lib/cartodb/utils/substitution-tokens.js diff --git a/lib/cartodb/api/overviews_metadata_api.js b/lib/cartodb/api/overviews_metadata_api.js index 2cec6bbb..55b4966f 100644 --- a/lib/cartodb/api/overviews_metadata_api.js +++ b/lib/cartodb/api/overviews_metadata_api.js @@ -1,24 +1,18 @@ +var SubstitutionTokens = require('../utils/substitution-tokens'); + function OverviewsMetadataApi(pgQueryRunner) { this.pgQueryRunner = pgQueryRunner; } module.exports = OverviewsMetadataApi; -// TODO: share this with QueryTablesApi? ... or maintain independence? -var affectedTableRegexCache = { - bbox: /!bbox!/g, - scale_denominator: /!scale_denominator!/g, - pixel_width: /!pixel_width!/g, - pixel_height: /!pixel_height!/g -}; - function prepareSql(sql) { - return sql && sql - .replace(affectedTableRegexCache.bbox, 'ST_MakeEnvelope(0,0,0,0)') - .replace(affectedTableRegexCache.scale_denominator, '0') - .replace(affectedTableRegexCache.pixel_width, '1') - .replace(affectedTableRegexCache.pixel_height, '1') - ; + return sql && SubstitutionTokens.replace(sql, { + bbox: 'ST_MakeEnvelope(0,0,0,0)', + scale_denominator: '0', + pixel_width: '1', + pixel_height: '1' + }); } OverviewsMetadataApi.prototype.getOverviewsMetadata = function (username, sql, callback) { diff --git a/lib/cartodb/utils/style/turbo-carto-adapter.js b/lib/cartodb/utils/style/turbo-carto-adapter.js index 7475c44a..d1c0c81f 100644 --- a/lib/cartodb/utils/style/turbo-carto-adapter.js +++ b/lib/cartodb/utils/style/turbo-carto-adapter.js @@ -1,6 +1,7 @@ 'use strict'; var queue = require('queue-async'); +var SubstitutionTokens = require('../substitution-tokens'); function TurboCartoAdapter(turboCartoParser) { this.turboCartoParser = turboCartoParser; @@ -37,7 +38,14 @@ TurboCartoAdapter.prototype._parseCartoCss = function (username, layer, callback }); } - this.turboCartoParser.process(username, layer.options.cartocss, layer.options.sql, function (err, cartocss) { + var sql = SubstitutionTokens.replace(layer.options.sql, { + bbox: 'ST_MakeEnvelope(-20037508.34,-20037508.34,20037508.34,20037508.34,3857)', + scale_denominator: '500000001', + pixel_width: '156412', + pixel_height: '156412' + }); + + this.turboCartoParser.process(username, layer.options.cartocss, sql, function (err, cartocss) { // Only return turbo-carto errors if (err && err.name === 'TurboCartoError') { err = new Error('turbo-carto: ' + err.message); diff --git a/lib/cartodb/utils/substitution-tokens.js b/lib/cartodb/utils/substitution-tokens.js new file mode 100644 index 00000000..af09f838 --- /dev/null +++ b/lib/cartodb/utils/substitution-tokens.js @@ -0,0 +1,19 @@ +var SUBSTITUTION_TOKENS = { + bbox: /!bbox!/g, + scale_denominator: /!scale_denominator!/g, + pixel_width: /!pixel_width!/g, + pixel_height: /!pixel_height!/g +}; + +var SubstitutionTokens = { + replace: function(sql, replaceValues) { + Object.keys(replaceValues).forEach(function(token) { + if (SUBSTITUTION_TOKENS[token]) { + sql = sql.replace(SUBSTITUTION_TOKENS[token], replaceValues[token]); + } + }); + return sql; + } +}; + +module.exports = SubstitutionTokens; From 163c10b66e836999705760cab998adebaf1e85ac Mon Sep 17 00:00:00 2001 From: Francisco Dans Date: Tue, 17 May 2016 15:03:48 +0200 Subject: [PATCH 12/17] upgrades turbo-carto --- NEWS.md | 3 +- npm-shrinkwrap.json | 535 ++++++++++++++++++++++---------------------- package.json | 2 +- 3 files changed, 271 insertions(+), 269 deletions(-) diff --git a/NEWS.md b/NEWS.md index f2259e37..810b9b45 100644 --- a/NEWS.md +++ b/NEWS.md @@ -2,7 +2,8 @@ ## 2.42.1 -Released 2016-mm-dd +Released 2016-05-17 +- Upgraded turbo-carto to fix reversed color scales ## 2.42.0 diff --git a/npm-shrinkwrap.json b/npm-shrinkwrap.json index e0d77056..16509d9d 100644 --- a/npm-shrinkwrap.json +++ b/npm-shrinkwrap.json @@ -4,98 +4,98 @@ "dependencies": { "body-parser": { "version": "1.14.2", - "from": "body-parser@>=1.14.0 <1.15.0", + "from": "https://registry.npmjs.org/body-parser/-/body-parser-1.14.2.tgz", "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.14.2.tgz", "dependencies": { "bytes": { "version": "2.2.0", - "from": "bytes@2.2.0", + "from": "https://registry.npmjs.org/bytes/-/bytes-2.2.0.tgz", "resolved": "https://registry.npmjs.org/bytes/-/bytes-2.2.0.tgz" }, "content-type": { "version": "1.0.2", - "from": "content-type@>=1.0.1 <1.1.0", + "from": "https://registry.npmjs.org/content-type/-/content-type-1.0.2.tgz", "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.2.tgz" }, "depd": { "version": "1.1.0", - "from": "depd@>=1.1.0 <1.2.0", + "from": "https://registry.npmjs.org/depd/-/depd-1.1.0.tgz", "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.0.tgz" }, "http-errors": { "version": "1.3.1", - "from": "http-errors@>=1.3.1 <1.4.0", + "from": "https://registry.npmjs.org/http-errors/-/http-errors-1.3.1.tgz", "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.3.1.tgz", "dependencies": { "inherits": { "version": "2.0.1", - "from": "inherits@>=2.0.1 <2.1.0", + "from": "https://registry.npmjs.org/inherits/-/inherits-2.0.1.tgz", "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.1.tgz" }, "statuses": { "version": "1.2.1", - "from": "statuses@>=1.0.0 <2.0.0", + "from": "https://registry.npmjs.org/statuses/-/statuses-1.2.1.tgz", "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.2.1.tgz" } } }, "iconv-lite": { "version": "0.4.13", - "from": "iconv-lite@0.4.13", + "from": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.13.tgz", "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.13.tgz" }, "on-finished": { "version": "2.3.0", - "from": "on-finished@>=2.3.0 <2.4.0", + "from": "https://registry.npmjs.org/on-finished/-/on-finished-2.3.0.tgz", "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", + "from": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz" } } }, "qs": { "version": "5.2.0", - "from": "qs@5.2.0", + "from": "https://registry.npmjs.org/qs/-/qs-5.2.0.tgz", "resolved": "https://registry.npmjs.org/qs/-/qs-5.2.0.tgz" }, "raw-body": { "version": "2.1.6", - "from": "raw-body@>=2.1.5 <2.2.0", + "from": "https://registry.npmjs.org/raw-body/-/raw-body-2.1.6.tgz", "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.1.6.tgz", "dependencies": { "bytes": { "version": "2.3.0", - "from": "bytes@2.3.0", + "from": "https://registry.npmjs.org/bytes/-/bytes-2.3.0.tgz", "resolved": "https://registry.npmjs.org/bytes/-/bytes-2.3.0.tgz" }, "unpipe": { "version": "1.0.0", - "from": "unpipe@1.0.0", + "from": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz" } } }, "type-is": { "version": "1.6.12", - "from": "type-is@>=1.6.10 <1.7.0", + "from": "https://registry.npmjs.org/type-is/-/type-is-1.6.12.tgz", "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.12.tgz", "dependencies": { "media-typer": { "version": "0.3.0", - "from": "media-typer@0.3.0", + "from": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz", "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz" }, "mime-types": { "version": "2.1.11", - "from": "mime-types@>=2.1.2 <2.2.0", + "from": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.11.tgz", "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.11.tgz", "dependencies": { "mime-db": { "version": "1.23.0", - "from": "mime-db@>=1.23.0 <1.24.0", + "from": "https://registry.npmjs.org/mime-db/-/mime-db-1.23.0.tgz", "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.23.0.tgz" } } @@ -106,67 +106,67 @@ }, "camshaft": { "version": "0.8.0", - "from": "camshaft@0.8.0", + "from": "https://registry.npmjs.org/camshaft/-/camshaft-0.8.0.tgz", "resolved": "https://registry.npmjs.org/camshaft/-/camshaft-0.8.0.tgz", "dependencies": { "async": { "version": "1.5.2", - "from": "async@>=1.5.2 <2.0.0", + "from": "https://registry.npmjs.org/async/-/async-1.5.2.tgz", "resolved": "https://registry.npmjs.org/async/-/async-1.5.2.tgz" }, "request": { "version": "2.72.0", - "from": "request@>=2.69.0 <3.0.0", + "from": "https://registry.npmjs.org/request/-/request-2.72.0.tgz", "resolved": "https://registry.npmjs.org/request/-/request-2.72.0.tgz", "dependencies": { "aws-sign2": { "version": "0.6.0", - "from": "aws-sign2@>=0.6.0 <0.7.0", + "from": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.6.0.tgz", "resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.6.0.tgz" }, "aws4": { "version": "1.4.1", - "from": "aws4@>=1.2.1 <2.0.0", + "from": "https://registry.npmjs.org/aws4/-/aws4-1.4.1.tgz", "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.4.1.tgz" }, "bl": { "version": "1.1.2", - "from": "bl@>=1.1.2 <1.2.0", + "from": "https://registry.npmjs.org/bl/-/bl-1.1.2.tgz", "resolved": "https://registry.npmjs.org/bl/-/bl-1.1.2.tgz", "dependencies": { "readable-stream": { "version": "2.0.6", - "from": "readable-stream@>=2.0.5 <2.1.0", + "from": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.0.6.tgz", "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.0.6.tgz", "dependencies": { "core-util-is": { "version": "1.0.2", - "from": "core-util-is@>=1.0.0 <1.1.0", + "from": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", "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 <2.1.0", + "from": "https://registry.npmjs.org/inherits/-/inherits-2.0.1.tgz", "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.1.tgz" }, "isarray": { "version": "1.0.0", - "from": "isarray@>=1.0.0 <1.1.0", + "from": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz" }, "process-nextick-args": { "version": "1.0.7", - "from": "process-nextick-args@>=1.0.6 <1.1.0", + "from": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-1.0.7.tgz", "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-1.0.7.tgz" }, "string_decoder": { "version": "0.10.31", - "from": "string_decoder@>=0.10.0 <0.11.0", + "from": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz", "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 <1.1.0", + "from": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz" } } @@ -175,141 +175,141 @@ }, "caseless": { "version": "0.11.0", - "from": "caseless@>=0.11.0 <0.12.0", + "from": "https://registry.npmjs.org/caseless/-/caseless-0.11.0.tgz", "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.11.0.tgz" }, "combined-stream": { "version": "1.0.5", - "from": "combined-stream@>=1.0.5 <1.1.0", + "from": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.5.tgz", "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 <1.1.0", + "from": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz" } } }, "extend": { "version": "3.0.0", - "from": "extend@>=3.0.0 <3.1.0", + "from": "https://registry.npmjs.org/extend/-/extend-3.0.0.tgz", "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.0.tgz" }, "forever-agent": { "version": "0.6.1", - "from": "forever-agent@>=0.6.1 <0.7.0", + "from": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz", "resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz" }, "form-data": { "version": "1.0.0-rc4", - "from": "form-data@>=1.0.0-rc3 <1.1.0", + "from": "https://registry.npmjs.org/form-data/-/form-data-1.0.0-rc4.tgz", "resolved": "https://registry.npmjs.org/form-data/-/form-data-1.0.0-rc4.tgz" }, "har-validator": { "version": "2.0.6", - "from": "har-validator@>=2.0.6 <2.1.0", + "from": "https://registry.npmjs.org/har-validator/-/har-validator-2.0.6.tgz", "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-2.0.6.tgz", "dependencies": { "chalk": { "version": "1.1.3", - "from": "chalk@>=1.1.1 <2.0.0", + "from": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", "dependencies": { "ansi-styles": { "version": "2.2.1", - "from": "ansi-styles@>=2.2.1 <3.0.0", + "from": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz" }, "escape-string-regexp": { "version": "1.0.5", - "from": "escape-string-regexp@>=1.0.2 <2.0.0", + "from": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz" }, "has-ansi": { "version": "2.0.0", - "from": "has-ansi@>=2.0.0 <3.0.0", + "from": "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz", "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 <3.0.0", + "from": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.0.0.tgz", "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.0.0.tgz" } } }, "strip-ansi": { "version": "3.0.1", - "from": "strip-ansi@>=3.0.0 <4.0.0", + "from": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", "dependencies": { "ansi-regex": { "version": "2.0.0", - "from": "ansi-regex@>=2.0.0 <3.0.0", + "from": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.0.0.tgz", "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 <3.0.0", + "from": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz" } } }, "commander": { "version": "2.9.0", - "from": "commander@>=2.9.0 <3.0.0", + "from": "https://registry.npmjs.org/commander/-/commander-2.9.0.tgz", "resolved": "https://registry.npmjs.org/commander/-/commander-2.9.0.tgz", "dependencies": { "graceful-readlink": { "version": "1.0.1", - "from": "graceful-readlink@>=1.0.0", + "from": "https://registry.npmjs.org/graceful-readlink/-/graceful-readlink-1.0.1.tgz", "resolved": "https://registry.npmjs.org/graceful-readlink/-/graceful-readlink-1.0.1.tgz" } } }, "is-my-json-valid": { "version": "2.13.1", - "from": "is-my-json-valid@>=2.12.4 <3.0.0", + "from": "https://registry.npmjs.org/is-my-json-valid/-/is-my-json-valid-2.13.1.tgz", "resolved": "https://registry.npmjs.org/is-my-json-valid/-/is-my-json-valid-2.13.1.tgz", "dependencies": { "generate-function": { "version": "2.0.0", - "from": "generate-function@>=2.0.0 <3.0.0", + "from": "https://registry.npmjs.org/generate-function/-/generate-function-2.0.0.tgz", "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 <2.0.0", + "from": "https://registry.npmjs.org/generate-object-property/-/generate-object-property-1.2.0.tgz", "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 <2.0.0", + "from": "https://registry.npmjs.org/is-property/-/is-property-1.0.2.tgz", "resolved": "https://registry.npmjs.org/is-property/-/is-property-1.0.2.tgz" } } }, "jsonpointer": { "version": "2.0.0", - "from": "jsonpointer@2.0.0", + "from": "https://registry.npmjs.org/jsonpointer/-/jsonpointer-2.0.0.tgz", "resolved": "https://registry.npmjs.org/jsonpointer/-/jsonpointer-2.0.0.tgz" }, "xtend": { "version": "4.0.1", - "from": "xtend@>=4.0.0 <5.0.0", + "from": "https://registry.npmjs.org/xtend/-/xtend-4.0.1.tgz", "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.1.tgz" } } }, "pinkie-promise": { "version": "2.0.1", - "from": "pinkie-promise@>=2.0.0 <3.0.0", + "from": "https://registry.npmjs.org/pinkie-promise/-/pinkie-promise-2.0.1.tgz", "resolved": "https://registry.npmjs.org/pinkie-promise/-/pinkie-promise-2.0.1.tgz", "dependencies": { "pinkie": { "version": "2.0.4", - "from": "pinkie@>=2.0.0 <3.0.0", + "from": "https://registry.npmjs.org/pinkie/-/pinkie-2.0.4.tgz", "resolved": "https://registry.npmjs.org/pinkie/-/pinkie-2.0.4.tgz" } } @@ -318,106 +318,106 @@ }, "hawk": { "version": "3.1.3", - "from": "hawk@>=3.1.3 <3.2.0", + "from": "https://registry.npmjs.org/hawk/-/hawk-3.1.3.tgz", "resolved": "https://registry.npmjs.org/hawk/-/hawk-3.1.3.tgz", "dependencies": { "hoek": { "version": "2.16.3", - "from": "hoek@>=2.0.0 <3.0.0", + "from": "https://registry.npmjs.org/hoek/-/hoek-2.16.3.tgz", "resolved": "https://registry.npmjs.org/hoek/-/hoek-2.16.3.tgz" }, "boom": { "version": "2.10.1", - "from": "boom@>=2.0.0 <3.0.0", + "from": "https://registry.npmjs.org/boom/-/boom-2.10.1.tgz", "resolved": "https://registry.npmjs.org/boom/-/boom-2.10.1.tgz" }, "cryptiles": { "version": "2.0.5", - "from": "cryptiles@>=2.0.0 <3.0.0", + "from": "https://registry.npmjs.org/cryptiles/-/cryptiles-2.0.5.tgz", "resolved": "https://registry.npmjs.org/cryptiles/-/cryptiles-2.0.5.tgz" }, "sntp": { "version": "1.0.9", - "from": "sntp@>=1.0.0 <2.0.0", + "from": "https://registry.npmjs.org/sntp/-/sntp-1.0.9.tgz", "resolved": "https://registry.npmjs.org/sntp/-/sntp-1.0.9.tgz" } } }, "http-signature": { "version": "1.1.1", - "from": "http-signature@>=1.1.0 <1.2.0", + "from": "https://registry.npmjs.org/http-signature/-/http-signature-1.1.1.tgz", "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.1.1.tgz", "dependencies": { "assert-plus": { "version": "0.2.0", - "from": "assert-plus@>=0.2.0 <0.3.0", + "from": "https://registry.npmjs.org/assert-plus/-/assert-plus-0.2.0.tgz", "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-0.2.0.tgz" }, "jsprim": { "version": "1.2.2", - "from": "jsprim@>=1.2.2 <2.0.0", + "from": "https://registry.npmjs.org/jsprim/-/jsprim-1.2.2.tgz", "resolved": "https://registry.npmjs.org/jsprim/-/jsprim-1.2.2.tgz", "dependencies": { "extsprintf": { "version": "1.0.2", - "from": "extsprintf@1.0.2", + "from": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.0.2.tgz", "resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.0.2.tgz" }, "json-schema": { "version": "0.2.2", - "from": "json-schema@0.2.2", + "from": "https://registry.npmjs.org/json-schema/-/json-schema-0.2.2.tgz", "resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.2.2.tgz" }, "verror": { "version": "1.3.6", - "from": "verror@1.3.6", + "from": "https://registry.npmjs.org/verror/-/verror-1.3.6.tgz", "resolved": "https://registry.npmjs.org/verror/-/verror-1.3.6.tgz" } } }, "sshpk": { "version": "1.8.3", - "from": "sshpk@>=1.7.0 <2.0.0", + "from": "https://registry.npmjs.org/sshpk/-/sshpk-1.8.3.tgz", "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.8.3.tgz", "dependencies": { "asn1": { "version": "0.2.3", - "from": "asn1@>=0.2.3 <0.3.0", + "from": "https://registry.npmjs.org/asn1/-/asn1-0.2.3.tgz", "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.3.tgz" }, "assert-plus": { "version": "1.0.0", - "from": "assert-plus@>=1.0.0 <2.0.0", + "from": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz" }, "dashdash": { "version": "1.13.1", - "from": "dashdash@>=1.12.0 <2.0.0", + "from": "https://registry.npmjs.org/dashdash/-/dashdash-1.13.1.tgz", "resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.13.1.tgz" }, "getpass": { "version": "0.1.6", - "from": "getpass@>=0.1.1 <0.2.0", + "from": "https://registry.npmjs.org/getpass/-/getpass-0.1.6.tgz", "resolved": "https://registry.npmjs.org/getpass/-/getpass-0.1.6.tgz" }, "jsbn": { "version": "0.1.0", - "from": "jsbn@>=0.1.0 <0.2.0", + "from": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.0.tgz", "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.0.tgz" }, "tweetnacl": { "version": "0.13.3", - "from": "tweetnacl@>=0.13.0 <0.14.0", + "from": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.13.3.tgz", "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.13.3.tgz" }, "jodid25519": { "version": "1.0.2", - "from": "jodid25519@>=1.0.0 <2.0.0", + "from": "https://registry.npmjs.org/jodid25519/-/jodid25519-1.0.2.tgz", "resolved": "https://registry.npmjs.org/jodid25519/-/jodid25519-1.0.2.tgz" }, "ecc-jsbn": { "version": "0.1.1", - "from": "ecc-jsbn@>=0.1.1 <0.2.0", + "from": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.1.tgz", "resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.1.tgz" } } @@ -426,59 +426,59 @@ }, "is-typedarray": { "version": "1.0.0", - "from": "is-typedarray@>=1.0.0 <1.1.0", + "from": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz" }, "isstream": { "version": "0.1.2", - "from": "isstream@>=0.1.2 <0.2.0", + "from": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz", "resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz" }, "json-stringify-safe": { "version": "5.0.1", - "from": "json-stringify-safe@>=5.0.1 <5.1.0", + "from": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz", "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz" }, "mime-types": { "version": "2.1.11", - "from": "mime-types@>=2.1.7 <2.2.0", + "from": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.11.tgz", "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.11.tgz", "dependencies": { "mime-db": { "version": "1.23.0", - "from": "mime-db@>=1.23.0 <1.24.0", + "from": "https://registry.npmjs.org/mime-db/-/mime-db-1.23.0.tgz", "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.23.0.tgz" } } }, "node-uuid": { "version": "1.4.7", - "from": "node-uuid@>=1.4.7 <1.5.0", + "from": "https://registry.npmjs.org/node-uuid/-/node-uuid-1.4.7.tgz", "resolved": "https://registry.npmjs.org/node-uuid/-/node-uuid-1.4.7.tgz" }, "oauth-sign": { "version": "0.8.2", - "from": "oauth-sign@>=0.8.1 <0.9.0", + "from": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.8.2.tgz", "resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.8.2.tgz" }, "qs": { "version": "6.1.0", - "from": "qs@>=6.1.0 <6.2.0", + "from": "https://registry.npmjs.org/qs/-/qs-6.1.0.tgz", "resolved": "https://registry.npmjs.org/qs/-/qs-6.1.0.tgz" }, "stringstream": { "version": "0.0.5", - "from": "stringstream@>=0.0.4 <0.1.0", + "from": "https://registry.npmjs.org/stringstream/-/stringstream-0.0.5.tgz", "resolved": "https://registry.npmjs.org/stringstream/-/stringstream-0.0.5.tgz" }, "tough-cookie": { "version": "2.2.2", - "from": "tough-cookie@>=2.2.0 <2.3.0", + "from": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.2.2.tgz", "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.2.2.tgz" }, "tunnel-agent": { "version": "0.4.3", - "from": "tunnel-agent@>=0.4.1 <0.5.0", + "from": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.4.3.tgz", "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.4.3.tgz" } } @@ -487,22 +487,22 @@ }, "cartodb-psql": { "version": "0.6.1", - "from": "cartodb-psql@>=0.6.1 <0.7.0", + "from": "https://registry.npmjs.org/cartodb-psql/-/cartodb-psql-0.6.1.tgz", "resolved": "https://registry.npmjs.org/cartodb-psql/-/cartodb-psql-0.6.1.tgz", "dependencies": { "pg": { "version": "2.6.2-cdb3", - "from": "git://github.com/CartoDB/node-postgres.git#2.6.2-cdb3", + "from": "git://github.com/CartoDB/node-postgres.git#069c5296d1a093077feff21719641bb9e71fc50e", "resolved": "git://github.com/CartoDB/node-postgres.git#069c5296d1a093077feff21719641bb9e71fc50e", "dependencies": { "generic-pool": { "version": "2.0.3", - "from": "generic-pool@2.0.3", + "from": "https://registry.npmjs.org/generic-pool/-/generic-pool-2.0.3.tgz", "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", + "from": "https://registry.npmjs.org/buffer-writer/-/buffer-writer-1.0.0.tgz", "resolved": "https://registry.npmjs.org/buffer-writer/-/buffer-writer-1.0.0.tgz" } } @@ -511,42 +511,42 @@ }, "cartodb-query-tables": { "version": "0.1.0", - "from": "cartodb-query-tables@>=0.1.0 <0.2.0", + "from": "https://registry.npmjs.org/cartodb-query-tables/-/cartodb-query-tables-0.1.0.tgz", "resolved": "https://registry.npmjs.org/cartodb-query-tables/-/cartodb-query-tables-0.1.0.tgz" }, "cartodb-redis": { "version": "0.13.0", - "from": "cartodb-redis@>=0.13.0 <0.14.0", + "from": "https://registry.npmjs.org/cartodb-redis/-/cartodb-redis-0.13.0.tgz", "resolved": "https://registry.npmjs.org/cartodb-redis/-/cartodb-redis-0.13.0.tgz", "dependencies": { "redis-mpool": { "version": "0.1.0", - "from": "git://github.com/CartoDB/node-redis-mpool.git#0.1.0", + "from": "git://github.com/CartoDB/node-redis-mpool.git#47510b8d4525ee24aa2e5328976372274a1d144e", "resolved": "git://github.com/CartoDB/node-redis-mpool.git#47510b8d4525ee24aa2e5328976372274a1d144e", "dependencies": { "generic-pool": { "version": "2.1.1", - "from": "generic-pool@>=2.1.1 <2.2.0", + "from": "https://registry.npmjs.org/generic-pool/-/generic-pool-2.1.1.tgz", "resolved": "https://registry.npmjs.org/generic-pool/-/generic-pool-2.1.1.tgz" }, "redis": { "version": "0.12.1", - "from": "redis@>=0.12.1 <0.13.0", + "from": "https://registry.npmjs.org/redis/-/redis-0.12.1.tgz", "resolved": "https://registry.npmjs.org/redis/-/redis-0.12.1.tgz" }, "hiredis": { "version": "0.1.17", - "from": "hiredis@>=0.1.17 <0.2.0", + "from": "https://registry.npmjs.org/hiredis/-/hiredis-0.1.17.tgz", "resolved": "https://registry.npmjs.org/hiredis/-/hiredis-0.1.17.tgz", "dependencies": { "bindings": { "version": "1.2.1", - "from": "bindings@*", + "from": "https://registry.npmjs.org/bindings/-/bindings-1.2.1.tgz", "resolved": "https://registry.npmjs.org/bindings/-/bindings-1.2.1.tgz" }, "nan": { "version": "1.1.2", - "from": "nan@>=1.1.0 <1.2.0", + "from": "https://registry.npmjs.org/nan/-/nan-1.1.2.tgz", "resolved": "https://registry.npmjs.org/nan/-/nan-1.1.2.tgz" } } @@ -557,228 +557,228 @@ }, "debug": { "version": "2.2.0", - "from": "debug@>=2.2.0 <2.3.0", + "from": "https://registry.npmjs.org/debug/-/debug-2.2.0.tgz", "resolved": "https://registry.npmjs.org/debug/-/debug-2.2.0.tgz", "dependencies": { "ms": { "version": "0.7.1", - "from": "ms@0.7.1", + "from": "https://registry.npmjs.org/ms/-/ms-0.7.1.tgz", "resolved": "https://registry.npmjs.org/ms/-/ms-0.7.1.tgz" } } }, "dot": { "version": "1.0.3", - "from": "dot@>=1.0.2 <1.1.0", + "from": "https://registry.npmjs.org/dot/-/dot-1.0.3.tgz", "resolved": "https://registry.npmjs.org/dot/-/dot-1.0.3.tgz" }, "express": { "version": "4.13.4", - "from": "express@>=4.13.3 <4.14.0", + "from": "https://registry.npmjs.org/express/-/express-4.13.4.tgz", "resolved": "https://registry.npmjs.org/express/-/express-4.13.4.tgz", "dependencies": { "accepts": { "version": "1.2.13", - "from": "accepts@>=1.2.12 <1.3.0", + "from": "https://registry.npmjs.org/accepts/-/accepts-1.2.13.tgz", "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.2.13.tgz", "dependencies": { "mime-types": { "version": "2.1.11", - "from": "mime-types@>=2.1.10 <2.2.0", + "from": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.11.tgz", "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.11.tgz", "dependencies": { "mime-db": { "version": "1.23.0", - "from": "mime-db@>=1.23.0 <1.24.0", + "from": "https://registry.npmjs.org/mime-db/-/mime-db-1.23.0.tgz", "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.23.0.tgz" } } }, "negotiator": { "version": "0.5.3", - "from": "negotiator@0.5.3", + "from": "https://registry.npmjs.org/negotiator/-/negotiator-0.5.3.tgz", "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.5.3.tgz" } } }, "array-flatten": { "version": "1.1.1", - "from": "array-flatten@1.1.1", + "from": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz", "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz" }, "content-disposition": { "version": "0.5.1", - "from": "content-disposition@0.5.1", + "from": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.1.tgz", "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.1.tgz" }, "content-type": { "version": "1.0.2", - "from": "content-type@>=1.0.1 <1.1.0", + "from": "https://registry.npmjs.org/content-type/-/content-type-1.0.2.tgz", "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.2.tgz" }, "cookie": { "version": "0.1.5", - "from": "cookie@0.1.5", + "from": "https://registry.npmjs.org/cookie/-/cookie-0.1.5.tgz", "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.1.5.tgz" }, "cookie-signature": { "version": "1.0.6", - "from": "cookie-signature@1.0.6", + "from": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz", "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz" }, "depd": { "version": "1.1.0", - "from": "depd@>=1.1.0 <1.2.0", + "from": "https://registry.npmjs.org/depd/-/depd-1.1.0.tgz", "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.0.tgz" }, "escape-html": { "version": "1.0.3", - "from": "escape-html@>=1.0.3 <1.1.0", + "from": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz", "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz" }, "etag": { "version": "1.7.0", - "from": "etag@>=1.7.0 <1.8.0", + "from": "https://registry.npmjs.org/etag/-/etag-1.7.0.tgz", "resolved": "https://registry.npmjs.org/etag/-/etag-1.7.0.tgz" }, "finalhandler": { "version": "0.4.1", - "from": "finalhandler@0.4.1", + "from": "https://registry.npmjs.org/finalhandler/-/finalhandler-0.4.1.tgz", "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-0.4.1.tgz", "dependencies": { "unpipe": { "version": "1.0.0", - "from": "unpipe@>=1.0.0 <1.1.0", + "from": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz" } } }, "fresh": { "version": "0.3.0", - "from": "fresh@0.3.0", + "from": "https://registry.npmjs.org/fresh/-/fresh-0.3.0.tgz", "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.3.0.tgz" }, "merge-descriptors": { "version": "1.0.1", - "from": "merge-descriptors@1.0.1", + "from": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz", "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz" }, "methods": { "version": "1.1.2", - "from": "methods@>=1.1.2 <1.2.0", + "from": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz", "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz" }, "on-finished": { "version": "2.3.0", - "from": "on-finished@>=2.3.0 <2.4.0", + "from": "https://registry.npmjs.org/on-finished/-/on-finished-2.3.0.tgz", "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", + "from": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz" } } }, "parseurl": { "version": "1.3.1", - "from": "parseurl@>=1.3.1 <1.4.0", + "from": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.1.tgz", "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.1.tgz" }, "path-to-regexp": { "version": "0.1.7", - "from": "path-to-regexp@0.1.7", + "from": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz", "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz" }, "proxy-addr": { "version": "1.0.10", - "from": "proxy-addr@>=1.0.10 <1.1.0", + "from": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-1.0.10.tgz", "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-1.0.10.tgz", "dependencies": { "forwarded": { "version": "0.1.0", - "from": "forwarded@>=0.1.0 <0.2.0", + "from": "https://registry.npmjs.org/forwarded/-/forwarded-0.1.0.tgz", "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.1.0.tgz" }, "ipaddr.js": { "version": "1.0.5", - "from": "ipaddr.js@1.0.5", + "from": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.0.5.tgz", "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.0.5.tgz" } } }, "qs": { "version": "4.0.0", - "from": "qs@4.0.0", + "from": "https://registry.npmjs.org/qs/-/qs-4.0.0.tgz", "resolved": "https://registry.npmjs.org/qs/-/qs-4.0.0.tgz" }, "range-parser": { "version": "1.0.3", - "from": "range-parser@>=1.0.3 <1.1.0", + "from": "https://registry.npmjs.org/range-parser/-/range-parser-1.0.3.tgz", "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.0.3.tgz" }, "send": { "version": "0.13.1", - "from": "send@0.13.1", + "from": "https://registry.npmjs.org/send/-/send-0.13.1.tgz", "resolved": "https://registry.npmjs.org/send/-/send-0.13.1.tgz", "dependencies": { "destroy": { "version": "1.0.4", - "from": "destroy@>=1.0.4 <1.1.0", + "from": "https://registry.npmjs.org/destroy/-/destroy-1.0.4.tgz", "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.0.4.tgz" }, "http-errors": { "version": "1.3.1", - "from": "http-errors@>=1.3.1 <1.4.0", + "from": "https://registry.npmjs.org/http-errors/-/http-errors-1.3.1.tgz", "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.3.1.tgz", "dependencies": { "inherits": { "version": "2.0.1", - "from": "inherits@>=2.0.1 <2.1.0", + "from": "https://registry.npmjs.org/inherits/-/inherits-2.0.1.tgz", "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.1.tgz" } } }, "mime": { "version": "1.3.4", - "from": "mime@1.3.4", + "from": "https://registry.npmjs.org/mime/-/mime-1.3.4.tgz", "resolved": "https://registry.npmjs.org/mime/-/mime-1.3.4.tgz" }, "ms": { "version": "0.7.1", - "from": "ms@0.7.1", + "from": "https://registry.npmjs.org/ms/-/ms-0.7.1.tgz", "resolved": "https://registry.npmjs.org/ms/-/ms-0.7.1.tgz" }, "statuses": { "version": "1.2.1", - "from": "statuses@>=1.2.1 <1.3.0", + "from": "https://registry.npmjs.org/statuses/-/statuses-1.2.1.tgz", "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.2.1.tgz" } } }, "serve-static": { "version": "1.10.2", - "from": "serve-static@>=1.10.2 <1.11.0", + "from": "https://registry.npmjs.org/serve-static/-/serve-static-1.10.2.tgz", "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.10.2.tgz" }, "type-is": { "version": "1.6.12", - "from": "type-is@>=1.6.6 <1.7.0", + "from": "https://registry.npmjs.org/type-is/-/type-is-1.6.12.tgz", "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.12.tgz", "dependencies": { "media-typer": { "version": "0.3.0", - "from": "media-typer@0.3.0", + "from": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz", "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz" }, "mime-types": { "version": "2.1.11", - "from": "mime-types@>=2.1.10 <2.2.0", + "from": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.11.tgz", "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.11.tgz", "dependencies": { "mime-db": { "version": "1.23.0", - "from": "mime-db@>=1.23.0 <1.24.0", + "from": "https://registry.npmjs.org/mime-db/-/mime-db-1.23.0.tgz", "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.23.0.tgz" } } @@ -787,19 +787,19 @@ }, "utils-merge": { "version": "1.0.0", - "from": "utils-merge@1.0.0", + "from": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.0.tgz", "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.0.tgz" }, "vary": { "version": "1.0.1", - "from": "vary@>=1.0.1 <1.1.0", + "from": "https://registry.npmjs.org/vary/-/vary-1.0.1.tgz", "resolved": "https://registry.npmjs.org/vary/-/vary-1.0.1.tgz" } } }, "fastly-purge": { "version": "1.0.1", - "from": "fastly-purge@>=1.0.1 <1.1.0", + "from": "https://registry.npmjs.org/fastly-purge/-/fastly-purge-1.0.1.tgz", "resolved": "https://registry.npmjs.org/fastly-purge/-/fastly-purge-1.0.1.tgz" }, "log4js": { @@ -809,96 +809,96 @@ "dependencies": { "async": { "version": "0.2.10", - "from": "async@>=0.2.0 <0.3.0", + "from": "https://registry.npmjs.org/async/-/async-0.2.10.tgz", "resolved": "https://registry.npmjs.org/async/-/async-0.2.10.tgz" }, "readable-stream": { "version": "1.0.34", - "from": "readable-stream@>=1.0.2 <1.1.0", + "from": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.0.34.tgz", "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.0.34.tgz", "dependencies": { "core-util-is": { "version": "1.0.2", - "from": "core-util-is@>=1.0.0 <1.1.0", + "from": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz" }, "isarray": { "version": "0.0.1", - "from": "isarray@0.0.1", + "from": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz" }, "string_decoder": { "version": "0.10.31", - "from": "string_decoder@>=0.10.0 <0.11.0", + "from": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz", "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz" }, "inherits": { "version": "2.0.1", - "from": "inherits@>=2.0.1 <2.1.0", + "from": "https://registry.npmjs.org/inherits/-/inherits-2.0.1.tgz", "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.1.tgz" } } }, "semver": { "version": "4.3.6", - "from": "semver@>=4.3.3 <4.4.0", + "from": "https://registry.npmjs.org/semver/-/semver-4.3.6.tgz", "resolved": "https://registry.npmjs.org/semver/-/semver-4.3.6.tgz" }, "underscore": { "version": "1.8.2", - "from": "underscore@1.8.2", + "from": "https://registry.npmjs.org/underscore/-/underscore-1.8.2.tgz", "resolved": "https://registry.npmjs.org/underscore/-/underscore-1.8.2.tgz" } } }, "lru-cache": { "version": "2.6.5", - "from": "lru-cache@2.6.5", + "from": "https://registry.npmjs.org/lru-cache/-/lru-cache-2.6.5.tgz", "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-2.6.5.tgz" }, "lzma": { "version": "1.3.7", - "from": "lzma@>=1.3.7 <1.4.0", + "from": "https://registry.npmjs.org/lzma/-/lzma-1.3.7.tgz", "resolved": "https://registry.npmjs.org/lzma/-/lzma-1.3.7.tgz" }, "node-statsd": { "version": "0.0.7", - "from": "node-statsd@>=0.0.7 <0.1.0", + "from": "https://registry.npmjs.org/node-statsd/-/node-statsd-0.0.7.tgz", "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 <1.1.0", + "from": "https://registry.npmjs.org/queue-async/-/queue-async-1.0.7.tgz", "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 <0.5.0", + "from": "https://registry.npmjs.org/redis-mpool/-/redis-mpool-0.4.0.tgz", "resolved": "https://registry.npmjs.org/redis-mpool/-/redis-mpool-0.4.0.tgz", "dependencies": { "generic-pool": { "version": "2.1.1", - "from": "generic-pool@>=2.1.1 <2.2.0", + "from": "https://registry.npmjs.org/generic-pool/-/generic-pool-2.1.1.tgz", "resolved": "https://registry.npmjs.org/generic-pool/-/generic-pool-2.1.1.tgz" }, "redis": { "version": "0.12.1", - "from": "redis@>=0.12.1 <0.13.0", + "from": "https://registry.npmjs.org/redis/-/redis-0.12.1.tgz", "resolved": "https://registry.npmjs.org/redis/-/redis-0.12.1.tgz" }, "hiredis": { "version": "0.1.17", - "from": "hiredis@>=0.1.17 <0.2.0", + "from": "https://registry.npmjs.org/hiredis/-/hiredis-0.1.17.tgz", "resolved": "https://registry.npmjs.org/hiredis/-/hiredis-0.1.17.tgz", "dependencies": { "bindings": { "version": "1.2.1", - "from": "bindings@*", + "from": "https://registry.npmjs.org/bindings/-/bindings-1.2.1.tgz", "resolved": "https://registry.npmjs.org/bindings/-/bindings-1.2.1.tgz" }, "nan": { "version": "1.1.2", - "from": "nan@>=1.1.0 <1.2.0", + "from": "https://registry.npmjs.org/nan/-/nan-1.1.2.tgz", "resolved": "https://registry.npmjs.org/nan/-/nan-1.1.2.tgz" } } @@ -907,47 +907,47 @@ }, "request": { "version": "2.62.0", - "from": "request@>=2.62.0 <2.63.0", + "from": "https://registry.npmjs.org/request/-/request-2.62.0.tgz", "resolved": "https://registry.npmjs.org/request/-/request-2.62.0.tgz", "dependencies": { "bl": { "version": "1.0.3", - "from": "bl@>=1.0.0 <1.1.0", + "from": "https://registry.npmjs.org/bl/-/bl-1.0.3.tgz", "resolved": "https://registry.npmjs.org/bl/-/bl-1.0.3.tgz", "dependencies": { "readable-stream": { "version": "2.0.6", - "from": "readable-stream@>=2.0.5 <2.1.0", + "from": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.0.6.tgz", "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.0.6.tgz", "dependencies": { "core-util-is": { "version": "1.0.2", - "from": "core-util-is@>=1.0.0 <1.1.0", + "from": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", "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 <2.1.0", + "from": "https://registry.npmjs.org/inherits/-/inherits-2.0.1.tgz", "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.1.tgz" }, "isarray": { "version": "1.0.0", - "from": "isarray@>=1.0.0 <1.1.0", + "from": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz" }, "process-nextick-args": { "version": "1.0.7", - "from": "process-nextick-args@>=1.0.6 <1.1.0", + "from": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-1.0.7.tgz", "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-1.0.7.tgz" }, "string_decoder": { "version": "0.10.31", - "from": "string_decoder@>=0.10.0 <0.11.0", + "from": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz", "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 <1.1.0", + "from": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz" } } @@ -956,247 +956,247 @@ }, "caseless": { "version": "0.11.0", - "from": "caseless@>=0.11.0 <0.12.0", + "from": "https://registry.npmjs.org/caseless/-/caseless-0.11.0.tgz", "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.11.0.tgz" }, "extend": { "version": "3.0.0", - "from": "extend@>=3.0.0 <3.1.0", + "from": "https://registry.npmjs.org/extend/-/extend-3.0.0.tgz", "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.0.tgz" }, "forever-agent": { "version": "0.6.1", - "from": "forever-agent@>=0.6.0 <0.7.0", + "from": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz", "resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz" }, "form-data": { "version": "1.0.0-rc4", - "from": "form-data@>=1.0.0-rc1 <1.1.0", + "from": "https://registry.npmjs.org/form-data/-/form-data-1.0.0-rc4.tgz", "resolved": "https://registry.npmjs.org/form-data/-/form-data-1.0.0-rc4.tgz", "dependencies": { "async": { "version": "1.5.2", - "from": "async@>=1.5.2 <2.0.0", + "from": "https://registry.npmjs.org/async/-/async-1.5.2.tgz", "resolved": "https://registry.npmjs.org/async/-/async-1.5.2.tgz" } } }, "json-stringify-safe": { "version": "5.0.1", - "from": "json-stringify-safe@>=5.0.0 <5.1.0", + "from": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz", "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz" }, "mime-types": { "version": "2.1.11", - "from": "mime-types@>=2.1.2 <2.2.0", + "from": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.11.tgz", "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.11.tgz", "dependencies": { "mime-db": { "version": "1.23.0", - "from": "mime-db@>=1.23.0 <1.24.0", + "from": "https://registry.npmjs.org/mime-db/-/mime-db-1.23.0.tgz", "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.23.0.tgz" } } }, "node-uuid": { "version": "1.4.7", - "from": "node-uuid@>=1.4.0 <1.5.0", + "from": "https://registry.npmjs.org/node-uuid/-/node-uuid-1.4.7.tgz", "resolved": "https://registry.npmjs.org/node-uuid/-/node-uuid-1.4.7.tgz" }, "qs": { "version": "5.1.0", - "from": "qs@>=5.1.0 <5.2.0", + "from": "https://registry.npmjs.org/qs/-/qs-5.1.0.tgz", "resolved": "https://registry.npmjs.org/qs/-/qs-5.1.0.tgz" }, "tunnel-agent": { "version": "0.4.3", - "from": "tunnel-agent@>=0.4.0 <0.5.0", + "from": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.4.3.tgz", "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.4.3.tgz" }, "tough-cookie": { "version": "2.2.2", - "from": "tough-cookie@>=0.12.0", + "from": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.2.2.tgz", "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.2.2.tgz" }, "http-signature": { "version": "0.11.0", - "from": "http-signature@>=0.11.0 <0.12.0", + "from": "https://registry.npmjs.org/http-signature/-/http-signature-0.11.0.tgz", "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 <0.2.0", + "from": "https://registry.npmjs.org/assert-plus/-/assert-plus-0.1.5.tgz", "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-0.1.5.tgz" }, "asn1": { "version": "0.1.11", - "from": "asn1@0.1.11", + "from": "https://registry.npmjs.org/asn1/-/asn1-0.1.11.tgz", "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.1.11.tgz" }, "ctype": { "version": "0.5.3", - "from": "ctype@0.5.3", + "from": "https://registry.npmjs.org/ctype/-/ctype-0.5.3.tgz", "resolved": "https://registry.npmjs.org/ctype/-/ctype-0.5.3.tgz" } } }, "oauth-sign": { "version": "0.8.2", - "from": "oauth-sign@>=0.8.0 <0.9.0", + "from": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.8.2.tgz", "resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.8.2.tgz" }, "hawk": { "version": "3.1.3", - "from": "hawk@>=3.1.0 <3.2.0", + "from": "https://registry.npmjs.org/hawk/-/hawk-3.1.3.tgz", "resolved": "https://registry.npmjs.org/hawk/-/hawk-3.1.3.tgz", "dependencies": { "hoek": { "version": "2.16.3", - "from": "hoek@>=2.0.0 <3.0.0", + "from": "https://registry.npmjs.org/hoek/-/hoek-2.16.3.tgz", "resolved": "https://registry.npmjs.org/hoek/-/hoek-2.16.3.tgz" }, "boom": { "version": "2.10.1", - "from": "boom@>=2.0.0 <3.0.0", + "from": "https://registry.npmjs.org/boom/-/boom-2.10.1.tgz", "resolved": "https://registry.npmjs.org/boom/-/boom-2.10.1.tgz" }, "cryptiles": { "version": "2.0.5", - "from": "cryptiles@>=2.0.0 <3.0.0", + "from": "https://registry.npmjs.org/cryptiles/-/cryptiles-2.0.5.tgz", "resolved": "https://registry.npmjs.org/cryptiles/-/cryptiles-2.0.5.tgz" }, "sntp": { "version": "1.0.9", - "from": "sntp@>=1.0.0 <2.0.0", + "from": "https://registry.npmjs.org/sntp/-/sntp-1.0.9.tgz", "resolved": "https://registry.npmjs.org/sntp/-/sntp-1.0.9.tgz" } } }, "aws-sign2": { "version": "0.5.0", - "from": "aws-sign2@>=0.5.0 <0.6.0", + "from": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.5.0.tgz", "resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.5.0.tgz" }, "stringstream": { "version": "0.0.5", - "from": "stringstream@>=0.0.4 <0.1.0", + "from": "https://registry.npmjs.org/stringstream/-/stringstream-0.0.5.tgz", "resolved": "https://registry.npmjs.org/stringstream/-/stringstream-0.0.5.tgz" }, "combined-stream": { "version": "1.0.5", - "from": "combined-stream@>=1.0.1 <1.1.0", + "from": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.5.tgz", "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 <1.1.0", + "from": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz" } } }, "isstream": { "version": "0.1.2", - "from": "isstream@>=0.1.1 <0.2.0", + "from": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz", "resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz" }, "har-validator": { "version": "1.8.0", - "from": "har-validator@>=1.6.1 <2.0.0", + "from": "https://registry.npmjs.org/har-validator/-/har-validator-1.8.0.tgz", "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-1.8.0.tgz", "dependencies": { "bluebird": { "version": "2.10.2", - "from": "bluebird@>=2.9.30 <3.0.0", + "from": "https://registry.npmjs.org/bluebird/-/bluebird-2.10.2.tgz", "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-2.10.2.tgz" }, "chalk": { "version": "1.1.3", - "from": "chalk@>=1.0.0 <2.0.0", + "from": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", "dependencies": { "ansi-styles": { "version": "2.2.1", - "from": "ansi-styles@>=2.2.1 <3.0.0", + "from": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz" }, "escape-string-regexp": { "version": "1.0.5", - "from": "escape-string-regexp@>=1.0.2 <2.0.0", + "from": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz" }, "has-ansi": { "version": "2.0.0", - "from": "has-ansi@>=2.0.0 <3.0.0", + "from": "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz", "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 <3.0.0", + "from": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.0.0.tgz", "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.0.0.tgz" } } }, "strip-ansi": { "version": "3.0.1", - "from": "strip-ansi@>=3.0.0 <4.0.0", + "from": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", "dependencies": { "ansi-regex": { "version": "2.0.0", - "from": "ansi-regex@>=2.0.0 <3.0.0", + "from": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.0.0.tgz", "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 <3.0.0", + "from": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz" } } }, "commander": { "version": "2.9.0", - "from": "commander@>=2.8.1 <3.0.0", + "from": "https://registry.npmjs.org/commander/-/commander-2.9.0.tgz", "resolved": "https://registry.npmjs.org/commander/-/commander-2.9.0.tgz", "dependencies": { "graceful-readlink": { "version": "1.0.1", - "from": "graceful-readlink@>=1.0.0", + "from": "https://registry.npmjs.org/graceful-readlink/-/graceful-readlink-1.0.1.tgz", "resolved": "https://registry.npmjs.org/graceful-readlink/-/graceful-readlink-1.0.1.tgz" } } }, "is-my-json-valid": { "version": "2.13.1", - "from": "is-my-json-valid@>=2.12.0 <3.0.0", + "from": "https://registry.npmjs.org/is-my-json-valid/-/is-my-json-valid-2.13.1.tgz", "resolved": "https://registry.npmjs.org/is-my-json-valid/-/is-my-json-valid-2.13.1.tgz", "dependencies": { "generate-function": { "version": "2.0.0", - "from": "generate-function@>=2.0.0 <3.0.0", + "from": "https://registry.npmjs.org/generate-function/-/generate-function-2.0.0.tgz", "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 <2.0.0", + "from": "https://registry.npmjs.org/generate-object-property/-/generate-object-property-1.2.0.tgz", "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 <2.0.0", + "from": "https://registry.npmjs.org/is-property/-/is-property-1.0.2.tgz", "resolved": "https://registry.npmjs.org/is-property/-/is-property-1.0.2.tgz" } } }, "jsonpointer": { "version": "2.0.0", - "from": "jsonpointer@2.0.0", + "from": "https://registry.npmjs.org/jsonpointer/-/jsonpointer-2.0.0.tgz", "resolved": "https://registry.npmjs.org/jsonpointer/-/jsonpointer-2.0.0.tgz" }, "xtend": { "version": "4.0.1", - "from": "xtend@>=4.0.0 <5.0.0", + "from": "https://registry.npmjs.org/xtend/-/xtend-4.0.1.tgz", "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.1.tgz" } } @@ -1207,17 +1207,18 @@ }, "step": { "version": "0.0.6", - "from": "step@>=0.0.6 <0.1.0", + "from": "https://registry.npmjs.org/step/-/step-0.0.6.tgz", "resolved": "https://registry.npmjs.org/step/-/step-0.0.6.tgz" }, "step-profiler": { "version": "0.3.0", - "from": "step-profiler@>=0.3.0 <0.4.0" + "from": "step-profiler@0.3.0", + "resolved": "https://registry.npmjs.org/step-profiler/-/step-profiler-0.3.0.tgz" }, "turbo-carto": { - "version": "0.9.0", - "from": "turbo-carto@0.9.0", - "resolved": "https://registry.npmjs.org/turbo-carto/-/turbo-carto-0.9.0.tgz", + "version": "0.9.2", + "from": "turbo-carto@0.9.2", + "resolved": "https://registry.npmjs.org/turbo-carto/-/turbo-carto-0.9.2.tgz", "dependencies": { "colorbrewer": { "version": "1.0.0", @@ -1225,9 +1226,9 @@ "resolved": "https://registry.npmjs.org/colorbrewer/-/colorbrewer-1.0.0.tgz" }, "cartocolor": { - "version": "1.0.2", - "from": "cartocolor@1.0.2", - "resolved": "https://registry.npmjs.org/cartocolor/-/cartocolor-1.0.2.tgz" + "version": "1.1.0", + "from": "cartocolor@1.1.0", + "resolved": "https://registry.npmjs.org/cartocolor/-/cartocolor-1.1.0.tgz" }, "es6-promise": { "version": "3.1.2", @@ -1272,12 +1273,12 @@ }, "underscore": { "version": "1.6.0", - "from": "underscore@>=1.6.0 <1.7.0", + "from": "https://registry.npmjs.org/underscore/-/underscore-1.6.0.tgz", "resolved": "https://registry.npmjs.org/underscore/-/underscore-1.6.0.tgz" }, "windshaft": { "version": "1.19.0", - "from": "windshaft@1.19.0", + "from": "https://registry.npmjs.org/windshaft/-/windshaft-1.19.0.tgz", "resolved": "https://registry.npmjs.org/windshaft/-/windshaft-1.19.0.tgz", "dependencies": { "abaculus": { @@ -1292,7 +1293,7 @@ "dependencies": { "nan": { "version": "1.9.0", - "from": "nan@>=1.8.4 <2.0.0", + "from": "https://registry.npmjs.org/nan/-/nan-1.9.0.tgz", "resolved": "https://registry.npmjs.org/nan/-/nan-1.9.0.tgz" } } @@ -1304,22 +1305,22 @@ "dependencies": { "mapnik-reference": { "version": "6.0.5", - "from": "mapnik-reference@>=6.0.2 <6.1.0", + "from": "https://registry.npmjs.org/mapnik-reference/-/mapnik-reference-6.0.5.tgz", "resolved": "https://registry.npmjs.org/mapnik-reference/-/mapnik-reference-6.0.5.tgz" }, "optimist": { "version": "0.6.1", - "from": "optimist@>=0.6.0 <0.7.0", + "from": "https://registry.npmjs.org/optimist/-/optimist-0.6.1.tgz", "resolved": "https://registry.npmjs.org/optimist/-/optimist-0.6.1.tgz", "dependencies": { "wordwrap": { "version": "0.0.3", - "from": "wordwrap@>=0.0.2 <0.1.0", + "from": "https://registry.npmjs.org/wordwrap/-/wordwrap-0.0.3.tgz", "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-0.0.3.tgz" }, "minimist": { "version": "0.0.10", - "from": "minimist@>=0.0.1 <0.1.0", + "from": "https://registry.npmjs.org/minimist/-/minimist-0.0.10.tgz", "resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.10.tgz" } } @@ -1328,7 +1329,7 @@ }, "grainstore": { "version": "1.1.1", - "from": "grainstore@1.1.1", + "from": "https://registry.npmjs.org/grainstore/-/grainstore-1.1.1.tgz", "resolved": "https://registry.npmjs.org/grainstore/-/grainstore-1.1.1.tgz", "dependencies": { "carto": { @@ -1338,39 +1339,39 @@ "dependencies": { "underscore": { "version": "1.4.4", - "from": "underscore@>=1.4.3 <1.5.0", + "from": "https://registry.npmjs.org/underscore/-/underscore-1.4.4.tgz", "resolved": "https://registry.npmjs.org/underscore/-/underscore-1.4.4.tgz" }, "mapnik-reference": { "version": "5.0.9", - "from": "mapnik-reference@>=5.0.7 <5.1.0", + "from": "https://registry.npmjs.org/mapnik-reference/-/mapnik-reference-5.0.9.tgz", "resolved": "https://registry.npmjs.org/mapnik-reference/-/mapnik-reference-5.0.9.tgz" }, "xml2js": { "version": "0.2.8", - "from": "xml2js@>=0.2.4 <0.3.0", + "from": "https://registry.npmjs.org/xml2js/-/xml2js-0.2.8.tgz", "resolved": "https://registry.npmjs.org/xml2js/-/xml2js-0.2.8.tgz", "dependencies": { "sax": { "version": "0.5.8", - "from": "sax@>=0.5.0 <0.6.0", + "from": "https://registry.npmjs.org/sax/-/sax-0.5.8.tgz", "resolved": "https://registry.npmjs.org/sax/-/sax-0.5.8.tgz" } } }, "optimist": { "version": "0.6.1", - "from": "optimist@>=0.6.0 <0.7.0", + "from": "https://registry.npmjs.org/optimist/-/optimist-0.6.1.tgz", "resolved": "https://registry.npmjs.org/optimist/-/optimist-0.6.1.tgz", "dependencies": { "wordwrap": { "version": "0.0.3", - "from": "wordwrap@>=0.0.2 <0.1.0", + "from": "https://registry.npmjs.org/wordwrap/-/wordwrap-0.0.3.tgz", "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-0.0.3.tgz" }, "minimist": { "version": "0.0.10", - "from": "minimist@>=0.0.1 <0.1.0", + "from": "https://registry.npmjs.org/minimist/-/minimist-0.0.10.tgz", "resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.10.tgz" } } @@ -1379,22 +1380,22 @@ }, "millstone": { "version": "0.6.16", - "from": "millstone@0.6.16", + "from": "https://registry.npmjs.org/millstone/-/millstone-0.6.16.tgz", "resolved": "https://registry.npmjs.org/millstone/-/millstone-0.6.16.tgz", "dependencies": { "generic-pool": { "version": "2.1.1", - "from": "generic-pool@>=2.1.1 <2.2.0", + "from": "https://registry.npmjs.org/generic-pool/-/generic-pool-2.1.1.tgz", "resolved": "https://registry.npmjs.org/generic-pool/-/generic-pool-2.1.1.tgz" }, "srs": { "version": "0.4.9", - "from": "srs@>=0.4.6 <0.5.0", + "from": "https://registry.npmjs.org/srs/-/srs-0.4.9.tgz", "resolved": "https://registry.npmjs.org/srs/-/srs-0.4.9.tgz", "dependencies": { "nan": { "version": "1.8.4", - "from": "nan@>=1.8.4 <1.9.0", + "from": "https://registry.npmjs.org/nan/-/nan-1.8.4.tgz", "resolved": "https://registry.npmjs.org/nan/-/nan-1.8.4.tgz" }, "node-pre-gyp": { @@ -2121,12 +2122,12 @@ }, "zipfile": { "version": "0.5.9", - "from": "zipfile@>=0.5.5 <0.6.0", + "from": "https://registry.npmjs.org/zipfile/-/zipfile-0.5.9.tgz", "resolved": "https://registry.npmjs.org/zipfile/-/zipfile-0.5.9.tgz", "dependencies": { "nan": { "version": "2.1.0", - "from": "nan@>=2.1.0 <2.2.0", + "from": "https://registry.npmjs.org/nan/-/nan-2.1.0.tgz", "resolved": "https://registry.npmjs.org/nan/-/nan-2.1.0.tgz" }, "node-pre-gyp": { @@ -2911,12 +2912,12 @@ }, "sqlite3": { "version": "3.1.3", - "from": "sqlite3@>=2.0.0 <3.0.0||>=3.0.0 <4.0.0", + "from": "https://registry.npmjs.org/sqlite3/-/sqlite3-3.1.3.tgz", "resolved": "https://registry.npmjs.org/sqlite3/-/sqlite3-3.1.3.tgz", "dependencies": { "nan": { "version": "2.2.1", - "from": "nan@>=2.2.0 <2.3.0", + "from": "https://registry.npmjs.org/nan/-/nan-2.2.1.tgz", "resolved": "https://registry.npmjs.org/nan/-/nan-2.2.1.tgz" }, "node-pre-gyp": { @@ -3728,34 +3729,34 @@ }, "mime": { "version": "1.2.11", - "from": "mime@>=1.2.11 <1.3.0", + "from": "https://registry.npmjs.org/mime/-/mime-1.2.11.tgz", "resolved": "https://registry.npmjs.org/mime/-/mime-1.2.11.tgz" }, "mkdirp": { "version": "0.5.1", - "from": "mkdirp@>=0.5.0 <0.6.0", + "from": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz", "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz", "dependencies": { "minimist": { "version": "0.0.8", - "from": "minimist@0.0.8", + "from": "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz", "resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz" } } }, "optimist": { "version": "0.6.1", - "from": "optimist@>=0.6.1 <0.7.0", + "from": "https://registry.npmjs.org/optimist/-/optimist-0.6.1.tgz", "resolved": "https://registry.npmjs.org/optimist/-/optimist-0.6.1.tgz", "dependencies": { "wordwrap": { "version": "0.0.3", - "from": "wordwrap@>=0.0.2 <0.1.0", + "from": "https://registry.npmjs.org/wordwrap/-/wordwrap-0.0.3.tgz", "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-0.0.3.tgz" }, "minimist": { "version": "0.0.10", - "from": "minimist@>=0.0.1 <0.1.0", + "from": "https://registry.npmjs.org/minimist/-/minimist-0.0.10.tgz", "resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.10.tgz" } } @@ -3771,17 +3772,17 @@ "dependencies": { "nan": { "version": "1.2.0", - "from": "nan@>=1.2.0 <1.3.0", + "from": "https://registry.npmjs.org/nan/-/nan-1.2.0.tgz", "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", + "from": "https://registry.npmjs.org/mapnik-vector-tile/-/mapnik-vector-tile-0.5.5.tgz", "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", + "from": "https://registry.npmjs.org/node-pre-gyp/-/node-pre-gyp-0.5.25.tgz", "resolved": "https://registry.npmjs.org/node-pre-gyp/-/node-pre-gyp-0.5.25.tgz", "dependencies": { "nopt": { @@ -4151,32 +4152,32 @@ }, "semver": { "version": "5.0.3", - "from": "semver@>=5.0.3 <5.1.0", + "from": "https://registry.npmjs.org/semver/-/semver-5.0.3.tgz", "resolved": "https://registry.npmjs.org/semver/-/semver-5.0.3.tgz" }, "sphericalmercator": { "version": "1.0.3", - "from": "sphericalmercator@1.0.3", + "from": "https://registry.npmjs.org/sphericalmercator/-/sphericalmercator-1.0.3.tgz", "resolved": "https://registry.npmjs.org/sphericalmercator/-/sphericalmercator-1.0.3.tgz" }, "tilelive": { "version": "4.5.3", - "from": "tilelive@>=4.5.3 <4.6.0", + "from": "https://registry.npmjs.org/tilelive/-/tilelive-4.5.3.tgz", "resolved": "https://registry.npmjs.org/tilelive/-/tilelive-4.5.3.tgz", "dependencies": { "optimist": { "version": "0.6.1", - "from": "optimist@>=0.6.0 <0.7.0", + "from": "https://registry.npmjs.org/optimist/-/optimist-0.6.1.tgz", "resolved": "https://registry.npmjs.org/optimist/-/optimist-0.6.1.tgz", "dependencies": { "wordwrap": { "version": "0.0.3", - "from": "wordwrap@>=0.0.2 <0.1.0", + "from": "https://registry.npmjs.org/wordwrap/-/wordwrap-0.0.3.tgz", "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-0.0.3.tgz" }, "minimist": { "version": "0.0.10", - "from": "minimist@>=0.0.1 <0.1.0", + "from": "https://registry.npmjs.org/minimist/-/minimist-0.0.10.tgz", "resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.10.tgz" } } @@ -4195,12 +4196,12 @@ "dependencies": { "generic-pool": { "version": "2.1.1", - "from": "generic-pool@>=2.1.1 <2.2.0", + "from": "https://registry.npmjs.org/generic-pool/-/generic-pool-2.1.1.tgz", "resolved": "https://registry.npmjs.org/generic-pool/-/generic-pool-2.1.1.tgz" }, "xtend": { "version": "3.0.0", - "from": "xtend@>=3.0.0 <3.1.0", + "from": "https://registry.npmjs.org/xtend/-/xtend-3.0.0.tgz", "resolved": "https://registry.npmjs.org/xtend/-/xtend-3.0.0.tgz" } } @@ -4214,19 +4215,19 @@ "dependencies": { "generic-pool": { "version": "2.1.1", - "from": "generic-pool@>=2.1.1 <2.2.0", + "from": "https://registry.npmjs.org/generic-pool/-/generic-pool-2.1.1.tgz", "resolved": "https://registry.npmjs.org/generic-pool/-/generic-pool-2.1.1.tgz" }, "mime": { "version": "1.2.11", - "from": "mime@>=1.2.11 <1.3.0", + "from": "https://registry.npmjs.org/mime/-/mime-1.2.11.tgz", "resolved": "https://registry.npmjs.org/mime/-/mime-1.2.11.tgz" } } }, "torque.js": { "version": "2.11.4", - "from": "torque.js@>=2.11.0 <2.12.0", + "from": "https://registry.npmjs.org/torque.js/-/torque.js-2.11.4.tgz", "resolved": "https://registry.npmjs.org/torque.js/-/torque.js-2.11.4.tgz" } } diff --git a/package.json b/package.json index 1f50ece7..479dcfa1 100644 --- a/package.json +++ b/package.json @@ -37,7 +37,7 @@ "request": "~2.62.0", "step": "~0.0.6", "step-profiler": "~0.3.0", - "turbo-carto": "0.9.0", + "turbo-carto": "0.9.2", "underscore": "~1.6.0", "windshaft": "1.19.0" }, From 420f4aacc9768d04db5a9dd541735929fcd5271d Mon Sep 17 00:00:00 2001 From: Raul Ochoa Date: Tue, 17 May 2016 15:04:15 +0200 Subject: [PATCH 13/17] Update news --- NEWS.md | 3 +++ 1 file changed, 3 insertions(+) diff --git a/NEWS.md b/NEWS.md index f2259e37..56fad82d 100644 --- a/NEWS.md +++ b/NEWS.md @@ -4,6 +4,9 @@ Released 2016-mm-dd +New features: + - turbo-carto: mapnik substitution tokens support #455 + ## 2.42.0 From 3a7361a009040372a41421c44dddbd9e826e0c2b Mon Sep 17 00:00:00 2001 From: Francisco Dans Date: Tue, 17 May 2016 15:05:16 +0200 Subject: [PATCH 14/17] stubs next version --- NEWS.md | 4 ++++ package.json | 2 +- 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/NEWS.md b/NEWS.md index 810b9b45..d52fbd2d 100644 --- a/NEWS.md +++ b/NEWS.md @@ -1,5 +1,9 @@ # Changelog +## 2.42.2 + +Released 2016-mm-dd + ## 2.42.1 Released 2016-05-17 diff --git a/package.json b/package.json index 479dcfa1..d9c2253d 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { "private": true, "name": "windshaft-cartodb", - "version": "2.42.1", + "version": "2.42.2", "description": "A map tile server for CartoDB", "keywords": [ "cartodb" From b5540fc63a415e4e924dbf3c08cd19de10436079 Mon Sep 17 00:00:00 2001 From: Raul Ochoa Date: Tue, 17 May 2016 15:24:55 +0200 Subject: [PATCH 15/17] Regenerate npm-shrinkwrap.json after a fresh npm --no-shrinkwrap --- npm-shrinkwrap.json | 1903 +++++++++++++++++++------------------------ 1 file changed, 837 insertions(+), 1066 deletions(-) diff --git a/npm-shrinkwrap.json b/npm-shrinkwrap.json index 7a307d00..1a4c9b8b 100644 --- a/npm-shrinkwrap.json +++ b/npm-shrinkwrap.json @@ -4,98 +4,98 @@ "dependencies": { "body-parser": { "version": "1.14.2", - "from": "https://registry.npmjs.org/body-parser/-/body-parser-1.14.2.tgz", + "from": "body-parser@>=1.14.0 <1.15.0", "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.14.2.tgz", "dependencies": { "bytes": { "version": "2.2.0", - "from": "https://registry.npmjs.org/bytes/-/bytes-2.2.0.tgz", + "from": "bytes@2.2.0", "resolved": "https://registry.npmjs.org/bytes/-/bytes-2.2.0.tgz" }, "content-type": { "version": "1.0.2", - "from": "https://registry.npmjs.org/content-type/-/content-type-1.0.2.tgz", + "from": "content-type@>=1.0.1 <1.1.0", "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.2.tgz" }, "depd": { "version": "1.1.0", - "from": "https://registry.npmjs.org/depd/-/depd-1.1.0.tgz", + "from": "depd@>=1.1.0 <1.2.0", "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.0.tgz" }, "http-errors": { "version": "1.3.1", - "from": "https://registry.npmjs.org/http-errors/-/http-errors-1.3.1.tgz", + "from": "http-errors@>=1.3.1 <1.4.0", "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.3.1.tgz", "dependencies": { "inherits": { "version": "2.0.1", - "from": "https://registry.npmjs.org/inherits/-/inherits-2.0.1.tgz", + "from": "inherits@>=2.0.1 <2.1.0", "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.1.tgz" }, "statuses": { "version": "1.2.1", - "from": "https://registry.npmjs.org/statuses/-/statuses-1.2.1.tgz", + "from": "statuses@>=1.0.0 <2.0.0", "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.2.1.tgz" } } }, "iconv-lite": { "version": "0.4.13", - "from": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.13.tgz", + "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", - "from": "https://registry.npmjs.org/on-finished/-/on-finished-2.3.0.tgz", + "from": "on-finished@>=2.3.0 <2.4.0", "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.3.0.tgz", "dependencies": { "ee-first": { "version": "1.1.1", - "from": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", + "from": "ee-first@1.1.1", "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz" } } }, "qs": { "version": "5.2.0", - "from": "https://registry.npmjs.org/qs/-/qs-5.2.0.tgz", + "from": "qs@5.2.0", "resolved": "https://registry.npmjs.org/qs/-/qs-5.2.0.tgz" }, "raw-body": { "version": "2.1.6", - "from": "https://registry.npmjs.org/raw-body/-/raw-body-2.1.6.tgz", + "from": "raw-body@>=2.1.5 <2.2.0", "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.1.6.tgz", "dependencies": { "bytes": { "version": "2.3.0", - "from": "https://registry.npmjs.org/bytes/-/bytes-2.3.0.tgz", + "from": "bytes@2.3.0", "resolved": "https://registry.npmjs.org/bytes/-/bytes-2.3.0.tgz" }, "unpipe": { "version": "1.0.0", - "from": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", + "from": "unpipe@1.0.0", "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz" } } }, "type-is": { "version": "1.6.12", - "from": "https://registry.npmjs.org/type-is/-/type-is-1.6.12.tgz", + "from": "type-is@>=1.6.6 <1.7.0", "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.12.tgz", "dependencies": { "media-typer": { "version": "0.3.0", - "from": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz", + "from": "media-typer@0.3.0", "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz" }, "mime-types": { "version": "2.1.11", - "from": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.11.tgz", + "from": "mime-types@>=2.1.10 <2.2.0", "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.11.tgz", "dependencies": { "mime-db": { "version": "1.23.0", - "from": "https://registry.npmjs.org/mime-db/-/mime-db-1.23.0.tgz", + "from": "mime-db@>=1.23.0 <1.24.0", "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.23.0.tgz" } } @@ -106,67 +106,67 @@ }, "camshaft": { "version": "0.8.0", - "from": "https://registry.npmjs.org/camshaft/-/camshaft-0.8.0.tgz", + "from": "camshaft@0.8.0", "resolved": "https://registry.npmjs.org/camshaft/-/camshaft-0.8.0.tgz", "dependencies": { "async": { "version": "1.5.2", - "from": "https://registry.npmjs.org/async/-/async-1.5.2.tgz", + "from": "async@>=1.5.2 <2.0.0", "resolved": "https://registry.npmjs.org/async/-/async-1.5.2.tgz" }, "request": { "version": "2.72.0", - "from": "https://registry.npmjs.org/request/-/request-2.72.0.tgz", + "from": "request@>=2.69.0 <3.0.0", "resolved": "https://registry.npmjs.org/request/-/request-2.72.0.tgz", "dependencies": { "aws-sign2": { "version": "0.6.0", - "from": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.6.0.tgz", + "from": "aws-sign2@>=0.6.0 <0.7.0", "resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.6.0.tgz" }, "aws4": { "version": "1.4.1", - "from": "https://registry.npmjs.org/aws4/-/aws4-1.4.1.tgz", + "from": "aws4@>=1.2.1 <2.0.0", "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.4.1.tgz" }, "bl": { "version": "1.1.2", - "from": "https://registry.npmjs.org/bl/-/bl-1.1.2.tgz", + "from": "bl@>=1.1.2 <1.2.0", "resolved": "https://registry.npmjs.org/bl/-/bl-1.1.2.tgz", "dependencies": { "readable-stream": { "version": "2.0.6", - "from": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.0.6.tgz", + "from": "readable-stream@>=2.0.5 <2.1.0", "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.0.6.tgz", "dependencies": { "core-util-is": { "version": "1.0.2", - "from": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", + "from": "core-util-is@>=1.0.0 <1.1.0", "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz" }, "inherits": { "version": "2.0.1", - "from": "https://registry.npmjs.org/inherits/-/inherits-2.0.1.tgz", + "from": "inherits@>=2.0.1 <2.1.0", "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.1.tgz" }, "isarray": { "version": "1.0.0", - "from": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "from": "isarray@>=1.0.0 <1.1.0", "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz" }, "process-nextick-args": { "version": "1.0.7", - "from": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-1.0.7.tgz", + "from": "process-nextick-args@>=1.0.6 <1.1.0", "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-1.0.7.tgz" }, "string_decoder": { "version": "0.10.31", - "from": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz", + "from": "string_decoder@>=0.10.0 <0.11.0", "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz" }, "util-deprecate": { "version": "1.0.2", - "from": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", + "from": "util-deprecate@>=1.0.1 <1.1.0", "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz" } } @@ -175,141 +175,141 @@ }, "caseless": { "version": "0.11.0", - "from": "https://registry.npmjs.org/caseless/-/caseless-0.11.0.tgz", + "from": "caseless@>=0.11.0 <0.12.0", "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.11.0.tgz" }, "combined-stream": { "version": "1.0.5", - "from": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.5.tgz", + "from": "combined-stream@>=1.0.5 <1.1.0", "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.5.tgz", "dependencies": { "delayed-stream": { "version": "1.0.0", - "from": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", + "from": "delayed-stream@>=1.0.0 <1.1.0", "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz" } } }, "extend": { "version": "3.0.0", - "from": "https://registry.npmjs.org/extend/-/extend-3.0.0.tgz", + "from": "extend@>=3.0.0 <3.1.0", "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.0.tgz" }, "forever-agent": { "version": "0.6.1", - "from": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz", + "from": "forever-agent@>=0.6.1 <0.7.0", "resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz" }, "form-data": { "version": "1.0.0-rc4", - "from": "https://registry.npmjs.org/form-data/-/form-data-1.0.0-rc4.tgz", + "from": "form-data@>=1.0.0-rc3 <1.1.0", "resolved": "https://registry.npmjs.org/form-data/-/form-data-1.0.0-rc4.tgz" }, "har-validator": { "version": "2.0.6", - "from": "https://registry.npmjs.org/har-validator/-/har-validator-2.0.6.tgz", + "from": "har-validator@>=2.0.6 <2.1.0", "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-2.0.6.tgz", "dependencies": { "chalk": { "version": "1.1.3", - "from": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", + "from": "chalk@>=1.1.1 <2.0.0", "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", "dependencies": { "ansi-styles": { "version": "2.2.1", - "from": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", + "from": "ansi-styles@>=2.2.1 <3.0.0", "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz" }, "escape-string-regexp": { "version": "1.0.5", - "from": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "from": "escape-string-regexp@>=1.0.2 <2.0.0", "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz" }, "has-ansi": { "version": "2.0.0", - "from": "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz", + "from": "has-ansi@>=2.0.0 <3.0.0", "resolved": "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz", "dependencies": { "ansi-regex": { "version": "2.0.0", - "from": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.0.0.tgz", + "from": "ansi-regex@>=2.0.0 <3.0.0", "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.0.0.tgz" } } }, "strip-ansi": { "version": "3.0.1", - "from": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", + "from": "strip-ansi@>=3.0.0 <4.0.0", "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", "dependencies": { "ansi-regex": { "version": "2.0.0", - "from": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.0.0.tgz", + "from": "ansi-regex@>=2.0.0 <3.0.0", "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.0.0.tgz" } } }, "supports-color": { "version": "2.0.0", - "from": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", + "from": "supports-color@>=2.0.0 <3.0.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz" } } }, "commander": { "version": "2.9.0", - "from": "https://registry.npmjs.org/commander/-/commander-2.9.0.tgz", + "from": "commander@>=2.9.0 <3.0.0", "resolved": "https://registry.npmjs.org/commander/-/commander-2.9.0.tgz", "dependencies": { "graceful-readlink": { "version": "1.0.1", - "from": "https://registry.npmjs.org/graceful-readlink/-/graceful-readlink-1.0.1.tgz", + "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.13.1", - "from": "https://registry.npmjs.org/is-my-json-valid/-/is-my-json-valid-2.13.1.tgz", + "from": "is-my-json-valid@>=2.12.4 <3.0.0", "resolved": "https://registry.npmjs.org/is-my-json-valid/-/is-my-json-valid-2.13.1.tgz", "dependencies": { "generate-function": { "version": "2.0.0", - "from": "https://registry.npmjs.org/generate-function/-/generate-function-2.0.0.tgz", + "from": "generate-function@>=2.0.0 <3.0.0", "resolved": "https://registry.npmjs.org/generate-function/-/generate-function-2.0.0.tgz" }, "generate-object-property": { "version": "1.2.0", - "from": "https://registry.npmjs.org/generate-object-property/-/generate-object-property-1.2.0.tgz", + "from": "generate-object-property@>=1.1.0 <2.0.0", "resolved": "https://registry.npmjs.org/generate-object-property/-/generate-object-property-1.2.0.tgz", "dependencies": { "is-property": { "version": "1.0.2", - "from": "https://registry.npmjs.org/is-property/-/is-property-1.0.2.tgz", + "from": "is-property@>=1.0.0 <2.0.0", "resolved": "https://registry.npmjs.org/is-property/-/is-property-1.0.2.tgz" } } }, "jsonpointer": { "version": "2.0.0", - "from": "https://registry.npmjs.org/jsonpointer/-/jsonpointer-2.0.0.tgz", + "from": "jsonpointer@2.0.0", "resolved": "https://registry.npmjs.org/jsonpointer/-/jsonpointer-2.0.0.tgz" }, "xtend": { "version": "4.0.1", - "from": "https://registry.npmjs.org/xtend/-/xtend-4.0.1.tgz", + "from": "xtend@>=4.0.0 <5.0.0", "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.1.tgz" } } }, "pinkie-promise": { "version": "2.0.1", - "from": "https://registry.npmjs.org/pinkie-promise/-/pinkie-promise-2.0.1.tgz", + "from": "pinkie-promise@>=2.0.0 <3.0.0", "resolved": "https://registry.npmjs.org/pinkie-promise/-/pinkie-promise-2.0.1.tgz", "dependencies": { "pinkie": { "version": "2.0.4", - "from": "https://registry.npmjs.org/pinkie/-/pinkie-2.0.4.tgz", + "from": "pinkie@>=2.0.0 <3.0.0", "resolved": "https://registry.npmjs.org/pinkie/-/pinkie-2.0.4.tgz" } } @@ -318,106 +318,106 @@ }, "hawk": { "version": "3.1.3", - "from": "https://registry.npmjs.org/hawk/-/hawk-3.1.3.tgz", + "from": "hawk@>=3.1.3 <3.2.0", "resolved": "https://registry.npmjs.org/hawk/-/hawk-3.1.3.tgz", "dependencies": { "hoek": { "version": "2.16.3", - "from": "https://registry.npmjs.org/hoek/-/hoek-2.16.3.tgz", + "from": "hoek@>=2.0.0 <3.0.0", "resolved": "https://registry.npmjs.org/hoek/-/hoek-2.16.3.tgz" }, "boom": { "version": "2.10.1", - "from": "https://registry.npmjs.org/boom/-/boom-2.10.1.tgz", + "from": "boom@>=2.0.0 <3.0.0", "resolved": "https://registry.npmjs.org/boom/-/boom-2.10.1.tgz" }, "cryptiles": { "version": "2.0.5", - "from": "https://registry.npmjs.org/cryptiles/-/cryptiles-2.0.5.tgz", + "from": "cryptiles@>=2.0.0 <3.0.0", "resolved": "https://registry.npmjs.org/cryptiles/-/cryptiles-2.0.5.tgz" }, "sntp": { "version": "1.0.9", - "from": "https://registry.npmjs.org/sntp/-/sntp-1.0.9.tgz", + "from": "sntp@>=1.0.0 <2.0.0", "resolved": "https://registry.npmjs.org/sntp/-/sntp-1.0.9.tgz" } } }, "http-signature": { "version": "1.1.1", - "from": "https://registry.npmjs.org/http-signature/-/http-signature-1.1.1.tgz", + "from": "http-signature@>=1.1.0 <1.2.0", "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.1.1.tgz", "dependencies": { "assert-plus": { "version": "0.2.0", - "from": "https://registry.npmjs.org/assert-plus/-/assert-plus-0.2.0.tgz", + "from": "assert-plus@>=0.2.0 <0.3.0", "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-0.2.0.tgz" }, "jsprim": { "version": "1.2.2", - "from": "https://registry.npmjs.org/jsprim/-/jsprim-1.2.2.tgz", + "from": "jsprim@>=1.2.2 <2.0.0", "resolved": "https://registry.npmjs.org/jsprim/-/jsprim-1.2.2.tgz", "dependencies": { "extsprintf": { "version": "1.0.2", - "from": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.0.2.tgz", + "from": "extsprintf@1.0.2", "resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.0.2.tgz" }, "json-schema": { "version": "0.2.2", - "from": "https://registry.npmjs.org/json-schema/-/json-schema-0.2.2.tgz", + "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": "https://registry.npmjs.org/verror/-/verror-1.3.6.tgz", + "from": "verror@1.3.6", "resolved": "https://registry.npmjs.org/verror/-/verror-1.3.6.tgz" } } }, "sshpk": { "version": "1.8.3", - "from": "https://registry.npmjs.org/sshpk/-/sshpk-1.8.3.tgz", + "from": "sshpk@>=1.7.0 <2.0.0", "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.8.3.tgz", "dependencies": { "asn1": { "version": "0.2.3", - "from": "https://registry.npmjs.org/asn1/-/asn1-0.2.3.tgz", + "from": "asn1@>=0.2.3 <0.3.0", "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.3.tgz" }, "assert-plus": { "version": "1.0.0", - "from": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", + "from": "assert-plus@>=1.0.0 <2.0.0", "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz" }, "dashdash": { "version": "1.13.1", - "from": "https://registry.npmjs.org/dashdash/-/dashdash-1.13.1.tgz", + "from": "dashdash@>=1.12.0 <2.0.0", "resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.13.1.tgz" }, "getpass": { "version": "0.1.6", - "from": "https://registry.npmjs.org/getpass/-/getpass-0.1.6.tgz", + "from": "getpass@>=0.1.1 <0.2.0", "resolved": "https://registry.npmjs.org/getpass/-/getpass-0.1.6.tgz" }, "jsbn": { "version": "0.1.0", - "from": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.0.tgz", + "from": "jsbn@>=0.1.0 <0.2.0", "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.0.tgz" }, "tweetnacl": { "version": "0.13.3", - "from": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.13.3.tgz", + "from": "tweetnacl@>=0.13.0 <0.14.0", "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.13.3.tgz" }, "jodid25519": { "version": "1.0.2", - "from": "https://registry.npmjs.org/jodid25519/-/jodid25519-1.0.2.tgz", + "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": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.1.tgz", + "from": "ecc-jsbn@>=0.1.1 <0.2.0", "resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.1.tgz" } } @@ -426,59 +426,59 @@ }, "is-typedarray": { "version": "1.0.0", - "from": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", + "from": "is-typedarray@>=1.0.0 <1.1.0", "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz" }, "isstream": { "version": "0.1.2", - "from": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz", + "from": "isstream@>=0.1.2 <0.2.0", "resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz" }, "json-stringify-safe": { "version": "5.0.1", - "from": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz", + "from": "json-stringify-safe@>=5.0.1 <5.1.0", "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz" }, "mime-types": { "version": "2.1.11", - "from": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.11.tgz", + "from": "mime-types@>=2.1.7 <2.2.0", "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.11.tgz", "dependencies": { "mime-db": { "version": "1.23.0", - "from": "https://registry.npmjs.org/mime-db/-/mime-db-1.23.0.tgz", + "from": "mime-db@>=1.23.0 <1.24.0", "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.23.0.tgz" } } }, "node-uuid": { "version": "1.4.7", - "from": "https://registry.npmjs.org/node-uuid/-/node-uuid-1.4.7.tgz", + "from": "node-uuid@>=1.4.7 <1.5.0", "resolved": "https://registry.npmjs.org/node-uuid/-/node-uuid-1.4.7.tgz" }, "oauth-sign": { "version": "0.8.2", - "from": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.8.2.tgz", + "from": "oauth-sign@>=0.8.1 <0.9.0", "resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.8.2.tgz" }, "qs": { "version": "6.1.0", - "from": "https://registry.npmjs.org/qs/-/qs-6.1.0.tgz", + "from": "qs@>=6.1.0 <6.2.0", "resolved": "https://registry.npmjs.org/qs/-/qs-6.1.0.tgz" }, "stringstream": { "version": "0.0.5", - "from": "https://registry.npmjs.org/stringstream/-/stringstream-0.0.5.tgz", + "from": "stringstream@>=0.0.4 <0.1.0", "resolved": "https://registry.npmjs.org/stringstream/-/stringstream-0.0.5.tgz" }, "tough-cookie": { "version": "2.2.2", - "from": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.2.2.tgz", + "from": "tough-cookie@>=2.2.0 <2.3.0", "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.2.2.tgz" }, "tunnel-agent": { "version": "0.4.3", - "from": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.4.3.tgz", + "from": "tunnel-agent@>=0.4.1 <0.5.0", "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.4.3.tgz" } } @@ -487,22 +487,22 @@ }, "cartodb-psql": { "version": "0.6.1", - "from": "https://registry.npmjs.org/cartodb-psql/-/cartodb-psql-0.6.1.tgz", + "from": "cartodb-psql@>=0.6.1 <0.7.0", "resolved": "https://registry.npmjs.org/cartodb-psql/-/cartodb-psql-0.6.1.tgz", "dependencies": { "pg": { "version": "2.6.2-cdb3", - "from": "git://github.com/CartoDB/node-postgres.git#069c5296d1a093077feff21719641bb9e71fc50e", + "from": "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": "https://registry.npmjs.org/generic-pool/-/generic-pool-2.0.3.tgz", + "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": "https://registry.npmjs.org/buffer-writer/-/buffer-writer-1.0.0.tgz", + "from": "buffer-writer@1.0.0", "resolved": "https://registry.npmjs.org/buffer-writer/-/buffer-writer-1.0.0.tgz" } } @@ -511,42 +511,42 @@ }, "cartodb-query-tables": { "version": "0.1.0", - "from": "https://registry.npmjs.org/cartodb-query-tables/-/cartodb-query-tables-0.1.0.tgz", + "from": "cartodb-query-tables@>=0.1.0 <0.2.0", "resolved": "https://registry.npmjs.org/cartodb-query-tables/-/cartodb-query-tables-0.1.0.tgz" }, "cartodb-redis": { "version": "0.13.0", - "from": "https://registry.npmjs.org/cartodb-redis/-/cartodb-redis-0.13.0.tgz", + "from": "cartodb-redis@>=0.13.0 <0.14.0", "resolved": "https://registry.npmjs.org/cartodb-redis/-/cartodb-redis-0.13.0.tgz", "dependencies": { "redis-mpool": { "version": "0.1.0", - "from": "git://github.com/CartoDB/node-redis-mpool.git#47510b8d4525ee24aa2e5328976372274a1d144e", + "from": "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": "https://registry.npmjs.org/generic-pool/-/generic-pool-2.1.1.tgz", + "from": "generic-pool@>=2.1.1 <2.2.0", "resolved": "https://registry.npmjs.org/generic-pool/-/generic-pool-2.1.1.tgz" }, "redis": { "version": "0.12.1", - "from": "https://registry.npmjs.org/redis/-/redis-0.12.1.tgz", + "from": "redis@>=0.12.1 <0.13.0", "resolved": "https://registry.npmjs.org/redis/-/redis-0.12.1.tgz" }, "hiredis": { "version": "0.1.17", - "from": "https://registry.npmjs.org/hiredis/-/hiredis-0.1.17.tgz", + "from": "hiredis@>=0.1.17 <0.2.0", "resolved": "https://registry.npmjs.org/hiredis/-/hiredis-0.1.17.tgz", "dependencies": { "bindings": { "version": "1.2.1", - "from": "https://registry.npmjs.org/bindings/-/bindings-1.2.1.tgz", + "from": "bindings@*", "resolved": "https://registry.npmjs.org/bindings/-/bindings-1.2.1.tgz" }, "nan": { "version": "1.1.2", - "from": "https://registry.npmjs.org/nan/-/nan-1.1.2.tgz", + "from": "nan@>=1.1.0 <1.2.0", "resolved": "https://registry.npmjs.org/nan/-/nan-1.1.2.tgz" } } @@ -557,228 +557,228 @@ }, "debug": { "version": "2.2.0", - "from": "https://registry.npmjs.org/debug/-/debug-2.2.0.tgz", + "from": "debug@>=2.2.0 <2.3.0", "resolved": "https://registry.npmjs.org/debug/-/debug-2.2.0.tgz", "dependencies": { "ms": { "version": "0.7.1", - "from": "https://registry.npmjs.org/ms/-/ms-0.7.1.tgz", + "from": "ms@0.7.1", "resolved": "https://registry.npmjs.org/ms/-/ms-0.7.1.tgz" } } }, "dot": { "version": "1.0.3", - "from": "https://registry.npmjs.org/dot/-/dot-1.0.3.tgz", + "from": "dot@>=1.0.2 <1.1.0", "resolved": "https://registry.npmjs.org/dot/-/dot-1.0.3.tgz" }, "express": { "version": "4.13.4", - "from": "https://registry.npmjs.org/express/-/express-4.13.4.tgz", + "from": "express@>=4.13.3 <4.14.0", "resolved": "https://registry.npmjs.org/express/-/express-4.13.4.tgz", "dependencies": { "accepts": { "version": "1.2.13", - "from": "https://registry.npmjs.org/accepts/-/accepts-1.2.13.tgz", + "from": "accepts@>=1.2.12 <1.3.0", "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.2.13.tgz", "dependencies": { "mime-types": { "version": "2.1.11", - "from": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.11.tgz", + "from": "mime-types@>=2.1.6 <2.2.0", "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.11.tgz", "dependencies": { "mime-db": { "version": "1.23.0", - "from": "https://registry.npmjs.org/mime-db/-/mime-db-1.23.0.tgz", + "from": "mime-db@>=1.23.0 <1.24.0", "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.23.0.tgz" } } }, "negotiator": { "version": "0.5.3", - "from": "https://registry.npmjs.org/negotiator/-/negotiator-0.5.3.tgz", + "from": "negotiator@0.5.3", "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.5.3.tgz" } } }, "array-flatten": { "version": "1.1.1", - "from": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz", + "from": "array-flatten@1.1.1", "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz" }, "content-disposition": { "version": "0.5.1", - "from": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.1.tgz", + "from": "content-disposition@0.5.1", "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.1.tgz" }, "content-type": { "version": "1.0.2", - "from": "https://registry.npmjs.org/content-type/-/content-type-1.0.2.tgz", + "from": "content-type@>=1.0.1 <1.1.0", "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.2.tgz" }, "cookie": { "version": "0.1.5", - "from": "https://registry.npmjs.org/cookie/-/cookie-0.1.5.tgz", + "from": "cookie@0.1.5", "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.1.5.tgz" }, "cookie-signature": { "version": "1.0.6", - "from": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz", + "from": "cookie-signature@1.0.6", "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz" }, "depd": { "version": "1.1.0", - "from": "https://registry.npmjs.org/depd/-/depd-1.1.0.tgz", + "from": "depd@>=1.1.0 <1.2.0", "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.0.tgz" }, "escape-html": { "version": "1.0.3", - "from": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz", + "from": "escape-html@>=1.0.3 <1.1.0", "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz" }, "etag": { "version": "1.7.0", - "from": "https://registry.npmjs.org/etag/-/etag-1.7.0.tgz", + "from": "etag@>=1.7.0 <1.8.0", "resolved": "https://registry.npmjs.org/etag/-/etag-1.7.0.tgz" }, "finalhandler": { "version": "0.4.1", - "from": "https://registry.npmjs.org/finalhandler/-/finalhandler-0.4.1.tgz", + "from": "finalhandler@0.4.1", "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-0.4.1.tgz", "dependencies": { "unpipe": { "version": "1.0.0", - "from": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", + "from": "unpipe@>=1.0.0 <1.1.0", "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz" } } }, "fresh": { "version": "0.3.0", - "from": "https://registry.npmjs.org/fresh/-/fresh-0.3.0.tgz", + "from": "fresh@0.3.0", "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.3.0.tgz" }, "merge-descriptors": { "version": "1.0.1", - "from": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz", + "from": "merge-descriptors@1.0.1", "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz" }, "methods": { "version": "1.1.2", - "from": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz", + "from": "methods@>=1.1.2 <1.2.0", "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz" }, "on-finished": { "version": "2.3.0", - "from": "https://registry.npmjs.org/on-finished/-/on-finished-2.3.0.tgz", + "from": "on-finished@>=2.3.0 <2.4.0", "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.3.0.tgz", "dependencies": { "ee-first": { "version": "1.1.1", - "from": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", + "from": "ee-first@1.1.1", "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz" } } }, "parseurl": { "version": "1.3.1", - "from": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.1.tgz", + "from": "parseurl@>=1.3.1 <1.4.0", "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.1.tgz" }, "path-to-regexp": { "version": "0.1.7", - "from": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz", + "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.10", - "from": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-1.0.10.tgz", + "from": "proxy-addr@>=1.0.10 <1.1.0", "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-1.0.10.tgz", "dependencies": { "forwarded": { "version": "0.1.0", - "from": "https://registry.npmjs.org/forwarded/-/forwarded-0.1.0.tgz", + "from": "forwarded@>=0.1.0 <0.2.0", "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.1.0.tgz" }, "ipaddr.js": { "version": "1.0.5", - "from": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.0.5.tgz", + "from": "ipaddr.js@1.0.5", "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.0.5.tgz" } } }, "qs": { "version": "4.0.0", - "from": "https://registry.npmjs.org/qs/-/qs-4.0.0.tgz", + "from": "qs@4.0.0", "resolved": "https://registry.npmjs.org/qs/-/qs-4.0.0.tgz" }, "range-parser": { "version": "1.0.3", - "from": "https://registry.npmjs.org/range-parser/-/range-parser-1.0.3.tgz", + "from": "range-parser@>=1.0.3 <1.1.0", "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.0.3.tgz" }, "send": { "version": "0.13.1", - "from": "https://registry.npmjs.org/send/-/send-0.13.1.tgz", + "from": "send@0.13.1", "resolved": "https://registry.npmjs.org/send/-/send-0.13.1.tgz", "dependencies": { "destroy": { "version": "1.0.4", - "from": "https://registry.npmjs.org/destroy/-/destroy-1.0.4.tgz", + "from": "destroy@>=1.0.4 <1.1.0", "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.0.4.tgz" }, "http-errors": { "version": "1.3.1", - "from": "https://registry.npmjs.org/http-errors/-/http-errors-1.3.1.tgz", + "from": "http-errors@>=1.3.1 <1.4.0", "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.3.1.tgz", "dependencies": { "inherits": { "version": "2.0.1", - "from": "https://registry.npmjs.org/inherits/-/inherits-2.0.1.tgz", + "from": "inherits@>=2.0.1 <2.1.0", "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.1.tgz" } } }, "mime": { "version": "1.3.4", - "from": "https://registry.npmjs.org/mime/-/mime-1.3.4.tgz", + "from": "mime@1.3.4", "resolved": "https://registry.npmjs.org/mime/-/mime-1.3.4.tgz" }, "ms": { "version": "0.7.1", - "from": "https://registry.npmjs.org/ms/-/ms-0.7.1.tgz", + "from": "ms@0.7.1", "resolved": "https://registry.npmjs.org/ms/-/ms-0.7.1.tgz" }, "statuses": { "version": "1.2.1", - "from": "https://registry.npmjs.org/statuses/-/statuses-1.2.1.tgz", + "from": "statuses@>=1.2.1 <1.3.0", "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.2.1.tgz" } } }, "serve-static": { "version": "1.10.2", - "from": "https://registry.npmjs.org/serve-static/-/serve-static-1.10.2.tgz", + "from": "serve-static@>=1.10.2 <1.11.0", "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.10.2.tgz" }, "type-is": { "version": "1.6.12", - "from": "https://registry.npmjs.org/type-is/-/type-is-1.6.12.tgz", + "from": "type-is@>=1.6.6 <1.7.0", "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.12.tgz", "dependencies": { "media-typer": { "version": "0.3.0", - "from": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz", + "from": "media-typer@0.3.0", "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz" }, "mime-types": { "version": "2.1.11", - "from": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.11.tgz", + "from": "mime-types@>=2.1.6 <2.2.0", "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.11.tgz", "dependencies": { "mime-db": { "version": "1.23.0", - "from": "https://registry.npmjs.org/mime-db/-/mime-db-1.23.0.tgz", + "from": "mime-db@>=1.23.0 <1.24.0", "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.23.0.tgz" } } @@ -787,19 +787,19 @@ }, "utils-merge": { "version": "1.0.0", - "from": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.0.tgz", + "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": "https://registry.npmjs.org/vary/-/vary-1.0.1.tgz", + "from": "vary@>=1.0.1 <1.1.0", "resolved": "https://registry.npmjs.org/vary/-/vary-1.0.1.tgz" } } }, "fastly-purge": { "version": "1.0.1", - "from": "https://registry.npmjs.org/fastly-purge/-/fastly-purge-1.0.1.tgz", + "from": "fastly-purge@>=1.0.1 <1.1.0", "resolved": "https://registry.npmjs.org/fastly-purge/-/fastly-purge-1.0.1.tgz" }, "log4js": { @@ -809,96 +809,96 @@ "dependencies": { "async": { "version": "0.2.10", - "from": "https://registry.npmjs.org/async/-/async-0.2.10.tgz", + "from": "async@>=0.2.0 <0.3.0", "resolved": "https://registry.npmjs.org/async/-/async-0.2.10.tgz" }, "readable-stream": { "version": "1.0.34", - "from": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.0.34.tgz", + "from": "readable-stream@>=1.0.2 <1.1.0", "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.0.34.tgz", "dependencies": { "core-util-is": { "version": "1.0.2", - "from": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", + "from": "core-util-is@>=1.0.0 <1.1.0", "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz" }, "isarray": { "version": "0.0.1", - "from": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", + "from": "isarray@0.0.1", "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz" }, "string_decoder": { "version": "0.10.31", - "from": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz", + "from": "string_decoder@>=0.10.0 <0.11.0", "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz" }, "inherits": { "version": "2.0.1", - "from": "https://registry.npmjs.org/inherits/-/inherits-2.0.1.tgz", + "from": "inherits@>=2.0.1 <2.1.0", "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.1.tgz" } } }, "semver": { "version": "4.3.6", - "from": "https://registry.npmjs.org/semver/-/semver-4.3.6.tgz", + "from": "semver@>=4.3.3 <4.4.0", "resolved": "https://registry.npmjs.org/semver/-/semver-4.3.6.tgz" }, "underscore": { "version": "1.8.2", - "from": "https://registry.npmjs.org/underscore/-/underscore-1.8.2.tgz", + "from": "underscore@1.8.2", "resolved": "https://registry.npmjs.org/underscore/-/underscore-1.8.2.tgz" } } }, "lru-cache": { "version": "2.6.5", - "from": "https://registry.npmjs.org/lru-cache/-/lru-cache-2.6.5.tgz", + "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": "https://registry.npmjs.org/lzma/-/lzma-1.3.7.tgz", + "from": "lzma@>=1.3.7 <1.4.0", "resolved": "https://registry.npmjs.org/lzma/-/lzma-1.3.7.tgz" }, "node-statsd": { "version": "0.0.7", - "from": "https://registry.npmjs.org/node-statsd/-/node-statsd-0.0.7.tgz", + "from": "node-statsd@>=0.0.7 <0.1.0", "resolved": "https://registry.npmjs.org/node-statsd/-/node-statsd-0.0.7.tgz" }, "queue-async": { "version": "1.0.7", - "from": "https://registry.npmjs.org/queue-async/-/queue-async-1.0.7.tgz", + "from": "queue-async@>=1.0.7 <1.1.0", "resolved": "https://registry.npmjs.org/queue-async/-/queue-async-1.0.7.tgz" }, "redis-mpool": { "version": "0.4.0", - "from": "https://registry.npmjs.org/redis-mpool/-/redis-mpool-0.4.0.tgz", + "from": "redis-mpool@>=0.4.0 <0.5.0", "resolved": "https://registry.npmjs.org/redis-mpool/-/redis-mpool-0.4.0.tgz", "dependencies": { "generic-pool": { "version": "2.1.1", - "from": "https://registry.npmjs.org/generic-pool/-/generic-pool-2.1.1.tgz", + "from": "generic-pool@>=2.1.1 <2.2.0", "resolved": "https://registry.npmjs.org/generic-pool/-/generic-pool-2.1.1.tgz" }, "redis": { "version": "0.12.1", - "from": "https://registry.npmjs.org/redis/-/redis-0.12.1.tgz", + "from": "redis@>=0.12.1 <0.13.0", "resolved": "https://registry.npmjs.org/redis/-/redis-0.12.1.tgz" }, "hiredis": { "version": "0.1.17", - "from": "https://registry.npmjs.org/hiredis/-/hiredis-0.1.17.tgz", + "from": "hiredis@>=0.1.17 <0.2.0", "resolved": "https://registry.npmjs.org/hiredis/-/hiredis-0.1.17.tgz", "dependencies": { "bindings": { "version": "1.2.1", - "from": "https://registry.npmjs.org/bindings/-/bindings-1.2.1.tgz", + "from": "bindings@*", "resolved": "https://registry.npmjs.org/bindings/-/bindings-1.2.1.tgz" }, "nan": { "version": "1.1.2", - "from": "https://registry.npmjs.org/nan/-/nan-1.1.2.tgz", + "from": "nan@>=1.1.0 <1.2.0", "resolved": "https://registry.npmjs.org/nan/-/nan-1.1.2.tgz" } } @@ -907,47 +907,47 @@ }, "request": { "version": "2.62.0", - "from": "https://registry.npmjs.org/request/-/request-2.62.0.tgz", + "from": "request@>=2.62.0 <2.63.0", "resolved": "https://registry.npmjs.org/request/-/request-2.62.0.tgz", "dependencies": { "bl": { "version": "1.0.3", - "from": "https://registry.npmjs.org/bl/-/bl-1.0.3.tgz", + "from": "bl@>=1.0.0 <1.1.0", "resolved": "https://registry.npmjs.org/bl/-/bl-1.0.3.tgz", "dependencies": { "readable-stream": { "version": "2.0.6", - "from": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.0.6.tgz", + "from": "readable-stream@>=2.0.5 <2.1.0", "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.0.6.tgz", "dependencies": { "core-util-is": { "version": "1.0.2", - "from": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", + "from": "core-util-is@>=1.0.0 <1.1.0", "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz" }, "inherits": { "version": "2.0.1", - "from": "https://registry.npmjs.org/inherits/-/inherits-2.0.1.tgz", + "from": "inherits@>=2.0.1 <2.1.0", "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.1.tgz" }, "isarray": { "version": "1.0.0", - "from": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "from": "isarray@>=1.0.0 <1.1.0", "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz" }, "process-nextick-args": { "version": "1.0.7", - "from": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-1.0.7.tgz", + "from": "process-nextick-args@>=1.0.6 <1.1.0", "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-1.0.7.tgz" }, "string_decoder": { "version": "0.10.31", - "from": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz", + "from": "string_decoder@>=0.10.0 <0.11.0", "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz" }, "util-deprecate": { "version": "1.0.2", - "from": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", + "from": "util-deprecate@>=1.0.1 <1.1.0", "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz" } } @@ -956,247 +956,247 @@ }, "caseless": { "version": "0.11.0", - "from": "https://registry.npmjs.org/caseless/-/caseless-0.11.0.tgz", + "from": "caseless@>=0.11.0 <0.12.0", "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.11.0.tgz" }, "extend": { "version": "3.0.0", - "from": "https://registry.npmjs.org/extend/-/extend-3.0.0.tgz", + "from": "extend@>=3.0.0 <3.1.0", "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.0.tgz" }, "forever-agent": { "version": "0.6.1", - "from": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz", + "from": "forever-agent@>=0.6.0 <0.7.0", "resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz" }, "form-data": { "version": "1.0.0-rc4", - "from": "https://registry.npmjs.org/form-data/-/form-data-1.0.0-rc4.tgz", + "from": "form-data@>=1.0.0-rc1 <1.1.0", "resolved": "https://registry.npmjs.org/form-data/-/form-data-1.0.0-rc4.tgz", "dependencies": { "async": { "version": "1.5.2", - "from": "https://registry.npmjs.org/async/-/async-1.5.2.tgz", + "from": "async@>=1.5.2 <2.0.0", "resolved": "https://registry.npmjs.org/async/-/async-1.5.2.tgz" } } }, "json-stringify-safe": { "version": "5.0.1", - "from": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz", + "from": "json-stringify-safe@>=5.0.0 <5.1.0", "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz" }, "mime-types": { "version": "2.1.11", - "from": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.11.tgz", + "from": "mime-types@>=2.1.10 <2.2.0", "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.11.tgz", "dependencies": { "mime-db": { "version": "1.23.0", - "from": "https://registry.npmjs.org/mime-db/-/mime-db-1.23.0.tgz", + "from": "mime-db@>=1.23.0 <1.24.0", "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.23.0.tgz" } } }, "node-uuid": { "version": "1.4.7", - "from": "https://registry.npmjs.org/node-uuid/-/node-uuid-1.4.7.tgz", + "from": "node-uuid@>=1.4.0 <1.5.0", "resolved": "https://registry.npmjs.org/node-uuid/-/node-uuid-1.4.7.tgz" }, "qs": { "version": "5.1.0", - "from": "https://registry.npmjs.org/qs/-/qs-5.1.0.tgz", + "from": "qs@>=5.1.0 <5.2.0", "resolved": "https://registry.npmjs.org/qs/-/qs-5.1.0.tgz" }, "tunnel-agent": { "version": "0.4.3", - "from": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.4.3.tgz", + "from": "tunnel-agent@>=0.4.0 <0.5.0", "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.4.3.tgz" }, "tough-cookie": { "version": "2.2.2", - "from": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.2.2.tgz", + "from": "tough-cookie@>=0.12.0", "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.2.2.tgz" }, "http-signature": { "version": "0.11.0", - "from": "https://registry.npmjs.org/http-signature/-/http-signature-0.11.0.tgz", + "from": "http-signature@>=0.11.0 <0.12.0", "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-0.11.0.tgz", "dependencies": { "assert-plus": { "version": "0.1.5", - "from": "https://registry.npmjs.org/assert-plus/-/assert-plus-0.1.5.tgz", + "from": "assert-plus@>=0.1.5 <0.2.0", "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-0.1.5.tgz" }, "asn1": { "version": "0.1.11", - "from": "https://registry.npmjs.org/asn1/-/asn1-0.1.11.tgz", + "from": "asn1@0.1.11", "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.1.11.tgz" }, "ctype": { "version": "0.5.3", - "from": "https://registry.npmjs.org/ctype/-/ctype-0.5.3.tgz", + "from": "ctype@0.5.3", "resolved": "https://registry.npmjs.org/ctype/-/ctype-0.5.3.tgz" } } }, "oauth-sign": { "version": "0.8.2", - "from": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.8.2.tgz", + "from": "oauth-sign@>=0.8.0 <0.9.0", "resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.8.2.tgz" }, "hawk": { "version": "3.1.3", - "from": "https://registry.npmjs.org/hawk/-/hawk-3.1.3.tgz", + "from": "hawk@>=3.1.0 <3.2.0", "resolved": "https://registry.npmjs.org/hawk/-/hawk-3.1.3.tgz", "dependencies": { "hoek": { "version": "2.16.3", - "from": "https://registry.npmjs.org/hoek/-/hoek-2.16.3.tgz", + "from": "hoek@>=2.0.0 <3.0.0", "resolved": "https://registry.npmjs.org/hoek/-/hoek-2.16.3.tgz" }, "boom": { "version": "2.10.1", - "from": "https://registry.npmjs.org/boom/-/boom-2.10.1.tgz", + "from": "boom@>=2.0.0 <3.0.0", "resolved": "https://registry.npmjs.org/boom/-/boom-2.10.1.tgz" }, "cryptiles": { "version": "2.0.5", - "from": "https://registry.npmjs.org/cryptiles/-/cryptiles-2.0.5.tgz", + "from": "cryptiles@>=2.0.0 <3.0.0", "resolved": "https://registry.npmjs.org/cryptiles/-/cryptiles-2.0.5.tgz" }, "sntp": { "version": "1.0.9", - "from": "https://registry.npmjs.org/sntp/-/sntp-1.0.9.tgz", + "from": "sntp@>=1.0.0 <2.0.0", "resolved": "https://registry.npmjs.org/sntp/-/sntp-1.0.9.tgz" } } }, "aws-sign2": { "version": "0.5.0", - "from": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.5.0.tgz", + "from": "aws-sign2@>=0.5.0 <0.6.0", "resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.5.0.tgz" }, "stringstream": { "version": "0.0.5", - "from": "https://registry.npmjs.org/stringstream/-/stringstream-0.0.5.tgz", + "from": "stringstream@>=0.0.4 <0.1.0", "resolved": "https://registry.npmjs.org/stringstream/-/stringstream-0.0.5.tgz" }, "combined-stream": { "version": "1.0.5", - "from": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.5.tgz", + "from": "combined-stream@>=1.0.1 <1.1.0", "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.5.tgz", "dependencies": { "delayed-stream": { "version": "1.0.0", - "from": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", + "from": "delayed-stream@>=1.0.0 <1.1.0", "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz" } } }, "isstream": { "version": "0.1.2", - "from": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz", + "from": "isstream@>=0.1.1 <0.2.0", "resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz" }, "har-validator": { "version": "1.8.0", - "from": "https://registry.npmjs.org/har-validator/-/har-validator-1.8.0.tgz", + "from": "har-validator@>=1.6.1 <2.0.0", "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-1.8.0.tgz", "dependencies": { "bluebird": { "version": "2.10.2", - "from": "https://registry.npmjs.org/bluebird/-/bluebird-2.10.2.tgz", + "from": "bluebird@>=2.9.30 <3.0.0", "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-2.10.2.tgz" }, "chalk": { "version": "1.1.3", - "from": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", + "from": "chalk@>=1.0.0 <2.0.0", "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", "dependencies": { "ansi-styles": { "version": "2.2.1", - "from": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", + "from": "ansi-styles@>=2.2.1 <3.0.0", "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz" }, "escape-string-regexp": { "version": "1.0.5", - "from": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "from": "escape-string-regexp@>=1.0.2 <2.0.0", "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz" }, "has-ansi": { "version": "2.0.0", - "from": "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz", + "from": "has-ansi@>=2.0.0 <3.0.0", "resolved": "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz", "dependencies": { "ansi-regex": { "version": "2.0.0", - "from": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.0.0.tgz", + "from": "ansi-regex@>=2.0.0 <3.0.0", "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.0.0.tgz" } } }, "strip-ansi": { "version": "3.0.1", - "from": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", + "from": "strip-ansi@>=3.0.0 <4.0.0", "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", "dependencies": { "ansi-regex": { "version": "2.0.0", - "from": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.0.0.tgz", + "from": "ansi-regex@>=2.0.0 <3.0.0", "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.0.0.tgz" } } }, "supports-color": { "version": "2.0.0", - "from": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", + "from": "supports-color@>=2.0.0 <3.0.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz" } } }, "commander": { "version": "2.9.0", - "from": "https://registry.npmjs.org/commander/-/commander-2.9.0.tgz", + "from": "commander@>=2.8.1 <3.0.0", "resolved": "https://registry.npmjs.org/commander/-/commander-2.9.0.tgz", "dependencies": { "graceful-readlink": { "version": "1.0.1", - "from": "https://registry.npmjs.org/graceful-readlink/-/graceful-readlink-1.0.1.tgz", + "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.13.1", - "from": "https://registry.npmjs.org/is-my-json-valid/-/is-my-json-valid-2.13.1.tgz", + "from": "is-my-json-valid@>=2.12.0 <3.0.0", "resolved": "https://registry.npmjs.org/is-my-json-valid/-/is-my-json-valid-2.13.1.tgz", "dependencies": { "generate-function": { "version": "2.0.0", - "from": "https://registry.npmjs.org/generate-function/-/generate-function-2.0.0.tgz", + "from": "generate-function@>=2.0.0 <3.0.0", "resolved": "https://registry.npmjs.org/generate-function/-/generate-function-2.0.0.tgz" }, "generate-object-property": { "version": "1.2.0", - "from": "https://registry.npmjs.org/generate-object-property/-/generate-object-property-1.2.0.tgz", + "from": "generate-object-property@>=1.1.0 <2.0.0", "resolved": "https://registry.npmjs.org/generate-object-property/-/generate-object-property-1.2.0.tgz", "dependencies": { "is-property": { "version": "1.0.2", - "from": "https://registry.npmjs.org/is-property/-/is-property-1.0.2.tgz", + "from": "is-property@>=1.0.0 <2.0.0", "resolved": "https://registry.npmjs.org/is-property/-/is-property-1.0.2.tgz" } } }, "jsonpointer": { "version": "2.0.0", - "from": "https://registry.npmjs.org/jsonpointer/-/jsonpointer-2.0.0.tgz", + "from": "jsonpointer@2.0.0", "resolved": "https://registry.npmjs.org/jsonpointer/-/jsonpointer-2.0.0.tgz" }, "xtend": { "version": "4.0.1", - "from": "https://registry.npmjs.org/xtend/-/xtend-4.0.1.tgz", + "from": "xtend@>=4.0.0 <5.0.0", "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.1.tgz" } } @@ -1207,13 +1207,12 @@ }, "step": { "version": "0.0.6", - "from": "https://registry.npmjs.org/step/-/step-0.0.6.tgz", + "from": "step@>=0.0.6 <0.1.0", "resolved": "https://registry.npmjs.org/step/-/step-0.0.6.tgz" }, "step-profiler": { "version": "0.3.0", - "from": "step-profiler@0.3.0", - "resolved": "https://registry.npmjs.org/step-profiler/-/step-profiler-0.3.0.tgz" + "from": "step-profiler@>=0.3.0 <0.4.0" }, "turbo-carto": { "version": "0.9.2", @@ -1273,12 +1272,12 @@ }, "underscore": { "version": "1.6.0", - "from": "https://registry.npmjs.org/underscore/-/underscore-1.6.0.tgz", + "from": "underscore@>=1.6.0 <1.7.0", "resolved": "https://registry.npmjs.org/underscore/-/underscore-1.6.0.tgz" }, "windshaft": { "version": "1.19.0", - "from": "https://registry.npmjs.org/windshaft/-/windshaft-1.19.0.tgz", + "from": "windshaft@1.19.0", "resolved": "https://registry.npmjs.org/windshaft/-/windshaft-1.19.0.tgz", "dependencies": { "abaculus": { @@ -1293,7 +1292,7 @@ "dependencies": { "nan": { "version": "1.9.0", - "from": "https://registry.npmjs.org/nan/-/nan-1.9.0.tgz", + "from": "nan@>=1.8.4 <2.0.0", "resolved": "https://registry.npmjs.org/nan/-/nan-1.9.0.tgz" } } @@ -1305,22 +1304,22 @@ "dependencies": { "mapnik-reference": { "version": "6.0.5", - "from": "https://registry.npmjs.org/mapnik-reference/-/mapnik-reference-6.0.5.tgz", + "from": "mapnik-reference@>=6.0.2 <6.1.0", "resolved": "https://registry.npmjs.org/mapnik-reference/-/mapnik-reference-6.0.5.tgz" }, "optimist": { "version": "0.6.1", - "from": "https://registry.npmjs.org/optimist/-/optimist-0.6.1.tgz", + "from": "optimist@>=0.6.0 <0.7.0", "resolved": "https://registry.npmjs.org/optimist/-/optimist-0.6.1.tgz", "dependencies": { "wordwrap": { "version": "0.0.3", - "from": "https://registry.npmjs.org/wordwrap/-/wordwrap-0.0.3.tgz", + "from": "wordwrap@>=0.0.2 <0.1.0", "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-0.0.3.tgz" }, "minimist": { "version": "0.0.10", - "from": "https://registry.npmjs.org/minimist/-/minimist-0.0.10.tgz", + "from": "minimist@>=0.0.1 <0.1.0", "resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.10.tgz" } } @@ -1329,7 +1328,7 @@ }, "grainstore": { "version": "1.1.1", - "from": "https://registry.npmjs.org/grainstore/-/grainstore-1.1.1.tgz", + "from": "grainstore@1.1.1", "resolved": "https://registry.npmjs.org/grainstore/-/grainstore-1.1.1.tgz", "dependencies": { "carto": { @@ -1339,39 +1338,39 @@ "dependencies": { "underscore": { "version": "1.4.4", - "from": "https://registry.npmjs.org/underscore/-/underscore-1.4.4.tgz", + "from": "underscore@>=1.4.3 <1.5.0", "resolved": "https://registry.npmjs.org/underscore/-/underscore-1.4.4.tgz" }, "mapnik-reference": { "version": "5.0.9", - "from": "https://registry.npmjs.org/mapnik-reference/-/mapnik-reference-5.0.9.tgz", + "from": "mapnik-reference@>=5.0.7 <5.1.0", "resolved": "https://registry.npmjs.org/mapnik-reference/-/mapnik-reference-5.0.9.tgz" }, "xml2js": { "version": "0.2.8", - "from": "https://registry.npmjs.org/xml2js/-/xml2js-0.2.8.tgz", + "from": "xml2js@>=0.2.4 <0.3.0", "resolved": "https://registry.npmjs.org/xml2js/-/xml2js-0.2.8.tgz", "dependencies": { "sax": { "version": "0.5.8", - "from": "https://registry.npmjs.org/sax/-/sax-0.5.8.tgz", + "from": "sax@>=0.5.0 <0.6.0", "resolved": "https://registry.npmjs.org/sax/-/sax-0.5.8.tgz" } } }, "optimist": { "version": "0.6.1", - "from": "https://registry.npmjs.org/optimist/-/optimist-0.6.1.tgz", + "from": "optimist@>=0.6.0 <0.7.0", "resolved": "https://registry.npmjs.org/optimist/-/optimist-0.6.1.tgz", "dependencies": { "wordwrap": { "version": "0.0.3", - "from": "https://registry.npmjs.org/wordwrap/-/wordwrap-0.0.3.tgz", + "from": "wordwrap@>=0.0.2 <0.1.0", "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-0.0.3.tgz" }, "minimist": { "version": "0.0.10", - "from": "https://registry.npmjs.org/minimist/-/minimist-0.0.10.tgz", + "from": "minimist@>=0.0.1 <0.1.0", "resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.10.tgz" } } @@ -1380,22 +1379,22 @@ }, "millstone": { "version": "0.6.16", - "from": "https://registry.npmjs.org/millstone/-/millstone-0.6.16.tgz", + "from": "millstone@0.6.16", "resolved": "https://registry.npmjs.org/millstone/-/millstone-0.6.16.tgz", "dependencies": { "generic-pool": { "version": "2.1.1", - "from": "https://registry.npmjs.org/generic-pool/-/generic-pool-2.1.1.tgz", + "from": "generic-pool@>=2.1.1 <2.2.0", "resolved": "https://registry.npmjs.org/generic-pool/-/generic-pool-2.1.1.tgz" }, "srs": { "version": "0.4.9", - "from": "https://registry.npmjs.org/srs/-/srs-0.4.9.tgz", + "from": "srs@>=0.4.6 <0.5.0", "resolved": "https://registry.npmjs.org/srs/-/srs-0.4.9.tgz", "dependencies": { "nan": { "version": "1.8.4", - "from": "https://registry.npmjs.org/nan/-/nan-1.8.4.tgz", + "from": "nan@>=1.8.4 <1.9.0", "resolved": "https://registry.npmjs.org/nan/-/nan-1.8.4.tgz" }, "node-pre-gyp": { @@ -2122,12 +2121,12 @@ }, "zipfile": { "version": "0.5.9", - "from": "https://registry.npmjs.org/zipfile/-/zipfile-0.5.9.tgz", + "from": "zipfile@>=0.5.5 <0.6.0", "resolved": "https://registry.npmjs.org/zipfile/-/zipfile-0.5.9.tgz", "dependencies": { "nan": { "version": "2.1.0", - "from": "https://registry.npmjs.org/nan/-/nan-2.1.0.tgz", + "from": "nan@>=2.1.0 <2.2.0", "resolved": "https://registry.npmjs.org/nan/-/nan-2.1.0.tgz" }, "node-pre-gyp": { @@ -2911,817 +2910,589 @@ } }, "sqlite3": { - "version": "3.1.3", - "from": "https://registry.npmjs.org/sqlite3/-/sqlite3-3.1.3.tgz", - "resolved": "https://registry.npmjs.org/sqlite3/-/sqlite3-3.1.3.tgz", + "version": "3.1.4", + "from": "sqlite3@>=2.0.0 <3.0.0||>=3.0.0 <4.0.0", + "resolved": "https://registry.npmjs.org/sqlite3/-/sqlite3-3.1.4.tgz", "dependencies": { "nan": { - "version": "2.2.1", - "from": "https://registry.npmjs.org/nan/-/nan-2.2.1.tgz", - "resolved": "https://registry.npmjs.org/nan/-/nan-2.2.1.tgz" + "version": "2.3.3", + "from": "nan@>=2.3.3 <2.4.0", + "resolved": "https://registry.npmjs.org/nan/-/nan-2.3.3.tgz" }, "node-pre-gyp": { - "version": "0.6.25", - "from": "node-pre-gyp@~0.6.25", + "version": "0.6.28", + "from": "node-pre-gyp@>=0.6.28 <0.7.0", + "resolved": "https://registry.npmjs.org/node-pre-gyp/-/node-pre-gyp-0.6.28.tgz" + }, + "abbrev": { + "version": "1.0.7", + "from": "abbrev@>=1.0.0 <2.0.0", + "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.0.7.tgz" + }, + "ansi": { + "version": "0.3.1", + "from": "ansi@>=0.3.1 <0.4.0", + "resolved": "https://registry.npmjs.org/ansi/-/ansi-0.3.1.tgz" + }, + "ansi-regex": { + "version": "2.0.0", + "from": "ansi-regex@>=2.0.0 <3.0.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.0.0.tgz" + }, + "ansi-styles": { + "version": "2.2.1", + "from": "ansi-styles@>=2.2.1 <3.0.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz" + }, + "are-we-there-yet": { + "version": "1.1.2", + "from": "are-we-there-yet@>=1.1.2 <1.2.0", + "resolved": "https://registry.npmjs.org/are-we-there-yet/-/are-we-there-yet-1.1.2.tgz" + }, + "asn1": { + "version": "0.2.3", + "from": "asn1@>=0.2.3 <0.3.0", + "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.3.tgz" + }, + "async": { + "version": "1.5.2", + "from": "async@>=1.5.2 <2.0.0", + "resolved": "https://registry.npmjs.org/async/-/async-1.5.2.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" + }, + "aws-sign2": { + "version": "0.6.0", + "from": "aws-sign2@>=0.6.0 <0.7.0", + "resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.6.0.tgz" + }, + "aws4": { + "version": "1.4.1", + "from": "aws4@>=1.2.1 <2.0.0", + "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.4.1.tgz" + }, + "balanced-match": { + "version": "0.4.1", + "from": "balanced-match@>=0.4.1 <0.5.0", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-0.4.1.tgz" + }, + "block-stream": { + "version": "0.0.9", + "from": "block-stream@*", + "resolved": "https://registry.npmjs.org/block-stream/-/block-stream-0.0.9.tgz" + }, + "boom": { + "version": "2.10.1", + "from": "boom@>=2.0.0 <3.0.0", + "resolved": "https://registry.npmjs.org/boom/-/boom-2.10.1.tgz" + }, + "brace-expansion": { + "version": "1.1.4", + "from": "brace-expansion@>=1.0.0 <2.0.0", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.4.tgz" + }, + "caseless": { + "version": "0.11.0", + "from": "caseless@>=0.11.0 <0.12.0", + "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.11.0.tgz" + }, + "chalk": { + "version": "1.1.3", + "from": "chalk@>=1.1.1 <2.0.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz" + }, + "combined-stream": { + "version": "1.0.5", + "from": "combined-stream@>=1.0.5 <1.1.0", + "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.5.tgz" + }, + "commander": { + "version": "2.9.0", + "from": "commander@>=2.9.0 <3.0.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.9.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" + }, + "core-util-is": { + "version": "1.0.2", + "from": "core-util-is@>=1.0.0 <1.1.0", + "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz" + }, + "cryptiles": { + "version": "2.0.5", + "from": "cryptiles@>=2.0.0 <3.0.0", + "resolved": "https://registry.npmjs.org/cryptiles/-/cryptiles-2.0.5.tgz" + }, + "debug": { + "version": "2.2.0", + "from": "debug@>=2.2.0 <2.3.0", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.2.0.tgz" + }, + "deep-extend": { + "version": "0.4.1", + "from": "deep-extend@>=0.4.0 <0.5.0", + "resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.4.1.tgz" + }, + "delayed-stream": { + "version": "1.0.0", + "from": "delayed-stream@>=1.0.0 <1.1.0", + "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz" + }, + "delegates": { + "version": "1.0.0", + "from": "delegates@>=1.0.0 <2.0.0", + "resolved": "https://registry.npmjs.org/delegates/-/delegates-1.0.0.tgz" + }, + "ecc-jsbn": { + "version": "0.1.1", + "from": "ecc-jsbn@>=0.1.1 <0.2.0", + "resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.1.tgz" + }, + "escape-string-regexp": { + "version": "1.0.5", + "from": "escape-string-regexp@>=1.0.2 <2.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz" + }, + "extend": { + "version": "3.0.0", + "from": "extend@>=3.0.0 <3.1.0", + "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.0.tgz" + }, + "extsprintf": { + "version": "1.0.2", + "from": "extsprintf@1.0.2", + "resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.0.2.tgz" + }, + "forever-agent": { + "version": "0.6.1", + "from": "forever-agent@>=0.6.1 <0.7.0", + "resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz" + }, + "form-data": { + "version": "1.0.0-rc4", + "from": "form-data@>=1.0.0-rc3 <1.1.0", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-1.0.0-rc4.tgz" + }, + "fstream": { + "version": "1.0.9", + "from": "fstream@>=1.0.2 <2.0.0", + "resolved": "https://registry.npmjs.org/fstream/-/fstream-1.0.9.tgz" + }, + "fstream-ignore": { + "version": "1.0.4", + "from": "fstream-ignore@>=1.0.3 <1.1.0", + "resolved": "https://registry.npmjs.org/fstream-ignore/-/fstream-ignore-1.0.4.tgz" + }, + "gauge": { + "version": "1.2.7", + "from": "gauge@>=1.2.5 <1.3.0", + "resolved": "https://registry.npmjs.org/gauge/-/gauge-1.2.7.tgz" + }, + "generate-function": { + "version": "2.0.0", + "from": "generate-function@>=2.0.0 <3.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 <2.0.0", + "resolved": "https://registry.npmjs.org/generate-object-property/-/generate-object-property-1.2.0.tgz" + }, + "glob": { + "version": "7.0.3", + "from": "glob@>=7.0.0 <8.0.0", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.0.3.tgz" + }, + "graceful-fs": { + "version": "4.1.4", + "from": "graceful-fs@>=4.1.2 <5.0.0", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.4.tgz" + }, + "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" + }, + "har-validator": { + "version": "2.0.6", + "from": "har-validator@>=2.0.6 <2.1.0", + "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-2.0.6.tgz" + }, + "has-ansi": { + "version": "2.0.0", + "from": "has-ansi@>=2.0.0 <3.0.0", + "resolved": "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz" + }, + "has-unicode": { + "version": "2.0.0", + "from": "has-unicode@>=2.0.0 <3.0.0", + "resolved": "https://registry.npmjs.org/has-unicode/-/has-unicode-2.0.0.tgz" + }, + "hawk": { + "version": "3.1.3", + "from": "hawk@>=3.1.3 <3.2.0", + "resolved": "https://registry.npmjs.org/hawk/-/hawk-3.1.3.tgz" + }, + "hoek": { + "version": "2.16.3", + "from": "hoek@>=2.0.0 <3.0.0", + "resolved": "https://registry.npmjs.org/hoek/-/hoek-2.16.3.tgz" + }, + "http-signature": { + "version": "1.1.1", + "from": "http-signature@>=1.1.0 <1.2.0", + "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.1.1.tgz" + }, + "inflight": { + "version": "1.0.4", + "from": "inflight@>=1.0.4 <2.0.0", + "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.4.tgz" + }, + "inherits": { + "version": "2.0.1", + "from": "inherits@>=2.0.1 <2.1.0", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.1.tgz" + }, + "ini": { + "version": "1.3.4", + "from": "ini@>=1.3.0 <1.4.0", + "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.4.tgz" + }, + "is-my-json-valid": { + "version": "2.13.1", + "from": "is-my-json-valid@>=2.12.4 <3.0.0", + "resolved": "https://registry.npmjs.org/is-my-json-valid/-/is-my-json-valid-2.13.1.tgz" + }, + "is-property": { + "version": "1.0.2", + "from": "is-property@>=1.0.0 <2.0.0", + "resolved": "https://registry.npmjs.org/is-property/-/is-property-1.0.2.tgz" + }, + "is-typedarray": { + "version": "1.0.0", + "from": "is-typedarray@>=1.0.0 <1.1.0", + "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz" + }, + "isarray": { + "version": "1.0.0", + "from": "isarray@>=1.0.0 <1.1.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz" + }, + "isstream": { + "version": "0.1.2", + "from": "isstream@>=0.1.2 <0.2.0", + "resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.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" + }, + "jsbn": { + "version": "0.1.0", + "from": "jsbn@>=0.1.0 <0.2.0", + "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.0.tgz" + }, + "json-schema": { + "version": "0.2.2", + "from": "json-schema@0.2.2", + "resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.2.2.tgz" + }, + "json-stringify-safe": { + "version": "5.0.1", + "from": "json-stringify-safe@>=5.0.1 <5.1.0", + "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz" + }, + "jsonpointer": { + "version": "2.0.0", + "from": "jsonpointer@2.0.0", + "resolved": "https://registry.npmjs.org/jsonpointer/-/jsonpointer-2.0.0.tgz" + }, + "jsprim": { + "version": "1.2.2", + "from": "jsprim@>=1.2.2 <2.0.0", + "resolved": "https://registry.npmjs.org/jsprim/-/jsprim-1.2.2.tgz" + }, + "lodash._baseslice": { + "version": "4.0.0", + "from": "lodash._baseslice@>=4.0.0 <4.1.0", + "resolved": "https://registry.npmjs.org/lodash._baseslice/-/lodash._baseslice-4.0.0.tgz" + }, + "lodash._basetostring": { + "version": "4.12.0", + "from": "lodash._basetostring@>=4.12.0 <4.13.0", + "resolved": "https://registry.npmjs.org/lodash._basetostring/-/lodash._basetostring-4.12.0.tgz" + }, + "lodash.pad": { + "version": "4.4.0", + "from": "lodash.pad@>=4.1.0 <5.0.0", + "resolved": "https://registry.npmjs.org/lodash.pad/-/lodash.pad-4.4.0.tgz" + }, + "lodash.padend": { + "version": "4.5.0", + "from": "lodash.padend@>=4.1.0 <5.0.0", + "resolved": "https://registry.npmjs.org/lodash.padend/-/lodash.padend-4.5.0.tgz" + }, + "lodash.padstart": { + "version": "4.5.0", + "from": "lodash.padstart@>=4.1.0 <5.0.0", + "resolved": "https://registry.npmjs.org/lodash.padstart/-/lodash.padstart-4.5.0.tgz" + }, + "lodash.tostring": { + "version": "4.1.3", + "from": "lodash.tostring@>=4.0.0 <5.0.0", + "resolved": "https://registry.npmjs.org/lodash.tostring/-/lodash.tostring-4.1.3.tgz" + }, + "mime-db": { + "version": "1.23.0", + "from": "mime-db@>=1.23.0 <1.24.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.23.0.tgz" + }, + "mime-types": { + "version": "2.1.11", + "from": "mime-types@>=2.1.7 <2.2.0", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.11.tgz" + }, + "minimatch": { + "version": "3.0.0", + "from": "minimatch@>=2.0.0 <3.0.0||>=3.0.0 <4.0.0", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.0.tgz" + }, + "minimist": { + "version": "0.0.8", + "from": "minimist@0.0.8", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz" + }, + "mkdirp": { + "version": "0.5.1", + "from": "mkdirp@>=0.5.0 <0.6.0", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz" + }, + "ms": { + "version": "0.7.1", + "from": "ms@0.7.1", + "resolved": "https://registry.npmjs.org/ms/-/ms-0.7.1.tgz" + }, + "node-uuid": { + "version": "1.4.7", + "from": "node-uuid@>=1.4.7 <1.5.0", + "resolved": "https://registry.npmjs.org/node-uuid/-/node-uuid-1.4.7.tgz" + }, + "nopt": { + "version": "3.0.6", + "from": "nopt@>=3.0.1 <3.1.0", + "resolved": "https://registry.npmjs.org/nopt/-/nopt-3.0.6.tgz" + }, + "npmlog": { + "version": "2.0.3", + "from": "npmlog@>=2.0.0 <2.1.0", + "resolved": "https://registry.npmjs.org/npmlog/-/npmlog-2.0.3.tgz" + }, + "oauth-sign": { + "version": "0.8.2", + "from": "oauth-sign@>=0.8.1 <0.9.0", + "resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.8.2.tgz" + }, + "once": { + "version": "1.3.3", + "from": "once@>=1.3.0 <2.0.0", + "resolved": "https://registry.npmjs.org/once/-/once-1.3.3.tgz" + }, + "path-is-absolute": { + "version": "1.0.0", + "from": "path-is-absolute@>=1.0.0 <2.0.0", + "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.0.tgz" + }, + "pinkie": { + "version": "2.0.4", + "from": "pinkie@>=2.0.0 <3.0.0", + "resolved": "https://registry.npmjs.org/pinkie/-/pinkie-2.0.4.tgz" + }, + "pinkie-promise": { + "version": "2.0.1", + "from": "pinkie-promise@>=2.0.0 <3.0.0", + "resolved": "https://registry.npmjs.org/pinkie-promise/-/pinkie-promise-2.0.1.tgz" + }, + "process-nextick-args": { + "version": "1.0.7", + "from": "process-nextick-args@>=1.0.6 <1.1.0", + "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-1.0.7.tgz" + }, + "qs": { + "version": "6.1.0", + "from": "qs@>=6.1.0 <6.2.0", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.1.0.tgz" + }, + "readable-stream": { + "version": "2.1.2", + "from": "readable-stream@>=2.0.0 <3.0.0||>=1.1.13 <2.0.0", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.1.2.tgz" + }, + "request": { + "version": "2.72.0", + "from": "request@>=2.0.0 <3.0.0", + "resolved": "https://registry.npmjs.org/request/-/request-2.72.0.tgz" + }, + "rimraf": { + "version": "2.5.2", + "from": "rimraf@>=2.5.0 <2.6.0", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.5.2.tgz" + }, + "semver": { + "version": "5.1.0", + "from": "semver@>=5.1.0 <5.2.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.1.0.tgz" + }, + "sntp": { + "version": "1.0.9", + "from": "sntp@>=1.0.0 <2.0.0", + "resolved": "https://registry.npmjs.org/sntp/-/sntp-1.0.9.tgz" + }, + "string_decoder": { + "version": "0.10.31", + "from": "string_decoder@>=0.10.0 <0.11.0", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz" + }, + "stringstream": { + "version": "0.0.5", + "from": "stringstream@>=0.0.4 <0.1.0", + "resolved": "https://registry.npmjs.org/stringstream/-/stringstream-0.0.5.tgz" + }, + "strip-ansi": { + "version": "3.0.1", + "from": "strip-ansi@>=3.0.0 <4.0.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz" + }, + "strip-json-comments": { + "version": "1.0.4", + "from": "strip-json-comments@>=1.0.4 <1.1.0", + "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-1.0.4.tgz" + }, + "supports-color": { + "version": "2.0.0", + "from": "supports-color@>=2.0.0 <3.0.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz" + }, + "tar": { + "version": "2.2.1", + "from": "tar@>=2.2.0 <2.3.0", + "resolved": "https://registry.npmjs.org/tar/-/tar-2.2.1.tgz" + }, + "tough-cookie": { + "version": "2.2.2", + "from": "tough-cookie@>=2.2.0 <2.3.0", + "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.2.2.tgz" + }, + "tunnel-agent": { + "version": "0.4.3", + "from": "tunnel-agent@>=0.4.1 <0.5.0", + "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.4.3.tgz" + }, + "tweetnacl": { + "version": "0.13.3", + "from": "tweetnacl@>=0.13.0 <0.14.0", + "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.13.3.tgz" + }, + "uid-number": { + "version": "0.0.6", + "from": "uid-number@>=0.0.6 <0.1.0", + "resolved": "https://registry.npmjs.org/uid-number/-/uid-number-0.0.6.tgz" + }, + "util-deprecate": { + "version": "1.0.2", + "from": "util-deprecate@>=1.0.1 <1.1.0", + "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz" + }, + "verror": { + "version": "1.3.6", + "from": "verror@1.3.6", + "resolved": "https://registry.npmjs.org/verror/-/verror-1.3.6.tgz" + }, + "wrappy": { + "version": "1.0.1", + "from": "wrappy@>=1.0.0 <2.0.0", + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.1.tgz" + }, + "xtend": { + "version": "4.0.1", + "from": "xtend@>=4.0.0 <5.0.0", + "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.1.tgz" + }, + "bl": { + "version": "1.1.2", + "from": "bl@>=1.1.2 <1.2.0", + "resolved": "https://registry.npmjs.org/bl/-/bl-1.1.2.tgz", "dependencies": { - "nopt": { - "version": "3.0.6", - "from": "nopt@~3.0.1", - "resolved": "https://registry.npmjs.org/nopt/-/nopt-3.0.6.tgz", - "dependencies": { - "abbrev": { - "version": "1.0.7", - "from": "abbrev@1", - "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.0.7.tgz" - } - } - }, - "npmlog": { - "version": "2.0.3", - "from": "npmlog@~2.0.0", - "resolved": "https://registry.npmjs.org/npmlog/-/npmlog-2.0.3.tgz", - "dependencies": { - "ansi": { - "version": "0.3.1", - "from": "ansi@~0.3.1", - "resolved": "https://registry.npmjs.org/ansi/-/ansi-0.3.1.tgz" - }, - "are-we-there-yet": { - "version": "1.1.2", - "from": "are-we-there-yet@~1.1.2", - "resolved": "https://registry.npmjs.org/are-we-there-yet/-/are-we-there-yet-1.1.2.tgz", - "dependencies": { - "delegates": { - "version": "1.0.0", - "from": "delegates@^1.0.0", - "resolved": "https://registry.npmjs.org/delegates/-/delegates-1.0.0.tgz" - }, - "readable-stream": { - "version": "2.0.6", - "from": "readable-stream@^2.0.0 || ^1.1.13", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.0.6.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": "1.0.0", - "from": "isarray@~1.0.0", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz" - }, - "process-nextick-args": { - "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", - "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" - } - } - } - } - }, - "gauge": { - "version": "1.2.7", - "from": "gauge@~1.2.5", - "resolved": "https://registry.npmjs.org/gauge/-/gauge-1.2.7.tgz", - "dependencies": { - "has-unicode": { - "version": "2.0.0", - "from": "has-unicode@^2.0.0", - "resolved": "https://registry.npmjs.org/has-unicode/-/has-unicode-2.0.0.tgz" - }, - "lodash.pad": { - "version": "4.1.0", - "from": "lodash.pad@^4.1.0", - "resolved": "https://registry.npmjs.org/lodash.pad/-/lodash.pad-4.1.0.tgz", - "dependencies": { - "lodash.repeat": { - "version": "4.0.0", - "from": "lodash.repeat@^4.0.0", - "resolved": "https://registry.npmjs.org/lodash.repeat/-/lodash.repeat-4.0.0.tgz" - }, - "lodash.tostring": { - "version": "4.1.2", - "from": "lodash.tostring@^4.0.0", - "resolved": "https://registry.npmjs.org/lodash.tostring/-/lodash.tostring-4.1.2.tgz" - } - } - }, - "lodash.padend": { - "version": "4.2.0", - "from": "lodash.padend@^4.1.0", - "resolved": "https://registry.npmjs.org/lodash.padend/-/lodash.padend-4.2.0.tgz", - "dependencies": { - "lodash.repeat": { - "version": "4.0.0", - "from": "lodash.repeat@^4.0.0", - "resolved": "https://registry.npmjs.org/lodash.repeat/-/lodash.repeat-4.0.0.tgz" - }, - "lodash.tostring": { - "version": "4.1.2", - "from": "lodash.tostring@^4.0.0", - "resolved": "https://registry.npmjs.org/lodash.tostring/-/lodash.tostring-4.1.2.tgz" - } - } - }, - "lodash.padstart": { - "version": "4.2.0", - "from": "lodash.padstart@^4.1.0", - "resolved": "https://registry.npmjs.org/lodash.padstart/-/lodash.padstart-4.2.0.tgz", - "dependencies": { - "lodash.repeat": { - "version": "4.0.0", - "from": "lodash.repeat@^4.0.0", - "resolved": "https://registry.npmjs.org/lodash.repeat/-/lodash.repeat-4.0.0.tgz" - }, - "lodash.tostring": { - "version": "4.1.2", - "from": "lodash.tostring@^4.0.0", - "resolved": "https://registry.npmjs.org/lodash.tostring/-/lodash.tostring-4.1.2.tgz" - } - } - } - } - } - } - }, - "request": { - "version": "2.69.0", - "from": "request@2.x", - "resolved": "https://registry.npmjs.org/request/-/request-2.69.0.tgz", - "dependencies": { - "aws-sign2": { - "version": "0.6.0", - "from": "aws-sign2@~0.6.0", - "resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.6.0.tgz" - }, - "aws4": { - "version": "1.3.2", - "from": "aws4@^1.2.1", - "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.3.2.tgz", - "dependencies": { - "lru-cache": { - "version": "4.0.1", - "from": "lru-cache@^4.0.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-4.0.1.tgz", - "dependencies": { - "pseudomap": { - "version": "1.0.2", - "from": "pseudomap@^1.0.1", - "resolved": "https://registry.npmjs.org/pseudomap/-/pseudomap-1.0.2.tgz" - }, - "yallist": { - "version": "2.0.0", - "from": "yallist@^2.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-2.0.0.tgz" - } - } - } - } - }, - "bl": { - "version": "1.0.3", - "from": "bl@~1.0.0", - "resolved": "https://registry.npmjs.org/bl/-/bl-1.0.3.tgz", - "dependencies": { - "readable-stream": { - "version": "2.0.6", - "from": "readable-stream@~2.0.5", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.0.6.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": "1.0.0", - "from": "isarray@~1.0.0", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz" - }, - "process-nextick-args": { - "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", - "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" - }, - "combined-stream": { - "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": "1.0.0", - "from": "delayed-stream@~1.0.0", - "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.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.1", - "resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz" - }, - "form-data": { - "version": "1.0.0-rc4", - "from": "form-data@~1.0.0-rc3", - "resolved": "https://registry.npmjs.org/form-data/-/form-data-1.0.0-rc4.tgz", - "dependencies": { - "async": { - "version": "1.5.2", - "from": "async@^1.5.2", - "resolved": "https://registry.npmjs.org/async/-/async-1.5.2.tgz" - } - } - }, - "har-validator": { - "version": "2.0.6", - "from": "har-validator@~2.0.6", - "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-2.0.6.tgz", - "dependencies": { - "chalk": { - "version": "1.1.3", - "from": "chalk@^1.1.1", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", - "dependencies": { - "ansi-styles": { - "version": "2.2.1", - "from": "ansi-styles@^2.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz" - }, - "escape-string-regexp": { - "version": "1.0.5", - "from": "escape-string-regexp@^1.0.2", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.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.1", - "from": "strip-ansi@^3.0.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.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.13.1", - "from": "is-my-json-valid@^2.12.4", - "resolved": "https://registry.npmjs.org/is-my-json-valid/-/is-my-json-valid-2.13.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": "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.4", - "from": "pinkie@^2.0.0", - "resolved": "https://registry.npmjs.org/pinkie/-/pinkie-2.0.4.tgz" - } - } - } - } - }, - "hawk": { - "version": "3.1.3", - "from": "hawk@~3.1.0", - "resolved": "https://registry.npmjs.org/hawk/-/hawk-3.1.3.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.x.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" - } - } - }, - "http-signature": { - "version": "1.1.1", - "from": "http-signature@~1.1.0", - "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.1.1.tgz", - "dependencies": { - "assert-plus": { - "version": "0.2.0", - "from": "assert-plus@^0.2.0", - "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-0.2.0.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" - } - } - }, - "sshpk": { - "version": "1.7.4", - "from": "sshpk@^1.7.0", - "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.7.4.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" - }, - "dashdash": { - "version": "1.13.0", - "from": "dashdash@>=1.10.1 <2.0.0", - "resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.13.0.tgz", - "dependencies": { - "assert-plus": { - "version": "1.0.0", - "from": "assert-plus@^1.0.0", - "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.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.14.3", - "from": "tweetnacl@>=0.13.0 <1.0.0", - "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.3.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" - } - } - } - } - }, - "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" - }, - "isstream": { - "version": "0.1.2", - "from": "isstream@~0.1.2", - "resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.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.10", - "from": "mime-types@~2.1.7", - "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.10.tgz", - "dependencies": { - "mime-db": { - "version": "1.22.0", - "from": "mime-db@~1.22.0", - "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.22.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" - }, - "oauth-sign": { - "version": "0.8.1", - "from": "oauth-sign@~0.8.0", - "resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.8.1.tgz" - }, - "qs": { - "version": "6.0.2", - "from": "qs@~6.0.2", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.0.2.tgz" - }, - "stringstream": { - "version": "0.0.5", - "from": "stringstream@~0.0.4", - "resolved": "https://registry.npmjs.org/stringstream/-/stringstream-0.0.5.tgz" - }, - "tough-cookie": { - "version": "2.2.2", - "from": "tough-cookie@~2.2.0", - "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.2.2.tgz" - }, - "tunnel-agent": { - "version": "0.4.2", - "from": "tunnel-agent@~0.4.1", - "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.4.2.tgz" - } - } - }, - "semver": { - "version": "5.1.0", - "from": "semver@~5.1.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.1.0.tgz" - }, - "tar": { - "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.8", - "from": "block-stream@*", - "resolved": "https://registry.npmjs.org/block-stream/-/block-stream-0.0.8.tgz" - }, - "fstream": { - "version": "1.0.8", - "from": "fstream@^1.0.2", - "resolved": "https://registry.npmjs.org/fstream/-/fstream-1.0.8.tgz", - "dependencies": { - "graceful-fs": { - "version": "4.1.3", - "from": "graceful-fs@^4.1.2", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.3.tgz" - } - } - }, - "inherits": { - "version": "2.0.1", - "from": "inherits@2", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.1.tgz" - } - } - }, - "tar-pack": { - "version": "3.1.3", - "from": "tar-pack@~3.1.0", - "resolved": "https://registry.npmjs.org/tar-pack/-/tar-pack-3.1.3.tgz", - "dependencies": { - "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" - } - } - }, - "fstream": { - "version": "1.0.8", - "from": "fstream@~1.0.8", - "resolved": "https://registry.npmjs.org/fstream/-/fstream-1.0.8.tgz", - "dependencies": { - "graceful-fs": { - "version": "4.1.3", - "from": "graceful-fs@^4.1.2", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.3.tgz" - }, - "inherits": { - "version": "2.0.1", - "from": "inherits@~2.0.0", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.1.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": { - "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@^3.0.0", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.0.tgz", - "dependencies": { - "brace-expansion": { - "version": "1.1.3", - "from": "brace-expansion@^1.0.0", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.3.tgz", - "dependencies": { - "balanced-match": { - "version": "0.3.0", - "from": "balanced-match@^0.3.0", - "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-0.3.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.3", - "from": "once@~1.3.3", - "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" - } - } - }, - "readable-stream": { - "version": "2.0.6", - "from": "readable-stream@~2.0.4", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.0.6.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": "1.0.0", - "from": "isarray@~1.0.0", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz" - }, - "process-nextick-args": { - "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", - "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" - } - } - }, - "uid-number": { - "version": "0.0.6", - "from": "uid-number@~0.0.6", - "resolved": "https://registry.npmjs.org/uid-number/-/uid-number-0.0.6.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.6", - "from": "rc@~1.1.0", - "resolved": "https://registry.npmjs.org/rc/-/rc-1.1.6.tgz", - "dependencies": { - "deep-extend": { - "version": "0.4.1", - "from": "deep-extend@~0.4.0", - "resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.4.1.tgz" - }, - "ini": { - "version": "1.3.4", - "from": "ini@~1.3.0", - "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.5.2", - "from": "rimraf@~2.5.0", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.5.2.tgz", - "dependencies": { - "glob": { - "version": "7.0.3", - "from": "glob@^7.0.0", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.0.3.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.3", - "from": "brace-expansion@^1.0.0", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.3.tgz", - "dependencies": { - "balanced-match": { - "version": "0.3.0", - "from": "balanced-match@^0.3.0", - "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-0.3.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.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" - } - } - } - } + "readable-stream": { + "version": "2.0.6", + "from": "readable-stream@>=2.0.5 <2.1.0", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.0.6.tgz" + } + } + }, + "dashdash": { + "version": "1.13.1", + "from": "dashdash@>=1.12.0 <2.0.0", + "resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.13.1.tgz", + "dependencies": { + "assert-plus": { + "version": "1.0.0", + "from": "assert-plus@>=1.0.0 <2.0.0", + "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz" + } + } + }, + "getpass": { + "version": "0.1.6", + "from": "getpass@>=0.1.1 <0.2.0", + "resolved": "https://registry.npmjs.org/getpass/-/getpass-0.1.6.tgz", + "dependencies": { + "assert-plus": { + "version": "1.0.0", + "from": "assert-plus@>=1.0.0 <2.0.0", + "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz" + } + } + }, + "rc": { + "version": "1.1.6", + "from": "rc@>=1.1.0 <1.2.0", + "resolved": "https://registry.npmjs.org/rc/-/rc-1.1.6.tgz", + "dependencies": { + "minimist": { + "version": "1.2.0", + "from": "minimist@>=1.2.0 <2.0.0", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz" + } + } + }, + "sshpk": { + "version": "1.8.3", + "from": "sshpk@>=1.7.0 <2.0.0", + "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.8.3.tgz", + "dependencies": { + "assert-plus": { + "version": "1.0.0", + "from": "assert-plus@>=1.0.0 <2.0.0", + "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz" + } + } + }, + "tar-pack": { + "version": "3.1.3", + "from": "tar-pack@>=3.1.0 <3.2.0", + "resolved": "https://registry.npmjs.org/tar-pack/-/tar-pack-3.1.3.tgz", + "dependencies": { + "readable-stream": { + "version": "2.0.6", + "from": "readable-stream@>=2.0.4 <2.1.0", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.0.6.tgz" } } } @@ -3729,34 +3500,34 @@ }, "mime": { "version": "1.2.11", - "from": "https://registry.npmjs.org/mime/-/mime-1.2.11.tgz", + "from": "mime@>=1.2.11 <1.3.0", "resolved": "https://registry.npmjs.org/mime/-/mime-1.2.11.tgz" }, "mkdirp": { "version": "0.5.1", - "from": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz", + "from": "mkdirp@>=0.5.0 <0.6.0", "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz", "dependencies": { "minimist": { "version": "0.0.8", - "from": "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz", + "from": "minimist@0.0.8", "resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz" } } }, "optimist": { "version": "0.6.1", - "from": "https://registry.npmjs.org/optimist/-/optimist-0.6.1.tgz", + "from": "optimist@>=0.6.1 <0.7.0", "resolved": "https://registry.npmjs.org/optimist/-/optimist-0.6.1.tgz", "dependencies": { "wordwrap": { "version": "0.0.3", - "from": "https://registry.npmjs.org/wordwrap/-/wordwrap-0.0.3.tgz", + "from": "wordwrap@>=0.0.2 <0.1.0", "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-0.0.3.tgz" }, "minimist": { "version": "0.0.10", - "from": "https://registry.npmjs.org/minimist/-/minimist-0.0.10.tgz", + "from": "minimist@>=0.0.1 <0.1.0", "resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.10.tgz" } } @@ -3772,17 +3543,17 @@ "dependencies": { "nan": { "version": "1.2.0", - "from": "https://registry.npmjs.org/nan/-/nan-1.2.0.tgz", + "from": "nan@>=1.2.0 <1.3.0", "resolved": "https://registry.npmjs.org/nan/-/nan-1.2.0.tgz" }, "mapnik-vector-tile": { "version": "0.5.5", - "from": "https://registry.npmjs.org/mapnik-vector-tile/-/mapnik-vector-tile-0.5.5.tgz", + "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": "https://registry.npmjs.org/node-pre-gyp/-/node-pre-gyp-0.5.25.tgz", + "from": "node-pre-gyp@0.5.25", "resolved": "https://registry.npmjs.org/node-pre-gyp/-/node-pre-gyp-0.5.25.tgz", "dependencies": { "nopt": { @@ -4152,32 +3923,32 @@ }, "semver": { "version": "5.0.3", - "from": "https://registry.npmjs.org/semver/-/semver-5.0.3.tgz", + "from": "semver@>=5.0.3 <5.1.0", "resolved": "https://registry.npmjs.org/semver/-/semver-5.0.3.tgz" }, "sphericalmercator": { "version": "1.0.3", - "from": "https://registry.npmjs.org/sphericalmercator/-/sphericalmercator-1.0.3.tgz", + "from": "sphericalmercator@1.0.3", "resolved": "https://registry.npmjs.org/sphericalmercator/-/sphericalmercator-1.0.3.tgz" }, "tilelive": { "version": "4.5.3", - "from": "https://registry.npmjs.org/tilelive/-/tilelive-4.5.3.tgz", + "from": "tilelive@>=4.5.3 <4.6.0", "resolved": "https://registry.npmjs.org/tilelive/-/tilelive-4.5.3.tgz", "dependencies": { "optimist": { "version": "0.6.1", - "from": "https://registry.npmjs.org/optimist/-/optimist-0.6.1.tgz", + "from": "optimist@>=0.6.0 <0.7.0", "resolved": "https://registry.npmjs.org/optimist/-/optimist-0.6.1.tgz", "dependencies": { "wordwrap": { "version": "0.0.3", - "from": "https://registry.npmjs.org/wordwrap/-/wordwrap-0.0.3.tgz", + "from": "wordwrap@>=0.0.2 <0.1.0", "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-0.0.3.tgz" }, "minimist": { "version": "0.0.10", - "from": "https://registry.npmjs.org/minimist/-/minimist-0.0.10.tgz", + "from": "minimist@>=0.0.1 <0.1.0", "resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.10.tgz" } } @@ -4196,12 +3967,12 @@ "dependencies": { "generic-pool": { "version": "2.1.1", - "from": "https://registry.npmjs.org/generic-pool/-/generic-pool-2.1.1.tgz", + "from": "generic-pool@>=2.1.1 <2.2.0", "resolved": "https://registry.npmjs.org/generic-pool/-/generic-pool-2.1.1.tgz" }, "xtend": { "version": "3.0.0", - "from": "https://registry.npmjs.org/xtend/-/xtend-3.0.0.tgz", + "from": "xtend@>=3.0.0 <3.1.0", "resolved": "https://registry.npmjs.org/xtend/-/xtend-3.0.0.tgz" } } @@ -4215,19 +3986,19 @@ "dependencies": { "generic-pool": { "version": "2.1.1", - "from": "https://registry.npmjs.org/generic-pool/-/generic-pool-2.1.1.tgz", + "from": "generic-pool@>=2.1.1 <2.2.0", "resolved": "https://registry.npmjs.org/generic-pool/-/generic-pool-2.1.1.tgz" }, "mime": { "version": "1.2.11", - "from": "https://registry.npmjs.org/mime/-/mime-1.2.11.tgz", + "from": "mime@>=1.2.11 <1.3.0", "resolved": "https://registry.npmjs.org/mime/-/mime-1.2.11.tgz" } } }, "torque.js": { "version": "2.11.4", - "from": "https://registry.npmjs.org/torque.js/-/torque.js-2.11.4.tgz", + "from": "torque.js@>=2.11.0 <2.12.0", "resolved": "https://registry.npmjs.org/torque.js/-/torque.js-2.11.4.tgz" } } From 25da6e779c53a56e9ea109ba8af2bb1b54366dc9 Mon Sep 17 00:00:00 2001 From: Raul Ochoa Date: Tue, 17 May 2016 15:45:21 +0200 Subject: [PATCH 16/17] Release 2.42.2 --- NEWS.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/NEWS.md b/NEWS.md index a8d0fbae..c18695a0 100644 --- a/NEWS.md +++ b/NEWS.md @@ -2,7 +2,7 @@ ## 2.42.2 -Released 2016-mm-dd +Released 2016-05-17 New features: - turbo-carto: mapnik substitution tokens support #455 From cfdac1bcb00e4143f1ab8aec4bd99fd962f41a32 Mon Sep 17 00:00:00 2001 From: Raul Ochoa Date: Tue, 17 May 2016 15:46:21 +0200 Subject: [PATCH 17/17] Stubs next version --- NEWS.md | 5 +++++ npm-shrinkwrap.json | 2 +- package.json | 2 +- 3 files changed, 7 insertions(+), 2 deletions(-) diff --git a/NEWS.md b/NEWS.md index c18695a0..19ad5960 100644 --- a/NEWS.md +++ b/NEWS.md @@ -1,5 +1,10 @@ # Changelog +## 2.42.3 + +Released 2016-mm-dd + + ## 2.42.2 Released 2016-05-17 diff --git a/npm-shrinkwrap.json b/npm-shrinkwrap.json index 1a4c9b8b..c3b9529d 100644 --- a/npm-shrinkwrap.json +++ b/npm-shrinkwrap.json @@ -1,6 +1,6 @@ { "name": "windshaft-cartodb", - "version": "2.42.2", + "version": "2.42.3", "dependencies": { "body-parser": { "version": "1.14.2", diff --git a/package.json b/package.json index d9c2253d..5ce84b37 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { "private": true, "name": "windshaft-cartodb", - "version": "2.42.2", + "version": "2.42.3", "description": "A map tile server for CartoDB", "keywords": [ "cartodb"