Retrieve error with context if map validation fails

This commit is contained in:
Daniel García Aubert 2016-11-01 11:00:58 +01:00
parent d04787a60c
commit 9faac9f9fe
5 changed files with 258 additions and 196 deletions

View File

@ -1,8 +1,14 @@
# Changelog # Changelog
## 2.80.3 ## 2.81.0
Released 2016-mm-dd Released 2016-mm-dd
Enhancements:
- Returns errors with context when query layer does not retrieve geometry column
Announcements:
- Upgrades windshaft to [2.6.1](https://github.com/CartoDB/windshaft/releases/tag/2.6.1).
## 2.80.2 ## 2.80.2
Released 2016-10-26 Released 2016-10-26

View File

@ -166,6 +166,24 @@ MapController.prototype.create = function(req, res, prepareConfigFn) {
}, },
function finish(err, layergroup) { function finish(err, layergroup) {
if (err) { if (err) {
if (Number.isFinite(err.layerIndex)) {
var error = new Error(err.message);
error.http_status = err.http_status;
if (!err.http_status && err.message.indexOf('column "the_geom_webmercator" does not exist') >= 0) {
error.http_status = 400;
}
error.type = 'layer';
error.subtype = err.message.indexOf('Postgis Plugin') >= 0 ? 'query' : undefined;
error.layer = {
id: mapConfig.getLayerId(err.layerIndex),
index: err.layerIndex,
type: mapConfig.layerType(err.layerIndex)
};
err = error;
}
self.sendError(req, res, err, 'ANONYMOUS LAYERGROUP'); self.sendError(req, res, err, 'ANONYMOUS LAYERGROUP');
} else { } else {
var analysesResults = context.analysesResults || []; var analysesResults = context.analysesResults || [];

356
npm-shrinkwrap.json generated
View File

@ -1,6 +1,6 @@
{ {
"name": "windshaft-cartodb", "name": "windshaft-cartodb",
"version": "2.80.1", "version": "2.81.0",
"dependencies": { "dependencies": {
"body-parser": { "body-parser": {
"version": "1.14.2", "version": "1.14.2",
@ -106,7 +106,7 @@
}, },
"camshaft": { "camshaft": {
"version": "0.46.1", "version": "0.46.1",
"from": "camshaft@0.46.1", "from": "https://registry.npmjs.org/camshaft/-/camshaft-0.46.1.tgz",
"resolved": "https://registry.npmjs.org/camshaft/-/camshaft-0.46.1.tgz", "resolved": "https://registry.npmjs.org/camshaft/-/camshaft-0.46.1.tgz",
"dependencies": { "dependencies": {
"async": { "async": {
@ -565,9 +565,16 @@
"resolved": "https://registry.npmjs.org/stringstream/-/stringstream-0.0.5.tgz" "resolved": "https://registry.npmjs.org/stringstream/-/stringstream-0.0.5.tgz"
}, },
"tough-cookie": { "tough-cookie": {
"version": "2.3.1", "version": "2.3.2",
"from": "tough-cookie@>=2.3.0 <2.4.0", "from": "tough-cookie@>=2.3.0 <2.4.0",
"resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.3.1.tgz" "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.3.2.tgz",
"dependencies": {
"punycode": {
"version": "1.4.1",
"from": "punycode@>=1.4.1 <2.0.0",
"resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz"
}
}
}, },
"tunnel-agent": { "tunnel-agent": {
"version": "0.4.3", "version": "0.4.3",
@ -1382,9 +1389,9 @@
"resolved": "https://registry.npmjs.org/underscore/-/underscore-1.6.0.tgz" "resolved": "https://registry.npmjs.org/underscore/-/underscore-1.6.0.tgz"
}, },
"windshaft": { "windshaft": {
"version": "2.5.0", "version": "2.6.1",
"from": "windshaft@2.5.0", "from": "windshaft@2.6.1",
"resolved": "https://registry.npmjs.org/windshaft/-/windshaft-2.5.0.tgz", "resolved": "https://registry.npmjs.org/windshaft/-/windshaft-2.6.1.tgz",
"dependencies": { "dependencies": {
"abaculus": { "abaculus": {
"version": "1.1.0-cdb7", "version": "1.1.0-cdb7",
@ -3016,9 +3023,9 @@
} }
}, },
"sqlite3": { "sqlite3": {
"version": "3.1.7", "version": "3.1.8",
"from": "sqlite3@>=2.0.0 <3.0.0||>=3.0.0 <4.0.0", "from": "sqlite3@>=2.0.0 <3.0.0||>=3.0.0 <4.0.0",
"resolved": "https://registry.npmjs.org/sqlite3/-/sqlite3-3.1.7.tgz", "resolved": "https://registry.npmjs.org/sqlite3/-/sqlite3-3.1.8.tgz",
"dependencies": { "dependencies": {
"nan": { "nan": {
"version": "2.4.0", "version": "2.4.0",
@ -3027,11 +3034,11 @@
}, },
"node-pre-gyp": { "node-pre-gyp": {
"version": "0.6.31", "version": "0.6.31",
"from": "node-pre-gyp@>=0.6.31 <0.7.0", "from": "node-pre-gyp@~0.6.31",
"dependencies": { "dependencies": {
"mkdirp": { "mkdirp": {
"version": "0.5.1", "version": "0.5.1",
"from": "mkdirp@>=0.5.1 <0.6.0", "from": "mkdirp@~0.5.1",
"resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz", "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz",
"dependencies": { "dependencies": {
"minimist": { "minimist": {
@ -3043,69 +3050,69 @@
}, },
"nopt": { "nopt": {
"version": "3.0.6", "version": "3.0.6",
"from": "nopt@>=3.0.6 <3.1.0", "from": "nopt@~3.0.6",
"resolved": "https://registry.npmjs.org/nopt/-/nopt-3.0.6.tgz", "resolved": "https://registry.npmjs.org/nopt/-/nopt-3.0.6.tgz",
"dependencies": { "dependencies": {
"abbrev": { "abbrev": {
"version": "1.0.9", "version": "1.0.9",
"from": "abbrev@>=1.0.0 <2.0.0", "from": "abbrev@1",
"resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.0.9.tgz" "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.0.9.tgz"
} }
} }
}, },
"npmlog": { "npmlog": {
"version": "4.0.0", "version": "4.0.0",
"from": "npmlog@>=4.0.0 <5.0.0", "from": "npmlog@^4.0.0",
"resolved": "https://registry.npmjs.org/npmlog/-/npmlog-4.0.0.tgz", "resolved": "https://registry.npmjs.org/npmlog/-/npmlog-4.0.0.tgz",
"dependencies": { "dependencies": {
"are-we-there-yet": { "are-we-there-yet": {
"version": "1.1.2", "version": "1.1.2",
"from": "are-we-there-yet@>=1.1.2 <1.2.0", "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", "resolved": "https://registry.npmjs.org/are-we-there-yet/-/are-we-there-yet-1.1.2.tgz",
"dependencies": { "dependencies": {
"delegates": { "delegates": {
"version": "1.0.0", "version": "1.0.0",
"from": "delegates@>=1.0.0 <2.0.0", "from": "delegates@^1.0.0",
"resolved": "https://registry.npmjs.org/delegates/-/delegates-1.0.0.tgz" "resolved": "https://registry.npmjs.org/delegates/-/delegates-1.0.0.tgz"
}, },
"readable-stream": { "readable-stream": {
"version": "2.1.5", "version": "2.1.5",
"from": "readable-stream@>=2.0.0 <3.0.0||>=1.1.13 <2.0.0", "from": "readable-stream@^2.0.0 || ^1.1.13",
"resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.1.5.tgz", "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.1.5.tgz",
"dependencies": { "dependencies": {
"buffer-shims": { "buffer-shims": {
"version": "1.0.0", "version": "1.0.0",
"from": "buffer-shims@>=1.0.0 <2.0.0", "from": "buffer-shims@^1.0.0",
"resolved": "https://registry.npmjs.org/buffer-shims/-/buffer-shims-1.0.0.tgz" "resolved": "https://registry.npmjs.org/buffer-shims/-/buffer-shims-1.0.0.tgz"
}, },
"core-util-is": { "core-util-is": {
"version": "1.0.2", "version": "1.0.2",
"from": "core-util-is@>=1.0.0 <1.1.0", "from": "core-util-is@~1.0.0",
"resolved": "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": { "inherits": {
"version": "2.0.3", "version": "2.0.3",
"from": "inherits@>=2.0.1 <2.1.0", "from": "inherits@~2.0.1",
"resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz" "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz"
}, },
"isarray": { "isarray": {
"version": "1.0.0", "version": "1.0.0",
"from": "isarray@>=1.0.0 <1.1.0", "from": "isarray@~1.0.0",
"resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz" "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz"
}, },
"process-nextick-args": { "process-nextick-args": {
"version": "1.0.7", "version": "1.0.7",
"from": "process-nextick-args@>=1.0.6 <1.1.0", "from": "process-nextick-args@~1.0.6",
"resolved": "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": { "string_decoder": {
"version": "0.10.31", "version": "0.10.31",
"from": "string_decoder@>=0.10.0 <0.11.0", "from": "string_decoder@~0.10.x",
"resolved": "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": { "util-deprecate": {
"version": "1.0.2", "version": "1.0.2",
"from": "util-deprecate@>=1.0.1 <1.1.0", "from": "util-deprecate@~1.0.1",
"resolved": "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"
} }
} }
@ -3114,64 +3121,64 @@
}, },
"console-control-strings": { "console-control-strings": {
"version": "1.1.0", "version": "1.1.0",
"from": "console-control-strings@>=1.1.0 <1.2.0", "from": "console-control-strings@~1.1.0",
"resolved": "https://registry.npmjs.org/console-control-strings/-/console-control-strings-1.1.0.tgz" "resolved": "https://registry.npmjs.org/console-control-strings/-/console-control-strings-1.1.0.tgz"
}, },
"gauge": { "gauge": {
"version": "2.6.0", "version": "2.6.0",
"from": "gauge@>=2.6.0 <2.7.0", "from": "gauge@~2.6.0",
"resolved": "https://registry.npmjs.org/gauge/-/gauge-2.6.0.tgz", "resolved": "https://registry.npmjs.org/gauge/-/gauge-2.6.0.tgz",
"dependencies": { "dependencies": {
"aproba": { "aproba": {
"version": "1.0.4", "version": "1.0.4",
"from": "aproba@>=1.0.3 <2.0.0", "from": "aproba@^1.0.3",
"resolved": "https://registry.npmjs.org/aproba/-/aproba-1.0.4.tgz" "resolved": "https://registry.npmjs.org/aproba/-/aproba-1.0.4.tgz"
}, },
"has-color": { "has-color": {
"version": "0.1.7", "version": "0.1.7",
"from": "has-color@>=0.1.7 <0.2.0", "from": "has-color@^0.1.7",
"resolved": "https://registry.npmjs.org/has-color/-/has-color-0.1.7.tgz" "resolved": "https://registry.npmjs.org/has-color/-/has-color-0.1.7.tgz"
}, },
"has-unicode": { "has-unicode": {
"version": "2.0.1", "version": "2.0.1",
"from": "has-unicode@>=2.0.0 <3.0.0", "from": "has-unicode@^2.0.0",
"resolved": "https://registry.npmjs.org/has-unicode/-/has-unicode-2.0.1.tgz" "resolved": "https://registry.npmjs.org/has-unicode/-/has-unicode-2.0.1.tgz"
}, },
"object-assign": { "object-assign": {
"version": "4.1.0", "version": "4.1.0",
"from": "object-assign@>=4.1.0 <5.0.0", "from": "object-assign@^4.1.0",
"resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.0.tgz" "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.0.tgz"
}, },
"signal-exit": { "signal-exit": {
"version": "3.0.1", "version": "3.0.1",
"from": "signal-exit@>=3.0.0 <4.0.0", "from": "signal-exit@^3.0.0",
"resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.1.tgz" "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.1.tgz"
}, },
"string-width": { "string-width": {
"version": "1.0.2", "version": "1.0.2",
"from": "string-width@>=1.0.1 <2.0.0", "from": "string-width@^1.0.1",
"resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz",
"dependencies": { "dependencies": {
"code-point-at": { "code-point-at": {
"version": "1.0.1", "version": "1.0.1",
"from": "code-point-at@>=1.0.0 <2.0.0", "from": "code-point-at@^1.0.0",
"resolved": "https://registry.npmjs.org/code-point-at/-/code-point-at-1.0.1.tgz", "resolved": "https://registry.npmjs.org/code-point-at/-/code-point-at-1.0.1.tgz",
"dependencies": { "dependencies": {
"number-is-nan": { "number-is-nan": {
"version": "1.0.1", "version": "1.0.1",
"from": "number-is-nan@>=1.0.0 <2.0.0", "from": "number-is-nan@^1.0.0",
"resolved": "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz" "resolved": "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz"
} }
} }
}, },
"is-fullwidth-code-point": { "is-fullwidth-code-point": {
"version": "1.0.0", "version": "1.0.0",
"from": "is-fullwidth-code-point@>=1.0.0 <2.0.0", "from": "is-fullwidth-code-point@^1.0.0",
"resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz", "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz",
"dependencies": { "dependencies": {
"number-is-nan": { "number-is-nan": {
"version": "1.0.1", "version": "1.0.1",
"from": "number-is-nan@>=1.0.0 <2.0.0", "from": "number-is-nan@^1.0.0",
"resolved": "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz" "resolved": "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz"
} }
} }
@ -3180,260 +3187,216 @@
}, },
"strip-ansi": { "strip-ansi": {
"version": "3.0.1", "version": "3.0.1",
"from": "strip-ansi@>=3.0.1 <4.0.0", "from": "strip-ansi@^3.0.1",
"resolved": "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": { "dependencies": {
"ansi-regex": { "ansi-regex": {
"version": "2.0.0", "version": "2.0.0",
"from": "ansi-regex@>=2.0.0 <3.0.0", "from": "ansi-regex@^2.0.0",
"resolved": "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"
} }
} }
}, },
"wide-align": { "wide-align": {
"version": "1.1.0", "version": "1.1.0",
"from": "wide-align@>=1.1.0 <2.0.0", "from": "wide-align@^1.1.0",
"resolved": "https://registry.npmjs.org/wide-align/-/wide-align-1.1.0.tgz" "resolved": "https://registry.npmjs.org/wide-align/-/wide-align-1.1.0.tgz"
} }
} }
}, },
"set-blocking": { "set-blocking": {
"version": "2.0.0", "version": "2.0.0",
"from": "set-blocking@>=2.0.0 <2.1.0", "from": "set-blocking@~2.0.0",
"resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz" "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz"
} }
} }
}, },
"rc": { "rc": {
"version": "1.1.6", "version": "1.1.6",
"from": "rc@>=1.1.6 <1.2.0", "from": "rc@~1.1.6",
"resolved": "https://registry.npmjs.org/rc/-/rc-1.1.6.tgz", "resolved": "https://registry.npmjs.org/rc/-/rc-1.1.6.tgz",
"dependencies": { "dependencies": {
"deep-extend": { "deep-extend": {
"version": "0.4.1", "version": "0.4.1",
"from": "deep-extend@>=0.4.0 <0.5.0", "from": "deep-extend@~0.4.0",
"resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.4.1.tgz" "resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.4.1.tgz"
}, },
"ini": { "ini": {
"version": "1.3.4", "version": "1.3.4",
"from": "ini@>=1.3.0 <1.4.0", "from": "ini@~1.3.0",
"resolved": "https://registry.npmjs.org/ini/-/ini-1.3.4.tgz" "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.4.tgz"
}, },
"minimist": { "minimist": {
"version": "1.2.0", "version": "1.2.0",
"from": "minimist@>=1.2.0 <2.0.0", "from": "minimist@^1.2.0",
"resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz" "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz"
}, },
"strip-json-comments": { "strip-json-comments": {
"version": "1.0.4", "version": "1.0.4",
"from": "strip-json-comments@>=1.0.4 <1.1.0", "from": "strip-json-comments@~1.0.4",
"resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-1.0.4.tgz" "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-1.0.4.tgz"
} }
} }
}, },
"request": { "request": {
"version": "2.75.0", "version": "2.76.0",
"from": "request@>=2.75.0 <3.0.0", "from": "request@^2.75.0",
"resolved": "https://registry.npmjs.org/request/-/request-2.75.0.tgz", "resolved": "https://registry.npmjs.org/request/-/request-2.76.0.tgz",
"dependencies": { "dependencies": {
"aws-sign2": { "aws-sign2": {
"version": "0.6.0", "version": "0.6.0",
"from": "aws-sign2@>=0.6.0 <0.7.0", "from": "aws-sign2@~0.6.0",
"resolved": "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": { "aws4": {
"version": "1.5.0", "version": "1.5.0",
"from": "aws4@>=1.2.1 <2.0.0", "from": "aws4@^1.2.1",
"resolved": "https://registry.npmjs.org/aws4/-/aws4-1.5.0.tgz" "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.5.0.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": {
"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",
"dependencies": {
"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"
},
"inherits": {
"version": "2.0.3",
"from": "inherits@>=2.0.1 <2.1.0",
"resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.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"
},
"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"
},
"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"
},
"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"
}
}
}
}
},
"caseless": { "caseless": {
"version": "0.11.0", "version": "0.11.0",
"from": "caseless@>=0.11.0 <0.12.0", "from": "caseless@~0.11.0",
"resolved": "https://registry.npmjs.org/caseless/-/caseless-0.11.0.tgz" "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.11.0.tgz"
}, },
"combined-stream": { "combined-stream": {
"version": "1.0.5", "version": "1.0.5",
"from": "combined-stream@>=1.0.5 <1.1.0", "from": "combined-stream@~1.0.5",
"resolved": "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": { "dependencies": {
"delayed-stream": { "delayed-stream": {
"version": "1.0.0", "version": "1.0.0",
"from": "delayed-stream@>=1.0.0 <1.1.0", "from": "delayed-stream@~1.0.0",
"resolved": "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": { "extend": {
"version": "3.0.0", "version": "3.0.0",
"from": "extend@>=3.0.0 <3.1.0", "from": "extend@~3.0.0",
"resolved": "https://registry.npmjs.org/extend/-/extend-3.0.0.tgz" "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.0.tgz"
}, },
"forever-agent": { "forever-agent": {
"version": "0.6.1", "version": "0.6.1",
"from": "forever-agent@>=0.6.1 <0.7.0", "from": "forever-agent@~0.6.1",
"resolved": "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": { "form-data": {
"version": "2.0.0", "version": "2.1.1",
"from": "form-data@>=2.0.0 <2.1.0", "from": "form-data@~2.1.1",
"resolved": "https://registry.npmjs.org/form-data/-/form-data-2.0.0.tgz", "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.1.1.tgz",
"dependencies": { "dependencies": {
"asynckit": { "asynckit": {
"version": "0.4.0", "version": "0.4.0",
"from": "asynckit@>=0.4.0 <0.5.0", "from": "asynckit@^0.4.0",
"resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz" "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz"
} }
} }
}, },
"har-validator": { "har-validator": {
"version": "2.0.6", "version": "2.0.6",
"from": "har-validator@>=2.0.6 <2.1.0", "from": "har-validator@~2.0.6",
"resolved": "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": { "dependencies": {
"chalk": { "chalk": {
"version": "1.1.3", "version": "1.1.3",
"from": "chalk@>=1.1.1 <2.0.0", "from": "chalk@^1.1.1",
"resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz",
"dependencies": { "dependencies": {
"ansi-styles": { "ansi-styles": {
"version": "2.2.1", "version": "2.2.1",
"from": "ansi-styles@>=2.2.1 <3.0.0", "from": "ansi-styles@^2.2.1",
"resolved": "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": { "escape-string-regexp": {
"version": "1.0.5", "version": "1.0.5",
"from": "escape-string-regexp@>=1.0.2 <2.0.0", "from": "escape-string-regexp@^1.0.2",
"resolved": "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": { "has-ansi": {
"version": "2.0.0", "version": "2.0.0",
"from": "has-ansi@>=2.0.0 <3.0.0", "from": "has-ansi@^2.0.0",
"resolved": "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": { "dependencies": {
"ansi-regex": { "ansi-regex": {
"version": "2.0.0", "version": "2.0.0",
"from": "ansi-regex@>=2.0.0 <3.0.0", "from": "ansi-regex@^2.0.0",
"resolved": "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": { "strip-ansi": {
"version": "3.0.1", "version": "3.0.1",
"from": "strip-ansi@>=3.0.0 <4.0.0", "from": "strip-ansi@^3.0.0",
"resolved": "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": { "dependencies": {
"ansi-regex": { "ansi-regex": {
"version": "2.0.0", "version": "2.0.0",
"from": "ansi-regex@>=2.0.0 <3.0.0", "from": "ansi-regex@^2.0.0",
"resolved": "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": { "supports-color": {
"version": "2.0.0", "version": "2.0.0",
"from": "supports-color@>=2.0.0 <3.0.0", "from": "supports-color@^2.0.0",
"resolved": "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": { "commander": {
"version": "2.9.0", "version": "2.9.0",
"from": "commander@>=2.9.0 <3.0.0", "from": "commander@^2.9.0",
"resolved": "https://registry.npmjs.org/commander/-/commander-2.9.0.tgz", "resolved": "https://registry.npmjs.org/commander/-/commander-2.9.0.tgz",
"dependencies": { "dependencies": {
"graceful-readlink": { "graceful-readlink": {
"version": "1.0.1", "version": "1.0.1",
"from": "graceful-readlink@>=1.0.0", "from": "graceful-readlink@>= 1.0.0",
"resolved": "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": { "is-my-json-valid": {
"version": "2.15.0", "version": "2.15.0",
"from": "is-my-json-valid@>=2.12.4 <3.0.0", "from": "is-my-json-valid@^2.12.4",
"resolved": "https://registry.npmjs.org/is-my-json-valid/-/is-my-json-valid-2.15.0.tgz", "resolved": "https://registry.npmjs.org/is-my-json-valid/-/is-my-json-valid-2.15.0.tgz",
"dependencies": { "dependencies": {
"generate-function": { "generate-function": {
"version": "2.0.0", "version": "2.0.0",
"from": "generate-function@>=2.0.0 <3.0.0", "from": "generate-function@^2.0.0",
"resolved": "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": { "generate-object-property": {
"version": "1.2.0", "version": "1.2.0",
"from": "generate-object-property@>=1.1.0 <2.0.0", "from": "generate-object-property@^1.1.0",
"resolved": "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": { "dependencies": {
"is-property": { "is-property": {
"version": "1.0.2", "version": "1.0.2",
"from": "is-property@>=1.0.0 <2.0.0", "from": "is-property@^1.0.0",
"resolved": "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": { "jsonpointer": {
"version": "4.0.0", "version": "4.0.0",
"from": "jsonpointer@>=4.0.0 <5.0.0", "from": "jsonpointer@^4.0.0",
"resolved": "https://registry.npmjs.org/jsonpointer/-/jsonpointer-4.0.0.tgz" "resolved": "https://registry.npmjs.org/jsonpointer/-/jsonpointer-4.0.0.tgz"
}, },
"xtend": { "xtend": {
"version": "4.0.1", "version": "4.0.1",
"from": "xtend@>=4.0.0 <5.0.0", "from": "xtend@^4.0.0",
"resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.1.tgz" "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.1.tgz"
} }
} }
}, },
"pinkie-promise": { "pinkie-promise": {
"version": "2.0.1", "version": "2.0.1",
"from": "pinkie-promise@>=2.0.0 <3.0.0", "from": "pinkie-promise@^2.0.0",
"resolved": "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": { "dependencies": {
"pinkie": { "pinkie": {
"version": "2.0.4", "version": "2.0.4",
"from": "pinkie@>=2.0.0 <3.0.0", "from": "pinkie@^2.0.0",
"resolved": "https://registry.npmjs.org/pinkie/-/pinkie-2.0.4.tgz" "resolved": "https://registry.npmjs.org/pinkie/-/pinkie-2.0.4.tgz"
} }
} }
@ -3442,44 +3405,44 @@
}, },
"hawk": { "hawk": {
"version": "3.1.3", "version": "3.1.3",
"from": "hawk@>=3.1.3 <3.2.0", "from": "hawk@~3.1.3",
"resolved": "https://registry.npmjs.org/hawk/-/hawk-3.1.3.tgz", "resolved": "https://registry.npmjs.org/hawk/-/hawk-3.1.3.tgz",
"dependencies": { "dependencies": {
"hoek": { "hoek": {
"version": "2.16.3", "version": "2.16.3",
"from": "hoek@>=2.0.0 <3.0.0", "from": "hoek@2.x.x",
"resolved": "https://registry.npmjs.org/hoek/-/hoek-2.16.3.tgz" "resolved": "https://registry.npmjs.org/hoek/-/hoek-2.16.3.tgz"
}, },
"boom": { "boom": {
"version": "2.10.1", "version": "2.10.1",
"from": "boom@>=2.0.0 <3.0.0", "from": "boom@2.x.x",
"resolved": "https://registry.npmjs.org/boom/-/boom-2.10.1.tgz" "resolved": "https://registry.npmjs.org/boom/-/boom-2.10.1.tgz"
}, },
"cryptiles": { "cryptiles": {
"version": "2.0.5", "version": "2.0.5",
"from": "cryptiles@>=2.0.0 <3.0.0", "from": "cryptiles@2.x.x",
"resolved": "https://registry.npmjs.org/cryptiles/-/cryptiles-2.0.5.tgz" "resolved": "https://registry.npmjs.org/cryptiles/-/cryptiles-2.0.5.tgz"
}, },
"sntp": { "sntp": {
"version": "1.0.9", "version": "1.0.9",
"from": "sntp@>=1.0.0 <2.0.0", "from": "sntp@1.x.x",
"resolved": "https://registry.npmjs.org/sntp/-/sntp-1.0.9.tgz" "resolved": "https://registry.npmjs.org/sntp/-/sntp-1.0.9.tgz"
} }
} }
}, },
"http-signature": { "http-signature": {
"version": "1.1.1", "version": "1.1.1",
"from": "http-signature@>=1.1.0 <1.2.0", "from": "http-signature@~1.1.0",
"resolved": "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": { "dependencies": {
"assert-plus": { "assert-plus": {
"version": "0.2.0", "version": "0.2.0",
"from": "assert-plus@>=0.2.0 <0.3.0", "from": "assert-plus@^0.2.0",
"resolved": "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": { "jsprim": {
"version": "1.3.1", "version": "1.3.1",
"from": "jsprim@>=1.2.2 <2.0.0", "from": "jsprim@^1.2.2",
"resolved": "https://registry.npmjs.org/jsprim/-/jsprim-1.3.1.tgz", "resolved": "https://registry.npmjs.org/jsprim/-/jsprim-1.3.1.tgz",
"dependencies": { "dependencies": {
"extsprintf": { "extsprintf": {
@ -3501,52 +3464,52 @@
}, },
"sshpk": { "sshpk": {
"version": "1.10.1", "version": "1.10.1",
"from": "sshpk@>=1.7.0 <2.0.0", "from": "sshpk@^1.7.0",
"resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.10.1.tgz", "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.10.1.tgz",
"dependencies": { "dependencies": {
"asn1": { "asn1": {
"version": "0.2.3", "version": "0.2.3",
"from": "asn1@>=0.2.3 <0.3.0", "from": "asn1@~0.2.3",
"resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.3.tgz" "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.3.tgz"
}, },
"assert-plus": { "assert-plus": {
"version": "1.0.0", "version": "1.0.0",
"from": "assert-plus@>=1.0.0 <2.0.0", "from": "assert-plus@^1.0.0",
"resolved": "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": { "dashdash": {
"version": "1.14.0", "version": "1.14.0",
"from": "dashdash@>=1.12.0 <2.0.0", "from": "dashdash@^1.12.0",
"resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.0.tgz" "resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.0.tgz"
}, },
"getpass": { "getpass": {
"version": "0.1.6", "version": "0.1.6",
"from": "getpass@>=0.1.1 <0.2.0", "from": "getpass@^0.1.1",
"resolved": "https://registry.npmjs.org/getpass/-/getpass-0.1.6.tgz" "resolved": "https://registry.npmjs.org/getpass/-/getpass-0.1.6.tgz"
}, },
"jsbn": { "jsbn": {
"version": "0.1.0", "version": "0.1.0",
"from": "jsbn@>=0.1.0 <0.2.0", "from": "jsbn@~0.1.0",
"resolved": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.0.tgz" "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.0.tgz"
}, },
"tweetnacl": { "tweetnacl": {
"version": "0.14.3", "version": "0.14.3",
"from": "tweetnacl@>=0.14.0 <0.15.0", "from": "tweetnacl@~0.14.0",
"resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.3.tgz" "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.3.tgz"
}, },
"jodid25519": { "jodid25519": {
"version": "1.0.2", "version": "1.0.2",
"from": "jodid25519@>=1.0.0 <2.0.0", "from": "jodid25519@^1.0.0",
"resolved": "https://registry.npmjs.org/jodid25519/-/jodid25519-1.0.2.tgz" "resolved": "https://registry.npmjs.org/jodid25519/-/jodid25519-1.0.2.tgz"
}, },
"ecc-jsbn": { "ecc-jsbn": {
"version": "0.1.1", "version": "0.1.1",
"from": "ecc-jsbn@>=0.1.1 <0.2.0", "from": "ecc-jsbn@~0.1.1",
"resolved": "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"
}, },
"bcrypt-pbkdf": { "bcrypt-pbkdf": {
"version": "1.0.0", "version": "1.0.0",
"from": "bcrypt-pbkdf@>=1.0.0 <2.0.0", "from": "bcrypt-pbkdf@^1.0.0",
"resolved": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.0.tgz" "resolved": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.0.tgz"
} }
} }
@ -3555,108 +3518,115 @@
}, },
"is-typedarray": { "is-typedarray": {
"version": "1.0.0", "version": "1.0.0",
"from": "is-typedarray@>=1.0.0 <1.1.0", "from": "is-typedarray@~1.0.0",
"resolved": "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": { "isstream": {
"version": "0.1.2", "version": "0.1.2",
"from": "isstream@>=0.1.2 <0.2.0", "from": "isstream@~0.1.2",
"resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz" "resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz"
}, },
"json-stringify-safe": { "json-stringify-safe": {
"version": "5.0.1", "version": "5.0.1",
"from": "json-stringify-safe@>=5.0.1 <5.1.0", "from": "json-stringify-safe@~5.0.1",
"resolved": "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": { "mime-types": {
"version": "2.1.12", "version": "2.1.12",
"from": "mime-types@>=2.1.7 <2.2.0", "from": "mime-types@~2.1.7",
"resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.12.tgz", "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.12.tgz",
"dependencies": { "dependencies": {
"mime-db": { "mime-db": {
"version": "1.24.0", "version": "1.24.0",
"from": "mime-db@>=1.24.0 <1.25.0", "from": "mime-db@~1.24.0",
"resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.24.0.tgz" "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.24.0.tgz"
} }
} }
}, },
"node-uuid": { "node-uuid": {
"version": "1.4.7", "version": "1.4.7",
"from": "node-uuid@>=1.4.7 <1.5.0", "from": "node-uuid@~1.4.7",
"resolved": "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": { "oauth-sign": {
"version": "0.8.2", "version": "0.8.2",
"from": "oauth-sign@>=0.8.1 <0.9.0", "from": "oauth-sign@~0.8.1",
"resolved": "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": { "qs": {
"version": "6.2.1", "version": "6.3.0",
"from": "qs@>=6.2.0 <6.3.0", "from": "qs@~6.3.0",
"resolved": "https://registry.npmjs.org/qs/-/qs-6.2.1.tgz" "resolved": "https://registry.npmjs.org/qs/-/qs-6.3.0.tgz"
}, },
"stringstream": { "stringstream": {
"version": "0.0.5", "version": "0.0.5",
"from": "stringstream@>=0.0.4 <0.1.0", "from": "stringstream@~0.0.4",
"resolved": "https://registry.npmjs.org/stringstream/-/stringstream-0.0.5.tgz" "resolved": "https://registry.npmjs.org/stringstream/-/stringstream-0.0.5.tgz"
}, },
"tough-cookie": { "tough-cookie": {
"version": "2.3.1", "version": "2.3.2",
"from": "tough-cookie@>=2.3.0 <2.4.0", "from": "tough-cookie@~2.3.0",
"resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.3.1.tgz" "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.3.2.tgz",
"dependencies": {
"punycode": {
"version": "1.4.1",
"from": "punycode@^1.4.1",
"resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz"
}
}
}, },
"tunnel-agent": { "tunnel-agent": {
"version": "0.4.3", "version": "0.4.3",
"from": "tunnel-agent@>=0.4.1 <0.5.0", "from": "tunnel-agent@~0.4.1",
"resolved": "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"
} }
} }
}, },
"rimraf": { "rimraf": {
"version": "2.5.4", "version": "2.5.4",
"from": "rimraf@>=2.5.4 <2.6.0", "from": "rimraf@~2.5.4",
"resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.5.4.tgz", "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.5.4.tgz",
"dependencies": { "dependencies": {
"glob": { "glob": {
"version": "7.1.1", "version": "7.1.1",
"from": "glob@>=7.0.5 <8.0.0", "from": "glob@^7.0.5",
"resolved": "https://registry.npmjs.org/glob/-/glob-7.1.1.tgz", "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.1.tgz",
"dependencies": { "dependencies": {
"fs.realpath": { "fs.realpath": {
"version": "1.0.0", "version": "1.0.0",
"from": "fs.realpath@>=1.0.0 <2.0.0", "from": "fs.realpath@^1.0.0",
"resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz" "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz"
}, },
"inflight": { "inflight": {
"version": "1.0.6", "version": "1.0.6",
"from": "inflight@>=1.0.4 <2.0.0", "from": "inflight@^1.0.4",
"resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz",
"dependencies": { "dependencies": {
"wrappy": { "wrappy": {
"version": "1.0.2", "version": "1.0.2",
"from": "wrappy@>=1.0.0 <2.0.0", "from": "wrappy@1",
"resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz" "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz"
} }
} }
}, },
"inherits": { "inherits": {
"version": "2.0.3", "version": "2.0.3",
"from": "inherits@>=2.0.0 <3.0.0", "from": "inherits@2",
"resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz" "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz"
}, },
"minimatch": { "minimatch": {
"version": "3.0.3", "version": "3.0.3",
"from": "minimatch@>=3.0.2 <4.0.0", "from": "minimatch@^3.0.2",
"resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.3.tgz", "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.3.tgz",
"dependencies": { "dependencies": {
"brace-expansion": { "brace-expansion": {
"version": "1.1.6", "version": "1.1.6",
"from": "brace-expansion@>=1.0.0 <2.0.0", "from": "brace-expansion@^1.0.0",
"resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.6.tgz", "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.6.tgz",
"dependencies": { "dependencies": {
"balanced-match": { "balanced-match": {
"version": "0.4.2", "version": "0.4.2",
"from": "balanced-match@>=0.4.1 <0.5.0", "from": "balanced-match@^0.4.1",
"resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-0.4.2.tgz" "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-0.4.2.tgz"
}, },
"concat-map": { "concat-map": {
@ -3670,19 +3640,19 @@
}, },
"once": { "once": {
"version": "1.4.0", "version": "1.4.0",
"from": "once@>=1.3.0 <2.0.0", "from": "once@^1.3.0",
"resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz",
"dependencies": { "dependencies": {
"wrappy": { "wrappy": {
"version": "1.0.2", "version": "1.0.2",
"from": "wrappy@>=1.0.0 <2.0.0", "from": "wrappy@1",
"resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz" "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz"
} }
} }
}, },
"path-is-absolute": { "path-is-absolute": {
"version": "1.0.1", "version": "1.0.1",
"from": "path-is-absolute@>=1.0.0 <2.0.0", "from": "path-is-absolute@^1.0.0",
"resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz" "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz"
} }
} }
@ -3691,12 +3661,12 @@
}, },
"semver": { "semver": {
"version": "5.3.0", "version": "5.3.0",
"from": "semver@>=5.3.0 <5.4.0", "from": "semver@~5.3.0",
"resolved": "https://registry.npmjs.org/semver/-/semver-5.3.0.tgz" "resolved": "https://registry.npmjs.org/semver/-/semver-5.3.0.tgz"
}, },
"tar": { "tar": {
"version": "2.2.1", "version": "2.2.1",
"from": "tar@>=2.2.1 <2.3.0", "from": "tar@~2.2.1",
"resolved": "https://registry.npmjs.org/tar/-/tar-2.2.1.tgz", "resolved": "https://registry.npmjs.org/tar/-/tar-2.2.1.tgz",
"dependencies": { "dependencies": {
"block-stream": { "block-stream": {
@ -3706,31 +3676,31 @@
}, },
"fstream": { "fstream": {
"version": "1.0.10", "version": "1.0.10",
"from": "fstream@>=1.0.2 <2.0.0", "from": "fstream@^1.0.2",
"resolved": "https://registry.npmjs.org/fstream/-/fstream-1.0.10.tgz", "resolved": "https://registry.npmjs.org/fstream/-/fstream-1.0.10.tgz",
"dependencies": { "dependencies": {
"graceful-fs": { "graceful-fs": {
"version": "4.1.9", "version": "4.1.9",
"from": "graceful-fs@>=4.1.2 <5.0.0", "from": "graceful-fs@^4.1.2",
"resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.9.tgz" "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.9.tgz"
} }
} }
}, },
"inherits": { "inherits": {
"version": "2.0.3", "version": "2.0.3",
"from": "inherits@>=2.0.0 <3.0.0", "from": "inherits@~2.0.0",
"resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz" "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz"
} }
} }
}, },
"tar-pack": { "tar-pack": {
"version": "3.3.0", "version": "3.3.0",
"from": "tar-pack@>=3.3.0 <3.4.0", "from": "tar-pack@~3.3.0",
"resolved": "https://registry.npmjs.org/tar-pack/-/tar-pack-3.3.0.tgz", "resolved": "https://registry.npmjs.org/tar-pack/-/tar-pack-3.3.0.tgz",
"dependencies": { "dependencies": {
"debug": { "debug": {
"version": "2.2.0", "version": "2.2.0",
"from": "debug@>=2.2.0 <2.3.0", "from": "debug@~2.2.0",
"resolved": "https://registry.npmjs.org/debug/-/debug-2.2.0.tgz", "resolved": "https://registry.npmjs.org/debug/-/debug-2.2.0.tgz",
"dependencies": { "dependencies": {
"ms": { "ms": {
@ -3742,44 +3712,44 @@
}, },
"fstream": { "fstream": {
"version": "1.0.10", "version": "1.0.10",
"from": "fstream@>=1.0.10 <1.1.0", "from": "fstream@~1.0.10",
"resolved": "https://registry.npmjs.org/fstream/-/fstream-1.0.10.tgz", "resolved": "https://registry.npmjs.org/fstream/-/fstream-1.0.10.tgz",
"dependencies": { "dependencies": {
"graceful-fs": { "graceful-fs": {
"version": "4.1.9", "version": "4.1.9",
"from": "graceful-fs@>=4.1.2 <5.0.0", "from": "graceful-fs@^4.1.2",
"resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.9.tgz" "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.9.tgz"
}, },
"inherits": { "inherits": {
"version": "2.0.3", "version": "2.0.3",
"from": "inherits@>=2.0.0 <2.1.0", "from": "inherits@~2.0.0",
"resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz" "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz"
} }
} }
}, },
"fstream-ignore": { "fstream-ignore": {
"version": "1.0.5", "version": "1.0.5",
"from": "fstream-ignore@>=1.0.5 <1.1.0", "from": "fstream-ignore@~1.0.5",
"resolved": "https://registry.npmjs.org/fstream-ignore/-/fstream-ignore-1.0.5.tgz", "resolved": "https://registry.npmjs.org/fstream-ignore/-/fstream-ignore-1.0.5.tgz",
"dependencies": { "dependencies": {
"inherits": { "inherits": {
"version": "2.0.3", "version": "2.0.3",
"from": "inherits@>=2.0.0 <3.0.0", "from": "inherits@2",
"resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz" "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz"
}, },
"minimatch": { "minimatch": {
"version": "3.0.3", "version": "3.0.3",
"from": "minimatch@>=3.0.0 <4.0.0", "from": "minimatch@^3.0.2",
"resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.3.tgz", "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.3.tgz",
"dependencies": { "dependencies": {
"brace-expansion": { "brace-expansion": {
"version": "1.1.6", "version": "1.1.6",
"from": "brace-expansion@>=1.0.0 <2.0.0", "from": "brace-expansion@^1.0.0",
"resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.6.tgz", "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.6.tgz",
"dependencies": { "dependencies": {
"balanced-match": { "balanced-match": {
"version": "0.4.2", "version": "0.4.2",
"from": "balanced-match@>=0.4.1 <0.5.0", "from": "balanced-match@^0.4.1",
"resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-0.4.2.tgz" "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-0.4.2.tgz"
}, },
"concat-map": { "concat-map": {
@ -3795,61 +3765,61 @@
}, },
"once": { "once": {
"version": "1.3.3", "version": "1.3.3",
"from": "once@>=1.3.3 <1.4.0", "from": "once@~1.3.3",
"resolved": "https://registry.npmjs.org/once/-/once-1.3.3.tgz", "resolved": "https://registry.npmjs.org/once/-/once-1.3.3.tgz",
"dependencies": { "dependencies": {
"wrappy": { "wrappy": {
"version": "1.0.2", "version": "1.0.2",
"from": "wrappy@>=1.0.0 <2.0.0", "from": "wrappy@1",
"resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz" "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz"
} }
} }
}, },
"readable-stream": { "readable-stream": {
"version": "2.1.5", "version": "2.1.5",
"from": "readable-stream@>=2.1.4 <2.2.0", "from": "readable-stream@~2.1.4",
"resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.1.5.tgz", "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.1.5.tgz",
"dependencies": { "dependencies": {
"buffer-shims": { "buffer-shims": {
"version": "1.0.0", "version": "1.0.0",
"from": "buffer-shims@>=1.0.0 <2.0.0", "from": "buffer-shims@^1.0.0",
"resolved": "https://registry.npmjs.org/buffer-shims/-/buffer-shims-1.0.0.tgz" "resolved": "https://registry.npmjs.org/buffer-shims/-/buffer-shims-1.0.0.tgz"
}, },
"core-util-is": { "core-util-is": {
"version": "1.0.2", "version": "1.0.2",
"from": "core-util-is@>=1.0.0 <1.1.0", "from": "core-util-is@~1.0.0",
"resolved": "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": { "inherits": {
"version": "2.0.3", "version": "2.0.3",
"from": "inherits@>=2.0.1 <2.1.0", "from": "inherits@~2.0.1",
"resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz" "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz"
}, },
"isarray": { "isarray": {
"version": "1.0.0", "version": "1.0.0",
"from": "isarray@>=1.0.0 <1.1.0", "from": "isarray@~1.0.0",
"resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz" "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz"
}, },
"process-nextick-args": { "process-nextick-args": {
"version": "1.0.7", "version": "1.0.7",
"from": "process-nextick-args@>=1.0.6 <1.1.0", "from": "process-nextick-args@~1.0.6",
"resolved": "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": { "string_decoder": {
"version": "0.10.31", "version": "0.10.31",
"from": "string_decoder@>=0.10.0 <0.11.0", "from": "string_decoder@~0.10.x",
"resolved": "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": { "util-deprecate": {
"version": "1.0.2", "version": "1.0.2",
"from": "util-deprecate@>=1.0.1 <1.1.0", "from": "util-deprecate@~1.0.1",
"resolved": "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"
} }
} }
}, },
"uid-number": { "uid-number": {
"version": "0.0.6", "version": "0.0.6",
"from": "uid-number@>=0.0.6 <0.1.0", "from": "uid-number@~0.0.6",
"resolved": "https://registry.npmjs.org/uid-number/-/uid-number-0.0.6.tgz" "resolved": "https://registry.npmjs.org/uid-number/-/uid-number-0.0.6.tgz"
} }
} }

View File

@ -1,7 +1,7 @@
{ {
"private": true, "private": true,
"name": "windshaft-cartodb", "name": "windshaft-cartodb",
"version": "2.80.3", "version": "2.81.0",
"description": "A map tile server for CartoDB", "description": "A map tile server for CartoDB",
"keywords": [ "keywords": [
"cartodb" "cartodb"
@ -39,7 +39,7 @@
"step-profiler": "~0.3.0", "step-profiler": "~0.3.0",
"turbo-carto": "0.18.0", "turbo-carto": "0.18.0",
"underscore": "~1.6.0", "underscore": "~1.6.0",
"windshaft": "2.5.0", "windshaft": "2.6.1",
"yargs": "~5.0.0" "yargs": "~5.0.0"
}, },
"devDependencies": { "devDependencies": {

View File

@ -0,0 +1,68 @@
var assert = require('../support/assert');
var CartodbWindshaft = require(__dirname + '/../../lib/cartodb/server');
var serverOptions = require(__dirname + '/../../lib/cartodb/server_options');
var server = new CartodbWindshaft(serverOptions);
describe('error with context', function () {
var layerOK = {
options: {
sql: 'select cartodb_id, ST_Translate(the_geom_webmercator, 5e6, 0) as the_geom_webmercator ' +
'from test_table',
cartocss: '#layer { marker-fill:red; marker-width:32; marker-allow-overlap:true; }',
cartocss_version: '2.0.1',
interactivity: 'cartodb_id'
}
};
var layerKO = {
options: {
sql: 'select cartodb_id from test_table offset 3', // it doesn't return the_geom_webmercator so it must fail
cartocss: '#layer { marker-fill:blue; marker-allow-overlap:true; }',
cartocss_version: '2.0.2',
interactivity: 'cartodb_id'
}
};
var DB_ERROR_MESSAGE = 'Postgis Plugin: ERROR: column "the_geom_webmercator" does not exist';
var scenarios = [{
description: 'layergroup with 2 layers, second one has query error',
layergroup: {
version: '1.0.0',
layers: [layerOK, layerKO]
},
expectedFailingLayer: { id: 'layer1', index: 1, type: 'mapnik' }
}, {
description: 'layergroup with 2 layers, first one has query error',
layergroup: {
version: '1.0.0',
layers: [layerKO, layerOK]
},
expectedFailingLayer: { id: 'layer0', index: 0, type: 'mapnik' }
}];
scenarios.forEach(function (scenario) {
it(scenario.description, function (done) {
assert.response(server, {
url: '/api/v1/map',
method: 'POST',
headers: {
host: 'localhost',
'Content-Type': 'application/json'
},
data: JSON.stringify(scenario.layergroup)
}, {
status: 400
}, function (res) {
var parsedBody = JSON.parse(res.body);
assert.ok(Array.isArray(parsedBody.errors_with_context));
var err = parsedBody.errors_with_context[0];
assert.equal(err.type, 'layer');
assert.equal(err.subtype, 'query');
assert.ok(err.message.indexOf(DB_ERROR_MESSAGE) >= 0);
assert.deepEqual(err.layer, scenario.expectedFailingLayer);
done();
});
});
});
});