Compare commits
12 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
ba2a9b81e9 | ||
|
|
5577600903 | ||
|
|
a0a455b225 | ||
|
|
0019ab495b | ||
|
|
cbebac1cb1 | ||
|
|
e2fd4aca60 | ||
|
|
0c578a193c | ||
|
|
84f579f0ec | ||
|
|
1bf2809355 | ||
|
|
e91bc91057 | ||
|
|
4f9b6be45b | ||
|
|
95aa74ee34 |
19
NEWS.md
19
NEWS.md
@@ -1,5 +1,24 @@
|
||||
# Changelog
|
||||
|
||||
## 2.1.3
|
||||
|
||||
Released 2015-04-16
|
||||
|
||||
Announcements:
|
||||
- Upgrades windshaft to [0.42.2](https://github.com/CartoDB/Windshaft/releases/tag/0.42.2)
|
||||
|
||||
|
||||
## 2.1.2
|
||||
|
||||
Released 2015-04-15
|
||||
|
||||
Bug fixes:
|
||||
- Do not check statsd_client in profiler
|
||||
|
||||
Announcements:
|
||||
- Upgrades windshaft to [0.42.1](https://github.com/CartoDB/Windshaft/releases/tag/0.42.1)
|
||||
|
||||
|
||||
## 2.1.1
|
||||
|
||||
Released 2015-04-10
|
||||
|
||||
@@ -2,25 +2,25 @@ This document list all routes available in Windshaft-cartodb Maps API server.
|
||||
|
||||
## Routes list
|
||||
|
||||
1. `GET (?:/api/v1/map|/tiles/layergroup)/:token/:z/:x/:y@:scale_factor?x.:format {:token(f),:z(f),:x(f),:y(f),:scale_factor(t),:format(f)} (1)`
|
||||
1. `GET (?:/api/v1/map|/user/:user/api/v1/map|/tiles/layergroup)/:token/:z/:x/:y@:scale_factor?x.:format {:user(f),:token(f),:z(f),:x(f),:y(f),:scale_factor(t),:format(f)} (1)`
|
||||
<br/>Notes: Mapnik retina tiles [0]
|
||||
|
||||
1. `GET (?:/api/v1/map|/tiles/layergroup)/:token/:z/:x/:y.:format {:token(f),:z(f),:x(f),:y(f),:format(f)} (1)`
|
||||
1. `GET (?:/api/v1/map|/user/:user/api/v1/map|/tiles/layergroup)/:token/:z/:x/:y.:format {:user(f),:token(f),:z(f),:x(f),:y(f),:format(f)} (1)`
|
||||
<br/>Notes: Mapnik tiles [0]
|
||||
|
||||
1. `GET (?:/api/v1/map|/tiles/layergroup)/:token/:layer/:z/:x/:y.(:format) {:token(f),:layer(f),:z(f),:x(f),:y(f),:format(f)} (1)`
|
||||
1. `GET (?:/api/v1/map|/user/:user/api/v1/map|/tiles/layergroup)/:token/:layer/:z/:x/:y.(:format) {:user(f),:token(f),:layer(f),:z(f),:x(f),:y(f),:format(f)} (1)`
|
||||
<br/>Notes: Per :layer rendering based on :format [0]
|
||||
|
||||
1. `GET (?:/api/v1/map|/tiles/layergroup) {} (1)`
|
||||
1. `GET (?:/api/v1/map|/user/:user/api/v1/map|/tiles/layergroup) {:user(f)} (1)`
|
||||
<br/>Notes: Map instantiation [0]
|
||||
|
||||
1. `GET (?:/api/v1/map|/tiles/layergroup)/:token/:layer/attributes/:fid {:token(f),:layer(f),:fid(f)} (1)`
|
||||
1. `GET (?:/api/v1/map|/user/:user/api/v1/map|/tiles/layergroup)/:token/:layer/attributes/:fid {:user(f),:token(f),:layer(f),:fid(f)} (1)`
|
||||
<br/>Notes: Endpoint for info windows data, alternative for sql api when tables are private [0]
|
||||
|
||||
1. `GET (?:/api/v1/map|/tiles/layergroup)/static/center/:token/:z/:lat/:lng/:width/:height.:format {:token(f),:z(f),:lat(f),:lng(f),:width(f),:height(f),:format(f)} (1)`
|
||||
1. `GET (?:/api/v1/map|/user/:user/api/v1/map|/tiles/layergroup)/static/center/:token/:z/:lat/:lng/:width/:height.:format {:user(f),:token(f),:z(f),:lat(f),:lng(f),:width(f),:height(f),:format(f)} (1)`
|
||||
<br/>Notes: Static Maps API [0]
|
||||
|
||||
1. `GET (?:/api/v1/map|/tiles/layergroup)/static/bbox/:token/:west,:south,:east,:north/:width/:height.:format {:token(f),:west(f),:south(f),:east(f),:north(f),:width(f),:height(f),:format(f)} (1)`
|
||||
1. `GET (?:/api/v1/map|/user/:user/api/v1/map|/tiles/layergroup)/static/bbox/:token/:west,:south,:east,:north/:width/:height.:format {:user(f),:token(f),:west(f),:south(f),:east(f),:north(f),:width(f),:height(f),:format(f)} (1)`
|
||||
<br/>Notes: Static Maps API [0]
|
||||
|
||||
1. `GET / {} (1)`
|
||||
@@ -29,66 +29,39 @@ This document list all routes available in Windshaft-cartodb Maps API server.
|
||||
1. `GET /version {} (1)`
|
||||
<br/>Notes: Return relevant module versions: mapnik, grainstore, etc
|
||||
|
||||
1. `GET /tiles/:table/:z/:x/:y.* {:table(f),:z(f),:x(f),:y(f)} (1)`
|
||||
<br/>Notes: **[DEPRECATED]** Per :table tiles rendering
|
||||
|
||||
1. `GET /tiles/:table/style {:table(f)} (1)`
|
||||
<br/>Notes: **[DEPRECATED]** Style for :table
|
||||
|
||||
1. `GET (?:/api/v1/map/named|/tiles/template)/:template_id/jsonp {:template_id(f)} (1)`
|
||||
1. `GET (?:/api/v1/map/named|/user/:user/api/v1/map/named|/tiles/template)/:template_id/jsonp {:user(f),:template_id(f)} (1)`
|
||||
<br/>Notes: Named maps JSONP instantiation [1]
|
||||
|
||||
1. `GET (?:/api/v1/map/named|/tiles/template)/:template_id {:template_id(f)} (1)`
|
||||
1. `GET (?:/api/v1/map/named|/user/:user/api/v1/map/named|/tiles/template)/:template_id {:user(f),:template_id(f)} (1)`
|
||||
<br/>Notes: Named map retrieval (w/ API KEY) [1]
|
||||
|
||||
1. `GET (?:/api/v1/map/named|/tiles/template) {} (1)`
|
||||
1. `GET (?:/api/v1/map/named|/user/:user/api/v1/map/named|/tiles/template) {:user(f)} (1)`
|
||||
<br/>Notes: List named maps (w/ API KEY) [1]
|
||||
|
||||
1. `GET /tiles/:table/infowindow {:table(f)} (1)`
|
||||
<br/>Notes: **[DEPRECATED]** retrieve info window template for :table
|
||||
|
||||
1. `GET /tiles/:table/map_metadata {:table(f)} (1)`
|
||||
<br/>Notes: **[DEPRECATED]** retrieve map metadata for :table
|
||||
|
||||
1. `GET /health {} (1)`
|
||||
<br/>Notes: Healt check
|
||||
|
||||
1. `OPTIONS (?:/api/v1/map|/tiles/layergroup) {} (1)`
|
||||
1. `OPTIONS (?:/api/v1/map|/user/:user/api/v1/map|/tiles/layergroup) {:user(f)} (1)`
|
||||
<br/>Notes: CORS [0]
|
||||
|
||||
1. `OPTIONS /tiles/:table/:z/:x/:y.* {:table(f),:z(f),:x(f),:y(f)} (1)`
|
||||
<br/>Notes: **[DEPRECATED]** CORS
|
||||
|
||||
1. `OPTIONS /tiles/:table/style {:table(f)} (1)`
|
||||
<br/>Notes: **[DEPRECATED]** CORS
|
||||
|
||||
1. `OPTIONS (?:/api/v1/map/named|/tiles/template)/:template_id {:template_id(f)} (1)`
|
||||
1. `OPTIONS (?:/api/v1/map/named|/user/:user/api/v1/map/named|/tiles/template)/:template_id {:user(f),:template_id(f)} (1)`
|
||||
<br/>Notes: CORS [1]
|
||||
|
||||
1. `POST (?:/api/v1/map|/tiles/layergroup) {} (1)`
|
||||
1. `POST (?:/api/v1/map|/user/:user/api/v1/map|/tiles/layergroup) {:user(f)} (1)`
|
||||
<br/>Notes: Map instantiation [0]
|
||||
|
||||
1. `POST /tiles/:table/style {:table(f)} (1)`
|
||||
<br/>Notes: **[DEPRECATED]** Create style for :table
|
||||
|
||||
1. `POST (?:/api/v1/map/named|/tiles/template) {} (1)`
|
||||
1. `POST (?:/api/v1/map/named|/user/:user/api/v1/map/named|/tiles/template) {:user(f)} (1)`
|
||||
<br/>Notes: Create named map (w/ API KEY) [1]
|
||||
|
||||
1. `POST (?:/api/v1/map/named|/tiles/template)/:template_id {:template_id(f)} (1)`
|
||||
1. `POST (?:/api/v1/map/named|/user/:user/api/v1/map/named|/tiles/template)/:template_id {:user(f),:template_id(f)} (1)`
|
||||
<br/>Notes: Instantiate named map [1]
|
||||
|
||||
1. `DELETE /tiles/:table/style {:table(f)} (1)`
|
||||
<br/>Notes: **[DEPRECATED]** Delete :table style
|
||||
|
||||
1. `DELETE (?:/api/v1/map/named|/tiles/template)/:template_id {:template_id(f)} (1)`
|
||||
<br/>Notes: Delete named map (w/ API KEY) [1]
|
||||
|
||||
1. `DELETE /tiles/:table/flush_cache {:table(f)} (1)`
|
||||
<br/>Notes: **[DEPRECATED]** Flush internal caches for :table
|
||||
|
||||
1. `PUT (?:/api/v1/map/named|/tiles/template)/:template_id {:template_id(f)} (1)`
|
||||
1. `PUT (?:/api/v1/map/named|/user/:user/api/v1/map/named|/tiles/template)/:template_id {:user(f),:template_id(f)} (1)`
|
||||
<br/>Notes: Update a named map (w/ API KEY) [1]
|
||||
|
||||
1. `DELETE (?:/api/v1/map/named|/user/:user/api/v1/map/named|/tiles/template)/:template_id {:user(f),:template_id(f)} (1)`
|
||||
<br/>Notes: Delete named map (w/ API KEY) [1]
|
||||
|
||||
## Optional deprecated routes
|
||||
|
||||
- [0] `/tiles/layergroup` is deprecated and `/api/v1/map` should be used but we keep it for now.
|
||||
|
||||
@@ -69,6 +69,7 @@ var CartodbWindshaft = function(serverOptions) {
|
||||
// POST/PUT/DELETE requests are never cached anyway.
|
||||
var noCacheGETRoutes = [
|
||||
'/',
|
||||
'/version',
|
||||
// See https://github.com/CartoDB/Windshaft-cartodb/issues/176
|
||||
serverOptions.base_url_mapconfig,
|
||||
template_baseurl,
|
||||
|
||||
@@ -59,9 +59,6 @@ TemplateMapsController.prototype.create = function(req, res) {
|
||||
return { template_id: cdbuser + '@' + tpl_id };
|
||||
},
|
||||
function finish(err, response){
|
||||
if ( req.profiler ) {
|
||||
res.header('X-Tiler-Profiler', req.profiler.toJSONString());
|
||||
}
|
||||
if (err){
|
||||
response = { error: ''+err };
|
||||
var statusCode = 400;
|
||||
@@ -115,9 +112,6 @@ TemplateMapsController.prototype.update = function(req, res) {
|
||||
return { template_id: cdbuser + '@' + tpl_id };
|
||||
},
|
||||
function finish(err, response){
|
||||
if ( req.profiler ) {
|
||||
res.header('X-Tiler-Profiler', req.profiler.toJSONString());
|
||||
}
|
||||
if (err){
|
||||
var statusCode = 400;
|
||||
response = { error: ''+err };
|
||||
@@ -136,7 +130,7 @@ TemplateMapsController.prototype.update = function(req, res) {
|
||||
TemplateMapsController.prototype.retrieve = function(req, res) {
|
||||
var self = this;
|
||||
|
||||
if ( req.profiler && req.profiler.statsd_client ) {
|
||||
if (req.profiler) {
|
||||
req.profiler.start('windshaft-cartodb.get_template');
|
||||
}
|
||||
|
||||
@@ -198,7 +192,7 @@ TemplateMapsController.prototype.retrieve = function(req, res) {
|
||||
TemplateMapsController.prototype.destroy = function(req, res) {
|
||||
var self = this;
|
||||
|
||||
if ( req.profiler && req.profiler.statsd_client ) {
|
||||
if (req.profiler) {
|
||||
req.profiler.start('windshaft-cartodb.delete_template');
|
||||
}
|
||||
this.app.doCORS(res);
|
||||
@@ -250,8 +244,7 @@ TemplateMapsController.prototype.destroy = function(req, res) {
|
||||
// Get a list of owned templates
|
||||
TemplateMapsController.prototype.list = function(req, res) {
|
||||
var self = this;
|
||||
|
||||
if ( req.profiler && req.profiler.statsd_client ) {
|
||||
if ( req.profiler ) {
|
||||
req.profiler.start('windshaft-cartodb.get_template_list');
|
||||
}
|
||||
this.app.doCORS(res);
|
||||
@@ -295,7 +288,7 @@ TemplateMapsController.prototype.list = function(req, res) {
|
||||
TemplateMapsController.prototype.instantiate = function(req, res) {
|
||||
var self = this;
|
||||
|
||||
if ( req.profiler && req.profiler.statsd_client) {
|
||||
if (req.profiler) {
|
||||
req.profiler.start('windshaft-cartodb.instance_template_post');
|
||||
}
|
||||
step(
|
||||
@@ -305,7 +298,7 @@ TemplateMapsController.prototype.instantiate = function(req, res) {
|
||||
}
|
||||
self.instantiateTemplate(req, res, req.body, this);
|
||||
}, function(err, response) {
|
||||
self.finish_instantiation(err, response, res, req);
|
||||
self.finish_instantiation(err, response, res);
|
||||
}
|
||||
);
|
||||
};
|
||||
@@ -322,7 +315,7 @@ TemplateMapsController.prototype.options = function(req, res, next) {
|
||||
TemplateMapsController.prototype.jsonp = function(req, res) {
|
||||
var self = this;
|
||||
|
||||
if ( req.profiler && req.profiler.statsd_client) {
|
||||
if (req.profiler) {
|
||||
req.profiler.start('windshaft-cartodb.instance_template_get');
|
||||
}
|
||||
step(
|
||||
@@ -340,7 +333,7 @@ TemplateMapsController.prototype.jsonp = function(req, res) {
|
||||
}
|
||||
self.instantiateTemplate(req, res, config, this);
|
||||
}, function(err, response) {
|
||||
self.finish_instantiation(err, response, res, req);
|
||||
self.finish_instantiation(err, response, res);
|
||||
}
|
||||
);
|
||||
};
|
||||
@@ -447,19 +440,13 @@ TemplateMapsController.prototype.instantiateTemplate = function(req, res, templa
|
||||
);
|
||||
};
|
||||
|
||||
TemplateMapsController.prototype.finish_instantiation = function(err, response, res, req) {
|
||||
if ( req.profiler ) {
|
||||
res.header('X-Tiler-Profiler', req.profiler.toJSONString());
|
||||
}
|
||||
TemplateMapsController.prototype.finish_instantiation = function(err, response, res) {
|
||||
if (err) {
|
||||
var statusCode = 400;
|
||||
response = { error: ''+err };
|
||||
if ( ! _.isUndefined(err.http_status) ) {
|
||||
statusCode = err.http_status;
|
||||
}
|
||||
if(global.environment.debug) {
|
||||
response.stack = err.stack;
|
||||
}
|
||||
this.app.sendError(res, response, statusCode, 'POST INSTANCE TEMPLATE', err);
|
||||
} else {
|
||||
this.app.sendResponse(res, [response, 200]);
|
||||
|
||||
351
npm-shrinkwrap.json
generated
351
npm-shrinkwrap.json
generated
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "windshaft-cartodb",
|
||||
"version": "2.1.1",
|
||||
"version": "2.1.3",
|
||||
"dependencies": {
|
||||
"cartodb-psql": {
|
||||
"version": "0.4.0",
|
||||
@@ -103,7 +103,7 @@
|
||||
},
|
||||
"inherits": {
|
||||
"version": "2.0.1",
|
||||
"from": "inherits@~2.0.1",
|
||||
"from": "inherits@2",
|
||||
"resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.1.tgz"
|
||||
}
|
||||
}
|
||||
@@ -170,9 +170,9 @@
|
||||
"resolved": "https://registry.npmjs.org/underscore/-/underscore-1.6.0.tgz"
|
||||
},
|
||||
"windshaft": {
|
||||
"version": "0.42.0",
|
||||
"from": "windshaft@0.42.0",
|
||||
"resolved": "https://registry.npmjs.org/windshaft/-/windshaft-0.42.0.tgz",
|
||||
"version": "0.42.2",
|
||||
"from": "windshaft@0.42.2",
|
||||
"resolved": "https://registry.npmjs.org/windshaft/-/windshaft-0.42.2.tgz",
|
||||
"dependencies": {
|
||||
"chronograph": {
|
||||
"version": "0.1.0",
|
||||
@@ -402,62 +402,158 @@
|
||||
}
|
||||
},
|
||||
"srs": {
|
||||
"version": "0.4.6",
|
||||
"version": "0.4.7",
|
||||
"from": "srs@~0.4.1",
|
||||
"resolved": "https://registry.npmjs.org/srs/-/srs-0.4.6.tgz",
|
||||
"resolved": "https://registry.npmjs.org/srs/-/srs-0.4.7.tgz",
|
||||
"dependencies": {
|
||||
"nan": {
|
||||
"version": "1.4.3",
|
||||
"from": "nan@~1.4.1",
|
||||
"resolved": "https://registry.npmjs.org/nan/-/nan-1.4.3.tgz"
|
||||
"version": "1.7.0",
|
||||
"from": "nan@~1.7.0",
|
||||
"resolved": "https://registry.npmjs.org/nan/-/nan-1.7.0.tgz"
|
||||
},
|
||||
"node-pre-gyp": {
|
||||
"version": "0.6.1",
|
||||
"from": "node-pre-gyp@~0.6.1",
|
||||
"resolved": "https://registry.npmjs.org/node-pre-gyp/-/node-pre-gyp-0.6.1.tgz",
|
||||
"version": "0.6.4",
|
||||
"from": "node-pre-gyp@~0.6.4",
|
||||
"resolved": "https://registry.npmjs.org/node-pre-gyp/-/node-pre-gyp-0.6.4.tgz",
|
||||
"dependencies": {
|
||||
"nopt": {
|
||||
"version": "3.0.1",
|
||||
"from": "nopt@~3.0.1",
|
||||
"from": "nopt@>=3.0.1 <3.1.0",
|
||||
"resolved": "https://registry.npmjs.org/nopt/-/nopt-3.0.1.tgz",
|
||||
"dependencies": {
|
||||
"abbrev": {
|
||||
"version": "1.0.5",
|
||||
"from": "abbrev@1",
|
||||
"from": "abbrev@>=1.0.0 <2.0.0",
|
||||
"resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.0.5.tgz"
|
||||
}
|
||||
}
|
||||
},
|
||||
"npmlog": {
|
||||
"version": "0.1.1",
|
||||
"from": "npmlog@~0.1.1",
|
||||
"resolved": "https://registry.npmjs.org/npmlog/-/npmlog-0.1.1.tgz",
|
||||
"version": "1.1.0",
|
||||
"from": "npmlog@>=1.1.0 <1.2.0",
|
||||
"resolved": "https://registry.npmjs.org/npmlog/-/npmlog-1.1.0.tgz",
|
||||
"dependencies": {
|
||||
"ansi": {
|
||||
"version": "0.3.0",
|
||||
"from": "ansi@~0.3.0",
|
||||
"from": "ansi@>=0.3.0 <0.4.0",
|
||||
"resolved": "https://registry.npmjs.org/ansi/-/ansi-0.3.0.tgz"
|
||||
},
|
||||
"are-we-there-yet": {
|
||||
"version": "1.0.2",
|
||||
"from": "are-we-there-yet@>=1.0.0 <1.1.0",
|
||||
"resolved": "https://registry.npmjs.org/are-we-there-yet/-/are-we-there-yet-1.0.2.tgz",
|
||||
"dependencies": {
|
||||
"delegates": {
|
||||
"version": "0.1.0",
|
||||
"from": "delegates@>=0.1.0 <0.2.0",
|
||||
"resolved": "https://registry.npmjs.org/delegates/-/delegates-0.1.0.tgz"
|
||||
}
|
||||
}
|
||||
},
|
||||
"gauge": {
|
||||
"version": "1.1.0",
|
||||
"from": "gauge@>=1.1.0 <1.2.0",
|
||||
"resolved": "https://registry.npmjs.org/gauge/-/gauge-1.1.0.tgz",
|
||||
"dependencies": {
|
||||
"has-unicode": {
|
||||
"version": "1.0.0",
|
||||
"from": "has-unicode@>=1.0.0 <2.0.0",
|
||||
"resolved": "https://registry.npmjs.org/has-unicode/-/has-unicode-1.0.0.tgz"
|
||||
},
|
||||
"lodash.pad": {
|
||||
"version": "3.0.0",
|
||||
"from": "lodash.pad@>=3.0.0 <4.0.0",
|
||||
"resolved": "https://registry.npmjs.org/lodash.pad/-/lodash.pad-3.0.0.tgz",
|
||||
"dependencies": {
|
||||
"lodash._basetostring": {
|
||||
"version": "3.0.0",
|
||||
"from": "lodash._basetostring@>=3.0.0 <4.0.0",
|
||||
"resolved": "https://registry.npmjs.org/lodash._basetostring/-/lodash._basetostring-3.0.0.tgz"
|
||||
},
|
||||
"lodash._createpad": {
|
||||
"version": "3.0.1",
|
||||
"from": "lodash._createpad@>=3.0.0 <4.0.0",
|
||||
"resolved": "https://registry.npmjs.org/lodash._createpad/-/lodash._createpad-3.0.1.tgz",
|
||||
"dependencies": {
|
||||
"lodash.repeat": {
|
||||
"version": "3.0.0",
|
||||
"from": "lodash.repeat@>=3.0.0 <4.0.0",
|
||||
"resolved": "https://registry.npmjs.org/lodash.repeat/-/lodash.repeat-3.0.0.tgz"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"lodash.padleft": {
|
||||
"version": "3.0.0",
|
||||
"from": "lodash.padleft@>=3.0.0 <4.0.0",
|
||||
"resolved": "https://registry.npmjs.org/lodash.padleft/-/lodash.padleft-3.0.0.tgz",
|
||||
"dependencies": {
|
||||
"lodash._basetostring": {
|
||||
"version": "3.0.0",
|
||||
"from": "lodash._basetostring@>=3.0.0 <4.0.0",
|
||||
"resolved": "https://registry.npmjs.org/lodash._basetostring/-/lodash._basetostring-3.0.0.tgz"
|
||||
},
|
||||
"lodash._createpad": {
|
||||
"version": "3.0.1",
|
||||
"from": "lodash._createpad@>=3.0.0 <4.0.0",
|
||||
"resolved": "https://registry.npmjs.org/lodash._createpad/-/lodash._createpad-3.0.1.tgz",
|
||||
"dependencies": {
|
||||
"lodash.repeat": {
|
||||
"version": "3.0.0",
|
||||
"from": "lodash.repeat@>=3.0.0 <4.0.0",
|
||||
"resolved": "https://registry.npmjs.org/lodash.repeat/-/lodash.repeat-3.0.0.tgz"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"lodash.padright": {
|
||||
"version": "3.0.0",
|
||||
"from": "lodash.padright@>=3.0.0 <4.0.0",
|
||||
"resolved": "https://registry.npmjs.org/lodash.padright/-/lodash.padright-3.0.0.tgz",
|
||||
"dependencies": {
|
||||
"lodash._basetostring": {
|
||||
"version": "3.0.0",
|
||||
"from": "lodash._basetostring@>=3.0.0 <4.0.0",
|
||||
"resolved": "https://registry.npmjs.org/lodash._basetostring/-/lodash._basetostring-3.0.0.tgz"
|
||||
},
|
||||
"lodash._createpad": {
|
||||
"version": "3.0.1",
|
||||
"from": "lodash._createpad@>=3.0.0 <4.0.0",
|
||||
"resolved": "https://registry.npmjs.org/lodash._createpad/-/lodash._createpad-3.0.1.tgz",
|
||||
"dependencies": {
|
||||
"lodash.repeat": {
|
||||
"version": "3.0.0",
|
||||
"from": "lodash.repeat@>=3.0.0 <4.0.0",
|
||||
"resolved": "https://registry.npmjs.org/lodash.repeat/-/lodash.repeat-3.0.0.tgz"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"request": {
|
||||
"version": "2.48.0",
|
||||
"from": "request@2.x",
|
||||
"resolved": "https://registry.npmjs.org/request/-/request-2.48.0.tgz",
|
||||
"version": "2.53.0",
|
||||
"from": "request@>=2.0.0 <3.0.0",
|
||||
"resolved": "https://registry.npmjs.org/request/-/request-2.53.0.tgz",
|
||||
"dependencies": {
|
||||
"bl": {
|
||||
"version": "0.9.3",
|
||||
"from": "bl@~0.9.0",
|
||||
"resolved": "https://registry.npmjs.org/bl/-/bl-0.9.3.tgz",
|
||||
"version": "0.9.4",
|
||||
"from": "bl@>=0.9.0 <0.10.0",
|
||||
"resolved": "https://registry.npmjs.org/bl/-/bl-0.9.4.tgz",
|
||||
"dependencies": {
|
||||
"readable-stream": {
|
||||
"version": "1.0.33",
|
||||
"from": "readable-stream@~1.0.26",
|
||||
"from": "readable-stream@>=1.0.26 <1.1.0",
|
||||
"resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.0.33.tgz",
|
||||
"dependencies": {
|
||||
"core-util-is": {
|
||||
"version": "1.0.1",
|
||||
"from": "core-util-is@~1.0.0",
|
||||
"from": "core-util-is@>=1.0.0 <1.1.0",
|
||||
"resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.1.tgz"
|
||||
},
|
||||
"isarray": {
|
||||
@@ -467,12 +563,12 @@
|
||||
},
|
||||
"string_decoder": {
|
||||
"version": "0.10.31",
|
||||
"from": "string_decoder@~0.10.x",
|
||||
"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": "inherits@~2.0.1",
|
||||
"from": "inherits@>=2.0.1 <2.1.0",
|
||||
"resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.1.tgz"
|
||||
}
|
||||
}
|
||||
@@ -480,55 +576,57 @@
|
||||
}
|
||||
},
|
||||
"caseless": {
|
||||
"version": "0.7.0",
|
||||
"from": "caseless@~0.7.0",
|
||||
"resolved": "https://registry.npmjs.org/caseless/-/caseless-0.7.0.tgz"
|
||||
"version": "0.9.0",
|
||||
"from": "caseless@>=0.9.0 <0.10.0",
|
||||
"resolved": "https://registry.npmjs.org/caseless/-/caseless-0.9.0.tgz"
|
||||
},
|
||||
"forever-agent": {
|
||||
"version": "0.5.2",
|
||||
"from": "forever-agent@~0.5.0",
|
||||
"from": "forever-agent@>=0.5.0 <0.6.0",
|
||||
"resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.5.2.tgz"
|
||||
},
|
||||
"form-data": {
|
||||
"version": "0.1.4",
|
||||
"from": "form-data@~0.1.0",
|
||||
"resolved": "https://registry.npmjs.org/form-data/-/form-data-0.1.4.tgz",
|
||||
"version": "0.2.0",
|
||||
"from": "form-data@>=0.2.0 <0.3.0",
|
||||
"resolved": "https://registry.npmjs.org/form-data/-/form-data-0.2.0.tgz",
|
||||
"dependencies": {
|
||||
"mime": {
|
||||
"version": "1.2.11",
|
||||
"from": "mime@~1.2.11",
|
||||
"resolved": "https://registry.npmjs.org/mime/-/mime-1.2.11.tgz"
|
||||
},
|
||||
"async": {
|
||||
"version": "0.9.0",
|
||||
"from": "async@~0.9.0",
|
||||
"from": "async@>=0.9.0 <0.10.0",
|
||||
"resolved": "https://registry.npmjs.org/async/-/async-0.9.0.tgz"
|
||||
}
|
||||
}
|
||||
},
|
||||
"json-stringify-safe": {
|
||||
"version": "5.0.0",
|
||||
"from": "json-stringify-safe@~5.0.0",
|
||||
"from": "json-stringify-safe@>=5.0.0 <5.1.0",
|
||||
"resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.0.tgz"
|
||||
},
|
||||
"mime-types": {
|
||||
"version": "1.0.2",
|
||||
"from": "mime-types@~1.0.1",
|
||||
"resolved": "https://registry.npmjs.org/mime-types/-/mime-types-1.0.2.tgz"
|
||||
"version": "2.0.9",
|
||||
"from": "mime-types@>=2.0.1 <2.1.0",
|
||||
"resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.0.9.tgz",
|
||||
"dependencies": {
|
||||
"mime-db": {
|
||||
"version": "1.7.0",
|
||||
"from": "mime-db@>=1.7.0 <1.8.0",
|
||||
"resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.7.0.tgz"
|
||||
}
|
||||
}
|
||||
},
|
||||
"node-uuid": {
|
||||
"version": "1.4.1",
|
||||
"from": "node-uuid@~1.4.0",
|
||||
"resolved": "https://registry.npmjs.org/node-uuid/-/node-uuid-1.4.1.tgz"
|
||||
"version": "1.4.2",
|
||||
"from": "node-uuid@>=1.4.0 <1.5.0",
|
||||
"resolved": "https://registry.npmjs.org/node-uuid/-/node-uuid-1.4.2.tgz"
|
||||
},
|
||||
"qs": {
|
||||
"version": "2.3.3",
|
||||
"from": "qs@~2.3.1",
|
||||
"from": "qs@>=2.3.1 <2.4.0",
|
||||
"resolved": "https://registry.npmjs.org/qs/-/qs-2.3.3.tgz"
|
||||
},
|
||||
"tunnel-agent": {
|
||||
"version": "0.4.0",
|
||||
"from": "tunnel-agent@~0.4.0",
|
||||
"from": "tunnel-agent@>=0.4.0 <0.5.0",
|
||||
"resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.4.0.tgz"
|
||||
},
|
||||
"tough-cookie": {
|
||||
@@ -544,14 +642,14 @@
|
||||
}
|
||||
},
|
||||
"http-signature": {
|
||||
"version": "0.10.0",
|
||||
"from": "http-signature@~0.10.0",
|
||||
"resolved": "https://registry.npmjs.org/http-signature/-/http-signature-0.10.0.tgz",
|
||||
"version": "0.10.1",
|
||||
"from": "http-signature@>=0.10.0 <0.11.0",
|
||||
"resolved": "https://registry.npmjs.org/http-signature/-/http-signature-0.10.1.tgz",
|
||||
"dependencies": {
|
||||
"assert-plus": {
|
||||
"version": "0.1.2",
|
||||
"from": "assert-plus@0.1.2",
|
||||
"resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-0.1.2.tgz"
|
||||
"version": "0.1.5",
|
||||
"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",
|
||||
@@ -559,57 +657,57 @@
|
||||
"resolved": "https://registry.npmjs.org/asn1/-/asn1-0.1.11.tgz"
|
||||
},
|
||||
"ctype": {
|
||||
"version": "0.5.2",
|
||||
"from": "ctype@0.5.2",
|
||||
"resolved": "https://registry.npmjs.org/ctype/-/ctype-0.5.2.tgz"
|
||||
"version": "0.5.3",
|
||||
"from": "ctype@0.5.3",
|
||||
"resolved": "https://registry.npmjs.org/ctype/-/ctype-0.5.3.tgz"
|
||||
}
|
||||
}
|
||||
},
|
||||
"oauth-sign": {
|
||||
"version": "0.5.0",
|
||||
"from": "oauth-sign@~0.5.0",
|
||||
"resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.5.0.tgz"
|
||||
"version": "0.6.0",
|
||||
"from": "oauth-sign@>=0.6.0 <0.7.0",
|
||||
"resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.6.0.tgz"
|
||||
},
|
||||
"hawk": {
|
||||
"version": "1.1.1",
|
||||
"from": "hawk@1.1.1",
|
||||
"resolved": "https://registry.npmjs.org/hawk/-/hawk-1.1.1.tgz",
|
||||
"version": "2.3.1",
|
||||
"from": "hawk@>=2.3.0 <2.4.0",
|
||||
"resolved": "https://registry.npmjs.org/hawk/-/hawk-2.3.1.tgz",
|
||||
"dependencies": {
|
||||
"hoek": {
|
||||
"version": "0.9.1",
|
||||
"from": "hoek@0.9.x",
|
||||
"resolved": "https://registry.npmjs.org/hoek/-/hoek-0.9.1.tgz"
|
||||
"version": "2.11.0",
|
||||
"from": "hoek@>=2.0.0 <3.0.0",
|
||||
"resolved": "https://registry.npmjs.org/hoek/-/hoek-2.11.0.tgz"
|
||||
},
|
||||
"boom": {
|
||||
"version": "0.4.2",
|
||||
"from": "boom@0.4.x",
|
||||
"resolved": "https://registry.npmjs.org/boom/-/boom-0.4.2.tgz"
|
||||
"version": "2.6.1",
|
||||
"from": "boom@>=2.0.0 <3.0.0",
|
||||
"resolved": "https://registry.npmjs.org/boom/-/boom-2.6.1.tgz"
|
||||
},
|
||||
"cryptiles": {
|
||||
"version": "0.2.2",
|
||||
"from": "cryptiles@0.2.x",
|
||||
"resolved": "https://registry.npmjs.org/cryptiles/-/cryptiles-0.2.2.tgz"
|
||||
"version": "2.0.4",
|
||||
"from": "cryptiles@>=2.0.0 <3.0.0",
|
||||
"resolved": "https://registry.npmjs.org/cryptiles/-/cryptiles-2.0.4.tgz"
|
||||
},
|
||||
"sntp": {
|
||||
"version": "0.2.4",
|
||||
"from": "sntp@0.2.x",
|
||||
"resolved": "https://registry.npmjs.org/sntp/-/sntp-0.2.4.tgz"
|
||||
"version": "1.0.9",
|
||||
"from": "sntp@>=1.0.0 <2.0.0",
|
||||
"resolved": "https://registry.npmjs.org/sntp/-/sntp-1.0.9.tgz"
|
||||
}
|
||||
}
|
||||
},
|
||||
"aws-sign2": {
|
||||
"version": "0.5.0",
|
||||
"from": "aws-sign2@~0.5.0",
|
||||
"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.4",
|
||||
"from": "stringstream@~0.0.4",
|
||||
"from": "stringstream@>=0.0.4 <0.1.0",
|
||||
"resolved": "https://registry.npmjs.org/stringstream/-/stringstream-0.0.4.tgz"
|
||||
},
|
||||
"combined-stream": {
|
||||
"version": "0.0.7",
|
||||
"from": "combined-stream@~0.0.5",
|
||||
"from": "combined-stream@>=0.0.5 <0.1.0",
|
||||
"resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-0.0.7.tgz",
|
||||
"dependencies": {
|
||||
"delayed-stream": {
|
||||
@@ -618,18 +716,23 @@
|
||||
"resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-0.0.5.tgz"
|
||||
}
|
||||
}
|
||||
},
|
||||
"isstream": {
|
||||
"version": "0.1.1",
|
||||
"from": "isstream@>=0.1.1 <0.2.0",
|
||||
"resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.1.tgz"
|
||||
}
|
||||
}
|
||||
},
|
||||
"semver": {
|
||||
"version": "4.1.0",
|
||||
"from": "semver@~4.1.0",
|
||||
"resolved": "https://registry.npmjs.org/semver/-/semver-4.1.0.tgz"
|
||||
"version": "4.3.0",
|
||||
"from": "semver@>=4.3.0 <4.4.0",
|
||||
"resolved": "https://registry.npmjs.org/semver/-/semver-4.3.0.tgz"
|
||||
},
|
||||
"tar": {
|
||||
"version": "1.0.2",
|
||||
"from": "tar@~1.0.2",
|
||||
"resolved": "https://registry.npmjs.org/tar/-/tar-1.0.2.tgz",
|
||||
"version": "1.0.3",
|
||||
"from": "tar@>=1.0.2 <1.1.0",
|
||||
"resolved": "https://registry.npmjs.org/tar/-/tar-1.0.3.tgz",
|
||||
"dependencies": {
|
||||
"block-stream": {
|
||||
"version": "0.0.7",
|
||||
@@ -637,27 +740,27 @@
|
||||
"resolved": "https://registry.npmjs.org/block-stream/-/block-stream-0.0.7.tgz"
|
||||
},
|
||||
"fstream": {
|
||||
"version": "1.0.2",
|
||||
"from": "fstream@^1.0.2",
|
||||
"resolved": "https://registry.npmjs.org/fstream/-/fstream-1.0.2.tgz",
|
||||
"version": "1.0.4",
|
||||
"from": "fstream@>=1.0.2 <2.0.0",
|
||||
"resolved": "https://registry.npmjs.org/fstream/-/fstream-1.0.4.tgz",
|
||||
"dependencies": {
|
||||
"graceful-fs": {
|
||||
"version": "3.0.4",
|
||||
"from": "graceful-fs@3",
|
||||
"resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-3.0.4.tgz"
|
||||
"version": "3.0.5",
|
||||
"from": "graceful-fs@>=3.0.0 <4.0.0",
|
||||
"resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-3.0.5.tgz"
|
||||
}
|
||||
}
|
||||
},
|
||||
"inherits": {
|
||||
"version": "2.0.1",
|
||||
"from": "inherits@2",
|
||||
"from": "inherits@>=2.0.0 <3.0.0",
|
||||
"resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.1.tgz"
|
||||
}
|
||||
}
|
||||
},
|
||||
"tar-pack": {
|
||||
"version": "2.0.0",
|
||||
"from": "tar-pack@~2.0.0",
|
||||
"from": "tar-pack@>=2.0.0 <2.1.0",
|
||||
"resolved": "https://registry.npmjs.org/tar-pack/-/tar-pack-2.0.0.tgz",
|
||||
"dependencies": {
|
||||
"uid-number": {
|
||||
@@ -667,34 +770,34 @@
|
||||
},
|
||||
"once": {
|
||||
"version": "1.1.1",
|
||||
"from": "once@~1.1.1",
|
||||
"from": "once@>=1.1.1 <1.2.0",
|
||||
"resolved": "https://registry.npmjs.org/once/-/once-1.1.1.tgz"
|
||||
},
|
||||
"debug": {
|
||||
"version": "0.7.4",
|
||||
"from": "debug@~0.7.2",
|
||||
"from": "debug@>=0.7.2 <0.8.0",
|
||||
"resolved": "https://registry.npmjs.org/debug/-/debug-0.7.4.tgz"
|
||||
},
|
||||
"fstream": {
|
||||
"version": "0.1.31",
|
||||
"from": "fstream@~0.1.22",
|
||||
"from": "fstream@>=0.1.22 <0.2.0",
|
||||
"resolved": "https://registry.npmjs.org/fstream/-/fstream-0.1.31.tgz",
|
||||
"dependencies": {
|
||||
"graceful-fs": {
|
||||
"version": "3.0.4",
|
||||
"from": "graceful-fs@~3.0.2",
|
||||
"resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-3.0.4.tgz"
|
||||
"version": "3.0.5",
|
||||
"from": "graceful-fs@>=3.0.2 <3.1.0",
|
||||
"resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-3.0.5.tgz"
|
||||
},
|
||||
"inherits": {
|
||||
"version": "2.0.1",
|
||||
"from": "inherits@~2.0.0",
|
||||
"from": "inherits@>=2.0.0 <2.1.0",
|
||||
"resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.1.tgz"
|
||||
}
|
||||
}
|
||||
},
|
||||
"tar": {
|
||||
"version": "0.1.20",
|
||||
"from": "tar@~0.1.17",
|
||||
"from": "tar@>=0.1.17 <0.2.0",
|
||||
"resolved": "https://registry.npmjs.org/tar/-/tar-0.1.20.tgz",
|
||||
"dependencies": {
|
||||
"block-stream": {
|
||||
@@ -704,7 +807,7 @@
|
||||
},
|
||||
"inherits": {
|
||||
"version": "2.0.1",
|
||||
"from": "inherits@2",
|
||||
"from": "inherits@>=2.0.0 <3.0.0",
|
||||
"resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.1.tgz"
|
||||
}
|
||||
}
|
||||
@@ -716,36 +819,36 @@
|
||||
"dependencies": {
|
||||
"minimatch": {
|
||||
"version": "0.2.14",
|
||||
"from": "minimatch@~0.2.0",
|
||||
"from": "minimatch@>=0.2.0 <0.3.0",
|
||||
"resolved": "https://registry.npmjs.org/minimatch/-/minimatch-0.2.14.tgz",
|
||||
"dependencies": {
|
||||
"lru-cache": {
|
||||
"version": "2.5.0",
|
||||
"from": "lru-cache@2",
|
||||
"from": "lru-cache@>=2.0.0 <3.0.0",
|
||||
"resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-2.5.0.tgz"
|
||||
},
|
||||
"sigmund": {
|
||||
"version": "1.0.0",
|
||||
"from": "sigmund@~1.0.0",
|
||||
"from": "sigmund@>=1.0.0 <1.1.0",
|
||||
"resolved": "https://registry.npmjs.org/sigmund/-/sigmund-1.0.0.tgz"
|
||||
}
|
||||
}
|
||||
},
|
||||
"inherits": {
|
||||
"version": "2.0.1",
|
||||
"from": "inherits@2",
|
||||
"from": "inherits@>=2.0.0 <3.0.0",
|
||||
"resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.1.tgz"
|
||||
}
|
||||
}
|
||||
},
|
||||
"readable-stream": {
|
||||
"version": "1.0.33",
|
||||
"from": "readable-stream@~1.0.2",
|
||||
"from": "readable-stream@>=1.0.2 <1.1.0",
|
||||
"resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.0.33.tgz",
|
||||
"dependencies": {
|
||||
"core-util-is": {
|
||||
"version": "1.0.1",
|
||||
"from": "core-util-is@~1.0.0",
|
||||
"from": "core-util-is@>=1.0.0 <1.1.0",
|
||||
"resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.1.tgz"
|
||||
},
|
||||
"isarray": {
|
||||
@@ -755,26 +858,26 @@
|
||||
},
|
||||
"string_decoder": {
|
||||
"version": "0.10.31",
|
||||
"from": "string_decoder@~0.10.x",
|
||||
"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": "inherits@~2.0.1",
|
||||
"from": "inherits@>=2.0.0 <2.1.0",
|
||||
"resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.1.tgz"
|
||||
}
|
||||
}
|
||||
},
|
||||
"graceful-fs": {
|
||||
"version": "1.2.3",
|
||||
"from": "graceful-fs@1.2",
|
||||
"from": "graceful-fs@>=1.2.0 <1.3.0",
|
||||
"resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-1.2.3.tgz"
|
||||
}
|
||||
}
|
||||
},
|
||||
"mkdirp": {
|
||||
"version": "0.5.0",
|
||||
"from": "mkdirp@~0.5.0",
|
||||
"from": "mkdirp@>=0.5.0 <0.6.0",
|
||||
"resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.0.tgz",
|
||||
"dependencies": {
|
||||
"minimist": {
|
||||
@@ -785,35 +888,35 @@
|
||||
}
|
||||
},
|
||||
"rc": {
|
||||
"version": "0.5.4",
|
||||
"from": "rc@~0.5.1",
|
||||
"resolved": "https://registry.npmjs.org/rc/-/rc-0.5.4.tgz",
|
||||
"version": "0.6.0",
|
||||
"from": "rc@>=0.6.0 <0.7.0",
|
||||
"resolved": "https://registry.npmjs.org/rc/-/rc-0.6.0.tgz",
|
||||
"dependencies": {
|
||||
"minimist": {
|
||||
"version": "0.0.10",
|
||||
"from": "minimist@~0.0.7",
|
||||
"from": "minimist@>=0.0.7 <0.1.0",
|
||||
"resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.10.tgz"
|
||||
},
|
||||
"deep-extend": {
|
||||
"version": "0.2.11",
|
||||
"from": "deep-extend@~0.2.5",
|
||||
"from": "deep-extend@>=0.2.5 <0.3.0",
|
||||
"resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.2.11.tgz"
|
||||
},
|
||||
"strip-json-comments": {
|
||||
"version": "0.1.3",
|
||||
"from": "strip-json-comments@0.1.x",
|
||||
"from": "strip-json-comments@>=0.1.0 <0.2.0",
|
||||
"resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-0.1.3.tgz"
|
||||
},
|
||||
"ini": {
|
||||
"version": "1.1.0",
|
||||
"from": "ini@~1.1.0",
|
||||
"resolved": "https://registry.npmjs.org/ini/-/ini-1.1.0.tgz"
|
||||
"version": "1.3.3",
|
||||
"from": "ini@>=1.3.0 <1.4.0",
|
||||
"resolved": "https://registry.npmjs.org/ini/-/ini-1.3.3.tgz"
|
||||
}
|
||||
}
|
||||
},
|
||||
"rimraf": {
|
||||
"version": "2.2.8",
|
||||
"from": "rimraf@~2.2.8",
|
||||
"from": "rimraf@>=2.2.8 <2.3.0",
|
||||
"resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.2.8.tgz"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
{
|
||||
"private": true,
|
||||
"name": "windshaft-cartodb",
|
||||
"version": "2.1.1",
|
||||
"version": "2.1.3",
|
||||
"description": "A map tile server for CartoDB",
|
||||
"keywords": [
|
||||
"cartodb"
|
||||
@@ -24,7 +24,7 @@
|
||||
"dependencies": {
|
||||
"underscore" : "~1.6.0",
|
||||
"dot": "~1.0.2",
|
||||
"windshaft": "0.42.0",
|
||||
"windshaft": "0.42.2",
|
||||
"step": "~0.0.5",
|
||||
"queue-async": "~1.0.7",
|
||||
"request": "~2.9.203",
|
||||
|
||||
295
test/acceptance/x_cache_channel.js
Normal file
295
test/acceptance/x_cache_channel.js
Normal file
@@ -0,0 +1,295 @@
|
||||
require('../support/test_helper');
|
||||
|
||||
var assert = require('../support/assert');
|
||||
var qs = require('querystring');
|
||||
|
||||
var CartodbWindshaft = require('../../lib/cartodb/cartodb_windshaft');
|
||||
var serverOptions = require('../../lib/cartodb/server_options')();
|
||||
var server = new CartodbWindshaft(serverOptions);
|
||||
server.setMaxListeners(0);
|
||||
|
||||
describe('get requests x-cache-channel', function() {
|
||||
|
||||
var statusOkResponse = {
|
||||
status: 200
|
||||
};
|
||||
|
||||
var mapConfig = {
|
||||
version: '1.3.0',
|
||||
layers: [
|
||||
{
|
||||
options: {
|
||||
sql: 'select * from test_table limit 2',
|
||||
cartocss: '#layer { marker-fill:red; }',
|
||||
cartocss_version: '2.3.0',
|
||||
attributes: {
|
||||
id:'cartodb_id',
|
||||
columns: [
|
||||
'name',
|
||||
'address'
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
||||
]
|
||||
};
|
||||
|
||||
var layergroupRequest = {
|
||||
url: '/api/v1/map?config=' + encodeURIComponent(JSON.stringify(mapConfig)),
|
||||
method: 'GET',
|
||||
headers: {
|
||||
host: 'localhost'
|
||||
}
|
||||
};
|
||||
|
||||
function getRequest(url, addApiKey, callbackName) {
|
||||
var params = {};
|
||||
if (!!addApiKey) {
|
||||
params.api_key = '1234';
|
||||
}
|
||||
if (!!callbackName) {
|
||||
params.callback = callbackName;
|
||||
}
|
||||
|
||||
return {
|
||||
url: url + '?' + qs.stringify(params),
|
||||
method: 'GET',
|
||||
headers: {
|
||||
host: 'localhost',
|
||||
'Content-Type': 'application/json'
|
||||
}
|
||||
};
|
||||
}
|
||||
|
||||
function validateXCacheChannel(done, expectedCacheChannel) {
|
||||
return function(res, err) {
|
||||
if (err) {
|
||||
return done(err);
|
||||
}
|
||||
|
||||
assert.ok(res.headers['x-cache-channel']);
|
||||
if (expectedCacheChannel) {
|
||||
assert.equal(res.headers['x-cache-channel'], expectedCacheChannel);
|
||||
}
|
||||
|
||||
done();
|
||||
};
|
||||
}
|
||||
|
||||
function noXCacheChannelHeader(done) {
|
||||
return function(res, err) {
|
||||
if (err) {
|
||||
return done(err);
|
||||
}
|
||||
|
||||
assert.ok(
|
||||
!res.headers['x-cache-channel'],
|
||||
'did not expect x-cache-channel header, got: `' + res.headers['x-cache-channel'] + '`'
|
||||
);
|
||||
done();
|
||||
};
|
||||
}
|
||||
|
||||
function withLayergroupId(callback) {
|
||||
assert.response(
|
||||
server,
|
||||
layergroupRequest,
|
||||
statusOkResponse,
|
||||
function(res, err) {
|
||||
if (err) {
|
||||
return callback(err);
|
||||
}
|
||||
callback(null, JSON.parse(res.body).layergroupid);
|
||||
}
|
||||
);
|
||||
}
|
||||
|
||||
describe('header should be present', function() {
|
||||
|
||||
it('/api/v1/map Map instantiation', function(done) {
|
||||
assert.response(
|
||||
server,
|
||||
layergroupRequest,
|
||||
statusOkResponse,
|
||||
validateXCacheChannel(done, 'test_windshaft_cartodb_user_1_db:public.test_table')
|
||||
);
|
||||
});
|
||||
|
||||
it ('/api/v1/map/:token/:z/:x/:y@:scale_factor?x.:format Mapnik retina tiles', function(done) {
|
||||
withLayergroupId(function(err, layergroupId) {
|
||||
assert.response(
|
||||
server,
|
||||
getRequest('/api/v1/map/' + layergroupId + '/0/0/0@2x.png'),
|
||||
validateXCacheChannel(done, 'test_windshaft_cartodb_user_1_db:public.test_table')
|
||||
);
|
||||
});
|
||||
});
|
||||
|
||||
it ('/api/v1/map/:token/:z/:x/:y@:scale_factor?x.:format Mapnik tiles', function(done) {
|
||||
withLayergroupId(function(err, layergroupId) {
|
||||
assert.response(
|
||||
server,
|
||||
getRequest('/api/v1/map/' + layergroupId + '/0/0/0.png'),
|
||||
validateXCacheChannel(done, 'test_windshaft_cartodb_user_1_db:public.test_table')
|
||||
);
|
||||
});
|
||||
});
|
||||
|
||||
it ('/api/v1/map/:token/:layer/:z/:x/:y.(:format) Per :layer rendering', function(done) {
|
||||
withLayergroupId(function(err, layergroupId) {
|
||||
assert.response(
|
||||
server,
|
||||
getRequest('/api/v1/map/' + layergroupId + '/0/0/0/0.png'),
|
||||
validateXCacheChannel(done, 'test_windshaft_cartodb_user_1_db:public.test_table')
|
||||
);
|
||||
});
|
||||
});
|
||||
|
||||
it ('/api/v1/map/:token/:layer/attributes/:fid endpoint for info windows', function(done) {
|
||||
withLayergroupId(function(err, layergroupId) {
|
||||
assert.response(
|
||||
server,
|
||||
getRequest('/api/v1/map/' + layergroupId + '/0/attributes/1'),
|
||||
validateXCacheChannel(done, 'test_windshaft_cartodb_user_1_db:public.test_table')
|
||||
);
|
||||
});
|
||||
});
|
||||
|
||||
it ('/api/v1/map/static/center/:token/:z/:lat/:lng/:width/:height.:format static maps', function(done) {
|
||||
withLayergroupId(function(err, layergroupId) {
|
||||
assert.response(
|
||||
server,
|
||||
getRequest('/api/v1/map/static/center/' + layergroupId + '/0/0/0/400/300.png'),
|
||||
validateXCacheChannel(done, 'test_windshaft_cartodb_user_1_db:public.test_table')
|
||||
);
|
||||
});
|
||||
});
|
||||
|
||||
it ('/api/v1/map/static/bbox/:token/:bbox/:width/:height.:format static maps', function(done) {
|
||||
withLayergroupId(function(err, layergroupId) {
|
||||
assert.response(
|
||||
server,
|
||||
getRequest('/api/v1/map/static/bbox/' + layergroupId + '/-45,-45,45,45/400/300.png'),
|
||||
validateXCacheChannel(done, 'test_windshaft_cartodb_user_1_db:public.test_table')
|
||||
);
|
||||
});
|
||||
});
|
||||
|
||||
});
|
||||
|
||||
describe('header should NOT be present', function() {
|
||||
|
||||
it('/', function(done) {
|
||||
assert.response(
|
||||
server,
|
||||
getRequest('/'),
|
||||
statusOkResponse,
|
||||
noXCacheChannelHeader(done)
|
||||
);
|
||||
});
|
||||
|
||||
it('/version', function(done) {
|
||||
assert.response(
|
||||
server,
|
||||
getRequest('/version'),
|
||||
statusOkResponse,
|
||||
noXCacheChannelHeader(done)
|
||||
);
|
||||
});
|
||||
|
||||
it('/health', function(done) {
|
||||
assert.response(
|
||||
server,
|
||||
getRequest('/health'),
|
||||
statusOkResponse,
|
||||
noXCacheChannelHeader(done)
|
||||
);
|
||||
});
|
||||
|
||||
it('/api/v1/map/named list named maps', function(done) {
|
||||
assert.response(
|
||||
server,
|
||||
getRequest('/api/v1/map/named', true),
|
||||
statusOkResponse,
|
||||
noXCacheChannelHeader(done)
|
||||
);
|
||||
});
|
||||
|
||||
describe('with named maps', function() {
|
||||
|
||||
var templateName = 'x_cache';
|
||||
|
||||
before(function(done) {
|
||||
var template = {
|
||||
version: '0.0.1',
|
||||
name: templateName,
|
||||
auth: {
|
||||
method: 'open'
|
||||
},
|
||||
layergroup: mapConfig
|
||||
};
|
||||
|
||||
var namedMapRequest = {
|
||||
url: '/api/v1/map/named?api_key=1234',
|
||||
method: 'POST',
|
||||
headers: {
|
||||
host: 'localhost',
|
||||
'Content-Type': 'application/json'
|
||||
},
|
||||
data: JSON.stringify(template)
|
||||
};
|
||||
|
||||
assert.response(
|
||||
server,
|
||||
namedMapRequest,
|
||||
statusOkResponse,
|
||||
function(res, err) {
|
||||
done(err);
|
||||
}
|
||||
);
|
||||
});
|
||||
|
||||
after(function(done) {
|
||||
assert.response(
|
||||
server,
|
||||
{
|
||||
url: '/api/v1/map/named/' + templateName + '?api_key=1234',
|
||||
method: 'DELETE',
|
||||
headers: {
|
||||
host: 'localhost'
|
||||
}
|
||||
},
|
||||
{
|
||||
status: 204
|
||||
},
|
||||
function(res, err) {
|
||||
done(err);
|
||||
}
|
||||
);
|
||||
});
|
||||
|
||||
|
||||
it('/api/v1/map/named/:template_id Named map retrieval', function(done) {
|
||||
assert.response(
|
||||
server,
|
||||
getRequest('/api/v1/map/named/' + templateName, true),
|
||||
statusOkResponse,
|
||||
noXCacheChannelHeader(done)
|
||||
);
|
||||
});
|
||||
|
||||
it('/api/v1/map/named/:template_id/jsonp Named map retrieval', function(done) {
|
||||
assert.response(
|
||||
server,
|
||||
getRequest('/api/v1/map/named/' + templateName, true, 'cb'),
|
||||
statusOkResponse,
|
||||
noXCacheChannelHeader(done)
|
||||
);
|
||||
});
|
||||
|
||||
});
|
||||
|
||||
});
|
||||
|
||||
|
||||
});
|
||||
Reference in New Issue
Block a user